summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/host-embedded
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2008-09-09 09:17:30 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2008-09-09 09:17:30 +0000
commitdc15447dfebac2b0218cb1ce6903923c574c84df (patch)
tree5cf9aba844a018bccab0743005af5d3701e98cce /java/sca/modules/host-embedded
parent7ea46da4356a04cd45cfa1cadcad9f7fdb28aa7f (diff)
Fixes to get the Equinox integration working. Use the parent classloader instead of the Thread context classloader as parent of the contribution classloader. Use the ServiceDiscovery to get instances of DocumentBuilderFactory and TransformerFactory. Pass these factories around instead of creating new instances in different places. Clarified the few prints in the calculator-osgi sample showing which classloader is used.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@693411 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/host-embedded')
-rw-r--r--java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java7
-rw-r--r--java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java13
2 files changed, 19 insertions, 1 deletions
diff --git a/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java b/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
index 1f6dc4260d..55b6afb6f2 100644
--- a/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
+++ b/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
@@ -27,6 +27,9 @@ import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.TransformerFactory;
+
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.EndpointFactory;
@@ -217,6 +220,8 @@ public class ReallySmallRuntime {
EndpointFactory endpointFactory = factories.getFactory(EndpointFactory.class);
UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class);
+ DocumentBuilderFactory documentBuilderFactory = factories.getFactory(DocumentBuilderFactory.class);
+ TransformerFactory transformerFactory = factories.getFactory(TransformerFactory.class);
//Create a composite builder
SCADefinitions aggregatedDefinitions = new SCADefinitionsImpl();
@@ -228,6 +233,8 @@ public class ReallySmallRuntime {
scaBindingFactory,
endpointFactory,
intentAttachPointTypeFactory,
+ documentBuilderFactory,
+ transformerFactory,
mapper,
aggregatedDefinitions);
compositeBuilder.build(composite);
diff --git a/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java b/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
index b85b94f850..738e5e6248 100644
--- a/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
+++ b/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
@@ -24,8 +24,10 @@ import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.List;
+import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
+import javax.xml.transform.TransformerFactory;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Composite;
@@ -142,6 +144,8 @@ public class ReallySmallRuntimeBuilder {
SCABindingFactory scaBindingFactory,
EndpointFactory endpointFactory,
IntentAttachPointTypeFactory intentAttachPointTypeFactory,
+ DocumentBuilderFactory documentBuilderFactory,
+ TransformerFactory transformerFactory,
InterfaceContractMapper interfaceContractMapper,
SCADefinitions policyDefinitions) {
@@ -150,6 +154,8 @@ public class ReallySmallRuntimeBuilder {
endpointFactory,
scaBindingFactory,
intentAttachPointTypeFactory,
+ documentBuilderFactory,
+ transformerFactory,
interfaceContractMapper,
policyDefinitions,
monitor);
@@ -211,7 +217,12 @@ public class ReallySmallRuntimeBuilder {
// Create and register document processors for SCA assembly XML
documentProcessors.getProcessor(Composite.class);
- documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, validatingInputFactory, policyDefinitions, monitor));
+ DocumentBuilderFactory documentBuilderFactory = AccessController.doPrivileged(new PrivilegedAction<DocumentBuilderFactory>() {
+ public DocumentBuilderFactory run() {
+ return DocumentBuilderFactory.newInstance();
+ }
+ });
+ documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, validatingInputFactory, documentBuilderFactory, policyDefinitions, monitor));
// Create Model Resolver extension point
ModelResolverExtensionPoint modelResolvers = registry.getExtensionPoint(ModelResolverExtensionPoint.class);