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();
  }
  public void testNoProblemWithMissingOptionalDependency() {
    // CDT will be missing a requirement but it is optional so everything should be good
    // EMF will be not be good because it is missing a requirement
    IRequirement missingOptionalDependency =
        MetadataFactory.createRequirement(
            IInstallableUnit.NAMESPACE_IU_ID,
            "MissingSomething",
            new VersionRange("[1.0.0, 1.0.0]"),
            null,
            true,
            false);
    IInstallableUnit cdt =
        createIU(
            "CDT",
            PublisherHelper.fromOSGiVersion(new org.osgi.framework.Version("1.0.0")),
            new IRequirement[] {missingOptionalDependency});

    IRequirement emfMissing =
        MetadataFactory.createRequirement(
            IInstallableUnit.NAMESPACE_IU_ID,
            "EMFPart",
            new VersionRange("[1.0.0, 1.0.0]"),
            null,
            false,
            false);
    IInstallableUnit emf =
        createIU(
            "EMF",
            PublisherHelper.fromOSGiVersion(new org.osgi.framework.Version("1.0.0")),
            new IRequirement[] {emfMissing},
            NO_PROPERTIES,
            true);

    createTestMetdataRepository(new IInstallableUnit[] {cdt, emf});
    ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
    pcr.addInstallableUnits(new IInstallableUnit[] {cdt, emf});
    ProvisioningPlan plan = (ProvisioningPlan) planner.getProvisioningPlan(pcr, null, null);
    RequestStatus requestStatus = ((PlannerStatus) plan.getStatus()).getRequestStatus();
    assertTrue(requestStatus.getConflictsWithInstalledRoots().contains(emf));
    assertFalse(requestStatus.getConflictsWithInstalledRoots().contains(cdt));
    assertFalse(requestStatus.getConflictsWithInstalledRoots().contains(sdk));

    //		assertTrue(plan.getRequestStatus(cdt).getSeverity() != IStatus.ERROR);
    //
    //		assertTrue(plan.getRequestStatus(emf).getSeverity() == IStatus.ERROR);
    //		assertEquals(0, plan.getRequestStatus(emf).getConflictsWithInstalledRoots());
  }
Ejemplo n.º 3
0
  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();
  }