Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.setup/src/org')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java)51
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java540
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java348
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java511
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java538
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java115
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java121
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java103
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java49
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java103
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java)32
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java)83
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java)32
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java49
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java)39
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java20
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java53
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java23
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java108
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java2236
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java139
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java54
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java302
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java103
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java69
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java68
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java67
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java327
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java47
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java355
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java340
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java292
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java515
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java306
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java231
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java374
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java)131
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java102
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java411
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java615
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java77
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java)84
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java215
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java516
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java64
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java150
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java298
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java322
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java144
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java1045
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java164
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java471
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java355
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java221
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java250
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java212
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java289
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java)14
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java)18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java)24
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java58
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java340
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java497
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java19
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java155
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java)4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java)8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java)2
81 files changed, 12941 insertions, 3541 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java
index 49daa4e6df..5bcf7a3b8b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java
@@ -8,12 +8,13 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.internal.setup;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.IStartup;
import org.osgi.framework.BundleContext;
@@ -24,9 +25,14 @@ public class Activator extends Plugin
{
public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup";
+ public static final boolean SETUP_IDE = "true".equalsIgnoreCase(System.getProperty(
+ "org.eclipse.emf.cdo.releng.setup.ide", "false"));
+
private static Activator plugin;
- static BundleContext bundleContext;
+ private static BundleContext bundleContext;
+
+ private SetupTaskPerformer setupTaskPerformer;
public Activator()
{
@@ -38,11 +44,37 @@ public class Activator extends Plugin
super.start(context);
bundleContext = context;
plugin = this;
+
+ try
+ {
+ if (SETUP_IDE)
+ {
+ setupTaskPerformer = new SetupTaskPerformer(false);
+ setupTaskPerformer.perform();
+ }
+ }
+ catch (Exception ex)
+ {
+ log(ex);
+ }
}
@Override
public void stop(BundleContext context) throws Exception
{
+ try
+ {
+ if (setupTaskPerformer != null)
+ {
+ setupTaskPerformer.dispose();
+ setupTaskPerformer = null;
+ }
+ }
+ catch (Exception ex)
+ {
+ log(ex);
+ }
+
plugin = null;
super.stop(context);
}
@@ -86,8 +118,23 @@ public class Activator extends Plugin
return new Status(IStatus.ERROR, PLUGIN_ID, msg, t);
}
+ public static BundleContext getBundleContext()
+ {
+ return bundleContext;
+ }
+
public static Activator getDefault()
{
return plugin;
}
+
+ /**
+ * @author Eike Stepper
+ */
+ public static final class EarlyStartup implements IStartup
+ {
+ public void earlyStartup()
+ {
+ }
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java
new file mode 100644
index 0000000000..a101cd47c5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java
@@ -0,0 +1,540 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.
+ * 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.internal.setup;
+
+import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog;
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.Setup;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.OS;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @author Eike Stepper
+ */
+public class SetupTaskPerformer extends HashMap<Object, Object> implements SetupTaskContext
+{
+ private static final String RELENG_URL = System.getProperty("releng.url",
+ "http://download.eclipse.org/modeling/emf/cdo/updates/integration").replace('\\', '/');
+
+ private static final long serialVersionUID = 1L;
+
+ private static ProgressLog progress;
+
+ private Trigger trigger;
+
+ private File branchDir;
+
+ private Setup setup;
+
+ private transient boolean restartNeeded;
+
+ private List<String> logMessageBuffer;
+
+ public SetupTaskPerformer(File branchDir)
+ {
+ trigger = Trigger.BOOTSTRAP;
+
+ this.branchDir = branchDir;
+
+ initialize();
+ }
+
+ public SetupTaskPerformer(boolean manual) throws Exception
+ {
+ trigger = manual ? Trigger.MANUAL : Trigger.STARTUP;
+
+ IPath branchDirPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().removeLastSegments(1);
+ branchDir = new File(branchDirPath.toOSString()).getCanonicalFile();
+
+ initialize();
+ }
+
+ private void initialize()
+ {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl());
+
+ URI uri = URI.createFileURI(branchDir.toString() + "/setup.xmi");
+ Resource resource = resourceSet.getResource(uri, true);
+
+ setup = (Setup)resource.getContents().get(0);
+
+ Branch branch = setup.getBranch();
+ String branchName = branch.getName();
+
+ Project project = branch.getProject();
+ String projectName = project.getName();
+
+ put("setup.git.prefix", setup.getPreferences().getGitPrefix());
+ put("setup.install.dir", getInstallDir());
+ put("setup.project.dir", getProjectDir());
+ put("setup.branch.dir", getBranchDir());
+ put("setup.eclipse.dir", getEclipseDir());
+ put("setup.tp.dir", getTargetPlatformDir());
+ put("setup.ws.dir", getWorkspaceDir());
+ put("setup.project.name", projectName);
+ put("setup.branch.name", branchName);
+ put("releng.url", RELENG_URL);
+ }
+
+ public void dispose()
+ {
+ setup = null;
+ branchDir = null;
+ }
+
+ public void log(String line)
+ {
+ if (progress != null)
+ {
+ if (logMessageBuffer != null)
+ {
+ for (String value : logMessageBuffer)
+ {
+ progress.log(value);
+ }
+
+ logMessageBuffer = null;
+ }
+
+ progress.log(line);
+ }
+ else
+ {
+ if (logMessageBuffer == null)
+ {
+ logMessageBuffer = new ArrayList<String>();
+ }
+
+ logMessageBuffer.add(line);
+ }
+ }
+
+ public boolean isCancelled()
+ {
+ if (progress != null)
+ {
+ return progress.isCancelled();
+ }
+
+ return false;
+ }
+
+ public Trigger getTrigger()
+ {
+ return trigger;
+ }
+
+ public boolean isRestartNeeded()
+ {
+ return restartNeeded;
+ }
+
+ public void setRestartNeeded()
+ {
+ restartNeeded = true;
+ }
+
+ private static final Pattern PATTERN = Pattern.compile("\\$\\{([^${}|]+)(\\|([^}]+))?}");
+
+ protected String lookup(String key)
+ {
+ Object object = get(key);
+ if (object != null)
+ {
+ return object.toString();
+ }
+
+ return System.getProperty(key, key);
+ }
+
+ interface StringFilter
+ {
+ public String filter(String value);
+ }
+
+ private static final Map<String, StringFilter> FILTERS = new HashMap<String, StringFilter>();
+
+ static
+ {
+ FILTERS.put("uri", new StringFilter()
+ {
+ public String filter(String value)
+ {
+ return URI.createFileURI(value).toString();
+ }
+ });
+ FILTERS.put("upper", new StringFilter()
+ {
+ public String filter(String value)
+ {
+ return value.toUpperCase();
+ }
+ });
+ FILTERS.put("lower", new StringFilter()
+ {
+ public String filter(String value)
+ {
+ return value.toLowerCase();
+ }
+ });
+ }
+
+ protected String filter(String value, String filterName)
+ {
+ StringFilter filter = FILTERS.get(filterName);
+ if (filter != null)
+ {
+ return filter.filter(value);
+ }
+
+ return value;
+ }
+
+ public String expandString(String string)
+ {
+ StringBuilder result = new StringBuilder();
+ int previous = 0;
+ for (Matcher matcher = PATTERN.matcher(string); matcher.find();)
+ {
+ result.append(string.substring(previous, matcher.start()));
+ String key = matcher.group(1);
+ String value = lookup(key);
+ String filters = matcher.group(3);
+ if (filters != null)
+ {
+ for (String filterName : filters.split("\\|"))
+ {
+ value = filter(value, filterName);
+ }
+ }
+ result.append(value);
+ previous = matcher.end();
+ }
+ result.append(string.substring(previous));
+ return result.toString();
+ }
+
+ public OS getOS()
+ {
+ return OS.INSTANCE;
+ }
+
+ public String getP2ProfileName()
+ {
+ Branch branch = setup.getBranch();
+ Project project = branch.getProject();
+
+ String profileName = project.getName() + "_" + branch.getName();
+ profileName = profileName.replace('.', '_');
+ profileName = profileName.replace('-', '_');
+ profileName = profileName.replace('/', '_');
+ profileName = profileName.replace('\\', '_');
+ return profileName;
+ }
+
+ public File getP2ProfileDir()
+ {
+ return new File(getP2AgentDir(), "org.eclipse.equinox.p2.engine/profileRegistry/" + getP2ProfileName() + ".profile");
+ }
+
+ public File getP2AgentDir()
+ {
+ return new File(getP2PoolDir(), "p2");
+ }
+
+ public File getP2PoolDir()
+ {
+ return new File(getInstallDir(), ".p2pool-ide");
+ }
+
+ public File getInstallDir()
+ {
+ return getProjectDir().getParentFile();
+ }
+
+ public File getProjectDir()
+ {
+ return branchDir.getParentFile();
+ }
+
+ public File getBranchDir()
+ {
+ return branchDir;
+ }
+
+ public File getEclipseDir()
+ {
+ return new File(branchDir, "eclipse");
+ }
+
+ // TODO Is this Bucky-specific?
+ public File getTargetPlatformDir()
+ {
+ return new File(branchDir, "tp");
+ }
+
+ public File getWorkspaceDir()
+ {
+ return new File(branchDir, "ws");
+ }
+
+ public Setup getSetup()
+ {
+ return setup;
+ }
+
+ public void perform() throws Exception
+ {
+ EList<SetupTask> setupTasks = setup.getSetupTasks(true, trigger);
+ if (setupTasks.isEmpty())
+ {
+ return;
+ }
+
+ Map<SetupTask, SetupTask> substitutions = getSubstitutions(setupTasks);
+ setup = copySetup(setupTasks, substitutions);
+
+ perform(setupTasks);
+ }
+
+ private void perform(EList<SetupTask> setupTasks) throws Exception
+ {
+ final EList<SetupTask> neededTasks = getNeededTasks(setupTasks);
+ if (neededTasks.isEmpty())
+ {
+ return;
+ }
+
+ if (Activator.SETUP_IDE && trigger != Trigger.MANUAL)
+ {
+ File logFile = new File(getInstallDir(), "setup.log");
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
+ final Shell shell = window.getShell();
+ ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable()
+ {
+ public boolean run(ProgressLog log) throws Exception
+ {
+ doPerform(neededTasks);
+ return isRestartNeeded();
+ }
+ });
+ }
+ else
+ {
+ doPerform(neededTasks);
+ }
+ }
+
+ private void doPerform(EList<SetupTask> neededTasks) throws Exception
+ {
+ Branch branch = setup.getBranch();
+ log("Setting up " + branch.getProject().getName() + " " + branch.getName());
+
+ for (SetupTask neededTask : neededTasks)
+ {
+ neededTask.perform(this);
+ neededTask.dispose();
+ }
+ }
+
+ private Map<SetupTask, SetupTask> getSubstitutions(EList<SetupTask> setupTasks)
+ {
+ SetupTaskComparator.sort(setupTasks);
+
+ Map<Object, SetupTask> overrides = new HashMap<Object, SetupTask>();
+ Map<SetupTask, SetupTask> substitutions = new HashMap<SetupTask, SetupTask>();
+
+ for (SetupTask setupTask : setupTasks)
+ {
+ Object overrideToken = setupTask.getOverrideToken();
+ SetupTask overriddenTask = overrides.put(overrideToken, setupTask);
+ if (overriddenTask != null)
+ {
+ substitutions.put(overriddenTask, setupTask);
+ }
+ }
+
+ // Shorten the paths through the substitutions map
+ for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet())
+ {
+ SetupTask task = entry.getValue();
+
+ for (;;)
+ {
+ SetupTask overridingTask = substitutions.get(task);
+ if (overridingTask == null)
+ {
+ break;
+ }
+
+ entry.setValue(overridingTask);
+ }
+ }
+
+ return substitutions;
+ }
+
+ private Setup copySetup(EList<SetupTask> setupTasks, Map<SetupTask, SetupTask> substitutions)
+ {
+ Set<EObject> roots = new LinkedHashSet<EObject>();
+ roots.add(setup);
+
+ for (EObject eObject : setup.eCrossReferences())
+ {
+ EObject rootContainer = EcoreUtil.getRootContainer(eObject);
+ roots.add(rootContainer);
+ }
+
+ EcoreUtil.Copier copier = new EcoreUtil.Copier();
+ Setup setup = (Setup)copier.copyAll(roots).iterator().next();
+
+ for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet())
+ {
+ SetupTask overriddenTask = entry.getKey();
+ SetupTask overridingTask = entry.getValue();
+
+ EObject copy = copier.get(overridingTask);
+ copier.put(overriddenTask, copy);
+ }
+
+ copier.copyReferences();
+
+ for (ListIterator<SetupTask> it = setupTasks.listIterator(); it.hasNext();)
+ {
+ SetupTask setupTask = it.next();
+ if (substitutions.containsKey(setupTask))
+ {
+ it.remove();
+ }
+ else
+ {
+ SetupTask copy = (SetupTask)copier.get(setupTask);
+ it.set(copy);
+ }
+ }
+
+ SetupTaskComparator.sort(setupTasks);
+ return setup;
+ }
+
+ private EList<SetupTask> getNeededTasks(EList<SetupTask> setupTasks) throws Exception
+ {
+ EList<SetupTask> result = new BasicEList<SetupTask>();
+
+ for (Iterator<SetupTask> it = setupTasks.iterator(); it.hasNext();)
+ {
+ SetupTask setupTask = it.next();
+ if (setupTask.isNeeded(this))
+ {
+ result.add(setupTask);
+ }
+ else
+ {
+ setupTask.dispose();
+ }
+ }
+
+ return result;
+ }
+
+ public static ProgressLog getProgress()
+ {
+ return progress;
+ }
+
+ public static void setProgress(ProgressLog progress)
+ {
+ SetupTaskPerformer.progress = progress;
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ public static class SetupTaskComparator implements Comparator<SetupTask>
+ {
+ public static void sort(EList<SetupTask> setupTasks)
+ {
+ Collections.sort(setupTasks, new SetupTaskComparator());
+ }
+
+ public int compare(SetupTask t1, SetupTask t2)
+ {
+ boolean t1RequiresT2 = t1.requires(t2);
+ boolean t2RequiresT1 = t2.requires(t1);
+ if (t1RequiresT2 && t2RequiresT1)
+ {
+ throw new IllegalStateException("Requirements cycle detected between " + t1 + " and " + t2);
+ }
+
+ if (t1RequiresT2 && !t2RequiresT1)
+ {
+ return 1;
+ }
+
+ if (!t1RequiresT2 && t2RequiresT1)
+ {
+ return -1;
+ }
+
+ int scope1 = t1.getScope().getValue();
+ int scope2 = t2.getScope().getValue();
+ if (scope1 < scope2)
+ {
+ return -1;
+ }
+
+ if (scope1 > scope2)
+ {
+ return 1;
+ }
+
+ String uri1 = EcoreUtil.getURI(t1).toString();
+ String uri2 = EcoreUtil.getURI(t2).toString();
+ return uri1.compareTo(uri2); // Arbitrary but symmetric within one ResourceSet
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java
new file mode 100644
index 0000000000..a157fba1e6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java
@@ -0,0 +1,348 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+ * 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.internal.setup.ui;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogProvider;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
+
+import org.eclipse.net4j.util.io.IOUtil;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.progress.ProgressManager;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
+{
+ public static final String TITLE = "Setup Development Environment";
+
+ private static final SimpleDateFormat TIME = new SimpleDateFormat("HH:mm:ss");
+
+ private static final SimpleDateFormat DATE_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+ private PrintStream logStream;
+
+ private Text text;
+
+ private Button okButton;
+
+ private Button cancelButton;
+
+ private boolean cancelled;
+
+ private String lastLine;
+
+ private ProgressLogDialog(Shell parentShell, File logFile)
+ {
+ super(parentShell);
+ if (logFile != null)
+ {
+ try
+ {
+ logFile.getParentFile().mkdirs();
+ logStream = new PrintStream(new FileOutputStream(logFile, true));
+ }
+ catch (FileNotFoundException ex)
+ {
+ throw new RuntimeException(ex);
+ }
+ }
+
+ setHelpAvailable(false);
+ setShellStyle(SWT.BORDER | SWT.MAX | SWT.RESIZE | SWT.TITLE | SWT.APPLICATION_MODAL);
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent)
+ {
+ setMessage("Please wait until the setup process is finished and the OK button is enabled...");
+ setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup", "icons/install_wiz.gif"));
+ getShell().setText(TITLE);
+ setTitle(TITLE);
+
+ Composite area = (Composite)super.createDialogArea(parent);
+ Composite container = new Composite(area, SWT.NONE);
+ GridLayout gl_container = new GridLayout(1, false);
+ gl_container.marginWidth = 10;
+ gl_container.marginHeight = 10;
+ container.setLayout(gl_container);
+ container.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ text = new Text(container, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CANCEL | SWT.MULTI);
+ text.setFont(SWTResourceManager.getFont("Courier New", 10, SWT.NORMAL));
+ text.setEditable(false);
+ text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ text.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+
+ return area;
+ }
+
+ @Override
+ protected void createButtonsForButtonBar(Composite parent)
+ {
+ okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
+ okButton.setEnabled(false);
+
+ cancelButton = createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
+ cancelButton.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ cancelled = true;
+ setFinished();
+ }
+ });
+ }
+
+ @Override
+ public synchronized void create()
+ {
+ super.create();
+ SetupTaskPerformer.setProgress(this);
+ ProgressManager oldProgressProvider = ProgressManager.getInstance();
+ ProgressLogProvider newProgressLogProvider = new ProgressLogProvider(this, oldProgressProvider);
+ Job.getJobManager().setProgressProvider(newProgressLogProvider);
+ }
+
+ @Override
+ public boolean close()
+ {
+ SetupTaskPerformer.setProgress(null);
+
+ if (logStream != null)
+ {
+ logStream.println();
+ logStream.println();
+ logStream.println();
+ logStream.println();
+ IOUtil.closeSilent(logStream);
+ }
+
+ return super.close();
+ }
+
+ /**
+ * Return the initial size of the dialog.
+ */
+ @Override
+ protected Point getInitialSize()
+ {
+ return new Point(1000, 600);
+ }
+
+ public boolean isCancelled()
+ {
+ return cancelled;
+ }
+
+ public void log(String line)
+ {
+ if (isCancelled())
+ {
+ throw new OperationCanceledException();
+ }
+
+ if (line == null || line.length() == 0 || Character.isLowerCase(line.charAt(0)) || line.equals("Updating")
+ || line.startsWith("Scanning Git") || line.startsWith("Re-indexing") || line.endsWith(" remaining.")
+ || line.startsWith("Calculating Decorations") || line.startsWith("Decorating") || line.startsWith("http://")
+ || line.startsWith("The user operation is waiting") || line.startsWith("Git repository changed")
+ || line.startsWith("Refreshing ") || line.startsWith("Opening ") || line.startsWith("Connecting project ")
+ || line.startsWith("Searching for associated repositories.") || line.startsWith("Preparing type ")
+ || line.startsWith("Loading project description") || line.startsWith("Generating cspec from PDE artifacts")
+ || line.startsWith("Reporting encoding changes") || line.startsWith("Saving")
+ || line.startsWith("Downloading software") || line.startsWith("Java indexing..."))
+ {
+ return;
+ }
+
+ if (line.endsWith("/s)"))
+ {
+ int index = line.lastIndexOf(" (");
+ if (index != -1)
+ {
+ line = line.substring(0, index);
+ }
+ }
+
+ if (line.equals(lastLine))
+ {
+ return;
+ }
+
+ lastLine = line;
+
+ final String message = line + "\n";
+ final Date date = new Date();
+
+ if (logStream != null)
+ {
+ try
+ {
+ logStream.print("[" + DATE_TIME.format(date) + "] " + message);
+ logStream.flush();
+ }
+ catch (Exception ex)
+ {
+ Activator.log(ex);
+ }
+ }
+
+ asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ text.append("[" + TIME.format(date) + "] " + message);
+ }
+ catch (Exception ex)
+ {
+ //$FALL-THROUGH$
+ }
+ }
+ });
+ }
+
+ public void setFinished()
+ {
+ Job.getJobManager().setProgressProvider(ProgressManager.getInstance());
+
+ asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ okButton.setEnabled(true);
+ cancelButton.setEnabled(false);
+ }
+ catch (Exception ex)
+ {
+ //$FALL-THROUGH$
+ }
+ }
+ });
+ }
+
+ private void asyncExec(Runnable runnable)
+ {
+ try
+ {
+ getShell().getDisplay().asyncExec(runnable);
+ }
+ catch (NullPointerException ex)
+ {
+ //$FALL-THROUGH$
+ }
+ catch (SWTException ex)
+ {
+ if (ex.code != SWT.ERROR_WIDGET_DISPOSED)
+ {
+ throw ex;
+ }
+
+ //$FALL-THROUGH$
+ }
+ }
+
+ public static void run(Shell shell, File logFile, final String jobName, final ProgressLogRunnable runnable)
+ {
+ try
+ {
+ final boolean[] restart = { false };
+ final ProgressLogDialog dialog = new ProgressLogDialog(shell, logFile);
+ Runnable jobRunnable = new Runnable()
+ {
+ public void run()
+ {
+ Job job = new Job(jobName)
+ {
+ @Override
+ protected IStatus run(IProgressMonitor monitor)
+ {
+ long start = System.currentTimeMillis();
+
+ try
+ {
+ dialog.log(jobName);
+ restart[0] = runnable.run(dialog);
+ }
+ catch (Exception ex)
+ {
+ Activator.log(ex);
+ dialog.log("An error occured: " + ex.getMessage());
+ dialog.log("The Error Log contains more infos...");
+ }
+ finally
+ {
+ long seconds = (System.currentTimeMillis() - start) / 1000;
+ dialog.log("Took " + seconds + " seconds.");
+ dialog.log("Press OK to close the dialog" + (restart[0] ? " and restart Eclipse" : "") + "...");
+ dialog.setFinished();
+ }
+
+ return Status.OK_STATUS;
+ }
+ };
+
+ job.schedule();
+
+ if (dialog.open() == ProgressLogDialog.OK && restart[0])
+ {
+ PlatformUI.getWorkbench().restart();
+ }
+ }
+ };
+
+ if (Display.getCurrent() == shell.getDisplay())
+ {
+ jobRunnable.run();
+ }
+ else
+ {
+ shell.getDisplay().asyncExec(jobRunnable);
+ }
+ }
+ catch (Exception ex)
+ {
+ Activator.log(ex);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java
new file mode 100644
index 0000000000..889bda0117
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java
@@ -0,0 +1,511 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * 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:
+ * Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.cdo.releng.internal.setup.ui;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.CompositeImageDescriptor;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+
+import org.osgi.framework.Bundle;
+
+import java.io.File;
+import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * Utility class for managing OS resources associated with SWT/JFace controls such as colors, fonts, images,
+ * etc.
+ *
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ *
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ *
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class ResourceManager extends SWTResourceManager
+{
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Image
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ private static Map<ImageDescriptor, Image> m_descriptorImageMap = new HashMap<ImageDescriptor, Image>();
+
+ /**
+ * Returns an {@link ImageDescriptor} stored in the file at the specified path relative to the specified
+ * class.
+ *
+ * @param clazz
+ * the {@link Class} relative to which to find the image descriptor.
+ * @param path
+ * the path to the image file.
+ * @return the {@link ImageDescriptor} stored in the file at the specified path.
+ */
+ public static ImageDescriptor getImageDescriptor(Class<?> clazz, String path)
+ {
+ return ImageDescriptor.createFromFile(clazz, path);
+ }
+
+ /**
+ * Returns an {@link ImageDescriptor} stored in the file at the specified path.
+ *
+ * @param path
+ * the path to the image file.
+ * @return the {@link ImageDescriptor} stored in the file at the specified path.
+ */
+ public static ImageDescriptor getImageDescriptor(String path)
+ {
+ try
+ {
+ return ImageDescriptor.createFromURL(new File(path).toURI().toURL());
+ }
+ catch (MalformedURLException e)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Returns an {@link Image} based on the specified {@link ImageDescriptor}.
+ *
+ * @param descriptor
+ * the {@link ImageDescriptor} for the {@link Image}.
+ * @return the {@link Image} based on the specified {@link ImageDescriptor}.
+ */
+ public static Image getImage(ImageDescriptor descriptor)
+ {
+ if (descriptor == null)
+ {
+ return null;
+ }
+ Image image = m_descriptorImageMap.get(descriptor);
+ if (image == null)
+ {
+ image = descriptor.createImage();
+ m_descriptorImageMap.put(descriptor, image);
+ }
+ return image;
+ }
+
+ /**
+ * Maps images to decorated images.
+ */
+ @SuppressWarnings("unchecked")
+ private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated.
+ * @param decorator
+ * the {@link Image} to decorate the base image.
+ * @return {@link Image} The resulting decorated image.
+ */
+ public static Image decorateImage(Image baseImage, Image decorator)
+ {
+ return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+ }
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated.
+ * @param decorator
+ * the {@link Image} to decorate the base image.
+ * @param corner
+ * the corner to place decorator image.
+ * @return the resulting decorated {@link Image}.
+ */
+ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner)
+ {
+ if (corner <= 0 || corner >= LAST_CORNER_KEY)
+ {
+ throw new IllegalArgumentException("Wrong decorate corner");
+ }
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+ if (cornerDecoratedImageMap == null)
+ {
+ cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+ m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+ }
+ Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+ if (decoratedMap == null)
+ {
+ decoratedMap = new HashMap<Image, Image>();
+ cornerDecoratedImageMap.put(baseImage, decoratedMap);
+ }
+ //
+ Image result = decoratedMap.get(decorator);
+ if (result == null)
+ {
+ final Rectangle bib = baseImage.getBounds();
+ final Rectangle dib = decorator.getBounds();
+ final Point baseImageSize = new Point(bib.width, bib.height);
+ CompositeImageDescriptor compositImageDesc = new CompositeImageDescriptor()
+ {
+ @Override
+ protected void drawCompositeImage(int width, int height)
+ {
+ drawImage(baseImage.getImageData(), 0, 0);
+ if (corner == TOP_LEFT)
+ {
+ drawImage(decorator.getImageData(), 0, 0);
+ }
+ else if (corner == TOP_RIGHT)
+ {
+ drawImage(decorator.getImageData(), bib.width - dib.width, 0);
+ }
+ else if (corner == BOTTOM_LEFT)
+ {
+ drawImage(decorator.getImageData(), 0, bib.height - dib.height);
+ }
+ else if (corner == BOTTOM_RIGHT)
+ {
+ drawImage(decorator.getImageData(), bib.width - dib.width, bib.height - dib.height);
+ }
+ }
+
+ @Override
+ protected Point getSize()
+ {
+ return baseImageSize;
+ }
+ };
+ //
+ result = compositImageDesc.createImage();
+ decoratedMap.put(decorator, result);
+ }
+ return result;
+ }
+
+ /**
+ * Dispose all of the cached images.
+ */
+ public static void disposeImages()
+ {
+ SWTResourceManager.disposeImages();
+ // dispose ImageDescriptor images
+ {
+ for (Iterator<Image> I = m_descriptorImageMap.values().iterator(); I.hasNext();)
+ {
+ I.next().dispose();
+ }
+ m_descriptorImageMap.clear();
+ }
+ // dispose decorated images
+ for (int i = 0; i < m_decoratedImageMap.length; i++)
+ {
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+ if (cornerDecoratedImageMap != null)
+ {
+ for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values())
+ {
+ for (Image image : decoratedMap.values())
+ {
+ image.dispose();
+ }
+ decoratedMap.clear();
+ }
+ cornerDecoratedImageMap.clear();
+ }
+ }
+ // dispose plugin images
+ {
+ for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();)
+ {
+ I.next().dispose();
+ }
+ m_URLImageMap.clear();
+ }
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Plugin images support
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps URL to images.
+ */
+ private static Map<String, Image> m_URLImageMap = new HashMap<String, Image>();
+
+ /**
+ * Provider for plugin resources, used by WindowBuilder at design time.
+ */
+ public interface PluginResourceProvider
+ {
+ URL getEntry(String symbolicName, String path);
+ }
+
+ /**
+ * Instance of {@link PluginResourceProvider}, used by WindowBuilder at design time.
+ */
+ private static PluginResourceProvider m_designTimePluginResourceProvider = null;
+
+ /**
+ * Returns an {@link Image} based on a plugin and file path.
+ *
+ * @param plugin
+ * the plugin {@link Object} containing the image
+ * @param name
+ * the path to the image within the plugin
+ * @return the {@link Image} stored in the file at the specified path
+ *
+ * @deprecated Use {@link #getPluginImage(String, String)} instead.
+ */
+ @Deprecated
+ public static Image getPluginImage(Object plugin, String name)
+ {
+ try
+ {
+ URL url = getPluginImageURL(plugin, name);
+ if (url != null)
+ {
+ return getPluginImageFromUrl(url);
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link Image} based on a {@link Bundle} and resource entry path.
+ *
+ * @param symbolicName
+ * the symbolic name of the {@link Bundle}.
+ * @param path
+ * the path of the resource entry.
+ * @return the {@link Image} stored in the file at the specified path.
+ */
+ public static Image getPluginImage(String symbolicName, String path)
+ {
+ try
+ {
+ URL url = getPluginImageURL(symbolicName, path);
+ if (url != null)
+ {
+ return getPluginImageFromUrl(url);
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link Image} based on given {@link URL}.
+ */
+ private static Image getPluginImageFromUrl(URL url)
+ {
+ try
+ {
+ try
+ {
+ String key = url.toExternalForm();
+ Image image = m_URLImageMap.get(key);
+ if (image == null)
+ {
+ InputStream stream = url.openStream();
+ try
+ {
+ image = getImage(stream);
+ m_URLImageMap.put(key, image);
+ }
+ finally
+ {
+ stream.close();
+ }
+ }
+ return image;
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link ImageDescriptor} based on a plugin and file path.
+ *
+ * @param plugin
+ * the plugin {@link Object} containing the image.
+ * @param name
+ * the path to th eimage within the plugin.
+ * @return the {@link ImageDescriptor} stored in the file at the specified path.
+ *
+ * @deprecated Use {@link #getPluginImageDescriptor(String, String)} instead.
+ */
+ @Deprecated
+ public static ImageDescriptor getPluginImageDescriptor(Object plugin, String name)
+ {
+ try
+ {
+ try
+ {
+ URL url = getPluginImageURL(plugin, name);
+ return ImageDescriptor.createFromURL(url);
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
+ *
+ * @param symbolicName
+ * the symbolic name of the {@link Bundle}.
+ * @param path
+ * the path of the resource entry.
+ * @return the {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
+ */
+ public static ImageDescriptor getPluginImageDescriptor(String symbolicName, String path)
+ {
+ try
+ {
+ URL url = getPluginImageURL(symbolicName, path);
+ if (url != null)
+ {
+ return ImageDescriptor.createFromURL(url);
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link URL} based on a {@link Bundle} and resource entry path.
+ */
+ private static URL getPluginImageURL(String symbolicName, String path)
+ {
+ // try runtime plugins
+ {
+ Bundle bundle = Platform.getBundle(symbolicName);
+ if (bundle != null)
+ {
+ return bundle.getEntry(path);
+ }
+ }
+ // try design time provider
+ if (m_designTimePluginResourceProvider != null)
+ {
+ return m_designTimePluginResourceProvider.getEntry(symbolicName, path);
+ }
+ // no such resource
+ return null;
+ }
+
+ /**
+ * Returns an {@link URL} based on a plugin and file path.
+ *
+ * @param plugin
+ * the plugin {@link Object} containing the file path.
+ * @param name
+ * the file path.
+ * @return the {@link URL} representing the file at the specified path.
+ * @throws Exception
+ */
+ private static URL getPluginImageURL(Object plugin, String name) throws Exception
+ {
+ // try to work with 'plugin' as with OSGI BundleContext
+ try
+ {
+ Class<?> BundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$
+ Class<?> BundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$
+ if (BundleContextClass.isAssignableFrom(plugin.getClass()))
+ {
+ Method getBundleMethod = BundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$
+ Object bundle = getBundleMethod.invoke(plugin, new Object[0]);
+ //
+ Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+ Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class });
+ Object path = pathConstructor.newInstance(new Object[] { name });
+ //
+ Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+ Class<?> PlatformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$
+ Method findMethod = PlatformClass.getMethod("find", new Class[] { BundleClass, IPathClass }); //$NON-NLS-1$
+ return (URL)findMethod.invoke(null, new Object[] { bundle, path });
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ // else work with 'plugin' as with usual Eclipse plugin
+ {
+ Class<?> PluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$
+ if (PluginClass.isAssignableFrom(plugin.getClass()))
+ {
+ //
+ Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+ Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class });
+ Object path = pathConstructor.newInstance(new Object[] { name });
+ //
+ Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+ Method findMethod = PluginClass.getMethod("find", new Class[] { IPathClass }); //$NON-NLS-1$
+ return (URL)findMethod.invoke(plugin, new Object[] { path });
+ }
+ }
+ return null;
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // General
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+ * objects are no longer needed (e.g. on application shutdown).
+ */
+ public static void dispose()
+ {
+ disposeColors();
+ disposeFonts();
+ disposeImages();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java
new file mode 100644
index 0000000000..38dab08e60
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java
@@ -0,0 +1,538 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * 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:
+ * Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.cdo.releng.internal.setup.ui;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc.
+ * <p>
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ * <p>
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class SWTResourceManager
+{
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Color
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
+
+ /**
+ * Returns the system {@link Color} matching the specific ID.
+ *
+ * @param systemColorID
+ * the ID value for the color
+ * @return the system {@link Color} matching the specific ID
+ */
+ public static Color getColor(int systemColorID)
+ {
+ Display display = Display.getCurrent();
+ return display.getSystemColor(systemColorID);
+ }
+
+ /**
+ * Returns a {@link Color} given its red, green and blue component values.
+ *
+ * @param r
+ * the red component of the color
+ * @param g
+ * the green component of the color
+ * @param b
+ * the blue component of the color
+ * @return the {@link Color} matching the given red, green and blue component values
+ */
+ public static Color getColor(int r, int g, int b)
+ {
+ return getColor(new RGB(r, g, b));
+ }
+
+ /**
+ * Returns a {@link Color} given its RGB value.
+ *
+ * @param rgb
+ * the {@link RGB} value of the color
+ * @return the {@link Color} matching the RGB value
+ */
+ public static Color getColor(RGB rgb)
+ {
+ Color color = m_colorMap.get(rgb);
+ if (color == null)
+ {
+ Display display = Display.getCurrent();
+ color = new Color(display, rgb);
+ m_colorMap.put(rgb, color);
+ }
+ return color;
+ }
+
+ /**
+ * Dispose of all the cached {@link Color}'s.
+ */
+ public static void disposeColors()
+ {
+ for (Color color : m_colorMap.values())
+ {
+ color.dispose();
+ }
+ m_colorMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Image
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps image paths to images.
+ */
+ private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
+
+ /**
+ * Returns an {@link Image} encoded by the specified {@link InputStream}.
+ *
+ * @param stream
+ * the {@link InputStream} encoding the image data
+ * @return the {@link Image} encoded by the specified input stream
+ */
+ protected static Image getImage(InputStream stream) throws IOException
+ {
+ try
+ {
+ Display display = Display.getCurrent();
+ ImageData data = new ImageData(stream);
+ if (data.transparentPixel > 0)
+ {
+ return new Image(display, data, data.getTransparencyMask());
+ }
+ return new Image(display, data);
+ }
+ finally
+ {
+ stream.close();
+ }
+ }
+
+ /**
+ * Returns an {@link Image} stored in the file at the specified path.
+ *
+ * @param path
+ * the path to the image file
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(String path)
+ {
+ Image image = m_imageMap.get(path);
+ if (image == null)
+ {
+ try
+ {
+ image = getImage(new FileInputStream(path));
+ m_imageMap.put(path, image);
+ }
+ catch (Exception e)
+ {
+ image = getMissingImage();
+ m_imageMap.put(path, image);
+ }
+ }
+ return image;
+ }
+
+ /**
+ * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
+ *
+ * @param clazz
+ * the {@link Class} relative to which to find the image
+ * @param path
+ * the path to the image file, if starts with <code>'/'</code>
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(Class<?> clazz, String path)
+ {
+ String key = clazz.getName() + '|' + path;
+ Image image = m_imageMap.get(key);
+ if (image == null)
+ {
+ try
+ {
+ image = getImage(clazz.getResourceAsStream(path));
+ m_imageMap.put(key, image);
+ }
+ catch (Exception e)
+ {
+ image = getMissingImage();
+ m_imageMap.put(key, image);
+ }
+ }
+ return image;
+ }
+
+ private static final int MISSING_IMAGE_SIZE = 10;
+
+ /**
+ * @return the small {@link Image} that can be used as placeholder for missing image.
+ */
+ private static Image getMissingImage()
+ {
+ Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ //
+ GC gc = new GC(image);
+ gc.setBackground(getColor(SWT.COLOR_RED));
+ gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ gc.dispose();
+ //
+ return image;
+ }
+
+ /**
+ * Style constant for placing decorator image in top left corner of base image.
+ */
+ public static final int TOP_LEFT = 1;
+
+ /**
+ * Style constant for placing decorator image in top right corner of base image.
+ */
+ public static final int TOP_RIGHT = 2;
+
+ /**
+ * Style constant for placing decorator image in bottom left corner of base image.
+ */
+ public static final int BOTTOM_LEFT = 3;
+
+ /**
+ * Style constant for placing decorator image in bottom right corner of base image.
+ */
+ public static final int BOTTOM_RIGHT = 4;
+
+ /**
+ * Internal value.
+ */
+ protected static final int LAST_CORNER_KEY = 5;
+
+ /**
+ * Maps images to decorated images.
+ */
+ @SuppressWarnings("unchecked")
+ private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @return {@link Image} The resulting decorated image
+ */
+ public static Image decorateImage(Image baseImage, Image decorator)
+ {
+ return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+ }
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @param corner
+ * the corner to place decorator image
+ * @return the resulting decorated {@link Image}
+ */
+ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner)
+ {
+ if (corner <= 0 || corner >= LAST_CORNER_KEY)
+ {
+ throw new IllegalArgumentException("Wrong decorate corner");
+ }
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+ if (cornerDecoratedImageMap == null)
+ {
+ cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+ m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+ }
+ Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+ if (decoratedMap == null)
+ {
+ decoratedMap = new HashMap<Image, Image>();
+ cornerDecoratedImageMap.put(baseImage, decoratedMap);
+ }
+ //
+ Image result = decoratedMap.get(decorator);
+ if (result == null)
+ {
+ Rectangle bib = baseImage.getBounds();
+ Rectangle dib = decorator.getBounds();
+ //
+ result = new Image(Display.getCurrent(), bib.width, bib.height);
+ //
+ GC gc = new GC(result);
+ gc.drawImage(baseImage, 0, 0);
+ if (corner == TOP_LEFT)
+ {
+ gc.drawImage(decorator, 0, 0);
+ }
+ else if (corner == TOP_RIGHT)
+ {
+ gc.drawImage(decorator, bib.width - dib.width, 0);
+ }
+ else if (corner == BOTTOM_LEFT)
+ {
+ gc.drawImage(decorator, 0, bib.height - dib.height);
+ }
+ else if (corner == BOTTOM_RIGHT)
+ {
+ gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
+ }
+ gc.dispose();
+ //
+ decoratedMap.put(decorator, result);
+ }
+ return result;
+ }
+
+ /**
+ * Dispose all of the cached {@link Image}'s.
+ */
+ public static void disposeImages()
+ {
+ // dispose loaded images
+ {
+ for (Image image : m_imageMap.values())
+ {
+ image.dispose();
+ }
+ m_imageMap.clear();
+ }
+ // dispose decorated images
+ for (int i = 0; i < m_decoratedImageMap.length; i++)
+ {
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+ if (cornerDecoratedImageMap != null)
+ {
+ for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values())
+ {
+ for (Image image : decoratedMap.values())
+ {
+ image.dispose();
+ }
+ decoratedMap.clear();
+ }
+ cornerDecoratedImageMap.clear();
+ }
+ }
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Font
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps font names to fonts.
+ */
+ private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
+
+ /**
+ * Maps fonts to their bold versions.
+ */
+ private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
+
+ /**
+ * Returns a {@link Font} based on its name, height and style.
+ *
+ * @param name
+ * the name of the font
+ * @param height
+ * the height of the font
+ * @param style
+ * the style of the font
+ * @return {@link Font} The font matching the name, height and style
+ */
+ public static Font getFont(String name, int height, int style)
+ {
+ return getFont(name, height, style, false, false);
+ }
+
+ /**
+ * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
+ * flags are also supported.
+ *
+ * @param name
+ * the name of the font
+ * @param size
+ * the size of the font
+ * @param style
+ * the style of the font
+ * @param strikeout
+ * the strikeout flag (warning: Windows only)
+ * @param underline
+ * the underline flag (warning: Windows only)
+ * @return {@link Font} The font matching the name, height, style, strikeout and underline
+ */
+ public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline)
+ {
+ String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
+ Font font = m_fontMap.get(fontName);
+ if (font == null)
+ {
+ FontData fontData = new FontData(name, size, style);
+ if (strikeout || underline)
+ {
+ try
+ {
+ Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
+ Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
+ if (logFont != null && logFontClass != null)
+ {
+ if (strikeout)
+ {
+ logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$
+ }
+ if (underline)
+ {
+ logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$
+ }
+ }
+ }
+ catch (Throwable e)
+ {
+ System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ font = new Font(Display.getCurrent(), fontData);
+ m_fontMap.put(fontName, font);
+ }
+ return font;
+ }
+
+ /**
+ * Returns a bold version of the given {@link Font}.
+ *
+ * @param baseFont
+ * the {@link Font} for which a bold version is desired
+ * @return the bold version of the given {@link Font}
+ */
+ public static Font getBoldFont(Font baseFont)
+ {
+ Font font = m_fontToBoldFontMap.get(baseFont);
+ if (font == null)
+ {
+ FontData fontDatas[] = baseFont.getFontData();
+ FontData data = fontDatas[0];
+ font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
+ m_fontToBoldFontMap.put(baseFont, font);
+ }
+ return font;
+ }
+
+ /**
+ * Dispose all of the cached {@link Font}'s.
+ */
+ public static void disposeFonts()
+ {
+ // clear fonts
+ for (Font font : m_fontMap.values())
+ {
+ font.dispose();
+ }
+ m_fontMap.clear();
+ // clear bold fonts
+ for (Font font : m_fontToBoldFontMap.values())
+ {
+ font.dispose();
+ }
+ m_fontToBoldFontMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Cursor
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps IDs to cursors.
+ */
+ private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
+
+ /**
+ * Returns the system cursor matching the specific ID.
+ *
+ * @param id
+ * int The ID value for the cursor
+ * @return Cursor The system cursor matching the specific ID
+ */
+ public static Cursor getCursor(int id)
+ {
+ Integer key = Integer.valueOf(id);
+ Cursor cursor = m_idToCursorMap.get(key);
+ if (cursor == null)
+ {
+ cursor = new Cursor(Display.getDefault(), id);
+ m_idToCursorMap.put(key, cursor);
+ }
+ return cursor;
+ }
+
+ /**
+ * Dispose all of the cached cursors.
+ */
+ public static void disposeCursors()
+ {
+ for (Cursor cursor : m_idToCursorMap.values())
+ {
+ cursor.dispose();
+ }
+ m_idToCursorMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // General
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+ * objects are no longer needed (e.g. on application shutdown).
+ */
+ public static void dispose()
+ {
+ disposeColors();
+ disposeImages();
+ disposeFonts();
+ disposeCursors();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java
deleted file mode 100644
index 8ea7f52da8..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Api Baseline</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline()
- * @model
- * @generated
- */
-public interface ApiBaseline extends EObject
-{
- /**
- * Returns the value of the '<em><b>Project</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Project</em>' container reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Project</em>' container reference.
- * @see #setProject(Project)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Project()
- * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines
- * @model opposite="apiBaselines" transient="false"
- * @generated
- */
- Project getProject();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}' container reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Project</em>' container reference.
- * @see #getProject()
- * @generated
- */
- void setProject(Project value);
-
- /**
- * Returns the value of the '<em><b>Version</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Version</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Version</em>' attribute.
- * @see #setVersion(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Version()
- * @model
- * @generated
- */
- String getVersion();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Version</em>' attribute.
- * @see #getVersion()
- * @generated
- */
- void setVersion(String value);
-
- /**
- * Returns the value of the '<em><b>Zip Location</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Zip Location</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Zip Location</em>' attribute.
- * @see #setZipLocation(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_ZipLocation()
- * @model
- * @generated
- */
- String getZipLocation();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Zip Location</em>' attribute.
- * @see #getZipLocation()
- * @generated
- */
- void setZipLocation(String value);
-
-} // ApiBaseline
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java
new file mode 100644
index 0000000000..7cd3160743
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java
@@ -0,0 +1,76 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Api Baseline Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask()
+ * @model
+ * @generated
+ */
+public interface ApiBaselineTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_Version()
+ * @model
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Zip Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Zip Location</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Zip Location</em>' attribute.
+ * @see #setZipLocation(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_ZipLocation()
+ * @model
+ * @generated
+ */
+ String getZipLocation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Zip Location</em>' attribute.
+ * @see #getZipLocation()
+ * @generated
+ */
+ void setZipLocation(String value);
+
+} // ApiBaselineTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java
index 70ef7de2d7..e7d5d60d6d 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java
@@ -10,9 +10,6 @@
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
-
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Branch</b></em>'.
@@ -23,10 +20,6 @@ import org.eclipse.emf.common.util.URI;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getProject <em>Project</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}</li>
* </ul>
* </p>
*
@@ -34,7 +27,7 @@ import org.eclipse.emf.common.util.URI;
* @model
* @generated
*/
-public interface Branch extends ToolInstallation
+public interface Branch extends ConfigurableItem
{
/**
* Returns the value of the '<em><b>Project</b></em>' container reference.
@@ -90,116 +83,4 @@ public interface Branch extends ToolInstallation
*/
void setName(String value);
- /**
- * Returns the value of the '<em><b>Git Clones</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.GitClone}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Git Clones</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Git Clones</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_GitClones()
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch
- * @model opposite="branch" containment="true" required="true"
- * @generated
- */
- EList<GitClone> getGitClones();
-
- /**
- * Returns the value of the '<em><b>Api Baseline</b></em>' reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Api Baseline</em>' reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Api Baseline</em>' reference.
- * @see #setApiBaseline(ApiBaseline)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_ApiBaseline()
- * @model
- * @generated
- */
- ApiBaseline getApiBaseline();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Api Baseline</em>' reference.
- * @see #getApiBaseline()
- * @generated
- */
- void setApiBaseline(ApiBaseline value);
-
- /**
- * Returns the value of the '<em><b>Mspec File Path</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Mspec File Path</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Mspec File Path</em>' attribute.
- * @see #setMspecFilePath(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_MspecFilePath()
- * @model
- * @generated
- */
- String getMspecFilePath();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Mspec File Path</em>' attribute.
- * @see #getMspecFilePath()
- * @generated
- */
- void setMspecFilePath(String value);
-
- /**
- * Returns the value of the '<em><b>Clone Variable Name</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Clone Variable Name</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Clone Variable Name</em>' attribute.
- * @see #setCloneVariableName(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_CloneVariableName()
- * @model
- * @generated
- */
- String getCloneVariableName();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Clone Variable Name</em>' attribute.
- * @see #getCloneVariableName()
- * @generated
- */
- void setCloneVariableName(String value);
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @model
- * @generated
- */
- boolean isInstalled(String installFolder);
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @model dataType="org.eclipse.emf.cdo.releng.setup.URI"
- * @generated
- */
- URI getURI(String installFolder);
-
} // Branch
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java
new file mode 100644
index 0000000000..61d0267a23
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java
@@ -0,0 +1,103 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Buckminster Import Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask()
+ * @model
+ * @generated
+ */
+public interface BuckminsterImportTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Mspec</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mspec</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mspec</em>' attribute.
+ * @see #setMspec(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_Mspec()
+ * @model
+ * @generated
+ */
+ String getMspec();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mspec</em>' attribute.
+ * @see #getMspec()
+ * @generated
+ */
+ void setMspec(String value);
+
+ /**
+ * Returns the value of the '<em><b>Target Platform</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Platform</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target Platform</em>' attribute.
+ * @see #setTargetPlatform(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_TargetPlatform()
+ * @model
+ * @generated
+ */
+ String getTargetPlatform();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Platform</em>' attribute.
+ * @see #getTargetPlatform()
+ * @generated
+ */
+ void setTargetPlatform(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bundle Pool</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bundle Pool</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bundle Pool</em>' attribute.
+ * @see #setBundlePool(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_BundlePool()
+ * @model
+ * @generated
+ */
+ String getBundlePool();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bundle Pool</em>' attribute.
+ * @see #getBundlePool()
+ * @generated
+ */
+ void setBundlePool(String value);
+
+} // BuckminsterImportTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java
new file mode 100644
index 0000000000..afca697901
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java
@@ -0,0 +1,49 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compound Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask()
+ * @model
+ * @generated
+ */
+public interface CompoundSetupTask extends SetupTask, SetupTaskContainer
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // CompoundSetupTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java
new file mode 100644
index 0000000000..d14e7d124e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configurable Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfigurableItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ConfigurableItem extends SetupTaskContainer
+{
+} // ConfigurableItem
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java
index a144553bee..57ab104bca 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java
@@ -45,7 +45,7 @@ public interface Configuration extends EObject
* @return the value of the '<em>Projects</em>' containment reference list.
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_Projects()
* @see org.eclipse.emf.cdo.releng.setup.Project#getConfiguration
- * @model opposite="configuration" containment="true" required="true"
+ * @model opposite="configuration" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<Project> getProjects();
@@ -63,7 +63,7 @@ public interface Configuration extends EObject
* @return the value of the '<em>Eclipse Versions</em>' containment reference list.
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_EclipseVersions()
* @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration
- * @model opposite="configuration" containment="true" required="true"
+ * @model opposite="configuration" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<EclipseVersion> getEclipseVersions();
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java
new file mode 100644
index 0000000000..766d59af65
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java
@@ -0,0 +1,103 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Eclipse Ini Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask()
+ * @model
+ * @generated
+ */
+public interface EclipseIniTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Option</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Option</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Option</em>' attribute.
+ * @see #setOption(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Option()
+ * @model
+ * @generated
+ */
+ String getOption();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Option</em>' attribute.
+ * @see #getOption()
+ * @generated
+ */
+ void setOption(String value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Vm</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vm</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vm</em>' attribute.
+ * @see #setVm(boolean)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Vm()
+ * @model
+ * @generated
+ */
+ boolean isVm();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vm</em>' attribute.
+ * @see #isVm()
+ * @generated
+ */
+ void setVm(boolean value);
+
+} // EclipseIniTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java
index 7466c69ace..077b3bad4b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java
@@ -1,35 +1,25 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Tool Preference</b></em>'.
+ * A representation of the model object '<em><b>Eclipse Preference Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask()
* @model
* @generated
*/
-public interface ToolPreference extends EObject
+public interface EclipsePreferenceTask extends SetupTask
{
/**
* Returns the value of the '<em><b>Key</b></em>' attribute.
@@ -41,14 +31,14 @@ public interface ToolPreference extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Key</em>' attribute.
* @see #setKey(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Key()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Key()
* @model
* @generated
*/
String getKey();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Key</em>' attribute.
@@ -67,14 +57,14 @@ public interface ToolPreference extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Value</em>' attribute.
* @see #setValue(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Value()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Value()
* @model
* @generated
*/
String getValue();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Value</em>' attribute.
@@ -83,4 +73,4 @@ public interface ToolPreference extends EObject
*/
void setValue(String value);
-} // ToolPreference
+} // EclipsePreferenceTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java
index 07e2f11cca..75d52f9cbd 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java
@@ -10,8 +10,6 @@
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Eclipse Version</b></em>'.
@@ -22,7 +20,6 @@ import org.eclipse.emf.ecore.EObject;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}</li>
* </ul>
* </p>
*
@@ -30,7 +27,7 @@ import org.eclipse.emf.ecore.EObject;
* @model
* @generated
*/
-public interface EclipseVersion extends EObject
+public interface EclipseVersion extends ConfigurableItem
{
/**
* Returns the value of the '<em><b>Configuration</b></em>' container reference.
@@ -86,30 +83,4 @@ public interface EclipseVersion extends EObject
*/
void setVersion(String value);
- /**
- * Returns the value of the '<em><b>Director Call</b></em>' containment reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Director Call</em>' containment reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Director Call</em>' containment reference.
- * @see #setDirectorCall(DirectorCall)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseVersion_DirectorCall()
- * @model containment="true" required="true"
- * @generated
- */
- DirectorCall getDirectorCall();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Director Call</em>' containment reference.
- * @see #getDirectorCall()
- * @generated
- */
- void setDirectorCall(DirectorCall value);
-
} // EclipseVersion
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java
index a134a7b787..7b1d812093 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java
@@ -1,91 +1,80 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Git Clone</b></em>'.
+ * A representation of the model object '<em><b>Git Clone Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask()
* @model
* @generated
*/
-public interface GitClone extends EObject
+public interface GitCloneTask extends SetupTask
{
/**
- * Returns the value of the '<em><b>Branch</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'.
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Branch</em>' container reference isn't clear,
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Branch</em>' container reference.
- * @see #setBranch(Branch)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Branch()
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones
- * @model opposite="gitClones" transient="false"
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_Name()
+ * @model
* @generated
*/
- Branch getBranch();
+ String getName();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}' container reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Branch</em>' container reference.
- * @see #getBranch()
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
* @generated
*/
- void setBranch(Branch value);
+ void setName(String value);
/**
- * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * Returns the value of the '<em><b>Remote Name</b></em>' attribute.
+ * The default value is <code>"origin"</code>.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * If the meaning of the '<em>Remote Name</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Name</em>' attribute.
- * @see #setName(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Name()
- * @model
+ * @return the value of the '<em>Remote Name</em>' attribute.
+ * @see #setRemoteName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteName()
+ * @model default="origin"
* @generated
*/
- String getName();
+ String getRemoteName();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Name</em>' attribute.
- * @see #getName()
+ * @param value the new value of the '<em>Remote Name</em>' attribute.
+ * @see #getRemoteName()
* @generated
*/
- void setName(String value);
+ void setRemoteName(String value);
/**
* Returns the value of the '<em><b>Remote URI</b></em>' attribute.
@@ -97,14 +86,14 @@ public interface GitClone extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Remote URI</em>' attribute.
* @see #setRemoteURI(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_RemoteURI()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteURI()
* @model
* @generated
*/
String getRemoteURI();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Remote URI</em>' attribute.
@@ -123,14 +112,14 @@ public interface GitClone extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Checkout Branch</em>' attribute.
* @see #setCheckoutBranch(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_CheckoutBranch()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_CheckoutBranch()
* @model
* @generated
*/
String getCheckoutBranch();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Checkout Branch</em>' attribute.
@@ -139,4 +128,4 @@ public interface GitClone extends EObject
*/
void setCheckoutBranch(String value);
-} // GitClone
+} // GitCloneTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java
index 6326d1085e..3b327dde15 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java
@@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject;
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}</li>
* </ul>
* </p>
@@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject;
public interface InstallableUnit extends EObject
{
/**
- * Returns the value of the '<em><b>Director Call</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'.
+ * Returns the value of the '<em><b>P2 Task</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Director Call</em>' container reference isn't clear,
+ * If the meaning of the '<em>P2 Task</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Director Call</em>' container reference.
- * @see #setDirectorCall(DirectorCall)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_DirectorCall()
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits
+ * @return the value of the '<em>P2 Task</em>' container reference.
+ * @see #setP2Task(P2Task)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_P2Task()
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits
* @model opposite="installableUnits" transient="false"
* @generated
*/
- DirectorCall getDirectorCall();
+ P2Task getP2Task();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}' container reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Director Call</em>' container reference.
- * @see #getDirectorCall()
+ * @param value the new value of the '<em>P2 Task</em>' container reference.
+ * @see #getP2Task()
* @generated
*/
- void setDirectorCall(DirectorCall value);
+ void setP2Task(P2Task value);
/**
* Returns the value of the '<em><b>Id</b></em>' attribute.
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java
index b3809063eb..6a29e22e30 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java
@@ -1,35 +1,25 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Link Location</b></em>'.
+ * A representation of the model object '<em><b>Link Location Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask()
* @model
* @generated
*/
-public interface LinkLocation extends EObject
+public interface LinkLocationTask extends SetupTask
{
/**
* Returns the value of the '<em><b>Path</b></em>' attribute.
@@ -41,14 +31,14 @@ public interface LinkLocation extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Path</em>' attribute.
* @see #setPath(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Path()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Path()
* @model
* @generated
*/
String getPath();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Path</em>' attribute.
@@ -67,14 +57,14 @@ public interface LinkLocation extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Name</em>' attribute.
* @see #setName(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Name()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Name()
* @model
* @generated
*/
String getName();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Name</em>' attribute.
@@ -83,4 +73,4 @@ public interface LinkLocation extends EObject
*/
void setName(String value);
-} // LinkLocation
+} // LinkLocationTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java
new file mode 100644
index 0000000000..325fd72b50
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java
@@ -0,0 +1,49 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>One Time Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask()
+ * @model abstract="true"
+ * @generated
+ */
+public interface OneTimeSetupTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask_Id()
+ * @model required="true"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+} // OneTimeSetupTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java
index 86f3c59534..7c7b5cd47e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java
@@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject;
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}</li>
* </ul>
* </p>
@@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject;
public interface P2Repository extends EObject
{
/**
- * Returns the value of the '<em><b>Director Call</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'.
+ * Returns the value of the '<em><b>P2 Task</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Director Call</em>' container reference isn't clear,
+ * If the meaning of the '<em>P2 Task</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Director Call</em>' container reference.
- * @see #setDirectorCall(DirectorCall)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_DirectorCall()
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories
+ * @return the value of the '<em>P2 Task</em>' container reference.
+ * @see #setP2Task(P2Task)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_P2Task()
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories
* @model opposite="p2Repositories" transient="false"
* @generated
*/
- DirectorCall getDirectorCall();
+ P2Task getP2Task();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}' container reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Director Call</em>' container reference.
- * @see #getDirectorCall()
+ * @param value the new value of the '<em>P2 Task</em>' container reference.
+ * @see #getP2Task()
* @generated
*/
- void setDirectorCall(DirectorCall value);
+ void setP2Task(P2Task value);
/**
* Returns the value of the '<em><b>Url</b></em>' attribute.
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java
index bb9ff02fa1..3292d5b9a8 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java
@@ -1,41 +1,32 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Director Call</b></em>'.
+ * A representation of the model object '<em><b>Install Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task()
* @model
* @generated
*/
-public interface DirectorCall extends EObject
+public interface P2Task extends SetupTask
{
/**
* Returns the value of the '<em><b>Installable Units</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.InstallableUnit}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Installable Units</em>' containment reference list isn't clear,
@@ -43,9 +34,9 @@ public interface DirectorCall extends EObject
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Installable Units</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_InstallableUnits()
- * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall
- * @model opposite="directorCall" containment="true" required="true"
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_InstallableUnits()
+ * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task
+ * @model opposite="p2Task" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<InstallableUnit> getInstallableUnits();
@@ -53,7 +44,7 @@ public interface DirectorCall extends EObject
/**
* Returns the value of the '<em><b>P2 Repositories</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>P2 Repositories</em>' containment reference list isn't clear,
@@ -61,11 +52,11 @@ public interface DirectorCall extends EObject
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>P2 Repositories</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_P2Repositories()
- * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall
- * @model opposite="directorCall" containment="true" required="true"
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_P2Repositories()
+ * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task
+ * @model opposite="p2Task" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<P2Repository> getP2Repositories();
-} // DirectorCall
+} // InstallTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java
index be482948d7..47b700e5c8 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java
@@ -13,7 +13,6 @@ package org.eclipse.emf.cdo.releng.setup;
import org.eclipse.emf.common.util.URI;
import java.io.File;
-import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
@@ -26,7 +25,6 @@ import org.eclipse.emf.common.util.EList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getUserName <em>User Name</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getInstallFolder <em>Install Folder</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getGitPrefix <em>Git Prefix</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}</li>
* </ul>
* </p>
*
@@ -34,7 +32,7 @@ import org.eclipse.emf.common.util.EList;
* @model
* @generated
*/
-public interface Preferences extends ToolInstallation
+public interface Preferences extends SetupTaskContainer
{
public static final String PREFERENCES_NAME = "setup-eclipse.xmi";
@@ -119,20 +117,4 @@ public interface Preferences extends ToolInstallation
*/
void setGitPrefix(String value);
- /**
- * Returns the value of the '<em><b>Link Locations</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.LinkLocation}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Link Locations</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Link Locations</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getPreferences_LinkLocations()
- * @model containment="true"
- * @generated
- */
- EList<LinkLocation> getLinkLocations();
-
} // Preferences
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java
index 284a66bfc3..4721c395bd 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java
@@ -10,7 +10,6 @@
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
import org.eclipse.emf.common.util.EList;
/**
@@ -24,8 +23,6 @@ import org.eclipse.emf.common.util.EList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getBranches <em>Branches</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}</li>
* </ul>
* </p>
*
@@ -33,7 +30,7 @@ import org.eclipse.emf.common.util.EList;
* @model
* @generated
*/
-public interface Project extends ToolInstallation
+public interface Project extends ConfigurableItem
{
/**
* Returns the value of the '<em><b>Configuration</b></em>' container reference.
@@ -48,7 +45,7 @@ public interface Project extends ToolInstallation
* @see #setConfiguration(Configuration)
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Configuration()
* @see org.eclipse.emf.cdo.releng.setup.Configuration#getProjects
- * @model opposite="projects" transient="false"
+ * @model opposite="projects"
* @generated
*/
Configuration getConfiguration();
@@ -76,7 +73,7 @@ public interface Project extends ToolInstallation
* @return the value of the '<em>Branches</em>' containment reference list.
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Branches()
* @see org.eclipse.emf.cdo.releng.setup.Branch#getProject
- * @model opposite="project" containment="true" required="true"
+ * @model opposite="project" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<Branch> getBranches();
@@ -107,48 +104,4 @@ public interface Project extends ToolInstallation
*/
void setName(String value);
- /**
- * Returns the value of the '<em><b>Api Baselines</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Api Baselines</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Api Baselines</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_ApiBaselines()
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject
- * @model opposite="project" containment="true"
- * @generated
- */
- EList<ApiBaseline> getApiBaselines();
-
- /**
- * Returns the value of the '<em><b>Working Set Group</b></em>' containment reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Working Set Group</em>' containment reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Working Set Group</em>' containment reference.
- * @see #setWorkingSetGroup(WorkingSetGroup)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_WorkingSetGroup()
- * @model containment="true"
- * @generated
- */
- WorkingSetGroup getWorkingSetGroup();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Working Set Group</em>' containment reference.
- * @see #getWorkingSetGroup()
- * @generated
- */
- void setWorkingSetGroup(WorkingSetGroup value);
-
} // Project
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java
new file mode 100644
index 0000000000..2a6e470ef7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java
@@ -0,0 +1,76 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Resource Copy Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask()
+ * @model
+ * @generated
+ */
+public interface ResourceCopyTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Source URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source URL</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source URL</em>' attribute.
+ * @see #setSourceURL(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_SourceURL()
+ * @model
+ * @generated
+ */
+ String getSourceURL();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source URL</em>' attribute.
+ * @see #getSourceURL()
+ * @generated
+ */
+ void setSourceURL(String value);
+
+ /**
+ * Returns the value of the '<em><b>Target URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target URL</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target URL</em>' attribute.
+ * @see #setTargetURL(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_TargetURL()
+ * @model
+ * @generated
+ */
+ String getTargetURL();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target URL</em>' attribute.
+ * @see #getTargetURL()
+ * @generated
+ */
+ void setTargetURL(String value);
+
+} // ResourceCopyTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java
index 62f299693f..1897e0b1f9 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java
@@ -24,7 +24,6 @@ import org.eclipse.emf.ecore.EObject;
* <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}</li>
* </ul>
* </p>
*
@@ -87,45 +86,37 @@ public interface Setup extends EObject
void setEclipseVersion(EclipseVersion value);
/**
- * Returns the value of the '<em><b>Preferences</b></em>' containment reference.
+ * Returns the value of the '<em><b>Preferences</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Preferences</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Preferences</em>' containment reference.
+ * @return the value of the '<em>Preferences</em>' reference.
* @see #setPreferences(Preferences)
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_Preferences()
- * @model containment="true"
+ * @model required="true"
* @generated
*/
Preferences getPreferences();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' containment reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Preferences</em>' containment reference.
+ * @param value the new value of the '<em>Preferences</em>' reference.
* @see #getPreferences()
* @generated
*/
void setPreferences(Preferences value);
/**
- * Returns the value of the '<em><b>Update Locations</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}.
* <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Update Locations</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Update Locations</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_UpdateLocations()
- * @model containment="true"
+ * @model
* @generated
*/
- EList<P2Repository> getUpdateLocations();
+ EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger);
} // Workspace
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java
index c072236719..f0eb8f7a9a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java
@@ -58,6 +58,24 @@ public interface SetupFactory extends EFactory
Branch createBranch();
/**
+ * Returns a new object of class '<em>Api Baseline Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Api Baseline Task</em>'.
+ * @generated
+ */
+ ApiBaselineTask createApiBaselineTask();
+
+ /**
+ * Returns a new object of class '<em>Git Clone Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Git Clone Task</em>'.
+ * @generated
+ */
+ GitCloneTask createGitCloneTask();
+
+ /**
* Returns a new object of class '<em>Eclipse Version</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -67,13 +85,13 @@ public interface SetupFactory extends EFactory
EclipseVersion createEclipseVersion();
/**
- * Returns a new object of class '<em>Director Call</em>'.
+ * Returns a new object of class '<em>P2 Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Director Call</em>'.
+ * @return a new object of class '<em>P2 Task</em>'.
* @generated
*/
- DirectorCall createDirectorCall();
+ P2Task createP2Task();
/**
* Returns a new object of class '<em>Installable Unit</em>'.
@@ -94,49 +112,85 @@ public interface SetupFactory extends EFactory
P2Repository createP2Repository();
/**
- * Returns a new object of class '<em>Api Baseline</em>'.
+ * Returns a new object of class '<em>Setup</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Api Baseline</em>'.
+ * @return a new object of class '<em>Setup</em>'.
* @generated
*/
- ApiBaseline createApiBaseline();
+ Setup createSetup();
/**
- * Returns a new object of class '<em>Git Clone</em>'.
+ * Returns a new object of class '<em>Working Set Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Git Clone</em>'.
+ * @return a new object of class '<em>Working Set Task</em>'.
* @generated
*/
- GitClone createGitClone();
+ WorkingSetTask createWorkingSetTask();
/**
- * Returns a new object of class '<em>Setup</em>'.
+ * Returns a new object of class '<em>Resource Copy Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Setup</em>'.
+ * @return a new object of class '<em>Resource Copy Task</em>'.
* @generated
*/
- Setup createSetup();
+ ResourceCopyTask createResourceCopyTask();
/**
- * Returns a new object of class '<em>Tool Preference</em>'.
+ * Returns a new object of class '<em>Text Modify Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Text Modify Task</em>'.
+ * @generated
+ */
+ TextModifyTask createTextModifyTask();
+
+ /**
+ * Returns a new object of class '<em>Text Modification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Text Modification</em>'.
+ * @generated
+ */
+ TextModification createTextModification();
+
+ /**
+ * Returns a new object of class '<em>Eclipse Ini Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Eclipse Ini Task</em>'.
+ * @generated
+ */
+ EclipseIniTask createEclipseIniTask();
+
+ /**
+ * Returns a new object of class '<em>Compound Setup Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compound Setup Task</em>'.
+ * @generated
+ */
+ CompoundSetupTask createCompoundSetupTask();
+
+ /**
+ * Returns a new object of class '<em>Buckminster Import Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Tool Preference</em>'.
+ * @return a new object of class '<em>Buckminster Import Task</em>'.
* @generated
*/
- ToolPreference createToolPreference();
+ BuckminsterImportTask createBuckminsterImportTask();
/**
- * Returns a new object of class '<em>Link Location</em>'.
+ * Returns a new object of class '<em>String Variable Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Link Location</em>'.
+ * @return a new object of class '<em>String Variable Task</em>'.
* @generated
*/
- LinkLocation createLinkLocation();
+ StringVariableTask createStringVariableTask();
/**
* Returns a new object of class '<em>Preferences</em>'.
@@ -148,6 +202,24 @@ public interface SetupFactory extends EFactory
Preferences createPreferences();
/**
+ * Returns a new object of class '<em>Link Location Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Link Location Task</em>'.
+ * @generated
+ */
+ LinkLocationTask createLinkLocationTask();
+
+ /**
+ * Returns a new object of class '<em>Eclipse Preference Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Eclipse Preference Task</em>'.
+ * @generated
+ */
+ EclipsePreferenceTask createEclipsePreferenceTask();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java
index eece03b9e8..8040621c5c 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java
@@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.releng.setup;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
@@ -67,24 +68,24 @@ public interface SetupPackage extends EPackage
SetupPackage eINSTANCE = org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl.init();
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration()
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer()
* @generated
*/
- int CONFIGURATION = 8;
+ int SETUP_TASK_CONTAINER = 8;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration()
* @generated
*/
- int TOOL_INSTALLATION = 2;
+ int CONFIGURATION = 1;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl <em>Project</em>}' class.
@@ -94,7 +95,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getProject()
* @generated
*/
- int PROJECT = 9;
+ int PROJECT = 3;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class.
@@ -104,7 +105,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch()
* @generated
*/
- int BRANCH = 10;
+ int BRANCH = 4;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class.
@@ -114,17 +115,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseVersion()
* @generated
*/
- int ECLIPSE_VERSION = 4;
-
- /**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall()
- * @generated
- */
- int DIRECTOR_CALL = 5;
+ int ECLIPSE_VERSION = 0;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class.
@@ -134,7 +125,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getInstallableUnit()
* @generated
*/
- int INSTALLABLE_UNIT = 6;
+ int INSTALLABLE_UNIT = 14;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl <em>P2 Repository</em>}' class.
@@ -144,82 +135,266 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Repository()
* @generated
*/
- int P2_REPOSITORY = 7;
+ int P2_REPOSITORY = 15;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences()
* @generated
*/
- int API_BASELINE = 11;
+ int PREFERENCES = 5;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask()
* @generated
*/
- int GIT_CLONE = 12;
+ int SETUP_TASK = 7;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask()
+ * @generated
+ */
+ int LINK_LOCATION_TASK = 12;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask()
+ * @generated
+ */
+ int ECLIPSE_PREFERENCE_TASK = 19;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
+ * @generated
+ */
+ int SETUP = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task()
+ * @generated
+ */
+ int P2_TASK = 13;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK_CONTAINER__SETUP_TASKS = 0;
+
+ /**
+ * The number of structural features of the '<em>Task Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK_CONTAINER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem()
+ * @generated
+ */
+ int CONFIGURABLE_ITEM = 2;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ITEM__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS;
+
+ /**
+ * The number of structural features of the '<em>Configurable Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ITEM_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
+ * @ordered
*/
- int PREFERENCES = 0;
+ int ECLIPSE_VERSION__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Configuration</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_VERSION__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_VERSION__VERSION = CONFIGURABLE_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Eclipse Version</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_VERSION_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Projects</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__PROJECTS = 0;
+
+ /**
+ * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__ECLIPSE_VERSIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_FEATURE_COUNT = 2;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_INSTALLATION__DIRECTOR_CALLS = 0;
+ int PROJECT__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The feature id for the '<em><b>Configuration</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_INSTALLATION__TOOL_PREFERENCES = 1;
+ int PROJECT__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0;
/**
- * The number of structural features of the '<em>Tool Installation</em>' class.
+ * The feature id for the '<em><b>Branches</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_INSTALLATION_FEATURE_COUNT = 2;
+ int PROJECT__BRANCHES = CONFIGURABLE_ITEM_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS;
+ int PROJECT__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES;
+ int BRANCH__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BRANCH__PROJECT = CONFIGURABLE_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BRANCH__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Branch</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BRANCH_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCES__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS;
/**
* The feature id for the '<em><b>User Name</b></em>' attribute.
@@ -228,7 +403,7 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int PREFERENCES__USER_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 0;
+ int PREFERENCES__USER_NAME = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Install Folder</b></em>' attribute.
@@ -237,7 +412,7 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int PREFERENCES__INSTALL_FOLDER = TOOL_INSTALLATION_FEATURE_COUNT + 1;
+ int PREFERENCES__INSTALL_FOLDER = SETUP_TASK_CONTAINER_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Git Prefix</b></em>' attribute.
@@ -246,64 +421,182 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int PREFERENCES__GIT_PREFIX = TOOL_INSTALLATION_FEATURE_COUNT + 2;
+ int PREFERENCES__GIT_PREFIX = SETUP_TASK_CONTAINER_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Link Locations</b></em>' containment reference list.
+ * The number of structural features of the '<em>Preferences</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES__LINK_LOCATIONS = TOOL_INSTALLATION_FEATURE_COUNT + 3;
+ int PREFERENCES_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 3;
/**
- * The number of structural features of the '<em>Preferences</em>' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask()
+ * @generated
+ */
+ int API_BASELINE_TASK = 17;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask()
+ * @generated
+ */
+ int GIT_CLONE_TASK = 18;
+
+ /**
+ * The feature id for the '<em><b>Branch</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 4;
+ int SETUP__BRANCH = 0;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
+ * The feature id for the '<em><b>Eclipse Version</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
* @generated
+ * @ordered
*/
- int SETUP = 13;
+ int SETUP__ECLIPSE_VERSION = 1;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class.
+ * The feature id for the '<em><b>Preferences</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference()
* @generated
+ * @ordered
*/
- int TOOL_PREFERENCE = 3;
+ int SETUP__PREFERENCES = 2;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class.
+ * The number of structural features of the '<em>Setup</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation()
* @generated
+ * @ordered
*/
- int LINK_LOCATION = 1;
+ int SETUP_FEATURE_COUNT = 3;
/**
- * The feature id for the '<em><b>Path</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK__REQUIREMENTS = 0;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK__RESTRICTIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int LINK_LOCATION__PATH = 0;
+ int SETUP_TASK__SCOPE = 2;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK__EXCLUDED_TRIGGERS = 3;
+
+ /**
+ * The number of structural features of the '<em>Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask()
+ * @generated
+ */
+ int WORKING_SET_TASK = 21;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask()
+ * @generated
+ */
+ int COMPOUND_SETUP_TASK = 9;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__SETUP_TASKS = SETUP_TASK_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -312,25 +605,155 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int LINK_LOCATION__NAME = 1;
+ int COMPOUND_SETUP_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The number of structural features of the '<em>Link Location</em>' class.
+ * The number of structural features of the '<em>Compound Setup Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int LINK_LOCATION_FEATURE_COUNT = 2;
+ int COMPOUND_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Key</b></em>' attribute.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask()
+ * @generated
+ */
+ int ONE_TIME_SETUP_TASK = 10;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_PREFERENCE__KEY = 0;
+ int ONE_TIME_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__ID = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>One Time Setup Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask()
+ * @generated
+ */
+ int BUCKMINSTER_IMPORT_TASK = 16;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask()
+ * @generated
+ */
+ int STRING_VARIABLE_TASK = 20;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask()
+ * @generated
+ */
+ int ECLIPSE_INI_TASK = 11;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Option</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__OPTION = SETUP_TASK_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Value</b></em>' attribute.
@@ -339,88 +762,160 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int TOOL_PREFERENCE__VALUE = 1;
+ int ECLIPSE_INI_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The number of structural features of the '<em>Tool Preference</em>' class.
+ * The feature id for the '<em><b>Vm</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_PREFERENCE_FEATURE_COUNT = 2;
+ int ECLIPSE_INI_TASK__VM = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Configuration</b></em>' container reference.
+ * The number of structural features of the '<em>Eclipse Ini Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION__CONFIGURATION = 0;
+ int ECLIPSE_INI_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Version</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION__VERSION = 1;
+ int LINK_LOCATION_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Director Call</b></em>' containment reference.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION__DIRECTOR_CALL = 2;
+ int LINK_LOCATION_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The number of structural features of the '<em>Eclipse Version</em>' class.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION_FEATURE_COUNT = 3;
+ int LINK_LOCATION_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Installable Units</b></em>' containment reference list.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK__PATH = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Link Location Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int DIRECTOR_CALL__INSTALLABLE_UNITS = 0;
+ int P2_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
* The feature id for the '<em><b>P2 Repositories</b></em>' containment reference list.
* <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__P2_REPOSITORIES = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Installable Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int DIRECTOR_CALL__P2_REPOSITORIES = 1;
+ int P2_TASK__INSTALLABLE_UNITS = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The number of structural features of the '<em>Director Call</em>' class.
+ * The number of structural features of the '<em>P2 Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int DIRECTOR_CALL_FEATURE_COUNT = 2;
+ int P2_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Director Call</b></em>' container reference.
+ * The feature id for the '<em><b>P2 Task</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int INSTALLABLE_UNIT__DIRECTOR_CALL = 0;
+ int INSTALLABLE_UNIT__P2_TASK = 0;
/**
* The feature id for the '<em><b>Id</b></em>' attribute.
@@ -441,13 +936,13 @@ public interface SetupPackage extends EPackage
int INSTALLABLE_UNIT_FEATURE_COUNT = 2;
/**
- * The feature id for the '<em><b>Director Call</b></em>' container reference.
+ * The feature id for the '<em><b>P2 Task</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int P2_REPOSITORY__DIRECTOR_CALL = 0;
+ int P2_REPOSITORY__P2_TASK = 0;
/**
* The feature id for the '<em><b>Url</b></em>' attribute.
@@ -468,325 +963,647 @@ public interface SetupPackage extends EPackage
int P2_REPOSITORY_FEATURE_COUNT = 2;
/**
- * The feature id for the '<em><b>Projects</b></em>' containment reference list.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONFIGURATION__PROJECTS = 0;
+ int BUCKMINSTER_IMPORT_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONFIGURATION__ECLIPSE_VERSIONS = 1;
+ int BUCKMINSTER_IMPORT_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The number of structural features of the '<em>Configuration</em>' class.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONFIGURATION_FEATURE_COUNT = 2;
+ int BUCKMINSTER_IMPORT_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS;
+ int BUCKMINSTER_IMPORT_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The feature id for the '<em><b>Mspec</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUCKMINSTER_IMPORT_TASK__MSPEC = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target Platform</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES;
+ int BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Configuration</b></em>' container reference.
+ * The feature id for the '<em><b>Bundle Pool</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__CONFIGURATION = TOOL_INSTALLATION_FEATURE_COUNT + 0;
+ int BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Branches</b></em>' containment reference list.
+ * The number of structural features of the '<em>Buckminster Import Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__BRANCHES = TOOL_INSTALLATION_FEATURE_COUNT + 1;
+ int BUCKMINSTER_IMPORT_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 2;
+ int API_BASELINE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Api Baselines</b></em>' containment reference list.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__API_BASELINES = TOOL_INSTALLATION_FEATURE_COUNT + 3;
+ int API_BASELINE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The feature id for the '<em><b>Working Set Group</b></em>' containment reference.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__WORKING_SET_GROUP = TOOL_INSTALLATION_FEATURE_COUNT + 4;
+ int API_BASELINE_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The number of structural features of the '<em>Project</em>' class.
- * <!-- begin-user-doc -->
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int API_BASELINE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PROJECT_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 5;
+ * @generated
+ * @ordered
+ */
+ int API_BASELINE_TASK__VERSION = SETUP_TASK_FEATURE_COUNT + 0;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Zip Location</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS;
+ int API_BASELINE_TASK__ZIP_LOCATION = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The number of structural features of the '<em>Api Baseline Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES;
+ int API_BASELINE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Project</b></em>' container reference.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__PROJECT = TOOL_INSTALLATION_FEATURE_COUNT + 0;
+ int GIT_CLONE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Remote Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 1;
+ int GIT_CLONE_TASK__REMOTE_NAME = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Git Clones</b></em>' containment reference list.
+ * The feature id for the '<em><b>Remote URI</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__GIT_CLONES = TOOL_INSTALLATION_FEATURE_COUNT + 2;
+ int GIT_CLONE_TASK__REMOTE_URI = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Api Baseline</b></em>' reference.
+ * The feature id for the '<em><b>Checkout Branch</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__API_BASELINE = TOOL_INSTALLATION_FEATURE_COUNT + 3;
+ int GIT_CLONE_TASK__CHECKOUT_BRANCH = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Mspec File Path</b></em>' attribute.
+ * The number of structural features of the '<em>Git Clone Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__MSPEC_FILE_PATH = TOOL_INSTALLATION_FEATURE_COUNT + 4;
+ int GIT_CLONE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 4;
/**
- * The feature id for the '<em><b>Clone Variable Name</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__CLONE_VARIABLE_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 5;
+ int ECLIPSE_PREFERENCE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The number of structural features of the '<em>Branch</em>' class.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 6;
+ int ECLIPSE_PREFERENCE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The feature id for the '<em><b>Project</b></em>' container reference.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE__PROJECT = 0;
+ int ECLIPSE_PREFERENCE_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Version</b></em>' attribute.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE__VERSION = 1;
+ int ECLIPSE_PREFERENCE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
- * The feature id for the '<em><b>Zip Location</b></em>' attribute.
+ * The feature id for the '<em><b>Key</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_PREFERENCE_TASK__KEY = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_PREFERENCE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Eclipse Preference Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_PREFERENCE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_VARIABLE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE__ZIP_LOCATION = 2;
+ int STRING_VARIABLE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The number of structural features of the '<em>Api Baseline</em>' class.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE_FEATURE_COUNT = 3;
+ int STRING_VARIABLE_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Branch</b></em>' container reference.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__BRANCH = 0;
+ int STRING_VARIABLE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_VARIABLE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__NAME = 1;
+ int STRING_VARIABLE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Remote URI</b></em>' attribute.
+ * The feature id for the '<em><b>Description</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__REMOTE_URI = 2;
+ int STRING_VARIABLE_TASK__DESCRIPTION = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Checkout Branch</b></em>' attribute.
+ * The number of structural features of the '<em>String Variable Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__CHECKOUT_BRANCH = 3;
+ int STRING_VARIABLE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The number of structural features of the '<em>Git Clone</em>' class.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE_FEATURE_COUNT = 4;
+ int WORKING_SET_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Branch</b></em>' reference.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__BRANCH = 0;
+ int WORKING_SET_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The feature id for the '<em><b>Eclipse Version</b></em>' reference.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__ECLIPSE_VERSION = 1;
+ int WORKING_SET_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Preferences</b></em>' containment reference.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__PREFERENCES = 2;
+ int WORKING_SET_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
- * The feature id for the '<em><b>Update Locations</b></em>' containment reference list.
+ * The feature id for the '<em><b>Working Sets</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__UPDATE_LOCATIONS = 3;
+ int WORKING_SET_TASK__WORKING_SETS = SETUP_TASK_FEATURE_COUNT + 0;
/**
- * The number of structural features of the '<em>Setup</em>' class.
+ * The number of structural features of the '<em>Working Set Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKING_SET_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask()
+ * @generated
+ */
+ int RESOURCE_COPY_TASK = 22;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP_FEATURE_COUNT = 4;
+ int RESOURCE_COPY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The meta object id for the '<em>URI</em>' data type.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Source URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__SOURCE_URL = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__TARGET_URL = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Resource Copy Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask()
+ * @generated
+ */
+ int TEXT_MODIFY_TASK = 23;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Url</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__URL = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Modifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__MODIFICATIONS = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Text Modify Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification()
+ * @generated
+ */
+ int TEXT_MODIFICATION = 24;
+
+ /**
+ * The feature id for the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFICATION__PATTERN = 0;
+
+ /**
+ * The feature id for the '<em><b>Substitutions</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFICATION__SUBSTITUTIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Text Modification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFICATION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope()
+ * @generated
+ */
+ int SETUP_TASK_SCOPE = 25;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.Trigger
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger()
+ * @generated
+ */
+ int TRIGGER = 26;
+
+ /**
+ * The meta object id for the '<em>URI</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @see org.eclipse.emf.common.util.URI
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getURI()
* @generated
*/
- int URI = 14;
+ int URI = 27;
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'.
+ * The meta object id for the '<em>Exception</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see java.lang.Exception
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException()
+ * @generated
+ */
+ int EXCEPTION = 28;
+
+ /**
+ * The meta object id for the '<em>Trigger Set</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.Set
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet()
+ * @generated
+ */
+ int TRIGGER_SET = 29;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @return the meta object for class '<em>Configuration</em>'.
* @see org.eclipse.emf.cdo.releng.setup.Configuration
* @generated
@@ -859,35 +1676,13 @@ public interface SetupPackage extends EPackage
EAttribute getProject_Name();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Api Baselines</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines()
- * @see #getProject()
- * @generated
- */
- EReference getProject_ApiBaselines();
-
- /**
- * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference '<em>Working Set Group</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup()
- * @see #getProject()
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Branch</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Branch
* @generated
*/
- EReference getProject_WorkingSetGroup();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch
- * @generated
- */
EClass getBranch();
/**
@@ -913,80 +1708,90 @@ public interface SetupPackage extends EPackage
EAttribute getBranch_Name();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Git Clones</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones()
- * @see #getBranch()
+ * @return the meta object for class '<em>Api Baseline Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask
* @generated
*/
- EReference getBranch_GitClones();
+ EClass getApiBaselineTask();
/**
- * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference '<em>Api Baseline</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline()
- * @see #getBranch()
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion()
+ * @see #getApiBaselineTask()
* @generated
*/
- EReference getBranch_ApiBaseline();
+ EAttribute getApiBaselineTask_Version();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Mspec File Path</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath()
- * @see #getBranch()
+ * @return the meta object for the attribute '<em>Zip Location</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation()
+ * @see #getApiBaselineTask()
* @generated
*/
- EAttribute getBranch_MspecFilePath();
+ EAttribute getApiBaselineTask_ZipLocation();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Clone Variable Name</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName()
- * @see #getBranch()
+ * @return the meta object for class '<em>Git Clone Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask
* @generated
*/
- EAttribute getBranch_CloneVariableName();
+ EClass getGitCloneTask();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Tool Installation</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName()
+ * @see #getGitCloneTask()
* @generated
*/
- EClass getToolInstallation();
+ EAttribute getGitCloneTask_Name();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Director Calls</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls()
- * @see #getToolInstallation()
+ * @return the meta object for the attribute '<em>Remote Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName()
+ * @see #getGitCloneTask()
* @generated
*/
- EReference getToolInstallation_DirectorCalls();
+ EAttribute getGitCloneTask_RemoteName();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Tool Preferences</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences()
- * @see #getToolInstallation()
+ * @return the meta object for the attribute '<em>Remote URI</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI()
+ * @see #getGitCloneTask()
* @generated
*/
- EReference getToolInstallation_ToolPreferences();
+ EAttribute getGitCloneTask_RemoteURI();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Checkout Branch</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch()
+ * @see #getGitCloneTask()
+ * @generated
+ */
+ EAttribute getGitCloneTask_CheckoutBranch();
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion <em>Eclipse Version</em>}'.
@@ -1021,47 +1826,79 @@ public interface SetupPackage extends EPackage
EAttribute getEclipseVersion_Version();
/**
- * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall()
- * @see #getEclipseVersion()
+ * @return the meta object for class '<em>P2 Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task
* @generated
*/
- EReference getEclipseVersion_DirectorCall();
+ EClass getP2Task();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall
+ * @return the meta object for the containment reference list '<em>Installable Units</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits()
+ * @see #getP2Task()
* @generated
*/
- EClass getDirectorCall();
+ EReference getP2Task_InstallableUnits();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Installable Units</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits()
- * @see #getDirectorCall()
+ * @return the meta object for the containment reference list '<em>P2 Repositories</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories()
+ * @see #getP2Task()
* @generated
*/
- EReference getDirectorCall_InstallableUnits();
+ EReference getP2Task_P2Repositories();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>P2 Repositories</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories()
- * @see #getDirectorCall()
+ * @return the meta object for class '<em>String Variable Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask
* @generated
*/
- EReference getDirectorCall_P2Repositories();
+ EClass getStringVariableTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName()
+ * @see #getStringVariableTask()
+ * @generated
+ */
+ EAttribute getStringVariableTask_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue()
+ * @see #getStringVariableTask()
+ * @generated
+ */
+ EAttribute getStringVariableTask_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription()
+ * @see #getStringVariableTask()
+ * @generated
+ */
+ EAttribute getStringVariableTask_Description();
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit <em>Installable Unit</em>}'.
@@ -1074,15 +1911,15 @@ public interface SetupPackage extends EPackage
EClass getInstallableUnit();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall()
+ * @return the meta object for the container reference '<em>P2 Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task()
* @see #getInstallableUnit()
* @generated
*/
- EReference getInstallableUnit_DirectorCall();
+ EReference getInstallableUnit_P2Task();
/**
* Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}'.
@@ -1106,15 +1943,15 @@ public interface SetupPackage extends EPackage
EClass getP2Repository();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall()
+ * @return the meta object for the container reference '<em>P2 Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task()
* @see #getP2Repository()
* @generated
*/
- EReference getP2Repository_DirectorCall();
+ EReference getP2Repository_P2Task();
/**
* Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}'.
@@ -1128,219 +1965,376 @@ public interface SetupPackage extends EPackage
EAttribute getP2Repository_Url();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Api Baseline</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline
+ * @return the meta object for class '<em>Setup</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup
* @generated
*/
- EClass getApiBaseline();
+ EClass getSetup();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Project</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject()
- * @see #getApiBaseline()
+ * @return the meta object for the reference '<em>Branch</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch()
+ * @see #getSetup()
* @generated
*/
- EReference getApiBaseline_Project();
+ EReference getSetup_Branch();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Version</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion()
- * @see #getApiBaseline()
+ * @return the meta object for the reference '<em>Eclipse Version</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion()
+ * @see #getSetup()
* @generated
*/
- EAttribute getApiBaseline_Version();
+ EReference getSetup_EclipseVersion();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Zip Location</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation()
- * @see #getApiBaseline()
+ * @return the meta object for the reference '<em>Preferences</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences()
+ * @see #getSetup()
* @generated
*/
- EAttribute getApiBaseline_ZipLocation();
+ EReference getSetup_Preferences();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Git Clone</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone
+ * @return the meta object for class '<em>Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask
* @generated
*/
- EClass getGitClone();
+ EClass getSetupTask();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'.
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch()
- * @see #getGitClone()
+ * @return the meta object for the reference list '<em>Requirements</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements()
+ * @see #getSetupTask()
* @generated
*/
- EReference getGitClone_Branch();
+ EReference getSetupTask_Requirements();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}'.
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Name</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getName()
- * @see #getGitClone()
+ * @return the meta object for the reference list '<em>Restrictions</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions()
+ * @see #getSetupTask()
* @generated
*/
- EAttribute getGitClone_Name();
+ EReference getSetupTask_Restrictions();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Remote URI</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI()
- * @see #getGitClone()
+ * @return the meta object for the attribute '<em>Scope</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getScope()
+ * @see #getSetupTask()
* @generated
*/
- EAttribute getGitClone_RemoteURI();
+ EAttribute getSetupTask_Scope();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Checkout Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch()
- * @see #getGitClone()
+ * @return the meta object for the attribute '<em>Excluded Triggers</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers()
+ * @see #getSetupTask()
* @generated
*/
- EAttribute getGitClone_CheckoutBranch();
+ EAttribute getSetupTask_ExcludedTriggers();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Working Set Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask
+ * @generated
+ */
+ EClass getWorkingSetTask();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Setup</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup
+ * @return the meta object for the containment reference list '<em>Working Sets</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets()
+ * @see #getWorkingSetTask()
* @generated
*/
- EClass getSetup();
+ EReference getWorkingSetTask_WorkingSets();
/**
- * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Resource Copy Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask
+ * @generated
+ */
+ EClass getResourceCopyTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Source URL</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL()
+ * @see #getResourceCopyTask()
+ * @generated
+ */
+ EAttribute getResourceCopyTask_SourceURL();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target URL</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL()
+ * @see #getResourceCopyTask()
+ * @generated
+ */
+ EAttribute getResourceCopyTask_TargetURL();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Text Modify Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask
+ * @generated
+ */
+ EClass getTextModifyTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Url</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl()
+ * @see #getTextModifyTask()
+ * @generated
+ */
+ EAttribute getTextModifyTask_Url();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Modifications</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications()
+ * @see #getTextModifyTask()
+ * @generated
+ */
+ EReference getTextModifyTask_Modifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Text Modification</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification
+ * @generated
+ */
+ EClass getTextModification();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification#getPattern()
+ * @see #getTextModification()
+ * @generated
+ */
+ EAttribute getTextModification_Pattern();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Substitutions</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions()
+ * @see #getTextModification()
+ * @generated
+ */
+ EAttribute getTextModification_Substitutions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Eclipse Ini Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask
+ * @generated
+ */
+ EClass getEclipseIniTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference '<em>Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch()
- * @see #getSetup()
+ * @return the meta object for the attribute '<em>Option</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption()
+ * @see #getEclipseIniTask()
* @generated
*/
- EReference getSetup_Branch();
+ EAttribute getEclipseIniTask_Option();
/**
- * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference '<em>Eclipse Version</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion()
- * @see #getSetup()
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue()
+ * @see #getEclipseIniTask()
* @generated
*/
- EReference getSetup_EclipseVersion();
+ EAttribute getEclipseIniTask_Value();
/**
- * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference '<em>Preferences</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences()
- * @see #getSetup()
+ * @return the meta object for the attribute '<em>Vm</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm()
+ * @see #getEclipseIniTask()
* @generated
*/
- EReference getSetup_Preferences();
+ EAttribute getEclipseIniTask_Vm();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}'.
+ * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Update Locations</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations()
- * @see #getSetup()
+ * @return the meta object for enum '<em>Task Scope</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
* @generated
*/
- EReference getSetup_UpdateLocations();
+ EEnum getSetupTaskScope();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'.
+ * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Tool Preference</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference
+ * @return the meta object for enum '<em>Trigger</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Trigger
* @generated
*/
- EClass getToolPreference();
+ EEnum getTrigger();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compound Setup Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask
+ * @generated
+ */
+ EClass getCompoundSetupTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Key</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey()
- * @see #getToolPreference()
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName()
+ * @see #getCompoundSetupTask()
* @generated
*/
- EAttribute getToolPreference_Key();
+ EAttribute getCompoundSetupTask_Name();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Value</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue()
- * @see #getToolPreference()
+ * @return the meta object for class '<em>One Time Setup Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask
* @generated
*/
- EAttribute getToolPreference_Value();
+ EClass getOneTimeSetupTask();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Link Location</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId()
+ * @see #getOneTimeSetupTask()
* @generated
*/
- EClass getLinkLocation();
+ EAttribute getOneTimeSetupTask_Id();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Path</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath()
- * @see #getLinkLocation()
+ * @return the meta object for class '<em>Configurable Item</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem
* @generated
*/
- EAttribute getLinkLocation_Path();
+ EClass getConfigurableItem();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Name</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getName()
- * @see #getLinkLocation()
+ * @return the meta object for class '<em>Buckminster Import Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask
+ * @generated
+ */
+ EClass getBuckminsterImportTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mspec</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec()
+ * @see #getBuckminsterImportTask()
* @generated
*/
- EAttribute getLinkLocation_Name();
+ EAttribute getBuckminsterImportTask_Mspec();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target Platform</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform()
+ * @see #getBuckminsterImportTask()
+ * @generated
+ */
+ EAttribute getBuckminsterImportTask_TargetPlatform();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bundle Pool</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool()
+ * @see #getBuckminsterImportTask()
+ * @generated
+ */
+ EAttribute getBuckminsterImportTask_BundlePool();
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Preferences <em>Preferences</em>}'.
@@ -1386,15 +2380,89 @@ public interface SetupPackage extends EPackage
EAttribute getPreferences_GitPrefix();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Link Locations</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations()
- * @see #getPreferences()
+ * @return the meta object for class '<em>Link Location Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask
* @generated
*/
- EReference getPreferences_LinkLocations();
+ EClass getLinkLocationTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Path</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath()
+ * @see #getLinkLocationTask()
+ * @generated
+ */
+ EAttribute getLinkLocationTask_Path();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName()
+ * @see #getLinkLocationTask()
+ * @generated
+ */
+ EAttribute getLinkLocationTask_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Task Container</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer
+ * @generated
+ */
+ EClass getSetupTaskContainer();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Setup Tasks</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks()
+ * @see #getSetupTaskContainer()
+ * @generated
+ */
+ EReference getSetupTaskContainer_SetupTasks();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Eclipse Preference Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask
+ * @generated
+ */
+ EClass getEclipsePreferenceTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Key</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey()
+ * @see #getEclipsePreferenceTask()
+ * @generated
+ */
+ EAttribute getEclipsePreferenceTask_Key();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue()
+ * @see #getEclipsePreferenceTask()
+ * @generated
+ */
+ EAttribute getEclipsePreferenceTask_Value();
/**
* Returns the meta object for data type '{@link org.eclipse.emf.common.util.URI <em>URI</em>}'.
@@ -1408,9 +2476,31 @@ public interface SetupPackage extends EPackage
EDataType getURI();
/**
- * Returns the factory that creates the instances of the model.
+ * Returns the meta object for data type '{@link java.lang.Exception <em>Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Exception</em>'.
+ * @see java.lang.Exception
+ * @model instanceClass="java.lang.Exception"
+ * @generated
+ */
+ EDataType getException();
+
+ /**
+ * Returns the meta object for data type '{@link java.util.Set <em>Trigger Set</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Trigger Set</em>'.
+ * @see java.util.Set
+ * @model instanceClass="java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>"
+ * @generated
+ */
+ EDataType getTriggerSet();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @return the factory that creates the instances of the model.
* @generated
*/
@@ -1492,104 +2582,98 @@ public interface SetupPackage extends EPackage
EAttribute PROJECT__NAME = eINSTANCE.getProject_Name();
/**
- * The meta object literal for the '<em><b>Api Baselines</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch()
* @generated
*/
- EReference PROJECT__API_BASELINES = eINSTANCE.getProject_ApiBaselines();
+ EClass BRANCH = eINSTANCE.getBranch();
/**
- * The meta object literal for the '<em><b>Working Set Group</b></em>' containment reference feature.
+ * The meta object literal for the '<em><b>Project</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference PROJECT__WORKING_SET_GROUP = eINSTANCE.getProject_WorkingSetGroup();
-
- /**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch()
- * @generated
- */
- EClass BRANCH = eINSTANCE.getBranch();
+ EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project();
/**
- * The meta object literal for the '<em><b>Project</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project();
+ EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name();
/**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask()
* @generated
*/
- EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name();
+ EClass API_BASELINE_TASK = eINSTANCE.getApiBaselineTask();
/**
- * The meta object literal for the '<em><b>Git Clones</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference BRANCH__GIT_CLONES = eINSTANCE.getBranch_GitClones();
+ EAttribute API_BASELINE_TASK__VERSION = eINSTANCE.getApiBaselineTask_Version();
/**
- * The meta object literal for the '<em><b>Api Baseline</b></em>' reference feature.
+ * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference BRANCH__API_BASELINE = eINSTANCE.getBranch_ApiBaseline();
+ EAttribute API_BASELINE_TASK__ZIP_LOCATION = eINSTANCE.getApiBaselineTask_ZipLocation();
/**
- * The meta object literal for the '<em><b>Mspec File Path</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask()
* @generated
*/
- EAttribute BRANCH__MSPEC_FILE_PATH = eINSTANCE.getBranch_MspecFilePath();
+ EClass GIT_CLONE_TASK = eINSTANCE.getGitCloneTask();
/**
- * The meta object literal for the '<em><b>Clone Variable Name</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute BRANCH__CLONE_VARIABLE_NAME = eINSTANCE.getBranch_CloneVariableName();
+ EAttribute GIT_CLONE_TASK__NAME = eINSTANCE.getGitCloneTask_Name();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class.
+ * The meta object literal for the '<em><b>Remote Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation()
* @generated
*/
- EClass TOOL_INSTALLATION = eINSTANCE.getToolInstallation();
+ EAttribute GIT_CLONE_TASK__REMOTE_NAME = eINSTANCE.getGitCloneTask_RemoteName();
/**
- * The meta object literal for the '<em><b>Director Calls</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference TOOL_INSTALLATION__DIRECTOR_CALLS = eINSTANCE.getToolInstallation_DirectorCalls();
+ EAttribute GIT_CLONE_TASK__REMOTE_URI = eINSTANCE.getGitCloneTask_RemoteURI();
/**
- * The meta object literal for the '<em><b>Tool Preferences</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference TOOL_INSTALLATION__TOOL_PREFERENCES = eINSTANCE.getToolInstallation_ToolPreferences();
+ EAttribute GIT_CLONE_TASK__CHECKOUT_BRANCH = eINSTANCE.getGitCloneTask_CheckoutBranch();
/**
* The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class.
@@ -1618,38 +2702,64 @@ public interface SetupPackage extends EPackage
EAttribute ECLIPSE_VERSION__VERSION = eINSTANCE.getEclipseVersion_Version();
/**
- * The meta object literal for the '<em><b>Director Call</b></em>' containment reference feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task()
* @generated
*/
- EReference ECLIPSE_VERSION__DIRECTOR_CALL = eINSTANCE.getEclipseVersion_DirectorCall();
+ EClass P2_TASK = eINSTANCE.getP2Task();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class.
+ * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall()
* @generated
*/
- EClass DIRECTOR_CALL = eINSTANCE.getDirectorCall();
+ EReference P2_TASK__INSTALLABLE_UNITS = eINSTANCE.getP2Task_InstallableUnits();
/**
- * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference DIRECTOR_CALL__INSTALLABLE_UNITS = eINSTANCE.getDirectorCall_InstallableUnits();
+ EReference P2_TASK__P2_REPOSITORIES = eINSTANCE.getP2Task_P2Repositories();
/**
- * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask()
+ * @generated
+ */
+ EClass STRING_VARIABLE_TASK = eINSTANCE.getStringVariableTask();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_VARIABLE_TASK__NAME = eINSTANCE.getStringVariableTask_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_VARIABLE_TASK__VALUE = eINSTANCE.getStringVariableTask_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference DIRECTOR_CALL__P2_REPOSITORIES = eINSTANCE.getDirectorCall_P2Repositories();
+ EAttribute STRING_VARIABLE_TASK__DESCRIPTION = eINSTANCE.getStringVariableTask_Description();
/**
* The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class.
@@ -1662,12 +2772,12 @@ public interface SetupPackage extends EPackage
EClass INSTALLABLE_UNIT = eINSTANCE.getInstallableUnit();
/**
- * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference INSTALLABLE_UNIT__DIRECTOR_CALL = eINSTANCE.getInstallableUnit_DirectorCall();
+ EReference INSTALLABLE_UNIT__P2_TASK = eINSTANCE.getInstallableUnit_P2Task();
/**
* The meta object literal for the '<em><b>Id</b></em>' attribute feature.
@@ -1688,12 +2798,12 @@ public interface SetupPackage extends EPackage
EClass P2_REPOSITORY = eINSTANCE.getP2Repository();
/**
- * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference P2_REPOSITORY__DIRECTOR_CALL = eINSTANCE.getP2Repository_DirectorCall();
+ EReference P2_REPOSITORY__P2_TASK = eINSTANCE.getP2Repository_P2Task();
/**
* The meta object literal for the '<em><b>Url</b></em>' attribute feature.
@@ -1704,174 +2814,310 @@ public interface SetupPackage extends EPackage
EAttribute P2_REPOSITORY__URL = eINSTANCE.getP2Repository_Url();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
* @generated
*/
- EClass API_BASELINE = eINSTANCE.getApiBaseline();
+ EClass SETUP = eINSTANCE.getSetup();
/**
- * The meta object literal for the '<em><b>Project</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>Branch</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference API_BASELINE__PROJECT = eINSTANCE.getApiBaseline_Project();
+ EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch();
/**
- * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute API_BASELINE__VERSION = eINSTANCE.getApiBaseline_Version();
+ EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion();
/**
- * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Preferences</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute API_BASELINE__ZIP_LOCATION = eINSTANCE.getApiBaseline_ZipLocation();
+ EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask()
* @generated
*/
- EClass GIT_CLONE = eINSTANCE.getGitClone();
+ EClass SETUP_TASK = eINSTANCE.getSetupTask();
/**
- * The meta object literal for the '<em><b>Branch</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>Requirements</b></em>' reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference GIT_CLONE__BRANCH = eINSTANCE.getGitClone_Branch();
+ EReference SETUP_TASK__REQUIREMENTS = eINSTANCE.getSetupTask_Requirements();
/**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Restrictions</b></em>' reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute GIT_CLONE__NAME = eINSTANCE.getGitClone_Name();
+ EReference SETUP_TASK__RESTRICTIONS = eINSTANCE.getSetupTask_Restrictions();
/**
- * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Scope</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute GIT_CLONE__REMOTE_URI = eINSTANCE.getGitClone_RemoteURI();
+ EAttribute SETUP_TASK__SCOPE = eINSTANCE.getSetupTask_Scope();
/**
- * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Excluded Triggers</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute GIT_CLONE__CHECKOUT_BRANCH = eINSTANCE.getGitClone_CheckoutBranch();
+ EAttribute SETUP_TASK__EXCLUDED_TRIGGERS = eINSTANCE.getSetupTask_ExcludedTriggers();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask()
+ * @generated
+ */
+ EClass WORKING_SET_TASK = eINSTANCE.getWorkingSetTask();
+
+ /**
+ * The meta object literal for the '<em><b>Working Sets</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
* @generated
*/
- EClass SETUP = eINSTANCE.getSetup();
+ EReference WORKING_SET_TASK__WORKING_SETS = eINSTANCE.getWorkingSetTask_WorkingSets();
/**
- * The meta object literal for the '<em><b>Branch</b></em>' reference feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask()
+ * @generated
+ */
+ EClass RESOURCE_COPY_TASK = eINSTANCE.getResourceCopyTask();
+
+ /**
+ * The meta object literal for the '<em><b>Source URL</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RESOURCE_COPY_TASK__SOURCE_URL = eINSTANCE.getResourceCopyTask_SourceURL();
+
+ /**
+ * The meta object literal for the '<em><b>Target URL</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RESOURCE_COPY_TASK__TARGET_URL = eINSTANCE.getResourceCopyTask_TargetURL();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask()
+ * @generated
+ */
+ EClass TEXT_MODIFY_TASK = eINSTANCE.getTextModifyTask();
+
+ /**
+ * The meta object literal for the '<em><b>Url</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_MODIFY_TASK__URL = eINSTANCE.getTextModifyTask_Url();
+
+ /**
+ * The meta object literal for the '<em><b>Modifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEXT_MODIFY_TASK__MODIFICATIONS = eINSTANCE.getTextModifyTask_Modifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification()
+ * @generated
+ */
+ EClass TEXT_MODIFICATION = eINSTANCE.getTextModification();
+
+ /**
+ * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_MODIFICATION__PATTERN = eINSTANCE.getTextModification_Pattern();
+
+ /**
+ * The meta object literal for the '<em><b>Substitutions</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_MODIFICATION__SUBSTITUTIONS = eINSTANCE.getTextModification_Substitutions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask()
+ * @generated
+ */
+ EClass ECLIPSE_INI_TASK = eINSTANCE.getEclipseIniTask();
+
+ /**
+ * The meta object literal for the '<em><b>Option</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch();
+ EAttribute ECLIPSE_INI_TASK__OPTION = eINSTANCE.getEclipseIniTask_Option();
/**
- * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature.
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion();
+ EAttribute ECLIPSE_INI_TASK__VALUE = eINSTANCE.getEclipseIniTask_Value();
/**
- * The meta object literal for the '<em><b>Preferences</b></em>' containment reference feature.
+ * The meta object literal for the '<em><b>Vm</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences();
+ EAttribute ECLIPSE_INI_TASK__VM = eINSTANCE.getEclipseIniTask_Vm();
/**
- * The meta object literal for the '<em><b>Update Locations</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope()
* @generated
*/
- EReference SETUP__UPDATE_LOCATIONS = eINSTANCE.getSetup_UpdateLocations();
+ EEnum SETUP_TASK_SCOPE = eINSTANCE.getSetupTaskScope();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference()
+ * @see org.eclipse.emf.cdo.releng.setup.Trigger
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger()
* @generated
*/
- EClass TOOL_PREFERENCE = eINSTANCE.getToolPreference();
+ EEnum TRIGGER = eINSTANCE.getTrigger();
/**
- * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask()
+ * @generated
+ */
+ EClass COMPOUND_SETUP_TASK = eINSTANCE.getCompoundSetupTask();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute TOOL_PREFERENCE__KEY = eINSTANCE.getToolPreference_Key();
+ EAttribute COMPOUND_SETUP_TASK__NAME = eINSTANCE.getCompoundSetupTask_Name();
/**
- * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask()
* @generated
*/
- EAttribute TOOL_PREFERENCE__VALUE = eINSTANCE.getToolPreference_Value();
+ EClass ONE_TIME_SETUP_TASK = eINSTANCE.getOneTimeSetupTask();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class.
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation()
* @generated
*/
- EClass LINK_LOCATION = eINSTANCE.getLinkLocation();
+ EAttribute ONE_TIME_SETUP_TASK__ID = eINSTANCE.getOneTimeSetupTask_Id();
/**
- * The meta object literal for the '<em><b>Path</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem()
* @generated
*/
- EAttribute LINK_LOCATION__PATH = eINSTANCE.getLinkLocation_Path();
+ EClass CONFIGURABLE_ITEM = eINSTANCE.getConfigurableItem();
/**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask()
* @generated
*/
- EAttribute LINK_LOCATION__NAME = eINSTANCE.getLinkLocation_Name();
+ EClass BUCKMINSTER_IMPORT_TASK = eINSTANCE.getBuckminsterImportTask();
+
+ /**
+ * The meta object literal for the '<em><b>Mspec</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUCKMINSTER_IMPORT_TASK__MSPEC = eINSTANCE.getBuckminsterImportTask_Mspec();
+
+ /**
+ * The meta object literal for the '<em><b>Target Platform</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = eINSTANCE.getBuckminsterImportTask_TargetPlatform();
+
+ /**
+ * The meta object literal for the '<em><b>Bundle Pool</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = eINSTANCE.getBuckminsterImportTask_BundlePool();
/**
* The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class.
@@ -1908,12 +3154,74 @@ public interface SetupPackage extends EPackage
EAttribute PREFERENCES__GIT_PREFIX = eINSTANCE.getPreferences_GitPrefix();
/**
- * The meta object literal for the '<em><b>Link Locations</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask()
+ * @generated
+ */
+ EClass LINK_LOCATION_TASK = eINSTANCE.getLinkLocationTask();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINK_LOCATION_TASK__PATH = eINSTANCE.getLinkLocationTask_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINK_LOCATION_TASK__NAME = eINSTANCE.getLinkLocationTask_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer()
+ * @generated
+ */
+ EClass SETUP_TASK_CONTAINER = eINSTANCE.getSetupTaskContainer();
+
+ /**
+ * The meta object literal for the '<em><b>Setup Tasks</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SETUP_TASK_CONTAINER__SETUP_TASKS = eINSTANCE.getSetupTaskContainer_SetupTasks();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask()
+ * @generated
+ */
+ EClass ECLIPSE_PREFERENCE_TASK = eINSTANCE.getEclipsePreferenceTask();
+
+ /**
+ * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ECLIPSE_PREFERENCE_TASK__KEY = eINSTANCE.getEclipsePreferenceTask_Key();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference PREFERENCES__LINK_LOCATIONS = eINSTANCE.getPreferences_LinkLocations();
+ EAttribute ECLIPSE_PREFERENCE_TASK__VALUE = eINSTANCE.getEclipsePreferenceTask_Value();
/**
* The meta object literal for the '<em>URI</em>' data type.
@@ -1925,6 +3233,26 @@ public interface SetupPackage extends EPackage
*/
EDataType URI = eINSTANCE.getURI();
+ /**
+ * The meta object literal for the '<em>Exception</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Exception
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException()
+ * @generated
+ */
+ EDataType EXCEPTION = eINSTANCE.getException();
+
+ /**
+ * The meta object literal for the '<em>Trigger Set</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.Set
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet()
+ * @generated
+ */
+ EDataType TRIGGER_SET = eINSTANCE.getTriggerSet();
+
}
} // SetupPackage
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java
new file mode 100644
index 0000000000..67280a0d2f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java
@@ -0,0 +1,139 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SetupTask extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Requirements</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Requirements</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Requirements</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Requirements()
+ * @model
+ * @generated
+ */
+ EList<SetupTask> getRequirements();
+
+ /**
+ * Returns the value of the '<em><b>Restrictions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restrictions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restrictions</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Restrictions()
+ * @model
+ * @generated
+ */
+ EList<ConfigurableItem> getRestrictions();
+
+ /**
+ * Returns the value of the '<em><b>Scope</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Scope</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Scope</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Scope()
+ * @model transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ SetupTaskScope getScope();
+
+ /**
+ * Returns the value of the '<em><b>Excluded Triggers</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Excluded Triggers</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Excluded Triggers</em>' attribute.
+ * @see #setExcludedTriggers(Set)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_ExcludedTriggers()
+ * @model default="" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true"
+ * @generated
+ */
+ Set<Trigger> getExcludedTriggers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Excluded Triggers</em>' attribute.
+ * @see #getExcludedTriggers()
+ * @generated
+ */
+ void setExcludedTriggers(Set<Trigger> value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ boolean requires(SetupTask setupTask);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true"
+ * @generated
+ */
+ Set<Trigger> getValidTriggers();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true"
+ * @generated
+ */
+ Set<Trigger> getTriggers();
+
+ Object getOverrideToken();
+
+ boolean isNeeded(SetupTaskContext context) throws Exception;
+
+ void perform(SetupTaskContext context) throws Exception;
+
+ void dispose();
+
+} // SetupTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java
new file mode 100644
index 0000000000..ff3f5a7e87
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Task Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SetupTaskContainer extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Setup Tasks</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Setup Tasks</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer_SetupTasks()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<SetupTask> getSetupTasks();
+
+} // SetupTaskContainer
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java
new file mode 100644
index 0000000000..4eaf92ecb2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.
+ * 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.cdo.releng.setup.util.OS;
+import org.eclipse.emf.cdo.releng.setup.util.StringExpander;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+
+import java.io.File;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public interface SetupTaskContext extends Map<Object, Object>, ProgressLog, StringExpander
+{
+ public Trigger getTrigger();
+
+ public boolean isRestartNeeded();
+
+ public void setRestartNeeded();
+
+ public OS getOS();
+
+ public String getP2ProfileName();
+
+ public File getP2ProfileDir();
+
+ public File getP2AgentDir();
+
+ public File getP2PoolDir();
+
+ public File getInstallDir();
+
+ public File getProjectDir();
+
+ public File getBranchDir();
+
+ public File getEclipseDir();
+
+ public File getTargetPlatformDir();
+
+ public File getWorkspaceDir();
+
+ public Setup getSetup();
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java
new file mode 100644
index 0000000000..b31b3ad090
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java
@@ -0,0 +1,302 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Task Scope</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskScope()
+ * @model
+ * @generated
+ */
+public enum SetupTaskScope implements Enumerator
+{
+ /**
+ * The '<em><b>None</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(0, "None", "None"),
+
+ /**
+ * The '<em><b>Configuration</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONFIGURATION_VALUE
+ * @generated
+ * @ordered
+ */
+ CONFIGURATION(1, "Configuration", "Configuration"),
+
+ /**
+ * The '<em><b>Project</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROJECT_VALUE
+ * @generated
+ * @ordered
+ */
+ PROJECT(2, "Project", "Project"),
+
+ /**
+ * The '<em><b>Branch</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BRANCH_VALUE
+ * @generated
+ * @ordered
+ */
+ BRANCH(3, "Branch", "Branch"),
+
+ /**
+ * The '<em><b>User</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USER_VALUE
+ * @generated
+ * @ordered
+ */
+ USER(4, "User", "User");
+
+ /**
+ * The '<em><b>None</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>None</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model name="None"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 0;
+
+ /**
+ * The '<em><b>Configuration</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Configuration</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONFIGURATION
+ * @model name="Configuration"
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIGURATION_VALUE = 1;
+
+ /**
+ * The '<em><b>Project</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Project</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROJECT
+ * @model name="Project"
+ * @generated
+ * @ordered
+ */
+ public static final int PROJECT_VALUE = 2;
+
+ /**
+ * The '<em><b>Branch</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Branch</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BRANCH
+ * @model name="Branch"
+ * @generated
+ * @ordered
+ */
+ public static final int BRANCH_VALUE = 3;
+
+ /**
+ * The '<em><b>User</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>User</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USER
+ * @model name="User"
+ * @generated
+ * @ordered
+ */
+ public static final int USER_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Task Scope</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SetupTaskScope[] VALUES_ARRAY = new SetupTaskScope[] { NONE, CONFIGURATION, PROJECT, BRANCH,
+ USER, };
+
+ /**
+ * A public read-only list of all the '<em><b>Task Scope</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SetupTaskScope> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Task Scope</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SetupTaskScope get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ SetupTaskScope result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Task Scope</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SetupTaskScope getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ SetupTaskScope result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Task Scope</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SetupTaskScope get(int value)
+ {
+ switch (value)
+ {
+ case NONE_VALUE:
+ return NONE;
+ case CONFIGURATION_VALUE:
+ return CONFIGURATION;
+ case PROJECT_VALUE:
+ return PROJECT;
+ case BRANCH_VALUE:
+ return BRANCH;
+ case USER_VALUE:
+ return USER;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SetupTaskScope(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} // SetupTaskScope
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java
new file mode 100644
index 0000000000..4dbaf7cfec
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java
@@ -0,0 +1,103 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Variable Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask()
+ * @model
+ * @generated
+ */
+public interface StringVariableTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+} // StringVariableTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java
new file mode 100644
index 0000000000..e16971d568
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java
@@ -0,0 +1,69 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Modification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification()
+ * @model
+ * @generated
+ */
+public interface TextModification extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pattern</em>' attribute.
+ * @see #setPattern(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Pattern()
+ * @model
+ * @generated
+ */
+ String getPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pattern</em>' attribute.
+ * @see #getPattern()
+ * @generated
+ */
+ void setPattern(String value);
+
+ /**
+ * Returns the value of the '<em><b>Substitutions</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Substitutions</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Substitutions</em>' attribute list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Substitutions()
+ * @model
+ * @generated
+ */
+ EList<String> getSubstitutions();
+
+} // TextModification
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java
new file mode 100644
index 0000000000..e4036362c6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java
@@ -0,0 +1,68 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Modify Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask()
+ * @model
+ * @generated
+ */
+public interface TextModifyTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Url</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Url</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Url</em>' attribute.
+ * @see #setUrl(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Url()
+ * @model
+ * @generated
+ */
+ String getUrl();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Url</em>' attribute.
+ * @see #getUrl()
+ * @generated
+ */
+ void setUrl(String value);
+
+ /**
+ * Returns the value of the '<em><b>Modifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.TextModification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Modifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Modifications</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Modifications()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<TextModification> getModifications();
+
+} // TextModifyTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java
deleted file mode 100644
index 40ddaea307..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Tool Installation</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation()
- * @model abstract="true"
- * @generated
- */
-public interface ToolInstallation extends EObject
-{
- /**
- * Returns the value of the '<em><b>Director Calls</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.DirectorCall}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Director Calls</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Director Calls</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_DirectorCalls()
- * @model containment="true"
- * @generated
- */
- EList<DirectorCall> getDirectorCalls();
-
- /**
- * Returns the value of the '<em><b>Tool Preferences</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ToolPreference}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Tool Preferences</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Tool Preferences</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_ToolPreferences()
- * @model containment="true"
- * @generated
- */
- EList<ToolPreference> getToolPreferences();
-
-} // ToolInstallation
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java
new file mode 100644
index 0000000000..2247926e92
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java
@@ -0,0 +1,327 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Trigger</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTrigger()
+ * @model
+ * @generated
+ */
+public enum Trigger implements Enumerator
+{
+ /**
+ * The '<em><b>BOOTSTRAP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BOOTSTRAP_VALUE
+ * @generated
+ * @ordered
+ */
+ BOOTSTRAP(0, "BOOTSTRAP", "BOOTSTRAP"),
+
+ /**
+ * The '<em><b>STARTUP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STARTUP_VALUE
+ * @generated
+ * @ordered
+ */
+ STARTUP(1, "STARTUP", "STARTUP"),
+
+ /**
+ * The '<em><b>MANUAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MANUAL_VALUE
+ * @generated
+ * @ordered
+ */
+ MANUAL(2, "MANUAL", "MANUAL");
+
+ /**
+ * The '<em><b>BOOTSTRAP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BOOTSTRAP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BOOTSTRAP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BOOTSTRAP_VALUE = 0;
+
+ /**
+ * The '<em><b>STARTUP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STARTUP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STARTUP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STARTUP_VALUE = 1;
+
+ /**
+ * The '<em><b>MANUAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MANUAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MANUAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MANUAL_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Trigger</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Trigger[] VALUES_ARRAY = new Trigger[] { BOOTSTRAP, STARTUP, MANUAL, };
+
+ /**
+ * A public read-only list of all the '<em><b>Trigger</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Trigger> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Trigger</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Trigger get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Trigger result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Trigger</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Trigger getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Trigger result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Trigger</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Trigger get(int value)
+ {
+ switch (value)
+ {
+ case BOOTSTRAP_VALUE:
+ return BOOTSTRAP;
+ case STARTUP_VALUE:
+ return STARTUP;
+ case MANUAL_VALUE:
+ return MANUAL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Trigger(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+ public static Set<Trigger> toSet(Trigger... triggers)
+ {
+ return intern(new HashSet<Trigger>(Arrays.asList(triggers)));
+ }
+
+ public static Set<Trigger> intern(Set<Trigger> triggerSet)
+ {
+ return CANONICAL_TRIGGER_SETS.get(triggerSet);
+ }
+
+ private static final Map<Set<Trigger>, Set<Trigger>> CANONICAL_TRIGGER_SETS = new HashMap<Set<Trigger>, Set<Trigger>>();
+
+ public static final Map<Set<Trigger>, String> LITERALS;
+
+ static
+ {
+ Map<Set<Trigger>, String> literals = new LinkedHashMap<Set<Trigger>, String>();
+ for (int i = 0; i < 2; ++i)
+ {
+ for (int j = 0; j < 2; ++j)
+ {
+ for (int k = 0; k < 2; ++k)
+ {
+ Set<Trigger> value = new LinkedHashSet<Trigger>()
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String toString()
+ {
+ StringBuilder result = new StringBuilder();
+ for (Trigger trigger : this)
+ {
+ if (result.length() != 0)
+ {
+ result.append(' ');
+ }
+
+ result.append(trigger);
+ }
+
+ return result.toString();
+ }
+ };
+
+ if (i == 1)
+ {
+ value.add(Trigger.BOOTSTRAP);
+ }
+
+ if (j == 1)
+ {
+ value.add(Trigger.STARTUP);
+ }
+
+ if (k == 1)
+ {
+ value.add(Trigger.MANUAL);
+ }
+
+ value = Collections.unmodifiableSet(value);
+ literals.put(value, value.toString());
+ CANONICAL_TRIGGER_SETS.put(value, value);
+ }
+ }
+ }
+
+ LITERALS = Collections.unmodifiableMap(literals);
+ }
+
+ public static final Set<Trigger> ALL_TRIGGERS = toSet(values());
+
+ public static final Set<Trigger> IDE_TRIGGERS = toSet(Trigger.STARTUP, Trigger.MANUAL);
+
+} // Trigger
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java
new file mode 100644
index 0000000000..1d9ea1eb9e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Set Working Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask()
+ * @model
+ * @generated
+ */
+public interface WorkingSetTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Working Sets</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Working Sets</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Working Sets</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask_WorkingSets()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<WorkingSet> getWorkingSets();
+
+} // SetWorkingTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java
deleted file mode 100644
index 4bfe77cae3..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.helper;
-
-/**
- * @author Eike Stepper
- */
-public final class Progress
-{
- private static final ProgressLog DEFAULT = new ProgressLog()
- {
- public boolean isCancelled()
- {
- return false;
- }
-
- public void addLine(String line)
- {
- System.out.println(line);
- }
- };
-
- private static ProgressLog log;
-
- public static ProgressLog log()
- {
- if (log == null)
- {
- return DEFAULT;
- }
-
- return log;
- }
-
- public static void set(ProgressLog log)
- {
- Progress.log = log;
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java
deleted file mode 100644
index 567947cb97..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
-import org.eclipse.emf.cdo.releng.setup.Project;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Api Baseline</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getProject <em>Project</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getZipLocation <em>Zip Location</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ApiBaselineImpl extends MinimalEObjectImpl.Container implements ApiBaseline
-{
- /**
- * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getVersion()
- * @generated
- * @ordered
- */
- protected static final String VERSION_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getVersion()
- * @generated
- * @ordered
- */
- protected String version = VERSION_EDEFAULT;
-
- /**
- * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getZipLocation()
- * @generated
- * @ordered
- */
- protected static final String ZIP_LOCATION_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getZipLocation()
- * @generated
- * @ordered
- */
- protected String zipLocation = ZIP_LOCATION_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ApiBaselineImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.API_BASELINE;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public Project getProject()
- {
- if (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT)
- return null;
- return (Project)eInternalContainer();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetProject(Project newProject, NotificationChain msgs)
- {
- msgs = eBasicSetContainer((InternalEObject)newProject, SetupPackage.API_BASELINE__PROJECT, msgs);
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setProject(Project newProject)
- {
- if (newProject != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT && newProject != null))
- {
- if (EcoreUtil.isAncestor(this, newProject))
- throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
- NotificationChain msgs = null;
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- if (newProject != null)
- msgs = ((InternalEObject)newProject)
- .eInverseAdd(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs);
- msgs = basicSetProject(newProject, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__PROJECT, newProject, newProject));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getVersion()
- {
- return version;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setVersion(String newVersion)
- {
- String oldVersion = version;
- version = newVersion;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__VERSION, oldVersion, version));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getZipLocation()
- {
- return zipLocation;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setZipLocation(String newZipLocation)
- {
- String oldZipLocation = zipLocation;
- zipLocation = newZipLocation;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__ZIP_LOCATION, oldZipLocation,
- zipLocation));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetProject((Project)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return basicSetProject(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
- {
- switch (eContainerFeatureID())
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return eInternalContainer().eInverseRemove(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs);
- }
- return super.eBasicRemoveFromContainerFeature(msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return getProject();
- case SetupPackage.API_BASELINE__VERSION:
- return getVersion();
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- return getZipLocation();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- setProject((Project)newValue);
- return;
- case SetupPackage.API_BASELINE__VERSION:
- setVersion((String)newValue);
- return;
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- setZipLocation((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- setProject((Project)null);
- return;
- case SetupPackage.API_BASELINE__VERSION:
- setVersion(VERSION_EDEFAULT);
- return;
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- setZipLocation(ZIP_LOCATION_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return getProject() != null;
- case SetupPackage.API_BASELINE__VERSION:
- return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString()
- {
- if (eIsProxy())
- return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (version: ");
- result.append(version);
- result.append(", zipLocation: ");
- result.append(zipLocation);
- result.append(')');
- return result.toString();
- }
-
-} // ApiBaselineImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java
new file mode 100644
index 0000000000..019df2d065
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java
@@ -0,0 +1,340 @@
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.DownloadUtil;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.net4j.util.io.ZIPUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.pde.api.tools.internal.ApiBaselineManager;
+import org.eclipse.pde.api.tools.internal.model.ApiModelFactory;
+import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin;
+import org.eclipse.pde.api.tools.internal.provisional.IApiBaselineManager;
+import org.eclipse.pde.api.tools.internal.provisional.model.IApiBaseline;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Api Baseline Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getZipLocation <em>Zip Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ApiBaselineTaskImpl extends SetupTaskImpl implements ApiBaselineTask
+{
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getZipLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String ZIP_LOCATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getZipLocation()
+ * @generated
+ * @ordered
+ */
+ protected String zipLocation = ZIP_LOCATION_EDEFAULT;
+
+ private transient String baselineName;
+
+ private transient File baselineDir;
+
+ private transient Object cachedBaseline;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ApiBaselineTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.API_BASELINE_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion()
+ {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion)
+ {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__VERSION, oldVersion,
+ version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getZipLocation()
+ {
+ return zipLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setZipLocation(String newZipLocation)
+ {
+ String oldZipLocation = zipLocation;
+ zipLocation = newZipLocation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__ZIP_LOCATION,
+ oldZipLocation, zipLocation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ return getVersion();
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ return getZipLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ setVersion((String)newValue);
+ return;
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ setZipLocation((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ setZipLocation(ZIP_LOCATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (version: ");
+ result.append(version);
+ result.append(", zipLocation: ");
+ result.append(zipLocation);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ baselineName = context.getSetup().getBranch().getProject().getName() + " Baseline";
+ baselineDir = new File(new File(context.getProjectDir(), ".baselines"), getVersion());
+
+ IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager();
+ IApiBaseline baseline = baselineManager.getApiBaseline(baselineName);
+ if (baseline == null)
+ {
+ return true;
+ }
+
+ ((ApiBaselineManager)baselineManager).loadBaselineInfos(baseline);
+
+ if (!new File(baseline.getLocation()).equals(baselineDir))
+ {
+ baselineManager.removeApiBaseline(baselineName);
+ baseline.setName(baselineName + " " + System.currentTimeMillis());
+ baselineManager.addApiBaseline(baseline);
+ return true;
+ }
+
+ if (baselineManager.getDefaultApiBaseline() != baseline)
+ {
+ cachedBaseline = baseline;
+ return true;
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager();
+ IApiBaseline baseline = (IApiBaseline)cachedBaseline;
+ if (baseline == null)
+ {
+ if (!baselineDir.exists())
+ {
+ downloadAndUnzip(context);
+ }
+
+ String location = baselineDir.toString();
+ context.log("Creating API baseline from " + location);
+
+ baseline = ApiModelFactory.newApiBaseline(baselineName, location);
+ ApiModelFactory.addComponents(baseline, location, new ProgressLogMonitor(context));
+ baselineManager.addApiBaseline(baseline);
+ }
+
+ context.log("Activating API baseline: " + baselineName);
+ baselineManager.setDefaultApiBaseline(baselineName);
+ }
+
+ private void downloadAndUnzip(final SetupTaskContext context)
+ {
+ final File baselinesDir = baselineDir.getParentFile();
+ baselinesDir.mkdirs();
+
+ File zipFile = DownloadUtil.downloadURL(getZipLocation(), context);
+
+ final File[] rootDir = { null };
+ ZIPUtil.unzip(zipFile, new ZIPUtil.FileSystemUnzipHandler(baselinesDir, ZIPUtil.DEFAULT_BUFFER_SIZE)
+ {
+ @Override
+ public void unzipFile(String name, InputStream zipStream)
+ {
+ if (rootDir[0] == null)
+ {
+ rootDir[0] = new File(baselinesDir, new Path(name).segment(0));
+ }
+
+ context.log("Unzipping " + name);
+ super.unzipFile(name, zipStream);
+ }
+ });
+
+ rootDir[0].renameTo(baselineDir);
+ }
+
+} // ApiBaselineTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java
index 26044a7b20..2c688c0421 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java
@@ -10,25 +10,16 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-import java.io.File;
-import java.util.Collection;
/**
* <!-- begin-user-doc -->
@@ -39,16 +30,12 @@ import java.util.Collection;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getProject <em>Project</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getGitClones <em>Git Clones</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getApiBaseline <em>Api Baseline</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getMspecFilePath <em>Mspec File Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getCloneVariableName <em>Clone Variable Name</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class BranchImpl extends ToolInstallationImpl implements Branch
+public class BranchImpl extends ConfigurableItemImpl implements Branch
{
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
@@ -71,66 +58,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
protected String name = NAME_EDEFAULT;
/**
- * The cached value of the '{@link #getGitClones() <em>Git Clones</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getGitClones()
- * @generated
- * @ordered
- */
- protected EList<GitClone> gitClones;
-
- /**
- * The cached value of the '{@link #getApiBaseline() <em>Api Baseline</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getApiBaseline()
- * @generated
- * @ordered
- */
- protected ApiBaseline apiBaseline;
-
- /**
- * The default value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getMspecFilePath()
- * @generated
- * @ordered
- */
- protected static final String MSPEC_FILE_PATH_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getMspecFilePath()
- * @generated
- * @ordered
- */
- protected String mspecFilePath = MSPEC_FILE_PATH_EDEFAULT;
-
- /**
- * The default value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCloneVariableName()
- * @generated
- * @ordered
- */
- protected static final String CLONE_VARIABLE_NAME_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCloneVariableName()
- * @generated
- * @ordered
- */
- protected String cloneVariableName = CLONE_VARIABLE_NAME_EDEFAULT;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -160,6 +87,18 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
{
if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT)
return null;
+ return (Project)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Project basicGetProject()
+ {
+ if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT)
+ return null;
return (Project)eInternalContainer();
}
@@ -227,150 +166,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
* <!-- end-user-doc -->
* @generated
*/
- public EList<GitClone> getGitClones()
- {
- if (gitClones == null)
- {
- gitClones = new EObjectContainmentWithInverseEList<GitClone>(GitClone.class, this,
- SetupPackage.BRANCH__GIT_CLONES, SetupPackage.GIT_CLONE__BRANCH);
- }
- return gitClones;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ApiBaseline getApiBaseline()
- {
- if (apiBaseline != null && apiBaseline.eIsProxy())
- {
- InternalEObject oldApiBaseline = (InternalEObject)apiBaseline;
- apiBaseline = (ApiBaseline)eResolveProxy(oldApiBaseline);
- if (apiBaseline != oldApiBaseline)
- {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline,
- apiBaseline));
- }
- }
- return apiBaseline;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ApiBaseline basicGetApiBaseline()
- {
- return apiBaseline;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setApiBaseline(ApiBaseline newApiBaseline)
- {
- ApiBaseline oldApiBaseline = apiBaseline;
- apiBaseline = newApiBaseline;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline,
- apiBaseline));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getMspecFilePath()
- {
- return mspecFilePath;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setMspecFilePath(String newMspecFilePath)
- {
- String oldMspecFilePath = mspecFilePath;
- mspecFilePath = newMspecFilePath;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__MSPEC_FILE_PATH, oldMspecFilePath,
- mspecFilePath));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getCloneVariableName()
- {
- return cloneVariableName;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setCloneVariableName(String newCloneVariableName)
- {
- String oldCloneVariableName = cloneVariableName;
- cloneVariableName = newCloneVariableName;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__CLONE_VARIABLE_NAME,
- oldCloneVariableName, cloneVariableName));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated NOT
- */
- public boolean isInstalled(String installFolder)
- {
- Resource resource = eResource();
- if (resource != null)
- {
- ResourceSet resourceSet = resource.getResourceSet();
- if (resourceSet != null)
- {
- URI uri = getURI(installFolder);
- return resourceSet.getURIConverter().exists(uri, null);
- }
- }
-
- return false;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated NOT
- */
- public URI getURI(String installFolder)
- {
- File folder = new File(installFolder);
- File projectFolder = new File(folder, getProject().getName().toLowerCase());
- File branchFolder = new File(projectFolder, getName().toLowerCase());
- File setupFile = new File(branchFolder, "setup.xmi");
- return URI.createFileURI(setupFile.getAbsolutePath());
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
@@ -380,8 +175,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
return basicSetProject((Project)otherEnd, msgs);
- case SetupPackage.BRANCH__GIT_CLONES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getGitClones()).basicAdd(otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -398,8 +191,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
{
case SetupPackage.BRANCH__PROJECT:
return basicSetProject(null, msgs);
- case SetupPackage.BRANCH__GIT_CLONES:
- return ((InternalEList<?>)getGitClones()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -431,19 +222,11 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
switch (featureID)
{
case SetupPackage.BRANCH__PROJECT:
- return getProject();
+ if (resolve)
+ return getProject();
+ return basicGetProject();
case SetupPackage.BRANCH__NAME:
return getName();
- case SetupPackage.BRANCH__GIT_CLONES:
- return getGitClones();
- case SetupPackage.BRANCH__API_BASELINE:
- if (resolve)
- return getApiBaseline();
- return basicGetApiBaseline();
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- return getMspecFilePath();
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- return getCloneVariableName();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -453,7 +236,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
* <!-- end-user-doc -->
* @generated
*/
- @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
@@ -465,19 +247,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
case SetupPackage.BRANCH__NAME:
setName((String)newValue);
return;
- case SetupPackage.BRANCH__GIT_CLONES:
- getGitClones().clear();
- getGitClones().addAll((Collection<? extends GitClone>)newValue);
- return;
- case SetupPackage.BRANCH__API_BASELINE:
- setApiBaseline((ApiBaseline)newValue);
- return;
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- setMspecFilePath((String)newValue);
- return;
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- setCloneVariableName((String)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -498,18 +267,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
case SetupPackage.BRANCH__NAME:
setName(NAME_EDEFAULT);
return;
- case SetupPackage.BRANCH__GIT_CLONES:
- getGitClones().clear();
- return;
- case SetupPackage.BRANCH__API_BASELINE:
- setApiBaseline((ApiBaseline)null);
- return;
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- setMspecFilePath(MSPEC_FILE_PATH_EDEFAULT);
- return;
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- setCloneVariableName(CLONE_VARIABLE_NAME_EDEFAULT);
- return;
}
super.eUnset(featureID);
}
@@ -525,18 +282,9 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
switch (featureID)
{
case SetupPackage.BRANCH__PROJECT:
- return getProject() != null;
+ return basicGetProject() != null;
case SetupPackage.BRANCH__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case SetupPackage.BRANCH__GIT_CLONES:
- return gitClones != null && !gitClones.isEmpty();
- case SetupPackage.BRANCH__API_BASELINE:
- return apiBaseline != null;
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- return MSPEC_FILE_PATH_EDEFAULT == null ? mspecFilePath != null : !MSPEC_FILE_PATH_EDEFAULT.equals(mspecFilePath);
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- return CLONE_VARIABLE_NAME_EDEFAULT == null ? cloneVariableName != null : !CLONE_VARIABLE_NAME_EDEFAULT
- .equals(cloneVariableName);
}
return super.eIsSet(featureID);
}
@@ -555,10 +303,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
StringBuffer result = new StringBuffer(super.toString());
result.append(" (name: ");
result.append(name);
- result.append(", mspecFilePath: ");
- result.append(mspecFilePath);
- result.append(", cloneVariableName: ");
- result.append(cloneVariableName);
result.append(')');
return result.toString();
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java
new file mode 100644
index 0000000000..4755b8a631
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java
@@ -0,0 +1,515 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.FileUtil;
+import org.eclipse.emf.cdo.releng.setup.util.TargetPlatformUtil;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.net4j.util.io.FileLock;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.buckminster.core.CorePlugin;
+import org.eclipse.buckminster.core.materializer.MaterializationContext;
+import org.eclipse.buckminster.core.materializer.MaterializationJob;
+import org.eclipse.buckminster.core.metadata.model.BillOfMaterials;
+import org.eclipse.buckminster.core.mspec.builder.MaterializationSpecBuilder;
+import org.eclipse.buckminster.core.mspec.model.MaterializationSpec;
+import org.eclipse.buckminster.core.parser.IParser;
+import org.eclipse.buckminster.core.query.model.ComponentQuery;
+import org.eclipse.buckminster.core.resolver.IResolver;
+import org.eclipse.buckminster.core.resolver.MainResolver;
+import org.eclipse.buckminster.core.resolver.ResolutionContext;
+import org.eclipse.buckminster.download.DownloadManager;
+import org.eclipse.buckminster.runtime.MonitorUtils;
+import org.eclipse.core.resources.IWorkspaceDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.equinox.p2.publisher.AbstractPublisherApplication;
+import org.eclipse.equinox.p2.publisher.eclipse.FeaturesAndBundlesPublisherApplication;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.net.URL;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Buckminster Import Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getMspec <em>Mspec</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getTargetPlatform <em>Target Platform</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getBundlePool <em>Bundle Pool</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BuckminsterImportTaskImpl extends SetupTaskImpl implements BuckminsterImportTask
+{
+ /**
+ * The default value of the '{@link #getMspec() <em>Mspec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMspec()
+ * @generated
+ * @ordered
+ */
+ protected static final String MSPEC_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMspec() <em>Mspec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMspec()
+ * @generated
+ * @ordered
+ */
+ protected String mspec = MSPEC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetPlatform()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_PLATFORM_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetPlatform()
+ * @generated
+ * @ordered
+ */
+ protected String targetPlatform = TARGET_PLATFORM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBundlePool()
+ * @generated
+ * @ordered
+ */
+ protected static final String BUNDLE_POOL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBundlePool()
+ * @generated
+ * @ordered
+ */
+ protected String bundlePool = BUNDLE_POOL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BuckminsterImportTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMspec()
+ {
+ return mspec;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMspec(String newMspec)
+ {
+ String oldMspec = mspec;
+ mspec = newMspec;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC, oldMspec,
+ mspec));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetPlatform()
+ {
+ return targetPlatform;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetPlatform(String newTargetPlatform)
+ {
+ String oldTargetPlatform = targetPlatform;
+ targetPlatform = newTargetPlatform;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM,
+ oldTargetPlatform, targetPlatform));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBundlePool()
+ {
+ return bundlePool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBundlePool(String newBundlePool)
+ {
+ String oldBundlePool = bundlePool;
+ bundlePool = newBundlePool;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL,
+ oldBundlePool, bundlePool));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ return getMspec();
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ return getTargetPlatform();
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ return getBundlePool();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ setMspec((String)newValue);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ setTargetPlatform((String)newValue);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ setBundlePool((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ setMspec(MSPEC_EDEFAULT);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ setTargetPlatform(TARGET_PLATFORM_EDEFAULT);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ setBundlePool(BUNDLE_POOL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ return MSPEC_EDEFAULT == null ? mspec != null : !MSPEC_EDEFAULT.equals(mspec);
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ return TARGET_PLATFORM_EDEFAULT == null ? targetPlatform != null : !TARGET_PLATFORM_EDEFAULT
+ .equals(targetPlatform);
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ return BUNDLE_POOL_EDEFAULT == null ? bundlePool != null : !BUNDLE_POOL_EDEFAULT.equals(bundlePool);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mspec: ");
+ result.append(mspec);
+ result.append(", targetPlatform: ");
+ result.append(targetPlatform);
+ result.append(", bundlePool: ");
+ result.append(bundlePool);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context)
+ {
+ return context.getTrigger() == Trigger.MANUAL
+ || !TargetPlatformUtil.hasTargetPlatform(context.getTargetPlatformDir().toString(), context);
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ IProgressMonitor monitor = new ProgressLogMonitor(context);
+ monitor.beginTask("Starting Buckminster import", 160);
+
+ try
+ {
+ File tpOld = null;
+ File tp = context.getTargetPlatformDir();
+ if (tp.exists())
+ {
+ tpOld = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis());
+ FileUtil.rename(tp, tpOld);
+ }
+
+ FileLock tpPoolLock = null;
+ boolean isAutoBuilding = disableAutoBuilding();
+
+ try
+ {
+ File tpPool = updateTargetPlatformPool(context);
+ tpPoolLock = FileLock.forWrite(tpPool);
+
+ File targetPlatformLocation = context.getTargetPlatformDir();
+ targetPlatformLocation.mkdirs();
+ TargetPlatformUtil.setTargetPlatform(targetPlatformLocation.toString(), context.getSetup().getBranch()
+ .getProject().getName()
+ + " Target", true, context);
+
+ URL mSpecURL = new URL(context.expandString(getMspec()));
+ MaterializationSpec mspec = getMSpec(mSpecURL, monitor); // 20 ticks
+ ComponentQuery cquery = getCQuery(mspec.getResolvedURL(), monitor); // 20 ticks
+
+ IResolver resolver = new MainResolver(new ResolutionContext(mspec, cquery));
+ resolver.getContext().setContinueOnError(true);
+
+ monitor.subTask("Resolving components");
+ BillOfMaterials bom = resolver.resolve(MonitorUtils.subMonitor(monitor, 40));
+
+ MaterializationSpecBuilder mspecBuilder = new MaterializationSpecBuilder();
+ mspecBuilder.initFrom(mspec);
+ mspecBuilder.setName(bom.getViewName());
+
+ bom.addMaterializationNodes(mspecBuilder);
+
+ ResolutionContext resolutionContext = new ResolutionContext(bom.getQuery());
+ MaterializationContext materializationContext = new MaterializationContext(bom, mspec, resolutionContext);
+
+ monitor.subTask("Materializing components");
+ MaterializationJob job = new MaterializationJob(materializationContext);
+ job.run(MonitorUtils.subMonitor(monitor, 80));
+
+ if (tpPoolLock != null)
+ {
+ updateBundlePool(context, tp.getAbsolutePath(), tpPool.getAbsolutePath());
+ }
+
+ if (context.isCancelled())
+ {
+ throw new InterruptedException();
+ }
+ }
+ catch (Exception ex)
+ {
+ File tpBroken = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis());
+ FileUtil.rename(tp, tpBroken);
+ if (tpOld != null)
+ {
+ FileUtil.rename(tpOld, tp);
+ }
+
+ FileUtil.deleteAsync(tpBroken);
+ throw ex;
+ }
+ finally
+ {
+ try
+ {
+ if (tpPoolLock != null)
+ {
+ tpPoolLock.release();
+ }
+ }
+ finally
+ {
+ restoreAutoBuilding(isAutoBuilding);
+ }
+ }
+
+ if (tpOld != null)
+ {
+ FileUtil.deleteAsync(tpOld);
+ }
+ }
+ finally
+ {
+ monitor.done();
+ }
+ }
+
+ public static boolean disableAutoBuilding() throws CoreException
+ {
+ boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding();
+ if (autoBuilding)
+ {
+ restoreAutoBuilding(false);
+ }
+
+ return autoBuilding;
+ }
+
+ public static void restoreAutoBuilding(boolean autoBuilding) throws CoreException
+ {
+ if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding())
+ {
+ IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription();
+ description.setAutoBuilding(autoBuilding);
+
+ ResourcesPlugin.getWorkspace().setDescription(description);
+ }
+ }
+
+ private static File updateTargetPlatformPool(SetupTaskContext context) throws Exception
+ {
+ File installFolder = new File(context.getSetup().getPreferences().getInstallFolder());
+
+ File idePool = new File(installFolder, ".p2pool-ide");
+ idePool.mkdirs();
+
+ File tpPool = new File(installFolder, ".p2pool-tp");
+ tpPool.mkdirs();
+
+ FileLock idePoolLock = FileLock.forWrite(idePool);
+
+ try
+ {
+ updateBundlePool(context, idePool.getAbsolutePath(), tpPool.getAbsolutePath());
+ }
+ finally
+ {
+ idePoolLock.release();
+ }
+
+ return tpPool;
+ }
+
+ private static void updateBundlePool(SetupTaskContext context, String source, String bundlePool) throws Exception
+ {
+ context.log("Updating bundle pool: " + bundlePool);
+
+ String bundlePoolURL = "file:/" + bundlePool.replace('\\', '/');
+ String[] args = { "-source", source, "-metadataRepository", bundlePoolURL, "-artifactRepository", bundlePoolURL,
+ "-append", "-publishArtifacts" };
+
+ AbstractPublisherApplication publisher = new FeaturesAndBundlesPublisherApplication();
+ publisher.run(args);
+ }
+
+ private MaterializationSpec getMSpec(URL mspecURL, IProgressMonitor monitor) throws Exception
+ {
+ monitor.subTask("Downloading MSpec");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DownloadManager.readInto(mspecURL, null, baos, MonitorUtils.subMonitor(monitor, 20));
+
+ monitor.subTask("Parsing MSpec");
+ IParser<MaterializationSpec> parser = CorePlugin.getDefault().getParserFactory().getMaterializationSpecParser(true);
+ return parser.parse(mspecURL.toString(), new ByteArrayInputStream(baos.toByteArray()));
+ }
+
+ private ComponentQuery getCQuery(URL cqueryURL, IProgressMonitor monitor) throws Exception
+ {
+ monitor.subTask("Downloading CQuery");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DownloadManager.readInto(cqueryURL, null, baos, MonitorUtils.subMonitor(monitor, 20));
+
+ monitor.subTask("Parsing CQuery");
+ return ComponentQuery.fromStream(cqueryURL, null, new ByteArrayInputStream(baos.toByteArray()), true);
+ }
+
+} // BuckminsterImportTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java
new file mode 100644
index 0000000000..20256976ce
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java
@@ -0,0 +1,306 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compound Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getSetupTasks <em>Setup Tasks</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CompoundSetupTaskImpl extends SetupTaskImpl implements CompoundSetupTask
+{
+ /**
+ * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSetupTasks()
+ * @generated
+ * @ordered
+ */
+ protected EList<SetupTask> setupTasks;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompoundSetupTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.COMPOUND_SETUP_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SetupTask> getSetupTasks()
+ {
+ if (setupTasks == null)
+ {
+ setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this,
+ SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS);
+ }
+ return setupTasks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.COMPOUND_SETUP_TASK__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return getSetupTasks();
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ getSetupTasks().clear();
+ getSetupTasks().addAll((Collection<? extends SetupTask>)newValue);
+ return;
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ getSetupTasks().clear();
+ return;
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return setupTasks != null && !setupTasks.isEmpty();
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == SetupTaskContainer.class)
+ {
+ switch (derivedFeatureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS;
+ default:
+ return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == SetupTaskContainer.class)
+ {
+ switch (baseFeatureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Object getOverrideToken()
+ {
+ return createToken(getName());
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ boolean needed = false;
+ for (SetupTask setupTask : getSetupTasks())
+ {
+ needed |= setupTask.isNeeded(context);
+ }
+
+ return needed;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ for (SetupTask setupTask : getSetupTasks())
+ {
+ setupTask.perform(context);
+ }
+ }
+
+} // CompoundSetupTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java
new file mode 100644
index 0000000000..00e17e3e6b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configurable Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ConfigurableItemImpl extends SetupTaskContainerImpl implements ConfigurableItem
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurableItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.CONFIGURABLE_ITEM;
+ }
+
+} // ConfigurableItemImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java
index bc5b37f887..41d4512821 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java
@@ -91,7 +91,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C
{
if (projects == null)
{
- projects = new EObjectContainmentWithInverseEList<Project>(Project.class, this,
+ projects = new EObjectContainmentWithInverseEList.Resolving<Project>(Project.class, this,
SetupPackage.CONFIGURATION__PROJECTS, SetupPackage.PROJECT__CONFIGURATION);
}
return projects;
@@ -106,7 +106,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C
{
if (eclipseVersions == null)
{
- eclipseVersions = new EObjectContainmentWithInverseEList<EclipseVersion>(EclipseVersion.class, this,
+ eclipseVersions = new EObjectContainmentWithInverseEList.Resolving<EclipseVersion>(EclipseVersion.class, this,
SetupPackage.CONFIGURATION__ECLIPSE_VERSIONS, SetupPackage.ECLIPSE_VERSION__CONFIGURATION);
}
return eclipseVersions;
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java
deleted file mode 100644
index 0c2fed673a..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
-import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
-import org.eclipse.emf.cdo.releng.setup.P2Repository;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import java.util.Collection;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Director Call</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getInstallableUnits <em>Installable Units</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getP2Repositories <em>P2 Repositories</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class DirectorCallImpl extends MinimalEObjectImpl.Container implements DirectorCall
-{
- /**
- * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getInstallableUnits()
- * @generated
- * @ordered
- */
- protected EList<InstallableUnit> installableUnits;
-
- /**
- * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getP2Repositories()
- * @generated
- * @ordered
- */
- protected EList<P2Repository> p2Repositories;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected DirectorCallImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.DIRECTOR_CALL;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<InstallableUnit> getInstallableUnits()
- {
- if (installableUnits == null)
- {
- installableUnits = new EObjectContainmentWithInverseEList<InstallableUnit>(InstallableUnit.class, this,
- SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL);
- }
- return installableUnits;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<P2Repository> getP2Repositories()
- {
- if (p2Repositories == null)
- {
- p2Repositories = new EObjectContainmentWithInverseEList<P2Repository>(P2Repository.class, this,
- SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL);
- }
- return p2Repositories;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs);
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs);
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return getInstallableUnits();
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return getP2Repositories();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- getInstallableUnits().clear();
- getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue);
- return;
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- getP2Repositories().clear();
- getP2Repositories().addAll((Collection<? extends P2Repository>)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- getInstallableUnits().clear();
- return;
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- getP2Repositories().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return installableUnits != null && !installableUnits.isEmpty();
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return p2Repositories != null && !p2Repositories.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
-} // DirectorCallImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java
new file mode 100644
index 0000000000..4d36f17566
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java
@@ -0,0 +1,374 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Eclipse Ini Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getOption <em>Option</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#isVm <em>Vm</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EclipseIniTaskImpl extends SetupTaskImpl implements EclipseIniTask
+{
+ /**
+ * The default value of the '{@link #getOption() <em>Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOption()
+ * @generated
+ * @ordered
+ */
+ protected static final String OPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOption() <em>Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOption()
+ * @generated
+ * @ordered
+ */
+ protected String option = OPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isVm() <em>Vm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVm()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VM_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isVm() <em>Vm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVm()
+ * @generated
+ * @ordered
+ */
+ protected boolean vm = VM_EDEFAULT;
+
+ private transient File file;
+
+ private transient List<String> contents;
+
+ private transient String expandedValue;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EclipseIniTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.ECLIPSE_INI_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOption()
+ {
+ return option;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOption(String newOption)
+ {
+ String oldOption = option;
+ option = newOption;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__OPTION, oldOption, option));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isVm()
+ {
+ return vm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVm(boolean newVm)
+ {
+ boolean oldVm = vm;
+ vm = newVm;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VM, oldVm, vm));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ return getOption();
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ return getValue();
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ return isVm();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ setOption((String)newValue);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ setValue((String)newValue);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ setVm((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ setOption(OPTION_EDEFAULT);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ setVm(VM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ return OPTION_EDEFAULT == null ? option != null : !OPTION_EDEFAULT.equals(option);
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ return vm != VM_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (option: ");
+ result.append(option);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", vm: ");
+ result.append(vm);
+ result.append(')');
+ return result.toString();
+ }
+
+ public String getLabel(String value)
+ {
+ return getOption() + (value == null ? "" : (isVm() ? "" : " ") + value);
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ file = new File(context.getEclipseDir(), context.getOS().getEclipseIni());
+ boolean result = !file.exists() || createNewContent(context);
+ // Ensure that the perform recomputes the contents because they could be modified by other tasks between now and
+ // when doPeform is called.
+ contents = null;
+ return result;
+ }
+
+ private boolean createNewContent(SetupTaskContext context)
+ {
+ List<String> oldContents = context.getOS().readText(file);
+ contents = new ArrayList<String>(oldContents);
+ int vmargsIndex = contents.indexOf("-vmargs");
+
+ String option = getOption();
+ expandedValue = context.expandString(getValue());
+
+ if (isVm())
+ {
+ String line = option + expandedValue;
+ if (vmargsIndex != -1)
+ {
+ for (int i = vmargsIndex + 1; i < contents.size(); i++)
+ {
+ String oldLine = contents.get(i);
+ if (oldLine.startsWith(option))
+ {
+ contents.set(i, line);
+ line = null;
+ break;
+ }
+ }
+ }
+ else
+ {
+ contents.add("-vmargs");
+ }
+
+ if (line != null)
+ {
+ contents.add(line);
+ }
+ }
+ else
+ {
+ int optionIndex = contents.indexOf(option);
+ if (optionIndex != -1)
+ {
+ contents.set(optionIndex + 1, expandedValue);
+ }
+ else
+ {
+ optionIndex = vmargsIndex != -1 ? vmargsIndex : contents.size();
+ contents.add(optionIndex, option);
+ contents.add(optionIndex + 1, expandedValue);
+ }
+ }
+
+ return !contents.equals(oldContents);
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ if (contents != null || createNewContent(context))
+ {
+ context.log("Changing " + file + " (" + getLabel(expandedValue) + ")");
+ context.getOS().writeText(file, contents);
+ }
+ }
+} // EclipseIniTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java
index 1ba24f3678..3beed3cb54 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java
@@ -1,38 +1,36 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.impl;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.PlatformUI;
+
+import java.util.Set;
/**
* <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Tool Preference</b></em>'.
+ * An implementation of the model object '<em><b>Eclipse Preference Task</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getKey <em>Key</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getValue <em>Value</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements ToolPreference
+public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipsePreferenceTask
{
/**
* The default value of the '{@link #getKey() <em>Key</em>}' attribute.
@@ -74,12 +72,18 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
*/
protected String value = VALUE_EDEFAULT;
+ private transient Object cachedNode;
+
+ private transient String property;
+
+ private transient String expandedValue;
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected ToolPreferenceImpl()
+ protected EclipsePreferenceTaskImpl()
{
super();
}
@@ -92,7 +96,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
@Override
protected EClass eStaticClass()
{
- return SetupPackage.Literals.TOOL_PREFERENCE;
+ return SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK;
}
/**
@@ -115,9 +119,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
String oldKey = key;
key = newKey;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__KEY, oldKey, key));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY, oldKey, key));
}
/**
@@ -140,9 +142,8 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
String oldValue = value;
value = newValue;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__VALUE, oldValue, value));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE, oldValue,
+ value));
}
/**
@@ -155,9 +156,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
return getKey();
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
return getValue();
}
return super.eGet(featureID, resolve, coreType);
@@ -173,10 +174,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
setKey((String)newValue);
return;
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
setValue((String)newValue);
return;
}
@@ -193,10 +194,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
setKey(KEY_EDEFAULT);
return;
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
setValue(VALUE_EDEFAULT);
return;
}
@@ -213,9 +214,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
}
return super.eIsSet(featureID);
@@ -230,9 +231,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
public String toString()
{
if (eIsProxy())
- {
return super.toString();
- }
StringBuffer result = new StringBuffer(super.toString());
result.append(" (key: ");
@@ -243,4 +242,68 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
return result.toString();
}
-} // ToolPreferenceImpl
+ @Override
+ public Object getOverrideToken()
+ {
+ return createToken(getKey());
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ org.osgi.service.prefs.Preferences node = Platform.getPreferencesService().getRootNode();
+
+ String[] segments = key.split("/");
+ for (int i = 0; i < segments.length - 1; i++)
+ {
+ String segment = segments[i];
+ node = node.node(segment);
+ }
+
+ property = segments[segments.length - 1];
+ expandedValue = context.expandString(getValue());
+
+ String oldValue = node.get(property, null);
+ if (expandedValue.equals(oldValue))
+ {
+ return false;
+ }
+
+ cachedNode = node;
+ return true;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ context.log("Setting preference " + getKey() + " = " + expandedValue);
+
+ final Exception[] exception = { null };
+ PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell().getDisplay().syncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ org.osgi.service.prefs.Preferences node = (org.osgi.service.prefs.Preferences)cachedNode;
+ node.put(property, expandedValue);
+ node.flush();
+ }
+ catch (Exception ex)
+ {
+ exception[0] = ex;
+ }
+ }
+ });
+
+ if (exception[0] != null)
+ {
+ throw exception[0];
+ }
+ }
+
+} // EclipsePreferenceTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java
index 41195b31e5..955f010086 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java
@@ -11,7 +11,6 @@
package org.eclipse.emf.cdo.releng.setup.impl;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
@@ -20,7 +19,6 @@ import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.emf.ecore.util.EcoreUtil;
/**
@@ -32,13 +30,12 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getDirectorCall <em>Director Call</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements EclipseVersion
+public class EclipseVersionImpl extends ConfigurableItemImpl implements EclipseVersion
{
/**
* The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
@@ -61,16 +58,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
protected String version = VERSION_EDEFAULT;
/**
- * The cached value of the '{@link #getDirectorCall() <em>Director Call</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getDirectorCall()
- * @generated
- * @ordered
- */
- protected DirectorCall directorCall;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -100,6 +87,18 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
{
if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION)
return null;
+ return (Configuration)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Configuration basicGetConfiguration()
+ {
+ if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION)
+ return null;
return (Configuration)eInternalContainer();
}
@@ -169,62 +168,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall getDirectorCall()
- {
- return directorCall;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs)
- {
- DirectorCall oldDirectorCall = directorCall;
- directorCall = newDirectorCall;
- if (eNotificationRequired())
- {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
- SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, oldDirectorCall, newDirectorCall);
- if (msgs == null)
- msgs = notification;
- else
- msgs.add(notification);
- }
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setDirectorCall(DirectorCall newDirectorCall)
- {
- if (newDirectorCall != directorCall)
- {
- NotificationChain msgs = null;
- if (directorCall != null)
- msgs = ((InternalEObject)directorCall).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs);
- if (newDirectorCall != null)
- msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs);
- msgs = basicSetDirectorCall(newDirectorCall, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL,
- newDirectorCall, newDirectorCall));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
@@ -250,8 +193,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
{
case SetupPackage.ECLIPSE_VERSION__CONFIGURATION:
return basicSetConfiguration(null, msgs);
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- return basicSetDirectorCall(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -284,11 +225,11 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
switch (featureID)
{
case SetupPackage.ECLIPSE_VERSION__CONFIGURATION:
- return getConfiguration();
+ if (resolve)
+ return getConfiguration();
+ return basicGetConfiguration();
case SetupPackage.ECLIPSE_VERSION__VERSION:
return getVersion();
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- return getDirectorCall();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -309,9 +250,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
case SetupPackage.ECLIPSE_VERSION__VERSION:
setVersion((String)newValue);
return;
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -332,9 +270,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
case SetupPackage.ECLIPSE_VERSION__VERSION:
setVersion(VERSION_EDEFAULT);
return;
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)null);
- return;
}
super.eUnset(featureID);
}
@@ -350,11 +285,9 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
switch (featureID)
{
case SetupPackage.ECLIPSE_VERSION__CONFIGURATION:
- return getConfiguration() != null;
+ return basicGetConfiguration() != null;
case SetupPackage.ECLIPSE_VERSION__VERSION:
return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- return directorCall != null;
}
return super.eIsSet(featureID);
}
@@ -376,5 +309,4 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
result.append(')');
return result.toString();
}
-
} // EclipseVersionImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java
deleted file mode 100644
index dae9b0c1db..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Git Clone</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getBranch <em>Branch</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getRemoteURI <em>Remote URI</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getCheckoutBranch <em>Checkout Branch</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class GitCloneImpl extends MinimalEObjectImpl.Container implements GitClone
-{
- /**
- * The default value of the '{@link #getName() <em>Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getName()
- * @generated
- * @ordered
- */
- protected static final String NAME_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getName()
- * @generated
- * @ordered
- */
- protected String name = NAME_EDEFAULT;
-
- /**
- * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getRemoteURI()
- * @generated
- * @ordered
- */
- protected static final String REMOTE_URI_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getRemoteURI()
- * @generated
- * @ordered
- */
- protected String remoteURI = REMOTE_URI_EDEFAULT;
-
- /**
- * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCheckoutBranch()
- * @generated
- * @ordered
- */
- protected static final String CHECKOUT_BRANCH_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCheckoutBranch()
- * @generated
- * @ordered
- */
- protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected GitCloneImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.GIT_CLONE;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public Branch getBranch()
- {
- if (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH)
- return null;
- return (Branch)eInternalContainer();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetBranch(Branch newBranch, NotificationChain msgs)
- {
- msgs = eBasicSetContainer((InternalEObject)newBranch, SetupPackage.GIT_CLONE__BRANCH, msgs);
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setBranch(Branch newBranch)
- {
- if (newBranch != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH && newBranch != null))
- {
- if (EcoreUtil.isAncestor(this, newBranch))
- throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
- NotificationChain msgs = null;
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- if (newBranch != null)
- msgs = ((InternalEObject)newBranch).eInverseAdd(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs);
- msgs = basicSetBranch(newBranch, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__BRANCH, newBranch, newBranch));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getName()
- {
- return name;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setName(String newName)
- {
- String oldName = name;
- name = newName;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__NAME, oldName, name));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getRemoteURI()
- {
- return remoteURI;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setRemoteURI(String newRemoteURI)
- {
- String oldRemoteURI = remoteURI;
- remoteURI = newRemoteURI;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__REMOTE_URI, oldRemoteURI, remoteURI));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getCheckoutBranch()
- {
- return checkoutBranch;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setCheckoutBranch(String newCheckoutBranch)
- {
- String oldCheckoutBranch = checkoutBranch;
- checkoutBranch = newCheckoutBranch;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__CHECKOUT_BRANCH, oldCheckoutBranch,
- checkoutBranch));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetBranch((Branch)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return basicSetBranch(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
- {
- switch (eContainerFeatureID())
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return eInternalContainer().eInverseRemove(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs);
- }
- return super.eBasicRemoveFromContainerFeature(msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return getBranch();
- case SetupPackage.GIT_CLONE__NAME:
- return getName();
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- return getRemoteURI();
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- return getCheckoutBranch();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- setBranch((Branch)newValue);
- return;
- case SetupPackage.GIT_CLONE__NAME:
- setName((String)newValue);
- return;
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- setRemoteURI((String)newValue);
- return;
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- setCheckoutBranch((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- setBranch((Branch)null);
- return;
- case SetupPackage.GIT_CLONE__NAME:
- setName(NAME_EDEFAULT);
- return;
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- setRemoteURI(REMOTE_URI_EDEFAULT);
- return;
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return getBranch() != null;
- case SetupPackage.GIT_CLONE__NAME:
- return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI);
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT
- .equals(checkoutBranch);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString()
- {
- if (eIsProxy())
- return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (name: ");
- result.append(name);
- result.append(", remoteURI: ");
- result.append(remoteURI);
- result.append(", checkoutBranch: ");
- result.append(checkoutBranch);
- result.append(')');
- return result.toString();
- }
-
-} // GitCloneImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java
new file mode 100644
index 0000000000..1dfbf1aa87
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java
@@ -0,0 +1,615 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.FileUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.jgit.api.CheckoutCommand;
+import org.eclipse.jgit.api.CloneCommand;
+import org.eclipse.jgit.api.CreateBranchCommand;
+import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.ResetCommand;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
+import org.eclipse.jgit.api.StatusCommand;
+import org.eclipse.jgit.errors.NoWorkTreeException;
+import org.eclipse.jgit.lib.ConfigConstants;
+import org.eclipse.jgit.lib.CoreConfig.AutoCRLF;
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.transport.RefSpec;
+import org.eclipse.jgit.transport.RemoteConfig;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Git Clone Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteName <em>Remote Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteURI <em>Remote URI</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getCheckoutBranch <em>Checkout Branch</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GitCloneTaskImpl extends SetupTaskImpl implements GitCloneTask
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteName()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_NAME_EDEFAULT = "origin";
+
+ /**
+ * The cached value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteName()
+ * @generated
+ * @ordered
+ */
+ protected String remoteName = REMOTE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteURI()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteURI()
+ * @generated
+ * @ordered
+ */
+ protected String remoteURI = REMOTE_URI_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCheckoutBranch()
+ * @generated
+ * @ordered
+ */
+ protected static final String CHECKOUT_BRANCH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCheckoutBranch()
+ * @generated
+ * @ordered
+ */
+ protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT;
+
+ private transient Object cachedGit;
+
+ private transient Object cachedRepository;
+
+ private transient File workDir;
+
+ private transient boolean hasCheckout;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GitCloneTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.GIT_CLONE_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteName()
+ {
+ return remoteName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteName(String newRemoteName)
+ {
+ String oldRemoteName = remoteName;
+ remoteName = newRemoteName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_NAME, oldRemoteName,
+ remoteName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteURI()
+ {
+ return remoteURI;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteURI(String newRemoteURI)
+ {
+ String oldRemoteURI = remoteURI;
+ remoteURI = newRemoteURI;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_URI, oldRemoteURI,
+ remoteURI));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCheckoutBranch()
+ {
+ return checkoutBranch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCheckoutBranch(String newCheckoutBranch)
+ {
+ String oldCheckoutBranch = checkoutBranch;
+ checkoutBranch = newCheckoutBranch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH,
+ oldCheckoutBranch, checkoutBranch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ return getName();
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ return getRemoteName();
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ return getRemoteURI();
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ return getCheckoutBranch();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ setName((String)newValue);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ setRemoteName((String)newValue);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ setRemoteURI((String)newValue);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ setCheckoutBranch((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ setRemoteName(REMOTE_NAME_EDEFAULT);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ setRemoteURI(REMOTE_URI_EDEFAULT);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ return REMOTE_NAME_EDEFAULT == null ? remoteName != null : !REMOTE_NAME_EDEFAULT.equals(remoteName);
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI);
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT
+ .equals(checkoutBranch);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", remoteName: ");
+ result.append(remoteName);
+ result.append(", remoteURI: ");
+ result.append(remoteURI);
+ result.append(", checkoutBranch: ");
+ result.append(checkoutBranch);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ workDir = getWorkDir(context);
+ if (!workDir.isDirectory())
+ {
+ return true;
+ }
+
+ context.log("Opening Git clone " + workDir);
+
+ Git git = Git.open(workDir);
+ if (!hasWorkTree(git))
+ {
+ FileUtil.rename(workDir);
+ return true;
+ }
+
+ Repository repository = git.getRepository();
+ configureRepository(context, repository);
+
+ hasCheckout = repository.getAllRefs().containsKey("refs/heads/" + getCheckoutBranch());
+ if (!hasCheckout)
+ {
+ cachedGit = git;
+ cachedRepository = repository;
+ return true;
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ Git git = (Git)cachedGit;
+ Repository repository = (Repository)cachedRepository;
+
+ if (git == null)
+ {
+ git = cloneRepository(context, workDir, getCheckoutBranch());
+ repository = git.getRepository();
+ configureRepository(context, repository);
+ }
+
+ if (!hasCheckout)
+ {
+ createBranch(context, git, getCheckoutBranch());
+ checkout(context, git, getCheckoutBranch());
+ resetHard(context, git);
+ }
+ }
+
+ @Override
+ public void dispose()
+ {
+ if (cachedRepository != null)
+ {
+ ((Repository)cachedRepository).close();
+ }
+ }
+
+ private File getWorkDir(SetupTaskContext context)
+ {
+ File gitDir = new File(context.getBranchDir(), "git");
+ return new File(gitDir, getName());
+ }
+
+ private boolean hasWorkTree(Git git) throws Exception
+ {
+ try
+ {
+ StatusCommand statusCommand = git.status();
+ statusCommand.call();
+ return true;
+ }
+ catch (NoWorkTreeException ex)
+ {
+ return false;
+ }
+ }
+
+ private Git cloneRepository(SetupTaskContext context, File workDir, String checkoutBranch) throws Exception
+ {
+ URI baseURI = URI.createURI(getRemoteURI());
+ String remote = URI.createHierarchicalURI(baseURI.scheme(),
+ context.getSetup().getPreferences().getUserName() + "@" + baseURI.authority(), baseURI.device(),
+ baseURI.segments(), baseURI.query(), baseURI.fragment()).toString();
+
+ context.log("Cloning Git repo " + remote + " to " + workDir);
+
+ CloneCommand command = Git.cloneRepository();
+ command.setNoCheckout(true);
+ command.setURI(remote);
+ command.setRemote(getRemoteName());
+ command.setBranchesToClone(Collections.singleton(checkoutBranch));
+ command.setDirectory(workDir);
+ command.setTimeout(10);
+ command.setProgressMonitor(new ProgressLogWrapper(context));
+ return command.call();
+ }
+
+ private void configureRepository(SetupTaskContext context, Repository repository) throws Exception, IOException
+ {
+ StoredConfig config = repository.getConfig();
+
+ boolean changed = false;
+ changed |= configureLineEndingConversion(context, config);
+ changed |= addPushRefSpec(context, config);
+ if (changed)
+ {
+ config.save();
+ }
+ }
+
+ private boolean configureLineEndingConversion(SetupTaskContext context, StoredConfig config) throws Exception
+ {
+ if (context.getOS().isLineEndingConversionNeeded())
+ {
+ context.log("Setting " + ConfigConstants.CONFIG_KEY_AUTOCRLF + " = true");
+ config.setEnum(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, AutoCRLF.TRUE);
+ return true;
+ }
+
+ return false;
+ }
+
+ private boolean addPushRefSpec(SetupTaskContext context, StoredConfig config) throws Exception
+ {
+ String gerritQueue = "refs/for/" + getCheckoutBranch();
+ for (RemoteConfig remoteConfig : RemoteConfig.getAllRemoteConfigs(config))
+ {
+ if (getRemoteName().equals(remoteConfig.getName()))
+ {
+ List<RefSpec> pushRefSpecs = remoteConfig.getPushRefSpecs();
+ if (hasGerritPushRefSpec(pushRefSpecs, gerritQueue))
+ {
+ return false;
+ }
+
+ RefSpec refSpec = new RefSpec("HEAD:" + gerritQueue);
+ context.log("Adding push ref spec: " + refSpec);
+
+ remoteConfig.addPushRefSpec(refSpec);
+ remoteConfig.update(config);
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private boolean hasGerritPushRefSpec(List<RefSpec> pushRefSpecs, String gerritQueue)
+ {
+ for (RefSpec refSpec : pushRefSpecs)
+ {
+ if (refSpec.getDestination().equals(gerritQueue))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private void createBranch(SetupTaskContext context, Git git, String checkoutBranch) throws Exception
+ {
+ context.log("Creating local branch " + checkoutBranch);
+
+ CreateBranchCommand command = git.branchCreate();
+ command.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM);
+ command.setName(checkoutBranch);
+ command.setStartPoint("refs/remotes/origin/" + checkoutBranch);
+ command.call();
+ }
+
+ private void checkout(SetupTaskContext context, Git git, String checkoutBranch) throws Exception
+ {
+ context.log("Checking out local branch " + checkoutBranch);
+
+ CheckoutCommand command = git.checkout();
+ command.setName(checkoutBranch);
+ command.call();
+ }
+
+ private void resetHard(SetupTaskContext context, Git git) throws Exception
+ {
+ context.log("Resetting hard");
+
+ ResetCommand command = git.reset();
+ command.setMode(ResetType.HARD);
+ command.call();
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static final class ProgressLogWrapper implements ProgressMonitor
+ {
+ private SetupTaskContext context;
+
+ public ProgressLogWrapper(SetupTaskContext context)
+ {
+ this.context = context;
+ }
+
+ public void update(int completed)
+ {
+ }
+
+ public void start(int totalTasks)
+ {
+ }
+
+ public boolean isCancelled()
+ {
+ return context.isCancelled();
+ }
+
+ public void endTask()
+ {
+ }
+
+ public void beginTask(String title, int totalWork)
+ {
+ context.log(title);
+ }
+ }
+
+} // GitCloneTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java
index 23faaea6ce..0e95540e13 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java
@@ -10,8 +10,8 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.common.notify.Notification;
@@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getId <em>Id</em>}</li>
* </ul>
* </p>
@@ -84,11 +84,11 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall getDirectorCall()
+ public P2Task getP2Task()
{
- if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL)
+ if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK)
return null;
- return (DirectorCall)eInternalContainer();
+ return (P2Task)eContainer();
}
/**
@@ -96,9 +96,21 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs)
+ public P2Task basicGetP2Task()
{
- msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL, msgs);
+ if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK)
+ return null;
+ return (P2Task)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.INSTALLABLE_UNIT__P2_TASK, msgs);
return msgs;
}
@@ -107,26 +119,26 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public void setDirectorCall(DirectorCall newDirectorCall)
+ public void setP2Task(P2Task newP2Task)
{
- if (newDirectorCall != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL && newDirectorCall != null))
+ if (newP2Task != eInternalContainer()
+ || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK && newP2Task != null))
{
- if (EcoreUtil.isAncestor(this, newDirectorCall))
+ if (EcoreUtil.isAncestor(this, newP2Task))
throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
NotificationChain msgs = null;
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- if (newDirectorCall != null)
- msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS,
- DirectorCall.class, msgs);
- msgs = basicSetDirectorCall(newDirectorCall, msgs);
+ if (newP2Task != null)
+ msgs = ((InternalEObject)newP2Task).eInverseAdd(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class,
+ msgs);
+ msgs = basicSetP2Task(newP2Task, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL,
- newDirectorCall, newDirectorCall));
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__P2_TASK, newP2Task,
+ newP2Task));
}
/**
@@ -162,10 +174,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- return basicSetDirectorCall((DirectorCall)otherEnd, msgs);
+ return basicSetP2Task((P2Task)otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -180,8 +192,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return basicSetDirectorCall(null, msgs);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ return basicSetP2Task(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -196,9 +208,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (eContainerFeatureID())
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS,
- DirectorCall.class, msgs);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class, msgs);
}
return super.eBasicRemoveFromContainerFeature(msgs);
}
@@ -213,8 +224,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return getDirectorCall();
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ if (resolve)
+ return getP2Task();
+ return basicGetP2Task();
case SetupPackage.INSTALLABLE_UNIT__ID:
return getId();
}
@@ -231,8 +244,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)newValue);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ setP2Task((P2Task)newValue);
return;
case SetupPackage.INSTALLABLE_UNIT__ID:
setId((String)newValue);
@@ -251,8 +264,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)null);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ setP2Task((P2Task)null);
return;
case SetupPackage.INSTALLABLE_UNIT__ID:
setId(ID_EDEFAULT);
@@ -271,8 +284,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return getDirectorCall() != null;
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ return basicGetP2Task() != null;
case SetupPackage.INSTALLABLE_UNIT__ID:
return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java
index c8c4b97d2e..ac4727ba96 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java
@@ -1,38 +1,34 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
/**
* <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Link Location</b></em>'.
+ * An implementation of the model object '<em><b>Link Location Task</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getPath <em>Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getName <em>Name</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class LinkLocationImpl extends MinimalEObjectImpl.Container implements LinkLocation
+public class LinkLocationTaskImpl extends SetupTaskImpl implements LinkLocationTask
{
/**
* The default value of the '{@link #getPath() <em>Path</em>}' attribute.
@@ -74,12 +70,16 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
*/
protected String name = NAME_EDEFAULT;
+ private transient File link;
+
+ private transient File canonicalPath;
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected LinkLocationImpl()
+ protected LinkLocationTaskImpl()
{
super();
}
@@ -92,7 +92,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
@Override
protected EClass eStaticClass()
{
- return SetupPackage.Literals.LINK_LOCATION;
+ return SetupPackage.Literals.LINK_LOCATION_TASK;
}
/**
@@ -115,9 +115,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
String oldPath = path;
path = newPath;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__PATH, oldPath, path));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__PATH, oldPath, path));
}
/**
@@ -140,9 +138,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
String oldName = name;
name = newName;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__NAME, oldName, name));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__NAME, oldName, name));
}
/**
@@ -155,9 +151,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
return getPath();
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
return getName();
}
return super.eGet(featureID, resolve, coreType);
@@ -173,10 +169,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
setPath((String)newValue);
return;
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
setName((String)newValue);
return;
}
@@ -193,10 +189,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
setPath(PATH_EDEFAULT);
return;
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
setName(NAME_EDEFAULT);
return;
}
@@ -213,9 +209,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path);
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
}
return super.eIsSet(featureID);
@@ -230,9 +226,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
public String toString()
{
if (eIsProxy())
- {
return super.toString();
- }
StringBuffer result = new StringBuffer(super.toString());
result.append(" (path: ");
@@ -243,4 +237,26 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
return result.toString();
}
-} // LinkLocationImpl
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ File links = new File(context.getEclipseDir(), "links");
+ canonicalPath = new File(context.expandString(getPath())).getCanonicalFile();
+
+ String name = getName();
+ if (name == null || name.length() == 0)
+ {
+ name = canonicalPath.getName();
+ }
+
+ link = new File(links, name + ".link");
+ return link.isFile();
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ List<String> lines = Collections.singletonList("path=" + canonicalPath.toString().replace("\\", "\\\\"));
+ context.getOS().writeText(link, lines);
+ context.setRestartNeeded();
+ }
+
+} // LinkLocationTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java
new file mode 100644
index 0000000000..1b6f14c9fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java
@@ -0,0 +1,215 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>One Time Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class OneTimeSetupTaskImpl extends SetupTaskImpl implements OneTimeSetupTask
+{
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OneTimeSetupTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.ONE_TIME_SETUP_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId)
+ {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ONE_TIME_SETUP_TASK__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ return getId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ setId((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ setId(ID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: ");
+ result.append(id);
+ result.append(')');
+ return result.toString();
+ }
+
+ public final boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ return !isPerformed();
+ }
+
+ public final void perform(SetupTaskContext context) throws Exception
+ {
+ doPerform(context);
+ setPerformed(true);
+ }
+
+ protected abstract void doPerform(SetupTaskContext context) throws Exception;
+
+ private int xxx;
+
+ private static final Set<String> PERFORMED = new HashSet<String>();
+
+ protected boolean isPerformed()
+ {
+ String id = getId();
+ return PERFORMED.contains(id);
+ }
+
+ protected void setPerformed(boolean performed)
+ {
+ String id = getId();
+ if (performed)
+ {
+ PERFORMED.add(id);
+ }
+ else
+ {
+ PERFORMED.remove(id);
+ }
+ }
+
+} // OneTimeSetupTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java
index ae64c0864f..ea56defc23 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java
@@ -10,8 +10,8 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.common.notify.Notification;
@@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getUrl <em>Url</em>}</li>
* </ul>
* </p>
@@ -84,11 +84,11 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall getDirectorCall()
+ public P2Task getP2Task()
{
- if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL)
+ if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK)
return null;
- return (DirectorCall)eInternalContainer();
+ return (P2Task)eContainer();
}
/**
@@ -96,9 +96,21 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
* <!-- end-user-doc -->
* @generated
*/
- public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs)
+ public P2Task basicGetP2Task()
{
- msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, msgs);
+ if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK)
+ return null;
+ return (P2Task)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.P2_REPOSITORY__P2_TASK, msgs);
return msgs;
}
@@ -107,26 +119,25 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
* <!-- end-user-doc -->
* @generated
*/
- public void setDirectorCall(DirectorCall newDirectorCall)
+ public void setP2Task(P2Task newP2Task)
{
- if (newDirectorCall != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL && newDirectorCall != null))
+ if (newP2Task != eInternalContainer()
+ || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK && newP2Task != null))
{
- if (EcoreUtil.isAncestor(this, newDirectorCall))
+ if (EcoreUtil.isAncestor(this, newP2Task))
throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
NotificationChain msgs = null;
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- if (newDirectorCall != null)
- msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES,
- DirectorCall.class, msgs);
- msgs = basicSetDirectorCall(newDirectorCall, msgs);
+ if (newP2Task != null)
+ msgs = ((InternalEObject)newP2Task)
+ .eInverseAdd(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs);
+ msgs = basicSetP2Task(newP2Task, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, newDirectorCall,
- newDirectorCall));
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__P2_TASK, newP2Task, newP2Task));
}
/**
@@ -162,10 +173,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- return basicSetDirectorCall((DirectorCall)otherEnd, msgs);
+ return basicSetP2Task((P2Task)otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -180,8 +191,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return basicSetDirectorCall(null, msgs);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ return basicSetP2Task(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -196,9 +207,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (eContainerFeatureID())
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, DirectorCall.class,
- msgs);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs);
}
return super.eBasicRemoveFromContainerFeature(msgs);
}
@@ -213,8 +223,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return getDirectorCall();
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ if (resolve)
+ return getP2Task();
+ return basicGetP2Task();
case SetupPackage.P2_REPOSITORY__URL:
return getUrl();
}
@@ -231,8 +243,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)newValue);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ setP2Task((P2Task)newValue);
return;
case SetupPackage.P2_REPOSITORY__URL:
setUrl((String)newValue);
@@ -251,8 +263,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)null);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ setP2Task((P2Task)null);
return;
case SetupPackage.P2_REPOSITORY__URL:
setUrl(URL_EDEFAULT);
@@ -271,8 +283,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return getDirectorCall() != null;
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ return basicGetP2Task() != null;
case SetupPackage.P2_REPOSITORY__URL:
return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java
new file mode 100644
index 0000000000..b948f95368
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java
@@ -0,0 +1,516 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.util.FileUtil;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.equinox.internal.p2.director.app.DirectorApplication;
+import org.eclipse.equinox.internal.p2.director.app.ILog;
+import org.eclipse.equinox.internal.p2.ui.ProvUI;
+import org.eclipse.equinox.p2.engine.IProfile;
+import org.eclipse.equinox.p2.engine.ProvisioningContext;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.metadata.MetadataFactory;
+import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
+import org.eclipse.equinox.p2.operations.InstallOperation;
+import org.eclipse.equinox.p2.operations.ProvisioningJob;
+import org.eclipse.equinox.p2.operations.ProvisioningSession;
+import org.eclipse.equinox.p2.operations.RepositoryTracker;
+import org.eclipse.equinox.p2.query.IQuery;
+import org.eclipse.equinox.p2.query.IQueryResult;
+import org.eclipse.equinox.p2.query.QueryUtil;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+
+import java.io.File;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Install Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getP2Repositories <em>P2 Repositories</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getInstallableUnits <em>Installable Units</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class P2TaskImpl extends SetupTaskImpl implements P2Task
+{
+ /**
+ * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP2Repositories()
+ * @generated
+ * @ordered
+ */
+ protected EList<P2Repository> p2Repositories;
+
+ /**
+ * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstallableUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<InstallableUnit> installableUnits;
+
+ private transient Set<String> neededInstallableUnits;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected P2TaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.P2_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InstallableUnit> getInstallableUnits()
+ {
+ if (installableUnits == null)
+ {
+ installableUnits = new EObjectContainmentWithInverseEList.Resolving<InstallableUnit>(InstallableUnit.class, this,
+ SetupPackage.P2_TASK__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__P2_TASK);
+ }
+ return installableUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<P2Repository> getP2Repositories()
+ {
+ if (p2Repositories == null)
+ {
+ p2Repositories = new EObjectContainmentWithInverseEList.Resolving<P2Repository>(P2Repository.class, this,
+ SetupPackage.P2_TASK__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__P2_TASK);
+ }
+ return p2Repositories;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs);
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs);
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return getP2Repositories();
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return getInstallableUnits();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ getP2Repositories().clear();
+ getP2Repositories().addAll((Collection<? extends P2Repository>)newValue);
+ return;
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ getInstallableUnits().clear();
+ getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ getP2Repositories().clear();
+ return;
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ getInstallableUnits().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return p2Repositories != null && !p2Repositories.isEmpty();
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return installableUnits != null && !installableUnits.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ private static Set<String> getInstalledUnits()
+ {
+ Set<String> result = new HashSet<String>();
+ ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
+ ProvisioningSession session = provisioningUI.getSession();
+ String profileId = provisioningUI.getProfileId();
+ IProfile profile = ProvUI.getProfileRegistry(session).getProfile(profileId);
+ IQueryResult<IInstallableUnit> queryResult = profile.query(QueryUtil.createIUAnyQuery(), null);
+
+ for (IInstallableUnit installableUnit : queryResult)
+ {
+ result.add(installableUnit.getId());
+ }
+
+ return result;
+ }
+
+ private static Set<String> getKnownRepositories()
+ {
+ Set<String> result = new HashSet<String>();
+ ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
+ ProvisioningSession session = provisioningUI.getSession();
+ for (URI knowRepository : provisioningUI.getRepositoryTracker().getKnownRepositories(session))
+ {
+ result.add(knowRepository.toString());
+ }
+ return result;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ if (!Activator.SETUP_IDE)
+ {
+ return true;
+ }
+
+ Set<String> installedUnits = getInstalledUnits();
+ for (InstallableUnit installableUnit : getInstallableUnits())
+ {
+ String id = context.expandString(installableUnit.getId());
+ if (!installedUnits.contains(id))
+ {
+ if (neededInstallableUnits == null)
+ {
+ neededInstallableUnits = new HashSet<String>();
+ }
+ neededInstallableUnits.add(id);
+ }
+ }
+
+ Set<String> knownRepositories = getKnownRepositories();
+ for (P2Repository p2Repository : getP2Repositories())
+ {
+ String url = context.expandString(p2Repository.getUrl());
+ if (!knownRepositories.contains(url))
+ {
+ return true;
+ }
+ }
+
+ return neededInstallableUnits != null;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ if (Activator.SETUP_IDE)
+ {
+ ProgressLogMonitor monitor = new ProgressLogMonitor(context);
+
+ ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
+ ProvisioningSession session = provisioningUI.getSession();
+ IMetadataRepositoryManager manager = (IMetadataRepositoryManager)session.getProvisioningAgent().getService(
+ IMetadataRepositoryManager.SERVICE_NAME);
+ RepositoryTracker repositoryTracker = provisioningUI.getRepositoryTracker();
+
+ Set<String> knownRepositories = getKnownRepositories();
+ Set<IMetadataRepository> repositories = new HashSet<IMetadataRepository>();
+ List<URI> repos = new ArrayList<URI>();
+ for (P2Repository p2Repository : getP2Repositories())
+ {
+ String url = context.expandString(p2Repository.getUrl());
+ URI uri = new URI(url);
+ if (neededInstallableUnits == null)
+ {
+ if (!knownRepositories.contains(url))
+ {
+ IMetadataRepository repository = manager.loadRepository(uri, monitor);
+ repositoryTracker.addRepository(uri, repository.getName(), session);
+ }
+ }
+ else
+ {
+ repos.add(uri);
+
+ IMetadataRepository repository = manager.loadRepository(uri, monitor);
+ repositories.add(repository);
+
+ if (!knownRepositories.contains(url))
+ {
+ repositoryTracker.addRepository(uri, repository.getName(), session);
+ }
+ }
+ }
+
+ if (neededInstallableUnits != null)
+ {
+ List<IInstallableUnit> toInstall = new ArrayList<IInstallableUnit>();
+ for (String installableUnit : neededInstallableUnits)
+ {
+ IQuery<IInstallableUnit> iuQuery = QueryUtil.createIUQuery(installableUnit);
+ IInstallableUnit candidate = null;
+ for (IMetadataRepository repository : repositories)
+ {
+ IQueryResult<IInstallableUnit> queryResult = repository.query(iuQuery, monitor);
+ for (IInstallableUnit installableUnitMatch : queryResult)
+ {
+ if (candidate == null || candidate.getVersion().compareTo(installableUnitMatch.getVersion()) < 0)
+ {
+ candidate = installableUnitMatch;
+ }
+ break;
+ }
+ }
+ if (candidate != null)
+ {
+ toInstall.add(candidate);
+ }
+ else
+ {
+ // This will fail.
+ // TODO
+ InstallableUnitDescription installableUnitDescription = new InstallableUnitDescription();
+ installableUnitDescription.setId(installableUnit);
+ toInstall.add(MetadataFactory.createInstallableUnit(installableUnitDescription));
+ }
+ }
+
+ InstallOperation installOperation = new InstallOperation(session, toInstall);
+ String profileId = provisioningUI.getProfileId();
+ installOperation.setProfileId(profileId);
+
+ ProvisioningContext provisioningContext = makeProvisioningContext(session, repos);
+ installOperation.setProvisioningContext(provisioningContext);
+
+ IStatus status = installOperation.resolveModal(monitor);
+ if (status.isOK())
+ {
+ ProvisioningJob provisioningJob = installOperation.getProvisioningJob(null);
+ provisioningJob.run(monitor);
+ }
+ else
+ {
+ context.log(status.toString());
+ }
+ }
+ }
+ else
+ {
+ callDirectorApp(context);
+ }
+ context.setRestartNeeded();
+ }
+
+ private ProvisioningContext makeProvisioningContext(ProvisioningSession session, Collection<URI> repositories)
+ {
+ URI[] repos = repositories.toArray(new URI[repositories.size()]);
+ ProvisioningContext context = new ProvisioningContext(session.getProvisioningAgent());
+ context.setMetadataRepositories(repos);
+ context.setArtifactRepositories(repos);
+ return context;
+ }
+
+ // public void computeRemediationOperation(ProfileChangeOperation op, ProvisioningUI ui, IProgressMonitor monitor) {
+ // SubMonitor sub = SubMonitor.convert(monitor, ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation,
+ // RemedyConfig.getAllRemedyConfigs().length);
+ // monitor.setTaskName(ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation);
+ // remediationOperation = new RemediationOperation(ui.getSession(), op.getProfileChangeRequest());
+ // remediationOperation.resolveModal(monitor);
+ // sub.done();
+ // }
+
+ private void callDirectorApp(final SetupTaskContext context) throws Exception
+ {
+ if (getScope() == SetupTaskScope.CONFIGURATION)
+
+ {
+ FileUtil.delete(context.getP2ProfileDir(), new ProgressLogMonitor(context));
+ }
+
+ String destination = context.getEclipseDir().toString();
+ String bundlePool = context.getP2PoolDir().toString();
+ String bundleAgent = context.getP2AgentDir().toString();
+
+ String os = Platform.getOS();
+ String ws = Platform.getWS();
+ String arch = Platform.getOSArch();
+
+ EList<P2Repository> p2Repositories = getP2Repositories();
+ EList<InstallableUnit> installableUnits = getInstallableUnits();
+
+ context.log("Calling director to install " + installableUnits.size()
+ + (installableUnits.size() == 1 ? " unit" : " units") + " from " + p2Repositories.size()
+ + (p2Repositories.size() == 1 ? " repository" : " repositories") + " to " + destination);
+
+ new File(destination).mkdirs();
+
+ String repositories = makeList(context, p2Repositories, SetupPackage.Literals.P2_REPOSITORY__URL);
+ String ius = makeList(context, installableUnits, SetupPackage.Literals.INSTALLABLE_UNIT__ID);
+
+ String[] args = { "-destination", destination, "-repository", repositories, "-installIU", ius, "-profile",
+ context.getP2ProfileName(), "-profileProperties", "org.eclipse.update.install.features=true", "-bundlepool",
+ bundlePool, "-shared", bundleAgent, "-p2.os", os, "-p2.ws", ws, "-p2.arch", arch };
+
+ DirectorApplication app = new DirectorApplication();
+ app.setLog(new ILog()
+ {
+ public void log(String message)
+ {
+ if (context.isCancelled())
+ {
+ throw new OperationCanceledException();
+ }
+
+ context.log(message);
+ }
+
+ public void log(IStatus status)
+ {
+ log(status.getMessage());
+ }
+
+ public void close()
+ {
+ }
+ });
+
+ app.run(args);
+ }
+
+ private String makeList(SetupTaskContext context, EList<? extends EObject> objects, EAttribute attribute)
+ {
+ StringBuilder builder = new StringBuilder();
+ for (EObject object : objects)
+ {
+ if (builder.length() > 0)
+ {
+ builder.append(',');
+ }
+
+ String value = (String)object.eGet(attribute);
+ value = context.expandString(value);
+ builder.append(value);
+ }
+
+ return builder.toString();
+ }
+
+} // InstallTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java
index f54be8534e..10866085b9 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java
@@ -10,18 +10,12 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import java.util.Collection;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
@@ -33,13 +27,12 @@ import org.eclipse.emf.ecore.util.InternalEList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getUserName <em>User Name</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getInstallFolder <em>Install Folder</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getGitPrefix <em>Git Prefix</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getLinkLocations <em>Link Locations</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class PreferencesImpl extends ToolInstallationImpl implements Preferences
+public class PreferencesImpl extends SetupTaskContainerImpl implements Preferences
{
/**
* The default value of the '{@link #getUserName() <em>User Name</em>}' attribute.
@@ -102,16 +95,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
protected String gitPrefix = GIT_PREFIX_EDEFAULT;
/**
- * The cached value of the '{@link #getLinkLocations() <em>Link Locations</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getLinkLocations()
- * @generated
- * @ordered
- */
- protected EList<LinkLocation> linkLocations;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -208,37 +191,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
* <!-- end-user-doc -->
* @generated
*/
- public EList<LinkLocation> getLinkLocations()
- {
- if (linkLocations == null)
- {
- linkLocations = new EObjectContainmentEList<LinkLocation>(LinkLocation.class, this,
- SetupPackage.PREFERENCES__LINK_LOCATIONS);
- }
- return linkLocations;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- return ((InternalEList<?>)getLinkLocations()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType)
{
@@ -250,8 +202,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
return getInstallFolder();
case SetupPackage.PREFERENCES__GIT_PREFIX:
return getGitPrefix();
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- return getLinkLocations();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -261,7 +211,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
* <!-- end-user-doc -->
* @generated
*/
- @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
@@ -276,10 +225,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
case SetupPackage.PREFERENCES__GIT_PREFIX:
setGitPrefix((String)newValue);
return;
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- getLinkLocations().clear();
- getLinkLocations().addAll((Collection<? extends LinkLocation>)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -303,9 +248,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
case SetupPackage.PREFERENCES__GIT_PREFIX:
setGitPrefix(GIT_PREFIX_EDEFAULT);
return;
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- getLinkLocations().clear();
- return;
}
super.eUnset(featureID);
}
@@ -326,8 +268,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
return INSTALL_FOLDER_EDEFAULT == null ? installFolder != null : !INSTALL_FOLDER_EDEFAULT.equals(installFolder);
case SetupPackage.PREFERENCES__GIT_PREFIX:
return GIT_PREFIX_EDEFAULT == null ? gitPrefix != null : !GIT_PREFIX_EDEFAULT.equals(gitPrefix);
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- return linkLocations != null && !linkLocations.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java
index 3c0a1fe2af..51902935e0 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java
@@ -10,13 +10,11 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
import org.eclipse.emf.cdo.releng.setup.Branch;
import org.eclipse.emf.cdo.releng.setup.Configuration;
import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
@@ -39,14 +37,12 @@ import java.util.Collection;
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getBranches <em>Branches</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getApiBaselines <em>Api Baselines</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getWorkingSetGroup <em>Working Set Group</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class ProjectImpl extends ToolInstallationImpl implements Project
+public class ProjectImpl extends ConfigurableItemImpl implements Project
{
/**
* The cached value of the '{@link #getBranches() <em>Branches</em>}' containment reference list.
@@ -79,30 +75,10 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
protected String name = NAME_EDEFAULT;
/**
- * The cached value of the '{@link #getApiBaselines() <em>Api Baselines</em>}' containment reference list.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getApiBaselines()
- * @generated
- * @ordered
- */
- protected EList<ApiBaseline> apiBaselines;
-
- /**
- * The cached value of the '{@link #getWorkingSetGroup() <em>Working Set Group</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getWorkingSetGroup()
+ * <!-- end-user-doc -->
* @generated
- * @ordered
*/
- protected WorkingSetGroup workingSetGroup;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
protected ProjectImpl()
{
super();
@@ -128,6 +104,18 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
{
if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION)
return null;
+ return (Configuration)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Configuration basicGetConfiguration()
+ {
+ if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION)
+ return null;
return (Configuration)eInternalContainer();
}
@@ -178,8 +166,8 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
{
if (branches == null)
{
- branches = new EObjectContainmentWithInverseEList<Branch>(Branch.class, this, SetupPackage.PROJECT__BRANCHES,
- SetupPackage.BRANCH__PROJECT);
+ branches = new EObjectContainmentWithInverseEList.Resolving<Branch>(Branch.class, this,
+ SetupPackage.PROJECT__BRANCHES, SetupPackage.BRANCH__PROJECT);
}
return branches;
}
@@ -209,80 +197,9 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
/**
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<ApiBaseline> getApiBaselines()
- {
- if (apiBaselines == null)
- {
- apiBaselines = new EObjectContainmentWithInverseEList<ApiBaseline>(ApiBaseline.class, this,
- SetupPackage.PROJECT__API_BASELINES, SetupPackage.API_BASELINE__PROJECT);
- }
- return apiBaselines;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- public WorkingSetGroup getWorkingSetGroup()
- {
- return workingSetGroup;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetWorkingSetGroup(WorkingSetGroup newWorkingSetGroup, NotificationChain msgs)
- {
- WorkingSetGroup oldWorkingSetGroup = workingSetGroup;
- workingSetGroup = newWorkingSetGroup;
- if (eNotificationRequired())
- {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
- SetupPackage.PROJECT__WORKING_SET_GROUP, oldWorkingSetGroup, newWorkingSetGroup);
- if (msgs == null)
- msgs = notification;
- else
- msgs.add(notification);
- }
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setWorkingSetGroup(WorkingSetGroup newWorkingSetGroup)
- {
- if (newWorkingSetGroup != workingSetGroup)
- {
- NotificationChain msgs = null;
- if (workingSetGroup != null)
- msgs = ((InternalEObject)workingSetGroup).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs);
- if (newWorkingSetGroup != null)
- msgs = ((InternalEObject)newWorkingSetGroup).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs);
- msgs = basicSetWorkingSetGroup(newWorkingSetGroup, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.PROJECT__WORKING_SET_GROUP,
- newWorkingSetGroup, newWorkingSetGroup));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
@@ -295,8 +212,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
return basicSetConfiguration((Configuration)otherEnd, msgs);
case SetupPackage.PROJECT__BRANCHES:
return ((InternalEList<InternalEObject>)(InternalEList<?>)getBranches()).basicAdd(otherEnd, msgs);
- case SetupPackage.PROJECT__API_BASELINES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getApiBaselines()).basicAdd(otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -315,10 +230,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
return basicSetConfiguration(null, msgs);
case SetupPackage.PROJECT__BRANCHES:
return ((InternalEList<?>)getBranches()).basicRemove(otherEnd, msgs);
- case SetupPackage.PROJECT__API_BASELINES:
- return ((InternalEList<?>)getApiBaselines()).basicRemove(otherEnd, msgs);
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- return basicSetWorkingSetGroup(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -350,15 +261,13 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
switch (featureID)
{
case SetupPackage.PROJECT__CONFIGURATION:
- return getConfiguration();
+ if (resolve)
+ return getConfiguration();
+ return basicGetConfiguration();
case SetupPackage.PROJECT__BRANCHES:
return getBranches();
case SetupPackage.PROJECT__NAME:
return getName();
- case SetupPackage.PROJECT__API_BASELINES:
- return getApiBaselines();
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- return getWorkingSetGroup();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -384,13 +293,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
case SetupPackage.PROJECT__NAME:
setName((String)newValue);
return;
- case SetupPackage.PROJECT__API_BASELINES:
- getApiBaselines().clear();
- getApiBaselines().addAll((Collection<? extends ApiBaseline>)newValue);
- return;
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- setWorkingSetGroup((WorkingSetGroup)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -414,12 +316,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
case SetupPackage.PROJECT__NAME:
setName(NAME_EDEFAULT);
return;
- case SetupPackage.PROJECT__API_BASELINES:
- getApiBaselines().clear();
- return;
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- setWorkingSetGroup((WorkingSetGroup)null);
- return;
}
super.eUnset(featureID);
}
@@ -435,15 +331,11 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
switch (featureID)
{
case SetupPackage.PROJECT__CONFIGURATION:
- return getConfiguration() != null;
+ return basicGetConfiguration() != null;
case SetupPackage.PROJECT__BRANCHES:
return branches != null && !branches.isEmpty();
case SetupPackage.PROJECT__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case SetupPackage.PROJECT__API_BASELINES:
- return apiBaselines != null && !apiBaselines.isEmpty();
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- return workingSetGroup != null;
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java
new file mode 100644
index 0000000000..c033ee8969
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java
@@ -0,0 +1,298 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.net4j.util.io.IOUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.resource.URIConverter;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Resource Copy Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getSourceURL <em>Source URL</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getTargetURL <em>Target URL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ResourceCopyTaskImpl extends SetupTaskImpl implements ResourceCopyTask
+{
+ /**
+ * The default value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSourceURL()
+ * @generated
+ * @ordered
+ */
+ protected static final String SOURCE_URL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSourceURL()
+ * @generated
+ * @ordered
+ */
+ protected String sourceURL = SOURCE_URL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetURL()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_URL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetURL()
+ * @generated
+ * @ordered
+ */
+ protected String targetURL = TARGET_URL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ResourceCopyTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.RESOURCE_COPY_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSourceURL()
+ {
+ return sourceURL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSourceURL(String newSourceURL)
+ {
+ String oldSourceURL = sourceURL;
+ sourceURL = newSourceURL;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL, oldSourceURL,
+ sourceURL));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetURL()
+ {
+ return targetURL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetURL(String newTargetURL)
+ {
+ String oldTargetURL = targetURL;
+ targetURL = newTargetURL;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__TARGET_URL, oldTargetURL,
+ targetURL));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ return getSourceURL();
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ return getTargetURL();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ setSourceURL((String)newValue);
+ return;
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ setTargetURL((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ setSourceURL(SOURCE_URL_EDEFAULT);
+ return;
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ setTargetURL(TARGET_URL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ return SOURCE_URL_EDEFAULT == null ? sourceURL != null : !SOURCE_URL_EDEFAULT.equals(sourceURL);
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ return TARGET_URL_EDEFAULT == null ? targetURL != null : !TARGET_URL_EDEFAULT.equals(targetURL);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (sourceURL: ");
+ result.append(sourceURL);
+ result.append(", targetURL: ");
+ result.append(targetURL);
+ result.append(')');
+ return result.toString();
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ URI sourceURI = URI.createURI(context.expandString(getSourceURL()));
+ URI targetURI = URI.createURI(context.expandString(getTargetURL()));
+ if (targetURI.hasTrailingPathSeparator())
+ {
+ if (sourceURI.hasTrailingPathSeparator())
+ {
+ // TODO
+ }
+ else if (URIConverter.INSTANCE.exists(sourceURI, null))
+ {
+ return !URIConverter.INSTANCE.exists(targetURI.appendSegment(sourceURI.lastSegment()), null);
+ }
+ }
+ else
+ {
+ // TODO
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ URI sourceURI = URI.createURI(context.expandString(getSourceURL()));
+ URI targetURI = URI.createURI(context.expandString(getTargetURL()));
+ if (targetURI.hasTrailingPathSeparator())
+ {
+ if (sourceURI.hasTrailingPathSeparator())
+ {
+ // TODO
+ }
+ else if (URIConverter.INSTANCE.exists(sourceURI, null))
+ {
+ InputStream input = null;
+ OutputStream output = null;
+
+ try
+ {
+ input = URIConverter.INSTANCE.createInputStream(sourceURI);
+ output = URIConverter.INSTANCE.createOutputStream(targetURI.appendSegment(sourceURI.lastSegment()), null);
+ IOUtil.copy(input, output);
+ }
+ finally
+ {
+ IOUtil.closeSilent(input);
+ IOUtil.closeSilent(output);
+ }
+ }
+ }
+ else
+ {
+ // TODO
+ }
+ }
+
+} // ResourceCopyTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java
index efcd362915..c2baca746b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java
@@ -10,7 +10,31 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.*;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.Configuration;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
+import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
+import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
+import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
+import org.eclipse.emf.cdo.releng.setup.Setup;
+import org.eclipse.emf.cdo.releng.setup.SetupFactory;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
@@ -18,6 +42,8 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import java.util.HashSet;
+import java.util.Set;
/**
* <!-- begin-user-doc -->
@@ -71,32 +97,48 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
{
switch (eClass.getClassifierID())
{
- case SetupPackage.PREFERENCES:
- return createPreferences();
- case SetupPackage.LINK_LOCATION:
- return createLinkLocation();
- case SetupPackage.TOOL_PREFERENCE:
- return createToolPreference();
case SetupPackage.ECLIPSE_VERSION:
return createEclipseVersion();
- case SetupPackage.DIRECTOR_CALL:
- return createDirectorCall();
- case SetupPackage.INSTALLABLE_UNIT:
- return createInstallableUnit();
- case SetupPackage.P2_REPOSITORY:
- return createP2Repository();
case SetupPackage.CONFIGURATION:
return createConfiguration();
case SetupPackage.PROJECT:
return createProject();
case SetupPackage.BRANCH:
return createBranch();
- case SetupPackage.API_BASELINE:
- return createApiBaseline();
- case SetupPackage.GIT_CLONE:
- return createGitClone();
+ case SetupPackage.PREFERENCES:
+ return createPreferences();
case SetupPackage.SETUP:
return createSetup();
+ case SetupPackage.COMPOUND_SETUP_TASK:
+ return createCompoundSetupTask();
+ case SetupPackage.ECLIPSE_INI_TASK:
+ return createEclipseIniTask();
+ case SetupPackage.LINK_LOCATION_TASK:
+ return createLinkLocationTask();
+ case SetupPackage.P2_TASK:
+ return createP2Task();
+ case SetupPackage.INSTALLABLE_UNIT:
+ return createInstallableUnit();
+ case SetupPackage.P2_REPOSITORY:
+ return createP2Repository();
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK:
+ return createBuckminsterImportTask();
+ case SetupPackage.API_BASELINE_TASK:
+ return createApiBaselineTask();
+ case SetupPackage.GIT_CLONE_TASK:
+ return createGitCloneTask();
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK:
+ return createEclipsePreferenceTask();
+ case SetupPackage.STRING_VARIABLE_TASK:
+ return createStringVariableTask();
+ case SetupPackage.WORKING_SET_TASK:
+ return createWorkingSetTask();
+ case SetupPackage.RESOURCE_COPY_TASK:
+ return createResourceCopyTask();
+ case SetupPackage.TEXT_MODIFY_TASK:
+ return createTextModifyTask();
+ case SetupPackage.TEXT_MODIFICATION:
+ return createTextModification();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -112,8 +154,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
{
switch (eDataType.getClassifierID())
{
+ case SetupPackage.SETUP_TASK_SCOPE:
+ return createSetupTaskScopeFromString(eDataType, initialValue);
+ case SetupPackage.TRIGGER:
+ return createTriggerFromString(eDataType, initialValue);
case SetupPackage.URI:
return createURIFromString(eDataType, initialValue);
+ case SetupPackage.EXCEPTION:
+ return createExceptionFromString(eDataType, initialValue);
+ case SetupPackage.TRIGGER_SET:
+ return createTriggerSetFromString(eDataType, initialValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
@@ -129,8 +179,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
{
switch (eDataType.getClassifierID())
{
+ case SetupPackage.SETUP_TASK_SCOPE:
+ return convertSetupTaskScopeToString(eDataType, instanceValue);
+ case SetupPackage.TRIGGER:
+ return convertTriggerToString(eDataType, instanceValue);
case SetupPackage.URI:
return convertURIToString(eDataType, instanceValue);
+ case SetupPackage.EXCEPTION:
+ return convertExceptionToString(eDataType, instanceValue);
+ case SetupPackage.TRIGGER_SET:
+ return convertTriggerSetToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
@@ -174,6 +232,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
+ public ApiBaselineTask createApiBaselineTask()
+ {
+ ApiBaselineTaskImpl apiBaselineTask = new ApiBaselineTaskImpl();
+ return apiBaselineTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GitCloneTask createGitCloneTask()
+ {
+ GitCloneTaskImpl gitCloneTask = new GitCloneTaskImpl();
+ return gitCloneTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EclipseVersion createEclipseVersion()
{
EclipseVersionImpl eclipseVersion = new EclipseVersionImpl();
@@ -185,10 +265,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall createDirectorCall()
+ public P2Task createP2Task()
{
- DirectorCallImpl directorCall = new DirectorCallImpl();
- return directorCall;
+ P2TaskImpl p2Task = new P2TaskImpl();
+ return p2Task;
}
/**
@@ -218,10 +298,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public ApiBaseline createApiBaseline()
+ public Setup createSetup()
{
- ApiBaselineImpl apiBaseline = new ApiBaselineImpl();
- return apiBaseline;
+ SetupImpl setup = new SetupImpl();
+ return setup;
}
/**
@@ -229,10 +309,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public GitClone createGitClone()
+ public WorkingSetTask createWorkingSetTask()
{
- GitCloneImpl gitClone = new GitCloneImpl();
- return gitClone;
+ WorkingSetTaskImpl workingSetTask = new WorkingSetTaskImpl();
+ return workingSetTask;
}
/**
@@ -240,10 +320,43 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public Setup createSetup()
+ public ResourceCopyTask createResourceCopyTask()
{
- SetupImpl setup = new SetupImpl();
- return setup;
+ ResourceCopyTaskImpl resourceCopyTask = new ResourceCopyTaskImpl();
+ return resourceCopyTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextModifyTask createTextModifyTask()
+ {
+ TextModifyTaskImpl textModifyTask = new TextModifyTaskImpl();
+ return textModifyTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextModification createTextModification()
+ {
+ TextModificationImpl textModification = new TextModificationImpl();
+ return textModification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EclipseIniTask createEclipseIniTask()
+ {
+ EclipseIniTaskImpl eclipseIniTask = new EclipseIniTaskImpl();
+ return eclipseIniTask;
}
/**
@@ -251,10 +364,13 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public ToolPreference createToolPreference()
+ public SetupTaskScope createSetupTaskScopeFromString(EDataType eDataType, String initialValue)
{
- ToolPreferenceImpl toolPreference = new ToolPreferenceImpl();
- return toolPreference;
+ SetupTaskScope result = SetupTaskScope.get(initialValue);
+ if (result == null)
+ throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '"
+ + eDataType.getName() + "'");
+ return result;
}
/**
@@ -262,10 +378,66 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public LinkLocation createLinkLocation()
+ public String convertSetupTaskScopeToString(EDataType eDataType, Object instanceValue)
{
- LinkLocationImpl linkLocation = new LinkLocationImpl();
- return linkLocation;
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createTriggerFromString(EDataType eDataType, String initialValue)
+ {
+ Trigger result = Trigger.get(initialValue);
+ if (result == null)
+ throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '"
+ + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTriggerToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundSetupTask createCompoundSetupTask()
+ {
+ CompoundSetupTaskImpl compoundSetupTask = new CompoundSetupTaskImpl();
+ return compoundSetupTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BuckminsterImportTask createBuckminsterImportTask()
+ {
+ BuckminsterImportTaskImpl buckminsterImportTask = new BuckminsterImportTaskImpl();
+ return buckminsterImportTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringVariableTask createStringVariableTask()
+ {
+ StringVariableTaskImpl stringVariableTask = new StringVariableTaskImpl();
+ return stringVariableTask;
}
/**
@@ -284,6 +456,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
+ public LinkLocationTask createLinkLocationTask()
+ {
+ LinkLocationTaskImpl linkLocationTask = new LinkLocationTaskImpl();
+ return linkLocationTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EclipsePreferenceTask createEclipsePreferenceTask()
+ {
+ EclipsePreferenceTaskImpl eclipsePreferenceTask = new EclipsePreferenceTaskImpl();
+ return eclipsePreferenceTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public URI createURIFromString(EDataType eDataType, String initialValue)
{
return (URI)super.createFromString(eDataType, initialValue);
@@ -304,6 +498,64 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
+ public Exception createExceptionFromString(EDataType eDataType, String initialValue)
+ {
+ return (Exception)super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertExceptionToString(EDataType eDataType, Object instanceValue)
+ {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Set<Trigger> createTriggerSetFromString(EDataType eDataType, String initialValue)
+ {
+ if (initialValue == null)
+ {
+ return null;
+ }
+
+ Set<Trigger> result = new HashSet<Trigger>();
+ for (String value : split(initialValue))
+ {
+ result.add(Trigger.get(value));
+ }
+
+ return Trigger.intern(result);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertTriggerSetToString(EDataType eDataType, Object instanceValue)
+ {
+ if (instanceValue == null)
+ {
+ return null;
+ }
+
+ @SuppressWarnings("unchecked")
+ Set<Trigger> triggerSet = (Set<Trigger>)instanceValue;
+ return Trigger.LITERALS.get(triggerSet);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public SetupPackage getSetupPackage()
{
return (SetupPackage)getEPackage();
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java
index c61306de5d..b4bb261357 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java
@@ -10,23 +10,24 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import java.util.Collection;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.P2Repository;
import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
@@ -38,7 +39,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getBranch <em>Branch</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getEclipseVersion <em>Eclipse Version</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getPreferences <em>Preferences</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getUpdateLocations <em>Update Locations</em>}</li>
* </ul>
* </p>
*
@@ -67,7 +67,7 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
protected EclipseVersion eclipseVersion;
/**
- * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' containment reference.
+ * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPreferences()
@@ -77,16 +77,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
protected Preferences preferences;
/**
- * The cached value of the '{@link #getUpdateLocations() <em>Update Locations</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getUpdateLocations()
- * @generated
- * @ordered
- */
- protected EList<P2Repository> updateLocations;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -202,6 +192,17 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
*/
public Preferences getPreferences()
{
+ if (preferences != null && preferences.eIsProxy())
+ {
+ InternalEObject oldPreferences = (InternalEObject)preferences;
+ preferences = (Preferences)eResolveProxy(oldPreferences);
+ if (preferences != oldPreferences)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.SETUP__PREFERENCES, oldPreferences,
+ preferences));
+ }
+ }
return preferences;
}
@@ -210,20 +211,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
* <!-- end-user-doc -->
* @generated
*/
- public NotificationChain basicSetPreferences(Preferences newPreferences, NotificationChain msgs)
+ public Preferences basicGetPreferences()
{
- Preferences oldPreferences = preferences;
- preferences = newPreferences;
- if (eNotificationRequired())
- {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES,
- oldPreferences, newPreferences);
- if (msgs == null)
- msgs = notification;
- else
- msgs.add(notification);
- }
- return msgs;
+ return preferences;
}
/**
@@ -233,55 +223,59 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
*/
public void setPreferences(Preferences newPreferences)
{
- if (newPreferences != preferences)
- {
- NotificationChain msgs = null;
- if (preferences != null)
- msgs = ((InternalEObject)preferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.SETUP__PREFERENCES, null, msgs);
- if (newPreferences != null)
- msgs = ((InternalEObject)newPreferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.SETUP__PREFERENCES, null, msgs);
- msgs = basicSetPreferences(newPreferences, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, newPreferences,
- newPreferences));
+ Preferences oldPreferences = preferences;
+ preferences = newPreferences;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, oldPreferences,
+ preferences));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
- public EList<P2Repository> getUpdateLocations()
+ public EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger)
{
- if (updateLocations == null)
- {
- updateLocations = new EObjectContainmentEList<P2Repository>(P2Repository.class, this,
- SetupPackage.SETUP__UPDATE_LOCATIONS);
- }
- return updateLocations;
+ EList<SetupTask> setupTasks = new BasicEList<SetupTask>();
+
+ Preferences preferences = getPreferences();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, preferences);
+
+ Branch branch = getBranch();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, branch);
+
+ Project project = branch.getProject();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, project);
+
+ EclipseVersion eclipseVersion = getEclipseVersion();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, eclipseVersion);
+
+ return setupTasks;
}
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ private void getSetupTasks(boolean filterRestrictions, Trigger trigger, EList<SetupTask> setupTasks,
+ SetupTaskContainer setupTaskContainer)
{
- switch (featureID)
+ Branch branch = getBranch();
+ Project project = branch.getProject();
+
+ for (SetupTask setupTask : setupTaskContainer.getSetupTasks())
{
- case SetupPackage.SETUP__PREFERENCES:
- return basicSetPreferences(null, msgs);
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- return ((InternalEList<?>)getUpdateLocations()).basicRemove(otherEnd, msgs);
+ if (setupTask.getTriggers().contains(trigger))
+ {
+ EList<ConfigurableItem> restrictions = setupTask.getRestrictions();
+ if (!restrictions.isEmpty())
+ {
+ if (!restrictions.contains(branch) && !restrictions.contains(project))
+ {
+ continue;
+ }
+ }
+
+ setupTasks.add(setupTask);
+ }
}
- return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
@@ -303,9 +297,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
return getEclipseVersion();
return basicGetEclipseVersion();
case SetupPackage.SETUP__PREFERENCES:
- return getPreferences();
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- return getUpdateLocations();
+ if (resolve)
+ return getPreferences();
+ return basicGetPreferences();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -315,7 +309,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
* <!-- end-user-doc -->
* @generated
*/
- @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
@@ -330,10 +323,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
case SetupPackage.SETUP__PREFERENCES:
setPreferences((Preferences)newValue);
return;
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- getUpdateLocations().clear();
- getUpdateLocations().addAll((Collection<? extends P2Repository>)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -357,9 +346,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
case SetupPackage.SETUP__PREFERENCES:
setPreferences((Preferences)null);
return;
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- getUpdateLocations().clear();
- return;
}
super.eUnset(featureID);
}
@@ -380,8 +366,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
return eclipseVersion != null;
case SetupPackage.SETUP__PREFERENCES:
return preferences != null;
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- return updateLocations != null && !updateLocations.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java
index d08b90ff97..4305ebc213 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java
@@ -10,31 +10,48 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
+
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.impl.EPackageImpl;
+import java.util.Set;
+
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
@@ -69,7 +86,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- private EClass toolInstallationEClass = null;
+ private EClass apiBaselineTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gitCloneTaskEClass = null;
/**
* <!-- begin-user-doc -->
@@ -83,7 +107,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- private EClass directorCallEClass = null;
+ private EClass p2TaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stringVariableTaskEClass = null;
/**
* <!-- begin-user-doc -->
@@ -104,35 +135,91 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- private EClass apiBaselineEClass = null;
+ private EClass setupEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass gitCloneEClass = null;
+ private EClass setupTaskEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass setupEClass = null;
+ private EClass workingSetTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass resourceCopyTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass textModifyTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass textModificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eclipseIniTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum setupTaskScopeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum triggerEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compoundSetupTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass oneTimeSetupTaskEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass toolPreferenceEClass = null;
+ private EClass configurableItemEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass linkLocationEClass = null;
+ private EClass buckminsterImportTaskEClass = null;
/**
* <!-- begin-user-doc -->
@@ -146,9 +233,44 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
+ private EClass linkLocationTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass setupTaskContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eclipsePreferenceTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EDataType uriEDataType = null;
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType exceptionEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType triggerSetEDataType = null;
+
+ /**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
@@ -157,7 +279,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* initialization of the package, or returns the registered package,
* if one already exists.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#eNS_URI
* @see #init()
@@ -287,12 +409,12 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
/**
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- public EReference getProject_ApiBaselines()
+ public EClass getBranch()
{
- return (EReference)projectEClass.getEStructuralFeatures().get(3);
+ return branchEClass;
}
/**
@@ -300,19 +422,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getProject_WorkingSetGroup()
- {
- return (EReference)projectEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getBranch()
+ public EReference getBranch_Project()
{
- return branchEClass;
+ return (EReference)branchEClass.getEStructuralFeatures().get(0);
}
/**
@@ -320,9 +432,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getBranch_Project()
+ public EAttribute getBranch_Name()
{
- return (EReference)branchEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)branchEClass.getEStructuralFeatures().get(1);
}
/**
@@ -330,9 +442,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getBranch_Name()
+ public EClass getApiBaselineTask()
{
- return (EAttribute)branchEClass.getEStructuralFeatures().get(1);
+ return apiBaselineTaskEClass;
}
/**
@@ -340,9 +452,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getBranch_GitClones()
+ public EAttribute getApiBaselineTask_Version()
{
- return (EReference)branchEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -350,9 +462,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getBranch_ApiBaseline()
+ public EAttribute getApiBaselineTask_ZipLocation()
{
- return (EReference)branchEClass.getEStructuralFeatures().get(3);
+ return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -360,9 +472,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getBranch_MspecFilePath()
+ public EClass getGitCloneTask()
{
- return (EAttribute)branchEClass.getEStructuralFeatures().get(4);
+ return gitCloneTaskEClass;
}
/**
@@ -370,9 +482,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getBranch_CloneVariableName()
+ public EAttribute getGitCloneTask_Name()
{
- return (EAttribute)branchEClass.getEStructuralFeatures().get(5);
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -380,9 +492,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getToolInstallation()
+ public EAttribute getGitCloneTask_RemoteName()
{
- return toolInstallationEClass;
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -390,9 +502,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getToolInstallation_DirectorCalls()
+ public EAttribute getGitCloneTask_RemoteURI()
{
- return (EReference)toolInstallationEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -400,9 +512,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getToolInstallation_ToolPreferences()
+ public EAttribute getGitCloneTask_CheckoutBranch()
{
- return (EReference)toolInstallationEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(3);
}
/**
@@ -440,9 +552,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getEclipseVersion_DirectorCall()
+ public EClass getP2Task()
+ {
+ return p2TaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getP2Task_InstallableUnits()
{
- return (EReference)eclipseVersionEClass.getEStructuralFeatures().get(2);
+ return (EReference)p2TaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -450,9 +572,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getDirectorCall()
+ public EReference getP2Task_P2Repositories()
{
- return directorCallEClass;
+ return (EReference)p2TaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -460,9 +582,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getDirectorCall_InstallableUnits()
+ public EClass getStringVariableTask()
{
- return (EReference)directorCallEClass.getEStructuralFeatures().get(0);
+ return stringVariableTaskEClass;
}
/**
@@ -470,9 +592,29 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getDirectorCall_P2Repositories()
+ public EAttribute getStringVariableTask_Name()
{
- return (EReference)directorCallEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStringVariableTask_Value()
+ {
+ return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStringVariableTask_Description()
+ {
+ return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -490,7 +632,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getInstallableUnit_DirectorCall()
+ public EReference getInstallableUnit_P2Task()
{
return (EReference)installableUnitEClass.getEStructuralFeatures().get(0);
}
@@ -520,7 +662,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getP2Repository_DirectorCall()
+ public EReference getP2Repository_P2Task()
{
return (EReference)p2RepositoryEClass.getEStructuralFeatures().get(0);
}
@@ -540,9 +682,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getApiBaseline()
+ public EClass getSetup()
{
- return apiBaselineEClass;
+ return setupEClass;
}
/**
@@ -550,9 +692,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getApiBaseline_Project()
+ public EReference getSetup_Branch()
{
- return (EReference)apiBaselineEClass.getEStructuralFeatures().get(0);
+ return (EReference)setupEClass.getEStructuralFeatures().get(0);
}
/**
@@ -560,9 +702,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getApiBaseline_Version()
+ public EReference getSetup_EclipseVersion()
{
- return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(1);
+ return (EReference)setupEClass.getEStructuralFeatures().get(1);
}
/**
@@ -570,9 +712,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getApiBaseline_ZipLocation()
+ public EReference getSetup_Preferences()
{
- return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(2);
+ return (EReference)setupEClass.getEStructuralFeatures().get(2);
}
/**
@@ -580,9 +722,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getGitClone()
+ public EClass getSetupTask()
{
- return gitCloneEClass;
+ return setupTaskEClass;
}
/**
@@ -590,9 +732,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getGitClone_Branch()
+ public EReference getSetupTask_Requirements()
{
- return (EReference)gitCloneEClass.getEStructuralFeatures().get(0);
+ return (EReference)setupTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -600,9 +742,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getGitClone_Name()
+ public EReference getSetupTask_Restrictions()
{
- return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(1);
+ return (EReference)setupTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -610,9 +752,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getGitClone_RemoteURI()
+ public EAttribute getSetupTask_Scope()
{
- return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -620,9 +762,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getGitClone_CheckoutBranch()
+ public EAttribute getSetupTask_ExcludedTriggers()
+ {
+ return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWorkingSetTask()
{
- return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(3);
+ return workingSetTaskEClass;
}
/**
@@ -630,9 +782,109 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getSetup()
+ public EReference getWorkingSetTask_WorkingSets()
{
- return setupEClass;
+ return (EReference)workingSetTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getResourceCopyTask()
+ {
+ return resourceCopyTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getResourceCopyTask_SourceURL()
+ {
+ return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getResourceCopyTask_TargetURL()
+ {
+ return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTextModifyTask()
+ {
+ return textModifyTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTextModifyTask_Url()
+ {
+ return (EAttribute)textModifyTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTextModifyTask_Modifications()
+ {
+ return (EReference)textModifyTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTextModification()
+ {
+ return textModificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTextModification_Pattern()
+ {
+ return (EAttribute)textModificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTextModification_Substitutions()
+ {
+ return (EAttribute)textModificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEclipseIniTask()
+ {
+ return eclipseIniTaskEClass;
}
/**
@@ -640,9 +892,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_Branch()
+ public EAttribute getEclipseIniTask_Option()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -650,9 +902,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_EclipseVersion()
+ public EAttribute getEclipseIniTask_Value()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -660,9 +912,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_Preferences()
+ public EAttribute getEclipseIniTask_Vm()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -670,9 +922,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_UpdateLocations()
+ public EEnum getSetupTaskScope()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(3);
+ return setupTaskScopeEEnum;
}
/**
@@ -680,9 +932,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getToolPreference()
+ public EEnum getTrigger()
{
- return toolPreferenceEClass;
+ return triggerEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompoundSetupTask()
+ {
+ return compoundSetupTaskEClass;
}
/**
@@ -690,9 +952,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getToolPreference_Key()
+ public EAttribute getCompoundSetupTask_Name()
{
- return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)compoundSetupTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -700,9 +962,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getToolPreference_Value()
+ public EClass getOneTimeSetupTask()
{
- return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(1);
+ return oneTimeSetupTaskEClass;
}
/**
@@ -710,9 +972,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getLinkLocation()
+ public EAttribute getOneTimeSetupTask_Id()
{
- return linkLocationEClass;
+ return (EAttribute)oneTimeSetupTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -720,9 +982,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getLinkLocation_Path()
+ public EClass getConfigurableItem()
{
- return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(0);
+ return configurableItemEClass;
}
/**
@@ -730,9 +992,39 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getLinkLocation_Name()
+ public EClass getBuckminsterImportTask()
{
- return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(1);
+ return buckminsterImportTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuckminsterImportTask_Mspec()
+ {
+ return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuckminsterImportTask_TargetPlatform()
+ {
+ return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuckminsterImportTask_BundlePool()
+ {
+ return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -780,9 +1072,79 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getPreferences_LinkLocations()
+ public EClass getLinkLocationTask()
+ {
+ return linkLocationTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkLocationTask_Path()
+ {
+ return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkLocationTask_Name()
+ {
+ return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSetupTaskContainer()
+ {
+ return setupTaskContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSetupTaskContainer_SetupTasks()
+ {
+ return (EReference)setupTaskContainerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEclipsePreferenceTask()
+ {
+ return eclipsePreferenceTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEclipsePreferenceTask_Key()
{
- return (EReference)preferencesEClass.getEStructuralFeatures().get(3);
+ return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEclipsePreferenceTask_Value()
+ {
+ return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -800,6 +1162,26 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
+ public EDataType getException()
+ {
+ return exceptionEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getTriggerSet()
+ {
+ return triggerSetEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public SetupFactory getSetupFactory()
{
return (SetupFactory)getEFactoryInstance();
@@ -826,79 +1208,118 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
isCreated = true;
// Create classes and their features
- preferencesEClass = createEClass(PREFERENCES);
- createEAttribute(preferencesEClass, PREFERENCES__USER_NAME);
- createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER);
- createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX);
- createEReference(preferencesEClass, PREFERENCES__LINK_LOCATIONS);
-
- linkLocationEClass = createEClass(LINK_LOCATION);
- createEAttribute(linkLocationEClass, LINK_LOCATION__PATH);
- createEAttribute(linkLocationEClass, LINK_LOCATION__NAME);
-
- toolInstallationEClass = createEClass(TOOL_INSTALLATION);
- createEReference(toolInstallationEClass, TOOL_INSTALLATION__DIRECTOR_CALLS);
- createEReference(toolInstallationEClass, TOOL_INSTALLATION__TOOL_PREFERENCES);
-
- toolPreferenceEClass = createEClass(TOOL_PREFERENCE);
- createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__KEY);
- createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__VALUE);
-
eclipseVersionEClass = createEClass(ECLIPSE_VERSION);
createEReference(eclipseVersionEClass, ECLIPSE_VERSION__CONFIGURATION);
createEAttribute(eclipseVersionEClass, ECLIPSE_VERSION__VERSION);
- createEReference(eclipseVersionEClass, ECLIPSE_VERSION__DIRECTOR_CALL);
-
- directorCallEClass = createEClass(DIRECTOR_CALL);
- createEReference(directorCallEClass, DIRECTOR_CALL__INSTALLABLE_UNITS);
- createEReference(directorCallEClass, DIRECTOR_CALL__P2_REPOSITORIES);
-
- installableUnitEClass = createEClass(INSTALLABLE_UNIT);
- createEReference(installableUnitEClass, INSTALLABLE_UNIT__DIRECTOR_CALL);
- createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID);
-
- p2RepositoryEClass = createEClass(P2_REPOSITORY);
- createEReference(p2RepositoryEClass, P2_REPOSITORY__DIRECTOR_CALL);
- createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL);
configurationEClass = createEClass(CONFIGURATION);
createEReference(configurationEClass, CONFIGURATION__PROJECTS);
createEReference(configurationEClass, CONFIGURATION__ECLIPSE_VERSIONS);
+ configurableItemEClass = createEClass(CONFIGURABLE_ITEM);
+
projectEClass = createEClass(PROJECT);
createEReference(projectEClass, PROJECT__CONFIGURATION);
createEReference(projectEClass, PROJECT__BRANCHES);
createEAttribute(projectEClass, PROJECT__NAME);
- createEReference(projectEClass, PROJECT__API_BASELINES);
- createEReference(projectEClass, PROJECT__WORKING_SET_GROUP);
branchEClass = createEClass(BRANCH);
createEReference(branchEClass, BRANCH__PROJECT);
createEAttribute(branchEClass, BRANCH__NAME);
- createEReference(branchEClass, BRANCH__GIT_CLONES);
- createEReference(branchEClass, BRANCH__API_BASELINE);
- createEAttribute(branchEClass, BRANCH__MSPEC_FILE_PATH);
- createEAttribute(branchEClass, BRANCH__CLONE_VARIABLE_NAME);
-
- apiBaselineEClass = createEClass(API_BASELINE);
- createEReference(apiBaselineEClass, API_BASELINE__PROJECT);
- createEAttribute(apiBaselineEClass, API_BASELINE__VERSION);
- createEAttribute(apiBaselineEClass, API_BASELINE__ZIP_LOCATION);
-
- gitCloneEClass = createEClass(GIT_CLONE);
- createEReference(gitCloneEClass, GIT_CLONE__BRANCH);
- createEAttribute(gitCloneEClass, GIT_CLONE__NAME);
- createEAttribute(gitCloneEClass, GIT_CLONE__REMOTE_URI);
- createEAttribute(gitCloneEClass, GIT_CLONE__CHECKOUT_BRANCH);
+
+ preferencesEClass = createEClass(PREFERENCES);
+ createEAttribute(preferencesEClass, PREFERENCES__USER_NAME);
+ createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER);
+ createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX);
setupEClass = createEClass(SETUP);
createEReference(setupEClass, SETUP__BRANCH);
createEReference(setupEClass, SETUP__ECLIPSE_VERSION);
createEReference(setupEClass, SETUP__PREFERENCES);
- createEReference(setupEClass, SETUP__UPDATE_LOCATIONS);
+
+ setupTaskEClass = createEClass(SETUP_TASK);
+ createEReference(setupTaskEClass, SETUP_TASK__REQUIREMENTS);
+ createEReference(setupTaskEClass, SETUP_TASK__RESTRICTIONS);
+ createEAttribute(setupTaskEClass, SETUP_TASK__SCOPE);
+ createEAttribute(setupTaskEClass, SETUP_TASK__EXCLUDED_TRIGGERS);
+
+ setupTaskContainerEClass = createEClass(SETUP_TASK_CONTAINER);
+ createEReference(setupTaskContainerEClass, SETUP_TASK_CONTAINER__SETUP_TASKS);
+
+ compoundSetupTaskEClass = createEClass(COMPOUND_SETUP_TASK);
+ createEAttribute(compoundSetupTaskEClass, COMPOUND_SETUP_TASK__NAME);
+
+ oneTimeSetupTaskEClass = createEClass(ONE_TIME_SETUP_TASK);
+ createEAttribute(oneTimeSetupTaskEClass, ONE_TIME_SETUP_TASK__ID);
+
+ eclipseIniTaskEClass = createEClass(ECLIPSE_INI_TASK);
+ createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__OPTION);
+ createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VALUE);
+ createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VM);
+
+ linkLocationTaskEClass = createEClass(LINK_LOCATION_TASK);
+ createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__PATH);
+ createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__NAME);
+
+ p2TaskEClass = createEClass(P2_TASK);
+ createEReference(p2TaskEClass, P2_TASK__P2_REPOSITORIES);
+ createEReference(p2TaskEClass, P2_TASK__INSTALLABLE_UNITS);
+
+ installableUnitEClass = createEClass(INSTALLABLE_UNIT);
+ createEReference(installableUnitEClass, INSTALLABLE_UNIT__P2_TASK);
+ createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID);
+
+ p2RepositoryEClass = createEClass(P2_REPOSITORY);
+ createEReference(p2RepositoryEClass, P2_REPOSITORY__P2_TASK);
+ createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL);
+
+ buckminsterImportTaskEClass = createEClass(BUCKMINSTER_IMPORT_TASK);
+ createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__MSPEC);
+ createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM);
+ createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL);
+
+ apiBaselineTaskEClass = createEClass(API_BASELINE_TASK);
+ createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__VERSION);
+ createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__ZIP_LOCATION);
+
+ gitCloneTaskEClass = createEClass(GIT_CLONE_TASK);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__NAME);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_NAME);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_URI);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__CHECKOUT_BRANCH);
+
+ eclipsePreferenceTaskEClass = createEClass(ECLIPSE_PREFERENCE_TASK);
+ createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__KEY);
+ createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__VALUE);
+
+ stringVariableTaskEClass = createEClass(STRING_VARIABLE_TASK);
+ createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__NAME);
+ createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__VALUE);
+ createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__DESCRIPTION);
+
+ workingSetTaskEClass = createEClass(WORKING_SET_TASK);
+ createEReference(workingSetTaskEClass, WORKING_SET_TASK__WORKING_SETS);
+
+ resourceCopyTaskEClass = createEClass(RESOURCE_COPY_TASK);
+ createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__SOURCE_URL);
+ createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__TARGET_URL);
+
+ textModifyTaskEClass = createEClass(TEXT_MODIFY_TASK);
+ createEAttribute(textModifyTaskEClass, TEXT_MODIFY_TASK__URL);
+ createEReference(textModifyTaskEClass, TEXT_MODIFY_TASK__MODIFICATIONS);
+
+ textModificationEClass = createEClass(TEXT_MODIFICATION);
+ createEAttribute(textModificationEClass, TEXT_MODIFICATION__PATTERN);
+ createEAttribute(textModificationEClass, TEXT_MODIFICATION__SUBSTITUTIONS);
+
+ // Create enums
+ setupTaskScopeEEnum = createEEnum(SETUP_TASK_SCOPE);
+ triggerEEnum = createEEnum(TRIGGER);
// Create data types
uriEDataType = createEDataType(URI);
+ exceptionEDataType = createEDataType(EXCEPTION);
+ triggerSetEDataType = createEDataType(TRIGGER_SET);
}
/**
@@ -935,11 +1356,65 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
// Set bounds for type parameters
// Add supertypes to classes
- preferencesEClass.getESuperTypes().add(this.getToolInstallation());
- projectEClass.getESuperTypes().add(this.getToolInstallation());
- branchEClass.getESuperTypes().add(this.getToolInstallation());
+ eclipseVersionEClass.getESuperTypes().add(this.getConfigurableItem());
+ configurableItemEClass.getESuperTypes().add(this.getSetupTaskContainer());
+ projectEClass.getESuperTypes().add(this.getConfigurableItem());
+ branchEClass.getESuperTypes().add(this.getConfigurableItem());
+ preferencesEClass.getESuperTypes().add(this.getSetupTaskContainer());
+ compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTask());
+ compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTaskContainer());
+ oneTimeSetupTaskEClass.getESuperTypes().add(this.getSetupTask());
+ eclipseIniTaskEClass.getESuperTypes().add(this.getSetupTask());
+ linkLocationTaskEClass.getESuperTypes().add(this.getSetupTask());
+ p2TaskEClass.getESuperTypes().add(this.getSetupTask());
+ buckminsterImportTaskEClass.getESuperTypes().add(this.getSetupTask());
+ apiBaselineTaskEClass.getESuperTypes().add(this.getSetupTask());
+ gitCloneTaskEClass.getESuperTypes().add(this.getSetupTask());
+ eclipsePreferenceTaskEClass.getESuperTypes().add(this.getSetupTask());
+ stringVariableTaskEClass.getESuperTypes().add(this.getSetupTask());
+ workingSetTaskEClass.getESuperTypes().add(this.getSetupTask());
+ resourceCopyTaskEClass.getESuperTypes().add(this.getSetupTask());
+ textModifyTaskEClass.getESuperTypes().add(this.getSetupTask());
// Initialize classes and features; add operations and parameters
+ initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(),
+ "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null,
+ 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(),
+ this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ initEClass(configurableItemEClass, ConfigurableItem.class, "ConfigurableItem", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(),
+ "configuration", null, 0, 1, Project.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1,
+ Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1,
+ Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
initEClass(preferencesEClass, Preferences.class, "Preferences", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getPreferences_UserName(), ecorePackage.getEString(), "userName", null, 0, 1, Preferences.class,
@@ -949,160 +1424,204 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
IS_ORDERED);
initEAttribute(getPreferences_GitPrefix(), ecorePackage.getEString(), "gitPrefix", null, 0, 1, Preferences.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getPreferences_LinkLocations(), this.getLinkLocation(), null, "linkLocations", null, 0, -1,
- Preferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+
+ initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+ initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1,
+ Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 1, 1, Setup.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ EOperation op = addEOperation(setupEClass, this.getSetupTask(), "getSetupTasks", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEBoolean(), "filterRestrictions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrigger(), "trigger", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(setupTaskEClass, SetupTask.class, "SetupTask", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSetupTask_Requirements(), this.getSetupTask(), null, "requirements", null, 0, -1,
+ SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSetupTask_Restrictions(), this.getConfigurableItem(), null, "restrictions", null, 0, -1,
+ SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSetupTask_Scope(), this.getSetupTaskScope(), "scope", null, 0, 1, SetupTask.class, IS_TRANSIENT,
+ IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSetupTask_ExcludedTriggers(), this.getTriggerSet(), "excludedTriggers", "", 1, 1,
+ SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ op = addEOperation(setupTaskEClass, ecorePackage.getEBoolean(), "requires", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getSetupTask(), "setupTask", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(setupTaskEClass, this.getTriggerSet(), "getValidTriggers", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(setupTaskEClass, this.getTriggerSet(), "getTriggers", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(setupTaskContainerEClass, SetupTaskContainer.class, "SetupTaskContainer", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSetupTaskContainer_SetupTasks(), this.getSetupTask(), null, "setupTasks", null, 0, -1,
+ SetupTaskContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(linkLocationEClass, LinkLocation.class, "LinkLocation", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(compoundSetupTaskEClass, CompoundSetupTask.class, "CompoundSetupTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getLinkLocation_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocation.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getLinkLocation_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocation.class,
+ initEAttribute(getCompoundSetupTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, CompoundSetupTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(toolInstallationEClass, ToolInstallation.class, "ToolInstallation", IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(oneTimeSetupTaskEClass, OneTimeSetupTask.class, "OneTimeSetupTask", IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getToolInstallation_DirectorCalls(), this.getDirectorCall(), null, "directorCalls", null, 0, -1,
- ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getToolInstallation_ToolPreferences(), this.getToolPreference(), null, "toolPreferences", null, 0,
- -1, ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getOneTimeSetupTask_Id(), ecorePackage.getEString(), "id", null, 1, 1, OneTimeSetupTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(toolPreferenceEClass, ToolPreference.class, "ToolPreference", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(eclipseIniTaskEClass, EclipseIniTask.class, "EclipseIniTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getToolPreference_Key(), ecorePackage.getEString(), "key", null, 0, 1, ToolPreference.class,
+ initEAttribute(getEclipseIniTask_Option(), ecorePackage.getEString(), "option", null, 0, 1, EclipseIniTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getToolPreference_Value(), ecorePackage.getEString(), "value", null, 0, 1, ToolPreference.class,
+ initEAttribute(getEclipseIniTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, EclipseIniTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEclipseIniTask_Vm(), ecorePackage.getEBoolean(), "vm", null, 0, 1, EclipseIniTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(linkLocationTaskEClass, LinkLocationTask.class, "LinkLocationTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(),
- "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class,
+ initEAttribute(getLinkLocationTask_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocationTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinkLocationTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocationTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEclipseVersion_DirectorCall(), this.getDirectorCall(), null, "directorCall", null, 1, 1,
- EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(directorCallEClass, DirectorCall.class, "DirectorCall", !IS_ABSTRACT, !IS_INTERFACE,
- IS_GENERATED_INSTANCE_CLASS);
- initEReference(getDirectorCall_InstallableUnits(), this.getInstallableUnit(),
- this.getInstallableUnit_DirectorCall(), "installableUnits", null, 1, -1, DirectorCall.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
- initEReference(getDirectorCall_P2Repositories(), this.getP2Repository(), this.getP2Repository_DirectorCall(),
- "p2Repositories", null, 1, -1, DirectorCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(p2TaskEClass, P2Task.class, "P2Task", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getP2Task_P2Repositories(), this.getP2Repository(), this.getP2Repository_P2Task(), "p2Repositories",
+ null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getP2Task_InstallableUnits(), this.getInstallableUnit(), this.getInstallableUnit_P2Task(),
+ "installableUnits", null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(installableUnitEClass, InstallableUnit.class, "InstallableUnit", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getInstallableUnit_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_InstallableUnits(),
- "directorCall", null, 0, 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInstallableUnit_P2Task(), this.getP2Task(), this.getP2Task_InstallableUnits(), "p2Task", null, 0,
+ 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getInstallableUnit_Id(), ecorePackage.getEString(), "id", null, 0, 1, InstallableUnit.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(p2RepositoryEClass, P2Repository.class, "P2Repository", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getP2Repository_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_P2Repositories(),
- "directorCall", null, 0, 1, P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getP2Repository_P2Task(), this.getP2Task(), this.getP2Task_P2Repositories(), "p2Task", null, 0, 1,
+ P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getP2Repository_Url(), ecorePackage.getEString(), "url", null, 0, 1, P2Repository.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE,
- IS_GENERATED_INSTANCE_CLASS);
- initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null,
- 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(),
- this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
-
- initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(),
- "configuration", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1,
- Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getProject_ApiBaselines(), this.getApiBaseline(), this.getApiBaseline_Project(), "apiBaselines",
- null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getProject_WorkingSetGroup(), theWorkingSetsPackage.getWorkingSetGroup(), null, "workingSetGroup",
- null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(buckminsterImportTaskEClass, BuckminsterImportTask.class, "BuckminsterImportTask", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBuckminsterImportTask_Mspec(), ecorePackage.getEString(), "mspec", null, 0, 1,
+ BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBuckminsterImportTask_TargetPlatform(), ecorePackage.getEString(), "targetPlatform", null, 0, 1,
+ BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBuckminsterImportTask_BundlePool(), ecorePackage.getEString(), "bundlePool", null, 0, 1,
+ BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
- initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1,
- Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getBranch_GitClones(), this.getGitClone(), this.getGitClone_Branch(), "gitClones", null, 1, -1,
- Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getBranch_ApiBaseline(), this.getApiBaseline(), null, "apiBaseline", null, 0, 1, Branch.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ initEClass(apiBaselineTaskEClass, ApiBaselineTask.class, "ApiBaselineTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getApiBaselineTask_Version(), ecorePackage.getEString(), "version", null, 0, 1,
+ ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getApiBaselineTask_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1,
+ ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
- initEAttribute(getBranch_MspecFilePath(), ecorePackage.getEString(), "mspecFilePath", null, 0, 1, Branch.class,
+
+ initEClass(gitCloneTaskEClass, GitCloneTask.class, "GitCloneTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getGitCloneTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitCloneTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBranch_CloneVariableName(), ecorePackage.getEString(), "cloneVariableName", null, 0, 1,
- Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ initEAttribute(getGitCloneTask_RemoteName(), ecorePackage.getEString(), "remoteName", "origin", 0, 1,
+ GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+ initEAttribute(getGitCloneTask_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitCloneTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getGitCloneTask_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1,
+ GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
- EOperation op = addEOperation(branchEClass, ecorePackage.getEBoolean(), "isInstalled", 0, 1, IS_UNIQUE, IS_ORDERED);
- addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED);
+ initEClass(eclipsePreferenceTaskEClass, EclipsePreferenceTask.class, "EclipsePreferenceTask", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEclipsePreferenceTask_Key(), ecorePackage.getEString(), "key", null, 0, 1,
+ EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEclipsePreferenceTask_Value(), ecorePackage.getEString(), "value", null, 0, 1,
+ EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
- op = addEOperation(branchEClass, this.getURI(), "getURI", 0, 1, IS_UNIQUE, IS_ORDERED);
- addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED);
+ initEClass(stringVariableTaskEClass, StringVariableTask.class, "StringVariableTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStringVariableTask_Name(), ecorePackage.getEString(), "name", null, 0, 1,
+ StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStringVariableTask_Value(), ecorePackage.getEString(), "value", null, 0, 1,
+ StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStringVariableTask_Description(), ecorePackage.getEString(), "description", null, 0, 1,
+ StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
- initEClass(apiBaselineEClass, ApiBaseline.class, "ApiBaseline", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(workingSetTaskEClass, WorkingSetTask.class, "WorkingSetTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getApiBaseline_Project(), this.getProject(), this.getProject_ApiBaselines(), "project", null, 0, 1,
- ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ initEReference(getWorkingSetTask_WorkingSets(), theWorkingSetsPackage.getWorkingSet(), null, "workingSets", null,
+ 0, -1, WorkingSetTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getApiBaseline_Version(), ecorePackage.getEString(), "version", null, 0, 1, ApiBaseline.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getApiBaseline_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1,
- ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
- initEClass(gitCloneEClass, GitClone.class, "GitClone", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getGitClone_Branch(), this.getBranch(), this.getBranch_GitClones(), "branch", null, 0, 1,
- GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getGitClone_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitClone.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getGitClone_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitClone.class,
+ initEClass(resourceCopyTaskEClass, ResourceCopyTask.class, "ResourceCopyTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getResourceCopyTask_SourceURL(), ecorePackage.getEString(), "sourceURL", null, 0, 1,
+ ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getResourceCopyTask_TargetURL(), ecorePackage.getEString(), "targetURL", null, 0, 1,
+ ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ initEClass(textModifyTaskEClass, TextModifyTask.class, "TextModifyTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTextModifyTask_Url(), ecorePackage.getEString(), "url", null, 0, 1, TextModifyTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getGitClone_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1,
- GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
+ initEReference(getTextModifyTask_Modifications(), this.getTextModification(), null, "modifications", null, 0, -1,
+ TextModifyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
- initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1,
- Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 0, 1, Setup.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ initEClass(textModificationEClass, TextModification.class, "TextModification", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTextModification_Pattern(), ecorePackage.getEString(), "pattern", null, 0, 1,
+ TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
- initEReference(getSetup_UpdateLocations(), this.getP2Repository(), null, "updateLocations", null, 0, -1,
- Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTextModification_Substitutions(), ecorePackage.getEString(), "substitutions", null, 0, -1,
+ TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(setupTaskScopeEEnum, SetupTaskScope.class, "SetupTaskScope");
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.NONE);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.CONFIGURATION);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.PROJECT);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.BRANCH);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.USER);
+
+ initEEnum(triggerEEnum, Trigger.class, "Trigger");
+ addEEnumLiteral(triggerEEnum, Trigger.BOOTSTRAP);
+ addEEnumLiteral(triggerEEnum, Trigger.STARTUP);
+ addEEnumLiteral(triggerEEnum, Trigger.MANUAL);
// Initialize data types
initEDataType(uriEDataType, org.eclipse.emf.common.util.URI.class, "URI", IS_SERIALIZABLE,
!IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(exceptionEDataType, Exception.class, "Exception", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(triggerSetEDataType, Set.class, "TriggerSet", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS,
+ "java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>");
// Create resource
createResource(eNS_URI);
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java
new file mode 100644
index 0000000000..3a5df4b135
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java
@@ -0,0 +1,164 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Task Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl#getSetupTasks <em>Setup Tasks</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SetupTaskContainerImpl extends MinimalEObjectImpl.Container implements SetupTaskContainer
+{
+ /**
+ * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSetupTasks()
+ * @generated
+ * @ordered
+ */
+ protected EList<SetupTask> setupTasks;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetupTaskContainerImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.SETUP_TASK_CONTAINER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SetupTask> getSetupTasks()
+ {
+ if (setupTasks == null)
+ {
+ setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this,
+ SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS);
+ }
+ return setupTasks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return getSetupTasks();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ getSetupTasks().clear();
+ getSetupTasks().addAll((Collection<? extends SetupTask>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ getSetupTasks().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return setupTasks != null && !setupTasks.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // SetupTaskContainerImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java
new file mode 100644
index 0000000000..c33d040385
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java
@@ -0,0 +1,471 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
+import org.eclipse.emf.cdo.releng.setup.Configuration;
+import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRequirements <em>Requirements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRestrictions <em>Restrictions</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getScope <em>Scope</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getExcludedTriggers <em>Excluded Triggers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SetupTaskImpl extends MinimalEObjectImpl.Container implements SetupTask
+{
+ /**
+ * The cached value of the '{@link #getRequirements() <em>Requirements</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRequirements()
+ * @generated
+ * @ordered
+ */
+ protected EList<SetupTask> requirements;
+
+ /**
+ * The cached value of the '{@link #getRestrictions() <em>Restrictions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigurableItem> restrictions;
+
+ /**
+ * The default value of the '{@link #getScope() <em>Scope</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScope()
+ * @generated
+ * @ordered
+ */
+ protected static final SetupTaskScope SCOPE_EDEFAULT = SetupTaskScope.NONE;
+
+ /**
+ * The cached value of the '{@link #getExcludedTriggers() <em>Excluded Triggers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExcludedTriggers()
+ * @generated
+ * @ordered
+ */
+ protected Set<Trigger> excludedTriggers;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetupTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.SETUP_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SetupTask> getRequirements()
+ {
+ if (requirements == null)
+ {
+ requirements = new EObjectResolvingEList<SetupTask>(SetupTask.class, this, SetupPackage.SETUP_TASK__REQUIREMENTS);
+ }
+ return requirements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ConfigurableItem> getRestrictions()
+ {
+ if (restrictions == null)
+ {
+ restrictions = new EObjectResolvingEList<ConfigurableItem>(ConfigurableItem.class, this,
+ SetupPackage.SETUP_TASK__RESTRICTIONS);
+ }
+ return restrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public SetupTaskScope getScope()
+ {
+ return getScope(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Set<Trigger> getExcludedTriggers()
+ {
+ return excludedTriggers == null ? Collections.<Trigger> emptySet() : excludedTriggers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExcludedTriggersGen(Set<Trigger> newExcludedTriggers)
+ {
+ Set<Trigger> oldExcludedTriggers = excludedTriggers;
+ excludedTriggers = newExcludedTriggers;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS,
+ oldExcludedTriggers, excludedTriggers));
+ }
+
+ public void setExcludedTriggers(Set<Trigger> newExcludedTriggers)
+ {
+ setExcludedTriggersGen(newExcludedTriggers == null || newExcludedTriggers.isEmpty() ? null : newExcludedTriggers);
+ }
+
+ private SetupTaskScope getScope(EObject object)
+ {
+ if (object instanceof Configuration)
+ {
+ return SetupTaskScope.CONFIGURATION;
+ }
+
+ if (object instanceof Project)
+ {
+ return SetupTaskScope.PROJECT;
+ }
+
+ if (object instanceof Branch)
+ {
+ return SetupTaskScope.BRANCH;
+ }
+
+ if (object instanceof Preferences)
+ {
+ return SetupTaskScope.USER;
+ }
+
+ EObject container = object.eContainer();
+ if (container == null)
+ {
+ return SetupTaskScope.NONE;
+ }
+
+ return getScope(container);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean requires(SetupTask setupTask)
+ {
+ Set<SetupTask> visited = new HashSet<SetupTask>();
+ return requires(setupTask, visited);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.ALL_TRIGGERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public final Set<Trigger> getTriggers()
+ {
+ Set<Trigger> excludedTriggers = getExcludedTriggers();
+ if (excludedTriggers == null || excludedTriggers.isEmpty())
+ {
+ return getValidTriggers();
+ }
+
+ Set<Trigger> result = new HashSet<Trigger>(getValidTriggers());
+ result.removeAll(excludedTriggers);
+ return Trigger.intern(result);
+ }
+
+ private boolean requires(SetupTask setupTask, Set<SetupTask> visited)
+ {
+ if (visited.add(setupTask))
+ {
+ if (setupTask == this)
+ {
+ return true;
+ }
+
+ for (SetupTask requirement : getRequirements())
+ {
+ if (((SetupTaskImpl)requirement).requires(setupTask, visited))
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ protected final Object createToken(String value)
+ {
+ return new TypedStringToken(eClass(), value);
+ }
+
+ /**
+ * Subclasses may override to indicate that this task overrides another task with the same token.
+ *
+ * @see #createToken(String)
+ */
+ public Object getOverrideToken()
+ {
+ return this;
+ }
+
+ /**
+ * Subclasses may override to reset this task to its initial state.
+ */
+ public void dispose()
+ {
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ return getRequirements();
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ return getRestrictions();
+ case SetupPackage.SETUP_TASK__SCOPE:
+ return getScope();
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ return getExcludedTriggers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ getRequirements().clear();
+ getRequirements().addAll((Collection<? extends SetupTask>)newValue);
+ return;
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ getRestrictions().clear();
+ getRestrictions().addAll((Collection<? extends ConfigurableItem>)newValue);
+ return;
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ setExcludedTriggers((Set<Trigger>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ getRequirements().clear();
+ return;
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ getRestrictions().clear();
+ return;
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ setExcludedTriggers((Set<Trigger>)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ return requirements != null && !requirements.isEmpty();
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ return restrictions != null && !restrictions.isEmpty();
+ case SetupPackage.SETUP_TASK__SCOPE:
+ return getScope() != SCOPE_EDEFAULT;
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ return excludedTriggers != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (excludedTriggers: ");
+ result.append(excludedTriggers);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ protected static final class TypedStringToken
+ {
+ private final Object type;
+
+ private final String value;
+
+ public TypedStringToken(Object type, String value)
+ {
+ this.type = type;
+ this.value = value;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (type == null ? 0 : type.hashCode());
+ result = prime * result + (value == null ? 0 : value.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+
+ if (obj == null)
+ {
+ return false;
+ }
+
+ if (getClass() != obj.getClass())
+ {
+ return false;
+ }
+
+ TypedStringToken other = (TypedStringToken)obj;
+ if (type == null)
+ {
+ if (other.type != null)
+ {
+ return false;
+ }
+ }
+ else if (!type.equals(other.type))
+ {
+ return false;
+ }
+
+ if (value == null)
+ {
+ if (other.value != null)
+ {
+ return false;
+ }
+ }
+ else if (!value.equals(other.value))
+ {
+ return false;
+ }
+
+ return true;
+ }
+ }
+
+} // SetupTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java
new file mode 100644
index 0000000000..f3c5461fc6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java
@@ -0,0 +1,355 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+
+import org.eclipse.net4j.util.StringUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.core.variables.IStringVariableManager;
+import org.eclipse.core.variables.IValueVariable;
+import org.eclipse.core.variables.VariablesPlugin;
+
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Variable Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StringVariableTaskImpl extends SetupTaskImpl implements StringVariableTask
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ private transient Object cachedVariable;
+
+ private transient String expandedValue;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StringVariableTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.STRING_VARIABLE_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription()
+ {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription)
+ {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION,
+ oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ return getName();
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ return getValue();
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ return getDescription();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ setName((String)newValue);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ setValue((String)newValue);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", description: ");
+ result.append(description);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Object getOverrideToken()
+ {
+ return createToken(getName());
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
+ IValueVariable variable = manager.getValueVariable(getName());
+
+ cachedVariable = variable;
+ expandedValue = context.expandString(getValue());
+
+ if (variable == null)
+ {
+ return true;
+ }
+
+ if (!expandedValue.equals(variable.getValue()))
+ {
+ return true;
+ }
+
+ if (!StringUtil.safe(getDescription()).equals(StringUtil.safe(variable.getDescription())))
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ context.log("Setting string substitution variable " + getName() + " = " + expandedValue);
+
+ IValueVariable variable = (IValueVariable)cachedVariable;
+ if (variable == null)
+ {
+ IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
+ variable = manager.newValueVariable(getName(), null);
+ manager.addVariables(new IValueVariable[] { variable });
+ }
+
+ variable.setDescription(getDescription());
+ variable.setValue(expandedValue);
+ }
+} // StringVariableTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java
new file mode 100644
index 0000000000..15125bc0b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Modification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getPattern <em>Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getSubstitutions <em>Substitutions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TextModificationImpl extends MinimalEObjectImpl.Container implements TextModification
+{
+ /**
+ * The default value of the '{@link #getPattern() <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPattern() <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPattern()
+ * @generated
+ * @ordered
+ */
+ protected String pattern = PATTERN_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSubstitutions() <em>Substitutions</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubstitutions()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> substitutions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextModificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.TEXT_MODIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPattern()
+ {
+ return pattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPattern(String newPattern)
+ {
+ String oldPattern = pattern;
+ pattern = newPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFICATION__PATTERN, oldPattern,
+ pattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getSubstitutions()
+ {
+ if (substitutions == null)
+ {
+ substitutions = new EDataTypeUniqueEList<String>(String.class, this,
+ SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS);
+ }
+ return substitutions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ return getPattern();
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ return getSubstitutions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ setPattern((String)newValue);
+ return;
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ getSubstitutions().clear();
+ getSubstitutions().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ setPattern(PATTERN_EDEFAULT);
+ return;
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ getSubstitutions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern);
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ return substitutions != null && !substitutions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (pattern: ");
+ result.append(pattern);
+ result.append(", substitutions: ");
+ result.append(substitutions);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TextModificationImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java
new file mode 100644
index 0000000000..6ede46e41e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java
@@ -0,0 +1,250 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Modify Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getUrl <em>Url</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getModifications <em>Modifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TextModifyTaskImpl extends SetupTaskImpl implements TextModifyTask
+{
+ /**
+ * The default value of the '{@link #getUrl() <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUrl()
+ * @generated
+ * @ordered
+ */
+ protected static final String URL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUrl()
+ * @generated
+ * @ordered
+ */
+ protected String url = URL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getModifications() <em>Modifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<TextModification> modifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextModifyTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.TEXT_MODIFY_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUrl()
+ {
+ return url;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUrl(String newUrl)
+ {
+ String oldUrl = url;
+ url = newUrl;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFY_TASK__URL, oldUrl, url));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TextModification> getModifications()
+ {
+ if (modifications == null)
+ {
+ modifications = new EObjectContainmentEList.Resolving<TextModification>(TextModification.class, this,
+ SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS);
+ }
+ return modifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ return ((InternalEList<?>)getModifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ return getUrl();
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ return getModifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ setUrl((String)newValue);
+ return;
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ getModifications().clear();
+ getModifications().addAll((Collection<? extends TextModification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ setUrl(URL_EDEFAULT);
+ return;
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ getModifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url);
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ return modifications != null && !modifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (url: ");
+ result.append(url);
+ result.append(')');
+ return result.toString();
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
+} // TextModifyTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java
deleted file mode 100644
index eac9bd8e7d..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import java.util.Collection;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Tool Installation</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getDirectorCalls <em>Director Calls</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getToolPreferences <em>Tool Preferences</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class ToolInstallationImpl extends MinimalEObjectImpl.Container implements ToolInstallation
-{
- /**
- * The cached value of the '{@link #getDirectorCalls() <em>Director Calls</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getDirectorCalls()
- * @generated
- * @ordered
- */
- protected EList<DirectorCall> directorCalls;
-
- /**
- * The cached value of the '{@link #getToolPreferences() <em>Tool Preferences</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getToolPreferences()
- * @generated
- * @ordered
- */
- protected EList<ToolPreference> toolPreferences;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ToolInstallationImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.TOOL_INSTALLATION;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<DirectorCall> getDirectorCalls()
- {
- if (directorCalls == null)
- {
- directorCalls = new EObjectContainmentEList<DirectorCall>(DirectorCall.class, this,
- SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS);
- }
- return directorCalls;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<ToolPreference> getToolPreferences()
- {
- if (toolPreferences == null)
- {
- toolPreferences = new EObjectContainmentEList<ToolPreference>(ToolPreference.class, this,
- SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES);
- }
- return toolPreferences;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- return ((InternalEList<?>)getDirectorCalls()).basicRemove(otherEnd, msgs);
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- return ((InternalEList<?>)getToolPreferences()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- return getDirectorCalls();
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- return getToolPreferences();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- getDirectorCalls().clear();
- getDirectorCalls().addAll((Collection<? extends DirectorCall>)newValue);
- return;
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- getToolPreferences().clear();
- getToolPreferences().addAll((Collection<? extends ToolPreference>)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- getDirectorCalls().clear();
- return;
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- getToolPreferences().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- return directorCalls != null && !directorCalls.isEmpty();
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- return toolPreferences != null && !toolPreferences.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
-} // ToolInstallationImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java
new file mode 100644
index 0000000000..c45a4b1f7b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java
@@ -0,0 +1,289 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
+import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
+import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
+import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Set Working Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl#getWorkingSets <em>Working Sets</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WorkingSetTaskImpl extends SetupTaskImpl implements WorkingSetTask
+{
+ /**
+ * The cached value of the '{@link #getWorkingSets() <em>Working Sets</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWorkingSets()
+ * @generated
+ * @ordered
+ */
+ protected EList<WorkingSet> workingSets;
+
+ private static final String PACKAGE_EXPLORER_ID = "org.eclipse.jdt.ui.PackageExplorer";
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WorkingSetTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.WORKING_SET_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<WorkingSet> getWorkingSets()
+ {
+ if (workingSets == null)
+ {
+ workingSets = new EObjectContainmentEList.Resolving<WorkingSet>(WorkingSet.class, this,
+ SetupPackage.WORKING_SET_TASK__WORKING_SETS);
+ }
+ return workingSets;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ return ((InternalEList<?>)getWorkingSets()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ return getWorkingSets();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ getWorkingSets().clear();
+ getWorkingSets().addAll((Collection<? extends WorkingSet>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ getWorkingSets().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ return workingSets != null && !workingSets.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup();
+ Set<String> existingIds = new HashSet<String>();
+ for (WorkingSet workingSet : defaultWorkingSetGroup.getWorkingSets())
+ {
+ existingIds.add(workingSet.getId());
+ }
+
+ String prefix = "";
+ for (EObject eContainer = eContainer(); eContainer != null; eContainer = eContainer.eContainer())
+ {
+ if (eContainer instanceof Project)
+ {
+ prefix += ((Project)eContainer).getName() + " ";
+ }
+ else if (eContainer instanceof Branch)
+ {
+ prefix += ((Branch)eContainer).getName() + " ";
+ }
+ else if (eContainer instanceof Preferences)
+ {
+ prefix += ((Preferences)eContainer).getUserName() + " ";
+ }
+ }
+
+ Set<String> newIds = new HashSet<String>();
+ for (WorkingSet workingSet : getWorkingSets())
+ {
+ String id = prefix + workingSet.getName();
+ workingSet.setId(id);
+ newIds.add(id);
+ }
+
+ return !existingIds.containsAll(newIds);
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ initPackageExplorer();
+
+ WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup();
+ Set<String> existingIds = new HashSet<String>();
+ EList<WorkingSet> workingSets = defaultWorkingSetGroup.getWorkingSets();
+ for (WorkingSet workingSet : workingSets)
+ {
+ existingIds.add(workingSet.getId());
+ }
+
+ EList<WorkingSet> newWorkingSetGroups = getWorkingSets();
+ int index = 0;
+ for (WorkingSet workingSet : new ArrayList<WorkingSet>(newWorkingSetGroups))
+ {
+ String id = workingSet.getId();
+ if (!existingIds.contains(id))
+ {
+ workingSets.add(index++, workingSet);
+ }
+ else
+ {
+ for (int i = 0, size = workingSets.size(); i < size; ++i)
+ {
+ if (id.equals(workingSets.get(i).getId()))
+ {
+ index = i + 1;
+ break;
+ }
+ }
+ }
+ }
+
+ Resource resource = defaultWorkingSetGroup.eResource();
+ resource.save(null);
+ }
+
+ private static void initPackageExplorer()
+ {
+ final IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
+ workbenchWindow.getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ IViewPart view = workbenchWindow.getActivePage().showView(PACKAGE_EXPLORER_ID, null,
+ IWorkbenchPage.VIEW_CREATE);
+ if (view != null)
+ {
+ Method method = view.getClass().getMethod("rootModeChanged", int.class);
+ method.invoke(view, 2);
+ }
+ }
+ catch (Exception ex)
+ {
+ Activator.log(ex);
+ }
+ }
+ });
+ }
+} // SetWorkingTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java
index a5d15fda65..9c19526c1c 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java
@@ -8,7 +8,9 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
import java.io.BufferedInputStream;
import java.io.File;
@@ -21,11 +23,11 @@ import java.net.URLConnection;
/**
* @author Eike Stepper
*/
-public final class Downloads
+public final class DownloadUtil
{
private static final int BUFFER_SIZE = 4096;
- public static File downloadURL(String url)
+ public static File downloadURL(String url, ProgressLog progress)
{
if (url.endsWith("/"))
{
@@ -39,7 +41,7 @@ public final class Downloads
File file = new File(tmp.getParentFile(), name + ".zip");
if (!file.exists())
{
- downloadURL(url, tmp);
+ downloadURL(url, tmp, progress);
tmp.renameTo(file);
}
@@ -51,7 +53,7 @@ public final class Downloads
}
}
- private static void downloadURL(String url, File file)
+ private static void downloadURL(String url, File file, ProgressLog progress)
{
final byte data[] = new byte[BUFFER_SIZE];
BufferedInputStream in = null;
@@ -89,7 +91,7 @@ public final class Downloads
int percent = Math.round(factor * read);
if (percent != lastPercent)
{
- Progress.log().addLine("Downloading " + fileName + " (" + percent + "%)");
+ progress.log("Downloading " + fileName + " (" + percent + "%)");
}
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java
index ca4bc423c0..1e584cca9e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java
@@ -8,7 +8,9 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -25,22 +27,12 @@ import java.util.List;
/**
* @author Eike Stepper
*/
-public final class Files
+public final class FileUtil
{
public static void rename(File from) throws IOException, InterruptedException
{
File to = new File(from.getParentFile(), from.getName() + "." + System.currentTimeMillis());
- for (int i = 0; i < 1000; i++)
- {
- if (from.renameTo(to))
- {
- return;
- }
-
- Thread.sleep(5);
- }
-
- throw new IOException("Could not rename '" + from.getAbsolutePath() + "' to '" + to.getAbsolutePath() + "'");
+ rename(from, to);
}
public static void rename(File from, File to) throws IOException, InterruptedException
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java
index 3b5032793d..158e84f017 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util;
import org.eclipse.core.runtime.Platform;
@@ -74,6 +74,8 @@ public abstract class OS
try
{
+ file.getParentFile().mkdirs();
+
out = new FileOutputStream(file);
Writer writer = new OutputStreamWriter(out);
@SuppressWarnings("resource")
@@ -99,6 +101,8 @@ public abstract class OS
public abstract String getEclipseExecutable();
+ public abstract String getEclipseIni();
+
public abstract String getGitPrefix();
public abstract String getJREsRoot();
@@ -158,6 +162,12 @@ public abstract class OS
}
@Override
+ public String getEclipseIni()
+ {
+ return "eclipse.ini";
+ }
+
+ @Override
public String getGitPrefix()
{
return "C:\\Program Files (x86)\\Git";
@@ -182,6 +192,12 @@ public abstract class OS
}
@Override
+ public String getEclipseIni()
+ {
+ return "Contents/MacOS/eclipse.ini";
+ }
+
+ @Override
public String getGitPrefix()
{
return "/";
@@ -206,6 +222,12 @@ public abstract class OS
}
@Override
+ public String getEclipseIni()
+ {
+ return "eclipse.ini";
+ }
+
+ @Override
public String getGitPrefix()
{
return "";
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java
new file mode 100644
index 0000000000..c4fa29fd7f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+ * 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+
+import org.eclipse.core.runtime.Plugin;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import java.util.IdentityHashMap;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public final class ServiceUtil extends Plugin
+{
+ private static BundleContext bundleContext = Activator.getBundleContext();
+
+ private static Map<Object, ServiceReference<?>> services = new IdentityHashMap<Object, ServiceReference<?>>();
+
+ public static <T> T getService(Class<T> serviceClass)
+ {
+ String serviceName = serviceClass.getName();
+ ServiceReference<?> serviceRef = bundleContext.getServiceReference(serviceName);
+ if (serviceRef == null)
+ {
+ throw new IllegalStateException("Missing OSGi service " + serviceName);
+ }
+
+ @SuppressWarnings("unchecked")
+ T service = (T)bundleContext.getService(serviceRef);
+ services.put(service, serviceRef);
+ return service;
+ }
+
+ public static void ungetService(Object service)
+ {
+ if (service != null)
+ {
+ ServiceReference<?> serviceRef = services.remove(service);
+ if (serviceRef != null)
+ {
+ bundleContext.ungetService(serviceRef);
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java
index ecd94719cb..8867ca7292 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java
@@ -10,21 +10,32 @@
*/
package org.eclipse.emf.cdo.releng.setup.util;
-import org.eclipse.emf.cdo.releng.setup.*;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
@@ -93,39 +104,87 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
protected SetupSwitch<Adapter> modelSwitch = new SetupSwitch<Adapter>()
{
@Override
+ public Adapter caseEclipseVersion(EclipseVersion object)
+ {
+ return createEclipseVersionAdapter();
+ }
+
+ @Override
+ public Adapter caseConfiguration(Configuration object)
+ {
+ return createConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseConfigurableItem(ConfigurableItem object)
+ {
+ return createConfigurableItemAdapter();
+ }
+
+ @Override
+ public Adapter caseProject(Project object)
+ {
+ return createProjectAdapter();
+ }
+
+ @Override
+ public Adapter caseBranch(Branch object)
+ {
+ return createBranchAdapter();
+ }
+
+ @Override
public Adapter casePreferences(Preferences object)
{
return createPreferencesAdapter();
}
@Override
- public Adapter caseLinkLocation(LinkLocation object)
+ public Adapter caseSetup(Setup object)
+ {
+ return createSetupAdapter();
+ }
+
+ @Override
+ public Adapter caseSetupTask(SetupTask object)
{
- return createLinkLocationAdapter();
+ return createSetupTaskAdapter();
}
@Override
- public Adapter caseToolInstallation(ToolInstallation object)
+ public Adapter caseSetupTaskContainer(SetupTaskContainer object)
{
- return createToolInstallationAdapter();
+ return createSetupTaskContainerAdapter();
}
@Override
- public Adapter caseToolPreference(ToolPreference object)
+ public Adapter caseCompoundSetupTask(CompoundSetupTask object)
{
- return createToolPreferenceAdapter();
+ return createCompoundSetupTaskAdapter();
}
@Override
- public Adapter caseEclipseVersion(EclipseVersion object)
+ public Adapter caseOneTimeSetupTask(OneTimeSetupTask object)
{
- return createEclipseVersionAdapter();
+ return createOneTimeSetupTaskAdapter();
}
@Override
- public Adapter caseDirectorCall(DirectorCall object)
+ public Adapter caseEclipseIniTask(EclipseIniTask object)
{
- return createDirectorCallAdapter();
+ return createEclipseIniTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseLinkLocationTask(LinkLocationTask object)
+ {
+ return createLinkLocationTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseP2Task(P2Task object)
+ {
+ return createP2TaskAdapter();
}
@Override
@@ -141,39 +200,57 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
@Override
- public Adapter caseConfiguration(Configuration object)
+ public Adapter caseBuckminsterImportTask(BuckminsterImportTask object)
{
- return createConfigurationAdapter();
+ return createBuckminsterImportTaskAdapter();
}
@Override
- public Adapter caseProject(Project object)
+ public Adapter caseApiBaselineTask(ApiBaselineTask object)
{
- return createProjectAdapter();
+ return createApiBaselineTaskAdapter();
}
@Override
- public Adapter caseBranch(Branch object)
+ public Adapter caseGitCloneTask(GitCloneTask object)
{
- return createBranchAdapter();
+ return createGitCloneTaskAdapter();
}
@Override
- public Adapter caseApiBaseline(ApiBaseline object)
+ public Adapter caseEclipsePreferenceTask(EclipsePreferenceTask object)
{
- return createApiBaselineAdapter();
+ return createEclipsePreferenceTaskAdapter();
}
@Override
- public Adapter caseGitClone(GitClone object)
+ public Adapter caseStringVariableTask(StringVariableTask object)
{
- return createGitCloneAdapter();
+ return createStringVariableTaskAdapter();
}
@Override
- public Adapter caseSetup(Setup object)
+ public Adapter caseWorkingSetTask(WorkingSetTask object)
{
- return createSetupAdapter();
+ return createWorkingSetTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseResourceCopyTask(ResourceCopyTask object)
+ {
+ return createResourceCopyTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseTextModifyTask(TextModifyTask object)
+ {
+ return createTextModifyTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseTextModification(TextModification object)
+ {
+ return createTextModificationAdapter();
}
@Override
@@ -243,16 +320,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask
+ * @generated
+ */
+ public Adapter createApiBaselineTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask
* @generated
*/
- public Adapter createToolInstallationAdapter()
+ public Adapter createGitCloneTaskAdapter()
{
return null;
}
@@ -273,16 +365,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task
+ * @generated
+ */
+ public Adapter createP2TaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask
* @generated
*/
- public Adapter createDirectorCallAdapter()
+ public Adapter createStringVariableTaskAdapter()
{
return null;
}
@@ -318,76 +425,166 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline
+ * @see org.eclipse.emf.cdo.releng.setup.Setup
* @generated
*/
- public Adapter createApiBaselineAdapter()
+ public Adapter createSetupAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask
* @generated
*/
- public Adapter createGitCloneAdapter()
+ public Adapter createSetupTaskAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.Setup
+ * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask
* @generated
*/
- public Adapter createSetupAdapter()
+ public Adapter createWorkingSetTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask
+ * @generated
+ */
+ public Adapter createResourceCopyTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask
+ * @generated
+ */
+ public Adapter createTextModifyTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification
+ * @generated
+ */
+ public Adapter createTextModificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask
+ * @generated
+ */
+ public Adapter createEclipseIniTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask
+ * @generated
+ */
+ public Adapter createCompoundSetupTaskAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference
+ * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask
* @generated
*/
- public Adapter createToolPreferenceAdapter()
+ public Adapter createOneTimeSetupTaskAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation
+ * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem
* @generated
*/
- public Adapter createLinkLocationAdapter()
+ public Adapter createConfigurableItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask
+ * @generated
+ */
+ public Adapter createBuckminsterImportTaskAdapter()
{
return null;
}
@@ -408,6 +605,51 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask
+ * @generated
+ */
+ public Adapter createLinkLocationTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer
+ * @generated
+ */
+ public Adapter createSetupTaskContainerAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask
+ * @generated
+ */
+ public Adapter createEclipsePreferenceTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
* Creates a new adapter for the default case.
* <!-- begin-user-doc -->
* This default implementation returns null.
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java
index 1ab1628d62..44af8cb514 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java
@@ -1,34 +1,35 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
- * 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.util;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
-
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
-
import java.util.List;
/**
@@ -108,68 +109,144 @@ public class SetupSwitch<T>
{
switch (classifierID)
{
+ case SetupPackage.ECLIPSE_VERSION:
+ {
+ EclipseVersion eclipseVersion = (EclipseVersion)theEObject;
+ T result = caseEclipseVersion(eclipseVersion);
+ if (result == null)
+ result = caseConfigurableItem(eclipseVersion);
+ if (result == null)
+ result = caseSetupTaskContainer(eclipseVersion);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.CONFIGURATION:
+ {
+ Configuration configuration = (Configuration)theEObject;
+ T result = caseConfiguration(configuration);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.CONFIGURABLE_ITEM:
+ {
+ ConfigurableItem configurableItem = (ConfigurableItem)theEObject;
+ T result = caseConfigurableItem(configurableItem);
+ if (result == null)
+ result = caseSetupTaskContainer(configurableItem);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.PROJECT:
+ {
+ Project project = (Project)theEObject;
+ T result = caseProject(project);
+ if (result == null)
+ result = caseConfigurableItem(project);
+ if (result == null)
+ result = caseSetupTaskContainer(project);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.BRANCH:
+ {
+ Branch branch = (Branch)theEObject;
+ T result = caseBranch(branch);
+ if (result == null)
+ result = caseConfigurableItem(branch);
+ if (result == null)
+ result = caseSetupTaskContainer(branch);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
case SetupPackage.PREFERENCES:
{
Preferences preferences = (Preferences)theEObject;
T result = casePreferences(preferences);
if (result == null)
- {
- result = caseToolInstallation(preferences);
- }
+ result = caseSetupTaskContainer(preferences);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.SETUP:
+ {
+ Setup setup = (Setup)theEObject;
+ T result = caseSetup(setup);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.LINK_LOCATION:
+ case SetupPackage.SETUP_TASK:
{
- LinkLocation linkLocation = (LinkLocation)theEObject;
- T result = caseLinkLocation(linkLocation);
+ SetupTask setupTask = (SetupTask)theEObject;
+ T result = caseSetupTask(setupTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.TOOL_INSTALLATION:
+ case SetupPackage.SETUP_TASK_CONTAINER:
{
- ToolInstallation toolInstallation = (ToolInstallation)theEObject;
- T result = caseToolInstallation(toolInstallation);
+ SetupTaskContainer setupTaskContainer = (SetupTaskContainer)theEObject;
+ T result = caseSetupTaskContainer(setupTaskContainer);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.TOOL_PREFERENCE:
+ case SetupPackage.COMPOUND_SETUP_TASK:
{
- ToolPreference toolPreference = (ToolPreference)theEObject;
- T result = caseToolPreference(toolPreference);
+ CompoundSetupTask compoundSetupTask = (CompoundSetupTask)theEObject;
+ T result = caseCompoundSetupTask(compoundSetupTask);
+ if (result == null)
+ result = caseSetupTask(compoundSetupTask);
+ if (result == null)
+ result = caseSetupTaskContainer(compoundSetupTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.ECLIPSE_VERSION:
+ case SetupPackage.ONE_TIME_SETUP_TASK:
{
- EclipseVersion eclipseVersion = (EclipseVersion)theEObject;
- T result = caseEclipseVersion(eclipseVersion);
+ OneTimeSetupTask oneTimeSetupTask = (OneTimeSetupTask)theEObject;
+ T result = caseOneTimeSetupTask(oneTimeSetupTask);
+ if (result == null)
+ result = caseSetupTask(oneTimeSetupTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.ECLIPSE_INI_TASK:
+ {
+ EclipseIniTask eclipseIniTask = (EclipseIniTask)theEObject;
+ T result = caseEclipseIniTask(eclipseIniTask);
+ if (result == null)
+ result = caseSetupTask(eclipseIniTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.DIRECTOR_CALL:
+ case SetupPackage.LINK_LOCATION_TASK:
{
- DirectorCall directorCall = (DirectorCall)theEObject;
- T result = caseDirectorCall(directorCall);
+ LinkLocationTask linkLocationTask = (LinkLocationTask)theEObject;
+ T result = caseLinkLocationTask(linkLocationTask);
+ if (result == null)
+ result = caseSetupTask(linkLocationTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.P2_TASK:
+ {
+ P2Task p2Task = (P2Task)theEObject;
+ T result = caseP2Task(p2Task);
+ if (result == null)
+ result = caseSetupTask(p2Task);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
case SetupPackage.INSTALLABLE_UNIT:
@@ -177,9 +254,7 @@ public class SetupSwitch<T>
InstallableUnit installableUnit = (InstallableUnit)theEObject;
T result = caseInstallableUnit(installableUnit);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
case SetupPackage.P2_REPOSITORY:
@@ -187,77 +262,95 @@ public class SetupSwitch<T>
P2Repository p2Repository = (P2Repository)theEObject;
T result = caseP2Repository(p2Repository);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.CONFIGURATION:
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK:
{
- Configuration configuration = (Configuration)theEObject;
- T result = caseConfiguration(configuration);
+ BuckminsterImportTask buckminsterImportTask = (BuckminsterImportTask)theEObject;
+ T result = caseBuckminsterImportTask(buckminsterImportTask);
+ if (result == null)
+ result = caseSetupTask(buckminsterImportTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.PROJECT:
+ case SetupPackage.API_BASELINE_TASK:
{
- Project project = (Project)theEObject;
- T result = caseProject(project);
+ ApiBaselineTask apiBaselineTask = (ApiBaselineTask)theEObject;
+ T result = caseApiBaselineTask(apiBaselineTask);
if (result == null)
- {
- result = caseToolInstallation(project);
- }
+ result = caseSetupTask(apiBaselineTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.BRANCH:
+ case SetupPackage.GIT_CLONE_TASK:
{
- Branch branch = (Branch)theEObject;
- T result = caseBranch(branch);
+ GitCloneTask gitCloneTask = (GitCloneTask)theEObject;
+ T result = caseGitCloneTask(gitCloneTask);
if (result == null)
- {
- result = caseToolInstallation(branch);
- }
+ result = caseSetupTask(gitCloneTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.API_BASELINE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK:
{
- ApiBaseline apiBaseline = (ApiBaseline)theEObject;
- T result = caseApiBaseline(apiBaseline);
+ EclipsePreferenceTask eclipsePreferenceTask = (EclipsePreferenceTask)theEObject;
+ T result = caseEclipsePreferenceTask(eclipsePreferenceTask);
+ if (result == null)
+ result = caseSetupTask(eclipsePreferenceTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.GIT_CLONE:
+ case SetupPackage.STRING_VARIABLE_TASK:
{
- GitClone gitClone = (GitClone)theEObject;
- T result = caseGitClone(gitClone);
+ StringVariableTask stringVariableTask = (StringVariableTask)theEObject;
+ T result = caseStringVariableTask(stringVariableTask);
+ if (result == null)
+ result = caseSetupTask(stringVariableTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.SETUP:
+ case SetupPackage.WORKING_SET_TASK:
{
- Setup setup = (Setup)theEObject;
- T result = caseSetup(setup);
+ WorkingSetTask workingSetTask = (WorkingSetTask)theEObject;
+ T result = caseWorkingSetTask(workingSetTask);
+ if (result == null)
+ result = caseSetupTask(workingSetTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.RESOURCE_COPY_TASK:
+ {
+ ResourceCopyTask resourceCopyTask = (ResourceCopyTask)theEObject;
+ T result = caseResourceCopyTask(resourceCopyTask);
+ if (result == null)
+ result = caseSetupTask(resourceCopyTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.TEXT_MODIFY_TASK:
+ {
+ TextModifyTask textModifyTask = (TextModifyTask)theEObject;
+ T result = caseTextModifyTask(textModifyTask);
+ if (result == null)
+ result = caseSetupTask(textModifyTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.TEXT_MODIFICATION:
+ {
+ TextModification textModification = (TextModification)theEObject;
+ T result = caseTextModification(textModification);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
default:
@@ -282,6 +375,54 @@ public class SetupSwitch<T>
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Link Location Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Link Location Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkLocationTask(LinkLocationTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Task Container</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Task Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSetupTaskContainer(SetupTaskContainer object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEclipsePreferenceTask(EclipsePreferenceTask object)
+ {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Eclipse Version</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
@@ -298,17 +439,17 @@ public class SetupSwitch<T>
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Director Call</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>P2 Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Director Call</em>'.
+ * @return the result of interpreting the object as an instance of '<em>P2 Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseDirectorCall(DirectorCall object)
+ public T caseP2Task(P2Task object)
{
return null;
}
@@ -362,129 +503,257 @@ public class SetupSwitch<T>
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Tool Installation</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Project</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Tool Installation</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Project</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseToolInstallation(ToolInstallation object)
+ public T caseProject(Project object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Project</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Branch</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Project</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Branch</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseProject(Project object)
+ public T caseBranch(Branch object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Branch</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Branch</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseBranch(Branch object)
+ public T caseApiBaselineTask(ApiBaselineTask object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Api Baseline</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Git Clone Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Api Baseline</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Git Clone Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseApiBaseline(ApiBaseline object)
+ public T caseGitCloneTask(GitCloneTask object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Git Clone</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Setup</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Git Clone</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Setup</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseGitClone(GitClone object)
+ public T caseSetup(Setup object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Setup</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Setup</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseSetup(Setup object)
+ public T caseSetupTask(SetupTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Working Set Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Working Set Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWorkingSetTask(WorkingSetTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseResourceCopyTask(ResourceCopyTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Text Modify Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Text Modify Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTextModifyTask(TextModifyTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Text Modification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Text Modification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTextModification(TextModification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEclipseIniTask(EclipseIniTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompoundSetupTask(CompoundSetupTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOneTimeSetupTask(OneTimeSetupTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configurable Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configurable Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurableItem(ConfigurableItem object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Tool Preference</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Tool Preference</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseToolPreference(ToolPreference object)
+ public T caseBuckminsterImportTask(BuckminsterImportTask object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Link Location</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>String Variable Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Link Location</em>'.
+ * @return the result of interpreting the object as an instance of '<em>String Variable Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseLinkLocation(LinkLocation object)
+ public T caseStringVariableTask(StringVariableTask object)
{
return null;
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java
new file mode 100644
index 0000000000..9213edf21f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others.
+ * 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup.util;
+
+/**
+ * @author Eike Stepper
+ */
+public interface StringExpander
+{
+ public String expandString(String string);
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java
new file mode 100644
index 0000000000..2ac501ded0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+ * 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.buckminster.runtime.MonitorUtils;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.pde.core.target.ITargetDefinition;
+import org.eclipse.pde.core.target.ITargetHandle;
+import org.eclipse.pde.core.target.ITargetLocation;
+import org.eclipse.pde.core.target.ITargetPlatformService;
+import org.eclipse.pde.core.target.LoadTargetDefinitionJob;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * @author Eike Stepper
+ */
+public final class TargetPlatformUtil
+{
+ public static boolean hasTargetPlatform(String targetPlatformPath, ProgressLog progress)
+ {
+ ITargetPlatformService service = null;
+
+ try
+ {
+ service = ServiceUtil.getService(ITargetPlatformService.class);
+ for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress)))
+ {
+ try
+ {
+ ITargetDefinition candidate = targetHandle.getTargetDefinition();
+ ITargetLocation[] containers = candidate.getTargetLocations();
+ if (containers == null || containers.length != 1)
+ {
+ continue;
+ }
+
+ String location = containers[0].getLocation(true);
+ if (targetPlatformPath.equals(location))
+ {
+ File file = new File(location);
+ // Check that it's a directory that contains not only "." and ".."
+ return file.isDirectory() && file.listFiles().length > 2;
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+ }
+ }
+ finally
+ {
+ ServiceUtil.ungetService(service);
+ }
+
+ return false;
+ }
+
+ public static void setTargetPlatform(String targetPlatformPath, String name, boolean active, ProgressLog progress)
+ throws Exception
+ {
+ ITargetPlatformService service = null;
+
+ try
+ {
+ service = ServiceUtil.getService(ITargetPlatformService.class);
+ ITargetDefinition target = null;
+ for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress)))
+ {
+ ITargetDefinition candidate = targetHandle.getTargetDefinition();
+ ITargetLocation[] containers = candidate.getTargetLocations();
+ if (containers == null || containers.length != 1)
+ {
+ continue;
+ }
+
+ if (targetPlatformPath.equals(containers[0].getLocation(true)))
+ {
+ ITargetHandle activeHandle = service.getWorkspaceTargetHandle();
+ if (activeHandle != null && activeHandle.equals(targetHandle))
+ {
+ // This target is already active. Nothing left to do here
+ return;
+ }
+
+ target = candidate;
+ break;
+ }
+ }
+
+ if (target == null)
+ {
+ target = service.newTarget();
+ ITargetLocation container = service.newDirectoryLocation(targetPlatformPath);
+ target.setTargetLocations(new ITargetLocation[] { container });
+ target.setName(name);
+ File tpDir = new File(targetPlatformPath);
+ if (!tpDir.isDirectory())
+ {
+ tpDir.mkdirs();
+ if (!tpDir.isDirectory())
+ {
+ throw new IOException("Unable to create target platform directory: " + tpDir);
+ }
+ }
+ }
+
+ service.saveTargetDefinition(target);
+ if (active)
+ {
+ setTargetActive(target, new ProgressLogMonitor(progress));
+ }
+ }
+ finally
+ {
+ ServiceUtil.ungetService(service);
+ }
+ }
+
+ public static void setTargetActive(ITargetDefinition target, IProgressMonitor monitor) throws Exception
+ {
+ MonitorUtils.begin(monitor, 100);
+
+ try
+ {
+ target.resolve(MonitorUtils.subMonitor(monitor, 50));
+
+ LoadTargetDefinitionJob job = new LoadTargetDefinitionJob(target);
+ IStatus status = job.run(MonitorUtils.subMonitor(monitor, 50));
+ if (status.getSeverity() == IStatus.ERROR)
+ {
+ throw new CoreException(status);
+ }
+ }
+ finally
+ {
+ MonitorUtils.done(monitor);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java
index 98fd11f850..3123c0f59f 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
import java.util.concurrent.atomic.AtomicReference;
@@ -21,5 +21,5 @@ public interface ProgressLog
public boolean isCancelled();
- public void addLine(String line);
+ public void log(String line);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java
index 2632d50b79..0999d3e609 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -42,20 +42,20 @@ public class ProgressLogMonitor extends ProgressMonitorWrapper
public void beginTask(String name, int totalWork)
{
super.beginTask(name, totalWork);
- log.addLine(name);
+ log.log(name);
}
@Override
public void setTaskName(String name)
{
super.setTaskName(name);
- log.addLine(name);
+ log.log(name);
}
@Override
public void subTask(String name)
{
super.subTask(name);
- log.addLine(name);
+ log.log(name);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java
index 40622966b3..02d15d6c34 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java
index 84283cec9f..99dd18c9a3 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
/**
* @author Eike Stepper

Back to the top