diff options
Diffstat (limited to '')
4 files changed, 832 insertions, 3 deletions
diff --git a/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/OSGiTestRuntime.java b/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/OSGiTestRuntime.java index 6362385a13..6356718fe5 100644 --- a/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/OSGiTestRuntime.java +++ b/java/sca/itest/osgi-tuscany/osgi-tuscany-test/src/main/java/org/apache/tuscany/sca/test/osgi/runtime/impl/OSGiTestRuntime.java @@ -134,12 +134,15 @@ public abstract class OSGiTestRuntime { "javax.xml.xpath, " +
"javax.sql," +
"org.w3c.dom, " +
+ "org.w3c.dom.bootstrap, " +
+ "org.w3c.dom.ls, " +
"org.xml.sax, " +
"org.xml.sax.ext, " +
"org.xml.sax.helpers, " +
"javax.security.auth, " +
"javax.security.auth.login, " +
"javax.security.auth.callback, " +
+ "javax.security.cert, " +
"javax.naming, " +
"javax.naming.spi, " +
"javax.naming.directory, " +
@@ -147,6 +150,7 @@ public abstract class OSGiTestRuntime { "javax.imageio, " +
"sun.misc, " +
"javax.net, " +
+ "javax.net.ssl, " +
"javax.crypto, " +
"javax.rmi, " +
"javax.transaction, " +
diff --git a/java/sca/itest/osgi-tuscany/pom.xml b/java/sca/itest/osgi-tuscany/pom.xml index 4b432782a9..0da4f09d61 100644 --- a/java/sca/itest/osgi-tuscany/pom.xml +++ b/java/sca/itest/osgi-tuscany/pom.xml @@ -31,6 +31,7 @@ <modules>
<module>test-bundles</module>
+ <module>tuscany-versioned</module>
<module>tuscany-osgi-installer</module>
<module>osgi-tuscany-test</module>
</modules>
diff --git a/java/sca/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java b/java/sca/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java index 2366acd094..059200302c 100644 --- a/java/sca/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java +++ b/java/sca/itest/osgi-tuscany/tuscany-osgi-installer/src/main/java/org/apache/tuscany/sca/installer/InstallerBundleActivator.java @@ -77,9 +77,28 @@ public class InstallerBundleActivator implements BundleActivator { }; + private static final String[] rebundleJars = { + "org.apache.tuscany.sdo", // Recreate export statements + }; + public void start(BundleContext bundleContext) throws Exception { + + String tuscanyHome = System.getProperty("TUSCANY_HOME"); + if (tuscanyHome == null) { + File homeDir = new File("../tuscany-versioned/target/classes"); + if (homeDir.exists()) { + tuscanyHome = homeDir.getCanonicalPath(); + } + } - installTuscanyIntoOSGi(bundleContext); + if (tuscanyHome == null) { + System.out.println("Installing Tuscany bundles and virtual 3rd party bundles."); + installTuscanyIntoOSGi(bundleContext); + } + else { + System.out.println("Installing Tuscany from TUSCANY_HOME=" + tuscanyHome); + installVersionedTuscanyIntoOSGi(bundleContext, tuscanyHome); + } } public void stop(BundleContext bundleContext) throws Exception { @@ -92,6 +111,75 @@ public class InstallerBundleActivator implements BundleActivator { } } } + + private void installVersionedTuscanyIntoOSGi(BundleContext bundleContext, String tuscanyHome) { + + try { + Bundle[] installedBundles = bundleContext.getBundles(); + HashSet<String> installedBundleSet = new HashSet<String>(); + for (Bundle bundle : installedBundles) { + if (bundle.getSymbolicName() != null) + installedBundleSet.add(bundle.getSymbolicName()); + } + + // FIXME: SDO bundles dont have the correct dependencies + System.setProperty("commonj.sdo.impl.HelperProvider", "org.apache.tuscany.sdo.helper.HelperProviderImpl"); + + HashSet<File> tuscanyJars = new HashSet<File>(); + HashSet<File> thirdPartyJars = new HashSet<File>(); + + + File tuscanyInstallDir = new File(tuscanyHome).getCanonicalFile(); + findBundles(bundleContext, tuscanyInstallDir, tuscanyJars, thirdPartyJars); + + + for (File bundleFile : thirdPartyJars) { + + String bundleName = bundleFile.getName(); + if (bundleName.startsWith("org.apache.felix")) + continue; + + boolean installed = false; + for (String name : rebundleJars) { + if (bundleName.startsWith(name)) { + rebundleAndInstall(bundleContext, tuscanyInstallDir, bundleFile); + installed = true; + } + } + if (installed) + continue; + + bundleContext.installBundle(bundleFile.toURI().toURL().toString()); + + } + + Bundle osgiRuntimeBundle = null; + for (File bundleFile : tuscanyJars) { + Bundle bundle = bundleContext.installBundle(bundleFile.toURI().toURL().toString()); + if ("org.apache.tuscany.sca.osgi.runtime".equals(bundle.getSymbolicName())) + osgiRuntimeBundle = bundle; + } + if (osgiRuntimeBundle != null) + osgiRuntimeBundle.start(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void rebundleAndInstall(BundleContext bundleContext, File tuscanyInstallDir, File bundleFile) throws Exception { + String bundleSymbolicName = "org.apache.tuscany.sca.3rdparty." + bundleFile.getName(); + if (bundleSymbolicName.endsWith(".jar")) bundleSymbolicName = bundleSymbolicName.substring(0, bundleSymbolicName.length()-4); + + String bundleLocation = bundleFile.toURI().toURL().toString(); + InputStream bundleManifestStream = updateBundleManifest(bundleFile, bundleSymbolicName); + HashSet<File> jarSet = new HashSet<File>(); + jarSet.add(bundleFile); + + File newBundleFile = new File(tuscanyInstallDir, "org.apache.tuscany.sca." + bundleFile.getName()); + createAndInstallBundle(bundleContext, bundleLocation, newBundleFile, bundleManifestStream, jarSet); + bundleManifestStream.close(); + } private void installTuscanyIntoOSGi(BundleContext bundleContext) { @@ -167,6 +255,98 @@ public class InstallerBundleActivator implements BundleActivator { e.printStackTrace(); } } + + private void findBundles(BundleContext bundleContext, + File tuscanyInstallDir, + HashSet<File> tuscanyJars, + HashSet<File> thirdPartyJars) + throws IOException + { + + File[] jars = tuscanyInstallDir.listFiles(); + for (File jar : jars) { + String jarName = jar.getName(); + if (!jarName.endsWith(".jar")) + continue; + + if (!jarName.startsWith("org.apache.tuscany.sca")) { + if (jarName.endsWith(".jar")) + { + thirdPartyJars.add(jar); + } + } else { + boolean installTuscanyJar = true; + for (String name : tuscanyModulesToIgnore) { + name = name.replaceAll("-", "."); + if (jarName.startsWith("org.apache.tuscany.sca." + name)) { + installTuscanyJar = false; + break; + } + } + if (installTuscanyJar) + tuscanyJars.add(jar); + } + } + } + + + private InputStream updateBundleManifest(File jarFile, String bundleSymbolicName) throws Exception { + + if (!jarFile.exists()) + return null; + JarInputStream jar = new JarInputStream(new FileInputStream(jarFile)); + Manifest manifest = jar.getManifest(); + if (manifest == null) { + ZipEntry ze; + while ((ze = jar.getNextEntry()) != null) { + if (ze.getName().equals("META-INF/MANIFEST.MF")) + break; + } + if (ze != null) { + byte[] bytes = new byte[(int)ze.getSize()]; + jar.read(bytes); + manifest = new Manifest(new ByteArrayInputStream(bytes)); + } + } + if (manifest == null) { + manifest = new Manifest(); + } + + String bundleName = jarFile.getName(); + boolean isImmutableJar = false; + for (String immutableJar : immutableJars) { + if (bundleName.startsWith(immutableJar)) { + isImmutableJar = true; + break; + } + } + Attributes attributes = manifest.getMainAttributes(); + if (isImmutableJar) + attributes.putValue("Bundle-ClassPath", bundleName); + + + attributes.remove(new Attributes.Name("Require-Bundle")); + attributes.putValue("DynamicImport-Package", "*"); + + // Existing export statements in bundles may contain versions, so they should be used as is + // SDO exports are not sufficient, and should be changed + if (attributes.getValue("Export-Package") == null || bundleName.startsWith("org.apache.tuscany.sdo.tuscany-sdo-impl")) { + + HashSet<String> packages = getPackagesInJar(bundleName, jar); + String version = getJarVersion(bundleName); + + attributes.putValue("Export-Package", packagesToString(packages, version)); + attributes.putValue("Import-Package", packagesToString(packages, null)); + } + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + manifest.write(out); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + out.close(); + + return in; + + } private void findJars(BundleContext bundleContext, HashSet<File> tuscanyJars, @@ -222,10 +402,10 @@ public class InstallerBundleActivator implements BundleActivator { tuscanyJars.add(jar); } } - - } + + private File findTuscanyInstallDir(Bundle installerBundle) throws IOException { diff --git a/java/sca/itest/osgi-tuscany/tuscany-versioned/pom.xml b/java/sca/itest/osgi-tuscany/tuscany-versioned/pom.xml new file mode 100644 index 0000000000..2a0ff0dcc8 --- /dev/null +++ b/java/sca/itest/osgi-tuscany/tuscany-versioned/pom.xml @@ -0,0 +1,644 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>1.4-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>itest-osgi-tuscany-versioned</artifactId> + <name>Apache Tuscany OSGi - Versioned Tuscany Bundles</name> + + <properties> + <maven.test.skip>true</maven.test.skip> + <tuscany.version>${pom.version}</tuscany.version> + + </properties> + <dependencies> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-monitor-logging</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-assembly</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-assembly-xml</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-assembly-xsd</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-dwr</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-ejb-runtime</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-atom</artifactId> + <version>${pom.version}</version> + </dependency> +<!-- + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-atom-abdera</artifactId> + <version>${pom.version}</version> + </dependency> +--> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-feed</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-rss</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-rss-rome</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-http-runtime</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-jms-runtime</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.activemq</groupId> + <artifactId>apache-activemq</artifactId> + <version>4.1.1</version> + <exclusions> + <exclusion> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + </exclusion> + <exclusion> + <groupId>commons-fileupload</groupId> + <artifactId>commons-fileupload</artifactId> + </exclusion> + <exclusion> + <groupId>commons-beanutils</groupId> + <artifactId>commons-beanutils</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.activemq</groupId> + <artifactId>activemq-console</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.activemq</groupId> + <artifactId>activemq-core</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.activemq</groupId> + <artifactId>activemq-optional</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.activemq</groupId> + <artifactId>activemq-web</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.activemq</groupId> + <artifactId>activemq-web-demo</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.activemq</groupId> + <artifactId>activemq-jaas</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-j2ee-jacc_1.0_spec</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jms_1.1_spec</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jsp_2.0_spec</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-j2ee-management_1.0_spec</artifactId> + </exclusion> + <exclusion> + <groupId>org.mortbay.jetty</groupId> + <artifactId>servlet-api-2.5</artifactId> + </exclusion> + <exclusion> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + </exclusion> + <exclusion> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-util</artifactId> + </exclusion> + <exclusion> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + </exclusion> + <exclusion> + <groupId>backport-util-concurrent</groupId> + <artifactId>backport-util-concurrent</artifactId> + </exclusion> + <exclusion> + <groupId>activesoap</groupId> + <artifactId>jaxp-api</artifactId> + </exclusion> + <exclusion> + <groupId>activemq</groupId> + <artifactId>jmdns</artifactId> + </exclusion> + <exclusion> + <groupId>jrms</groupId> + <artifactId>jrms</artifactId> + </exclusion> + <exclusion> + <groupId>xerces</groupId> + <artifactId>xmlParserAPIs</artifactId> + </exclusion> + <exclusion> + <groupId>xstream</groupId> + <artifactId>xstream</artifactId> + </exclusion> + <exclusion> + <groupId>xmlpull</groupId> + <artifactId>xmlpull</artifactId> + </exclusion> + <exclusion> + <groupId>mx4j</groupId> + <artifactId>mx4j</artifactId> + </exclusion> + <exclusion> + <groupId>mx4j</groupId> + <artifactId>mx4j-remote</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-jsonrpc-runtime</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-notification</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-rmi</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-sca</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-sca-axis2</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-sca-xml</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-ws</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-binding-ws-xml</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-contribution</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-contribution-groovy</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-contribution-impl</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-contribution-java</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-contribution-namespace</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-core</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-core-databinding</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-core-spi</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding-axiom</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding-fastinfoset</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding-jaxb</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding-sdo</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding-sdo-axiom</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding-xmlbeans</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-databinding-xstream</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-host-embedded</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-host-http</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-host-rmi</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-host-webapp</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-host-jetty</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-interface</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-interface-java</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-interface-java-xml</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-interface-wsdl</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-interface-wsdl-xml</artifactId> + <version>${pom.version}</version> + </dependency> +<!-- + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-bpel</artifactId> + <version>${pom.version}</version> + <exclusions> + <exclusion> + <groupId>ant</groupId> + <artifactId>ant</artifactId> + </exclusion> + </exclusions> + </dependency> +--> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-das</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-ejb</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-ejb</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-java</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-java-xml</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-node</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-node-runtime</artifactId> + <version>${pom.version}</version> + <exclusions> + <exclusion> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-host-tomcat</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-osgi</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-resource-runtime</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-script</artifactId> + <version>${pom.version}</version> + <exclusions> + <exclusion> + <groupId>groovy</groupId> + <artifactId>groovy-all-minimal</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-spring</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-xquery</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-implementation-widget-runtime</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-node2-api</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-node2-impl</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-node2-launcher</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-policy</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-policy-logging</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-policy-security</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-policy-xml</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-definitions</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-workspace</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-domain-manager</artifactId> + <version>${pom.version}</version> + <exclusions> + <exclusion> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-host-tomcat</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-workspace-impl</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-workspace-xml</artifactId> + <version>${pom.version}</version> + </dependency> +<!-- + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-java2wsdl</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-wsdl2java</artifactId> + <version>${pom.version}</version> + </dependency> +--> + <dependency> + <groupId>${pom.groupId}</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sdo</groupId> + <artifactId>tuscany-sdo-impl</artifactId> + <version>1.1-incubating</version> + <exclusions> + <exclusion> + <groupId>org.codehaus.woodstox</groupId> + <artifactId>wstx-asl</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sdo</groupId> + <artifactId>tuscany-sdo-tools</artifactId> + <version>1.1-incubating</version> + </dependency> + + <dependency> + <groupId>com.sun.xml.bind</groupId> + <artifactId>jaxb-impl</artifactId> + <version>2.1.6</version> + <exclusions> + <exclusion> + <groupId>javax.xml.stream</groupId> + <artifactId>stax-api</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.1</version> + </dependency> + <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>1.0</version> + <exclusions> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + <version>2.2</version> + </dependency> + </dependencies> + + + <build> + <plugins> + <plugin> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-maven-bundle-plugin</artifactId> + <version>1.4-SNAPSHOT</version> + <extensions>true</extensions> + <executions> + <execution> + <goals> + <goal>execute</goal> + </goals> + </execution> + </executions> + </plugin> + + + </plugins> + </build> + +</project> |