Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Stieber2014-04-25 15:35:54 +0000
committerUwe Stieber2014-04-25 15:39:10 +0000
commit49824c0cd3060498f0dc7988ef865b4b2f48d3d3 (patch)
treeb7a46714163e8301fdaab13ae87ee29a4daba6c7 /target_explorer/plugins/org.eclipse.tcf.te.launch.core/src
parent750fc538f67a55693b623621fbc8e37b189406f4 (diff)
downloadorg.eclipse.tcf-49824c0cd3060498f0dc7988ef865b4b2f48d3d3.tar.gz
org.eclipse.tcf-49824c0cd3060498f0dc7988ef865b4b2f48d3d3.tar.xz
org.eclipse.tcf-49824c0cd3060498f0dc7988ef865b4b2f48d3d3.zip
Releng: Fix copyrights
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.launch.core/src')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/activator/CoreBundleActivator.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/AdapterFactory.java96
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/SelectionContextAdapter.java122
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/LaunchConfigTypeBindingsManager.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/ILaunchBinding.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/IOverwritableLaunchBinding.java48
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchBinding.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeBinding.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeUnBinding.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/OverwritableLaunchBinding.java142
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/PropertyTester.java158
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/computers/SourcePathComputerDelegate.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/delegates/Launch.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/exceptions/LaunchServiceException.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/IReferencedProjectItem.java64
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/tracing/ITraceIds.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonFileTransferItemPersistenceDelegate.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonLaunchConfigAttributesPersistenceDelegate.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonReferencedProjectItemPersistenceDelegate.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchAttribute.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigHelper.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigSorter.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchManager.java838
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchSpecification.java532
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/delegates/DefaultLaunchManagerDelegate.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ICommonLaunchAttributes.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IFileTransferLaunchAttributes.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchAttribute.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchContextLaunchAttributes.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchManagerDelegate.java356
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchSpecification.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IReferencedProjectLaunchAttributes.java46
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/internal/ExtensionPointManager.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.java98
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.properties58
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/AbstractItemListXMLParser.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/DefaultPersistenceDelegate.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/LaunchConfigurationChangedEvent.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/filetransfer/FileTransfersPersistenceDelegate.java228
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/launchcontext/LaunchContextsPersistenceDelegate.java514
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItem.java144
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItemValidator.java98
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectsPersistenceDelegate.java228
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/IPreferenceKeys.java124
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/PreferencesInitializer.java88
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/properties/PropertyTester.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/AbstractSelectionContext.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/LaunchSelection.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/ProjectSelectionContext.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/RemoteSelectionContext.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ILaunchSelection.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IProjectSelectionContext.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IRemoteSelectionContext.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ISelectionContext.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/AbstractLaunchStep.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/RemoveLaunchStep.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/AbstractLaunchStepGroupIterator.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/LaunchContextIterator.java2
58 files changed, 2030 insertions, 2030 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/activator/CoreBundleActivator.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/activator/CoreBundleActivator.java
index 165ff93d7..2c46a2e8a 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/activator/CoreBundleActivator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/activator/CoreBundleActivator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2011, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/AdapterFactory.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/AdapterFactory.java
index 10b41799f..a16d1b25f 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/AdapterFactory.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/AdapterFactory.java
@@ -1,48 +1,48 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.adapters.internal;
-
-import org.eclipse.core.expressions.ICountable;
-import org.eclipse.core.expressions.IIterable;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
-
-/**
- * Launch core framework adapter factory implementation.
- */
-public class AdapterFactory implements IAdapterFactory {
-
- private static final Class<?>[] CLASSES = new Class[] {
- IIterable.class,
- ICountable.class
- };
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
- */
- @Override
- public Object getAdapter(Object adaptableObject, Class adapterType) {
- if (adaptableObject instanceof ISelectionContext) {
- if (IIterable.class.equals(adapterType) || ICountable.class.equals(adapterType)) {
- return new SelectionContextAdapter((ISelectionContext)adaptableObject);
- }
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
- */
- @Override
- public Class[] getAdapterList() {
- return CLASSES;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.adapters.internal;
+
+import org.eclipse.core.expressions.ICountable;
+import org.eclipse.core.expressions.IIterable;
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
+
+/**
+ * Launch core framework adapter factory implementation.
+ */
+public class AdapterFactory implements IAdapterFactory {
+
+ private static final Class<?>[] CLASSES = new Class[] {
+ IIterable.class,
+ ICountable.class
+ };
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
+ */
+ @Override
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adaptableObject instanceof ISelectionContext) {
+ if (IIterable.class.equals(adapterType) || ICountable.class.equals(adapterType)) {
+ return new SelectionContextAdapter((ISelectionContext)adaptableObject);
+ }
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+ */
+ @Override
+ public Class[] getAdapterList() {
+ return CLASSES;
+ }
+
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/SelectionContextAdapter.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/SelectionContextAdapter.java
index 177e26fec..724b92c53 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/SelectionContextAdapter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/adapters/internal/SelectionContextAdapter.java
@@ -1,61 +1,61 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.adapters.internal;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.eclipse.core.expressions.ICountable;
-import org.eclipse.core.expressions.IIterable;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
-
-/**
- * Selection context adapter implementation.
- */
-public class SelectionContextAdapter implements IIterable, ICountable {
- private final ISelectionContext context;
-
- /**
- * Constructor.
- *
- * @param context The selection context. Must not be <code>null</code>.
- */
- public SelectionContextAdapter(ISelectionContext context) {
- Assert.isNotNull(context);
- this.context = context;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.expressions.ICountable#count()
- */
- @Override
- public int count() {
- return context.getSelections() != null ? context.getSelections().length : 0;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.expressions.IIterable#iterator()
- */
- @Override
- public Iterator iterator() {
- Iterator<Object> iterator = null;
-
- if (context.getSelections() != null) {
- iterator = Arrays.asList(context.getSelections()).iterator();
- } else {
- iterator = Collections.emptyList().iterator();
- }
-
- return iterator;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.adapters.internal;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Iterator;
+
+import org.eclipse.core.expressions.ICountable;
+import org.eclipse.core.expressions.IIterable;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
+
+/**
+ * Selection context adapter implementation.
+ */
+public class SelectionContextAdapter implements IIterable, ICountable {
+ private final ISelectionContext context;
+
+ /**
+ * Constructor.
+ *
+ * @param context The selection context. Must not be <code>null</code>.
+ */
+ public SelectionContextAdapter(ISelectionContext context) {
+ Assert.isNotNull(context);
+ this.context = context;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.expressions.ICountable#count()
+ */
+ @Override
+ public int count() {
+ return context.getSelections() != null ? context.getSelections().length : 0;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.expressions.IIterable#iterator()
+ */
+ @Override
+ public Iterator iterator() {
+ Iterator<Object> iterator = null;
+
+ if (context.getSelections() != null) {
+ iterator = Arrays.asList(context.getSelections()).iterator();
+ } else {
+ iterator = Collections.emptyList().iterator();
+ }
+
+ return iterator;
+ }
+
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/LaunchConfigTypeBindingsManager.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/LaunchConfigTypeBindingsManager.java
index 821ea588d..ce9e63c47 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/LaunchConfigTypeBindingsManager.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/LaunchConfigTypeBindingsManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/ILaunchBinding.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/ILaunchBinding.java
index 4560467e3..19e1a32af 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/ILaunchBinding.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/ILaunchBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/IOverwritableLaunchBinding.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/IOverwritableLaunchBinding.java
index 4aed764b2..24ad6cb3a 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/IOverwritableLaunchBinding.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/interfaces/IOverwritableLaunchBinding.java
@@ -1,24 +1,24 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.bindings.interfaces;
-
-/**
- * Interface to be implemented by a overwritable launch configuration type binding element.
- */
-public interface IOverwritableLaunchBinding extends ILaunchBinding {
-
- /**
- * Returns if or if not this binding overwrites the given bindings id.
- *
- * @param id The id. Must not be <code>null</code>.
- * @return <code>True</code> if this binding overwrites the given bindings id, <code>false</code> if not.
- */
- public boolean overwrites(String id);
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.bindings.interfaces;
+
+/**
+ * Interface to be implemented by a overwritable launch configuration type binding element.
+ */
+public interface IOverwritableLaunchBinding extends ILaunchBinding {
+
+ /**
+ * Returns if or if not this binding overwrites the given bindings id.
+ *
+ * @param id The id. Must not be <code>null</code>.
+ * @return <code>True</code> if this binding overwrites the given bindings id, <code>false</code> if not.
+ */
+ public boolean overwrites(String id);
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchBinding.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchBinding.java
index 737d67dae..b25f0c082 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchBinding.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeBinding.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeBinding.java
index dc291ae8e..003f57057 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeBinding.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeUnBinding.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeUnBinding.java
index bf1b40c30..cb22b81ab 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeUnBinding.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/LaunchConfigTypeUnBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/OverwritableLaunchBinding.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/OverwritableLaunchBinding.java
index 21c73cdb1..ff17fdcdd 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/OverwritableLaunchBinding.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/OverwritableLaunchBinding.java
@@ -1,71 +1,71 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.bindings.internal;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tcf.te.launch.core.bindings.interfaces.IOverwritableLaunchBinding;
-
-/**
- * Overwritable launch configuration type binding element implementation.
- */
-public class OverwritableLaunchBinding extends LaunchBinding implements IOverwritableLaunchBinding {
-
- private String[] overwrites;
-
- /**
- * Constructor.
- *
- * @param id The launch binding id. Must not be <code>null</code>.
- * @param overwrites The overwritten launch binding id's or <code>null</code>.
- * @param modes The launch modes or <code>null</code>
- */
- public OverwritableLaunchBinding(String id, String overwrites, String modes) {
- super(id, modes);
-
- if (overwrites != null) {
- this.overwrites = overwrites.trim().split("( )*,( )*"); //$NON-NLS-1$
- }
- else {
- this.overwrites = new String[0];
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.bindings.interfaces.IOverwritableLaunchBinding#overwrites(java.lang.String)
- */
- @Override
- public boolean overwrites(String id) {
- Assert.isNotNull(id);
- for (String overwrite : overwrites) {
- if (id.equals(overwrite)) {
- return true;
- }
- }
- return overwrites.length == 0;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- StringBuffer toString = new StringBuffer();
-
- toString.append("OverwriteableLaunchBinding("); //$NON-NLS-1$
- toString.append(getId());
- toString.append(", launchModes"); //$NON-NLS-1$
- toString.append(toString(getModes()));
- toString.append(", overwrites"); //$NON-NLS-1$
- toString.append(toString(overwrites));
- toString.append(")"); //$NON-NLS-1$
-
- return toString.toString();
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.bindings.internal;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.tcf.te.launch.core.bindings.interfaces.IOverwritableLaunchBinding;
+
+/**
+ * Overwritable launch configuration type binding element implementation.
+ */
+public class OverwritableLaunchBinding extends LaunchBinding implements IOverwritableLaunchBinding {
+
+ private String[] overwrites;
+
+ /**
+ * Constructor.
+ *
+ * @param id The launch binding id. Must not be <code>null</code>.
+ * @param overwrites The overwritten launch binding id's or <code>null</code>.
+ * @param modes The launch modes or <code>null</code>
+ */
+ public OverwritableLaunchBinding(String id, String overwrites, String modes) {
+ super(id, modes);
+
+ if (overwrites != null) {
+ this.overwrites = overwrites.trim().split("( )*,( )*"); //$NON-NLS-1$
+ }
+ else {
+ this.overwrites = new String[0];
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.bindings.interfaces.IOverwritableLaunchBinding#overwrites(java.lang.String)
+ */
+ @Override
+ public boolean overwrites(String id) {
+ Assert.isNotNull(id);
+ for (String overwrite : overwrites) {
+ if (id.equals(overwrite)) {
+ return true;
+ }
+ }
+ return overwrites.length == 0;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ StringBuffer toString = new StringBuffer();
+
+ toString.append("OverwriteableLaunchBinding("); //$NON-NLS-1$
+ toString.append(getId());
+ toString.append(", launchModes"); //$NON-NLS-1$
+ toString.append(toString(getModes()));
+ toString.append(", overwrites"); //$NON-NLS-1$
+ toString.append(toString(overwrites));
+ toString.append(")"); //$NON-NLS-1$
+
+ return toString.toString();
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/PropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/PropertyTester.java
index 6b36311ac..c4153b910 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/PropertyTester.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/bindings/internal/PropertyTester.java
@@ -1,79 +1,79 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.bindings.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.tcf.te.launch.core.bindings.LaunchConfigTypeBindingsManager;
-import org.eclipse.tcf.te.launch.core.selection.LaunchSelection;
-import org.eclipse.tcf.te.launch.core.selection.ProjectSelectionContext;
-import org.eclipse.tcf.te.launch.core.selection.RemoteSelectionContext;
-import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
-import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode;
-import org.eclipse.tcf.te.runtime.model.interfaces.IModelNodeProvider;
-
-/**
- * Launch property tester.
- */
-public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
-
- /* (non-Javadoc)
- * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
- */
- @Override
- public boolean test(final Object receiver, String property, Object[] args, Object expectedValue) {
-
- if ("launchMode".equals(property) && expectedValue instanceof String) { //$NON-NLS-1$
- if (receiver instanceof ILaunch) {
- return ((ILaunch)receiver).getLaunchMode().equalsIgnoreCase((String)expectedValue);
- }
- }
- else if ("isValidLaunchConfigType".equals(property) && expectedValue instanceof String) { //$NON-NLS-1$
- ISelectionContext selContext = null;
- if (receiver instanceof IModelNodeProvider) {
- selContext = new RemoteSelectionContext(((IModelNodeProvider)receiver).getModelNode(), true);
- }
- else if (receiver instanceof IResource) {
- selContext = new ProjectSelectionContext(((IResource)receiver).getProject(), true);
- }
- else if (receiver instanceof IProject) {
- selContext = new ProjectSelectionContext((IProject)receiver, true);
- }
- else if (receiver instanceof IAdaptable) {
- IProject project = (IProject)((IAdaptable)receiver).getAdapter(IProject.class);
- if (project != null) {
- selContext = new ProjectSelectionContext(project, true);
- }
- else {
- IResource resource = (IResource)((IAdaptable)receiver).getAdapter(IResource.class);
- if (resource != null) {
- selContext = new ProjectSelectionContext(resource.getProject(), true);
- }
- else {
- IModelNode modelNode = (IModelNode)((IAdaptable)receiver).getAdapter(IModelNode.class);
- if (modelNode != null) {
- selContext = new RemoteSelectionContext(modelNode, true);
- }
- }
- }
- }
- if (selContext != null) {
- return LaunchConfigTypeBindingsManager.getInstance().isValidLaunchConfigType(
- (String)expectedValue,
- new LaunchSelection(
- (args != null && args.length > 0 ? args[0].toString() : null),
- selContext));
- }
- }
- return false;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.bindings.internal;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.tcf.te.launch.core.bindings.LaunchConfigTypeBindingsManager;
+import org.eclipse.tcf.te.launch.core.selection.LaunchSelection;
+import org.eclipse.tcf.te.launch.core.selection.ProjectSelectionContext;
+import org.eclipse.tcf.te.launch.core.selection.RemoteSelectionContext;
+import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
+import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode;
+import org.eclipse.tcf.te.runtime.model.interfaces.IModelNodeProvider;
+
+/**
+ * Launch property tester.
+ */
+public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
+ */
+ @Override
+ public boolean test(final Object receiver, String property, Object[] args, Object expectedValue) {
+
+ if ("launchMode".equals(property) && expectedValue instanceof String) { //$NON-NLS-1$
+ if (receiver instanceof ILaunch) {
+ return ((ILaunch)receiver).getLaunchMode().equalsIgnoreCase((String)expectedValue);
+ }
+ }
+ else if ("isValidLaunchConfigType".equals(property) && expectedValue instanceof String) { //$NON-NLS-1$
+ ISelectionContext selContext = null;
+ if (receiver instanceof IModelNodeProvider) {
+ selContext = new RemoteSelectionContext(((IModelNodeProvider)receiver).getModelNode(), true);
+ }
+ else if (receiver instanceof IResource) {
+ selContext = new ProjectSelectionContext(((IResource)receiver).getProject(), true);
+ }
+ else if (receiver instanceof IProject) {
+ selContext = new ProjectSelectionContext((IProject)receiver, true);
+ }
+ else if (receiver instanceof IAdaptable) {
+ IProject project = (IProject)((IAdaptable)receiver).getAdapter(IProject.class);
+ if (project != null) {
+ selContext = new ProjectSelectionContext(project, true);
+ }
+ else {
+ IResource resource = (IResource)((IAdaptable)receiver).getAdapter(IResource.class);
+ if (resource != null) {
+ selContext = new ProjectSelectionContext(resource.getProject(), true);
+ }
+ else {
+ IModelNode modelNode = (IModelNode)((IAdaptable)receiver).getAdapter(IModelNode.class);
+ if (modelNode != null) {
+ selContext = new RemoteSelectionContext(modelNode, true);
+ }
+ }
+ }
+ }
+ if (selContext != null) {
+ return LaunchConfigTypeBindingsManager.getInstance().isValidLaunchConfigType(
+ (String)expectedValue,
+ new LaunchSelection(
+ (args != null && args.length > 0 ? args[0].toString() : null),
+ selContext));
+ }
+ }
+ return false;
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/computers/SourcePathComputerDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/computers/SourcePathComputerDelegate.java
index 257435209..657796015 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/computers/SourcePathComputerDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/computers/SourcePathComputerDelegate.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2013, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/delegates/Launch.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/delegates/Launch.java
index e44419c71..f5e383e06 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/delegates/Launch.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/delegates/Launch.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/exceptions/LaunchServiceException.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/exceptions/LaunchServiceException.java
index fcf9f42e6..054527634 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/exceptions/LaunchServiceException.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/exceptions/LaunchServiceException.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/IReferencedProjectItem.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/IReferencedProjectItem.java
index 8411aeeee..49bca8000 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/IReferencedProjectItem.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/IReferencedProjectItem.java
@@ -1,32 +1,32 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tcf.te.launch.core.interfaces;
-
-import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
-
-/**
- * IFileTransferItem
- */
-public interface IReferencedProjectItem extends IPropertiesContainer {
-
- public static final String PROPERTY_ENABLED = "enabled"; //$NON-NLS-1$
- public static final String PROPERTY_PROJECT_NAME = "project_name"; //$NON-NLS-1$
-
- /**
- * Return <code>true</code> if the item is enabled.
- */
- public boolean isEnabled();
-
- /**
- * Return the project name.
- */
- public String getProjectName();
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.tcf.te.launch.core.interfaces;
+
+import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
+
+/**
+ * IFileTransferItem
+ */
+public interface IReferencedProjectItem extends IPropertiesContainer {
+
+ public static final String PROPERTY_ENABLED = "enabled"; //$NON-NLS-1$
+ public static final String PROPERTY_PROJECT_NAME = "project_name"; //$NON-NLS-1$
+
+ /**
+ * Return <code>true</code> if the item is enabled.
+ */
+ public boolean isEnabled();
+
+ /**
+ * Return the project name.
+ */
+ public String getProjectName();
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/tracing/ITraceIds.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/tracing/ITraceIds.java
index f33c10aad..088249338 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/tracing/ITraceIds.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/interfaces/tracing/ITraceIds.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonFileTransferItemPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonFileTransferItemPersistenceDelegate.java
index 39daa2472..78e9e1bfa 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonFileTransferItemPersistenceDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonFileTransferItemPersistenceDelegate.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonLaunchConfigAttributesPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonLaunchConfigAttributesPersistenceDelegate.java
index 2fc1317b5..4504eb398 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonLaunchConfigAttributesPersistenceDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonLaunchConfigAttributesPersistenceDelegate.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonReferencedProjectItemPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonReferencedProjectItemPersistenceDelegate.java
index 7041eff0f..af6824629 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonReferencedProjectItemPersistenceDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/internal/GsonReferencedProjectItemPersistenceDelegate.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchAttribute.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchAttribute.java
index f958cf0ff..4d98459e3 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchAttribute.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchAttribute.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigHelper.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigHelper.java
index e8d471eab..1fe7c4741 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigHelper.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigHelper.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigSorter.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigSorter.java
index 2be5b266c..c53a2a042 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigSorter.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchConfigSorter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchManager.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchManager.java
index 45022fd48..6fcc41ac0 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchManager.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchManager.java
@@ -1,419 +1,419 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.lm;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tcf.te.launch.core.activator.CoreBundleActivator;
-import org.eclipse.tcf.te.launch.core.bindings.LaunchConfigTypeBindingsManager;
-import org.eclipse.tcf.te.launch.core.exceptions.LaunchServiceException;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchAttribute;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchManagerDelegate;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
-import org.eclipse.tcf.te.launch.core.nls.Messages;
-
-/**
- * The Launch Manager is the management interface for the launch configuration storage layer.
- * Through the launch manager, launch configuration of the several types can be accessed, searched
- * and initialized. For every possible launch configuration type, a corresponding launch manager
- * delegate must be registered which is responsible for handling the corresponding attributes of the
- * specific launch configuration type. In the case the no launch manager delegate is registered for
- * a launch configuration type, the launch configuration will not be initialized and therefore will
- * not have any default attribute. If more than one launch manager delegates are contributed for the
- * same launch configuration type, the first registered launch manager delegates will be used and the
- * registration of any other delegate for this type will fail!
- */
-public class LaunchManager extends PlatformObject {
-
- /*
- * Thread save singleton instance creation.
- */
- private static class LazyInstanceHolder {
- public static LaunchManager instance = new LaunchManager();
- }
-
- /**
- * Returns the singleton instance for the manager.
- */
- public static LaunchManager getInstance() {
- return LazyInstanceHolder.instance;
- }
-
- /**
- * Constructor.
- */
- LaunchManager() {
- super();
- }
-
- /**
- * Returns the corresponding launch manager delegate instance responsible for the specified
- * launch configuration type. The method may return a default launch manager delegate if no
- * specific launch manager delegate is registered for the specified launch configuration type.
- *
- * @param launchConfigType The launch configuration type to get the launch manager delegate for.
- * Must not be <code>null</code>!
- * @param launchMode The launch mode to get the launch manager delegate for. Must not be
- * <code>null</code>.
- * @return The corresponding launch manager delegate instance.
- */
- public ILaunchManagerDelegate getLaunchManagerDelegate(ILaunchConfigurationType launchConfigType, String launchMode) {
- Assert.isNotNull(launchConfigType);
- Assert.isNotNull(launchMode);
- return LaunchConfigTypeBindingsManager.getInstance().getLaunchManagerDelegate(launchConfigType.getIdentifier(), launchMode);
- }
-
- /**
- * Returns the corresponding launch configuration type for the given launch configuration type
- * id and the given launch mode.
- *
- * @param launchConfigTypeId The unique id of the launch configuration type requested.
- * @param launchMode The launch mode the launch configuration type must support. See
- * <code>org.eclipse.debug.core.ILaunchManager</code> for details.
- * @return The corresponding launch configuration type instance or <code>null</code> if not
- * found or the specified mode is not supported.
- */
- public ILaunchConfigurationType getLaunchConfigType(String launchConfigTypeId, String launchMode) {
- ILaunchConfigurationType launchConfigType = DebugPlugin.getDefault().getLaunchManager()
- .getLaunchConfigurationType(launchConfigTypeId);
- if (launchConfigType != null && !launchConfigType.supportsMode(launchMode)) {
- launchConfigType = null;
- }
- return launchConfigType;
- }
-
- /**
- * Returns an fully initialized launch configuration. The launch configuration type and the
- * launch mode required to create or look up the launch configuration, are specified through the
- * given launch specification. Any launch configuration attribute of the certain type which is
- * not explicitly overwritten by an attribute specified through the given launch specification
- * will be initialized with default values.
- * <p>
- * If <code>forceNewConfig</code> is <code>false</code>, the method tries to find a matching
- * existing launch configuration. If no existing launch configuration can be found, a new
- * launch configuration will created instead.
- *
- * @param launchSpec A set of non default launch configuration attributes. Must not be
- * <code>null</code>, but the list of attributes may empty to get an launch
- * configuration with all attributes initialized to default values.
- * @param createNew If <code>true</code>, a new launch configuration will be created if no
- * available is found.
- * @return The launch configuration instance matching the given parameters.
- * @throws <code>LaunchServiceException</code> in case the launch configuration instance
- * cannot be created, found and/or modified. The exception message describes the failure
- * details.
- */
- public ILaunchConfiguration getLaunchConfiguration(ILaunchSpecification launchSpec, boolean createNew) throws LaunchServiceException {
- Assert.isNotNull(launchSpec);
-
- ILaunchConfiguration launchConfig = null;
- try {
- // get all launch configurations for launch configuration type id and launch mode
- String launchConfigTypeId = launchSpec.getLaunchConfigurationTypeId();
- String launchMode = launchSpec.getLaunchMode();
- ILaunchConfigurationType launchConfigType = getLaunchConfigType(launchConfigTypeId, launchMode);
- ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager()
- .getLaunchConfigurations(launchConfigType);
-
- // get list of fully and closest matching launch configurations
- ILaunchConfiguration[] matchingConfigs = getLaunchManagerDelegate(launchConfigType, launchMode)
- .getMatchingLaunchConfigurations(launchSpec, configs);
-
- // return best matching launch configuration
- if (matchingConfigs.length > 0) {
- launchConfig = matchingConfigs[0];
- }
- }
- catch (LaunchServiceException e) {
- if (e.getType() == LaunchServiceException.TYPE_MISSING_LAUNCH_SPEC_ATTR) {
- throw e;
- }
- }
- catch (CoreException e) {
- throw new LaunchServiceException(e.getMessage());
- }
- // return new launch configuration if no matching or best matching configuration is found
- if (createNew && launchConfig == null) {
- launchConfig = createOrUpdateLaunchConfiguration(null, launchSpec);
- }
- return launchConfig;
- }
-
- /**
- * Create a new or updates an existing launch configuration of the requested type and initialize
- * the configuration with the given launch specification. Attributes not listed by the given
- * launch specification will be initialized with default values.
- *
- * @param launchConfig A launch configuration to update or <code>null</code> if a new launch
- * configuration should be created.
- * @param launchSpec A set of non default launch configuration attributes.
- * @return The newly create launch configuration instance.
- *
- * @throws <code>LaunchServiceException</code> in case the launch configuration instance
- * cannot be created or mandatory attributes are missing in the launch specification.
- * The exception message describes the failure details.
- */
- public ILaunchConfiguration createOrUpdateLaunchConfiguration(ILaunchConfiguration launchConfig, ILaunchSpecification launchSpec) throws LaunchServiceException {
- return this.createOrUpdateLaunchConfiguration(launchConfig, launchSpec, true);
- }
-
- /**
- * Create a new or updates an existing launch configuration of the requested type and initialize
- * the configuration with the given launch specification. Attributes not listed by the given
- * launch specification will be initialized with default values.
- *
- * @param launchConfig A launch configuration to update or <code>null</code> if a new launch
- * configuration should be created.
- * @param launchSpec A set of non default launch configuration attributes.
- * @param validateSpec Validate the launch specification in the <code>launchSpec</code>
- * parameter. If <code>false</code>, it will attempt to create the launch
- * configuration even if some of the mandatory parameters are missing.
- * @return The newly create launch configuration instance.
- *
- * @throws <code>LaunchServiceException</code> in case the launch configuration instance
- * cannot be created or mandatory attributes are missing in the launch specification.
- * The exception message describes the failure details.
- *
- * @since 3.2
- */
- public ILaunchConfiguration createOrUpdateLaunchConfiguration(ILaunchConfiguration launchConfig, ILaunchSpecification launchSpec, boolean validateSpec) throws LaunchServiceException {
- Assert.isNotNull(launchSpec);
-
- String launchConfigTypeId = launchSpec.getLaunchConfigurationTypeId();
- String launchMode = launchSpec.getLaunchMode();
-
- ILaunchConfigurationType launchConfigType = getLaunchConfigType(launchConfigTypeId, launchMode);
- try {
- if (launchConfigType != null) {
- // get the launch manager delegate instance for the requested launch configuration
- // type
- ILaunchManagerDelegate delegate = getLaunchManagerDelegate(launchConfigType, launchMode);
- if (validateSpec) {
- delegate.validate(launchSpec);
- }
- ILaunchConfigurationWorkingCopy wc = null;
- if (launchConfig == null || !launchConfig.getType().getIdentifier()
- .equals(launchConfigTypeId)) {
- try {
- // create the launch configuration working copy instance
- wc = launchConfigType.newInstance(null, LaunchConfigHelper.getUniqueLaunchConfigName(launchSpec.getLaunchConfigName()));
- // initialize the launch configuration working copy
- delegate.initLaunchConfigAttributes(wc, launchSpec);
- // and save the launch configuration
- return wc.doSave();
- }
- catch (CoreException e) {
- throw new LaunchServiceException(Messages.LaunchManager_error_failedToCreateConfig);
- }
- }
- try {
- // get a launch configration working copy
- if (launchConfig instanceof ILaunchConfigurationWorkingCopy) {
- wc = (ILaunchConfigurationWorkingCopy) launchConfig;
- }
- else {
- wc = launchConfig.getWorkingCopy();
- }
- // update the launch configuration working copy
- delegate.updateLaunchConfigAttributes(wc, launchSpec);
- // and save the launch configuration
- return (wc.isDirty()) ? wc.doSave() : launchConfig;
- }
- catch (CoreException e) {
- throw new LaunchServiceException(NLS.bind(Messages.LaunchManager_error_failedToUpdateConfig, launchConfig.getName()));
- }
- }
- }
- catch (CoreException e) {
- // do nothing, because exception is thrown afterwards if this point is reached.
- }
- throw new LaunchServiceException(NLS.bind(Messages.LaunchManager_error_noLaunchConfigType, launchMode));
- }
-
- /**
- * Delete the specified launch configuration.
- * <p>
- * In case any error occurs during the delete, the exception is logged to the Eclipse error log.
- *
- * @param launchConfig The launch configuration to delete.
- */
- public void deleteLaunchConfiguration(ILaunchConfiguration launchConfig) {
- if (launchConfig != null) {
- try {
- launchConfig.delete();
- }
- catch (CoreException e) {
- IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
- Messages.LaunchManager_error_deleteLaunchConfig, e);
- Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
- }
- }
- }
-
- /**
- * Creates an exact copy of the given launch specification.
- * <p>
- * <b>Note:</b> The method returns always an launch specification which has not locked out
- * modifications. The corresponding read-only flag from the original is not duplicated to the
- * copy!
- *
- * @param launchSpec The launch specification to duplication.
- * @return A new <code>ILaunchSpecification</code> instance containing the same data as the
- * original, or <code>null</code>.
- */
- public ILaunchSpecification duplicate(ILaunchSpecification launchSpec) {
- if (launchSpec != null) {
- ILaunchSpecification newLaunchSpec = new LaunchSpecification(launchSpec.getLaunchConfigurationTypeId(), launchSpec.getLaunchMode());
- if (!launchSpec.isEmpty()) {
- ILaunchAttribute[] attributes = launchSpec.getAllAttributes();
- for (ILaunchAttribute attribute : attributes) {
- newLaunchSpec.addAttribute(attribute.getKey(), attribute.getValue());
- }
- }
- return newLaunchSpec;
- }
- return null;
- }
-
- /**
- * Validates a launch configuration.
- *
- * @param launchConfig The launch configuration to validate.
- * @param launchMode The launch mode. Can be <code>null</code>, in this case the launch configuration
- * is valid when valid for all supported modes.
- * @return <code>true</code>, if the launch configuration is valid and can be executed (launched).
- */
- public boolean validate(ILaunchConfiguration launchConfig, String launchMode) {
- try {
- if (launchMode == null) {
- boolean valid = false;
- for (String mode : LaunchConfigHelper.getLaunchConfigTypeModes(launchConfig.getType(), false)) {
- if (launchConfig.supportsMode(mode) && validate(launchConfig, mode)) {
- valid = true;
- }
- }
- return valid;
- }
- ILaunchManagerDelegate delegate = getLaunchManagerDelegate(launchConfig.getType(), launchMode);
- try {
- delegate.validate(launchMode, launchConfig);
- }
- catch (LaunchServiceException e) {
- return false;
- }
-
- }
- catch (CoreException e) {
- }
- return true;
- }
-
- /**
- * Transform the specified launch configuration into a corresponding launch specification
- * object. If <code>withDefaultAttributes</code> is not set, the corresponding launch manager
- * delegate is called to determine if an attribute has a default value or not. If the attribute
- * has an default value, this attribute is not copied to the launch specification. If
- * <code>withDefaultAttributes</code> is set, all attributes are copied to the launch
- * specification object.
- *
- * @param launchConfig The launch configuration. Must not be <code>null</code>.
- * @param launchMode The launch mode the launch specification should be for. See
- * <code>ILaunchManager</code> for details.
- * @param withDefaultAttributes Set to <code>true</code> to copy attributes with default value
- * as well, <code>false</code> otherwise.
- *
- * @return The corresponding launch specification object or <code>null</code>.
- *
- * @throws <code>LaunchServiceException</code> in case the launch configuration could not be
- * transformed to a launch specification. The exception message describes the failure
- * details.
- */
- public ILaunchSpecification createSpecFromConfig(ILaunchConfiguration launchConfig, String launchMode, boolean withDefaultAttributes) throws LaunchServiceException {
- Assert.isNotNull(launchConfig);
-
- ILaunchSpecification spec = null;
- try {
- // extract the launch configuration type
- ILaunchConfigurationType type = launchConfig.getType();
- spec = new LaunchSpecification(type.getIdentifier(), launchMode);
- // get the launch manager delegate for the specific type
- ILaunchManagerDelegate delegate = getLaunchManagerDelegate(type, launchMode);
- // get all the launch configuration attributes
- Map<String, Object> attributes = launchConfig.getAttributes();
- // loop over all listed attributes and copy them to the specification
- Iterator<Entry<String, Object>> iterator = attributes.entrySet().iterator();
- while (iterator.hasNext()) {
- Entry<String, Object> entry = iterator.next();
- if (withDefaultAttributes) {
- // include the default attributes. So, just copy the stuff over.
- spec.addAttribute(entry.getKey(), entry.getValue());
- }
- else {
- // exclude the default attributes. We have to find out if the attribute is
- // set with default value.
- Object attributeValue = entry.getValue();
- if (!delegate.isDefaultAttribute(entry.getKey(), attributeValue, attributeValue, spec, launchConfig, launchMode)) {
- spec.addAttribute(entry.getKey(), attributeValue);
- }
- }
- }
- }
- catch (CoreException e) {
- spec = null;
- throw new LaunchServiceException(e);
- }
- return spec;
- }
-
- /**
- * Launch the specified launch configuration using the corresponding delegate for the specified
- * launch mode. If <code>buildBeforeLaunch</code> is set to <code>true</code>, the workspace
- * will be build before the launch.
- *
- * @param launchConfig The launch configuration to launch. Must not be <code>null</code>!
- * @param launchMode The launch mode (@see <code>org.eclipse.debug.core.ILaunchManager</code>.
- * Must not be <code>null</code>!
- * @param buildBeforeLaunch Specify <code>true</code> to build the workspace before launch,
- * <code>false</code> otherwise.
- *
- * @return The corresponding <code>ILaunch</code> object associated with this launch.
- *
- * @throws <code>LaunchServiceException</code> in case of any problem occurs during the launch sequence.
- */
- public ILaunch launch(ILaunchConfiguration launchConfig, String launchMode, boolean buildBeforeLaunch, IProgressMonitor monitor) throws LaunchServiceException {
- Assert.isNotNull(launchConfig);
- Assert.isNotNull(launchMode);
-
- try {
- ILaunchManagerDelegate delegate = getLaunchManagerDelegate(launchConfig.getType(), launchMode);
- delegate.validate(launchMode, launchConfig);
- return launchConfig.launch(launchMode, monitor, buildBeforeLaunch);
- }
- catch (CoreException e) {
- // re-pack into a launch service exception
- throw new LaunchServiceException(e);
- }
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.lm;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.PlatformObject;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.tcf.te.launch.core.activator.CoreBundleActivator;
+import org.eclipse.tcf.te.launch.core.bindings.LaunchConfigTypeBindingsManager;
+import org.eclipse.tcf.te.launch.core.exceptions.LaunchServiceException;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchAttribute;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchManagerDelegate;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
+import org.eclipse.tcf.te.launch.core.nls.Messages;
+
+/**
+ * The Launch Manager is the management interface for the launch configuration storage layer.
+ * Through the launch manager, launch configuration of the several types can be accessed, searched
+ * and initialized. For every possible launch configuration type, a corresponding launch manager
+ * delegate must be registered which is responsible for handling the corresponding attributes of the
+ * specific launch configuration type. In the case the no launch manager delegate is registered for
+ * a launch configuration type, the launch configuration will not be initialized and therefore will
+ * not have any default attribute. If more than one launch manager delegates are contributed for the
+ * same launch configuration type, the first registered launch manager delegates will be used and the
+ * registration of any other delegate for this type will fail!
+ */
+public class LaunchManager extends PlatformObject {
+
+ /*
+ * Thread save singleton instance creation.
+ */
+ private static class LazyInstanceHolder {
+ public static LaunchManager instance = new LaunchManager();
+ }
+
+ /**
+ * Returns the singleton instance for the manager.
+ */
+ public static LaunchManager getInstance() {
+ return LazyInstanceHolder.instance;
+ }
+
+ /**
+ * Constructor.
+ */
+ LaunchManager() {
+ super();
+ }
+
+ /**
+ * Returns the corresponding launch manager delegate instance responsible for the specified
+ * launch configuration type. The method may return a default launch manager delegate if no
+ * specific launch manager delegate is registered for the specified launch configuration type.
+ *
+ * @param launchConfigType The launch configuration type to get the launch manager delegate for.
+ * Must not be <code>null</code>!
+ * @param launchMode The launch mode to get the launch manager delegate for. Must not be
+ * <code>null</code>.
+ * @return The corresponding launch manager delegate instance.
+ */
+ public ILaunchManagerDelegate getLaunchManagerDelegate(ILaunchConfigurationType launchConfigType, String launchMode) {
+ Assert.isNotNull(launchConfigType);
+ Assert.isNotNull(launchMode);
+ return LaunchConfigTypeBindingsManager.getInstance().getLaunchManagerDelegate(launchConfigType.getIdentifier(), launchMode);
+ }
+
+ /**
+ * Returns the corresponding launch configuration type for the given launch configuration type
+ * id and the given launch mode.
+ *
+ * @param launchConfigTypeId The unique id of the launch configuration type requested.
+ * @param launchMode The launch mode the launch configuration type must support. See
+ * <code>org.eclipse.debug.core.ILaunchManager</code> for details.
+ * @return The corresponding launch configuration type instance or <code>null</code> if not
+ * found or the specified mode is not supported.
+ */
+ public ILaunchConfigurationType getLaunchConfigType(String launchConfigTypeId, String launchMode) {
+ ILaunchConfigurationType launchConfigType = DebugPlugin.getDefault().getLaunchManager()
+ .getLaunchConfigurationType(launchConfigTypeId);
+ if (launchConfigType != null && !launchConfigType.supportsMode(launchMode)) {
+ launchConfigType = null;
+ }
+ return launchConfigType;
+ }
+
+ /**
+ * Returns an fully initialized launch configuration. The launch configuration type and the
+ * launch mode required to create or look up the launch configuration, are specified through the
+ * given launch specification. Any launch configuration attribute of the certain type which is
+ * not explicitly overwritten by an attribute specified through the given launch specification
+ * will be initialized with default values.
+ * <p>
+ * If <code>forceNewConfig</code> is <code>false</code>, the method tries to find a matching
+ * existing launch configuration. If no existing launch configuration can be found, a new
+ * launch configuration will created instead.
+ *
+ * @param launchSpec A set of non default launch configuration attributes. Must not be
+ * <code>null</code>, but the list of attributes may empty to get an launch
+ * configuration with all attributes initialized to default values.
+ * @param createNew If <code>true</code>, a new launch configuration will be created if no
+ * available is found.
+ * @return The launch configuration instance matching the given parameters.
+ * @throws <code>LaunchServiceException</code> in case the launch configuration instance
+ * cannot be created, found and/or modified. The exception message describes the failure
+ * details.
+ */
+ public ILaunchConfiguration getLaunchConfiguration(ILaunchSpecification launchSpec, boolean createNew) throws LaunchServiceException {
+ Assert.isNotNull(launchSpec);
+
+ ILaunchConfiguration launchConfig = null;
+ try {
+ // get all launch configurations for launch configuration type id and launch mode
+ String launchConfigTypeId = launchSpec.getLaunchConfigurationTypeId();
+ String launchMode = launchSpec.getLaunchMode();
+ ILaunchConfigurationType launchConfigType = getLaunchConfigType(launchConfigTypeId, launchMode);
+ ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager()
+ .getLaunchConfigurations(launchConfigType);
+
+ // get list of fully and closest matching launch configurations
+ ILaunchConfiguration[] matchingConfigs = getLaunchManagerDelegate(launchConfigType, launchMode)
+ .getMatchingLaunchConfigurations(launchSpec, configs);
+
+ // return best matching launch configuration
+ if (matchingConfigs.length > 0) {
+ launchConfig = matchingConfigs[0];
+ }
+ }
+ catch (LaunchServiceException e) {
+ if (e.getType() == LaunchServiceException.TYPE_MISSING_LAUNCH_SPEC_ATTR) {
+ throw e;
+ }
+ }
+ catch (CoreException e) {
+ throw new LaunchServiceException(e.getMessage());
+ }
+ // return new launch configuration if no matching or best matching configuration is found
+ if (createNew && launchConfig == null) {
+ launchConfig = createOrUpdateLaunchConfiguration(null, launchSpec);
+ }
+ return launchConfig;
+ }
+
+ /**
+ * Create a new or updates an existing launch configuration of the requested type and initialize
+ * the configuration with the given launch specification. Attributes not listed by the given
+ * launch specification will be initialized with default values.
+ *
+ * @param launchConfig A launch configuration to update or <code>null</code> if a new launch
+ * configuration should be created.
+ * @param launchSpec A set of non default launch configuration attributes.
+ * @return The newly create launch configuration instance.
+ *
+ * @throws <code>LaunchServiceException</code> in case the launch configuration instance
+ * cannot be created or mandatory attributes are missing in the launch specification.
+ * The exception message describes the failure details.
+ */
+ public ILaunchConfiguration createOrUpdateLaunchConfiguration(ILaunchConfiguration launchConfig, ILaunchSpecification launchSpec) throws LaunchServiceException {
+ return this.createOrUpdateLaunchConfiguration(launchConfig, launchSpec, true);
+ }
+
+ /**
+ * Create a new or updates an existing launch configuration of the requested type and initialize
+ * the configuration with the given launch specification. Attributes not listed by the given
+ * launch specification will be initialized with default values.
+ *
+ * @param launchConfig A launch configuration to update or <code>null</code> if a new launch
+ * configuration should be created.
+ * @param launchSpec A set of non default launch configuration attributes.
+ * @param validateSpec Validate the launch specification in the <code>launchSpec</code>
+ * parameter. If <code>false</code>, it will attempt to create the launch
+ * configuration even if some of the mandatory parameters are missing.
+ * @return The newly create launch configuration instance.
+ *
+ * @throws <code>LaunchServiceException</code> in case the launch configuration instance
+ * cannot be created or mandatory attributes are missing in the launch specification.
+ * The exception message describes the failure details.
+ *
+ * @since 3.2
+ */
+ public ILaunchConfiguration createOrUpdateLaunchConfiguration(ILaunchConfiguration launchConfig, ILaunchSpecification launchSpec, boolean validateSpec) throws LaunchServiceException {
+ Assert.isNotNull(launchSpec);
+
+ String launchConfigTypeId = launchSpec.getLaunchConfigurationTypeId();
+ String launchMode = launchSpec.getLaunchMode();
+
+ ILaunchConfigurationType launchConfigType = getLaunchConfigType(launchConfigTypeId, launchMode);
+ try {
+ if (launchConfigType != null) {
+ // get the launch manager delegate instance for the requested launch configuration
+ // type
+ ILaunchManagerDelegate delegate = getLaunchManagerDelegate(launchConfigType, launchMode);
+ if (validateSpec) {
+ delegate.validate(launchSpec);
+ }
+ ILaunchConfigurationWorkingCopy wc = null;
+ if (launchConfig == null || !launchConfig.getType().getIdentifier()
+ .equals(launchConfigTypeId)) {
+ try {
+ // create the launch configuration working copy instance
+ wc = launchConfigType.newInstance(null, LaunchConfigHelper.getUniqueLaunchConfigName(launchSpec.getLaunchConfigName()));
+ // initialize the launch configuration working copy
+ delegate.initLaunchConfigAttributes(wc, launchSpec);
+ // and save the launch configuration
+ return wc.doSave();
+ }
+ catch (CoreException e) {
+ throw new LaunchServiceException(Messages.LaunchManager_error_failedToCreateConfig);
+ }
+ }
+ try {
+ // get a launch configration working copy
+ if (launchConfig instanceof ILaunchConfigurationWorkingCopy) {
+ wc = (ILaunchConfigurationWorkingCopy) launchConfig;
+ }
+ else {
+ wc = launchConfig.getWorkingCopy();
+ }
+ // update the launch configuration working copy
+ delegate.updateLaunchConfigAttributes(wc, launchSpec);
+ // and save the launch configuration
+ return (wc.isDirty()) ? wc.doSave() : launchConfig;
+ }
+ catch (CoreException e) {
+ throw new LaunchServiceException(NLS.bind(Messages.LaunchManager_error_failedToUpdateConfig, launchConfig.getName()));
+ }
+ }
+ }
+ catch (CoreException e) {
+ // do nothing, because exception is thrown afterwards if this point is reached.
+ }
+ throw new LaunchServiceException(NLS.bind(Messages.LaunchManager_error_noLaunchConfigType, launchMode));
+ }
+
+ /**
+ * Delete the specified launch configuration.
+ * <p>
+ * In case any error occurs during the delete, the exception is logged to the Eclipse error log.
+ *
+ * @param launchConfig The launch configuration to delete.
+ */
+ public void deleteLaunchConfiguration(ILaunchConfiguration launchConfig) {
+ if (launchConfig != null) {
+ try {
+ launchConfig.delete();
+ }
+ catch (CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
+ Messages.LaunchManager_error_deleteLaunchConfig, e);
+ Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
+ }
+ }
+ }
+
+ /**
+ * Creates an exact copy of the given launch specification.
+ * <p>
+ * <b>Note:</b> The method returns always an launch specification which has not locked out
+ * modifications. The corresponding read-only flag from the original is not duplicated to the
+ * copy!
+ *
+ * @param launchSpec The launch specification to duplication.
+ * @return A new <code>ILaunchSpecification</code> instance containing the same data as the
+ * original, or <code>null</code>.
+ */
+ public ILaunchSpecification duplicate(ILaunchSpecification launchSpec) {
+ if (launchSpec != null) {
+ ILaunchSpecification newLaunchSpec = new LaunchSpecification(launchSpec.getLaunchConfigurationTypeId(), launchSpec.getLaunchMode());
+ if (!launchSpec.isEmpty()) {
+ ILaunchAttribute[] attributes = launchSpec.getAllAttributes();
+ for (ILaunchAttribute attribute : attributes) {
+ newLaunchSpec.addAttribute(attribute.getKey(), attribute.getValue());
+ }
+ }
+ return newLaunchSpec;
+ }
+ return null;
+ }
+
+ /**
+ * Validates a launch configuration.
+ *
+ * @param launchConfig The launch configuration to validate.
+ * @param launchMode The launch mode. Can be <code>null</code>, in this case the launch configuration
+ * is valid when valid for all supported modes.
+ * @return <code>true</code>, if the launch configuration is valid and can be executed (launched).
+ */
+ public boolean validate(ILaunchConfiguration launchConfig, String launchMode) {
+ try {
+ if (launchMode == null) {
+ boolean valid = false;
+ for (String mode : LaunchConfigHelper.getLaunchConfigTypeModes(launchConfig.getType(), false)) {
+ if (launchConfig.supportsMode(mode) && validate(launchConfig, mode)) {
+ valid = true;
+ }
+ }
+ return valid;
+ }
+ ILaunchManagerDelegate delegate = getLaunchManagerDelegate(launchConfig.getType(), launchMode);
+ try {
+ delegate.validate(launchMode, launchConfig);
+ }
+ catch (LaunchServiceException e) {
+ return false;
+ }
+
+ }
+ catch (CoreException e) {
+ }
+ return true;
+ }
+
+ /**
+ * Transform the specified launch configuration into a corresponding launch specification
+ * object. If <code>withDefaultAttributes</code> is not set, the corresponding launch manager
+ * delegate is called to determine if an attribute has a default value or not. If the attribute
+ * has an default value, this attribute is not copied to the launch specification. If
+ * <code>withDefaultAttributes</code> is set, all attributes are copied to the launch
+ * specification object.
+ *
+ * @param launchConfig The launch configuration. Must not be <code>null</code>.
+ * @param launchMode The launch mode the launch specification should be for. See
+ * <code>ILaunchManager</code> for details.
+ * @param withDefaultAttributes Set to <code>true</code> to copy attributes with default value
+ * as well, <code>false</code> otherwise.
+ *
+ * @return The corresponding launch specification object or <code>null</code>.
+ *
+ * @throws <code>LaunchServiceException</code> in case the launch configuration could not be
+ * transformed to a launch specification. The exception message describes the failure
+ * details.
+ */
+ public ILaunchSpecification createSpecFromConfig(ILaunchConfiguration launchConfig, String launchMode, boolean withDefaultAttributes) throws LaunchServiceException {
+ Assert.isNotNull(launchConfig);
+
+ ILaunchSpecification spec = null;
+ try {
+ // extract the launch configuration type
+ ILaunchConfigurationType type = launchConfig.getType();
+ spec = new LaunchSpecification(type.getIdentifier(), launchMode);
+ // get the launch manager delegate for the specific type
+ ILaunchManagerDelegate delegate = getLaunchManagerDelegate(type, launchMode);
+ // get all the launch configuration attributes
+ Map<String, Object> attributes = launchConfig.getAttributes();
+ // loop over all listed attributes and copy them to the specification
+ Iterator<Entry<String, Object>> iterator = attributes.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Entry<String, Object> entry = iterator.next();
+ if (withDefaultAttributes) {
+ // include the default attributes. So, just copy the stuff over.
+ spec.addAttribute(entry.getKey(), entry.getValue());
+ }
+ else {
+ // exclude the default attributes. We have to find out if the attribute is
+ // set with default value.
+ Object attributeValue = entry.getValue();
+ if (!delegate.isDefaultAttribute(entry.getKey(), attributeValue, attributeValue, spec, launchConfig, launchMode)) {
+ spec.addAttribute(entry.getKey(), attributeValue);
+ }
+ }
+ }
+ }
+ catch (CoreException e) {
+ spec = null;
+ throw new LaunchServiceException(e);
+ }
+ return spec;
+ }
+
+ /**
+ * Launch the specified launch configuration using the corresponding delegate for the specified
+ * launch mode. If <code>buildBeforeLaunch</code> is set to <code>true</code>, the workspace
+ * will be build before the launch.
+ *
+ * @param launchConfig The launch configuration to launch. Must not be <code>null</code>!
+ * @param launchMode The launch mode (@see <code>org.eclipse.debug.core.ILaunchManager</code>.
+ * Must not be <code>null</code>!
+ * @param buildBeforeLaunch Specify <code>true</code> to build the workspace before launch,
+ * <code>false</code> otherwise.
+ *
+ * @return The corresponding <code>ILaunch</code> object associated with this launch.
+ *
+ * @throws <code>LaunchServiceException</code> in case of any problem occurs during the launch sequence.
+ */
+ public ILaunch launch(ILaunchConfiguration launchConfig, String launchMode, boolean buildBeforeLaunch, IProgressMonitor monitor) throws LaunchServiceException {
+ Assert.isNotNull(launchConfig);
+ Assert.isNotNull(launchMode);
+
+ try {
+ ILaunchManagerDelegate delegate = getLaunchManagerDelegate(launchConfig.getType(), launchMode);
+ delegate.validate(launchMode, launchConfig);
+ return launchConfig.launch(launchMode, monitor, buildBeforeLaunch);
+ }
+ catch (CoreException e) {
+ // re-pack into a launch service exception
+ throw new LaunchServiceException(e);
+ }
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchSpecification.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchSpecification.java
index 114d0160a..c227eb95e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchSpecification.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/LaunchSpecification.java
@@ -1,266 +1,266 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.lm;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchAttribute;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
-import org.eclipse.tcf.te.launch.core.nls.Messages;
-
-/**
- * Default launch specification implementation.
- */
-public class LaunchSpecification extends PlatformObject implements ILaunchSpecification {
- private final Map<String, ILaunchAttribute> attributes = new Hashtable<String, ILaunchAttribute>();
- private final String typeId;
- private final String mode;
- private String launchConfigName;
- private String launchActionLabel;
- private boolean readOnly;
- private boolean valid = true;
- private String errorMessage = null;
-
- /**
- * Constructor.
- * <p>
- * Creates a new launch specification instance for the specified launch configuration type
- * id and the specified launch mode. The launch specification is not locked against modifications
- * by default!
- *
- * @param typeId The launch configuration type id of the described launch configuration.
- * @param mode The launch mode. @see <code>org.eclipse.debug.core.ILaunchManager</code>!
- */
- public LaunchSpecification(String typeId, String mode) {
- super();
- this.typeId = typeId;
- this.mode = mode;
- this.attributes.clear();
- setReadOnly(false);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchConfigurationTypeId()
- */
- @Override
- public String getLaunchConfigurationTypeId() {
- return typeId;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchMode()
- */
- @Override
- public String getLaunchMode() {
- return mode;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isReadOnly()
- */
- @Override
- public boolean isReadOnly() {
- return readOnly;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setReadOnly(boolean)
- */
- @Override
- public void setReadOnly(boolean readOnly) {
- this.readOnly = readOnly;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#addAttribute(java.lang.String, java.lang.Object)
- */
- @Override
- public void addAttribute(String key, Object value) {
- addAttribute(key, value, false);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#addAttribute(java.lang.String, java.lang.Object, boolean)
- */
- @Override
- public void addAttribute(String key, Object value, boolean createOnly) {
- Assert.isNotNull(key);
-
- if (isReadOnly()) {
- return;
- }
-
- // Attention: If the value == null -> remove the key from the map!!!
- if (value != null) {
- attributes.put(key, new LaunchAttribute(key, value, createOnly));
- }
- else {
- attributes.remove(key);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#hasAttribute(java.lang.String)
- */
- @Override
- public boolean hasAttribute(String key) {
- Assert.isNotNull(key);
- return attributes.containsKey(key);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#removeAttribute(java.lang.String)
- */
- @Override
- public Object removeAttribute(String key) {
- Assert.isNotNull(key);
- if (isReadOnly()) {
- return null;
- }
- return attributes.remove(key);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isCreateOnlyAttribute(java.lang.String)
- */
- @Override
- public boolean isCreateOnlyAttribute(String key) {
- Assert.isNotNull(key);
- ILaunchAttribute attribute = getAttribute(key);
- return attribute != null && attribute.isCreateOnlyAttribute();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getAttribute(java.lang.String, java.lang.Object)
- */
- @Override
- public Object getAttribute(String key, Object defaultValue) {
- Assert.isNotNull(key);
- ILaunchAttribute attribute = getAttribute(key);
- return (attribute != null && attribute.getValue() != null) ? attribute.getValue() : defaultValue;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#clear()
- */
- @Override
- public void clear() {
- if (isReadOnly()) {
- return;
- }
- attributes.clear();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#size()
- */
- @Override
- public int size() {
- return attributes.size();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isEmpty()
- */
- @Override
- public boolean isEmpty() {
- return attributes.isEmpty();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getAttribute(java.lang.String)
- */
- @Override
- public ILaunchAttribute getAttribute(String key) {
- Assert.isNotNull(key);
- return attributes.get(key);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getAllAttributes()
- */
- @Override
- public ILaunchAttribute[] getAllAttributes() {
- return attributes.values().toArray(new ILaunchAttribute[attributes.size()]);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchActionLabel()
- */
- @Override
- public String getLaunchActionLabel() {
- return launchActionLabel;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchConfigName()
- */
- @Override
- public String getLaunchConfigName() {
- return launchConfigName != null ? launchConfigName : Messages.DefaultLaunchManagerDelegate_defaultLaunchName;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setLaunchActionLabel(java.lang.String)
- */
- @Override
- public void setLaunchActionLabel(String launchActionLabel) {
- this.launchActionLabel = launchActionLabel;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setLaunchConfigName(java.lang.String)
- */
- @Override
- public void setLaunchConfigName(String launchConfigName) {
- this.launchConfigName = LaunchConfigHelper.getUniqueLaunchConfigName(launchConfigName);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isValid()
- */
- @Override
- public boolean isValid() {
- return valid;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setIsValid(boolean)
- */
- @Override
- public void setIsValid(boolean valid) {
- this.valid = valid;
- if (valid) {
- errorMessage = null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getErrorMessage()
- */
- @Override
- public String getErrorMessage() {
- if (!isValid()) {
- return errorMessage;
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setErrorMessage(java.lang.String)
- */
- @Override
- public void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.lm;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.PlatformObject;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchAttribute;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
+import org.eclipse.tcf.te.launch.core.nls.Messages;
+
+/**
+ * Default launch specification implementation.
+ */
+public class LaunchSpecification extends PlatformObject implements ILaunchSpecification {
+ private final Map<String, ILaunchAttribute> attributes = new Hashtable<String, ILaunchAttribute>();
+ private final String typeId;
+ private final String mode;
+ private String launchConfigName;
+ private String launchActionLabel;
+ private boolean readOnly;
+ private boolean valid = true;
+ private String errorMessage = null;
+
+ /**
+ * Constructor.
+ * <p>
+ * Creates a new launch specification instance for the specified launch configuration type
+ * id and the specified launch mode. The launch specification is not locked against modifications
+ * by default!
+ *
+ * @param typeId The launch configuration type id of the described launch configuration.
+ * @param mode The launch mode. @see <code>org.eclipse.debug.core.ILaunchManager</code>!
+ */
+ public LaunchSpecification(String typeId, String mode) {
+ super();
+ this.typeId = typeId;
+ this.mode = mode;
+ this.attributes.clear();
+ setReadOnly(false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchConfigurationTypeId()
+ */
+ @Override
+ public String getLaunchConfigurationTypeId() {
+ return typeId;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchMode()
+ */
+ @Override
+ public String getLaunchMode() {
+ return mode;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isReadOnly()
+ */
+ @Override
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setReadOnly(boolean)
+ */
+ @Override
+ public void setReadOnly(boolean readOnly) {
+ this.readOnly = readOnly;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#addAttribute(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void addAttribute(String key, Object value) {
+ addAttribute(key, value, false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#addAttribute(java.lang.String, java.lang.Object, boolean)
+ */
+ @Override
+ public void addAttribute(String key, Object value, boolean createOnly) {
+ Assert.isNotNull(key);
+
+ if (isReadOnly()) {
+ return;
+ }
+
+ // Attention: If the value == null -> remove the key from the map!!!
+ if (value != null) {
+ attributes.put(key, new LaunchAttribute(key, value, createOnly));
+ }
+ else {
+ attributes.remove(key);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#hasAttribute(java.lang.String)
+ */
+ @Override
+ public boolean hasAttribute(String key) {
+ Assert.isNotNull(key);
+ return attributes.containsKey(key);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#removeAttribute(java.lang.String)
+ */
+ @Override
+ public Object removeAttribute(String key) {
+ Assert.isNotNull(key);
+ if (isReadOnly()) {
+ return null;
+ }
+ return attributes.remove(key);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isCreateOnlyAttribute(java.lang.String)
+ */
+ @Override
+ public boolean isCreateOnlyAttribute(String key) {
+ Assert.isNotNull(key);
+ ILaunchAttribute attribute = getAttribute(key);
+ return attribute != null && attribute.isCreateOnlyAttribute();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getAttribute(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public Object getAttribute(String key, Object defaultValue) {
+ Assert.isNotNull(key);
+ ILaunchAttribute attribute = getAttribute(key);
+ return (attribute != null && attribute.getValue() != null) ? attribute.getValue() : defaultValue;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#clear()
+ */
+ @Override
+ public void clear() {
+ if (isReadOnly()) {
+ return;
+ }
+ attributes.clear();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#size()
+ */
+ @Override
+ public int size() {
+ return attributes.size();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isEmpty()
+ */
+ @Override
+ public boolean isEmpty() {
+ return attributes.isEmpty();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getAttribute(java.lang.String)
+ */
+ @Override
+ public ILaunchAttribute getAttribute(String key) {
+ Assert.isNotNull(key);
+ return attributes.get(key);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getAllAttributes()
+ */
+ @Override
+ public ILaunchAttribute[] getAllAttributes() {
+ return attributes.values().toArray(new ILaunchAttribute[attributes.size()]);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchActionLabel()
+ */
+ @Override
+ public String getLaunchActionLabel() {
+ return launchActionLabel;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getLaunchConfigName()
+ */
+ @Override
+ public String getLaunchConfigName() {
+ return launchConfigName != null ? launchConfigName : Messages.DefaultLaunchManagerDelegate_defaultLaunchName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setLaunchActionLabel(java.lang.String)
+ */
+ @Override
+ public void setLaunchActionLabel(String launchActionLabel) {
+ this.launchActionLabel = launchActionLabel;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setLaunchConfigName(java.lang.String)
+ */
+ @Override
+ public void setLaunchConfigName(String launchConfigName) {
+ this.launchConfigName = LaunchConfigHelper.getUniqueLaunchConfigName(launchConfigName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#isValid()
+ */
+ @Override
+ public boolean isValid() {
+ return valid;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setIsValid(boolean)
+ */
+ @Override
+ public void setIsValid(boolean valid) {
+ this.valid = valid;
+ if (valid) {
+ errorMessage = null;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#getErrorMessage()
+ */
+ @Override
+ public String getErrorMessage() {
+ if (!isValid()) {
+ return errorMessage;
+ }
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification#setErrorMessage(java.lang.String)
+ */
+ @Override
+ public void setErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/delegates/DefaultLaunchManagerDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/delegates/DefaultLaunchManagerDelegate.java
index cf7146bda..1bb8118fc 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/delegates/DefaultLaunchManagerDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/delegates/DefaultLaunchManagerDelegate.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ICommonLaunchAttributes.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ICommonLaunchAttributes.java
index ca67f2af2..e33e89915 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ICommonLaunchAttributes.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ICommonLaunchAttributes.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IFileTransferLaunchAttributes.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IFileTransferLaunchAttributes.java
index f7e027152..bd81c6094 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IFileTransferLaunchAttributes.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IFileTransferLaunchAttributes.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchAttribute.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchAttribute.java
index bbb7d9a30..8a1eda91e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchAttribute.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchAttribute.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchContextLaunchAttributes.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchContextLaunchAttributes.java
index 8eddee6ec..9bb6b7d23 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchContextLaunchAttributes.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchContextLaunchAttributes.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchManagerDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchManagerDelegate.java
index 7a012a753..7992f341f 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchManagerDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchManagerDelegate.java
@@ -1,178 +1,178 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.lm.interfaces;
-
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.tcf.te.launch.core.exceptions.LaunchServiceException;
-import org.eclipse.tcf.te.launch.core.selection.interfaces.ILaunchSelection;
-import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
-import org.eclipse.tcf.te.runtime.interfaces.extensions.IExecutableExtension;
-
-/**
- * Describes the interface used by the <code>LaunchManager</code> to create
- * and manage the different types of possible launch configurations in a generalized,
- * simple and abstract way. A <code>ILaunchManagerDelegate</code> is strictly bound
- * to one specific <code>ILaunchConfigurationType</code> and is capable and responsible
- * to initializing and handling launch configurations of this type. A launch manager
- * delegate is contribute through the <code>org.eclipse.tcf.te.launch.core.launchManagerDelegates</code>
- * extension point!
- */
-public interface ILaunchManagerDelegate extends IExecutableExtension {
-
- public static final int SITUATION_BEFORE_LAUNCH = 0;
- public static final int SITUATION_AFTER_LAUNCH_FAILED = 99;
-
- // Constants for signaling the type of found matches
-
- /**
- * Constant to signal to ignore this matching.
- */
- public final static int IGNORE = -1;
-
- /**
- * Constant to signal a no match (no attributes are matching).
- */
- public final static int NO_MATCH = 0;
-
- /**
- * Constant to signal a partial match (some attributes are matching).
- */
- public final static int PARTIAL_MATCH = 1;
-
- /**
- * Constant to signal a full match (all attributes are matching).
- */
- public final static int FULL_MATCH = 2;
-
- /**
- * Initialize the launch configuration attributes based on the specified launch specification. If an launch
- * configuration attribute is not listed within the specified launch specification, the corresponding attribute is
- * initialized with an default.
- *
- * @param wc The launch configuration working copy to initialize. Must not be <code>null</code>!
- * @param launchSpec The launch specification. Must not be <code>null</code>!
- */
- public void initLaunchConfigAttributes(ILaunchConfigurationWorkingCopy wc, ILaunchSpecification launchSpec);
-
- /**
- * Updates a found launch configuration based on the specified launch specification.
- *
- * @param wc The launch configuration working copy to initialize. Must not be <code>null</code>!
- * @param launchSpec The launch specification. Must not be <code>null</code>!
- */
- public void updateLaunchConfigAttributes(ILaunchConfigurationWorkingCopy wc, ILaunchSpecification launchSpec);
-
- /**
- * Updates a launch configuration with the given selection context.
- *
- * @param wc The launch configuration working copy.
- * @param selContext The selection context to use for the update.
- * @param replace <code>true</code> if existing attribute values should be replaced,
- * <code>false</code> if data from the selection context should be added to existing values.
- */
- public void updateLaunchConfig(ILaunchConfigurationWorkingCopy wc, ISelectionContext selContext, boolean replace);
-
- /**
- * Test the specified attribute if or if not the specified attribute value is an default value or not.
- *
- * @param attributeKey The attribute key/name. Must not be <code>null</code>.
- * @param specValue The launch specification value.
- * @param confValue The launch configuration value.
- * @param launchSpec The launch specification which is the source of the <code>specValue</code>. Must not be <code>null</code>.
- * @param launchConfig The launch configuration which is the source of the <code>confValue</code>. Must not be <code>null</code>.
- * @param launchMode The launch mode. Default values may differ for different launch modes. Must not be
- * <code>null</code>!
- * @return <code>true</code> if the specified attribute value is the default value, <code>false</code> otherwise.
- */
- public boolean isDefaultAttribute(String attributeKey, Object specValue, Object confValue, ILaunchSpecification launchSpec, ILaunchConfiguration launchConfig, String launchMode);
-
- /**
- * Returns a ranked list of launch configurations that best matches the given launch specification. In case of no
- * results or a given empty or null launch configuration list an empty list should be returned. If no launch specification
- * is given, the original list should be returned.
- *
- * @param launchSpec The launch specification the launch configurations should match.
- * @param launchConfigs A full list of launch configurations to check for best matching.
- * @return List of matching launch configurations starting with best match on first index.
- * @throws LaunchServiceException
- */
- public ILaunchConfiguration[] getMatchingLaunchConfigurations(ILaunchSpecification launchSpec, ILaunchConfiguration[] launchConfigs) throws LaunchServiceException;
-
- /**
- * Get the default launch configuration name.
- *
- * @param launchSpec The launch specification to create a default name for the launch config. Must not be <code>null</code>.
- * @return The default launch configuration name.
- */
- public String getDefaultLaunchName(ILaunchSpecification launchSpec);
-
- /**
- * Get the default launch configuration name.
- *
- * @param launchConfig The launch configuration to create a default name for the launch config. Must not be <code>null</code>.
- * @return The default launch configuration name.
- */
- public String getDefaultLaunchName(ILaunchConfiguration launchConfig);
-
- /**
- * Get a launch specification with all needed attributes for this delegate taken from the selection to find or create a new
- * launch configuration.
- *
- * @param launchConfigTypeId The launch configuration type id.
- * @param launchSelection The selected contexts.
- * @return Launch specification with attributes set from selected contexts.
- * @throws LaunchServiceException
- */
- public ILaunchSpecification getLaunchSpecification(String launchConfigTypeId, ILaunchSelection launchSelection);
-
- /**
- * Validates a launch specification.
- *
- * @param launchSpec The launch specification to validate.
- * @throws LaunchServiceException If validation fails with further information about the reason (e.q. missing
- * attributes)
- */
- public void validate(ILaunchSpecification launchSpec) throws LaunchServiceException;
-
- /**
- * Validates a launch configuration.
- *
- * @param launchConfig The launch configuration to validate.
- * @param launchMode The launch mode.
- * @throws LaunchServiceException If validation fails with further information about the reason (e.q. missing
- * attributes)
- */
- public void validate(String launchMode, ILaunchConfiguration launchConfig) throws LaunchServiceException;
-
- /**
- * Returns true, if the launch dialog should be shown before launch.
- * @param situation The situation (before launch, after launch, ..)
- */
- public boolean showLaunchDialog(int situation);
-
- /**
- * Return <code>true</code> if the two selection contexts are equal
- * for this launch configuration type.
- *
- * @param ctx1 The first launch selection context or <code>null</code>.
- * @param ctx2 The second launch selection context or <code>null</code>.
- *
- * @return <code>True</code> if the two selection contexts are equal for this launch configuration type, <code>false</code> otherwise.
- */
- public boolean equals(ISelectionContext ctx1, ISelectionContext ctx2);
-
- /**
- * Get a short description for the given launch configuration.
- * @param config The launch configuration.
- * @return The description.
- */
- public String getDescription(ILaunchConfiguration config);
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.lm.interfaces;
+
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.tcf.te.launch.core.exceptions.LaunchServiceException;
+import org.eclipse.tcf.te.launch.core.selection.interfaces.ILaunchSelection;
+import org.eclipse.tcf.te.launch.core.selection.interfaces.ISelectionContext;
+import org.eclipse.tcf.te.runtime.interfaces.extensions.IExecutableExtension;
+
+/**
+ * Describes the interface used by the <code>LaunchManager</code> to create
+ * and manage the different types of possible launch configurations in a generalized,
+ * simple and abstract way. A <code>ILaunchManagerDelegate</code> is strictly bound
+ * to one specific <code>ILaunchConfigurationType</code> and is capable and responsible
+ * to initializing and handling launch configurations of this type. A launch manager
+ * delegate is contribute through the <code>org.eclipse.tcf.te.launch.core.launchManagerDelegates</code>
+ * extension point!
+ */
+public interface ILaunchManagerDelegate extends IExecutableExtension {
+
+ public static final int SITUATION_BEFORE_LAUNCH = 0;
+ public static final int SITUATION_AFTER_LAUNCH_FAILED = 99;
+
+ // Constants for signaling the type of found matches
+
+ /**
+ * Constant to signal to ignore this matching.
+ */
+ public final static int IGNORE = -1;
+
+ /**
+ * Constant to signal a no match (no attributes are matching).
+ */
+ public final static int NO_MATCH = 0;
+
+ /**
+ * Constant to signal a partial match (some attributes are matching).
+ */
+ public final static int PARTIAL_MATCH = 1;
+
+ /**
+ * Constant to signal a full match (all attributes are matching).
+ */
+ public final static int FULL_MATCH = 2;
+
+ /**
+ * Initialize the launch configuration attributes based on the specified launch specification. If an launch
+ * configuration attribute is not listed within the specified launch specification, the corresponding attribute is
+ * initialized with an default.
+ *
+ * @param wc The launch configuration working copy to initialize. Must not be <code>null</code>!
+ * @param launchSpec The launch specification. Must not be <code>null</code>!
+ */
+ public void initLaunchConfigAttributes(ILaunchConfigurationWorkingCopy wc, ILaunchSpecification launchSpec);
+
+ /**
+ * Updates a found launch configuration based on the specified launch specification.
+ *
+ * @param wc The launch configuration working copy to initialize. Must not be <code>null</code>!
+ * @param launchSpec The launch specification. Must not be <code>null</code>!
+ */
+ public void updateLaunchConfigAttributes(ILaunchConfigurationWorkingCopy wc, ILaunchSpecification launchSpec);
+
+ /**
+ * Updates a launch configuration with the given selection context.
+ *
+ * @param wc The launch configuration working copy.
+ * @param selContext The selection context to use for the update.
+ * @param replace <code>true</code> if existing attribute values should be replaced,
+ * <code>false</code> if data from the selection context should be added to existing values.
+ */
+ public void updateLaunchConfig(ILaunchConfigurationWorkingCopy wc, ISelectionContext selContext, boolean replace);
+
+ /**
+ * Test the specified attribute if or if not the specified attribute value is an default value or not.
+ *
+ * @param attributeKey The attribute key/name. Must not be <code>null</code>.
+ * @param specValue The launch specification value.
+ * @param confValue The launch configuration value.
+ * @param launchSpec The launch specification which is the source of the <code>specValue</code>. Must not be <code>null</code>.
+ * @param launchConfig The launch configuration which is the source of the <code>confValue</code>. Must not be <code>null</code>.
+ * @param launchMode The launch mode. Default values may differ for different launch modes. Must not be
+ * <code>null</code>!
+ * @return <code>true</code> if the specified attribute value is the default value, <code>false</code> otherwise.
+ */
+ public boolean isDefaultAttribute(String attributeKey, Object specValue, Object confValue, ILaunchSpecification launchSpec, ILaunchConfiguration launchConfig, String launchMode);
+
+ /**
+ * Returns a ranked list of launch configurations that best matches the given launch specification. In case of no
+ * results or a given empty or null launch configuration list an empty list should be returned. If no launch specification
+ * is given, the original list should be returned.
+ *
+ * @param launchSpec The launch specification the launch configurations should match.
+ * @param launchConfigs A full list of launch configurations to check for best matching.
+ * @return List of matching launch configurations starting with best match on first index.
+ * @throws LaunchServiceException
+ */
+ public ILaunchConfiguration[] getMatchingLaunchConfigurations(ILaunchSpecification launchSpec, ILaunchConfiguration[] launchConfigs) throws LaunchServiceException;
+
+ /**
+ * Get the default launch configuration name.
+ *
+ * @param launchSpec The launch specification to create a default name for the launch config. Must not be <code>null</code>.
+ * @return The default launch configuration name.
+ */
+ public String getDefaultLaunchName(ILaunchSpecification launchSpec);
+
+ /**
+ * Get the default launch configuration name.
+ *
+ * @param launchConfig The launch configuration to create a default name for the launch config. Must not be <code>null</code>.
+ * @return The default launch configuration name.
+ */
+ public String getDefaultLaunchName(ILaunchConfiguration launchConfig);
+
+ /**
+ * Get a launch specification with all needed attributes for this delegate taken from the selection to find or create a new
+ * launch configuration.
+ *
+ * @param launchConfigTypeId The launch configuration type id.
+ * @param launchSelection The selected contexts.
+ * @return Launch specification with attributes set from selected contexts.
+ * @throws LaunchServiceException
+ */
+ public ILaunchSpecification getLaunchSpecification(String launchConfigTypeId, ILaunchSelection launchSelection);
+
+ /**
+ * Validates a launch specification.
+ *
+ * @param launchSpec The launch specification to validate.
+ * @throws LaunchServiceException If validation fails with further information about the reason (e.q. missing
+ * attributes)
+ */
+ public void validate(ILaunchSpecification launchSpec) throws LaunchServiceException;
+
+ /**
+ * Validates a launch configuration.
+ *
+ * @param launchConfig The launch configuration to validate.
+ * @param launchMode The launch mode.
+ * @throws LaunchServiceException If validation fails with further information about the reason (e.q. missing
+ * attributes)
+ */
+ public void validate(String launchMode, ILaunchConfiguration launchConfig) throws LaunchServiceException;
+
+ /**
+ * Returns true, if the launch dialog should be shown before launch.
+ * @param situation The situation (before launch, after launch, ..)
+ */
+ public boolean showLaunchDialog(int situation);
+
+ /**
+ * Return <code>true</code> if the two selection contexts are equal
+ * for this launch configuration type.
+ *
+ * @param ctx1 The first launch selection context or <code>null</code>.
+ * @param ctx2 The second launch selection context or <code>null</code>.
+ *
+ * @return <code>True</code> if the two selection contexts are equal for this launch configuration type, <code>false</code> otherwise.
+ */
+ public boolean equals(ISelectionContext ctx1, ISelectionContext ctx2);
+
+ /**
+ * Get a short description for the given launch configuration.
+ * @param config The launch configuration.
+ * @return The description.
+ */
+ public String getDescription(ILaunchConfiguration config);
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchSpecification.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchSpecification.java
index bb497f719..2f8207f5e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchSpecification.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/ILaunchSpecification.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IReferencedProjectLaunchAttributes.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IReferencedProjectLaunchAttributes.java
index 23b52749d..2d213cb37 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IReferencedProjectLaunchAttributes.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/interfaces/IReferencedProjectLaunchAttributes.java
@@ -1,23 +1,23 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.lm.interfaces;
-
-/**
- * Defines the launch configuration attribute id's to access the launch step contexts.
- */
-public interface IReferencedProjectLaunchAttributes {
-
- /**
- * Launch configuration attribute: The referenced project items the launch is operating with. Use
- * {@link ReferencedProjectsPersistanceDelegate} to access
- * this attribute within a launch configuration.
- */
- public static final String ATTR_REFERENCED_PROJECTS = ICommonLaunchAttributes.ATTR_PREFIX + ".referencedProjects"; //$NON-NLS-1$
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.lm.interfaces;
+
+/**
+ * Defines the launch configuration attribute id's to access the launch step contexts.
+ */
+public interface IReferencedProjectLaunchAttributes {
+
+ /**
+ * Launch configuration attribute: The referenced project items the launch is operating with. Use
+ * {@link ReferencedProjectsPersistanceDelegate} to access
+ * this attribute within a launch configuration.
+ */
+ public static final String ATTR_REFERENCED_PROJECTS = ICommonLaunchAttributes.ATTR_PREFIX + ".referencedProjects"; //$NON-NLS-1$
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/internal/ExtensionPointManager.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/internal/ExtensionPointManager.java
index c0f42f4c3..a0a3ba1b6 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/internal/ExtensionPointManager.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/lm/internal/ExtensionPointManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.java
index bc9670183..e1b921a22 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.java
@@ -1,49 +1,49 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.nls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Launch Core Plug-in externalized strings management.
- */
-public class Messages extends NLS {
-
- // The plug-in resource bundle name
- private static final String BUNDLE_NAME = "org.eclipse.tcf.te.launch.core.nls.Messages"; //$NON-NLS-1$
-
- /**
- * Static constructor.
- */
- static {
- // Load message values from bundle file
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- // **** Declare externalized string id's down here *****
-
- public static String DefaultLaunchManagerDelegate_defaultLaunchName;
-
- public static String LaunchManager_error_invalidExtensionPoint;
- public static String LaunchManager_error_noLaunchConfigType;
- public static String LaunchManager_error_failedToCreateConfig;
- public static String LaunchManager_error_failedToUpdateConfig;
- public static String LaunchManager_error_deleteLaunchConfig;
-
- public static String LaunchConfigurationDelegate_error_failedToGetStepper;
- public static String LaunchConfigurationDelegate_error_failedToCloneStepper;
- public static String LaunchConfigurationDelegate_error_inaccessibleReferencedProject;
-
- public static String AbstractLaunchConfigurationDelegate_scoped_incremental_build;
-
- public static String ReferencedProjectItemValidator_missingProject;
- public static String ReferencedProjectItemValidator_notExistingProject;
- public static String ReferencedProjectItemValidator_closedProject;
-}
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.nls;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * Launch Core Plug-in externalized strings management.
+ */
+public class Messages extends NLS {
+
+ // The plug-in resource bundle name
+ private static final String BUNDLE_NAME = "org.eclipse.tcf.te.launch.core.nls.Messages"; //$NON-NLS-1$
+
+ /**
+ * Static constructor.
+ */
+ static {
+ // Load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ // **** Declare externalized string id's down here *****
+
+ public static String DefaultLaunchManagerDelegate_defaultLaunchName;
+
+ public static String LaunchManager_error_invalidExtensionPoint;
+ public static String LaunchManager_error_noLaunchConfigType;
+ public static String LaunchManager_error_failedToCreateConfig;
+ public static String LaunchManager_error_failedToUpdateConfig;
+ public static String LaunchManager_error_deleteLaunchConfig;
+
+ public static String LaunchConfigurationDelegate_error_failedToGetStepper;
+ public static String LaunchConfigurationDelegate_error_failedToCloneStepper;
+ public static String LaunchConfigurationDelegate_error_inaccessibleReferencedProject;
+
+ public static String AbstractLaunchConfigurationDelegate_scoped_incremental_build;
+
+ public static String ReferencedProjectItemValidator_missingProject;
+ public static String ReferencedProjectItemValidator_notExistingProject;
+ public static String ReferencedProjectItemValidator_closedProject;
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.properties b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.properties
index bb3dcee10..ec06ab590 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.properties
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/nls/Messages.properties
@@ -1,29 +1,29 @@
-###############################################################################
-# Copyright (c) 2012 Wind River Systems, Inc. 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:
-# Wind River Systems - initial API and implementation
-###############################################################################
-
-DefaultLaunchManagerDelegate_defaultLaunchName=New configuration
-
-LaunchManager_error_invalidExtensionPoint=Failed to instantiate the executable extension from extension point ''{0}''.
-LaunchManager_error_noLaunchConfigType=No launch configuration type (id = ) is available for launch mode ''{0}''.
-LaunchManager_error_failedToCreateConfig=Failed to create and initialize new launch configuration.
-LaunchManager_error_failedToUpdateConfig=Failed to update existing launch configuration ''{0}''.
-LaunchManager_error_deleteLaunchConfig=Failed to delete launch configuration.
-
-LaunchConfigurationDelegate_error_failedToGetStepper=Failed to access stepper for launch configuration type ''{0}'' \
-and launch mode ''{1}''.
-LaunchConfigurationDelegate_error_failedToCloneStepper=Failed to clone stepper for launch configuration type ''{0}'' \
-and launch mode ''{1}''.
-LaunchConfigurationDelegate_error_inaccessibleReferencedProject=Failed to access project ''{0}''. The project is either missing or closed.
-
-AbstractLaunchConfigurationDelegate_scoped_incremental_build=Scoped incremental build before launch...
-
-ReferencedProjectItemValidator_missingProject = Missing project
-ReferencedProjectItemValidator_notExistingProject = Project does not exist
-ReferencedProjectItemValidator_closedProject = Project is closed
+###############################################################################
+# Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+# Wind River Systems - initial API and implementation
+###############################################################################
+
+DefaultLaunchManagerDelegate_defaultLaunchName=New configuration
+
+LaunchManager_error_invalidExtensionPoint=Failed to instantiate the executable extension from extension point ''{0}''.
+LaunchManager_error_noLaunchConfigType=No launch configuration type (id = ) is available for launch mode ''{0}''.
+LaunchManager_error_failedToCreateConfig=Failed to create and initialize new launch configuration.
+LaunchManager_error_failedToUpdateConfig=Failed to update existing launch configuration ''{0}''.
+LaunchManager_error_deleteLaunchConfig=Failed to delete launch configuration.
+
+LaunchConfigurationDelegate_error_failedToGetStepper=Failed to access stepper for launch configuration type ''{0}'' \
+and launch mode ''{1}''.
+LaunchConfigurationDelegate_error_failedToCloneStepper=Failed to clone stepper for launch configuration type ''{0}'' \
+and launch mode ''{1}''.
+LaunchConfigurationDelegate_error_inaccessibleReferencedProject=Failed to access project ''{0}''. The project is either missing or closed.
+
+AbstractLaunchConfigurationDelegate_scoped_incremental_build=Scoped incremental build before launch...
+
+ReferencedProjectItemValidator_missingProject = Missing project
+ReferencedProjectItemValidator_notExistingProject = Project does not exist
+ReferencedProjectItemValidator_closedProject = Project is closed
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/AbstractItemListXMLParser.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/AbstractItemListXMLParser.java
index fe3b6dcc8..809233741 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/AbstractItemListXMLParser.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/AbstractItemListXMLParser.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/DefaultPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/DefaultPersistenceDelegate.java
index 97a529ddc..3194cfb46 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/DefaultPersistenceDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/DefaultPersistenceDelegate.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/LaunchConfigurationChangedEvent.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/LaunchConfigurationChangedEvent.java
index d1430d222..edc373a0a 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/LaunchConfigurationChangedEvent.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/LaunchConfigurationChangedEvent.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/filetransfer/FileTransfersPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/filetransfer/FileTransfersPersistenceDelegate.java
index abf476913..f554a05de 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/filetransfer/FileTransfersPersistenceDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/filetransfer/FileTransfersPersistenceDelegate.java
@@ -1,114 +1,114 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.persistence.filetransfer;
-
-import java.util.List;
-
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.IFileTransferLaunchAttributes;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
-import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListPersistenceDelegate;
-import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListXMLParser;
-import org.eclipse.tcf.te.runtime.services.interfaces.filetransfer.IFileTransferItem;
-
-/**
- * File transfer persistence delegate.
- */
-public class FileTransfersPersistenceDelegate {
-
- private static final String TAG_FILE_TRANSFER = "fileTransfer"; //$NON-NLS-1$
-
- private static final AbstractItemListPersistenceDelegate<IFileTransferItem> delegate =
- new AbstractItemListPersistenceDelegate<IFileTransferItem>(TAG_FILE_TRANSFER, IFileTransferLaunchAttributes.ATTR_FILE_TRANSFERS) {
- @Override
- protected AbstractItemListXMLParser<IFileTransferItem> getXMLParser() {
- return new AbstractItemListXMLParser<IFileTransferItem>(TAG_FILE_TRANSFER) {
- @Override
- protected Class<?> getReadClass() {
- return IFileTransferItem.class;
- }
- };
- }
- };
-
- /**
- * Saves the selected file transfer items to the specified launch configuration working copy. If the
- * selected file transfer items are <code>null</code> or empty, the attribute will be removed from
- * the specified launch configuration working copy.
- *
- * @param wc The launch configuration working copy. Must not be <code>null</code>.
- * @param items The file transfer items to save or <code>null</code>.
- */
- public final static void setFileTransfers(ILaunchConfigurationWorkingCopy wc, IFileTransferItem[] items) {
- delegate.setItems(wc, items);
- }
-
- /**
- * Saves the selected file transfer items to the specified launch specification. If the selected
- * file transfer items are <code>null</code> or empty, the attribute will be removed from the
- * specified launch specification.
- *
- * @param launchSpec The launch specification. Must not be <code>null</code>.
- * @param items The file transfer items to save or <code>null</code>.
- */
- public final static void setFileTransfers(ILaunchSpecification launchSpec, IFileTransferItem[] items) {
- delegate.setItems(launchSpec, items);
- }
-
- /**
- * Writes the given file transfer items into a string encoded in XML.
- *
- * @param items The file transfer items to encode. Must not be <code>null</code>.
- * @return The full XML representation of the given items or <code>null</code>.
- */
- public final static String encodeFileTransferItems(IFileTransferItem[] items) {
- return delegate.encodeItems(items);
- }
-
- /**
- * Reads the selected file transfer items from the given XML encoded string.
- *
- * @param encodedItems The selected file transfer items encoded as XML string. Must not be <code>null</code>.
- * @return The selected file transfer items or an empty array.
- */
- public final static IFileTransferItem[] decodeFileTransferItems(String encodedItems) {
- List<IFileTransferItem> list = delegate.decodeItems(encodedItems);
- return list.toArray(new IFileTransferItem[list.size()]);
- }
-
- /**
- * Returns the list of configured file transfer items from the given launch configuration.
- * <p>
- * If the given launch configuration is <code>null</code> and the method will return an empty
- * array.
- *
- * @param configuration The launch configuration or <code>null</code>.
- * @return The list of configured file transfer items or an empty array.
- */
- public static final IFileTransferItem[] getFileTransfers(ILaunchConfiguration configuration) {
- List<IFileTransferItem> list = delegate.getItems(configuration);
- return list.toArray(new IFileTransferItem[list.size()]);
- }
-
- /**
- * Returns the list of configured file transfer items from the given launch specification.
- * <p>
- * If the given launch specification is <code>null</code> and the method will return an empty
- * array.
- *
- * @param launchSpec The launch specification or <code>null</code>.
- * @return The list of configured file transfer items or an empty array.
- */
- public static final IFileTransferItem[] getFileTransfers(ILaunchSpecification launchSpec) {
- List<IFileTransferItem> list = delegate.getItems(launchSpec);
- return list.toArray(new IFileTransferItem[list.size()]);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.persistence.filetransfer;
+
+import java.util.List;
+
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.IFileTransferLaunchAttributes;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
+import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListPersistenceDelegate;
+import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListXMLParser;
+import org.eclipse.tcf.te.runtime.services.interfaces.filetransfer.IFileTransferItem;
+
+/**
+ * File transfer persistence delegate.
+ */
+public class FileTransfersPersistenceDelegate {
+
+ private static final String TAG_FILE_TRANSFER = "fileTransfer"; //$NON-NLS-1$
+
+ private static final AbstractItemListPersistenceDelegate<IFileTransferItem> delegate =
+ new AbstractItemListPersistenceDelegate<IFileTransferItem>(TAG_FILE_TRANSFER, IFileTransferLaunchAttributes.ATTR_FILE_TRANSFERS) {
+ @Override
+ protected AbstractItemListXMLParser<IFileTransferItem> getXMLParser() {
+ return new AbstractItemListXMLParser<IFileTransferItem>(TAG_FILE_TRANSFER) {
+ @Override
+ protected Class<?> getReadClass() {
+ return IFileTransferItem.class;
+ }
+ };
+ }
+ };
+
+ /**
+ * Saves the selected file transfer items to the specified launch configuration working copy. If the
+ * selected file transfer items are <code>null</code> or empty, the attribute will be removed from
+ * the specified launch configuration working copy.
+ *
+ * @param wc The launch configuration working copy. Must not be <code>null</code>.
+ * @param items The file transfer items to save or <code>null</code>.
+ */
+ public final static void setFileTransfers(ILaunchConfigurationWorkingCopy wc, IFileTransferItem[] items) {
+ delegate.setItems(wc, items);
+ }
+
+ /**
+ * Saves the selected file transfer items to the specified launch specification. If the selected
+ * file transfer items are <code>null</code> or empty, the attribute will be removed from the
+ * specified launch specification.
+ *
+ * @param launchSpec The launch specification. Must not be <code>null</code>.
+ * @param items The file transfer items to save or <code>null</code>.
+ */
+ public final static void setFileTransfers(ILaunchSpecification launchSpec, IFileTransferItem[] items) {
+ delegate.setItems(launchSpec, items);
+ }
+
+ /**
+ * Writes the given file transfer items into a string encoded in XML.
+ *
+ * @param items The file transfer items to encode. Must not be <code>null</code>.
+ * @return The full XML representation of the given items or <code>null</code>.
+ */
+ public final static String encodeFileTransferItems(IFileTransferItem[] items) {
+ return delegate.encodeItems(items);
+ }
+
+ /**
+ * Reads the selected file transfer items from the given XML encoded string.
+ *
+ * @param encodedItems The selected file transfer items encoded as XML string. Must not be <code>null</code>.
+ * @return The selected file transfer items or an empty array.
+ */
+ public final static IFileTransferItem[] decodeFileTransferItems(String encodedItems) {
+ List<IFileTransferItem> list = delegate.decodeItems(encodedItems);
+ return list.toArray(new IFileTransferItem[list.size()]);
+ }
+
+ /**
+ * Returns the list of configured file transfer items from the given launch configuration.
+ * <p>
+ * If the given launch configuration is <code>null</code> and the method will return an empty
+ * array.
+ *
+ * @param configuration The launch configuration or <code>null</code>.
+ * @return The list of configured file transfer items or an empty array.
+ */
+ public static final IFileTransferItem[] getFileTransfers(ILaunchConfiguration configuration) {
+ List<IFileTransferItem> list = delegate.getItems(configuration);
+ return list.toArray(new IFileTransferItem[list.size()]);
+ }
+
+ /**
+ * Returns the list of configured file transfer items from the given launch specification.
+ * <p>
+ * If the given launch specification is <code>null</code> and the method will return an empty
+ * array.
+ *
+ * @param launchSpec The launch specification or <code>null</code>.
+ * @return The list of configured file transfer items or an empty array.
+ */
+ public static final IFileTransferItem[] getFileTransfers(ILaunchSpecification launchSpec) {
+ List<IFileTransferItem> list = delegate.getItems(launchSpec);
+ return list.toArray(new IFileTransferItem[list.size()]);
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/launchcontext/LaunchContextsPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/launchcontext/LaunchContextsPersistenceDelegate.java
index d8c644a87..5e45fe882 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/launchcontext/LaunchContextsPersistenceDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/launchcontext/LaunchContextsPersistenceDelegate.java
@@ -1,257 +1,257 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.persistence.launchcontext;
-
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchContextLaunchAttributes;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
-import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListPersistenceDelegate;
-import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListXMLParser;
-import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode;
-import org.eclipse.tcf.te.runtime.services.ServiceManager;
-import org.eclipse.tcf.te.runtime.services.interfaces.IPropertiesAccessService;
-
-/**
- * Context selector persistence delegate.
- */
-public class LaunchContextsPersistenceDelegate {
- // The read cache for step contexts. Avoid running time consuming
- // re-parsing of an already parsed step context description again and again.
- private final static Map<String, List<IModelNode>> readCache = new LinkedHashMap<String, List<IModelNode>>();
- // The write cache for target contexts. Avoids re-generating the XML again and again.
- private final static Map<String, String> writeCache = new LinkedHashMap<String, String>();
-
- // Limit the read cache to the last 10 read step contexts
- private final static int READ_CACHE_MAX_CAPACITY = 25;
- // Limit the write cache to the last 10 written step contexts
- private final static int WRITE_CACHE_MAX_CAPACITY = 25;
-
- private static final String TAG_LAUNCH_CONTEXT = "context"; //$NON-NLS-1$
-
- private static final AbstractItemListPersistenceDelegate<IModelNode> delegate =
- new AbstractItemListPersistenceDelegate<IModelNode>(TAG_LAUNCH_CONTEXT, ILaunchContextLaunchAttributes.ATTR_LAUNCH_CONTEXTS) {
- @Override
- protected AbstractItemListXMLParser<IModelNode> getXMLParser() {
- return new AbstractItemListXMLParser<IModelNode>(TAG_LAUNCH_CONTEXT) {
- @Override
- protected Class<?> getReadClass() {
- return IModelNode.class;
- }
- };
- }
- };
-
- /**
- * Saves the selected launch contexts to the specified launch configuration working copy. If the
- * selected launch contexts are <code>null</code> or empty, the attribute will be removed from
- * the specified launch configuration working copy.
- *
- * @param wc The launch configuration working copy. Must not be <code>null</code>.
- * @param contexts The launch contexts to save or <code>null</code>.
- */
- public final static void setLaunchContexts(ILaunchConfigurationWorkingCopy wc, IModelNode[] contexts) {
- delegate.setItems(wc, contexts);
- }
-
- /**
- * Saves the selected launch contexts to the specified launch specification. If the selected
- * launch contexts are <code>null</code> or empty, the attribute will be removed from the
- * specified launch specification.
- *
- * @param launchSpec The launch specification. Must not be <code>null</code>.
- * @param contexts The launch contexts to save or <code>null</code>.
- */
- public final static void setLaunchContexts(ILaunchSpecification launchSpec, IModelNode[] contexts) {
- delegate.setItems(launchSpec, contexts);
- }
-
- /**
- * Writes the given launch contexts into a string encoded in XML.
- *
- * @param contexts The launch contexts to encode. Must not be <code>null</code>.
- * @return The full XML representation of the given contexts or <code>null</code>.
- */
- public final static String encodeLaunchContexts(IModelNode[] contexts) {
- Assert.isNotNull(contexts);
-
- // The final result
- String result = null;
-
- // Generate the write cache key
- String writeCacheKey = makeWriteCacheKey(contexts);
-
- // Check if we have the contexts already generated before
- synchronized (writeCache) {
- if (writeCache.containsKey(writeCacheKey)) {
- result = writeCache.get(writeCacheKey);
- }
- }
-
- // If no cache hit, generate from scratch
- if (result == null) {
- result = delegate.encodeItems(contexts);
-
- synchronized (writeCache) {
- // Limit the write cache capacity
- checkCacheCapacity(writeCache, WRITE_CACHE_MAX_CAPACITY);
- // And put it into the write cache
- writeCache.put(writeCacheKey, result);
- }
- }
-
- return result;
- }
-
- /**
- * Generates a write cache key from the given contexts.
- *
- * @param contexts The contexts
- * @return The corresponding write key cache.
- */
- private static String makeWriteCacheKey(IModelNode[] contexts) {
- Assert.isNotNull(contexts);
-
- StringBuffer key = new StringBuffer();
- for (IModelNode context : contexts) {
- key.append(Integer.toHexString(context.hashCode()));
- key.append(':');
- }
- if (key.charAt(key.length() - 1) == ':') {
- key.setCharAt(key.length() - 1, ' ');
- }
- return key.toString().trim();
- }
-
- /**
- * Reads the selected launch contexts from the given XML encoded string.
- *
- * @param encodedContexts The selected launch contexts encoded as XML string. Must not be <code>null</code>.
- * @return The selected launch contexts or an empty array.
- */
- public final static IModelNode[] decodeLaunchContexts(String encodedContexts) {
- Assert.isNotNull(encodedContexts);
-
- List<IModelNode> contexts = null;
-
- if (!"".equals(encodedContexts.trim())) { //$NON-NLS-1$
- synchronized (readCache) {
- // Check if we have the contexts already parsed before
- if (readCache.containsKey(encodedContexts)) {
- // Take the result from the cache
- contexts = readCache.get(encodedContexts);
- // check sanity. If empty or we cannot find the step context,
- // drop the cache value and decode again.
- ListIterator<IModelNode> iterator = contexts.listIterator();
- while (iterator.hasNext()) {
- IModelNode node = iterator.next();
- IPropertiesAccessService service = ServiceManager.getInstance().getService(node, IPropertiesAccessService.class);
- boolean isGhost = false;
- if (service != null) {
- Object value = service.getProperty(node, IModelNode.PROPERTY_IS_GHOST);
- if (value instanceof Boolean) {
- isGhost = ((Boolean)value).booleanValue();
- }
- }
- if (isGhost) {
- contexts = null;
- readCache.remove(encodedContexts);
- break;
- }
- }
-
- if (contexts != null && contexts.isEmpty()) {
- readCache.remove(encodedContexts);
- contexts = null;
- }
- }
- }
-
- if (contexts == null || contexts.isEmpty()) {
- contexts = delegate.decodeItems(encodedContexts);
- if (!contexts.isEmpty()) {
- synchronized (readCache) {
- // Limit the read cache capacity
- checkCacheCapacity(readCache, READ_CACHE_MAX_CAPACITY);
- // Put the result into the read cache
- readCache.put(encodedContexts, contexts);
- }
- }
- }
- }
-
- return contexts != null ? contexts.toArray(new IModelNode[contexts.size()]) : new IModelNode[0];
- }
-
- /**
- * Internal helper method to ensure a maximum capacity of the caches.
- */
- private final static void checkCacheCapacity(Map<String, ?> cache, int maxCapacity) {
- if (cache.size() < maxCapacity) {
- return;
- }
- // Get all keys
- String[] keys = cache.keySet().toArray(new String[cache.keySet().size()]);
- // And remove all keys starting with the eldest till the
- // capacity is fine again.
- for (String key : keys) {
- cache.remove(key);
- if (cache.size() < maxCapacity / 2) {
- break;
- }
- }
- }
-
- /**
- * Returns the list of configured launch contexts from the given launch configuration.
- * <p>
- * If the given launch configuration is <code>null</code> and the method will return an empty
- * array.
- *
- * @param configuration The launch configuration or <code>null</code>.
- * @return The list of configured launch contexts or an empty array.
- */
- public static final IModelNode[] getLaunchContexts(ILaunchConfiguration configuration) {
- List<IModelNode> list = delegate.getItems(configuration);
- return list.toArray(new IModelNode[list.size()]);
- }
-
- /**
- * Returns the list of configured launch contexts from the given launch specification.
- * <p>
- * If the given launch specification is <code>null</code> and the method will return an empty
- * array.
- *
- * @param launchSpec The launch specification or <code>null</code>.
- * @return The list of configured launch contexts or an empty array.
- */
- public static final IModelNode[] getLaunchContexts(ILaunchSpecification launchSpec) {
- List<IModelNode> list = delegate.getItems(launchSpec);
- return list.toArray(new IModelNode[list.size()]);
- }
-
- /**
- * Returns the first configured launch context from the given launch configuration.
- *
- * @param configuration The launch configuration or <code>null</code>.
- * @return The first configured launch context or <code>null</code>.
- */
- public static final IModelNode getFirstLaunchContext(ILaunchConfiguration configuration) {
- List<IModelNode> list = delegate.getItems(configuration);
- return list != null && !list.isEmpty() ? list.get(0) : null;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.persistence.launchcontext;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchContextLaunchAttributes;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
+import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListPersistenceDelegate;
+import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListXMLParser;
+import org.eclipse.tcf.te.runtime.model.interfaces.IModelNode;
+import org.eclipse.tcf.te.runtime.services.ServiceManager;
+import org.eclipse.tcf.te.runtime.services.interfaces.IPropertiesAccessService;
+
+/**
+ * Context selector persistence delegate.
+ */
+public class LaunchContextsPersistenceDelegate {
+ // The read cache for step contexts. Avoid running time consuming
+ // re-parsing of an already parsed step context description again and again.
+ private final static Map<String, List<IModelNode>> readCache = new LinkedHashMap<String, List<IModelNode>>();
+ // The write cache for target contexts. Avoids re-generating the XML again and again.
+ private final static Map<String, String> writeCache = new LinkedHashMap<String, String>();
+
+ // Limit the read cache to the last 10 read step contexts
+ private final static int READ_CACHE_MAX_CAPACITY = 25;
+ // Limit the write cache to the last 10 written step contexts
+ private final static int WRITE_CACHE_MAX_CAPACITY = 25;
+
+ private static final String TAG_LAUNCH_CONTEXT = "context"; //$NON-NLS-1$
+
+ private static final AbstractItemListPersistenceDelegate<IModelNode> delegate =
+ new AbstractItemListPersistenceDelegate<IModelNode>(TAG_LAUNCH_CONTEXT, ILaunchContextLaunchAttributes.ATTR_LAUNCH_CONTEXTS) {
+ @Override
+ protected AbstractItemListXMLParser<IModelNode> getXMLParser() {
+ return new AbstractItemListXMLParser<IModelNode>(TAG_LAUNCH_CONTEXT) {
+ @Override
+ protected Class<?> getReadClass() {
+ return IModelNode.class;
+ }
+ };
+ }
+ };
+
+ /**
+ * Saves the selected launch contexts to the specified launch configuration working copy. If the
+ * selected launch contexts are <code>null</code> or empty, the attribute will be removed from
+ * the specified launch configuration working copy.
+ *
+ * @param wc The launch configuration working copy. Must not be <code>null</code>.
+ * @param contexts The launch contexts to save or <code>null</code>.
+ */
+ public final static void setLaunchContexts(ILaunchConfigurationWorkingCopy wc, IModelNode[] contexts) {
+ delegate.setItems(wc, contexts);
+ }
+
+ /**
+ * Saves the selected launch contexts to the specified launch specification. If the selected
+ * launch contexts are <code>null</code> or empty, the attribute will be removed from the
+ * specified launch specification.
+ *
+ * @param launchSpec The launch specification. Must not be <code>null</code>.
+ * @param contexts The launch contexts to save or <code>null</code>.
+ */
+ public final static void setLaunchContexts(ILaunchSpecification launchSpec, IModelNode[] contexts) {
+ delegate.setItems(launchSpec, contexts);
+ }
+
+ /**
+ * Writes the given launch contexts into a string encoded in XML.
+ *
+ * @param contexts The launch contexts to encode. Must not be <code>null</code>.
+ * @return The full XML representation of the given contexts or <code>null</code>.
+ */
+ public final static String encodeLaunchContexts(IModelNode[] contexts) {
+ Assert.isNotNull(contexts);
+
+ // The final result
+ String result = null;
+
+ // Generate the write cache key
+ String writeCacheKey = makeWriteCacheKey(contexts);
+
+ // Check if we have the contexts already generated before
+ synchronized (writeCache) {
+ if (writeCache.containsKey(writeCacheKey)) {
+ result = writeCache.get(writeCacheKey);
+ }
+ }
+
+ // If no cache hit, generate from scratch
+ if (result == null) {
+ result = delegate.encodeItems(contexts);
+
+ synchronized (writeCache) {
+ // Limit the write cache capacity
+ checkCacheCapacity(writeCache, WRITE_CACHE_MAX_CAPACITY);
+ // And put it into the write cache
+ writeCache.put(writeCacheKey, result);
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Generates a write cache key from the given contexts.
+ *
+ * @param contexts The contexts
+ * @return The corresponding write key cache.
+ */
+ private static String makeWriteCacheKey(IModelNode[] contexts) {
+ Assert.isNotNull(contexts);
+
+ StringBuffer key = new StringBuffer();
+ for (IModelNode context : contexts) {
+ key.append(Integer.toHexString(context.hashCode()));
+ key.append(':');
+ }
+ if (key.charAt(key.length() - 1) == ':') {
+ key.setCharAt(key.length() - 1, ' ');
+ }
+ return key.toString().trim();
+ }
+
+ /**
+ * Reads the selected launch contexts from the given XML encoded string.
+ *
+ * @param encodedContexts The selected launch contexts encoded as XML string. Must not be <code>null</code>.
+ * @return The selected launch contexts or an empty array.
+ */
+ public final static IModelNode[] decodeLaunchContexts(String encodedContexts) {
+ Assert.isNotNull(encodedContexts);
+
+ List<IModelNode> contexts = null;
+
+ if (!"".equals(encodedContexts.trim())) { //$NON-NLS-1$
+ synchronized (readCache) {
+ // Check if we have the contexts already parsed before
+ if (readCache.containsKey(encodedContexts)) {
+ // Take the result from the cache
+ contexts = readCache.get(encodedContexts);
+ // check sanity. If empty or we cannot find the step context,
+ // drop the cache value and decode again.
+ ListIterator<IModelNode> iterator = contexts.listIterator();
+ while (iterator.hasNext()) {
+ IModelNode node = iterator.next();
+ IPropertiesAccessService service = ServiceManager.getInstance().getService(node, IPropertiesAccessService.class);
+ boolean isGhost = false;
+ if (service != null) {
+ Object value = service.getProperty(node, IModelNode.PROPERTY_IS_GHOST);
+ if (value instanceof Boolean) {
+ isGhost = ((Boolean)value).booleanValue();
+ }
+ }
+ if (isGhost) {
+ contexts = null;
+ readCache.remove(encodedContexts);
+ break;
+ }
+ }
+
+ if (contexts != null && contexts.isEmpty()) {
+ readCache.remove(encodedContexts);
+ contexts = null;
+ }
+ }
+ }
+
+ if (contexts == null || contexts.isEmpty()) {
+ contexts = delegate.decodeItems(encodedContexts);
+ if (!contexts.isEmpty()) {
+ synchronized (readCache) {
+ // Limit the read cache capacity
+ checkCacheCapacity(readCache, READ_CACHE_MAX_CAPACITY);
+ // Put the result into the read cache
+ readCache.put(encodedContexts, contexts);
+ }
+ }
+ }
+ }
+
+ return contexts != null ? contexts.toArray(new IModelNode[contexts.size()]) : new IModelNode[0];
+ }
+
+ /**
+ * Internal helper method to ensure a maximum capacity of the caches.
+ */
+ private final static void checkCacheCapacity(Map<String, ?> cache, int maxCapacity) {
+ if (cache.size() < maxCapacity) {
+ return;
+ }
+ // Get all keys
+ String[] keys = cache.keySet().toArray(new String[cache.keySet().size()]);
+ // And remove all keys starting with the eldest till the
+ // capacity is fine again.
+ for (String key : keys) {
+ cache.remove(key);
+ if (cache.size() < maxCapacity / 2) {
+ break;
+ }
+ }
+ }
+
+ /**
+ * Returns the list of configured launch contexts from the given launch configuration.
+ * <p>
+ * If the given launch configuration is <code>null</code> and the method will return an empty
+ * array.
+ *
+ * @param configuration The launch configuration or <code>null</code>.
+ * @return The list of configured launch contexts or an empty array.
+ */
+ public static final IModelNode[] getLaunchContexts(ILaunchConfiguration configuration) {
+ List<IModelNode> list = delegate.getItems(configuration);
+ return list.toArray(new IModelNode[list.size()]);
+ }
+
+ /**
+ * Returns the list of configured launch contexts from the given launch specification.
+ * <p>
+ * If the given launch specification is <code>null</code> and the method will return an empty
+ * array.
+ *
+ * @param launchSpec The launch specification or <code>null</code>.
+ * @return The list of configured launch contexts or an empty array.
+ */
+ public static final IModelNode[] getLaunchContexts(ILaunchSpecification launchSpec) {
+ List<IModelNode> list = delegate.getItems(launchSpec);
+ return list.toArray(new IModelNode[list.size()]);
+ }
+
+ /**
+ * Returns the first configured launch context from the given launch configuration.
+ *
+ * @param configuration The launch configuration or <code>null</code>.
+ * @return The first configured launch context or <code>null</code>.
+ */
+ public static final IModelNode getFirstLaunchContext(ILaunchConfiguration configuration) {
+ List<IModelNode> list = delegate.getItems(configuration);
+ return list != null && !list.isEmpty() ? list.get(0) : null;
+ }
+
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItem.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItem.java
index 0c5d8d0b3..d4a33ce48 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItem.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItem.java
@@ -1,72 +1,72 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tcf.te.launch.core.persistence.projects;
-
-import org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem;
-import org.eclipse.tcf.te.runtime.properties.PropertiesContainer;
-
-/**
- * ReferencedProjectItem
- */
-public class ReferencedProjectItem extends PropertiesContainer implements IReferencedProjectItem {
-
- /**
- * Constructor.
- */
- public ReferencedProjectItem() {
- setProperty(PROPERTY_ENABLED, true);
- }
-
- public ReferencedProjectItem(String projectName) {
- this();
- setProperty(PROPERTY_PROJECT_NAME, projectName);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem#isEnabled()
- */
- @Override
- public boolean isEnabled() {
- return getBooleanProperty(PROPERTY_ENABLED);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem#getProjectName()
- */
- @Override
- public String getProjectName() {
- return getStringProperty(PROPERTY_PROJECT_NAME);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#hashCode()
- */
- @Override
- public int hashCode() {
- if (getProjectName() != null) {
- return getProjectName().hashCode();
- }
- return super.hashCode();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof IReferencedProjectItem) {
- String pn1 = getProjectName();
- String pn2 = ((IReferencedProjectItem)obj).getProjectName();
- return pn1 != null ? pn1.equals(pn2) : pn2 == null;
- }
- return super.equals(obj);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.tcf.te.launch.core.persistence.projects;
+
+import org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem;
+import org.eclipse.tcf.te.runtime.properties.PropertiesContainer;
+
+/**
+ * ReferencedProjectItem
+ */
+public class ReferencedProjectItem extends PropertiesContainer implements IReferencedProjectItem {
+
+ /**
+ * Constructor.
+ */
+ public ReferencedProjectItem() {
+ setProperty(PROPERTY_ENABLED, true);
+ }
+
+ public ReferencedProjectItem(String projectName) {
+ this();
+ setProperty(PROPERTY_PROJECT_NAME, projectName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem#isEnabled()
+ */
+ @Override
+ public boolean isEnabled() {
+ return getBooleanProperty(PROPERTY_ENABLED);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem#getProjectName()
+ */
+ @Override
+ public String getProjectName() {
+ return getStringProperty(PROPERTY_PROJECT_NAME);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ if (getProjectName() != null) {
+ return getProjectName().hashCode();
+ }
+ return super.hashCode();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.tcf.te.runtime.properties.PropertiesContainer#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof IReferencedProjectItem) {
+ String pn1 = getProjectName();
+ String pn2 = ((IReferencedProjectItem)obj).getProjectName();
+ return pn1 != null ? pn1.equals(pn2) : pn2 == null;
+ }
+ return super.equals(obj);
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItemValidator.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItemValidator.java
index 74b33d2ff..ffe47ec4e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItemValidator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectItemValidator.java
@@ -1,49 +1,49 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tcf.te.launch.core.persistence.projects;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem;
-import org.eclipse.tcf.te.launch.core.nls.Messages;
-
-/**
- * ReferencedProjectItemValidator
- */
-public class ReferencedProjectItemValidator {
-
- public static final Map<String,String> validate(IReferencedProjectItem item) {
- Assert.isNotNull(item);
-
- Map<String,String> invalid = new HashMap<String,String>();
-
- String projectName = item.getStringProperty(IReferencedProjectItem.PROPERTY_PROJECT_NAME);
-
- if (projectName == null || projectName.trim().length() == 0) {
- invalid.put(IReferencedProjectItem.PROPERTY_PROJECT_NAME, Messages.ReferencedProjectItemValidator_missingProject);
- }
- else {
- IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
- if (project == null) {
- invalid.put(IReferencedProjectItem.PROPERTY_PROJECT_NAME, Messages.ReferencedProjectItemValidator_notExistingProject);
- }
- else if (!project.isOpen()) {
- invalid.put(IReferencedProjectItem.PROPERTY_PROJECT_NAME, Messages.ReferencedProjectItemValidator_closedProject);
- }
- }
-
- return invalid.isEmpty() ? null : invalid;
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.tcf.te.launch.core.persistence.projects;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem;
+import org.eclipse.tcf.te.launch.core.nls.Messages;
+
+/**
+ * ReferencedProjectItemValidator
+ */
+public class ReferencedProjectItemValidator {
+
+ public static final Map<String,String> validate(IReferencedProjectItem item) {
+ Assert.isNotNull(item);
+
+ Map<String,String> invalid = new HashMap<String,String>();
+
+ String projectName = item.getStringProperty(IReferencedProjectItem.PROPERTY_PROJECT_NAME);
+
+ if (projectName == null || projectName.trim().length() == 0) {
+ invalid.put(IReferencedProjectItem.PROPERTY_PROJECT_NAME, Messages.ReferencedProjectItemValidator_missingProject);
+ }
+ else {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ if (project == null) {
+ invalid.put(IReferencedProjectItem.PROPERTY_PROJECT_NAME, Messages.ReferencedProjectItemValidator_notExistingProject);
+ }
+ else if (!project.isOpen()) {
+ invalid.put(IReferencedProjectItem.PROPERTY_PROJECT_NAME, Messages.ReferencedProjectItemValidator_closedProject);
+ }
+ }
+
+ return invalid.isEmpty() ? null : invalid;
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectsPersistenceDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectsPersistenceDelegate.java
index 79be4e877..a98996d03 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectsPersistenceDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/persistence/projects/ReferencedProjectsPersistenceDelegate.java
@@ -1,114 +1,114 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.persistence.projects;
-
-import java.util.List;
-
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
-import org.eclipse.tcf.te.launch.core.lm.interfaces.IReferencedProjectLaunchAttributes;
-import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListPersistenceDelegate;
-import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListXMLParser;
-
-/**
- * Referenced projects persistence delegate.
- */
-public class ReferencedProjectsPersistenceDelegate {
-
- private static final String TAG_PROJECT = "referencedProject"; //$NON-NLS-1$
-
- private static final AbstractItemListPersistenceDelegate<IReferencedProjectItem> delegate =
- new AbstractItemListPersistenceDelegate<IReferencedProjectItem>(TAG_PROJECT, IReferencedProjectLaunchAttributes.ATTR_REFERENCED_PROJECTS) {
- @Override
- protected AbstractItemListXMLParser<IReferencedProjectItem> getXMLParser() {
- return new AbstractItemListXMLParser<IReferencedProjectItem>(TAG_PROJECT) {
- @Override
- protected Class<?> getReadClass() {
- return IReferencedProjectItem.class;
- }
- };
- }
- };
-
- /**
- * Saves the selected referenced project items to the specified launch configuration working copy. If the
- * selected referenced project items are <code>null</code> or empty, the attribute will be removed from
- * the specified launch configuration working copy.
- *
- * @param wc The launch configuration working copy. Must not be <code>null</code>.
- * @param items The referenced project items to save or <code>null</code>.
- */
- public final static void setReferencedProjects(ILaunchConfigurationWorkingCopy wc, IReferencedProjectItem[] items) {
- delegate.setItems(wc, items);
- }
-
- /**
- * Saves the selected referenced project items to the specified launch specification. If the selected
- * referenced project items are <code>null</code> or empty, the attribute will be removed from the
- * specified launch specification.
- *
- * @param launchSpec The launch specification. Must not be <code>null</code>.
- * @param items The referenced project items to save or <code>null</code>.
- */
- public final static void setReferencedProjects(ILaunchSpecification launchSpec, IReferencedProjectItem[] items) {
- delegate.setItems(launchSpec, items);
- }
-
- /**
- * Writes the given referenced project items into a string encoded in XML.
- *
- * @param items The referenced project items to encode. Must not be <code>null</code>.
- * @return The full XML representation of the given items or <code>null</code>.
- */
- public final static String encodeReferencedProjectItems(IReferencedProjectItem[] items) {
- return delegate.encodeItems(items);
- }
-
- /**
- * Reads the selected referenced project items from the given XML encoded string.
- *
- * @param encodedItems The selected referenced project items encoded as XML string. Must not be <code>null</code>.
- * @return The selected referenced project items or an empty array.
- */
- public final static IReferencedProjectItem[] decodeReferencedProjectItems(String encodedItems) {
- List<IReferencedProjectItem> list = delegate.decodeItems(encodedItems);
- return list.toArray(new IReferencedProjectItem[list.size()]);
- }
-
- /**
- * Returns the list of configured referenced project items from the given launch configuration.
- * <p>
- * If the given launch configuration is <code>null</code> and the method will return an empty
- * array.
- *
- * @param configuration The launch configuration or <code>null</code>.
- * @return The list of configured referenced project items or an empty array.
- */
- public static final IReferencedProjectItem[] getReferencedProjects(ILaunchConfiguration configuration) {
- List<IReferencedProjectItem> list = delegate.getItems(configuration);
- return list.toArray(new IReferencedProjectItem[list.size()]);
- }
-
- /**
- * Returns the list of configured referenced project items from the given launch specification.
- * <p>
- * If the given launch specification is <code>null</code> and the method will return an empty
- * array.
- *
- * @param launchSpec The launch specification or <code>null</code>.
- * @return The list of configured referenced project items or an empty array.
- */
- public static final IReferencedProjectItem[] getReferencedProjects(ILaunchSpecification launchSpec) {
- List<IReferencedProjectItem> list = delegate.getItems(launchSpec);
- return list.toArray(new IReferencedProjectItem[list.size()]);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.persistence.projects;
+
+import java.util.List;
+
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.tcf.te.launch.core.interfaces.IReferencedProjectItem;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.ILaunchSpecification;
+import org.eclipse.tcf.te.launch.core.lm.interfaces.IReferencedProjectLaunchAttributes;
+import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListPersistenceDelegate;
+import org.eclipse.tcf.te.launch.core.persistence.AbstractItemListXMLParser;
+
+/**
+ * Referenced projects persistence delegate.
+ */
+public class ReferencedProjectsPersistenceDelegate {
+
+ private static final String TAG_PROJECT = "referencedProject"; //$NON-NLS-1$
+
+ private static final AbstractItemListPersistenceDelegate<IReferencedProjectItem> delegate =
+ new AbstractItemListPersistenceDelegate<IReferencedProjectItem>(TAG_PROJECT, IReferencedProjectLaunchAttributes.ATTR_REFERENCED_PROJECTS) {
+ @Override
+ protected AbstractItemListXMLParser<IReferencedProjectItem> getXMLParser() {
+ return new AbstractItemListXMLParser<IReferencedProjectItem>(TAG_PROJECT) {
+ @Override
+ protected Class<?> getReadClass() {
+ return IReferencedProjectItem.class;
+ }
+ };
+ }
+ };
+
+ /**
+ * Saves the selected referenced project items to the specified launch configuration working copy. If the
+ * selected referenced project items are <code>null</code> or empty, the attribute will be removed from
+ * the specified launch configuration working copy.
+ *
+ * @param wc The launch configuration working copy. Must not be <code>null</code>.
+ * @param items The referenced project items to save or <code>null</code>.
+ */
+ public final static void setReferencedProjects(ILaunchConfigurationWorkingCopy wc, IReferencedProjectItem[] items) {
+ delegate.setItems(wc, items);
+ }
+
+ /**
+ * Saves the selected referenced project items to the specified launch specification. If the selected
+ * referenced project items are <code>null</code> or empty, the attribute will be removed from the
+ * specified launch specification.
+ *
+ * @param launchSpec The launch specification. Must not be <code>null</code>.
+ * @param items The referenced project items to save or <code>null</code>.
+ */
+ public final static void setReferencedProjects(ILaunchSpecification launchSpec, IReferencedProjectItem[] items) {
+ delegate.setItems(launchSpec, items);
+ }
+
+ /**
+ * Writes the given referenced project items into a string encoded in XML.
+ *
+ * @param items The referenced project items to encode. Must not be <code>null</code>.
+ * @return The full XML representation of the given items or <code>null</code>.
+ */
+ public final static String encodeReferencedProjectItems(IReferencedProjectItem[] items) {
+ return delegate.encodeItems(items);
+ }
+
+ /**
+ * Reads the selected referenced project items from the given XML encoded string.
+ *
+ * @param encodedItems The selected referenced project items encoded as XML string. Must not be <code>null</code>.
+ * @return The selected referenced project items or an empty array.
+ */
+ public final static IReferencedProjectItem[] decodeReferencedProjectItems(String encodedItems) {
+ List<IReferencedProjectItem> list = delegate.decodeItems(encodedItems);
+ return list.toArray(new IReferencedProjectItem[list.size()]);
+ }
+
+ /**
+ * Returns the list of configured referenced project items from the given launch configuration.
+ * <p>
+ * If the given launch configuration is <code>null</code> and the method will return an empty
+ * array.
+ *
+ * @param configuration The launch configuration or <code>null</code>.
+ * @return The list of configured referenced project items or an empty array.
+ */
+ public static final IReferencedProjectItem[] getReferencedProjects(ILaunchConfiguration configuration) {
+ List<IReferencedProjectItem> list = delegate.getItems(configuration);
+ return list.toArray(new IReferencedProjectItem[list.size()]);
+ }
+
+ /**
+ * Returns the list of configured referenced project items from the given launch specification.
+ * <p>
+ * If the given launch specification is <code>null</code> and the method will return an empty
+ * array.
+ *
+ * @param launchSpec The launch specification or <code>null</code>.
+ * @return The list of configured referenced project items or an empty array.
+ */
+ public static final IReferencedProjectItem[] getReferencedProjects(ILaunchSpecification launchSpec) {
+ List<IReferencedProjectItem> list = delegate.getItems(launchSpec);
+ return list.toArray(new IReferencedProjectItem[list.size()]);
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/IPreferenceKeys.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/IPreferenceKeys.java
index 58c28de97..5c4b50ed3 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/IPreferenceKeys.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/IPreferenceKeys.java
@@ -1,62 +1,62 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.preferences;
-
-
-/**
- * The locator model bundle preference key identifiers.
- */
-public interface IPreferenceKeys {
- /**
- * Common prefix for all core preference keys
- */
- public final String PREFIX = "te.launch.core."; //$NON-NLS-1$
-
- /**
- * Launch configuration find/create mode: Always create new launch configurations.
- */
- public static final int MODE_ALWAYS_NEW = 0;
-
- /**
- * Launch configuration find/create mode: Re-use launch configuration if all attributes are matching.
- */
- public static final int MODE_FULL_MATCH_LAUNCH_CONFIG = 1;
-
- /**
- * Launch configuration find/create mode: Re-use launch configuration if the target ID matches.
- */
- public static final int MODE_FULL_MATCH_TARGET = 2;
-
- /**
- * Launch configuration find/create mode: Re-use first matching launch configuration.
- */
- public static final int MODE_FIRST_MATCHING = 3;
-
- /**
- * Launch configuration find/create mode. See the <code>MODE_*</code> constants.
- */
- public static final String PREF_LAUNCH_CONFIG_FIND_CREATE_MODE = PREFIX + "launchConfigFindCreateMode"; //$NON-NLS-1$
-
- /**
- * If set to <code>true</code>, project references will be added by default to newly created launch configurations.
- */
- public static final String PREF_ADD_PROJECT_TO_NEW_LAUNCH_CONFIG = PREFIX + "addProjectToNewLaunchConfig"; //$NON-NLS-1$
-
- /**
- * If set to <code>true</code>, launches are sorted by their last launched time stamp.
- */
- public static final String PREF_SORT_LAUNCHES_BY_LAST_LAUNCHED = PREFIX + ".sortLaunchesByLastLaunched"; //$NON-NLS-1$
-
- /**
- * Preference key to access the flag to hide favorite launches content extension.
- */
- public static final String PREF_HIDE_FAVORITE_LAUNCHES_EXTENSION = "org.eclipse.tcf.te.tcf.launch.ui.navigator.favorites.content.hide"; //$NON-NLS-1$
-
-}
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.preferences;
+
+
+/**
+ * The locator model bundle preference key identifiers.
+ */
+public interface IPreferenceKeys {
+ /**
+ * Common prefix for all core preference keys
+ */
+ public final String PREFIX = "te.launch.core."; //$NON-NLS-1$
+
+ /**
+ * Launch configuration find/create mode: Always create new launch configurations.
+ */
+ public static final int MODE_ALWAYS_NEW = 0;
+
+ /**
+ * Launch configuration find/create mode: Re-use launch configuration if all attributes are matching.
+ */
+ public static final int MODE_FULL_MATCH_LAUNCH_CONFIG = 1;
+
+ /**
+ * Launch configuration find/create mode: Re-use launch configuration if the target ID matches.
+ */
+ public static final int MODE_FULL_MATCH_TARGET = 2;
+
+ /**
+ * Launch configuration find/create mode: Re-use first matching launch configuration.
+ */
+ public static final int MODE_FIRST_MATCHING = 3;
+
+ /**
+ * Launch configuration find/create mode. See the <code>MODE_*</code> constants.
+ */
+ public static final String PREF_LAUNCH_CONFIG_FIND_CREATE_MODE = PREFIX + "launchConfigFindCreateMode"; //$NON-NLS-1$
+
+ /**
+ * If set to <code>true</code>, project references will be added by default to newly created launch configurations.
+ */
+ public static final String PREF_ADD_PROJECT_TO_NEW_LAUNCH_CONFIG = PREFIX + "addProjectToNewLaunchConfig"; //$NON-NLS-1$
+
+ /**
+ * If set to <code>true</code>, launches are sorted by their last launched time stamp.
+ */
+ public static final String PREF_SORT_LAUNCHES_BY_LAST_LAUNCHED = PREFIX + ".sortLaunchesByLastLaunched"; //$NON-NLS-1$
+
+ /**
+ * Preference key to access the flag to hide favorite launches content extension.
+ */
+ public static final String PREF_HIDE_FAVORITE_LAUNCHES_EXTENSION = "org.eclipse.tcf.te.tcf.launch.ui.navigator.favorites.content.hide"; //$NON-NLS-1$
+
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/PreferencesInitializer.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/PreferencesInitializer.java
index 66ef5238e..254df84da 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/PreferencesInitializer.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/preferences/PreferencesInitializer.java
@@ -1,44 +1,44 @@
-/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tcf.te.launch.core.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.tcf.te.launch.core.activator.CoreBundleActivator;
-import org.eclipse.tcf.te.runtime.preferences.ScopedEclipsePreferences;
-
-/**
- * Launch core framework preferences initializer implementation.
- */
-public class PreferencesInitializer extends AbstractPreferenceInitializer {
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
- */
- @Override
- public void initializeDefaultPreferences() {
- // Get the preferences store
- ScopedEclipsePreferences store = CoreBundleActivator.getScopedPreferences();
-
- /**
- * Launch configuration find/create mode: default <code>MODE_FIRST_MATCHING</code>.
- */
- store.putDefaultInt(IPreferenceKeys.PREF_LAUNCH_CONFIG_FIND_CREATE_MODE, IPreferenceKeys.MODE_FIRST_MATCHING);
-
- /**
- * Add project references to newly created launch configurations: default <code>true</code>.
- */
- store.putDefaultBoolean(IPreferenceKeys.PREF_ADD_PROJECT_TO_NEW_LAUNCH_CONFIG, true);
-
- /**
- * Sort launches by their last launched time stamp: default <code>true</code>.
- */
- store.putDefaultBoolean(IPreferenceKeys.PREF_SORT_LAUNCHES_BY_LAST_LAUNCHED, true);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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:
+ * Wind River Systems - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.tcf.te.launch.core.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.tcf.te.launch.core.activator.CoreBundleActivator;
+import org.eclipse.tcf.te.runtime.preferences.ScopedEclipsePreferences;
+
+/**
+ * Launch core framework preferences initializer implementation.
+ */
+public class PreferencesInitializer extends AbstractPreferenceInitializer {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ @Override
+ public void initializeDefaultPreferences() {
+ // Get the preferences store
+ ScopedEclipsePreferences store = CoreBundleActivator.getScopedPreferences();
+
+ /**
+ * Launch configuration find/create mode: default <code>MODE_FIRST_MATCHING</code>.
+ */
+ store.putDefaultInt(IPreferenceKeys.PREF_LAUNCH_CONFIG_FIND_CREATE_MODE, IPreferenceKeys.MODE_FIRST_MATCHING);
+
+ /**
+ * Add project references to newly created launch configurations: default <code>true</code>.
+ */
+ store.putDefaultBoolean(IPreferenceKeys.PREF_ADD_PROJECT_TO_NEW_LAUNCH_CONFIG, true);
+
+ /**
+ * Sort launches by their last launched time stamp: default <code>true</code>.
+ */
+ store.putDefaultBoolean(IPreferenceKeys.PREF_SORT_LAUNCHES_BY_LAST_LAUNCHED, true);
+ }
+}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/properties/PropertyTester.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/properties/PropertyTester.java
index 28e7ca609..bcc989554 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/properties/PropertyTester.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/properties/PropertyTester.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/AbstractSelectionContext.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/AbstractSelectionContext.java
index 5b8bdc65b..032655874 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/AbstractSelectionContext.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/AbstractSelectionContext.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/LaunchSelection.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/LaunchSelection.java
index 8b9515e40..5a87d76b8 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/LaunchSelection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/LaunchSelection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/ProjectSelectionContext.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/ProjectSelectionContext.java
index 83e37ac6b..0ca37ecb3 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/ProjectSelectionContext.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/ProjectSelectionContext.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/RemoteSelectionContext.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/RemoteSelectionContext.java
index 4065bb6b8..1f0e2e75e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/RemoteSelectionContext.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/RemoteSelectionContext.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ILaunchSelection.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ILaunchSelection.java
index 11c34cd19..b48de66e1 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ILaunchSelection.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ILaunchSelection.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IProjectSelectionContext.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IProjectSelectionContext.java
index 558fb669f..6dc088bc9 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IProjectSelectionContext.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IProjectSelectionContext.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IRemoteSelectionContext.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IRemoteSelectionContext.java
index df97305d9..3358cb86c 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IRemoteSelectionContext.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/IRemoteSelectionContext.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ISelectionContext.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ISelectionContext.java
index 959510901..83784f7eb 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ISelectionContext.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/selection/interfaces/ISelectionContext.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/AbstractLaunchStep.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/AbstractLaunchStep.java
index 97cf1dfe0..70adfe5a1 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/AbstractLaunchStep.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/AbstractLaunchStep.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/RemoveLaunchStep.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/RemoveLaunchStep.java
index 54564cb67..ad5a1e277 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/RemoveLaunchStep.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/RemoveLaunchStep.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/AbstractLaunchStepGroupIterator.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/AbstractLaunchStepGroupIterator.java
index 4ca43c070..ba08a7ea6 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/AbstractLaunchStepGroupIterator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/AbstractLaunchStepGroupIterator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/LaunchContextIterator.java b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/LaunchContextIterator.java
index aca87d22f..d1f9ca6e4 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/LaunchContextIterator.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.launch.core/src/org/eclipse/tcf/te/launch/core/steps/iterators/LaunchContextIterator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2013 Wind River Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2012, 2014 Wind River Systems, Inc. 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

Back to the top