You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/06/03 09:33:25 UTC
svn commit: r662674 - in /incubator/tuscany/java/sca:
modules/node2-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/
tools/eclipse/plugins/core/ tools/eclipse/plugins/core/exsd/
tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpa...
Author: jsdelfino
Date: Tue Jun 3 00:33:24 2008
New Revision: 662674
URL: http://svn.apache.org/viewvc?rev=662674&view=rev
Log:
Added an extension point to the Eclipse plugin to allow plugins to add classpath entries to the Tuscany runtime classpath used when launching nodes and the domain manager.
Added:
incubator/tuscany/java/sca/tools/eclipse/plugins/core/exsd/
incubator/tuscany/java/sca/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd
incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java
incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java
Modified:
incubator/tuscany/java/sca/modules/node2-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java
incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java
incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java
incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java
incubator/tuscany/java/sca/tools/eclipse/plugins/core/plugin.xml
Modified: incubator/tuscany/java/sca/modules/node2-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node2-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java?rev=662674&r1=662673&r2=662674&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node2-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java (original)
+++ incubator/tuscany/java/sca/modules/node2-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java Tue Jun 3 00:33:24 2008
@@ -35,6 +35,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -48,6 +49,7 @@
private static final Logger logger = Logger.getLogger(NodeLauncherUtil.class.getName());
private static final String TUSCANY_HOME = "TUSCANY_HOME";
+ private static final String TUSCANY_PATH = "TUSCANY_PATH";
/**
@@ -151,29 +153,21 @@
}
if (home != null && home.length() != 0) {
logger.fine(TUSCANY_HOME + ": " + home);
- File homeDirectory = new File(home);
- URL homeDirectoryURL = homeDirectory.toURI().toURL();
- if (!jarDirectoryURLs.contains(homeDirectoryURL) && homeDirectory.exists()) {
-
- // Collect files under $TUSCANY_HOME
- jarDirectoryURLs.add(homeDirectoryURL);
- collectJARFiles(homeDirectory, jarURLs, filter);
-
- // Collect files under $TUSCANY_HOME/modules
- File modulesDirectory = new File(homeDirectory, "modules");
- URL modulesDirectoryURL = modulesDirectory.toURI().toURL();
- if (!jarDirectoryURLs.contains(modulesDirectoryURL) && modulesDirectory.exists()) {
- jarDirectoryURLs.add(modulesDirectoryURL);
- collectJARFiles(modulesDirectory, jarURLs, filter);
- }
+ collectJARFiles(home, jarDirectoryURLs, jarURLs, filter);
+ }
- // Collect files under $TUSCANY_HOME/lib
- File libDirectory = new File(homeDirectory, "lib");
- URL libDirectoryURL = libDirectory.toURI().toURL();
- if (!jarDirectoryURLs.contains(libDirectoryURL) && libDirectory.exists()) {
- jarDirectoryURLs.add(libDirectoryURL);
- collectJARFiles(libDirectory, jarURLs, filter);
- }
+ // Look for a TUSCANY_PATH system property or environment variable
+ // Add all the JARs found under $TUSCANY_PATH, $TUSCANY_PATH/modules
+ // and $TUSCANY_PATH/lib
+ String ext = System.getProperty(TUSCANY_PATH);
+ if (ext == null || ext.length() == 0) {
+ ext = System.getenv(TUSCANY_PATH);
+ }
+ if (ext != null && ext.length() != 0) {
+ logger.fine(TUSCANY_PATH + ": " + ext);
+ String separator = System.getProperty("path.separator");
+ for (StringTokenizer tokens = new StringTokenizer(ext, separator); tokens.hasMoreTokens(); ) {
+ collectJARFiles(tokens.nextToken(), jarDirectoryURLs, jarURLs, filter);
}
}
@@ -190,6 +184,43 @@
}
/**
+ * Collect JAR files under the given directory.
+ *
+ * @param directory
+ * @param jarDirectoryURLs
+ * @param jarURLs
+ * @param filter
+ * @throws MalformedURLException
+ */
+ private static void collectJARFiles(String directory, Set<URL> jarDirectoryURLs, List<URL> jarURLs, FilenameFilter filter)
+ throws MalformedURLException {
+ File directoryFile = new File(directory);
+ URL directoryURL = directoryFile.toURI().toURL();
+ if (!jarDirectoryURLs.contains(directoryURL) && directoryFile.exists()) {
+
+ // Collect files under $TUSCANY_HOME
+ jarDirectoryURLs.add(directoryURL);
+ collectJARFiles(directoryFile, jarURLs, filter);
+
+ // Collect files under $TUSCANY_HOME/modules
+ File modulesDirectory = new File(directoryFile, "modules");
+ URL modulesDirectoryURL = modulesDirectory.toURI().toURL();
+ if (!jarDirectoryURLs.contains(modulesDirectoryURL) && modulesDirectory.exists()) {
+ jarDirectoryURLs.add(modulesDirectoryURL);
+ collectJARFiles(modulesDirectory, jarURLs, filter);
+ }
+
+ // Collect files under $TUSCANY_HOME/lib
+ File libDirectory = new File(directoryFile, "lib");
+ URL libDirectoryURL = libDirectory.toURI().toURL();
+ if (!jarDirectoryURLs.contains(libDirectoryURL) && libDirectory.exists()) {
+ jarDirectoryURLs.add(libDirectoryURL);
+ collectJARFiles(libDirectory, jarURLs, filter);
+ }
+ }
+ }
+
+ /**
* Collect JAR files in the given directory
* @param directory
* @param urls
Added: incubator/tuscany/java/sca/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd?rev=662674&view=auto
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd (added)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/exsd/runtimeLibraries.exsd Tue Jun 3 00:33:24 2008
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.apache.tuscany.sca.core">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.apache.tuscany.sca.core" id="runtimeLibraries" name="Tuscany Runtime Libraries"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="classpathContainer">
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.jdt.core.IClasspathContainer"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+
+ </documentation>
+ </annotation>
+
+</schema>
Added: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java?rev=662674&view=auto
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java (added)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/ClasspathUtil.java Tue Jun 3 00:33:24 2008
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.core.classpath;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IClasspathEntry;
+
+/**
+ * Utility functions handling the runtime classpath.
+ *
+ * @version $Rev: $ $Date: $
+ */
+public class ClasspathUtil {
+
+ private static final String TUSCANY_RUNTIME_LIBRARIES = "org.apache.tuscany.sca.core.runtimeLibraries";
+
+ /**
+ * Return the installed runtime classpath entries.
+ *
+ * @return
+ * @throws CoreException
+ */
+ public static String installedRuntimeClasspath() throws CoreException {
+
+ List<IClasspathEntry> classpathEntries = new ArrayList<IClasspathEntry>();
+ for (IExtension extension: Platform.getExtensionRegistry().getExtensionPoint(TUSCANY_RUNTIME_LIBRARIES).getExtensions()) {
+ for (IConfigurationElement configuration: extension.getConfigurationElements()) {
+ IClasspathContainer container = (IClasspathContainer)configuration.createExecutableExtension("class");
+ classpathEntries.addAll(Arrays.asList(container.getClasspathEntries()));
+ }
+ }
+
+ String separator = System.getProperty("path.separator");
+ StringBuffer classpath = new StringBuffer();
+ for (int i = 0, n = classpathEntries.size(); i < n; i++) {
+ IClasspathEntry entry = classpathEntries.get(i);
+ if (i >0) {
+ classpath.append(separator);
+ }
+ classpath.append(entry.getPath().toFile().toURI().getPath());
+ }
+
+ return classpath.toString();
+ }
+
+}
Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java?rev=662674&r1=662673&r2=662674&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyClasspathContainer.java Tue Jun 3 00:33:24 2008
@@ -44,14 +44,10 @@
private static final String TUSCANY_HOME = "TUSCANY_HOME";
private static final String TUSCANY_SRC = "TUSCANY_SRC";
- private static final String TUSCANY_FEATURE =
- "features/org.apache.tuscany.sca.feature_1.2.0";
+ private static final String TUSCANY_FEATURE = "features/org.apache.tuscany.sca.feature_1.2.0";
- private static final String TUSCANY_FEATURE_RUNTIME = TUSCANY_FEATURE +
- "/runtime/apache-tuscany-sca-2.0-incubating-SNAPSHOT/" +
- "tuscany-sca-2.0-incubating-SNAPSHOT";
- private static final String TUSCANY_FEATURE_SRC = TUSCANY_FEATURE +
- "/src/apache-tuscany-sca-2.0-incubating-SNAPSHOT-src.zip";
+ private static final String TUSCANY_FEATURE_RUNTIME = TUSCANY_FEATURE + "/runtime";
+ private static final String TUSCANY_FEATURE_SRC = TUSCANY_FEATURE + "/src";
public TuscanyClasspathContainer() {
}
@@ -62,17 +58,34 @@
// Get the runtime location from the installed Tuscany feature
IPath runtimePath = null;
try {
- //FIXME Need a better way to find the location of the Tuscany feature
+
+ // Find the Tuscany distribution under the feature's runtime directory
+ // Typically runtime/distro-archive-name/un-archived-distro-dir
URL url = FileLocator.toFileURL(Platform.getInstallLocation().getURL());
File file = new File(url.toURI());
file = new File(file, TUSCANY_FEATURE_RUNTIME);
if (file.exists()) {
- runtimePath = new Path(file.getPath());
+ File distro = null;
+ for (File f: file.listFiles()) {
+ if (f.getName().contains("tuscany-sca")) {
+ distro = f;
+ break;
+ }
+ }
+ if (distro != null) {
+ for (File f: distro.listFiles()) {
+ if (f.getName().contains("tuscany-sca")) {
+ runtimePath = new Path(f.getPath());
+ break;
+ }
+ }
+ }
}
} catch (Exception e) {
}
if (runtimePath == null) {
+
// Try to get the location of the Tuscany binary distribution from
// the TUSCANY_HOME property or environment variable
String home = System.getProperty(TUSCANY_HOME);
@@ -89,12 +102,23 @@
// Get the source location from the installed Tuscany feature
IPath sourcePath = null;
try {
- //FIXME Need a better way to find the location of the Tuscany feature
+
+ // Find the Tuscany source distribution under the feature's src directory
+ // Typically src/distro-archive-src.zip
URL url = FileLocator.toFileURL(Platform.getInstallLocation().getURL());
File file = new File(url.toURI());
file = new File(file, TUSCANY_FEATURE_SRC);
if (file.exists()) {
- sourcePath = new Path(file.getPath());
+ File distro = null;
+ for (File f: file.listFiles()) {
+ if (f.getName().contains("tuscany-sca") && f.getName().endsWith("-src.zip")) {
+ distro = f;
+ break;
+ }
+ }
+ if (distro != null) {
+ sourcePath = new Path(distro.getPath());
+ }
}
} catch (Exception e) {
}
@@ -117,7 +141,7 @@
// Add the JARs from runtime/lib and runtime/modules as classpath entries
if (runtimePath != null) {
- // Add the jars from runtime/modules
+ // Add a selection of the jars from runtime/modules
File modulesDirectory = runtimePath.append("modules").toFile();
if (modulesDirectory != null && modulesDirectory.exists()) {
for (File file : modulesDirectory.listFiles()) {
Added: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java?rev=662674&view=auto
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java (added)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/classpath/TuscanyRuntimeClasspathContainer.java Tue Jun 3 00:33:24 2008
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.core.classpath;
+
+import java.io.File;
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.JavaCore;
+
+/**
+ * A classpath container for the Tuscany runtime.
+ *
+ * @version $Rev$ $Date$
+ */
+public class TuscanyRuntimeClasspathContainer implements IClasspathContainer {
+
+ public static final IPath TUSCANY_LIBRARY_CONTAINER = new Path("org.apache.tuscany.sca.runtime.library");
+
+ private static final String TUSCANY_HOME = "TUSCANY_HOME";
+
+ private static final String TUSCANY_FEATURE = "features/org.apache.tuscany.sca.feature_1.2.0";
+
+ private static final String TUSCANY_FEATURE_RUNTIME = TUSCANY_FEATURE + "/runtime";
+
+ public TuscanyRuntimeClasspathContainer() {
+ }
+
+ public IClasspathEntry[] getClasspathEntries() {
+
+ // Get the runtime location from the installed Tuscany feature
+ IPath runtimePath = null;
+ try {
+
+ // Find the Tuscany distribution under the feature's runtime directory
+ // Typically runtime/distro-archive-name/un-archived-distro-dir
+ URL url = FileLocator.toFileURL(Platform.getInstallLocation().getURL());
+ File file = new File(url.toURI());
+ file = new File(file, TUSCANY_FEATURE_RUNTIME);
+ if (file.exists()) {
+ File distro = null;
+ for (File f: file.listFiles()) {
+ if (f.getName().contains("tuscany-sca")) {
+ distro = f;
+ break;
+ }
+ }
+ if (distro != null) {
+ for (File f: distro.listFiles()) {
+ if (f.getName().contains("tuscany-sca")) {
+ runtimePath = new Path(f.getPath());
+ break;
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ }
+
+ if (runtimePath == null) {
+
+ // Try to get the location of the Tuscany binary distribution from
+ // the TUSCANY_HOME property or environment variable
+ String home = System.getProperty(TUSCANY_HOME);
+ if (home == null || home.length() == 0) {
+ home = System.getenv(TUSCANY_HOME);
+ }
+ if (home != null && home.length() != 0) {
+ if (new File(home).exists()) {
+ runtimePath = new Path(home);
+ }
+ }
+ }
+
+ if (runtimePath != null) {
+ return new IClasspathEntry[] {JavaCore.newLibraryEntry(runtimePath, null, null)};
+ } else {
+ return new IClasspathEntry[0];
+ }
+ }
+
+ public String getDescription() {
+ return "Tuscany Library";
+ }
+
+ public int getKind() {
+ return IClasspathContainer.K_APPLICATION;
+ }
+
+ public IPath getPath() {
+ return TUSCANY_LIBRARY_CONTAINER;
+ }
+
+}
Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java?rev=662674&r1=662673&r2=662674&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/DomainManagerLauncherUtil.java Tue Jun 3 00:33:24 2008
@@ -28,6 +28,7 @@
import java.io.OutputStream;
import java.net.Socket;
+import org.apache.tuscany.sca.core.classpath.ClasspathUtil;
import org.apache.tuscany.sca.core.classpath.TuscanyClasspathContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@@ -55,7 +56,7 @@
* @version $Rev: $ $Date: $
*/
public class DomainManagerLauncherUtil {
-
+
private static final String TUSCANY_DOMAIN_LAUNCH_CONFIGURATION = "SCA Domain Manager";
private static final String TUSCANY_SCA_DOMAIN_PROJECT = "tuscany-sca-domain";
@@ -201,6 +202,9 @@
newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, domainProject.getProject().getName());
newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.apache.tuscany.sca.node.launcher.DomainManagerLauncher");
newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, domainProject.getLocation().toString());
+
+ // Pass the runtime classpath as a system property
+ newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "-DTUSCANY_PATH=" + ClasspathUtil.installedRuntimeClasspath());
// Save the configuration
newConfiguration.doSave();
Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java?rev=662674&r1=662673&r2=662674&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/org/apache/tuscany/sca/core/launch/NodeLauncherUtil.java Tue Jun 3 00:33:24 2008
@@ -28,6 +28,7 @@
import java.net.MalformedURLException;
import java.net.Socket;
+import org.apache.tuscany.sca.core.classpath.ClasspathUtil;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
@@ -128,7 +129,10 @@
// Save the composite path in the launch configuration
newConfiguration.setAttribute("COMPOSITE_PATH", file.getFullPath().toString());
-
+
+ // Pass the runtime classpath as a system property
+ newConfiguration.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "-DTUSCANY_PATH=" + ClasspathUtil.installedRuntimeClasspath());
+
// Save the configuration
newConfiguration.doSave();
Modified: incubator/tuscany/java/sca/tools/eclipse/plugins/core/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/tools/eclipse/plugins/core/plugin.xml?rev=662674&r1=662673&r2=662674&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/eclipse/plugins/core/plugin.xml (original)
+++ incubator/tuscany/java/sca/tools/eclipse/plugins/core/plugin.xml Tue Jun 3 00:33:24 2008
@@ -20,6 +20,10 @@
-->
<plugin>
+ <extension-point id="runtimeLibraries"
+ name="Tuscany Runtime Libraries"
+ schema="exsd/runtimeLibraries.exsd"/>
+
<extension point = "org.eclipse.wst.xml.core.catalogContributions">
<catalogContribution id="default">
<uri name="http://www.osoa.org/xmlns/sca/1.0" uri="xsd/sca-all.xsd"/>
@@ -37,6 +41,13 @@
<file-association content-type="org.eclipse.core.runtime.xml" file-extensions="componentType"/>
</extension>
+ <extension
+ point="org.apache.tuscany.sca.core.runtimeLibraries">
+ <classpathContainer
+ id="org.apache.tuscany.sca.runtime.library"
+ class="org.apache.tuscany.sca.core.classpath.TuscanyRuntimeClasspathContainer"/>
+ </extension>
+
<extension point="org.eclipse.jdt.core.classpathContainerInitializer">
<classpathContainerInitializer
id="org.apache.tuscany.sca.runtime.library"
@@ -133,6 +144,6 @@
id="org.apache.tuscany.sca.core.newwizards.newcompositewizard">
<description>Create a new SCA ComponentType</description>
</wizard>
- </extension>
-
+ </extension>
+
</plugin>