Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/uml/org.eclipse.papyrus.uml.export/src/org/eclipse/papyrus/uml/export/util/PluginExportUtil.java')
-rw-r--r--extraplugins/uml/org.eclipse.papyrus.uml.export/src/org/eclipse/papyrus/uml/export/util/PluginExportUtil.java541
1 files changed, 0 insertions, 541 deletions
diff --git a/extraplugins/uml/org.eclipse.papyrus.uml.export/src/org/eclipse/papyrus/uml/export/util/PluginExportUtil.java b/extraplugins/uml/org.eclipse.papyrus.uml.export/src/org/eclipse/papyrus/uml/export/util/PluginExportUtil.java
deleted file mode 100644
index f38914264f7..00000000000
--- a/extraplugins/uml/org.eclipse.papyrus.uml.export/src/org/eclipse/papyrus/uml/export/util/PluginExportUtil.java
+++ /dev/null
@@ -1,541 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2012 CEA LIST.
- *
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Saadia DHOUIB (CEA LIST) - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.export.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.core.build.IBuildEntry;
-import org.eclipse.pde.core.build.IBuildModel;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginModel;
-import org.eclipse.pde.core.plugin.IPluginModelBase;
-import org.eclipse.pde.internal.build.IBuildPropertiesConstants;
-import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.PDECoreMessages;
-import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.build.WorkspaceBuildModel;
-import org.eclipse.pde.internal.core.exports.FeatureExportInfo;
-import org.eclipse.pde.internal.core.exports.PluginExportOperation;
-import org.eclipse.pde.internal.core.feature.WorkspaceFeatureModel;
-import org.eclipse.pde.internal.core.plugin.WorkspacePluginModelBase;
-import org.eclipse.pde.internal.core.project.PDEProject;
-import org.eclipse.pde.internal.ui.IPreferenceConstants;
-import org.eclipse.pde.internal.ui.PDELabelProvider;
-import org.eclipse.pde.internal.ui.PDEPlugin;
-import org.eclipse.pde.internal.ui.PDEPluginImages;
-import org.eclipse.pde.internal.ui.PDEUIMessages;
-import org.eclipse.pde.internal.ui.build.RuntimeInstallJob;
-import org.eclipse.pde.internal.ui.wizards.IProjectProvider;
-import org.eclipse.pde.internal.ui.wizards.plugin.NewProjectCreationOperation;
-import org.eclipse.pde.internal.ui.wizards.plugin.PluginFieldData;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.program.Program;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressConstants;
-import org.osgi.service.prefs.BackingStoreException;
-
-import com.ibm.icu.text.MessageFormat;
-
-// TODO: Auto-generated Javadoc
-/**
- * The Class PluginExportUtil.
- */
-@SuppressWarnings("restriction")
-public class PluginExportUtil {
-
-
- /** The Constant MAX_RETRY. */
- protected static final int MAX_RETRY = 3;
-
- /** The Constant SrcFolderName. */
- private static final String SrcFolderName = "src";
-
-
-
-
-
- /**
- * Creates the plugin.
- *
- * @param progressMonitor
- * the progress monitor
- * @param pluginName
- * the plugin name
- * @param executionEnvironment
- * the execution environment
- * @param pluginVersion
- * the plugin version
- * @param provider
- * the provider
- * @return the i project
- */
- public IProject createPlugin(IProgressMonitor progressMonitor, final String pluginName, String executionEnvironment, String pluginVersion, String provider) {
-
-
- PluginFieldData fPluginData = new PluginFieldData();
- fPluginData.setProvider(provider);
- fPluginData.setId(pluginName);
- fPluginData.setName(pluginName);
- fPluginData.setSourceFolderName(SrcFolderName);
- fPluginData.setVersion(pluginVersion);
- fPluginData.setWorkingSets(null);
- fPluginData.setClassname(pluginName + ".Activator");
- fPluginData.setDoGenerateClass(true);
- fPluginData.setExecutionEnvironment(executionEnvironment);
- fPluginData.setOSGiFramework(null);
- fPluginData.setHasBundleStructure(true);
- fPluginData.setUIPlugin(true);
- fPluginData.setLegacy(false);
- fPluginData.setLibraryName(null);
- fPluginData.setOutputFolderName("bin");
- fPluginData.setRCPApplicationPlugin(false);
- fPluginData.setEnableAPITooling(false);
- fPluginData.setSimple(false);
- fPluginData.setTargetVersion("3.7");
- IWorkingSet[] workingSets = {};
- fPluginData.setWorkingSets(workingSets);
-
-
-
-
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- final IProject project = root.getProject(pluginName);
-
-
-
- IProjectProvider fProjectProvider = new IProjectProvider() {
-
- @Override
- public String getProjectName() {
- // TODO Auto-generated method stub
- return pluginName;
- }
-
- @Override
- public IProject getProject() {
- // TODO Auto-generated method stub
- return project;
- }
-
- @Override
- public IPath getLocationPath() {
- // TODO Auto-generated method stub
- return ResourcesPlugin.getWorkspace().getRoot().getLocation();
- }
- };
-
- NewProjectCreationOperation op = new NewProjectCreationOperation(fPluginData, fProjectProvider, null);
-
- try {
-
- op.run(progressMonitor);
- } catch (InvocationTargetException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (InterruptedException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- return project;
-
- }
-
- /**
- * Export profile plugin.
- *
- * @param shell
- * the shell
- * @param object
- * the object
- * @param installationDirectory
- * the installation directory
- * @param installedProfilesUri
- * the installed profiles uri
- * @return true, if successful
- */
- public boolean exportProfilePlugin(Shell shell, Object object, String installationDirectory, List<InstalledProfileURI> installedProfilesUri) {
-
- if (!PlatformUI.getWorkbench().saveAllEditors(true)) {
- return false;
- }
-
- if (!performPreliminaryChecks(shell, object)) {
- return false;
- }
-
- scheduleExportJob(object, installationDirectory, installedProfilesUri);
-
- return true;
-
- }
-
-
- /**
- * Schedule export job.
- *
- * @param object
- * the object
- * @param installationDirectory
- * the installation directory
- * @param installedProfilesUri
- * the installed profiles uri
- */
- protected void scheduleExportJob(Object object, String installationDirectory, final List<InstalledProfileURI> installedProfilesUri) {
- Object obj[] = new Object[1];
- obj[0] = object;
- final FeatureExportInfo info = new FeatureExportInfo();
- info.toDirectory = true;
- info.useJarFormat = true;
- info.exportSource = true;
- info.exportSourceBundle = false;
- info.allowBinaryCycles = true;
- info.useWorkspaceCompiledClasses = false;
- info.destinationDirectory = installationDirectory;
-
- info.zipFileName = null;
- info.items = obj;
- info.signingInfo = null;
- info.qualifier = null;
-
- final boolean installAfterExport = true;
- if (installAfterExport) {
- RuntimeInstallJob.modifyInfoForInstall(info);
- }
-
- final PluginExportOperation job = new PluginExportOperation(info, PDEUIMessages.PluginExportJob_name);
- job.setUser(true);
- job.setRule(ResourcesPlugin.getWorkspace().getRoot());
- job.setProperty(IProgressConstants.ICON_PROPERTY, PDEPluginImages.DESC_PLUGIN_OBJ);
- job.addJobChangeListener(new JobChangeAdapter() {
-
- @Override
- 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() {
-
- @Override
- public void run() {
- ExportErrorDialog dialog = new ExportErrorDialog(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);
- // add preferences that contain the information about the correspondence between the installed and the local profiles
- editPreferences(installedProfilesUri);
- installJob.schedule();
- }
- }
- });
- job.schedule();
- }
-
- /**
- * Edits the preferences.
- *
- * @param installedProfilesUri
- * the installed profiles uri
- */
- private void editPreferences(List<InstalledProfileURI> installedProfilesUri) {
- // TODO Auto-generated method stub
- IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode("org.eclipse.papyrus.uml.export");
- org.osgi.service.prefs.Preferences node = preferences.node("installedProfilesUriCorrespondance");
- for (InstalledProfileURI p : installedProfilesUri) {
- node.put(p.getUri_local(), p.getUri_installed());
-
-
- try {
- // Forces the application to save the preferences
- preferences.flush();
- } catch (BackingStoreException e2) {
- e2.printStackTrace();
- }
- }
-
- }
-
- /**
- * Perform preliminary checks.
- *
- * @param shell
- * the shell
- * @param object
- * the object
- * @return true, if successful
- */
- @SuppressWarnings("unchecked")
- protected boolean performPreliminaryChecks(Shell shell, Object object) {
- // Check if we are going to overwrite an existing build.xml file
- if (!MessageDialogWithToggle.ALWAYS.equals(PDEPlugin.getDefault().getPreferenceStore().getString(IPreferenceConstants.OVERWRITE_BUILD_FILES_ON_EXPORT))) {
-
- @SuppressWarnings("rawtypes")
- List problemModels = new ArrayList();
-
- String installLocation = null;
- IResource underlyingResource = null;
- if (object instanceof WorkspacePluginModelBase) {
- installLocation = ((WorkspacePluginModelBase) object).getInstallLocation();
- underlyingResource = ((WorkspacePluginModelBase) object).getUnderlyingResource();
- } else if (object instanceof WorkspaceFeatureModel) {
- installLocation = ((WorkspaceFeatureModel) object).getInstallLocation();
- underlyingResource = ((WorkspaceFeatureModel) object).getUnderlyingResource();
- }
- if (installLocation != null && underlyingResource != null) {
- File file = new File(installLocation, "build.xml"); //$NON-NLS-1$
- if (file.exists()) {
- try {
- IFile buildFile = PDEProject.getBuildProperties(underlyingResource.getProject());
- IBuildModel buildModel = new WorkspaceBuildModel(buildFile);
- buildModel.load();
- if (buildModel != null) {
- IBuildEntry entry = buildModel.getBuild().getEntry(IBuildPropertiesConstants.PROPERTY_CUSTOM);
- if (entry == null || !entry.contains(IBuildPropertiesConstants.TRUE)) {
- problemModels.add(object);
- }
- }
- } catch (CoreException e) {
- PDEPlugin.log(e);
- }
- }
- }
-
- if (problemModels.size() > 0) {
- StringBuffer buf = new StringBuffer();
- PDELabelProvider labelProvider = new PDELabelProvider();
- int maxCount = 10;
- for (Iterator<Object> iterator = problemModels.iterator(); iterator.hasNext();) {
- buf.append(labelProvider.getText(iterator.next()));
- buf.append('\n');
- maxCount--;
- if (maxCount <= 0) {
- buf.append(Dialog.ELLIPSIS);
- break;
- }
- }
-
- MessageDialogWithToggle dialog = MessageDialogWithToggle.openOkCancelConfirm(shell, PDEUIMessages.AntGeneratingExportWizard_0, MessageFormat.format(PDEUIMessages.AntGeneratingExportWizard_1, buf.toString()),
- PDEUIMessages.AntGeneratingExportWizard_2, false, PDEPlugin.getDefault().getPreferenceStore(), IPreferenceConstants.OVERWRITE_BUILD_FILES_ON_EXPORT);
- if (dialog.getReturnCode() == Window.CANCEL) {
- return false;
- }
- }
- }
-
- return true;
- }
-
- /**
- * The Class ExportErrorDialog.
- */
- protected class ExportErrorDialog extends MessageDialog {
-
- /** The log location. */
- private File fLogLocation;
-
- /**
- * Instantiates a new export error dialog.
- *
- * @param logLocation
- * the log location
- */
- public ExportErrorDialog(File logLocation) {
- super(PlatformUI.getWorkbench().getDisplay().getActiveShell(), PDECoreMessages.FeatureBasedExportOperation_ProblemDuringExport, null, null, MessageDialog.ERROR, new String[] { IDialogConstants.OK_LABEL }, 0);
- fLogLocation = logLocation;
- }
-
- /**
- * Creates the message area.
- *
- * @param composite
- * the composite
- * @return the control
- * @see org.eclipse.jface.dialogs.IconAndMessageDialog#createMessageArea(org.eclipse.swt.widgets.Composite)
- */
-
- @Override
- protected Control createMessageArea(Composite composite) {
- Link link = new Link(composite, SWT.WRAP);
- try {
- link.setText(NLS.bind(PDEUIMessages.PluginExportWizard_Ant_errors_during_export_logs_generated, "<a>" + fLogLocation.getCanonicalPath() + "</a>")); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (IOException e) {
- PDEPlugin.log(e);
- }
- GridData data = new GridData();
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
- link.setLayoutData(data);
- link.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- try {
- Program.launch(fLogLocation.getCanonicalPath());
- } catch (IOException ex) {
- PDEPlugin.log(ex);
- }
- }
- });
- return link;
- }
- }
-
- // public void createJarFromPlugin(final IProject project, Shell parentShell){
- // JarPackageData description= new JarPackageData();
- // IPath location= new Path("projectDir+File.separator+jarFileName");
- // description.setJarLocation(location);
- // description.setManifestMainClass(mainType);
- // description.setExportClassFiles(true);
- // description.setExportOutputFolders(false);
- // description.setExportErrors(true);
- // description.setExportWarnings(true);
- // description.setOverwrite(true);
- // description.setGenerateManifest(true);
- // description.setElements(filestoExport);
- // IJarExportRunnable runnable= description.createJarExportRunnable(parentShell);
- // try {
- // new ProgressMonitorDialog(parentShell).run(true,true, runnable);S
- // } catch (InvocationTargetException e) {
- // } catch (InterruptedException e) {
- // }
- // return;
- // }
-
-
- /**
- * Delete.
- *
- * @param project
- * the project to delete.
- * @throws CoreException
- * the core exception
- */
- public void delete(final IProject project) throws CoreException {
- IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-
- @Override
- public void run(IProgressMonitor monitor) throws CoreException {
- // jproject.setRawClasspath(new IClasspathEntry[0], jproject
- // .getProject().getFullPath(), null);
- for (int i = 0; i < MAX_RETRY; i++) {
- try {
- IProject tmpProject = project.getProject();
- synchronized (tmpProject) {
- if (tmpProject.exists()) {
- tmpProject.delete(true, true, null);
- }
- }
- i = MAX_RETRY;
- } catch (CoreException e) {
- if (i == MAX_RETRY - 1) {
-
- throw e;
- }
- try {
- Thread.sleep(1000); // sleep a second
- } catch (InterruptedException e1) {
- }
- }
- }
- }
- };
- ResourcesPlugin.getWorkspace().run(runnable, null);
- }
-
- /**
- * Gets the plugin model for project.
- *
- * @param project
- * the project
- * @return the plugin model for project
- */
- public static IPluginModel getPluginModelForProject(final IProject project) {
-
- PluginModelManager pmm = PDECore.getDefault().getModelManager();
- IPluginModelBase[] wsPlugins = pmm.getWorkspaceModels();
-
- if (wsPlugins.length == 0) {
- // ErrorHandler.reportError("Project " + project.getName() + " is not a plugin project (no plugin projects)?", false);
- return null;
- }
- for (int i = 0; i < wsPlugins.length; i++) {
- IPluginModelBase wsPlugin = wsPlugins[i];
-
-
-
- // May get both workspace and project plugin models
- // (although only the latter are of interest)
- IPluginBase pmBase = wsPlugin.getPluginBase();
- if (pmBase == null) {
- continue;
- }
- String id = pmBase.getId();
- if (id == null) {
- continue;
- }
- String projName = project.getName();
- if (projName == null) {
- continue;
- }
-
-
- String resourceLocation = pmBase.getModel().getUnderlyingResource().getLocation().toString();
- if (resourceLocation.endsWith(projName + "/META-INF/MANIFEST.MF")) {
- return (IPluginModel) wsPlugin;
- }
-
- }
- // ErrorHandler.reportError("Could not find plugin for project " + project.getName(), false);
- return null;
- }
-
-}

Back to the top