public StubModule addDependency(String moduleId, String minVersion, String maxVersion) { DependencyInfo dependency = new DependencyInfo(); dependency.setId(moduleId); dependency.setMinVersion(Version.create(minVersion)); dependency.setMaxVersion(Version.create(maxVersion)); dependencies.add(dependency); return this; }
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(); }
@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(); }
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); }
@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); } }
/** @author Immortius */ public class ModuleSelectionTest { private StubModuleManager manager = new StubModuleManager(); private Module engineModule = new StubModule("engine", Version.create("1.0.0")); private Module oldModule = new StubModule("oldModule", Version.create("1.0.0")).addDependency("engine", "0.1.0"); private Module moduleA = new StubModule("moduleA", Version.create("1.0.0")); private Module moduleB = new StubModule("moduleB", Version.create("1.0.0")).addDependency("moduleA", "1.0.0"); private Module moduleMissingDependency = new StubModule("missingDep", Version.create("1.0.0")).addDependency("missing", "1.0.0"); @Before public void setup() { manager.addModule(engineModule); manager.addModule(oldModule); manager.addModule(moduleA); manager.addModule(moduleB); manager.addModule(moduleMissingDependency); } @Test public void emptySelectionIsValid() { ModuleSelection selection = new ModuleSelection(manager); assertTrue(selection.isValid()); } @Test public void engineIsInitiallySelected() { ModuleSelection selection = new ModuleSelection(manager); List<Module> modules = selection.getSelection(); assertEquals(Lists.newArrayList(engineModule), modules); } @Test public void addValidModule() { ModuleSelection selection = new ModuleSelection(manager); selection = selection.add(moduleA); List<Module> modules = selection.getSelection(); assertEquals(Lists.newArrayList(engineModule, moduleA), modules); } @Test public void addInvalidModuleResultNotValid() { ModuleSelection selection = new ModuleSelection(manager); selection = selection.add(oldModule); assertFalse(selection.isValid()); assertEquals( "'oldModule:1.0.0' incompatible with 'engine:1.0.0'", selection.getValidationMessages().get(0)); } @Test public void addModuleWithNotYetAddedDependency() { ModuleSelection selection = new ModuleSelection(manager); selection = selection.add(moduleB); assertTrue(selection.isValid()); assertEquals(Lists.newArrayList(engineModule, moduleA, moduleB), selection.getSelection()); } @Test public void addModuleMissingDependencyInvalidatesSelection() { ModuleSelection selection = new ModuleSelection(manager); selection = selection.add(moduleMissingDependency); assertFalse(selection.isValid()); assertEquals( "Missing dependency 'missing:[1.0.0-2.0.0)'", selection.getValidationMessages().get(0)); } private class StubModule implements Module { private String id; private Version version; private List<DependencyInfo> dependencies = Lists.newArrayList(); public StubModule(String id, Version version) { this.id = id; this.version = version; } public StubModule addDependency(String moduleId, String minVersion) { String maxVersion = Version.create(minVersion).getNextMajorVersion().toString(); return addDependency(moduleId, minVersion, maxVersion); } public StubModule addDependency(String moduleId, String minVersion, String maxVersion) { DependencyInfo dependency = new DependencyInfo(); dependency.setId(moduleId); dependency.setMinVersion(Version.create(minVersion)); dependency.setMaxVersion(Version.create(maxVersion)); dependencies.add(dependency); return this; } @Override public String getId() { return id; } @Override public Version getVersion() { return version; } @Override public Reflections getReflections() { return null; } @Override public boolean isCodeModule() { return false; } @Override public ModuleInfo getModuleInfo() { ModuleInfo info = new ModuleInfo(); info.getDependencies().addAll(dependencies); return info; } @Override public boolean isDataAvailable() { return false; } @Override public InputStream getData() throws IOException { return null; } @Override public long getSize() { return 0; } @Override public String toString() { return id + ":" + version; } } private static final class StubModuleManager implements ModuleManager { private Table<String, Version, Module> modules = HashBasedTable.create(); public void addModule(Module module) { modules.put(module.getId(), module.getVersion(), module); } @Override public List<Module> getModules() { return Lists.newArrayList(modules.values()); } @Override public List<String> getModuleIds() { return null; // To change body of implemented methods use File | Settings | File Templates. } @Override public Module getModule(String moduleId, Version version) { return modules.get(moduleId, version); } @Override public Module getLatestModuleVersion(String id) { Module latest = null; for (Module module : modules.row(id).values()) { if (latest == null || latest.getVersion().compareTo(module.getVersion()) < 0) { latest = module; } } return latest; } @Override public Module getLatestModuleVersion(String id, Version minVersion, Version maxVersion) { Module latestInBounds = null; for (Module module : modules.row(id).values()) { if (module.getVersion().compareTo(minVersion) >= 0 && module.getVersion().compareTo(maxVersion) < 0 && (latestInBounds == null || latestInBounds.getVersion().compareTo(module.getVersion()) > 0)) { latestInBounds = module; } } return latestInBounds; } @Override public Iterable<Module> getAllDependencies(Module module) { return null; } @Override public Set<String> getDependencyNamesOf(Module context) { return null; } @Override public Iterable<Module> getActiveCodeModules() { return null; } @Override public boolean isEnabled(Module module) { return false; } @Override public List<Module> getCodeModules() { return null; } @Override public Module getActiveModule(String id) { return null; } @Override public Iterable<Module> getActiveModules() { return null; } @Override public Reflections getActiveModuleReflections() { return null; } @Override public void disableAllModules() {} @Override public void enableModule(Module module) {} @Override public void enableModuleAndDependencies(Module module) {} @Override public void disableModule(Module module) {} @Override public Reflections loadInactiveReflections() { return null; } @Override public void refresh() {} @Override public void applyActiveModules() {} } }
public StubModule addDependency(String moduleId, String minVersion) { String maxVersion = Version.create(minVersion).getNextMajorVersion().toString(); return addDependency(moduleId, minVersion, maxVersion); }
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(); }