private void verifyBundleCU() { final String bundleCUId = flavor + configSpec + ORG_ECLIPSE_CORE_COMMANDS; IQueryResult queryResult = publisherResult.query(QueryUtil.createIUQuery(bundleCUId), new NullProgressMonitor()); assertEquals(1, queryResultSize(queryResult)); IInstallableUnitFragment fragment = (IInstallableUnitFragment) queryResult.iterator().next(); assertNull(fragment.getFilter()); // no filter if config spec is ANY assertTrue(fragment.getVersion().equals(version)); assertFalse(fragment.isSingleton()); final Collection<IProvidedCapability> providedCapabilities = fragment.getProvidedCapabilities(); verifyProvidedCapability( providedCapabilities, IInstallableUnit.NAMESPACE_IU_ID, bundleCUId, version); verifyProvidedCapability( providedCapabilities, "org.eclipse.equinox.p2.flavor", flavor + configSpec, version); //$NON-NLS-1$ assertEquals(2, providedCapabilities.size()); assertEquals(0, fragment.getRequirements().size()); final Collection<IRequirement> hostRequirements = fragment.getHost(); verifyRequiredCapability( hostRequirements, "osgi.bundle", ORG_ECLIPSE_CORE_COMMANDS, new VersionRange(BUNDLE_VERSION)); // $NON-NLS-1$ verifyRequiredCapability( hostRequirements, "org.eclipse.equinox.p2.eclipse.type", "bundle", new VersionRange(Version.create("1.0.0"), true, Version.create("2.0.0"), false), 1, 1, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ assertTrue(hostRequirements.size() == 2); final Collection<ITouchpointData> touchpointData = fragment.getTouchpointData(); assertEquals(1, touchpointData.size()); ITouchpointData data = touchpointData.iterator().next(); ITouchpointInstruction instruction = data.getInstruction("install"); // $NON-NLS-1$ assertEquals("installBundle(bundle:${artifact})", instruction.getBody()); // $NON-NLS-1$ instruction = data.getInstruction("uninstall"); // $NON-NLS-1$ assertEquals("uninstallBundle(bundle:${artifact})", instruction.getBody()); // $NON-NLS-1$ instruction = data.getInstruction("configure"); // $NON-NLS-1$ assertEquals("setStartLevel(startLevel:2);", instruction.getBody()); // $NON-NLS-1$ instruction = data.getInstruction("unconfigure"); // $NON-NLS-1$ assertEquals("setStartLevel(startLevel:-1);", instruction.getBody()); // $NON-NLS-1$ }
protected void setUp() throws Exception { super.setUp(); b1 = createIU("B", Version.create("1.0.0"), false); b2 = createIU("B", Version.create("2.0.0"), false); b3 = createIU("B", Version.create("3.0.0"), false); b4 = createIU("B", Version.create("4.0.0"), false); // B's dependency is missing IRequirement[] reqA = new IRequirement[4]; reqA[0] = MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[1.0.0,1.0.0]"), null, true, false, true); reqA[1] = MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[2.0.0,2.0.0]"), null, true, false, true); reqA[2] = MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[3.0.0,3.0.0]"), null, true, false, true); reqA[3] = MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[4.0.0,4.0.0]"), null, true, false, true); a1 = createIU("A", Version.create("1.0.0"), reqA); createTestMetdataRepository(new IInstallableUnit[] {a1, b1, b2, b3, b4}); profile = createProfile("TestProfile." + getName()); planner = createPlanner(); }
@Test public void testProfilePublishing() throws Exception { File customProfile = resourceFile("publishers/virgo-1.6.profile"); Collection<DependencySeed> seeds = subject.publishEEProfile(customProfile); assertThat(seeds.size(), is(2)); IInstallableUnit virgoProfileIU = unitsById(seeds).get("a.jre.virgo"); assertThat(virgoProfileIU, not(nullValue())); Collection<IProvidedCapability> provided = virgoProfileIU.getProvidedCapabilities(); boolean customJavaxActivationVersionFound = false; Version version_1_1_1 = Version.create("1.1.1"); for (IProvidedCapability capability : provided) { if (PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE.equals(capability.getNamespace())) { if ("javax.activation".equals(capability.getName())) { if (version_1_1_1.equals(capability.getVersion())) { customJavaxActivationVersionFound = true; break; } } } } assertTrue( "did not find capability for package javax.activation with custom version " + version_1_1_1, customJavaxActivationVersionFound); assertThat(unitsById(seeds).keySet(), hasItem("config.a.jre.virgo")); }
@Override public void setupPublisherResult() { super.setupPublisherResult(); InstallableUnitDescription iuDescription = new InstallableUnitDescription(); iuDescription.setId(ORG_ECLIPSE_CORE_COMMANDS); iuDescription.setVersion(Version.create(BUNDLE_VERSION)); IInstallableUnit iu = MetadataFactory.createInstallableUnit(iuDescription); publisherResult.addIU(iu, IPublisherResult.NON_ROOT); }
protected void setUp() throws Exception { super.setUp(); a1 = createIU( "A", Version.create("1.0.0"), createRequiredCapabilities( IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.0.0]"))); createTestMetdataRepository(new IInstallableUnit[] {a1}); profile = createProfile(NoRequirements.class.getName()); planner = createPlanner(); }
/* * Return a boolean value indicating whether or not the IU with the given ID and version * is installed. We do this by loading the profile registry and seeing if it is there. */ public boolean isInstalled(String id, String version) { File location = new File(output, getRootFolder() + "/p2/org.eclipse.equinox.p2.engine/profileRegistry"); SimpleProfileRegistry registry = new SimpleProfileRegistry( getAgent(), location, new SurrogateProfileHandler(getAgent()), false); IProfile[] profiles = registry.getProfiles(); assertEquals("1.0 Should only be one profile in registry.", 1, profiles.length); IQueryResult queryResult = profiles[0].query(QueryUtil.createIUQuery(id, Version.create(version)), null); return !queryResult.isEmpty(); }
public void testGetAction() { final ArrayList actionsList1 = new ArrayList(); InstallableUnitPhase phase1 = new InstallableUnitPhase("test", 1) { protected List<ProvisioningAction> getActions(InstallableUnitOperand operand) { List<ProvisioningAction> actions = getActions(operand.second(), "test1"); actionsList1.addAll(actions); return actions; } }; final ArrayList actionsList2 = new ArrayList(); InstallableUnitPhase phase2 = new InstallableUnitPhase("test", 1) { protected List<ProvisioningAction> getActions(InstallableUnitOperand operand) { List<ProvisioningAction> actions = getActions(operand.second(), "test2"); actionsList2.addAll(actions); return actions; } }; PhaseSet phaseSet = new TestPhaseSet(new Phase[] {phase1, phase2}); IProfile profile = createProfile("PhaseTest"); Map instructions = new HashMap(); instructions.put("test1", MetadataFactory.createTouchpointInstruction("test1.test()", null)); instructions.put("test2", MetadataFactory.createTouchpointInstruction("test2.test()", null)); ITouchpointData touchpointData = MetadataFactory.createTouchpointData(instructions); IInstallableUnit unit = createIU( "test", Version.create("1.0.0"), null, NO_REQUIRES, new IProvidedCapability[0], NO_PROPERTIES, ITouchpointType.NONE, touchpointData, false); IProvisioningPlan plan = engine.createPlan(profile, null); plan.addInstallableUnit(unit); IStatus status = engine.perform(plan, phaseSet, new NullProgressMonitor()); if (!status.isOK()) { fail(status.toString()); } assertEquals( TestAction.class, ((ParameterizedProvisioningAction) actionsList1.get(0)).getAction().getClass()); assertEquals( TestAction.class, ((ParameterizedProvisioningAction) actionsList2.get(0)).getAction().getClass()); }
protected void setUp() throws Exception { super.setUp(); a1 = createIU("A", Version.create("1.0.0"), true); createIU( "A", Version.create("2.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, true, MetadataFactory.createUpdateDescriptor("A", VersionRange.emptyRange, 0, "foo bar"), null); a2 = createIU("A", Version.create("2.0.0"), true); createTestMetdataRepository(new IInstallableUnit[] {a1, a2}); profile = createProfile("TestProfile." + getName()); planner = createPlanner(); engine = createEngine(); }
private IInstallableUnit createIUUpdate() { return createIU( "A", Version.create("2.1.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, MetadataFactory.createUpdateDescriptor( "A", new VersionRange("[2.0.0, 2.1.0]"), 0, "update description"), null); }
/** * Returns an IU corresponding to the given artifact key and bundle, or <code>null</code> if an IU * could not be created. */ public static IInstallableUnit createBundleIU(IArtifactKey artifactKey, File bundleFile) { BundleDescription bundleDescription = BundlesAction.createBundleDescription(bundleFile); if (bundleDescription == null) return null; PublisherInfo info = new PublisherInfo(); Version version = Version.create(bundleDescription.getVersion().toString()); AdviceFileAdvice advice = new AdviceFileAdvice( bundleDescription.getSymbolicName(), version, new Path(bundleFile.getAbsolutePath()), AdviceFileAdvice.BUNDLE_ADVICE_FILE); if (advice.containsAdvice()) info.addAdvice(advice); String shape = bundleFile.isDirectory() ? IBundleShapeAdvice.DIR : IBundleShapeAdvice.JAR; info.addAdvice(new BundleShapeAdvice(bundleDescription.getSymbolicName(), version, shape)); return BundlesAction.createBundleIU(bundleDescription, artifactKey, info); }
public IInstallableUnit getRemoteIU(String id, String version) { File location = new File(output, getRootFolder() + "/p2/org.eclipse.equinox.p2.engine/profileRegistry"); SimpleProfileRegistry registry = new SimpleProfileRegistry( getAgent(), location, new SurrogateProfileHandler(getAgent()), false); IProfile[] profiles = registry.getProfiles(); assertEquals("1.0 Should only be one profile in registry.", 1, profiles.length); IQueryResult queryResult = profiles[0].query(QueryUtil.createIUQuery(id, Version.create(version)), null); assertEquals( "1.1 Should not have more than one IU wth the same ID and version.", 1, queryResultSize(queryResult)); return (IInstallableUnit) queryResult.iterator().next(); }
@Override protected void setUp() throws Exception { super.setUp(); a1 = createIU("A", Version.create("2.0.0")); IUpdateDescriptor update = MetadataFactory.createUpdateDescriptor( "A", new VersionRange("[2.0.0, 2.0.0]"), 0, "update description"); updateOfA = createIU( "UpdateA", Version.createOSGi(1, 0, 0), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, null, NO_TP_DATA, false, update, NO_REQUIRES); a11 = createIUUpdate(); }
@Override protected void setUp() throws Exception { super.setUp(); InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription(); iud.setId("A"); iud.setVersion(Version.create("1.0.0")); String orExpression = "providedCapabilities.exists(pc | pc.namespace == 'org.eclipse.equinox.p2.iu' && (pc.name == 'B' || pc.name == 'C'))"; IExpression expr = ExpressionUtil.parse(orExpression); IMatchExpression matchExpression = ExpressionUtil.getFactory().matchExpression(expr); Collection<IMatchExpression<IInstallableUnit>> updateExpression = new ArrayList<IMatchExpression<IInstallableUnit>>(); updateExpression.add(matchExpression); iud.setUpdateDescriptor( MetadataFactory.createUpdateDescriptor( updateExpression, IUpdateDescriptor.HIGH, (String) null, (URI) null)); iua = MetadataFactory.createInstallableUnit(iud); Collection<IInstallableUnit> ius = new ArrayList<IInstallableUnit>(); ius.add(iua); URI repoURI = getTempFolder().toURI(); createMetadataRepository(repoURI, null).addInstallableUnits(ius); getMetadataRepositoryManager().removeRepository(repoURI); x = getMetadataRepositoryManager() .loadRepository(repoURI, null) .query(QueryUtil.ALL_UNITS, null) .iterator() .next() .getUpdateDescriptor() .getIUsBeingUpdated(); assertEquals(matchExpression, x.iterator().next()); }
@SuppressWarnings({"unchecked"}) public class ANYConfigCUsActionTest extends ActionTest { private static final String BUNDLE_VERSION = "5.0.0"; // $NON-NLS-1$ private static final String ORG_ECLIPSE_CORE_COMMANDS = "org.eclipse.core.commands"; //$NON-NLS-1$ private static File configLocation = new File( TestActivator.getTestDataFolder(), "ConfigCUsActionTest/level1/level2/config.ini"); //$NON-NLS-1$ private static File executableLocation = new File( TestActivator.getTestDataFolder(), "ConfigCUsActionTest/level1/run.exe"); // $NON-NLS-1$ private static Version version = Version.create("1.0.0"); // $NON-NLS-1$ private static String id = "id"; // $NON-NLS-1$ private static String flavor = "tooling"; // $NON-NLS-1$ private IMetadataRepository metadataRepo; private DataLoader loader; public void setUp() throws Exception { // configuration spec for creation of filterless CUs String[] cfgSpecs = AbstractPublisherAction.parseConfigSpec("ANY"); // $NON-NLS-1$ configSpec = AbstractPublisherAction.createConfigSpec(cfgSpecs[0], cfgSpecs[1], cfgSpecs[2]); setupPublisherInfo(); setupPublisherResult(); testAction = new ConfigCUsAction(publisherInfo, flavor, id, version); } public void testAction() throws Exception { testAction.perform(publisherInfo, publisherResult, new NullProgressMonitor()); verifyAction(); debug("Completed ConfigCUsAction test."); // $NON-NLS-1$ } private void verifyAction() { ArrayList IUs = new ArrayList(publisherResult.getIUs(null, IPublisherResult.ROOT)); assertTrue(IUs.size() == 1); InstallableUnit iu = (InstallableUnit) IUs.get(0); assertTrue(iu.getId().equalsIgnoreCase(flavor + id + ".configuration")); // $NON-NLS-1$ // verify ProvidedCapabilities Collection<IProvidedCapability> providedCapabilities = iu.getProvidedCapabilities(); verifyProvidedCapability( providedCapabilities, "org.eclipse.equinox.p2.iu", iu.getId(), version); // $NON-NLS-1$ assertTrue(providedCapabilities.size() == 1); // verify RequiredCapabilities List<IRequirement> requiredCapability = iu.getRequirements(); assertTrue(requiredCapability.size() == 3); verifyRequiredCapability( requiredCapability, IInstallableUnit.NAMESPACE_IU_ID, flavor + id + ".config." + configSpec, new VersionRange(version, true, version, true)); // $NON-NLS-1$ verifyRequiredCapability( requiredCapability, IInstallableUnit.NAMESPACE_IU_ID, flavor + id + ".ini." + configSpec, new VersionRange(version, true, version, true)); // $NON-NLS-1$ verifyRequiredCapability( requiredCapability, IInstallableUnit.NAMESPACE_IU_ID, flavor + configSpec + ORG_ECLIPSE_CORE_COMMANDS, new VersionRange(version, true, version, true)); // verify non root IUs verifyFragment("ini"); // $NON-NLS-1$ verifyFragment("config"); // $NON-NLS-1$ verifyBundleCU(); } private void verifyFragment(String cuType) { ArrayList IUs = new ArrayList(publisherResult.getIUs(null, IPublisherResult.NON_ROOT)); for (int i = 0; i < IUs.size(); i++) { InstallableUnit iu = (InstallableUnit) IUs.get(i); if (iu.getId() .equals(flavor + id + "." + cuType + "." + configSpec)) { // $NON-NLS-1$ //$NON-NLS-2$ assertNull(iu.getFilter()); // no filter if config spec is ANY assertTrue(iu.getVersion().equals(version)); assertFalse(iu.isSingleton()); Collection<IProvidedCapability> providedCapabilities = iu.getProvidedCapabilities(); verifyProvidedCapability( providedCapabilities, IInstallableUnit.NAMESPACE_IU_ID, flavor + id + "." + cuType + "." + configSpec, version); //$NON-NLS-1$//$NON-NLS-2$ verifyProvidedCapability( providedCapabilities, flavor + id, id + "." + cuType, version); // $NON-NLS-1$ assertTrue(providedCapabilities.size() == 2); assertTrue(iu.getRequirements().size() == 0); if (cuType.equals("ini")) // $NON-NLS-1$ verifyLauncherArgs(iu); if (cuType.equals("config")) // $NON-NLS-1$ verifyConfigProperties(iu); return; // pass } } fail( "Configuration unit of type " + cuType + " was not enocuntered among fragments"); //$NON-NLS-1$ } private void verifyBundleCU() { final String bundleCUId = flavor + configSpec + ORG_ECLIPSE_CORE_COMMANDS; IQueryResult queryResult = publisherResult.query(QueryUtil.createIUQuery(bundleCUId), new NullProgressMonitor()); assertEquals(1, queryResultSize(queryResult)); IInstallableUnitFragment fragment = (IInstallableUnitFragment) queryResult.iterator().next(); assertNull(fragment.getFilter()); // no filter if config spec is ANY assertTrue(fragment.getVersion().equals(version)); assertFalse(fragment.isSingleton()); final Collection<IProvidedCapability> providedCapabilities = fragment.getProvidedCapabilities(); verifyProvidedCapability( providedCapabilities, IInstallableUnit.NAMESPACE_IU_ID, bundleCUId, version); verifyProvidedCapability( providedCapabilities, "org.eclipse.equinox.p2.flavor", flavor + configSpec, version); //$NON-NLS-1$ assertEquals(2, providedCapabilities.size()); assertEquals(0, fragment.getRequirements().size()); final Collection<IRequirement> hostRequirements = fragment.getHost(); verifyRequiredCapability( hostRequirements, "osgi.bundle", ORG_ECLIPSE_CORE_COMMANDS, new VersionRange(BUNDLE_VERSION)); // $NON-NLS-1$ verifyRequiredCapability( hostRequirements, "org.eclipse.equinox.p2.eclipse.type", "bundle", new VersionRange(Version.create("1.0.0"), true, Version.create("2.0.0"), false), 1, 1, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ assertTrue(hostRequirements.size() == 2); final Collection<ITouchpointData> touchpointData = fragment.getTouchpointData(); assertEquals(1, touchpointData.size()); ITouchpointData data = touchpointData.iterator().next(); ITouchpointInstruction instruction = data.getInstruction("install"); // $NON-NLS-1$ assertEquals("installBundle(bundle:${artifact})", instruction.getBody()); // $NON-NLS-1$ instruction = data.getInstruction("uninstall"); // $NON-NLS-1$ assertEquals("uninstallBundle(bundle:${artifact})", instruction.getBody()); // $NON-NLS-1$ instruction = data.getInstruction("configure"); // $NON-NLS-1$ assertEquals("setStartLevel(startLevel:2);", instruction.getBody()); // $NON-NLS-1$ instruction = data.getInstruction("unconfigure"); // $NON-NLS-1$ assertEquals("setStartLevel(startLevel:-1);", instruction.getBody()); // $NON-NLS-1$ } private void verifyLauncherArgs(IInstallableUnit iu) { Collection<ITouchpointData> touchpointData = iu.getTouchpointData(); assertEquals(1, touchpointData.size()); ITouchpointData data = touchpointData.iterator().next(); ITouchpointInstruction instruction = data.getInstruction("configure"); // $NON-NLS-1$ String body = instruction.getBody(); assertTrue( "arg -foo bar", body.indexOf("addProgramArg(programArg:-foo bar);") > -1); // $NON-NLS-1$ //$NON-NLS-2$ assertTrue( "vmarg -agentlib", body.indexOf( "addJvmArg(jvmArg:-agentlib${#58}jdwp=transport=dt_socket${#44}server=y${#44}suspend=n${#44}address=8272);") > -1); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue( "arg -product com,ma", body.indexOf("addProgramArg(programArg:-product);addProgramArg(programArg:com${#44}ma);") > -1); //$NON-NLS-1$ //$NON-NLS-2$ } private void verifyConfigProperties(IInstallableUnit iu) { Collection<ITouchpointData> touchpointData = iu.getTouchpointData(); assertEquals(1, touchpointData.size()); ITouchpointData data = touchpointData.iterator().next(); ITouchpointInstruction instruction = data.getInstruction("configure"); // $NON-NLS-1$ String body = instruction.getBody(); assertTrue( "eclipse.product", body.indexOf( "setProgramProperty(propName:eclipse.product,propValue:org.eclipse.platform.ide);") > -1); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue( "eclipse.buildId", body.indexOf("setProgramProperty(propName:eclipse.buildId,propValue:TEST-ID);") > -1); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue( "my.property", body.indexOf( "setProgramProperty(propName:my.property,propValue:${#123}a${#44}b${#58}c${#59}${#36}d${#125});") > -1); //$NON-NLS-1$ //$NON-NLS-2$ } protected void insertPublisherInfoBehavior() { loader = new DataLoader(configLocation, executableLocation); // configure IExecutableAdvice LauncherData launcherData = loader.getLauncherData(); LaunchingAdvice launchingAdvice = new LaunchingAdvice(launcherData, configSpec); ArrayList launchingList = new ArrayList(); launchingList.add(launchingAdvice); ProductFileAdvice productAdvice = null; try { String productFileLocation = TestData.getFile("ProductActionTest", "productFileActionTest.product") .toString(); //$NON-NLS-1$ //$NON-NLS-2$ productAdvice = new ProductFileAdvice(new ProductFile(productFileLocation), configSpec); launchingList.add(productAdvice); } catch (Exception e) { fail("Unable to create product file advice", e); // $NON-NLS-1$ } expect( publisherInfo.getAdvice( EasyMock.matches(configSpec), EasyMock.eq(false), (String) EasyMock.anyObject(), (Version) EasyMock.anyObject(), EasyMock.eq(IExecutableAdvice.class))) .andReturn(launchingList) .anyTimes(); // configure IConfigAdvice ConfigData configData = loader.getConfigData(); ConfigAdvice configAdvice = new ConfigAdvice(configData, configSpec); ArrayList configList = new ArrayList(); configList.add(configAdvice); configList.add(productAdvice); expect( publisherInfo.getAdvice( EasyMock.matches(configSpec), EasyMock.eq(false), (String) EasyMock.anyObject(), (Version) EasyMock.anyObject(), EasyMock.eq(IConfigAdvice.class))) .andReturn(configList) .anyTimes(); // setup metadata repository IInstallableUnit[] ius = { mockIU("foo", null), mockIU("bar", null) }; //$NON-NLS-1$ //$NON-NLS-2$ metadataRepo = new TestMetadataRepository(getAgent(), ius); expect(publisherInfo.getMetadataRepository()).andReturn(metadataRepo).anyTimes(); expect(publisherInfo.getContextMetadataRepository()).andReturn(null).anyTimes(); } @Override public void setupPublisherResult() { super.setupPublisherResult(); InstallableUnitDescription iuDescription = new InstallableUnitDescription(); iuDescription.setId(ORG_ECLIPSE_CORE_COMMANDS); iuDescription.setVersion(Version.create(BUNDLE_VERSION)); IInstallableUnit iu = MetadataFactory.createInstallableUnit(iuDescription); publisherResult.addIU(iu, IPublisherResult.NON_ROOT); } }
protected void setUp() throws Exception { super.setUp(); a1 = createIU("A", Version.createOSGi(1, 0, 0), true); a2 = createIU("A", Version.create("2.0.0"), true); b1 = createIU("B", Version.create("1.0.0"), true); b2 = createIU("B", Version.create("2.0.0"), true); c2 = createIU("C", Version.create("2.0.0"), true); IRequirement[] req = new IRequirement[3]; req[0] = MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[1.0.0, 1.1.0)"), null, false, true); req[1] = MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[1.0.0, 1.1.0)"), null, false, true); req[2] = MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "C", new VersionRange("[2.0.0, 3.1.0)"), null, false, true); f1 = createIU("F", Version.createOSGi(1, 0, 0), req); IRequirementChange changeA = MetadataFactory.createRequirementChange( MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "A", VersionRange.emptyRange, null, false, false, false), MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "A", new VersionRange("[2.0.0, 3.0.0)"), null, false, false, true)); IRequirement[][] scope = new IRequirement[][] { { MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "F", VersionRange.emptyRange, null, false, false, false) } }; p1 = createIUPatch( "P", Version.create("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null, new IRequirementChange[] {changeA}, scope, null, new IRequirement[0]); IRequirementChange changeB = MetadataFactory.createRequirementChange( MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "B", VersionRange.emptyRange, null, false, false, false), MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "B", new VersionRange("[2.0.0, 3.0.0)"), null, false, false, true)); IRequirement[][] scopePP = new IRequirement[][] { { MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, "F", VersionRange.emptyRange, null, false, false, false) } }; r1 = createIUPatch( "R", Version.create("1.0.0"), null, NO_REQUIRES, NO_PROVIDES, NO_PROPERTIES, ITouchpointType.NONE, NO_TP_DATA, false, null, new IRequirementChange[] {changeB}, scopePP, null, new IRequirement[0]); createTestMetdataRepository(new IInstallableUnit[] {a1, a2, b1, b2, c2, f1, p1, r1}); profile1 = createProfile("TestProfile." + getName()); planner = createPlanner(); engine = createEngine(); }