diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-09 09:17:30 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-09 09:17:30 +0000 |
commit | dc15447dfebac2b0218cb1ce6903923c574c84df (patch) | |
tree | 5cf9aba844a018bccab0743005af5d3701e98cce /java/sca/modules/host-embedded | |
parent | 7ea46da4356a04cd45cfa1cadcad9f7fdb28aa7f (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')
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); |