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();
  }
Beispiel #2
0
  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());
  }
  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());
  }
 private IInstallableUnit createIdIU(String id) {
   InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription();
   String time = Long.toString(System.currentTimeMillis());
   iu.setId("toast.id");
   iu.setVersion(Version.createOSGi(0, 0, 0, time));
   Map touchpointData = new HashMap();
   String data = "addJvmArg(jvmArg:-D" + ICoreConstants.ID_PROPERTY + "=" + id + ");";
   touchpointData.put("configure", data);
   data = "removeJvmArg(jvmArg:-D" + ICoreConstants.ID_PROPERTY + "=" + id + ");";
   touchpointData.put("unconfigure", data);
   iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData));
   ITouchpointType touchpoint =
       MetadataFactory.createTouchpointType(
           "org.eclipse.equinox.p2.osgi", Version.createOSGi(1, 0, 0));
   iu.setTouchpointType(touchpoint);
   return MetadataFactory.createInstallableUnit(iu);
 }
  @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);
  }
  @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());
  }
 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);
 }
  @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();
  }
  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();
  }
Beispiel #10
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();
  }