private FileSetDescriptor initDescriptor(ConfigSpec configuration, String configurationAsString) { String fileSetDescriptorKey = configuration.equals(ConfigSpec.GLOBAL) ? RootPropertiesParser.ROOT_KEY_SEGMENT : RootPropertiesParser.ROOT_KEY_SEGMENT + '.' + configurationAsString; FileSetDescriptor rootFilesDescriptor = new FileSetDescriptor(fileSetDescriptorKey, configurationAsString); return rootFilesDescriptor; }
private void addFiles(RootFilesProperties rootProperties, FileSetDescriptor rootFilesDescriptor) { FileToPathMap sourceToDestinationMap = rootProperties.getFileMap(); if (sourceToDestinationMap == null) return; Set<File> sourceFiles = sourceToDestinationMap.keySet(); rootFilesDescriptor.addFiles(sourceFiles.toArray(new File[sourceFiles.size()])); }
public void addPermissions(String config, String permissions, String[] files) { FileSetDescriptor descriptor = getDescriptor(config); for (int i = 0; i < files.length; i++) { descriptor.addPermissions(new String[] {permissions, files[i]}); } }
protected ArrayList<IInstallableUnit> generateRootFileIUs(Feature feature, IPublisherResult result, IPublisherInfo publisherInfo) { ArrayList<IInstallableUnit> ius = new ArrayList<IInstallableUnit>(); Collection<IFeatureRootAdvice> collection = publisherInfo.getAdvice(null, false, feature.getId(), Version.parseVersion(feature.getVersion()), IFeatureRootAdvice.class); if (collection.size() == 0) return ius; IFeatureRootAdvice advice = collection.iterator().next(); String[] configs = advice.getConfigurations(); for (int i = 0; i < configs.length; i++) { String config = configs[i]; FileSetDescriptor descriptor = advice.getDescriptor(config); if (descriptor != null && descriptor.size() > 0) { IInstallableUnit iu = createFeatureRootFileIU(feature.getId(), feature.getVersion(), null, descriptor); File[] files = descriptor.getFiles(); IArtifactKey artifactKey = iu.getArtifacts().iterator().next(); IArtifactDescriptor artifactDescriptor = PublisherHelper.createArtifactDescriptor(info, artifactKey, null); IPathComputer computer = advice.getRootFileComputer(config); if (computer == null) computer = FileUtils.createDynamicPathComputer(1); publishArtifact(artifactDescriptor, files, null, publisherInfo, computer); result.addIU(iu, IPublisherResult.NON_ROOT); ius.add(iu); } } return ius; }
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; }
public void addLinks(String config, String links) { FileSetDescriptor descriptor = getDescriptor(config); descriptor.setLinks(links); }
private void setupPermissions(InstallableUnitDescription iu, FileSetDescriptor descriptor) { Map<String, String> touchpointData = new HashMap<String, String>(); String[][] permsList = descriptor.getPermissions(); for (int i = 0; i < permsList.length; i++) { String[] permSpec = permsList[i]; String configurationData = " chmod(targetDir:${installFolder}, targetFile:" + permSpec[1] + ", permissions:" + permSpec[0] + ");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ touchpointData.put("install", configurationData); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); } } }
private void setupLinks(InstallableUnitDescription iu, FileSetDescriptor descriptor) { String[] links = getArrayFromString(descriptor.getLinks(), ","); //$NON-NLS-1$ StringBuffer linkActions = new StringBuffer(); int i = 0; while (i < links.length) { //format is [target,name]* String target = links[i++]; if (i < links.length) { String name = links[i++]; linkActions.append("ln(linkTarget:" + target); //$NON-NLS-1$ linkActions.append(",targetDir:${installFolder},linkName:" + name); //$NON-NLS-1$ linkActions.append(");"); //$NON-NLS-1$ } } if (linkActions.length() > 0) { Map<String, String> touchpointData = new HashMap<String, String>(); //we do ln during configure to avoid complicating branding which uses the install phase touchpointData.put("configure", linkActions.toString()); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); } }
protected ArrayList<IInstallableUnit> generateRootFileIUs(Feature feature, IPublisherResult result, IPublisherInfo publisherInfo) { ArrayList<IInstallableUnit> ius = new ArrayList<>(); Collection<IFeatureRootAdvice> collection = publisherInfo.getAdvice(null, false, feature.getId(), Version.parseVersion(feature.getVersion()), IFeatureRootAdvice.class); if (collection.size() == 0) return ius; IFeatureRootAdvice advice = collection.iterator().next(); String[] configs = advice.getConfigurations(); for (int i = 0; i < configs.length; i++) { String config = configs[i]; FileSetDescriptor descriptor = advice.getDescriptor(config); if (descriptor != null && descriptor.size() > 0) { IInstallableUnit iu = createFeatureRootFileIU(feature.getId(), feature.getVersion(), null, descriptor); File[] files = descriptor.getFiles(); IArtifactKey artifactKey = iu.getArtifacts().iterator().next(); IArtifactDescriptor artifactDescriptor = PublisherHelper.createArtifactDescriptor(info, artifactKey, null); IPathComputer computer = advice.getRootFileComputer(config); if (computer == null) computer = FileUtils.createDynamicPathComputer(1); publishArtifact(artifactDescriptor, files, null, publisherInfo, computer); result.addIU(iu, IPublisherResult.NON_ROOT); ius.add(iu); } } return ius; }
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; }
public void addLinks(String config, String links) { FileSetDescriptor descriptor = getDescriptor(config); descriptor.setLinks(links); }
private void setupPermissions(InstallableUnitDescription iu, FileSetDescriptor descriptor) { Map<String, String> touchpointData = new HashMap<String, String>(); String[][] permsList = descriptor.getPermissions(); for (int i = 0; i < permsList.length; i++) { String[] permSpec = permsList[i]; String configurationData = " chmod(targetDir:${installFolder}, targetFile:" + permSpec[1] + ", permissions:" + permSpec[0] + ");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ touchpointData.put("install", configurationData); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); } } }
private void setupLinks(InstallableUnitDescription iu, FileSetDescriptor descriptor) { String[] links = getArrayFromString(descriptor.getLinks(), ","); //$NON-NLS-1$ StringBuffer linkActions = new StringBuffer(); int i = 0; while (i < links.length) { //format is [target,name]* String target = links[i++]; if (i < links.length) { String name = links[i++]; linkActions.append("ln(linkTarget:" + target); //$NON-NLS-1$ linkActions.append(",targetDir:${installFolder},linkName:" + name); //$NON-NLS-1$ linkActions.append(");"); //$NON-NLS-1$ } } if (linkActions.length() > 0) { Map<String, String> touchpointData = new HashMap<>(); //we do ln during configure to avoid complicating branding which uses the install phase touchpointData.put("configure", linkActions.toString()); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); } }
protected ArrayList<IInstallableUnit> generateRootFileIUs(Feature feature, IPublisherResult result, IPublisherInfo publisherInfo) { ArrayList<IInstallableUnit> ius = new ArrayList<IInstallableUnit>(); Collection<IFeatureRootAdvice> collection = publisherInfo.getAdvice(null, false, feature.getId(), Version.parseVersion(feature.getVersion()), IFeatureRootAdvice.class); if (collection.size() == 0) return ius; IFeatureRootAdvice advice = collection.iterator().next(); String[] configs = advice.getConfigurations(); for (int i = 0; i < configs.length; i++) { String config = configs[i]; FileSetDescriptor descriptor = advice.getDescriptor(config); if (descriptor != null && descriptor.size() > 0) { IInstallableUnit iu = createFeatureRootFileIU(feature.getId(), feature.getVersion(), null, descriptor); File[] files = descriptor.getFiles(); IArtifactKey artifactKey = iu.getArtifacts().iterator().next(); ArtifactDescriptor artifactDescriptor = new ArtifactDescriptor(artifactKey); IPathComputer computer = advice.getRootFileComputer(config); if (computer == null) computer = FileUtils.createDynamicPathComputer(1); publishArtifact(artifactDescriptor, files, null, publisherInfo, computer); result.addIU(iu, IPublisherResult.NON_ROOT); ius.add(iu); } } return ius; }
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; }
public void addPermissions(String config, String permissions, String[] files) { FileSetDescriptor descriptor = getDescriptor(config); for (int i = 0; i < files.length; i++) { descriptor.addPermissions(new String[] {permissions, files[i]}); } }
public FileSetDescriptor getDescriptor(String config) { Object[] configAdvice = getConfigAdvice(config); FileSetDescriptor descriptor = null; if (configAdvice[IDX_DESCRIPTOR] != null) descriptor = (FileSetDescriptor) configAdvice[IDX_DESCRIPTOR]; else { String key = "root"; //$NON-NLS-1$ if (config.length() > 0) key += "." + config; //$NON-NLS-1$ descriptor = new FileSetDescriptor(key, config); configAdvice[IDX_DESCRIPTOR] = descriptor; } return descriptor; }
public void addRootfiles(String config, GatheringComputer computer) { Object[] configAdvice = getConfigAdvice(config); if (configAdvice[IDX_COMPUTER] == null) configAdvice[IDX_COMPUTER] = computer; else { GatheringComputer existing = (GatheringComputer) configAdvice[IDX_COMPUTER]; existing.addAll(computer); } FileSetDescriptor descriptor = getDescriptor(config); descriptor.addFiles(computer.getFiles()); }
public void addLinks(String config, String links) { FileSetDescriptor descriptor = getDescriptor(config); descriptor.setLinks(links); }
private void setupPermissions(InstallableUnitDescription iu, FileSetDescriptor descriptor) { Map<String, String> touchpointData = new HashMap<>(); String[][] permsList = descriptor.getPermissions(); for (int i = 0; i < permsList.length; i++) { String[] permSpec = permsList[i]; String configurationData = " chmod(targetDir:${installFolder}, targetFile:" + permSpec[1] + ", permissions:" + permSpec[0] + ");"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ touchpointData.put("install", configurationData); //$NON-NLS-1$ iu.addTouchpointData(MetadataFactory.createTouchpointData(touchpointData)); } } }