summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-07-31 18:08:22 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-07-31 18:08:22 +0000
commitb029a4016074bd535a0f2aa5277bdb03bad06921 (patch)
tree4bead2382cf161a925a7d7743aa14de461e59930 /java
parenta6179742e5829160477b0437afe323fcfe20131a (diff)
Use the extensibility-equinox module to dynamically imports public packages and resources
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@799679 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/sca/modules/binding-ws-axis2/META-INF/MANIFEST.MF1
-rw-r--r--java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java4
-rw-r--r--java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java4
-rw-r--r--java/sca/modules/extensibility-equinox/META-INF/MANIFEST.MF6
-rw-r--r--java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java5
-rw-r--r--java/sca/modules/extensibility/META-INF/MANIFEST.MF8
-rw-r--r--java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java4
-rw-r--r--java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscoverer.java5
-rw-r--r--java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java4
-rw-r--r--java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java2
-rw-r--r--java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java3
11 files changed, 34 insertions, 12 deletions
diff --git a/java/sca/modules/binding-ws-axis2/META-INF/MANIFEST.MF b/java/sca/modules/binding-ws-axis2/META-INF/MANIFEST.MF
index 74869d3c4a..039176856c 100644
--- a/java/sca/modules/binding-ws-axis2/META-INF/MANIFEST.MF
+++ b/java/sca/modules/binding-ws-axis2/META-INF/MANIFEST.MF
@@ -126,6 +126,7 @@ Import-Package: javax.xml.stream,
org.apache.tuscany.sca.binding.ws.axis2.policy.header;version="2.0.0",
org.apache.tuscany.sca.contribution.processor;version="2.0.0",
org.apache.tuscany.sca.core;version="2.0.0",
+ org.apache.tuscany.sca.extensibility;version="2.0.0",
org.apache.tuscany.sca.core.assembly;version="2.0.0",
org.apache.tuscany.sca.databinding;version="2.0.0",
org.apache.tuscany.sca.definitions;version="2.0.0",
diff --git a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
index e314046793..7c9368e9f8 100644
--- a/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
+++ b/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
@@ -91,9 +91,9 @@ import org.apache.tuscany.sca.binding.ws.axis2.policy.configuration.Axis2ConfigP
import org.apache.tuscany.sca.binding.ws.axis2.policy.configurator.Axis2BindingHeaderConfigurator;
import org.apache.tuscany.sca.binding.ws.axis2.policy.header.Axis2HeaderPolicy;
import org.apache.tuscany.sca.binding.ws.axis2.policy.header.Axis2SOAPHeaderString;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.core.assembly.RuntimeAssemblyFactory;
+import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
import org.apache.tuscany.sca.host.http.ServletHost;
import org.apache.tuscany.sca.interfacedef.Interface;
import org.apache.tuscany.sca.interfacedef.Operation;
@@ -250,7 +250,7 @@ public class Axis2ServiceProvider {
public ConfigurationContext run() throws AxisFault {
ClassLoader cl0 = getClass().getClassLoader();
ClassLoader cl1 = URLBasedAxisConfigurator.class.getClassLoader();
- ClassLoader cl2 = ExtensionPointRegistry.class.getClassLoader();
+ ClassLoader cl2 = ServiceDiscovery.getInstance().getContextClassLoader();
// ClassLoader cl3 =
// modelFactories.getFactory(DocumentBuilderFactory.class).getClass().getClassLoader();
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
index fc1f4bd6c6..9d8908315b 100644
--- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
+++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java
@@ -60,8 +60,8 @@ public class ClassLoaderModelResolver extends URLClassLoader implements ModelRes
}
}
if (parentClassLoader == null) {
- // The extensibility bundle has DynamicImport-Package = *
- parentClassLoader = ServiceDiscovery.class.getClassLoader();
+ // The bundle has DynamicImport-Package = *
+ parentClassLoader = ServiceDiscovery.getInstance().getContextClassLoader();
}
return parentClassLoader;
diff --git a/java/sca/modules/extensibility-equinox/META-INF/MANIFEST.MF b/java/sca/modules/extensibility-equinox/META-INF/MANIFEST.MF
index 9436ea4f94..3a43caa6e4 100644
--- a/java/sca/modules/extensibility-equinox/META-INF/MANIFEST.MF
+++ b/java/sca/modules/extensibility-equinox/META-INF/MANIFEST.MF
@@ -19,6 +19,12 @@ Import-Package: org.apache.tuscany.sca.core;version="2.0.0",
org.apache.tuscany.sca.extensibility;version="2.0.0",
org.osgi.framework;version="1.4",
org.osgi.framework.launch;version="1.0.0";resolution:=optional
+Tuscany-Comment2: The system bundle exports javax.transaction* packages that only
+ contains a subset of the classes
+DynamicImport-Package: org.apache.tuscany.sca.extensibility.equinox,
+ javax.transaction;version="1.1",
+ javax.transaction.xa;version="1.1",
+ *
Bundle-SymbolicName: org.apache.tuscany.sca.extensibility.equinox
Bundle-DocURL: http://www.apache.org/
Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
diff --git a/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java b/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java
index 61bba30719..2b3e087e52 100644
--- a/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java
+++ b/java/sca/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java
@@ -310,5 +310,10 @@ public class EquinoxServiceDiscoverer implements ServiceDiscoverer {
}
return descriptors;
}
+
+ public ClassLoader getContextClassLoader() {
+ // Get the bundle classloader for the extensibility bundle that has DynamicImport-Package *
+ return getClass().getClassLoader();
+ }
}
diff --git a/java/sca/modules/extensibility/META-INF/MANIFEST.MF b/java/sca/modules/extensibility/META-INF/MANIFEST.MF
index 7cc2ff22c9..24949ed812 100644
--- a/java/sca/modules/extensibility/META-INF/MANIFEST.MF
+++ b/java/sca/modules/extensibility/META-INF/MANIFEST.MF
@@ -1,17 +1,13 @@
Manifest-Version: 1.0
-Tuscany-Comment: Expoprt the META-INF.services under an "internal" attribute
+Tuscany-Comment1: Export the META-INF.services under an "internal" attribute
so that it can be seen only by the bundle itself without following the
DynamicImport-Package *
Export-Package: org.apache.tuscany.sca.core;uses:="org.apache.tuscany.
sca.extensibility";version="2.0.0",org.apache.tuscany.sca.extensibility
- ;version="2.0.0",META-INF.services;internal=true;mandatory:=internal
+ ;version="2.0.0"
Tool: Bnd-0.0.255
Bundle-Name: Apache Tuscany SCA Extensibility
Created-By: 1.6.0_07 (Sun Microsystems Inc.)
-DynamicImport-Package: org.apache.tuscany.sca.extensibility.equinox,
- javax.transaction;version="1.1",
- javax.transaction.xa;version="1.1",
- *
Bundle-Vendor: The Apache Software Foundation
Bundle-Version: 2.0.0
Bnd-LastModified: 1225397079296
diff --git a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java
index 3d733d042e..26ede88214 100644
--- a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java
+++ b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java
@@ -121,6 +121,10 @@ public class ContextClassLoaderServiceDiscoverer implements ServiceDiscoverer {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
this.classLoaderReference = new WeakReference<ClassLoader>(classLoader);
}
+
+ public ClassLoader getContextClassLoader() {
+ return classLoaderReference.get();
+ }
private List<URL> getResources(final String name) throws IOException {
try {
diff --git a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscoverer.java b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscoverer.java
index 9b939e8228..aebd6cd3de 100644
--- a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscoverer.java
+++ b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscoverer.java
@@ -46,4 +46,9 @@ public interface ServiceDiscoverer {
*/
public ServiceDeclaration getServiceDeclaration(String name) throws IOException;
+ /**
+ * Get a classloader that can be used for thread context loader
+ * @return A classloader that can provide access to public classes and resources
+ */
+ public ClassLoader getContextClassLoader();
}
diff --git a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java
index ec95aba7e1..70274752e4 100644
--- a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java
+++ b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java
@@ -182,4 +182,8 @@ public final class ServiceDiscovery implements ServiceDiscoverer {
}
}
+ public ClassLoader getContextClassLoader() {
+ return discoverer.getContextClassLoader();
+ }
+
}
diff --git a/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java b/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java
index 24a8b368dc..b8b6c39354 100644
--- a/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java
+++ b/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/EquinoxHost.java
@@ -355,7 +355,7 @@ public class EquinoxHost {
private boolean isServiceProvider(Bundle bundle, Set<String> serviceProviders) {
if (bundle != null) {
String export = (String)bundle.getHeaders().get(Constants.EXPORT_PACKAGE);
- if (export != null && export.contains("META-INF.services")) {
+ if (export != null && export.contains(NodeLauncherUtil.META_INF_SERVICES)) {
serviceProviders.add(bundle.getSymbolicName());
return true;
}
diff --git a/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java b/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java
index c059811e3b..832427b380 100644
--- a/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java
+++ b/java/sca/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherUtil.java
@@ -89,6 +89,7 @@ final class NodeLauncherUtil {
private static final Logger logger = Logger.getLogger(NodeLauncherUtil.class.getName());
+ static final String META_INF_SERVICES = "META-INF.services;partial=true;mandatory:=partial";
static final String LAUNCHER_EQUINOX_LIBRARIES = "org.apache.tuscany.sca.node.launcher.equinox.libraries";
static final String GATEWAY_BUNDLE = "org.apache.tuscany.sca.gateway";
@@ -347,7 +348,7 @@ final class NodeLauncherUtil {
pkg = pkg.replace('/', '.') + version;
// Export META-INF.services
if ("META-INF.services".equals(pkg)) {
- packages.add("META-INF.services" + ";partial=true;mandatory:=partial");
+ packages.add(META_INF_SERVICES);
} else {
packages.add(pkg);
}