private void ensureSelfCapability(InstallableUnitDescription iu) { Collection<IProvidedCapability> capabilities = iu.getProvidedCapabilities(); for (IProvidedCapability capability : capabilities) { if (IInstallableUnit.NAMESPACE_IU_ID.equals(capability.getNamespace()) && iu.getId().equals(capability.getName()) && iu.getVersion().equals(capability.getVersion())) { return; } } IProvidedCapability[] newCapabilities = new IProvidedCapability[capabilities.size() + 1]; capabilities.toArray(newCapabilities); newCapabilities[newCapabilities.length - 1] = createSelfCapability(iu.getId(), iu.getVersion()); iu.setCapabilities(newCapabilities); } }
private InstallableUnitDescription createTopLevelIUDescription(Collection<? extends IVersionedId> children, Collection<IRequirement> requires, boolean configureLauncherData) { InstallableUnitDescription root = new MetadataFactory.InstallableUnitDescription(); root.setSingleton(true); root.setId(id); root.setVersion(version); root.setProperty(IInstallableUnit.PROP_NAME, name); Collection<IRequirement> requiredCapabilities = createIURequirements(children); if (requires != null) requiredCapabilities.addAll(requires); root.setRequirements(requiredCapabilities.toArray(new IRequirement[requiredCapabilities.size()])); root.setArtifacts(new IArtifactKey[0]); root.setProperty(InstallableUnitDescription.PROP_TYPE_PRODUCT, Boolean.TRUE.toString()); root.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, VersionRange.emptyRange, IUpdateDescriptor.NORMAL, null)); root.setProperty(InstallableUnitDescription.PROP_TYPE_GROUP, Boolean.TRUE.toString()); root.setCapabilities(new IProvidedCapability[] {createSelfCapability(id, version)}); // TODO why is the type OSGI? root.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); return root; }
private InstallableUnitDescription createTopLevelIUDescription(Collection<? extends IVersionedId> children, Collection<IRequirement> requires, boolean configureLauncherData) { InstallableUnitDescription root = new MetadataFactory.InstallableUnitDescription(); root.setSingleton(true); root.setId(id); root.setVersion(version); root.setProperty(IInstallableUnit.PROP_NAME, name); Collection<IRequirement> requiredCapabilities = createIURequirements(children); if (requires != null) requiredCapabilities.addAll(requires); root.setRequirements(requiredCapabilities.toArray(new IRequirement[requiredCapabilities.size()])); root.setArtifacts(new IArtifactKey[0]); root.setProperty(InstallableUnitDescription.PROP_TYPE_PRODUCT, Boolean.TRUE.toString()); root.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, VersionRange.emptyRange, IUpdateDescriptor.NORMAL, null)); root.setProperty(InstallableUnitDescription.PROP_TYPE_GROUP, Boolean.TRUE.toString()); root.setCapabilities(new IProvidedCapability[] {createSelfCapability(id, version)}); // TODO why is the type OSGI? root.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); return root; }
IProvidedCapability capability = MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, SOURCE_IU_ID, sourceIUVersion); sourceDescription.setCapabilities(new IProvidedCapability[] { capability }); sourceDescription.addRequirements(sourceBundleRequirements);
protected IInstallableUnit createFeatureRootFileIU(String featureId, String featureVersion, File location, FileSetDescriptor descriptor) { InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription(); iu.setSingleton(true); String id = featureId + '_' + descriptor.getKey(); iu.setId(id); Version version = Version.parseVersion(featureVersion); iu.setVersion(version); iu.setCapabilities(new IProvidedCapability[] {PublisherHelper.createSelfCapability(id, version)}); iu.setTouchpointType(PublisherHelper.TOUCHPOINT_NATIVE); String configSpec = descriptor.getConfigSpec(); if (configSpec != null && configSpec.length() > 0) iu.setFilter(createFilterSpec(configSpec)); Map<String, String> touchpointData = new HashMap<String, String>(2); String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$ touchpointData.put("install", configurationData); //$NON-NLS-1$ String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$ touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); // prime the IU with an artifact key that will correspond to the zipped up root files. IArtifactKey key = new ArtifactKey(PublisherHelper.BINARY_ARTIFACT_CLASSIFIER, iu.getId(), iu.getVersion()); iu.setArtifacts(new IArtifactKey[] {key}); setupLinks(iu, descriptor); setupPermissions(iu, descriptor); IInstallableUnit iuResult = MetadataFactory.createInstallableUnit(iu); // need to return both the iu and any files. return iuResult; }
protected IInstallableUnit createFeatureRootFileIU(String featureId, String featureVersion, File location, FileSetDescriptor descriptor) { InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription(); iu.setSingleton(true); String id = featureId + '_' + descriptor.getKey(); iu.setId(id); Version version = Version.parseVersion(featureVersion); iu.setVersion(version); iu.setCapabilities(new IProvidedCapability[] {PublisherHelper.createSelfCapability(id, version)}); iu.setTouchpointType(PublisherHelper.TOUCHPOINT_NATIVE); String configSpec = descriptor.getConfigSpec(); if (configSpec != null && configSpec.length() > 0) iu.setFilter(createFilterSpec(configSpec)); Map<String, String> touchpointData = new HashMap<String, String>(2); String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$ touchpointData.put("install", configurationData); //$NON-NLS-1$ String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$ touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); // prime the IU with an artifact key that will correspond to the zipped up root files. IArtifactKey key = new ArtifactKey(PublisherHelper.BINARY_ARTIFACT_CLASSIFIER, iu.getId(), iu.getVersion()); iu.setArtifacts(new IArtifactKey[] {key}); setupLinks(iu, descriptor); setupPermissions(iu, descriptor); IInstallableUnit iuResult = MetadataFactory.createInstallableUnit(iu); // need to return both the iu and any files. return iuResult; }
private IInstallableUnit createSourceIU(IQueryable<IInstallableUnit> queryable, Version iuVersion) { // compute the set of source bundles we could possibly need for the bundles in the profile IRequirement bundleRequirement = MetadataFactory.createRequirement("org.eclipse.equinox.p2.eclipse.type", "bundle", null, null, false, false, false); //$NON-NLS-1$ //$NON-NLS-2$ IQueryResult<IInstallableUnit> profileIUs = queryable.query(QueryUtil.createIUAnyQuery(), null); ArrayList<IRequirement> requirements = new ArrayList<>(); for (Iterator<IInstallableUnit> i = profileIUs.iterator(); i.hasNext();) { IInstallableUnit profileIU = i.next(); if (profileIU.satisfies(bundleRequirement)) { String id = profileIU.getId() + ".source"; //$NON-NLS-1$ Version version = profileIU.getVersion(); // use fully qualified name to avoid conflict with other VersionRange class org.eclipse.equinox.p2.metadata.VersionRange range = new org.eclipse.equinox.p2.metadata.VersionRange(version, true, version, true); IRequirement sourceRequirement = MetadataFactory.createRequirement("osgi.bundle", id, range, null, true, false, true); //$NON-NLS-1$ requirements.add(sourceRequirement); } } InstallableUnitDescription sourceDescription = new MetadataFactory.InstallableUnitDescription(); sourceDescription.setSingleton(true); sourceDescription.setId(SOURCE_IU_ID); sourceDescription.setVersion(iuVersion); sourceDescription.addRequirements(requirements); IProvidedCapability capability = MetadataFactory.createProvidedCapability(IInstallableUnit.NAMESPACE_IU_ID, SOURCE_IU_ID, iuVersion); sourceDescription.setCapabilities(new IProvidedCapability[] {capability}); return MetadataFactory.createInstallableUnit(sourceDescription); }
protected IInstallableUnit createFeatureRootFileIU(String featureId, String featureVersion, File location, FileSetDescriptor descriptor) { InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription(); iu.setSingleton(true); String id = featureId + '_' + descriptor.getKey(); iu.setId(id); Version version = Version.parseVersion(featureVersion); iu.setVersion(version); iu.setCapabilities(new IProvidedCapability[] {PublisherHelper.createSelfCapability(id, version)}); iu.setTouchpointType(PublisherHelper.TOUCHPOINT_NATIVE); String configSpec = descriptor.getConfigSpec(); if (configSpec != null && configSpec.length() > 0) iu.setFilter(createFilterSpec(configSpec)); Map<String, String> touchpointData = new HashMap<>(2); String configurationData = "unzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$ touchpointData.put("install", configurationData); //$NON-NLS-1$ String unConfigurationData = "cleanupzip(source:@artifact, target:${installFolder});"; //$NON-NLS-1$ touchpointData.put("uninstall", unConfigurationData); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); // prime the IU with an artifact key that will correspond to the zipped up root files. IArtifactKey key = new ArtifactKey(PublisherHelper.BINARY_ARTIFACT_CLASSIFIER, iu.getId(), iu.getVersion()); iu.setArtifacts(new IArtifactKey[] {key}); setupLinks(iu, descriptor); setupPermissions(iu, descriptor); IInstallableUnit iuResult = MetadataFactory.createInstallableUnit(iu); // need to return both the iu and any files. return iuResult; }
/** * Create a CU whose id is flavor+id.type.configspec with the given version. * The resultant IU has the self capability and an abstract capabilty in the flavor+id namespace * with the name id.type and the given version. This allows others to create an abstract * dependency on having one of these things around but not having to list out the configs. */ private IInstallableUnit createCU(String cuId, Version cuVersion, String cuType, String cuFlavor, String configSpec, Map<String, String> touchpointData) { InstallableUnitDescription cu = new InstallableUnitDescription(); String resultId = createCUIdString(cuId, cuType, cuFlavor, configSpec); cu.setId(resultId); cu.setVersion(cuVersion); cu.setFilter(createFilterSpec(configSpec)); IProvidedCapability selfCapability = PublisherHelper.createSelfCapability(resultId, cuVersion); String namespace = getAbstractCUCapabilityNamespace(cuId, cuType, cuFlavor, configSpec); String abstractId = getAbstractCUCapabilityId(cuId, cuType, cuFlavor, configSpec); IProvidedCapability abstractCapability = MetadataFactory.createProvidedCapability(namespace, abstractId, cuVersion); cu.setCapabilities(new IProvidedCapability[] {selfCapability, abstractCapability}); cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); cu.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); return MetadataFactory.createInstallableUnit(cu); }
/** * Create a CU whose id is flavor+id.type.configspec with the given version. * The resultant IU has the self capability and an abstract capabilty in the flavor+id namespace * with the name id.type and the given version. This allows others to create an abstract * dependency on having one of these things around but not having to list out the configs. */ private IInstallableUnit createCU(String cuId, Version cuVersion, String cuType, String cuFlavor, String configSpec, Map<String, String> touchpointData) { InstallableUnitDescription cu = new InstallableUnitDescription(); String resultId = createCUIdString(cuId, cuType, cuFlavor, configSpec); cu.setId(resultId); cu.setVersion(cuVersion); cu.setFilter(createFilterSpec(configSpec)); IProvidedCapability selfCapability = PublisherHelper.createSelfCapability(resultId, cuVersion); String namespace = getAbstractCUCapabilityNamespace(cuId, cuType, cuFlavor, configSpec); String abstractId = getAbstractCUCapabilityId(cuId, cuType, cuFlavor, configSpec); IProvidedCapability abstractCapability = MetadataFactory.createProvidedCapability(namespace, abstractId, cuVersion); cu.setCapabilities(new IProvidedCapability[] {selfCapability, abstractCapability}); cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); cu.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); return MetadataFactory.createInstallableUnit(cu); }
private InstallableUnitDescription createTopLevelIUDescription(Collection<? extends IVersionedId> children, Collection<IRequirement> requires, boolean configureLauncherData) { InstallableUnitDescription root = new MetadataFactory.InstallableUnitDescription(); root.setSingleton(true); root.setId(id); root.setVersion(version); root.setProperty(IInstallableUnit.PROP_NAME, name); Collection<IRequirement> requiredCapabilities = createIURequirements(children); if (requires != null) requiredCapabilities.addAll(requires); root.setRequirements(requiredCapabilities.toArray(new IRequirement[requiredCapabilities.size()])); root.setArtifacts(new IArtifactKey[0]); root.setProperty(InstallableUnitDescription.PROP_TYPE_PRODUCT, Boolean.TRUE.toString()); root.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, VersionRange.emptyRange, IUpdateDescriptor.NORMAL, null)); root.setProperty(InstallableUnitDescription.PROP_TYPE_GROUP, Boolean.TRUE.toString()); root.setCapabilities(new IProvidedCapability[] {createSelfCapability(id, version)}); // TODO why is the type OSGI? root.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); return root; }
private InstallableUnitDescription createTopLevelIUDescription(Collection<? extends IVersionedId> children, Collection<IRequirement> requires, boolean configureLauncherData) { InstallableUnitDescription root = new MetadataFactory.InstallableUnitDescription(); root.setSingleton(true); root.setId(id); root.setVersion(version); root.setProperty(IInstallableUnit.PROP_NAME, name); Collection<IRequirement> requiredCapabilities = createIURequirements(children); if (requires != null) requiredCapabilities.addAll(requires); root.setRequirements(requiredCapabilities.toArray(new IRequirement[requiredCapabilities.size()])); root.setArtifacts(new IArtifactKey[0]); root.setProperty(InstallableUnitDescription.PROP_TYPE_PRODUCT, Boolean.TRUE.toString()); root.setUpdateDescriptor(MetadataFactory.createUpdateDescriptor(id, VersionRange.emptyRange, IUpdateDescriptor.NORMAL, null)); root.setProperty(InstallableUnitDescription.PROP_TYPE_GROUP, Boolean.TRUE.toString()); root.setCapabilities(new IProvidedCapability[] {createSelfCapability(id, version)}); // TODO why is the type OSGI? root.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); return root; }
/** * Create a CU whose id is flavor+id.type.configspec with the given version. * The resultant IU has the self capability and an abstract capabilty in the flavor+id namespace * with the name id.type and the given version. This allows others to create an abstract * dependency on having one of these things around but not having to list out the configs. */ private IInstallableUnit createCU(String cuId, Version cuVersion, String cuType, String cuFlavor, String configSpec, Map<String, String> touchpointData) { InstallableUnitDescription cu = new InstallableUnitDescription(); String resultId = createCUIdString(cuId, cuType, cuFlavor, configSpec); cu.setId(resultId); cu.setVersion(cuVersion); cu.setFilter(createFilterSpec(configSpec)); IProvidedCapability selfCapability = PublisherHelper.createSelfCapability(resultId, cuVersion); String namespace = getAbstractCUCapabilityNamespace(cuId, cuType, cuFlavor, configSpec); String abstractId = getAbstractCUCapabilityId(cuId, cuType, cuFlavor, configSpec); IProvidedCapability abstractCapability = MetadataFactory.createProvidedCapability(namespace, abstractId, cuVersion); cu.setCapabilities(new IProvidedCapability[] {selfCapability, abstractCapability}); cu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); cu.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); return MetadataFactory.createInstallableUnit(cu); }
/** * Publishes the IUs that cause the executable to be actually set as the launcher for * the profile */ private void publishExecutableSetter(ExecutablesDescriptor brandedExecutables, IPublisherResult result) { InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription(); String executableName = brandedExecutables.getExecutableName(); String id = getExecutableId() + '.' + executableName; iud.setId(id); iud.setVersion(version); iud.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); iud.setCapabilities(new IProvidedCapability[] {createSelfCapability(id, version)}); iud.setFilter(createFilterSpec(configSpec)); Map<String, String> touchpointData = new HashMap<String, String>(); touchpointData.put("configure", "setLauncherName(name:" + executableName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ touchpointData.put("unconfigure", "setLauncherName()"); //$NON-NLS-1$ //$NON-NLS-2$ iud.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); result.addIU(MetadataFactory.createInstallableUnit(iud), IPublisherResult.ROOT); }
/** * Publishes the IUs that cause the executable to be actually set as the launcher for * the profile */ private void publishExecutableSetter(ExecutablesDescriptor brandedExecutables, IPublisherResult result) { InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription(); String executableName = brandedExecutables.getExecutableName(); String id = getExecutableId() + '.' + executableName; iud.setId(id); iud.setVersion(version); iud.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); iud.setCapabilities(new IProvidedCapability[] {createSelfCapability(id, version)}); iud.setFilter(createFilterSpec(configSpec)); Map<String, String> touchpointData = new HashMap<>(); touchpointData.put("configure", "setLauncherName(name:" + executableName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ touchpointData.put("unconfigure", "setLauncherName()"); //$NON-NLS-1$ //$NON-NLS-2$ iud.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); result.addIU(MetadataFactory.createInstallableUnit(iud), IPublisherResult.ROOT); }
/** * Publishes the IUs that cause the executable to be actually set as the launcher for * the profile */ private void publishExecutableSetter(ExecutablesDescriptor brandedExecutables, IPublisherResult result) { InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription(); String executableName = brandedExecutables.getExecutableName(); String id = getExecutableId() + '.' + executableName; iud.setId(id); iud.setVersion(version); iud.setTouchpointType(PublisherHelper.TOUCHPOINT_OSGI); iud.setCapabilities(new IProvidedCapability[] {createSelfCapability(id, version)}); iud.setFilter(createFilterSpec(configSpec)); Map<String, String> touchpointData = new HashMap<String, String>(); touchpointData.put("configure", "setLauncherName(name:" + executableName + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ touchpointData.put("unconfigure", "setLauncherName()"); //$NON-NLS-1$ //$NON-NLS-2$ iud.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); result.addIU(MetadataFactory.createInstallableUnit(iud), IPublisherResult.ROOT); }
protected void addSelfCapability(InstallableUnitDescription root) { root.setCapabilities(new IProvidedCapability[] {createSelfCapability(root.getId(), root.getVersion())}); }
protected void addSelfCapability(InstallableUnitDescription root) { root.setCapabilities(new IProvidedCapability[] {createSelfCapability(root.getId(), root.getVersion())}); }
protected void addSelfCapability(InstallableUnitDescription root) { root.setCapabilities(new IProvidedCapability[] {createSelfCapability(root.getId(), root.getVersion())}); }
protected void addSelfCapability(InstallableUnitDescription root) { root.setCapabilities(new IProvidedCapability[] {createSelfCapability(root.getId(), root.getVersion())}); }