@Override public String getSourceLocation() { IResource sourceResource; String sourceLocation = null; if (fFileSystemObject.isDirectory()) { sourceResource = ResourcesPlugin.getWorkspace() .getRoot() .getContainerForLocation(Path.fromOSString(fFileSystemObject.getAbsolutePath())); } else { sourceResource = ResourcesPlugin.getWorkspace() .getRoot() .getFileForLocation(Path.fromOSString(fFileSystemObject.getAbsolutePath())); } if (sourceResource != null && sourceResource.exists()) { try { sourceLocation = sourceResource.getPersistentProperty(TmfCommonConstants.SOURCE_LOCATION); } catch (CoreException e) { // Something went wrong with the already existing resource. // This is not a problem, we'll assign a new location below. } } if (sourceLocation == null) { try { sourceLocation = URIUtil.toUnencodedString(fFileSystemObject.getCanonicalFile().toURI()); } catch (IOException e) { // Something went wrong canonicalizing the file. We can still // use the URI but there might be extra ../ in it. sourceLocation = URIUtil.toUnencodedString(fFileSystemObject.toURI()); } } return sourceLocation; }
public static void updateRepositoryUsingElements( final ProvisioningUI ui, final MetadataRepositoryElement[] elements) { ui.signalRepositoryOperationStart(); IMetadataRepositoryManager metaManager = ProvUI.getMetadataRepositoryManager(ui.getSession()); IArtifactRepositoryManager artManager = ProvUI.getArtifactRepositoryManager(ui.getSession()); try { int visibilityFlags = ui.getRepositoryTracker().getMetadataRepositoryFlags(); URI[] currentlyEnabled = metaManager.getKnownRepositories(visibilityFlags); URI[] currentlyDisabled = metaManager.getKnownRepositories( IRepositoryManager.REPOSITORIES_DISABLED | visibilityFlags); for (int i = 0; i < elements.length; i++) { URI location = elements[i].getLocation(); if (elements[i].isEnabled()) { if (containsURI(currentlyDisabled, location)) // It should be enabled and is not currently setColocatedRepositoryEnablement(ui, location, true); else if (!containsURI(currentlyEnabled, location)) { // It is not known as enabled or disabled. Add it. metaManager.addRepository(location); artManager.addRepository(location); } } else { if (containsURI(currentlyEnabled, location)) // It should be disabled, and is currently enabled setColocatedRepositoryEnablement(ui, location, false); else if (!containsURI(currentlyDisabled, location)) { // It is not known as enabled or disabled. Add it and then disable it. metaManager.addRepository(location); artManager.addRepository(location); setColocatedRepositoryEnablement(ui, location, false); } } String name = elements[i].getName(); if (name != null && name.length() > 0) { metaManager.setRepositoryProperty(location, IRepository.PROP_NICKNAME, name); artManager.setRepositoryProperty(location, IRepository.PROP_NICKNAME, name); } } // Are there any elements that need to be deleted? Go over the original state // and remove any elements that weren't in the elements we were given Set<String> nowKnown = new HashSet<String>(); for (int i = 0; i < elements.length; i++) nowKnown.add(URIUtil.toUnencodedString(elements[i].getLocation())); for (int i = 0; i < currentlyEnabled.length; i++) { if (!nowKnown.contains(URIUtil.toUnencodedString(currentlyEnabled[i]))) { metaManager.removeRepository(currentlyEnabled[i]); artManager.removeRepository(currentlyEnabled[i]); } } for (int i = 0; i < currentlyDisabled.length; i++) { if (!nowKnown.contains(URIUtil.toUnencodedString(currentlyDisabled[i]))) { metaManager.removeRepository(currentlyDisabled[i]); artManager.removeRepository(currentlyDisabled[i]); } } } finally { ui.signalRepositoryOperationComplete(null, true); } }
/** * Returns the file path where the given resolved bundle can be found. Used to group bundles by * file path in the tree. * * @param bundle bundle to lookup parent path for * @return path of parent directory, if unknown it will be a path object containing "Unknown" */ private IPath getParentPath(IResolvedBundle bundle) { URI location = bundle.getBundleInfo().getLocation(); if (location == null) { return new Path(Messages.TargetContentsGroup_8); } IPath path = new Path(URIUtil.toUnencodedString(location)); path = path.removeLastSegments(1); return path; }
public URI map( URI repositoryLocation, String classifier, String id, String version, String format) { String locationString = URIUtil.toUnencodedString(repositoryLocation); Dictionary<String, Object> values = new Hashtable<String, Object>(5); if (repositoryLocation != null) values.put(REPOURL, locationString); if (classifier != null) values.put(CLASSIFIER, classifier); if (id != null) values.put(ID, id); if (version != null) values.put(VERSION, version); if (format != null) values.put(FORMAT, format); for (int i = 0; i < filters.length; i++) { if (filters[i].match(values)) return doReplacement(outputStrings[i], locationString, classifier, id, version, format); } return null; }
protected void scheduleExportJob() { // NOTE: Any changes to the content here must also be copied to generateAntTask() and // FeatureExportTask final FeatureExportInfo info = new FeatureExportInfo(); info.toDirectory = fPage.doExportToDirectory(); info.useJarFormat = fPage.useJARFormat(); info.exportSource = fPage.doExportSource(); info.exportSourceBundle = fPage.doExportSourceBundles(); info.allowBinaryCycles = fPage.allowBinaryCycles(); info.useWorkspaceCompiledClasses = fPage.useWorkspaceCompiledClasses(); info.destinationDirectory = fPage.getDestination(); info.zipFileName = fPage.getFileName(); if (fPage2 != null && ((FeatureExportWizardPage) fPage).doMultiPlatform()) info.targets = fPage2.getTargets(); info.exportMetadata = ((FeatureExportWizardPage) fPage).doExportMetadata(); info.items = fPage.getSelectedItems(); info.signingInfo = fPage.getSigningInfo(); info.jnlpInfo = ((FeatureExportWizardPage) fPage).getJNLPInfo(); info.qualifier = fPage.getQualifier(); if (((FeatureExportWizardPage) fPage).getCategoryDefinition() != null) info.categoryDefinition = URIUtil.toUnencodedString(((FeatureExportWizardPage) fPage).getCategoryDefinition()); final boolean installAfterExport = fPage.doInstall(); if (installAfterExport) { info.useJarFormat = true; info.exportMetadata = true; if (info.qualifier == null) { // Set the date explicitly since the time can change before the install job runs info.qualifier = QualifierReplacer.getDateQualifier(); } } final FeatureExportOperation job = new FeatureExportOperation(info, PDEUIMessages.FeatureExportJob_name); job.setUser(true); job.setRule(ResourcesPlugin.getWorkspace().getRoot()); job.setProperty(IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_FEATURE_OBJ); job.addJobChangeListener( new JobChangeAdapter() { public void done(IJobChangeEvent event) { if (job.hasAntErrors()) { // If there were errors when running the ant scripts, inform the user where the logs // can be found. final File logLocation = new File(info.destinationDirectory, "logs.zip"); // $NON-NLS-1$ if (logLocation.exists()) { PlatformUI.getWorkbench() .getDisplay() .syncExec( new Runnable() { public void run() { AntErrorDialog dialog = new AntErrorDialog(logLocation); dialog.open(); } }); } } else if (event.getResult().isOK() && installAfterExport) { // Install the export into the current running platform RuntimeInstallJob installJob = new RuntimeInstallJob(PDEUIMessages.PluginExportWizard_InstallJobName, info); installJob.setUser(true); installJob.setProperty( IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_FEATURE_OBJ); installJob.schedule(); } } }); job.schedule(); }