| author | Igor Fedorenko | 2011-12-20 18:01:15 (EST) |
|---|---|---|
| committer | Igor Fedorenko | 2011-12-20 18:01:15 (EST) |
| commit | 61745a07839a41c9fcc62e8b1c8701d4a4a2bc22 (patch) (side-by-side diff) | |
| tree | 771bfaa27497e49d336c2f9816efa5db1a2424eb | |
| parent | b13f5223b7b46de850ec16fcf1291d5164c48330 (diff) | |
| download | org.eclipse.tycho-61745a07839a41c9fcc62e8b1c8701d4a4a2bc22.zip org.eclipse.tycho-61745a07839a41c9fcc62e8b1c8701d4a4a2bc22.tar.gz org.eclipse.tycho-61745a07839a41c9fcc62e8b1c8701d4a4a2bc22.tar.bz2 | |
367255 p2.inf should not leak into sources bundle metadata
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
2 files changed, 22 insertions, 1 deletions
diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/publisher/P2GeneratorImplTest.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/publisher/P2GeneratorImplTest.java index 7d6c761..643d175 100644 --- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/publisher/P2GeneratorImplTest.java +++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl.test/src/test/java/org/eclipse/tycho/p2/publisher/P2GeneratorImplTest.java @@ -62,6 +62,21 @@ public class P2GeneratorImplTest { //assertEquals("foo;version=0.0.1;roots:=\".\"", attributes.getValue("Eclipse-SourceBundle")); } + @Test + public void generateSourceBundleMetadataForProjectWithP2Inf() throws Exception { + // p2.inf must not leak into sources bundle + + DependencyMetadataGenerator p2GeneratorImpl = new SourcesBundleDependencyMetadataGenerator(); + File location = new File("resources/generator/bundle-p2-inf").getCanonicalFile(); + ArtifactMock artifactMock = new ArtifactMock(location, "org.acme", "foo", "0.0.1", "eclipse-plugin"); + Set<Object> units = p2GeneratorImpl.generateMetadata(artifactMock, getEnvironments(), null).getMetadata(); + + assertEquals(1, units.size()); + + IInstallableUnit unit = getUnit("foo.source", units); + assertEquals(0, unit.getRequirements().size()); + } + private IInstallableUnit getUnit(String id, Set<Object> units) { for (Object obj : units) { IInstallableUnit unit = (IInstallableUnit) obj; diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/publisher/SourcesBundleDependencyMetadataGenerator.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/publisher/SourcesBundleDependencyMetadataGenerator.java index 0faf3a3..7ca986d 100644 --- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/publisher/SourcesBundleDependencyMetadataGenerator.java +++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/impl/publisher/SourcesBundleDependencyMetadataGenerator.java @@ -18,6 +18,7 @@ import java.util.Map; import org.eclipse.equinox.p2.publisher.IPublisherAction; import org.eclipse.equinox.p2.publisher.IPublisherAdvice; +import org.eclipse.equinox.p2.publisher.IPublisherInfo; import org.eclipse.equinox.p2.publisher.PublisherInfo; import org.eclipse.osgi.service.resolver.BundleDescription; import org.eclipse.osgi.service.resolver.StateObjectFactory; @@ -59,7 +60,12 @@ public class SourcesBundleDependencyMetadataGenerator extends AbstractMetadataGe BundleDescription bundleDescription = factory.createBundleDescription(factory.createState(false), manifest, artifact.getLocation().getAbsolutePath(), createId(sourceBundleSymbolicName, version)); bundleDescription.setUserObject(manifest); - actions.add(new TychoBundleAction(bundleDescription)); + actions.add(new TychoBundleAction(bundleDescription) { + @Override + protected void createAdviceFileAdvice(BundleDescription bundleDescription, IPublisherInfo publisherInfo) { + // 367255 p2.inf is not applicable to sources bundles + } + }); } catch (BundleException e) { throw new RuntimeException(e); } |

