diff options
26 files changed, 276 insertions, 81 deletions
diff --git a/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java b/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java index eccdbc6be2..bc74773d85 100644 --- a/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java +++ b/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeDocumentProcessor.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; @@ -55,6 +56,7 @@ import org.apache.tuscany.sca.policy.util.PolicyComputationUtils; */ public class CompositeDocumentProcessor extends BaseAssemblyProcessor implements URLArtifactProcessor<Composite> { private XMLInputFactory inputFactory; + private DocumentBuilderFactory documentBuilderFactory; private List scaDefnSink; private Collection<PolicySet> domainPolicySets = null; private int scaDefnsCount = 0; @@ -65,14 +67,32 @@ public class CompositeDocumentProcessor extends BaseAssemblyProcessor implements * @param policyFactory * @param staxProcessor */ + @Deprecated public CompositeDocumentProcessor(StAXArtifactProcessor staxProcessor, - XMLInputFactory inputFactory, List scaDefnsSink, Monitor monitor) { + XMLInputFactory inputFactory, + List scaDefnsSink, Monitor monitor) { super(null, null, staxProcessor, monitor); this.inputFactory = inputFactory; this.scaDefnSink = scaDefnsSink; } /** + * Construct a new composite processor + * @param assemblyFactory + * @param policyFactory + * @param staxProcessor + */ + public CompositeDocumentProcessor(StAXArtifactProcessor staxProcessor, + XMLInputFactory inputFactory, + DocumentBuilderFactory documentBuilderFactory, + List scaDefnsSink, Monitor monitor) { + super(null, null, staxProcessor, monitor); + this.documentBuilderFactory = documentBuilderFactory; + this.inputFactory = inputFactory; + this.scaDefnSink = scaDefnsSink; + } + + /** * Constructs a new composite processor. * @param modelFactories * @param staxProcessor @@ -81,6 +101,7 @@ public class CompositeDocumentProcessor extends BaseAssemblyProcessor implements StAXArtifactProcessor staxProcessor, Monitor monitor) { super(null, null, staxProcessor, monitor); this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class); + this.documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); } public Composite read(URL contributionURL, URI uri, URL url) throws ContributionReadException { @@ -109,7 +130,7 @@ public class CompositeDocumentProcessor extends BaseAssemblyProcessor implements try { if ( domainPolicySets != null ) { transformedArtifactContent = - PolicyComputationUtils.addApplicablePolicySets(scdlStream, domainPolicySets); + PolicyComputationUtils.addApplicablePolicySets(scdlStream, domainPolicySets, documentBuilderFactory); scdlStream = new ByteArrayInputStream(transformedArtifactContent); } } catch ( IOException e ) { diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java index 925ca9dc67..6f856986ad 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseConfigurationBuilderImpl.java @@ -26,6 +26,8 @@ import java.util.List; import java.util.Map; import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; @@ -34,7 +36,6 @@ import org.apache.tuscany.sca.assembly.ComponentProperty; import org.apache.tuscany.sca.assembly.ComponentReference; import org.apache.tuscany.sca.assembly.ComponentService; import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.CompositeService; import org.apache.tuscany.sca.assembly.Contract; import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.assembly.Property; @@ -69,14 +70,20 @@ public abstract class BaseConfigurationBuilderImpl { private Monitor monitor; private InterfaceContractMapper interfaceContractMapper; private SCADefinitions policyDefinitions; + private DocumentBuilderFactory documentBuilderFactory; + private TransformerFactory transformerFactory; protected BaseConfigurationBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { this.assemblyFactory = assemblyFactory; this.scaBindingFactory = scaBindingFactory; + this.documentBuilderFactory = documentBuilderFactory; + this.transformerFactory = transformerFactory; this.interfaceContractMapper = interfaceContractMapper; this.policyDefinitions = policyDefinitions; this.monitor = monitor; @@ -818,7 +825,8 @@ public abstract class BaseConfigurationBuilderImpl { for (Component component : composite.getComponents()) { try { - PropertyConfigurationUtil.sourceComponentProperties(compositeProperties, component); + PropertyConfigurationUtil.sourceComponentProperties(compositeProperties, component, + documentBuilderFactory, transformerFactory); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java index 8dd585f92b..0643421a45 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentConfigurationBuilderImpl.java @@ -19,6 +19,9 @@ package org.apache.tuscany.sca.assembly.builder.impl; +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.SCABindingFactory; @@ -35,12 +38,27 @@ import org.apache.tuscany.sca.monitor.Monitor; */ public class ComponentConfigurationBuilderImpl extends BaseConfigurationBuilderImpl implements CompositeBuilder { + @Deprecated + public ComponentConfigurationBuilderImpl(AssemblyFactory assemblyFactory, + SCABindingFactory scaBindingFactory, + InterfaceContractMapper interfaceContractMapper, + SCADefinitions policyDefinitions, + Monitor monitor) { + super(assemblyFactory, scaBindingFactory, + null, null, + interfaceContractMapper, policyDefinitions, monitor); + } + public ComponentConfigurationBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { - super(assemblyFactory, scaBindingFactory, interfaceContractMapper, policyDefinitions, monitor); + super(assemblyFactory, scaBindingFactory, + documentBuilderFactory, transformerFactory, + interfaceContractMapper, policyDefinitions, monitor); } public void build(Composite composite) throws CompositeBuilderException { diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java index 4c2c369f3e..85af173c0d 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java @@ -19,6 +19,9 @@ package org.apache.tuscany.sca.assembly.builder.impl; +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.SCABindingFactory; @@ -35,12 +38,27 @@ import org.apache.tuscany.sca.monitor.Monitor; */ public class CompositeBindingURIBuilderImpl extends BaseConfigurationBuilderImpl implements CompositeBuilder { + @Deprecated + public CompositeBindingURIBuilderImpl(AssemblyFactory assemblyFactory, + SCABindingFactory scaBindingFactory, + InterfaceContractMapper interfaceContractMapper, + SCADefinitions policyDefinitions, + Monitor monitor) { + super(assemblyFactory, scaBindingFactory, + null, null, + interfaceContractMapper, policyDefinitions, monitor); + } + public CompositeBindingURIBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { - super(assemblyFactory, scaBindingFactory, interfaceContractMapper, policyDefinitions, monitor); + super(assemblyFactory, scaBindingFactory, + documentBuilderFactory, transformerFactory, + interfaceContractMapper, policyDefinitions, monitor); } public void build(Composite composite) throws CompositeBuilderException { diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java index 6fc946b29a..282fe032ba 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java @@ -20,6 +20,9 @@ package org.apache.tuscany.sca.assembly.builder.impl; 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.DefaultEndpointFactory; @@ -62,16 +65,65 @@ public class CompositeBuilderImpl implements CompositeBuilder { * * @param assemblyFactory * @param scaBindingFactory + * @param endpointFactory + * @param intentAttachPointTypeFactory + * @param interfaceContractMapper + * @param policyDefinitions + * @param monitor + */ + @Deprecated + public CompositeBuilderImpl(AssemblyFactory assemblyFactory, + EndpointFactory endpointFactory, + SCABindingFactory scaBindingFactory, + IntentAttachPointTypeFactory intentAttachPointTypeFactory, + InterfaceContractMapper interfaceContractMapper, + SCADefinitions policyDefinitions, + Monitor monitor) { + this(assemblyFactory, endpointFactory, scaBindingFactory, intentAttachPointTypeFactory, + null, null, interfaceContractMapper, policyDefinitions, monitor); + } + + /** + * Constructs a new composite builder. + * + * @param assemblyFactory + * @param scaBindingFactory + * @param endpointFactory + * @param intentAttachPointTypeFactory + * @param interfaceContractMapper + * @param policyDefinitions + * @param monitor + */ + @Deprecated + public CompositeBuilderImpl(AssemblyFactory assemblyFactory, + SCABindingFactory scaBindingFactory, + IntentAttachPointTypeFactory intentAttachPointTypeFactory, + InterfaceContractMapper interfaceContractMapper, + Monitor monitor) { + this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, + null, null, interfaceContractMapper, null, monitor); + } + + /** + * Constructs a new composite builder. + * + * @param assemblyFactory + * @param scaBindingFactory * @param intentAttachPointTypeFactory + * @param documentBuilderFactory + * @param transformerFactory * @param interfaceContractMapper * @param monitor */ public CompositeBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, Monitor monitor) { - this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, interfaceContractMapper, null, monitor); + this(assemblyFactory, null, scaBindingFactory, intentAttachPointTypeFactory, + documentBuilderFactory, transformerFactory, interfaceContractMapper, null, monitor); } /** @@ -89,6 +141,8 @@ public class CompositeBuilderImpl implements CompositeBuilder { EndpointFactory endpointFactory, SCABindingFactory scaBindingFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { @@ -102,10 +156,10 @@ public class CompositeBuilderImpl implements CompositeBuilder { componentReferencePromotionWireBuilder = new ComponentReferencePromotionWireBuilderImpl(assemblyFactory, endpointFactory, monitor); compositeReferenceWireBuilder = new CompositeReferenceWireBuilderImpl(assemblyFactory, endpointFactory, monitor); compositeCloneBuilder = new CompositeCloneBuilderImpl(monitor); - componentConfigurationBuilder = new ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper, policyDefinitions, monitor); + componentConfigurationBuilder = new ComponentConfigurationBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); compositeServiceConfigurationBuilder = new CompositeServiceConfigurationBuilderImpl(assemblyFactory); compositeReferenceConfigurationBuilder = new CompositeReferenceConfigurationBuilderImpl(assemblyFactory); - compositeBindingURIBuilder = new CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper, policyDefinitions, monitor); + compositeBindingURIBuilder = new CompositeBindingURIBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, interfaceContractMapper, policyDefinitions, monitor); componentServicePromotionBuilder = new ComponentServicePromotionBuilderImpl(assemblyFactory); compositeServicePromotionBuilder = new CompositeServicePromotionBuilderImpl(assemblyFactory); compositePromotionBuilder = new CompositePromotionBuilderImpl(assemblyFactory, endpointFactory, interfaceContractMapper, monitor); diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyConfigurationUtil.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyConfigurationUtil.java index 71971ef5a4..0105d4af50 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyConfigurationUtil.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyConfigurationUtil.java @@ -59,10 +59,8 @@ import org.xml.sax.InputSource; * @version $Rev$ $Date$ */ abstract class PropertyConfigurationUtil { - private static final DocumentBuilderFactory DOC_BUILDER_FACTORY = DocumentBuilderFactory.newInstance(); - private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); - private static Document evaluate(Document node, XPathExpression expression) + private static Document evaluate(Document node, XPathExpression expression, DocumentBuilderFactory documentBuilderFactory) throws XPathExpressionException, ParserConfigurationException { Node value = node.getDocumentElement(); @@ -72,7 +70,7 @@ abstract class PropertyConfigurationUtil { } // TODO: How to wrap the result into a Document? - Document document = DOC_BUILDER_FACTORY.newDocumentBuilder().newDocument(); + Document document = documentBuilderFactory.newDocumentBuilder().newDocument(); if (result instanceof Document) { return (Document)result; } else { @@ -83,7 +81,7 @@ abstract class PropertyConfigurationUtil { } } - private static Document loadFromFile(String file) throws MalformedURLException, IOException, + private static Document loadFromFile(String file, TransformerFactory transformerFactory) throws MalformedURLException, IOException, TransformerException, ParserConfigurationException { URI uri = URI.create(file); // URI resolution for relative URIs is done when the composite is resolved. @@ -96,7 +94,7 @@ abstract class PropertyConfigurationUtil { Source streamSource = new SAXSource(new InputSource(is)); DOMResult result = new DOMResult(); - javax.xml.transform.Transformer transformer = TRANSFORMER_FACTORY.newTransformer(); + javax.xml.transform.Transformer transformer = transformerFactory.newTransformer(); transformer.transform(streamSource, result); Document document = (Document)result.getNode(); @@ -115,7 +113,9 @@ abstract class PropertyConfigurationUtil { } static void sourceComponentProperties(Map<String, Property> compositeProperties, - Component componentDefinition) throws CompositeBuilderException, + Component componentDefinition, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory) throws CompositeBuilderException, ParserConfigurationException, XPathExpressionException, TransformerException, @@ -143,7 +143,7 @@ abstract class PropertyConfigurationUtil { Document compositePropDefValues = (Document)compositeProp.getValue(); // FIXME: How to deal with namespaces? - Document node = evaluate(compositePropDefValues, aProperty.getSourceXPathExpression()); + Document node = evaluate(compositePropDefValues, aProperty.getSourceXPathExpression(), documentBuilderFactory); if (node != null) { aProperty.setValue(node); @@ -152,7 +152,7 @@ abstract class PropertyConfigurationUtil { throw new CompositeBuilderException("The 'source' has an invalid value: " + source); } } else if (file != null) { - aProperty.setValue(loadFromFile(aProperty.getFile())); + aProperty.setValue(loadFromFile(aProperty.getFile(), transformerFactory)); } } diff --git a/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java b/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java index d9dde0f8ee..260516d146 100644 --- a/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java +++ b/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassLoaderModelResolver.java @@ -39,6 +39,7 @@ import org.apache.tuscany.sca.contribution.java.JavaImport; import org.apache.tuscany.sca.contribution.resolver.ClassReference; import org.apache.tuscany.sca.contribution.resolver.DefaultDelegatingModelResolver; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.extensibility.ServiceDiscovery; /** * A Model Resolver for ClassReferences. @@ -49,16 +50,12 @@ public class ClassLoaderModelResolver extends URLClassLoader implements ModelRes private Contribution contribution; private Map<String, ModelResolver> importResolvers = new HashMap<String, ModelResolver>(); - private static ClassLoader contextClassLoader() { - return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() { - public ClassLoader run() { - return Thread.currentThread().getContextClassLoader(); - } - }); + private static ClassLoader parentClassLoader() { + return ServiceDiscovery.class.getClassLoader(); } public ClassLoaderModelResolver(final Contribution contribution, ModelFactoryExtensionPoint modelFactories) throws MalformedURLException { - super(new URL[] {new URL(contribution.getLocation())}, contextClassLoader()); + super(new URL[] {new URL(contribution.getLocation())}, parentClassLoader()); this.contribution = contribution; // Index Java import resolvers by package name diff --git a/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java b/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java index 716abf4602..b2bcdb7f54 100644 --- a/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java +++ b/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ClassReferenceModelResolver.java @@ -30,6 +30,7 @@ import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ClassReference;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
/**
* A Model Resolver for ClassReferences.
@@ -56,11 +57,12 @@ public class ClassReferenceModelResolver implements ModelResolver { if (cl == null) {
// Allow privileged access to get ClassLoader. Requires RuntimePermission in security policy.
- ClassLoader contextClassLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
- public ClassLoader run() {
- return Thread.currentThread().getContextClassLoader();
- }
- });
+ //ClassLoader contextClassLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+ // public ClassLoader run() {
+ // return Thread.currentThread().getContextClassLoader();
+ // }
+ //});
+ ClassLoader contextClassLoader = ServiceDiscovery.class.getClassLoader();
cl = new ContributionClassLoader(contribution, contextClassLoader);
contribution.setClassLoader(cl);
}
diff --git a/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoader.java b/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoader.java index 60bf7f223b..aa68925376 100644 --- a/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoader.java +++ b/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/ContributionClassLoader.java @@ -64,18 +64,6 @@ public class ContributionClassLoader extends URLClassLoader { }
/*
- * @return the context ClassLoader of the current thread.
- */
- protected static ClassLoader getContextClassLoader() {
- ClassLoader contextClassLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
- public ClassLoader run() {
- return Thread.currentThread().getContextClassLoader();
- }
- });
- return contextClassLoader;
- }
-
- /*
* Return the ClassLoader corresponding to a contribution providing an export
* Create a new ClassLoader for the contribution if one does not exist
*/
@@ -83,7 +71,7 @@ public class ContributionClassLoader extends URLClassLoader { ClassLoader cl = exportingContribution.getClassLoader();
if (!(cl instanceof ContributionClassLoader)) {
if (cl == null) {
- cl = getContextClassLoader();
+ cl = getParent();
}
cl = new ContributionClassLoader(exportingContribution, cl);
@@ -390,7 +378,7 @@ public class ContributionClassLoader extends URLClassLoader { @Override
public String toString() {
- return "SCA contribution classloader for : " + contribution.getLocation();
+ return "SCA Contribution ClassLoader location: " + contribution.getLocation() + " parent ClassLoader: " + getParent();
}
diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java index 555d25a2db..b69c58a0ff 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/DefaultModelFactoryExtensionPoint.java @@ -20,7 +20,6 @@ package org.apache.tuscany.sca.contribution; import java.lang.reflect.Constructor; -import java.lang.reflect.Method; import java.util.HashMap; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; @@ -116,8 +115,7 @@ public class DefaultModelFactoryExtensionPoint implements ModelFactoryExtensionP // Call the newInstance static method on the factory abstract class try { - Method newInstanceMethod = factoryInterface.getMethod("newInstance"); - factory = newInstanceMethod.invoke(null); + factory = ServiceDiscovery.getInstance().newFactoryClassInstance(factoryInterface); } catch (Exception e) { throw new IllegalArgumentException(e); } diff --git a/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java b/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java index 7855818904..8fa5f4cd53 100644 --- a/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java +++ b/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/sca/core/spring/context/SCADomainContext.java @@ -22,9 +22,11 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; +import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; @@ -145,7 +147,10 @@ public class SCADomainContext { } // Wire the top level component's composite - buildComposite(composites.get(0), assemblyFactory, scaBindingFactory, mapper); + DocumentBuilderFactory documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); + TransformerFactory transformerFactory = modelFactories.getFactory(TransformerFactory.class); + buildComposite(composites.get(0), assemblyFactory, scaBindingFactory, + documentBuilderFactory, transformerFactory, mapper); } catch (ContributionException e) { throw new RuntimeException(e); @@ -157,7 +162,10 @@ public class SCADomainContext { } private void buildComposite(Composite composite, AssemblyFactory assemblyFactory, - SCABindingFactory scaBindingFactory, InterfaceContractMapper interfaceContractMapper) throws CompositeBuilderException { + SCABindingFactory scaBindingFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, + InterfaceContractMapper interfaceContractMapper) throws CompositeBuilderException { Monitor monitor = new Monitor() { @@ -170,7 +178,8 @@ public class SCADomainContext { }; // Configure and wire the composite - CompositeBuilderImpl compositeUtil = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, new DefaultIntentAttachPointTypeFactory(), interfaceContractMapper, monitor); + CompositeBuilderImpl compositeUtil = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, new DefaultIntentAttachPointTypeFactory(), + documentBuilderFactory, transformerFactory, interfaceContractMapper, monitor); compositeUtil.build(composite); } diff --git a/java/sca/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java b/java/sca/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java index 3fb9673246..09bb05cf87 100644 --- a/java/sca/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java +++ b/java/sca/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/CompositeConfigurationServiceImpl.java @@ -40,10 +40,12 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Component; @@ -161,13 +163,15 @@ public class CompositeConfigurationServiceImpl extends HttpServlet implements Se contributionProcessor = new ContributionContentProcessor(modelFactories, modelResolvers, urlProcessor, staxProcessor, monitor); // Create contribution and composite builders + DocumentBuilderFactory documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); + TransformerFactory transformerFactory = modelFactories.getFactory(TransformerFactory.class); contributionDependencyBuilder = new ContributionDependencyBuilderImpl(monitor); SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory, contractMapper, monitor); + compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, intentAttachPointTypeFactory, documentBuilderFactory, transformerFactory, contractMapper, monitor); compositeIncludeBuilder = new CompositeIncludeBuilderImpl(monitor); - nodeConfigurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, contractMapper, null, monitor); + nodeConfigurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, documentBuilderFactory, transformerFactory, contractMapper, null, monitor); } @Override 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 79b92e0390..c1bbfeb8e0 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 @@ -20,6 +20,8 @@ package org.apache.tuscany.sca.extensibility; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.HashSet; @@ -148,5 +150,21 @@ public class ServiceDiscovery { } return services.iterator().next().loadClass(); } + + /** + * Create a new instance of a factory service class. + * + * @param serviceInterface + * @return service implementation class + * @throws SecurityException + * @throws NoSuchMethodException + * @throws InvocationTargetException + * @throws IllegalAccessException + */ + public Object newFactoryClassInstance(final Class<?> serviceInterface) throws SecurityException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Method newInstanceMethod = serviceInterface.getMethod("newInstance"); + Object factory = newInstanceMethod.invoke(null); + return factory; + } } 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); diff --git a/java/sca/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/builder/impl/NodeCompositeBuilderImpl.java b/java/sca/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/builder/impl/NodeCompositeBuilderImpl.java index bbf396a724..736afc13f0 100644 --- a/java/sca/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/builder/impl/NodeCompositeBuilderImpl.java +++ b/java/sca/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/builder/impl/NodeCompositeBuilderImpl.java @@ -22,6 +22,9 @@ package org.apache.tuscany.sca.implementation.node.builder.impl; import java.util.ArrayList; import java.util.List; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.TransformerFactory; + import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; import org.apache.tuscany.sca.assembly.Component; @@ -45,12 +48,27 @@ import org.apache.tuscany.sca.monitor.Monitor; */ public class NodeCompositeBuilderImpl extends BaseConfigurationBuilderImpl implements CompositeBuilder { + @Deprecated + public NodeCompositeBuilderImpl(AssemblyFactory assemblyFactory, + SCABindingFactory scaBindingFactory, + InterfaceContractMapper interfaceContractMapper, + SCADefinitions policyDefinitions, + Monitor monitor) { + super(assemblyFactory, scaBindingFactory, + null, null, + interfaceContractMapper, policyDefinitions, monitor); + } + public NodeCompositeBuilderImpl(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions, Monitor monitor) { - super(assemblyFactory, scaBindingFactory, interfaceContractMapper, policyDefinitions, monitor); + super(assemblyFactory, scaBindingFactory, + documentBuilderFactory, transformerFactory, + interfaceContractMapper, policyDefinitions, monitor); } public void build(Composite composite) throws CompositeBuilderException { diff --git a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java index c9995d6024..5b0e31fd03 100644 --- a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.java +++ b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBootStrapper.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; @@ -218,6 +221,8 @@ public class RuntimeBootStrapper { IntentAttachPointTypeFactory intentAttachPointTypeFactory = factories.getFactory(IntentAttachPointTypeFactory.class); EndpointFactory endpointFactory = factories.getFactory(EndpointFactory.class); + DocumentBuilderFactory documentBuilderFactory = factories.getFactory(DocumentBuilderFactory.class); + TransformerFactory transformerFactory = factories.getFactory(TransformerFactory.class); UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); @@ -232,6 +237,8 @@ public class RuntimeBootStrapper { scaBindingFactory, endpointFactory, intentAttachPointTypeFactory, + documentBuilderFactory, + transformerFactory, mapper, aggregatedDefinitions); compositeBuilder.build(composite); diff --git a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java index 98a44cef9e..6c93fa7800 100644 --- a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java +++ b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.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; @@ -143,11 +145,14 @@ public class RuntimeBuilder { SCABindingFactory scaBindingFactory, EndpointFactory endpointFactory, IntentAttachPointTypeFactory intentAttachPointTypeFactory, + DocumentBuilderFactory documentBuilderFactory, + TransformerFactory transformerFactory, InterfaceContractMapper interfaceContractMapper, SCADefinitions policyDefinitions) { return new CompositeBuilderImpl(assemblyFactory, endpointFactory, scaBindingFactory, - intentAttachPointTypeFactory, interfaceContractMapper, policyDefinitions, + intentAttachPointTypeFactory, documentBuilderFactory, transformerFactory, + interfaceContractMapper, policyDefinitions, monitor); } @@ -170,13 +175,7 @@ public class RuntimeBuilder { ModelFactoryExtensionPoint modelFactories = registry.getExtensionPoint(ModelFactoryExtensionPoint.class); // Create a new XML input factory - // Allow privileged access to factory. Requires RuntimePermission in security policy file. - XMLInputFactory inputFactory = AccessController.doPrivileged(new PrivilegedAction<XMLInputFactory>() { - public XMLInputFactory run() { - return XMLInputFactory.newInstance(); - } - }); - modelFactories.addFactory(inputFactory); + XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); // Create a validation XML schema extension point ValidationSchemaExtensionPoint schemas = new DefaultValidationSchemaExtensionPoint(); @@ -191,11 +190,7 @@ public class RuntimeBuilder { // Create and register StAX processors for SCA assembly XML // Allow privileged access to factory. Requires RuntimePermission in security policy file. - XMLOutputFactory outputFactory = AccessController.doPrivileged(new PrivilegedAction<XMLOutputFactory>() { - public XMLOutputFactory run() { - return XMLOutputFactory.newInstance(); - } - }); + XMLOutputFactory outputFactory = modelFactories.getFactory(XMLOutputFactory.class); ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, monitor); @@ -204,9 +199,11 @@ public class RuntimeBuilder { registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); // Create and register document processors for SCA assembly XML + DocumentBuilderFactory documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); + documentBuilderFactory.setNamespaceAware(true); documentProcessors.getProcessor(Composite.class); documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, validatingInputFactory, - policyDefinitions, monitor)); + documentBuilderFactory, policyDefinitions, monitor)); // Create Model Resolver extension point ModelResolverExtensionPoint modelResolvers = registry.getExtensionPoint(ModelResolverExtensionPoint.class); 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 74e7d6ac4a..2a6e24f6e0 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 @@ -96,6 +96,9 @@ public class EquinoxHost { // Set system packages props.put("org.osgi.framework.system.packages", systemPackages); + // Use the boot classloader as the parent classloader + props.put("osgi.contextClassLoaderParent", "boot"); + // Set the extension bundle props.put("osgi.framework.extensions", "org.apache.tuscany.sca.extensibility.equinox"); 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 d0c3e6f4f8..07da404d12 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 @@ -250,7 +250,6 @@ final class NodeLauncherUtil { if (!entry.isDirectory() && entryName != null && entryName.length() > 0 && !entryName.startsWith(".") - && !entryName.startsWith("META-INF") && entryName.lastIndexOf("/") > 0) { String pkg = entryName.substring(0, entryName.lastIndexOf("/")).replace('/', '.') + version; packages.add(pkg); diff --git a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java index aace23edf6..2e4c6a9d78 100644 --- a/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java +++ b/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyComputationUtils.java @@ -341,10 +341,9 @@ public class PolicyComputationUtils { } } - public static byte[] addApplicablePolicySets(InputStream is, Collection<PolicySet> domainPolicySets) throws Exception { - DocumentBuilderFactory dbFac = DocumentBuilderFactory.newInstance(); - dbFac.setNamespaceAware(true); - DocumentBuilder db = dbFac.newDocumentBuilder(); + public static byte[] addApplicablePolicySets(InputStream is, Collection<PolicySet> domainPolicySets, DocumentBuilderFactory documentBuilderFactory) throws Exception { + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder db = documentBuilderFactory.newDocumentBuilder(); Document doc = db.parse(is); is.close(); return addApplicablePolicySets(doc, domainPolicySets); diff --git a/java/sca/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java b/java/sca/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java index 4e28301c25..a7dcba8f5e 100644 --- a/java/sca/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java +++ b/java/sca/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java @@ -42,8 +42,7 @@ public class CalculatorClient { public void calculate() { // Calculate - System.out.println(getClass().getClassLoader()); - System.out.println(Reference.class.getClassLoader()); + System.out.println("SCA API ClassLoader: " + Reference.class.getClassLoader()); System.out.println("3 + 2=" + calculatorService.add(3, 2)); System.out.println("3 - 2=" + calculatorService.subtract(3, 2)); System.out.println("3 * 2=" + calculatorService.multiply(3, 2)); diff --git a/java/sca/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java b/java/sca/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java index 0561370d3a..dc0da7d20d 100644 --- a/java/sca/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java +++ b/java/sca/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java @@ -39,7 +39,7 @@ public class CalculatorTestCase extends TestCase { protected void setUp() throws Exception { launcher = NodeLauncher.newInstance(); node = launcher.createNodeFromClassLoader("Calculator.composite", getClass().getClassLoader()); - System.out.println(node.getClass().getClassLoader()); + System.out.println("SCA Node API ClassLoader: " + node.getClass().getClassLoader()); node.start(); } diff --git a/java/sca/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java b/java/sca/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java index 380d501ab5..28eede693d 100644 --- a/java/sca/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java +++ b/java/sca/samples/domain-management/src/main/java/manager/DistributeAndRunComponents.java @@ -40,6 +40,7 @@ import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; @@ -100,6 +101,8 @@ public class DistributeAndRunComponents { private static WorkspaceFactory workspaceFactory; private static AssemblyFactory assemblyFactory; private static XMLOutputFactory outputFactory; + private static DocumentBuilderFactory documentBuilderFactory; + private static TransformerFactory transformerFactory; private static StAXArtifactProcessor<Object> xmlProcessor; private static ContributionDependencyBuilder contributionDependencyBuilder; private static CompositeBuilder domainCompositeBuilder; @@ -127,6 +130,8 @@ public class DistributeAndRunComponents { modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); + documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); + transformerFactory = modelFactories.getFactory(TransformerFactory.class); // Get contribution workspace and assembly model factories workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); @@ -152,10 +157,12 @@ public class DistributeAndRunComponents { SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor); + domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, + documentBuilderFactory, transformerFactory, contractMapper, monitor); // Create a node composite builder - nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, contractMapper, null, monitor); + nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, + documentBuilderFactory, transformerFactory, contractMapper, null, monitor); } diff --git a/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java b/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java index 4af2547a81..def0a1894f 100644 --- a/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java +++ b/java/sca/samples/domain-management/src/main/java/manager/DistributeComponents.java @@ -37,6 +37,7 @@ import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Binding; @@ -113,6 +114,8 @@ public class DistributeComponents { private static WorkspaceFactory workspaceFactory; private static AssemblyFactory assemblyFactory; private static XMLOutputFactory outputFactory; + private static DocumentBuilderFactory documentBuilderFactory; + private static TransformerFactory transformerFactory; private static StAXArtifactProcessor<Object> xmlProcessor; private static ContributionDependencyBuilder contributionDependencyBuilder; private static CompositeBuilder domainCompositeBuilder; @@ -140,6 +143,8 @@ public class DistributeComponents { modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); + documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); + transformerFactory = modelFactories.getFactory(TransformerFactory.class); // Get contribution workspace and assembly model factories workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); @@ -165,10 +170,12 @@ public class DistributeComponents { SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor); + domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, + documentBuilderFactory, transformerFactory, contractMapper, monitor); // Create a node composite builder - nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, contractMapper, null, monitor); + nodeCompositeBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, + documentBuilderFactory, transformerFactory, contractMapper, null, monitor); } diff --git a/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java b/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java index 899a6fd412..d24d5c67c9 100644 --- a/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java +++ b/java/sca/samples/domain-management/src/main/java/manager/WireComponents.java @@ -34,6 +34,7 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.TransformerFactory; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.Composite; @@ -92,6 +93,8 @@ public class WireComponents { private static WorkspaceFactory workspaceFactory; private static AssemblyFactory assemblyFactory; private static XMLOutputFactory outputFactory; + private static DocumentBuilderFactory documentBuilderFactory; + private static TransformerFactory transformerFactory; private static StAXArtifactProcessor<Object> xmlProcessor; private static ContributionDependencyBuilder contributionDependencyBuilder; private static CompositeBuilder domainCompositeBuilder; @@ -116,6 +119,8 @@ public class WireComponents { modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); XMLInputFactory inputFactory = modelFactories.getFactory(XMLInputFactory.class); outputFactory = modelFactories.getFactory(XMLOutputFactory.class); + documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); + transformerFactory = modelFactories.getFactory(TransformerFactory.class); // Get contribution workspace and assembly model factories workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class); @@ -139,7 +144,8 @@ public class WireComponents { SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); InterfaceContractMapper contractMapper = utilities.getUtility(InterfaceContractMapper.class); - domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, contractMapper, monitor); + domainCompositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, + documentBuilderFactory, transformerFactory, contractMapper, monitor); } |