From 1fd00705939747143753aeae8c8aa084e3d9f800 Mon Sep 17 00:00:00 2001 From: rfeng Date: Mon, 29 Jun 2009 22:10:28 +0000 Subject: [PATCH] Merge changes from trunk to bring up the distributed osgi samples with Tuscany distribution git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@789466 13f79535-47bb-0310-9956-ffa450edef68 --- .../all/manifests/axiom-api-1.2.7.MF | 48 +++++ .../sca-java-2.0-M3/distribution/all/pom.xml | 11 ++ .../META-INF/MANIFEST.MF | 1 - .../binding-ws-axis2/META-INF/MANIFEST.MF | 19 +- .../modules/binding-ws-axis2/pom.xml | 7 + .../ws/axis2/Axis2ServiceProvider.java | 3 +- .../impl/OSGiBundleContributionScanner.java | 16 +- .../modules/contribution/META-INF/MANIFEST.MF | 1 + .../assembly/impl/EndpointSerializerImpl.java | 8 +- .../databinding-axiom/META-INF/MANIFEST.MF | 4 - .../sca/node/osgi/impl/NodeManager.java | 21 +- .../node/equinox/launcher/NodeLauncher.java | 29 ++- branches/sca-java-2.0-M3/pom.xml | 7 + .../resources => }/OSGI-INF/add-component.xml | 0 .../OSGI-INF/blueprint/operations-module.xml | 0 .../OSGI-INF/divide-component.xml | 0 .../OSGI-INF/multiply-component.xml | 0 .../OSGI-INF/sca/bundle.componentType | 0 .../OSGI-INF/sca/bundle.composite | 0 .../OSGI-INF/subtract-component.xml | 0 .../dosgi-calculator-operations/README | 183 ++++++++++++++++++ .../OSGI-INF/blueprint/calculator-module.xml | 0 .../OSGI-INF/calculator-component.xml | 0 .../calculator-service-descriptions.xml | 0 .../OSGI-INF/sca/bundle.componentType | 0 .../OSGI-INF/sca/bundle.composite | 0 .../samples/dosgi-calculator/README | 155 +++++++++++++++ .../dosgi-calculator/dosgi-calculator.png | Bin 0 -> 85103 bytes 28 files changed, 484 insertions(+), 29 deletions(-) create mode 100644 branches/sca-java-2.0-M3/distribution/all/manifests/axiom-api-1.2.7.MF rename branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/{src/main/resources => }/OSGI-INF/add-component.xml (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/{src/main/resources => }/OSGI-INF/blueprint/operations-module.xml (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/{src/main/resources => }/OSGI-INF/divide-component.xml (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/{src/main/resources => }/OSGI-INF/multiply-component.xml (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/{src/main/resources => }/OSGI-INF/sca/bundle.componentType (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/{src/main/resources => }/OSGI-INF/sca/bundle.composite (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/{src/main/resources => }/OSGI-INF/subtract-component.xml (100%) create mode 100644 branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/README rename branches/sca-java-2.0-M3/samples/dosgi-calculator/{src/main/resources => }/OSGI-INF/blueprint/calculator-module.xml (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator/{src/main/resources => }/OSGI-INF/calculator-component.xml (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator/{src/main/resources => }/OSGI-INF/remote-service/calculator-service-descriptions.xml (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator/{src/main/resources => }/OSGI-INF/sca/bundle.componentType (100%) rename branches/sca-java-2.0-M3/samples/dosgi-calculator/{src/main/resources => }/OSGI-INF/sca/bundle.composite (100%) create mode 100644 branches/sca-java-2.0-M3/samples/dosgi-calculator/README create mode 100644 branches/sca-java-2.0-M3/samples/dosgi-calculator/dosgi-calculator.png diff --git a/branches/sca-java-2.0-M3/distribution/all/manifests/axiom-api-1.2.7.MF b/branches/sca-java-2.0-M3/distribution/all/manifests/axiom-api-1.2.7.MF new file mode 100644 index 0000000000..400fdc58e8 --- /dev/null +++ b/branches/sca-java-2.0-M3/distribution/all/manifests/axiom-api-1.2.7.MF @@ -0,0 +1,48 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Axiom API +Bundle-SymbolicName: org.apache.ws.commons.axiom.axiom-api +Bundle-Version: 1.2.7 +Bundle-ClassPath: axiom-api-1.2.7.jar +Bundle-Vendor: Apache Software Foundation +Export-Package: org.apache.axiom.attachments, + org.apache.axiom.attachments.impl, + org.apache.axiom.attachments.lifecycle, + org.apache.axiom.attachments.lifecycle.impl, + org.apache.axiom.attachments.utils, + org.apache.axiom.om, + org.apache.axiom.om.ds, + org.apache.axiom.om.ds.custombuilder, + org.apache.axiom.om.impl, + org.apache.axiom.om.impl.builder, + org.apache.axiom.om.impl.exception, + org.apache.axiom.om.impl.serialize, + org.apache.axiom.om.impl.traverse, + org.apache.axiom.om.impl.util, + org.apache.axiom.om.util, + org.apache.axiom.om.xpath, + org.apache.axiom.soap, + org.apache.axiom.soap.impl.builder +Archiver-Version: Plexus Archiver +Build-Jdk: 1.5.0_15 +Created-By: Apache Maven +Bundle-DocURL: http://www.apache.org/ +Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt +Built-By: dims +Import-Package: javax.activation, + javax.mail, + javax.mail.internet, + javax.xml.namespace, + javax.xml.stream, + org.apache.axiom.om.impl.dom.factory;resolution:=optional, + org.apache.axiom.om.impl.llom.factory;resolution:=optional, + org.apache.axiom.soap.impl.dom.factory;resolution:=optional, + org.apache.axiom.soap.impl.llom.soap11;resolution:=optional, + org.apache.axiom.soap.impl.llom.soap12;resolution:=optional, + org.apache.commons.logging, + org.jaxen;resolution:=optional, + org.jaxen.saxpath;resolution:=optional, + org.jaxen.util;resolution:=optional, + org.w3c.dom, + org.xml.sax, + org.xml.sax.helpers diff --git a/branches/sca-java-2.0-M3/distribution/all/pom.xml b/branches/sca-java-2.0-M3/distribution/all/pom.xml index 305acc5d44..b3cc21d03c 100644 --- a/branches/sca-java-2.0-M3/distribution/all/pom.xml +++ b/branches/sca-java-2.0-M3/distribution/all/pom.xml @@ -57,12 +57,23 @@ false true + + org.apache.ws.commons.axiom + axiom-api + 1.2.7 + ${basedir}/manifests/axiom-api-1.2.7.MF + org.apache.woden woden-impl-dom 1.0M8 ${basedir}/manifests/woden-impl-dom-1.0M8.MF + + org.apache.axis2 + * + * + diff --git a/branches/sca-java-2.0-M3/modules/binding-ws-axis2-policy/META-INF/MANIFEST.MF b/branches/sca-java-2.0-M3/modules/binding-ws-axis2-policy/META-INF/MANIFEST.MF index 0f0213707a..992af5dd44 100644 --- a/branches/sca-java-2.0-M3/modules/binding-ws-axis2-policy/META-INF/MANIFEST.MF +++ b/branches/sca-java-2.0-M3/modules/binding-ws-axis2-policy/META-INF/MANIFEST.MF @@ -44,7 +44,6 @@ Import-Package: javax.xml.namespace, org.apache.tuscany.sca.contribution.processor;version="2.0.0", org.apache.tuscany.sca.contribution.resolver;version="2.0.0", org.apache.tuscany.sca.core;version="2.0.0", - org.apache.tuscany.sca.databinding.axiom;version="2.0.0", org.apache.tuscany.sca.interfacedef;version="2.0.0", org.apache.tuscany.sca.invocation;version="2.0.0", org.apache.tuscany.sca.monitor;version="2.0.0", diff --git a/branches/sca-java-2.0-M3/modules/binding-ws-axis2/META-INF/MANIFEST.MF b/branches/sca-java-2.0-M3/modules/binding-ws-axis2/META-INF/MANIFEST.MF index adef101ef7..74869d3c4a 100644 --- a/branches/sca-java-2.0-M3/modules/binding-ws-axis2/META-INF/MANIFEST.MF +++ b/branches/sca-java-2.0-M3/modules/binding-ws-axis2/META-INF/MANIFEST.MF @@ -76,7 +76,14 @@ Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt Bundle-Description: Apache Tuscany SCA Axis2-based WS Binding Extensio n Eclipse-RegisterBuddy: org.apache.axis2.kernel -Import-Package: javax.security.auth.callback;resolution:=optional, +Import-Package: javax.xml.stream, + javax.xml.transform, + javax.xml.transform.dom, + javax.xml.parsers, + org.w3c.dom, + javax.activation;resolution:=optional, + org.xml.sax, + javax.security.auth.callback;resolution:=optional, javax.servlet, javax.servlet.http, javax.wsdl, @@ -86,9 +93,6 @@ Import-Package: javax.security.auth.callback;resolution:=optional, javax.wsdl.factory;resolution:=optional, javax.wsdl.xml;resolution:=optional, javax.xml.namespace, - javax.xml.stream, - javax.xml.transform, - javax.xml.transform.dom, org.apache.axiom.om, org.apache.axiom.om.impl.builder, org.apache.axiom.om.util, @@ -112,6 +116,7 @@ Import-Package: javax.security.auth.callback;resolution:=optional, org.apache.axis2.util.threadpool, org.apache.commons.httpclient, org.apache.commons.httpclient.params, + org.apache.commons.logging;resolution:=optional, org.apache.neethi, org.apache.tuscany.sca.assembly;version="2.0.0", org.apache.tuscany.sca.binding.ws;version="2.0.0", @@ -144,12 +149,8 @@ Import-Package: javax.security.auth.callback;resolution:=optional, org.apache.ws.security, org.apache.ws.security.handler, org.oasisopen.sca;version="2.0.0", - org.oasisopen.sca.annotation;version="2.0.0";resolution:=optional, - org.w3c.dom, - javax.activation;resolution:=optional, - org.xml.sax + org.oasisopen.sca.annotation;version="2.0.0";resolution:=optional Bundle-SymbolicName: org.apache.tuscany.sca.binding.ws.axis2 -Fragment-Host: org.apache.axis2.kernel Bundle-DocURL: http://www.apache.org/ Bundle-RequiredExecutionEnvironment: J2SE-1.5, JavaSE-1.6 diff --git a/branches/sca-java-2.0-M3/modules/binding-ws-axis2/pom.xml b/branches/sca-java-2.0-M3/modules/binding-ws-axis2/pom.xml index dcc97d3400..116c34e357 100644 --- a/branches/sca-java-2.0-M3/modules/binding-ws-axis2/pom.xml +++ b/branches/sca-java-2.0-M3/modules/binding-ws-axis2/pom.xml @@ -84,10 +84,17 @@ runtime + + org.apache.tuscany.sca + tuscany-databinding + 2.0-M3-SNAPSHOT + + org.apache.tuscany.sca tuscany-databinding-axiom 2.0-M3-SNAPSHOT + runtime diff --git a/branches/sca-java-2.0-M3/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java b/branches/sca-java-2.0-M3/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java index cd3a6b38b8..1db1d94dee 100644 --- a/branches/sca-java-2.0-M3/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java +++ b/branches/sca-java-2.0-M3/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java @@ -29,6 +29,7 @@ import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; @@ -118,8 +119,6 @@ import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import edu.emory.mathcs.backport.java.util.Collections; - public class Axis2ServiceProvider { public static final String IMPORT_TAG = "import"; public static final String INCLUDE_TAG = "include"; diff --git a/branches/sca-java-2.0-M3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java b/branches/sca-java-2.0-M3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java index 3d20d968a3..a8bec24dab 100644 --- a/branches/sca-java-2.0-M3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java +++ b/branches/sca-java-2.0-M3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleContributionScanner.java @@ -37,6 +37,7 @@ import org.apache.tuscany.sca.contribution.processor.ContributionException; import org.apache.tuscany.sca.contribution.processor.ContributionReadException; import org.apache.tuscany.sca.contribution.scanner.ContributionScanner; import org.osgi.framework.Bundle; +import org.osgi.framework.Constants; /** * Bundle Contribution package processor. @@ -123,19 +124,30 @@ public class OSGiBundleContributionScanner implements ContributionScanner { } List artifacts = new ArrayList(); + Set bundleClassPath = new HashSet(); + String cp = (String)bundle.getHeaders().get(Constants.BUNDLE_CLASSPATH); + if (cp != null) { + String[] paths = cp.split(","); + for (String path : paths) { + bundleClassPath.add(path.trim()); + } + } try { Enumeration entries = bundle.findEntries("/", "*", true); while (entries.hasMoreElements()) { URL entry = (URL)entries.nextElement(); String entryName = entry.getPath(); + if (entryName.contains("/.svn/")) { + // Ignore .svn files + continue; + } if (entryName.startsWith("/")) { entryName = entryName.substring(1); } artifacts.add(entryName); - // FIXME: We probably should honor Bundle-ClassPath headers to deal with inner jars - if (entryName.endsWith(".jar")) { + if (entryName.endsWith(".jar") && bundleClassPath.contains(entryName)) { artifacts.addAll(getJarArtifacts(entry, entry.openStream())); } diff --git a/branches/sca-java-2.0-M3/modules/contribution/META-INF/MANIFEST.MF b/branches/sca-java-2.0-M3/modules/contribution/META-INF/MANIFEST.MF index aeda1d66a6..6d2c1e8380 100644 --- a/branches/sca-java-2.0-M3/modules/contribution/META-INF/MANIFEST.MF +++ b/branches/sca-java-2.0-M3/modules/contribution/META-INF/MANIFEST.MF @@ -49,6 +49,7 @@ Import-Package: javax.xml.namespace, org.apache.tuscany.sca.monitor;version="2.0.0", org.apache.tuscany.sca.policy;version="2.0.0", org.w3c.dom, + org.w3c.dom.ls, org.xml.sax, org.xml.sax.helpers Bundle-SymbolicName: org.apache.tuscany.sca.contribution diff --git a/branches/sca-java-2.0-M3/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointSerializerImpl.java b/branches/sca-java-2.0-M3/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointSerializerImpl.java index cd86fd21aa..b9eb6c117b 100644 --- a/branches/sca-java-2.0-M3/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointSerializerImpl.java +++ b/branches/sca-java-2.0-M3/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/EndpointSerializerImpl.java @@ -61,7 +61,7 @@ public class EndpointSerializerImpl implements EndpointSerializer { endpoint.setBinding(result.getBinding()); endpoint.setInterfaceContract(result.getService().getInterfaceContract()); } catch (Exception e) { - throw new IOException(e); + throw new IOException(e.getMessage()); } } @@ -75,7 +75,7 @@ public class EndpointSerializerImpl implements EndpointSerializer { writer.close(); return sw.toString(); } catch (Exception e) { - throw new IOException(e); + throw new IOException(e.getMessage()); } } @@ -89,7 +89,7 @@ public class EndpointSerializerImpl implements EndpointSerializer { endpointReference.setBinding(result.getBinding()); endpointReference.setInterfaceContract(result.getReference().getInterfaceContract()); } catch (Exception e) { - throw new IOException(e); + throw new IOException(e.getMessage()); } } @@ -102,7 +102,7 @@ public class EndpointSerializerImpl implements EndpointSerializer { writer.close(); return sw.toString(); } catch (Exception e) { - throw new IOException(e); + throw new IOException(e.getMessage()); } } } \ No newline at end of file diff --git a/branches/sca-java-2.0-M3/modules/databinding-axiom/META-INF/MANIFEST.MF b/branches/sca-java-2.0-M3/modules/databinding-axiom/META-INF/MANIFEST.MF index d1b38bea6c..bc9ebc0bc8 100644 --- a/branches/sca-java-2.0-M3/modules/databinding-axiom/META-INF/MANIFEST.MF +++ b/branches/sca-java-2.0-M3/modules/databinding-axiom/META-INF/MANIFEST.MF @@ -18,9 +18,6 @@ Import-Package: javax.xml.namespace, javax.xml.stream, org.apache.axiom.om, org.apache.axiom.om.impl.builder, - org.apache.axiom.om.impl.llom.factory;resolution:=optional, - org.apache.axiom.soap.impl.llom.soap11;resolution:=optional, - org.apache.axiom.soap.impl.llom.soap12;resolution:=optional, org.apache.tuscany.sca.databinding;version="2.0.0", org.apache.tuscany.sca.databinding.axiom;version="2.0.0", org.apache.tuscany.sca.databinding.impl;version="2.0.0", @@ -30,6 +27,5 @@ Import-Package: javax.xml.namespace, org.apache.tuscany.sca.interfacedef.util;version="1.4", org.apache.tuscany.sca.policy;version="2.0.0" Bundle-SymbolicName: org.apache.tuscany.sca.databinding.axiom -Fragment-Host: org.apache.ws.commons.axiom.axiom-api Bundle-DocURL: http://www.apache.org/ Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 diff --git a/branches/sca-java-2.0-M3/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeManager.java b/branches/sca-java-2.0-M3/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeManager.java index fb2e8a8305..3f71117c1a 100644 --- a/branches/sca-java-2.0-M3/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeManager.java +++ b/branches/sca-java-2.0-M3/modules/node-impl-osgi/src/main/java/org/apache/tuscany/sca/node/osgi/impl/NodeManager.java @@ -19,8 +19,8 @@ package org.apache.tuscany.sca.node.osgi.impl; +import java.net.URL; import java.util.Dictionary; -import java.util.Enumeration; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,12 +68,27 @@ public class NodeManager implements SynchronousBundleListener, ServiceListener { if (headers.get("SCA-Composite") != null) { return true; } - Enumeration entries = bundle.findEntries("OSGI-INF/sca", "*", false); + + URL bundleComposite = bundle.getResource("OSGI-INF/sca/bundle.composite"); + if (bundleComposite != null) { + return true; + } + + /* FIXME: What if there is a META-INF/sca-contribution.xml? There are two cases: + * 1. The file contains deployable elements + * 2. The file doesn't contain deployable elements + */ + + /* + * FIXME: Do we want to use all of the .composite files under OSGI-INF/sca? + */ + + /* + Enumeration entries = bundle.findEntries("OSGI-INF/sca", "bundle.composite", false); if (entries != null && entries.hasMoreElements()) { return true; } - /* // OSGi Declarative Services if (headers.get("Service-Component") != null) { return true; diff --git a/branches/sca-java-2.0-M3/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java b/branches/sca-java-2.0-M3/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java index 08f962fb0a..79aedc81c4 100644 --- a/branches/sca-java-2.0-M3/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java +++ b/branches/sca-java-2.0-M3/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java @@ -35,15 +35,14 @@ import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.PosixParser; -import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; -import org.osgi.framework.Constants; /** * A launcher for SCA nodes. * * Agruments: * [-config ]: The configuration folder for Equinox + * [-bundles ]: A list of bundles to be installed * [-c ]: The composite URI * [-t ]: Time to live in milliseconds before the node is started * contribution1 ... contributionN: A list of contribution files or URLs @@ -128,6 +127,7 @@ public class NodeLauncher { if (cli.hasOption("config")) { System.setProperty("osgi.configuration.area", cli.getOptionValue("config")); } + while (true) { if (cli.hasOption("node")) { // Create a node from a configuration URI @@ -139,10 +139,28 @@ public class NodeLauncher { equinox = launcher.equinoxHost; node = launcher.createNode(configurationURI); - } else if (cli.hasOption("bundles")) { + } + else if (cli.hasOption("bundles")) { + /** + * osgi.bundles + * The comma-separated list of bundles which are automatically installed and optionally started once the system is up + * and running. Each entry is of the form: + * [@ [] [":start"]] + * If the start-level (>0 integer) is omitted then the framework will use the default start level for the bundle. + * If the "start" tag is added then the bundle will be marked as started after being installed. Simple bundle locations are + * interepreted as relative to the framework's parent directory. The start-level indicates the OSGi start level at which the + * bundle should run. If this value is not set, the system computes an appropriate default. + */ + String bundles = cli.getOptionValue("bundles"); + if (bundles != null) { + System.setProperty("osgi.bundles", cli.getOptionValue("bundles")); + } + // Create a node launcher NodeLauncher launcher = newInstance(); equinox = launcher.equinoxHost; + + /* List bundleFiles = cli.getArgList(); for (String bf : bundleFiles) { File f = new File(bf); @@ -159,8 +177,10 @@ public class NodeLauncher { // logger.log(Level.SEVERE, e.getMessage(), e); } } + */ - } else { + } + else { // Create a node from a composite URI and a contribution location String compositeURI = cli.getOptionValue("composite"); List contribs = cli.getArgList(); @@ -185,6 +205,7 @@ public class NodeLauncher { formatter.printHelp("java " + NodeLauncher.class.getName() + " [-config ]" + " [-c ]" + + " [-b ]" + " [-t ]" + " contribution1 ... contributionN", options); return; diff --git a/branches/sca-java-2.0-M3/pom.xml b/branches/sca-java-2.0-M3/pom.xml index 5fc1616b92..306557b50e 100644 --- a/branches/sca-java-2.0-M3/pom.xml +++ b/branches/sca-java-2.0-M3/pom.xml @@ -479,6 +479,13 @@ MANIFEST.MF + + ${basedir}/OSGI-INF + OSGI-INF + + **/* + + diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/add-component.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/add-component.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/add-component.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/add-component.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/blueprint/operations-module.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/blueprint/operations-module.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/blueprint/operations-module.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/blueprint/operations-module.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/divide-component.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/divide-component.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/divide-component.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/divide-component.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/multiply-component.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/multiply-component.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/multiply-component.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/multiply-component.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/sca/bundle.componentType b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.componentType similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/sca/bundle.componentType rename to branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.componentType diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/sca/bundle.composite b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.composite similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/sca/bundle.composite rename to branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/sca/bundle.composite diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/subtract-component.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/subtract-component.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/src/main/resources/OSGI-INF/subtract-component.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/OSGI-INF/subtract-component.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/README b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/README new file mode 100644 index 0000000000..9e616c1f50 --- /dev/null +++ b/branches/sca-java-2.0-M3/samples/dosgi-calculator-operations/README @@ -0,0 +1,183 @@ +Distributed OSGi Calculator Sample +================================== +This sample implements a distributed calculator using Distributed OSGi (RFC 119) over SCA. + +The README in the samples directory (the directory above this) provides +general instructions about building and running samples. Take a look there +first. + +On Windows, run +java -jar ..\..\modules\osgi-3.4.0-v20080605-1900.jar -configuration ..\..\features\configuration -clean -console + +On *Unix, run +java -jar ../../modules/osgi-3.4.0-v20080605-1900.jar -configuration ../../features/configuration -clean -console + +You should see the osgi console: + +osgi> + +osgi> Jun 22, 2009 1:32:27 PM org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoveryActivator start +INFO: Equinox-based service discoverer is now configured. + +You can run "ss" command under the osgi> to see the status of the bundles. +osgi> ss + +Then you can install and start the calculator.dosgi bundle: + +osgi> install file:./target/sample-dosgi-calculator-operations.jar +Bundle id is 181 + +osgi> start 181 +Jun 22, 2009 2:09:21 PM calculator.dosgi.operations.impl.OperationsActivator sta +rt +INFO: Starting file:./target/sample-dosgi-calculator-operations.jar [181] +Jun 22, 2009 2:09:21 PM calculator.dosgi.operations.impl.OperationsActivator sta +rt +INFO: Registering calculator.dosgi.operations.AddService +Jun 22, 2009 2:09:21 PM calculator.dosgi.operations.impl.OperationsActivator sta +rt +INFO: Registering calculator.dosgi.operations.SubtractService +Jun 22, 2009 2:09:21 PM calculator.dosgi.operations.impl.OperationsActivator sta +rt +INFO: Registering calculator.dosgi.operations.MultiplyService +Jun 22, 2009 2:09:21 PM calculator.dosgi.operations.impl.OperationsActivator sta +rt +INFO: Registering calculator.dosgi.operations.DivideService +Jun 22, 2009 2:09:21 PM calculator.dosgi.operations.impl.OperationsActivator get +Bundle +INFO: calculator.dosgi.operations.AddService is loaded by bundle: calculator.dos +gi.operations +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.node.impl.NodeImpl start +INFO: Starting node: calculator.dosgi.operations +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.node.impl.NodeFactoryImpl configu +reNode +INFO: Loading contribution: bundleentry://181/ +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpoint +INFO: EndpointRegistry: Add endpoint - Endpoint: URI = OperationsComponent#serv +ice-binding(AddService/AddService) +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerS +ervice +INFO: RMI service registered: rmi://localhost:8085/AddService +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpoint +INFO: EndpointRegistry: Add endpoint - Endpoint: URI = OperationsComponent#serv +ice-binding(SubtractService/SubtractService) +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerS +ervice +INFO: RMI service registered: rmi://localhost:8085/SubtractService +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpoint +INFO: EndpointRegistry: Add endpoint - Endpoint: URI = OperationsComponent#serv +ice-binding(MultiplyService/MultiplyService) +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerS +ervice +INFO: RMI service registered: rmi://localhost:8085/MultiplyService +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpoint +INFO: EndpointRegistry: Add endpoint - Endpoint: URI = OperationsComponent#serv +ice-binding(DivideService/DivideService) +Jun 22, 2009 2:09:21 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost registerS +ervice +INFO: RMI service registered: rmi://localhost:8085/DivideService + +osgi> + +To stop the bundle: + +osgi> stop 181 +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.node.impl.NodeImpl stop +INFO: Stopping node: calculator.dosgi.operations +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry removeEndpoint +INFO: EndpointRegistry: Remove endpoint - Endpoint: URI = OperationsComponent#s +ervice-binding(AddService/AddService) +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregiste +rService +INFO: RMI service unregistered: rmi://localhost:8085/AddService +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry removeEndpoint +INFO: EndpointRegistry: Remove endpoint - Endpoint: URI = OperationsComponent#s +ervice-binding(SubtractService/SubtractService) +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregiste +rService +INFO: RMI service unregistered: rmi://localhost:8085/SubtractService +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry removeEndpoint +INFO: EndpointRegistry: Remove endpoint - Endpoint: URI = OperationsComponent#s +ervice-binding(MultiplyService/MultiplyService) +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregiste +rService +INFO: RMI service unregistered: rmi://localhost:8085/MultiplyService +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry removeEndpoint +INFO: EndpointRegistry: Remove endpoint - Endpoint: URI = OperationsComponent#s +ervice-binding(DivideService/DivideService) +Jun 22, 2009 2:09:48 PM org.apache.tuscany.sca.host.rmi.DefaultRMIHost unregiste +rService +INFO: RMI service unregistered: rmi://localhost:8085/DivideService +Jun 22, 2009 2:09:48 PM calculator.dosgi.operations.impl.OperationsActivator sto +p +INFO: Stopping file:./target/sample-dosgi-calculator-operations.jar [181] + +osgi> + +To exit the console, run: +osgi> exit + +Sample Overview +--------------- +The application consists of two OSGi bundles: + * The calculator bundle: It provides the calculator service. The service is implemented by a java class that + consumes other services to perform the “add”, “subtract”, “multiply” and “divide” operations. + * The operations bundle: It provides the add/subtract/multiply/divide services. + (See ../samples/dosgi-calculator-operations) + + +dosgi-calculator-operations/ + src/ + main/ + java/ + calculator/ + dosgi/ + operations/ + AddService.java - Interface for Add + SubtractService.java - Interface for Subtract + MultiplyService.java - Interface for Multiply + DivideService.java - Interface for Divide + impl/ + OperationsActivator.java - OSGi bundle activator + AddServiceImpl.java - Implementation for Add + SubtractServiceImpl.java - Implementation for Subtract + MultiplyServiceImpl.java - Implementation for Multiply + DivideServiceImpl.java - Implementation for Divide + resources/ + META-INF/ + sca-contribution.xml + OSGI-INF/ + sca/ + bundle.componentType - The component type for implementation.osgi of this bundle + bundle.composite - The composite file + test/ + java/ + src/ + calculator/ + dosgi/ + operations/ + test/ + OperationsOSGiNodeTestCase.java - The JUNIT test case that tests this bundle using a RMI client + + META-INF/ + MANIFEST.MF - The OSGi manifest for this bundle + pom.xml - the Maven build file + + + +Building And Running The Test Case Using Maven +------------------------------------------- +With either the binary or source distributions the sample can be built and run +using Maven as follows. + +cd dosgi-calculator-operations +mvn + diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/blueprint/calculator-module.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/blueprint/calculator-module.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/blueprint/calculator-module.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/blueprint/calculator-module.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/calculator-component.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/calculator-component.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/calculator-component.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/calculator-component.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/remote-service/calculator-service-descriptions.xml b/branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/remote-service/calculator-service-descriptions.xml rename to branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/remote-service/calculator-service-descriptions.xml diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/sca/bundle.componentType b/branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/sca/bundle.componentType similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/sca/bundle.componentType rename to branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/sca/bundle.componentType diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/sca/bundle.composite b/branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/sca/bundle.composite similarity index 100% rename from branches/sca-java-2.0-M3/samples/dosgi-calculator/src/main/resources/OSGI-INF/sca/bundle.composite rename to branches/sca-java-2.0-M3/samples/dosgi-calculator/OSGI-INF/sca/bundle.composite diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator/README b/branches/sca-java-2.0-M3/samples/dosgi-calculator/README new file mode 100644 index 0000000000..374c0f0a8b --- /dev/null +++ b/branches/sca-java-2.0-M3/samples/dosgi-calculator/README @@ -0,0 +1,155 @@ +Distributed OSGi Calculator Sample +================================== +This sample implements a distributed calculator using Distributed OSGi (RFC 119) over SCA. + +The README in the samples directory (the directory above this) provides +general instructions about building and running samples. Take a look there +first. + +On Windows, run +java -jar ..\..\modules\osgi-3.4.0-v20080605-1900.jar -configuration ..\..\features\configuration -clean -console + +On *Unix, run +java -jar ../../modules/osgi-3.4.0-v20080605-1900.jar -configuration ../../features/configuration -clean -console + +You should see the osgi console: + +osgi> + +osgi> Jun 22, 2009 1:32:27 PM org.apache.tuscany.sca.extensibility.equinox.EquinoxServiceDiscoveryActivator start +INFO: Equinox-based service discoverer is now configured. + +You can run "ss" command under the osgi> to see the status of the bundles. +osgi> ss + +Then you can install and start the calculator.dosgi bundle: + +osgi> install file:./target/sample-dosgi-calculator.jar +Bundle id is 181 + +osgi> start 181 +Jun 22, 2009 1:37:21 PM calculator.dosgi.impl.CalculatorActivator start +INFO: Starting file:./target/sample-dosgi-calculator.jar [181] +Jun 22, 2009 1:37:21 PM calculator.dosgi.impl.CalculatorActivator start +INFO: Registering calculator.dosgi.CalculatorService +Jun 22, 2009 1:37:21 PM calculator.dosgi.impl.CalculatorActivator getBundle +INFO: calculator.dosgi.operations.AddService is loaded by bundle: calculator.dos +gi +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.node.impl.NodeImpl start +INFO: Starting node: calculator.dosgi +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.node.impl.NodeFactoryImpl configu +reNode +INFO: Loading contribution: bundleentry://181/ +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpoint +INFO: EndpointRegistry: Add endpoint - Endpoint: URI = CalculatorComponent#serv +ice-binding(CalculatorService/CalculatorService) +2009-06-22 13:37:21.953::INFO: jetty-6.1.x +2009-06-22 13:37:21.953::INFO: Started SelectChannelConnector@0.0.0.0:8086 +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.http.jetty.JettyServer addServlet +Mapping +INFO: Added Servlet mapping: http://rfengt61p:8086/CalculatorService +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpointReference +INFO: EndpointRegistry: Add endpoint reference - Endpoint Reference: URI = Calc +ulatorComponent#reference-binding(addService/addService) Target = Endpoint: +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpointReference +INFO: EndpointRegistry: Add endpoint reference - Endpoint Reference: URI = Calc +ulatorComponent#reference-binding(subtractService/subtractService) Target = Endp +oint: +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpointReference +INFO: EndpointRegistry: Add endpoint reference - Endpoint Reference: URI = Calc +ulatorComponent#reference-binding(multiplyService/multiplyService) Target = Endp +oint: +Jun 22, 2009 1:37:21 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry addEndpointReference +INFO: EndpointRegistry: Add endpoint reference - Endpoint Reference: URI = Calc +ulatorComponent#reference-binding(divideService/divideService) Target = Endpoint +: + +osgi> + +You can point your browser to http://localhost:8086/CalculatorService?wsdl to see +the WSDL. + +You can also use the WebService Explorer from Eclipse WTP to test the Web Service. + +To stop the bundle: + +osgi> stop 181 +Jun 22, 2009 1:39:09 PM org.apache.tuscany.sca.node.impl.NodeImpl stop +INFO: Stopping node: calculator.dosgi +Jun 22, 2009 1:39:09 PM org.apache.tuscany.sca.endpoint.tribes.ReplicatedEndpoin +tRegistry removeEndpoint +INFO: EndpointRegistry: Remove endpoint - Endpoint: URI = CalculatorComponent#s +ervice-binding(CalculatorService/CalculatorService) +Jun 22, 2009 1:39:09 PM org.apache.tuscany.sca.http.jetty.JettyServer removeServ +letMapping +INFO: Removed Servlet mapping: /CalculatorService +Jun 22, 2009 1:39:09 PM calculator.dosgi.impl.CalculatorActivator stop +INFO: Stopping file:./target/sample-dosgi-calculator.jar [181] + +To exit the console, run: +osgi> exit + +Sample Overview +--------------- +The application consists of two OSGi bundles: + * The calculator bundle: It provides the calculator service. The service is implemented by a java class that + consumes other services to perform the “add”, “subtract”, “multiply” and “divide” operations. + * The operations bundle: It provides the add/subtract/multiply/divide services. + (See ../samples/dosgi-calculator-operations) + + +dosgi-calculator/ + src/ + main/ + java/ + calculator/ + dosgi/ + CalculatorService.java - The interface for Calculator service + impl/ + CalculatorActivator.java - OSGi bundle activator for Calculator bundle + CalculatorServiceDSImpl.java - OSGi declarative service based implementation + CalculatorServiceImpl.java - Basic OSGi implementation + operations/ + AddService.java - Interface for Add + SubtractService.java - Interface for Subtract + MultiplyService.java - Interface for Multiply + DivideService.java - Interface for Divide + rmi/ + OperationsRemote.java - RMI remote interface for operations + OperationsRMIServer_Stub.java - RMI stub + OperationsRMIServer.java - RMI server implementation of the operations + resources/ + META-INF/ + sca-contribution.xml + OSGI-INF/ + sca/ + bundle.componentType - The component type for implementation.osgi of this bundle + bundle.composite - The composite file + test/ + java/ + src/ + calculator/ + dosgi/ + test/ + CalculatorOSGiNodeTestCase.java - The JUNIT test case that tests this bundle against a RMI service + + META-INF/ + MANIFEST.MF - The OSGi manifest for this bundle + dosig-calculator.png - a pictorial representation of the sample + pom.xml - the Maven build file + + + +Building And Running The Test Case Using Maven +------------------------------------------- +With either the binary or source distributions the sample can be built and run +using Maven as follows. + +cd dosgi-calculator +mvn + diff --git a/branches/sca-java-2.0-M3/samples/dosgi-calculator/dosgi-calculator.png b/branches/sca-java-2.0-M3/samples/dosgi-calculator/dosgi-calculator.png new file mode 100644 index 0000000000000000000000000000000000000000..805baa54d2e71c176414f308387c2230bb3a3acd GIT binary patch literal 85103 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