diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-18 07:22:23 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-10-18 07:22:23 +0000 |
commit | 0bcd3fabdfd106b71e7ed1c2e152d5ade6d50b18 (patch) | |
tree | bea56c8cd20ff945b0324979d183c6299398b3c2 /java/sca | |
parent | b33733526f64d4b035c09cb78808abe2671dae00 (diff) |
Change some extension code to be declarative instead of being registered using module activators
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@826368 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca')
29 files changed, 258 insertions, 396 deletions
diff --git a/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java b/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java index c1031e14ae..d147d85ef3 100644 --- a/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java +++ b/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/BindingWSDLGeneratorTestCase.java @@ -53,7 +53,7 @@ public class BindingWSDLGeneratorTestCase extends TestCase { WSDLFactory wsdlFactory = modelFactories.getFactory(WSDLFactory.class); XSDFactory xsdFactory = modelFactories.getFactory(XSDFactory.class); DocumentBuilderFactory documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); - JavaInterfaceFactory factory = new DefaultJavaInterfaceFactory(); + JavaInterfaceFactory factory = new DefaultJavaInterfaceFactory(registry); JavaInterfaceContract javaIC = factory.createJavaInterfaceContract(); JavaInterface iface = factory.createJavaInterface(HelloWorld.class); DefaultDataBindingExtensionPoint dataBindings = new DefaultDataBindingExtensionPoint(registry); diff --git a/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java b/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java index 22f7f01ec9..33d5bea838 100644 --- a/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java +++ b/java/sca/modules/binding-ws-wsdlgen/src/test/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGeneratorTestCase.java @@ -50,9 +50,9 @@ public class Interface2WSDLGeneratorTestCase { @Test public void testGenerate() throws Exception { - JavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory(); - JavaInterface iface = iFactory.createJavaInterface(TestJavaInterface.class); ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + JavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory(registry); + JavaInterface iface = iFactory.createJavaInterface(TestJavaInterface.class); DefaultDataBindingExtensionPoint dataBindings = new DefaultDataBindingExtensionPoint(new DefaultExtensionPointRegistry()); JAXWSFaultExceptionMapper faultExceptionMapper = new JAXWSFaultExceptionMapper(dataBindings, null); new JAXWSJavaInterfaceProcessor(dataBindings, faultExceptionMapper, null).visitInterface(iface); diff --git a/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java b/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java deleted file mode 100644 index 023d0b7904..0000000000 --- a/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/module/DataBindingModuleActivator.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.core.databinding.module; - -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.core.ModuleActivator; -import org.apache.tuscany.sca.core.databinding.processor.DataBindingJavaInterfaceProcessor; -import org.apache.tuscany.sca.core.databinding.processor.WrapperJavaInterfaceProcessor; -import org.apache.tuscany.sca.core.databinding.wire.DataBindingRuntimeWireProcessor; -import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; -import org.apache.tuscany.sca.interfacedef.java.jaxws.JAXWSJavaInterfaceProcessor; -import org.apache.tuscany.sca.interfacedef.java.jaxws.WebServiceInterfaceProcessor; -import org.apache.tuscany.sca.runtime.RuntimeWireProcessorExtensionPoint; - -/** - * @version $Rev$ $Date$ - */ -public class DataBindingModuleActivator implements ModuleActivator { - - public void start(ExtensionPointRegistry registry) { - /* - DataBindingExtensionPoint dataBindings = registry.getExtensionPoint(DataBindingExtensionPoint.class); - TransformerExtensionPoint transformers = registry.getExtensionPoint(TransformerExtensionPoint.class); - */ - - /* - Input2InputTransformer input2InputTransformer = new Input2InputTransformer(registry); - transformers.addTransformer(input2InputTransformer, false); - - Output2OutputTransformer output2OutputTransformer = new Output2OutputTransformer(registry); - transformers.addTransformer(output2OutputTransformer, false); - - Exception2ExceptionTransformer exception2ExceptionTransformer = new Exception2ExceptionTransformer(registry); - transformers.addTransformer(exception2ExceptionTransformer, false); - - Array2ArrayTransformer array2ArrayTransformer = new Array2ArrayTransformer(registry); - transformers.addTransformer(array2ArrayTransformer, false); - - Group2GroupTransformer group2GroupTransformer = new Group2GroupTransformer(registry); - transformers.addTransformer(group2GroupTransformer, false); - */ - -// dataBindings.addDataBinding(new CallableReferenceDataBinding()); -// transformers.addTransformer(new CallableReference2XMLStreamReader(), true); -// transformers.addTransformer(new XMLStreamReader2CallableReference(), false); - - FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); - JavaInterfaceFactory javaFactory = modelFactories.getFactory(JavaInterfaceFactory.class); - // Add the WebServiceInterfaceProcessor to mark the interface remotable - //javaFactory.addInterfaceVisitor(new WebServiceInterfaceProcessor()); - // Introspect the data types - //javaFactory.addInterfaceVisitor(new DataBindingJavaInterfaceProcessor(registry)); - //javaFactory.addInterfaceVisitor(new JAXWSJavaInterfaceProcessor(registry)); - //javaFactory.addInterfaceVisitor(new WrapperJavaInterfaceProcessor(registry)); - - RuntimeWireProcessorExtensionPoint wireProcessorExtensionPoint = registry.getExtensionPoint(RuntimeWireProcessorExtensionPoint.class); - if (wireProcessorExtensionPoint != null) { - wireProcessorExtensionPoint.addWireProcessor(new DataBindingRuntimeWireProcessor(registry)); - } - } - - public void stop(ExtensionPointRegistry registry) { - } -} diff --git a/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor b/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor index c9620f41d5..cd1ce6a7f7 100644 --- a/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor +++ b/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor @@ -15,5 +15,5 @@ # specific language governing permissions and limitations # under the License. -org.apache.tuscany.sca.core.databinding.processor.DataBindingJavaInterfaceProcessor -org.apache.tuscany.sca.core.databinding.processor.WrapperJavaInterfaceProcessor
\ No newline at end of file +org.apache.tuscany.sca.core.databinding.processor.DataBindingJavaInterfaceProcessor;ranking=300 +org.apache.tuscany.sca.core.databinding.processor.WrapperJavaInterfaceProcessor;ranking=200
\ No newline at end of file diff --git a/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator b/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeWireProcessor index baba638c9b..81eccccddc 100644 --- a/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator +++ b/java/sca/modules/core-databinding/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeWireProcessor @@ -14,5 +14,4 @@ # KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-# Implementation class for the ExtensionActivator
-org.apache.tuscany.sca.core.databinding.module.DataBindingModuleActivator
+org.apache.tuscany.sca.core.databinding.wire.DataBindingRuntimeWireProcessor
\ No newline at end of file diff --git a/java/sca/modules/core-databinding/src/test/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessorTestCase.java b/java/sca/modules/core-databinding/src/test/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessorTestCase.java deleted file mode 100644 index c59b36c6c1..0000000000 --- a/java/sca/modules/core-databinding/src/test/java/org/apache/tuscany/sca/core/databinding/processor/DataBindingJavaInterfaceProcessorTestCase.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.core.databinding.processor; - -import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.databinding.annotation.DataBinding; -import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.impl.OperationImpl; -import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory; -import org.apache.tuscany.sca.interfacedef.java.JavaInterface; -import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract; -import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; -import org.junit.Test; -import org.oasisopen.sca.annotation.Remotable; -import org.w3c.dom.Node; - -/** - * - * @version $Rev$ $Date$ - */ -public class DataBindingJavaInterfaceProcessorTestCase { - - /** - * @throws InvalidServiceContractException - */ - @Test - public final void testVisitInterface() throws InvalidInterfaceException { - ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); - DataBindingJavaInterfaceProcessor processor = new DataBindingJavaInterfaceProcessor(registry); - JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(); - - JavaInterface contract = javaFactory.createJavaInterface(); - contract.setJavaClass(MockInterface.class); - JavaInterfaceContract interfaceContract = javaFactory.createJavaInterfaceContract(); - interfaceContract.setInterface(contract); - Operation operation = newOperation("call"); - Operation operation1 = newOperation("call1"); - contract.getOperations().add(operation); - contract.getOperations().add(operation1); - contract.setRemotable(true); - processor.visitInterface(contract); - } - - @DataBinding("org.w3c.dom.Node") - @Remotable - public static interface MockInterface { - Node call(Node msg); - - @DataBinding("xml:string") - String call1(String msg); - } - - private static Operation newOperation(String name) { - Operation operation = new OperationImpl(); - operation.setName(name); - return operation; - } -} diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java index 851afee3c1..9f28f7650a 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultWireProcessorExtensionPoint.java @@ -18,20 +18,36 @@ */ package org.apache.tuscany.sca.runtime; +import java.lang.reflect.Constructor; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.LifeCycleListener; +import org.apache.tuscany.sca.extensibility.ServiceDeclaration; +import org.apache.tuscany.sca.extensibility.ServiceDiscovery; /** * The default implementation of a <code>WireProcessorExtensionPoint</code> * * @version $Rev$ $Date$ */ -public class DefaultWireProcessorExtensionPoint implements RuntimeWireProcessorExtensionPoint { +public class DefaultWireProcessorExtensionPoint implements RuntimeWireProcessorExtensionPoint, LifeCycleListener { + private ExtensionPointRegistry registry; + private boolean loaded; - /** - * The list of WireProcessors available to the runtime - */ + /** + * @param registry + */ + public DefaultWireProcessorExtensionPoint(ExtensionPointRegistry registry) { + super(); + this.registry = registry; + } + + /** + * The list of WireProcessors available to the runtime + */ private final List<RuntimeWireProcessor> processors = new ArrayList<RuntimeWireProcessor>(); /** @@ -41,6 +57,9 @@ public class DefaultWireProcessorExtensionPoint implements RuntimeWireProcessorE */ public void addWireProcessor(RuntimeWireProcessor processor) { processors.add(processor); + if (processor instanceof LifeCycleListener) { + ((LifeCycleListener)processor).start(); + } } /** @@ -49,15 +68,60 @@ public class DefaultWireProcessorExtensionPoint implements RuntimeWireProcessorE * @param processor The processor to de-register */ public void removeWireProcessor(RuntimeWireProcessor processor) { - processors.remove(processor); + boolean found = processors.remove(processor); + if (found && (processor instanceof LifeCycleListener)) { + ((LifeCycleListener)processor).stop(); + } } - + /** * Returns a list of registered wire-processors. * * @return The list of wire processors - */ + */ public List<RuntimeWireProcessor> getWireProcessors() { + loadWireProcessors(); return processors; } + + private synchronized void loadWireProcessors() { + if (loaded) { + return; + } + try { + Collection<ServiceDeclaration> sds = + ServiceDiscovery.getInstance().getServiceDeclarations(RuntimeWireProcessor.class, true); + for (ServiceDeclaration sd : sds) { + Class type = sd.loadClass(); + Constructor constructor = null; + RuntimeWireProcessor processor = null; + try { + constructor = type.getConstructor(ExtensionPointRegistry.class); + processor = (RuntimeWireProcessor)constructor.newInstance(registry); + + } catch (NoSuchMethodException e) { + constructor = type.getConstructor(); + processor = (RuntimeWireProcessor)constructor.newInstance(); + } + if (processor != null) { + addWireProcessor(processor); + } + } + loaded = true; + } catch (Throwable e) { + throw new IllegalStateException(e); + } + } + + public void start() { + } + + public void stop() { + for (RuntimeWireProcessor processor : processors) { + if ((processor instanceof LifeCycleListener)) { + ((LifeCycleListener)processor).stop(); + } + } + processors.clear(); + } } diff --git a/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaCallbackRuntimeWireProcessor.java b/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaCallbackRuntimeWireProcessor.java index 785d89b677..602dc5d31a 100644 --- a/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaCallbackRuntimeWireProcessor.java +++ b/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaCallbackRuntimeWireProcessor.java @@ -25,6 +25,9 @@ import java.util.logging.Logger; import org.apache.tuscany.sca.assembly.Contract; import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.core.invocation.CallbackInterfaceInterceptor; import org.apache.tuscany.sca.implementation.java.JavaImplementation; import org.apache.tuscany.sca.interfacedef.Interface; @@ -47,11 +50,19 @@ public class JavaCallbackRuntimeWireProcessor implements RuntimeWireProcessor { private InterfaceContractMapper interfaceContractMapper; private JavaInterfaceFactory javaInterfaceFactory; + public JavaCallbackRuntimeWireProcessor(ExtensionPointRegistry registry) { + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); + this.javaInterfaceFactory = factories.getFactory(JavaInterfaceFactory.class); + + UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); + this.interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class); + } + /** * @param interfaceContractMapper * @param javaInterfaceFactory */ - public JavaCallbackRuntimeWireProcessor(InterfaceContractMapper interfaceContractMapper, + protected JavaCallbackRuntimeWireProcessor(InterfaceContractMapper interfaceContractMapper, JavaInterfaceFactory javaInterfaceFactory) { super(); this.interfaceContractMapper = interfaceContractMapper; diff --git a/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaImplementationProviderFactory.java b/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaImplementationProviderFactory.java index 326ab28bc9..36d9878fd9 100644 --- a/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaImplementationProviderFactory.java +++ b/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/invocation/JavaImplementationProviderFactory.java @@ -19,12 +19,24 @@ package org.apache.tuscany.sca.implementation.java.invocation; +import java.util.logging.Level; +import java.util.logging.Logger; + import org.apache.tuscany.sca.context.ComponentContextFactory; +import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint; import org.apache.tuscany.sca.context.PropertyValueFactory; import org.apache.tuscany.sca.context.RequestContextFactory; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; +import org.apache.tuscany.sca.core.UtilityExtensionPoint; +import org.apache.tuscany.sca.core.invocation.CglibProxyFactory; +import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory; import org.apache.tuscany.sca.core.invocation.ProxyFactory; +import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint; import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; import org.apache.tuscany.sca.implementation.java.JavaImplementation; +import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; +import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.provider.ImplementationProvider; import org.apache.tuscany.sca.provider.ImplementationProviderFactory; import org.apache.tuscany.sca.runtime.RuntimeComponent; @@ -33,32 +45,59 @@ import org.apache.tuscany.sca.runtime.RuntimeComponent; * @version $Rev$ $Date$ */ public class JavaImplementationProviderFactory implements ImplementationProviderFactory<JavaImplementation> { - private PropertyValueFactory propertyValueObjectFactory; - private DataBindingExtensionPoint dataBindingRegistry; - private ProxyFactory proxyService; + private static final Logger logger = Logger.getLogger(JavaImplementationProviderFactory.class.getName()); + private PropertyValueFactory propertyValueFactory; + private DataBindingExtensionPoint databindings; + private ProxyFactory proxyFactory; private ComponentContextFactory componentContextFactory; private RequestContextFactory requestContextFactory; + public JavaImplementationProviderFactory(ExtensionPointRegistry registry) { + FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); + MessageFactory messageFactory = factories.getFactory(MessageFactory.class); + + UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); + InterfaceContractMapper interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class); + + ProxyFactoryExtensionPoint proxyFactories = registry.getExtensionPoint(ProxyFactoryExtensionPoint.class); + try { + proxyFactories.setClassProxyFactory(new CglibProxyFactory(messageFactory, interfaceContractMapper)); + } catch (NoClassDefFoundError e) { + logger.log(Level.WARNING, "Class-based proxy is not supported", e); + } + + databindings = registry.getExtensionPoint(DataBindingExtensionPoint.class); + propertyValueFactory = factories.getFactory(PropertyValueFactory.class); + + ContextFactoryExtensionPoint contextFactories = registry.getExtensionPoint(ContextFactoryExtensionPoint.class); + componentContextFactory = contextFactories.getFactory(ComponentContextFactory.class); + requestContextFactory = contextFactories.getFactory(RequestContextFactory.class); + + proxyFactory = new ExtensibleProxyFactory(proxyFactories); + } + + /* public JavaImplementationProviderFactory(ProxyFactory proxyService, DataBindingExtensionPoint dataBindingRegistry, PropertyValueFactory propertyValueObjectFactory, ComponentContextFactory componentContextFactory, RequestContextFactory requestContextFactory) { super(); - this.proxyService = proxyService; - this.dataBindingRegistry = dataBindingRegistry; - this.propertyValueObjectFactory = propertyValueObjectFactory; + this.proxyFactory = proxyService; + this.databindings = dataBindingRegistry; + this.propertyValueFactory = propertyValueObjectFactory; this.componentContextFactory = componentContextFactory; this.requestContextFactory = requestContextFactory; } + */ public ImplementationProvider createImplementationProvider(RuntimeComponent component, JavaImplementation implementation) { return new JavaImplementationProvider(component, implementation, - proxyService, - dataBindingRegistry, - propertyValueObjectFactory, + proxyFactory, + databindings, + propertyValueFactory, componentContextFactory, requestContextFactory); } diff --git a/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java b/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java deleted file mode 100644 index e1e8b05ab8..0000000000 --- a/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/module/JavaRuntimeModuleActivator.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.implementation.java.module; - -import java.util.logging.Logger; - -import org.apache.tuscany.sca.context.ComponentContextFactory; -import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint; -import org.apache.tuscany.sca.context.PropertyValueFactory; -import org.apache.tuscany.sca.context.RequestContextFactory; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.core.ModuleActivator; -import org.apache.tuscany.sca.core.UtilityExtensionPoint; -import org.apache.tuscany.sca.core.invocation.CglibProxyFactory; -import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory; -import org.apache.tuscany.sca.core.invocation.ProxyFactory; -import org.apache.tuscany.sca.core.invocation.ProxyFactoryExtensionPoint; -import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; -import org.apache.tuscany.sca.databinding.Mediator; -import org.apache.tuscany.sca.implementation.java.invocation.JavaCallbackRuntimeWireProcessor; -import org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationProviderFactory; -import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; -import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint; -import org.apache.tuscany.sca.runtime.RuntimeWireProcessorExtensionPoint; - -/** - * @version $Rev$ $Date$ - */ -public class JavaRuntimeModuleActivator implements ModuleActivator { - - private static final Logger logger = Logger.getLogger(JavaRuntimeModuleActivator.class.getName()); - - public JavaRuntimeModuleActivator() { - } - - public void start(ExtensionPointRegistry registry) { - - FactoryExtensionPoint factories = registry.getExtensionPoint(FactoryExtensionPoint.class); - MessageFactory messageFactory = factories.getFactory(MessageFactory.class); - - UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); - InterfaceContractMapper interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class); - - ProxyFactoryExtensionPoint proxyFactories = registry.getExtensionPoint(ProxyFactoryExtensionPoint.class); - try { - proxyFactories.setClassProxyFactory(new CglibProxyFactory(messageFactory, interfaceContractMapper)); - } catch (NoClassDefFoundError e) { - logger.warning("Class proxys not supported due to NoClassDefFoundError:" + e.getMessage()); - } - - JavaInterfaceFactory javaFactory = factories.getFactory(JavaInterfaceFactory.class); - - DataBindingExtensionPoint dataBindings = registry.getExtensionPoint(DataBindingExtensionPoint.class); - Mediator mediator = utilities.getUtility(Mediator.class); - PropertyValueFactory factory = utilities.getUtility(PropertyValueFactory.class); - factories.addFactory(factory); - - ContextFactoryExtensionPoint contextFactories = registry.getExtensionPoint(ContextFactoryExtensionPoint.class); - ComponentContextFactory componentContextFactory = contextFactories.getFactory(ComponentContextFactory.class); - RequestContextFactory requestContextFactory = contextFactories.getFactory(RequestContextFactory.class); - - ProxyFactory proxyFactory = new ExtensibleProxyFactory(proxyFactories); - - JavaImplementationProviderFactory javaImplementationProviderFactory = - new JavaImplementationProviderFactory(proxyFactory, dataBindings, factory, componentContextFactory, - requestContextFactory); - - ProviderFactoryExtensionPoint providerFactories = - registry.getExtensionPoint(ProviderFactoryExtensionPoint.class); - providerFactories.addProviderFactory(javaImplementationProviderFactory); - - RuntimeWireProcessorExtensionPoint wireProcessorExtensionPoint = - registry.getExtensionPoint(RuntimeWireProcessorExtensionPoint.class); - if (wireProcessorExtensionPoint != null) { - wireProcessorExtensionPoint.addWireProcessor(new JavaCallbackRuntimeWireProcessor(interfaceContractMapper, - javaFactory)); - //wireProcessorExtensionPoint.addWireProcessor(new JavaPolicyHandlingRuntimeWireProcessor()); - } - } - - public void stop(ExtensionPointRegistry registry) { - } -} diff --git a/java/sca/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory b/java/sca/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory new file mode 100644 index 0000000000..cd7a8fbe2a --- /dev/null +++ b/java/sca/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.ImplementationProviderFactory @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Implementation class for the implementation extension
+org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationProviderFactory;model=org.apache.tuscany.sca.implementation.java.JavaImplementation
diff --git a/java/sca/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator b/java/sca/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeWireProcessor index 0871ddf4be..2d93573bbb 100644 --- a/java/sca/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator +++ b/java/sca/modules/implementation-java-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.RuntimeWireProcessor @@ -13,6 +13,5 @@ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
-# under the License.
-# Implementation class for the ModuleActivator
-org.apache.tuscany.sca.implementation.java.module.JavaRuntimeModuleActivator
+# under the License.
+org.apache.tuscany.sca.implementation.java.invocation.JavaCallbackRuntimeWireProcessor
\ No newline at end of file diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractProcessorTest.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractProcessorTest.java index 478c5d4be0..a4d5c6fb95 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractProcessorTest.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractProcessorTest.java @@ -19,10 +19,11 @@ package org.apache.tuscany.sca.implementation.java.introspect.impl; import java.lang.reflect.Constructor; -import java.lang.reflect.Method; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.IntrospectionException; import org.apache.tuscany.sca.implementation.java.JavaConstructorImpl; import org.apache.tuscany.sca.implementation.java.JavaImplementation; @@ -46,8 +47,9 @@ public abstract class AbstractProcessorTest { protected AbstractProcessorTest() { - factory = new DefaultAssemblyFactory(); - javaFactory = new DefaultJavaInterfaceFactory(); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + factory = new DefaultAssemblyFactory(registry); + javaFactory = new DefaultJavaInterfaceFactory(registry); referenceProcessor = new ReferenceProcessor(factory, javaFactory); propertyProcessor = new PropertyProcessor(factory); resourceProcessor = new ResourceProcessor(factory); diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorProcessorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorProcessorTestCase.java index cc0c0888b8..e049ad0321 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorProcessorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ConstructorProcessorTestCase.java @@ -34,6 +34,8 @@ import java.util.Set; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; import org.apache.tuscany.sca.assembly.Multiplicity; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.JavaImplementation; import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory; @@ -97,8 +99,9 @@ public class ConstructorProcessorTestCase { Constructor<Mixed> ctor1 = Mixed.class.getConstructor(String.class, String.class, String.class); processor.visitConstructor(ctor1, type); - AssemblyFactory assemblyFactory = new DefaultAssemblyFactory(); - JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + AssemblyFactory assemblyFactory = new DefaultAssemblyFactory(registry); + JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(registry); ReferenceProcessor referenceProcessor = new ReferenceProcessor(assemblyFactory, javaFactory); PropertyProcessor propertyProcessor = new PropertyProcessor(assemblyFactory); JavaParameterImpl[] parameters = type.getConstructor().getParameters(); @@ -172,8 +175,9 @@ public class ConstructorProcessorTestCase { Set.class, String[].class); processor.visitConstructor(ctor1, type); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); AssemblyFactory assemblyFactory = new DefaultAssemblyFactory(); - JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(); + JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(registry); ReferenceProcessor referenceProcessor = new ReferenceProcessor(assemblyFactory, javaFactory); PropertyProcessor propertyProcessor = new PropertyProcessor(assemblyFactory); JavaParameterImpl[] parameters = type.getConstructor().getParameters(); diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicAndPropertyTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicAndPropertyTestCase.java index 53dd94c1a3..6c8c84a200 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicAndPropertyTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicAndPropertyTestCase.java @@ -24,6 +24,8 @@ import java.lang.reflect.Constructor; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.JavaConstructorImpl; import org.apache.tuscany.sca.implementation.java.JavaImplementation; @@ -60,8 +62,9 @@ public class HeuristicAndPropertyTestCase { @Before public void setUp() throws Exception { + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); propertyProcessor = new PropertyProcessor(assemblyFactory); - heuristicProcessor = new HeuristicPojoProcessor(assemblyFactory, new DefaultJavaInterfaceFactory()); + heuristicProcessor = new HeuristicPojoProcessor(assemblyFactory, new DefaultJavaInterfaceFactory(registry)); } public static class Foo { diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicConstructorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicConstructorTestCase.java index 19197e81e4..394857576d 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicConstructorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicConstructorTestCase.java @@ -28,6 +28,8 @@ import java.lang.reflect.Constructor; import org.apache.tuscany.sca.assembly.AssemblyFactory; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.IntrospectionException; import org.apache.tuscany.sca.implementation.java.JavaElementImpl; @@ -51,8 +53,9 @@ public class HeuristicConstructorTestCase extends AbstractProcessorTest { private JavaImplementationFactory javaImplementationFactory; public HeuristicConstructorTestCase() { - factory = new DefaultAssemblyFactory(); - javaFactory = new DefaultJavaInterfaceFactory(); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + factory = new DefaultAssemblyFactory(registry); + javaFactory = new DefaultJavaInterfaceFactory(registry); javaImplementationFactory = new DefaultJavaImplementationFactory(); processor = new HeuristicPojoProcessor(factory, javaFactory); } diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java index 6cc8b1777b..ede71a90dd 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessorTestCase.java @@ -30,6 +30,8 @@ import javax.jws.WebService; import javax.xml.namespace.QName; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.IntrospectionException; import org.apache.tuscany.sca.implementation.java.JavaConstructorImpl; @@ -56,7 +58,8 @@ public class HeuristicPojoProcessorTestCase extends AbstractProcessorTest { private JavaImplementationFactory javaImplementationFactory; public HeuristicPojoProcessorTestCase() { - processor = new HeuristicPojoProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory()); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + processor = new HeuristicPojoProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory(registry)); javaImplementationFactory = new DefaultJavaImplementationFactory(); } diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeutisticExtensibleConstructorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeutisticExtensibleConstructorTestCase.java index 17b5381641..07ab6f28c8 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeutisticExtensibleConstructorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeutisticExtensibleConstructorTestCase.java @@ -24,6 +24,8 @@ import java.lang.reflect.Constructor; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; import org.apache.tuscany.sca.assembly.Property; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.IntrospectionException; import org.apache.tuscany.sca.implementation.java.JavaConstructorImpl; @@ -46,7 +48,8 @@ public class HeutisticExtensibleConstructorTestCase extends AbstractProcessorTes private JavaImplementationFactory javaImplementationFactory; public HeutisticExtensibleConstructorTestCase() { - processor = new HeuristicPojoProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory()); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + processor = new HeuristicPojoProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory(registry)); javaImplementationFactory = new DefaultJavaImplementationFactory(); } diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PolicyProcessorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PolicyProcessorTestCase.java index 286b0d70d1..c43db2df09 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PolicyProcessorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/PolicyProcessorTestCase.java @@ -27,6 +27,8 @@ import java.util.List; import java.util.Map; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.JavaImplementation; import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory; @@ -242,9 +244,10 @@ public class PolicyProcessorTestCase { @Before public void setUp() throws Exception { - serviceProcessor = new ServiceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory()); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + serviceProcessor = new ServiceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory(registry)); policyProcessor = new PolicyProcessor(new DefaultAssemblyFactory(), new DefaultPolicyFactory()); - visitor = new PolicyJavaInterfaceVisitor(new DefaultPolicyFactory()); + visitor = new PolicyJavaInterfaceVisitor(registry); JavaImplementationFactory javaImplementationFactory = new DefaultJavaImplementationFactory(); type = javaImplementationFactory.createJavaImplementation(); } diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ReferenceProcessorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ReferenceProcessorTestCase.java index fdde009893..6a7987a376 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ReferenceProcessorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ReferenceProcessorTestCase.java @@ -30,6 +30,8 @@ import java.util.List; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; import org.apache.tuscany.sca.assembly.Multiplicity; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.JavaImplementation; import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory; @@ -50,9 +52,10 @@ public class ReferenceProcessorTestCase { @Before public void setUp() throws Exception { + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); JavaImplementationFactory javaImplementationFactory = new DefaultJavaImplementationFactory(); type = javaImplementationFactory.createJavaImplementation(); - processor = new ReferenceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory()); + processor = new ReferenceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory(registry)); } @Test diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceCallbackTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceCallbackTestCase.java index c1046a9fda..68f3b9e456 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceCallbackTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceCallbackTestCase.java @@ -28,6 +28,8 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.IntrospectionException; import org.apache.tuscany.sca.implementation.java.JavaImplementation; @@ -49,7 +51,8 @@ public class ServiceCallbackTestCase { @Before public void setUp() throws Exception { - processor = new ServiceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory()); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + processor = new ServiceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory(registry)); javaImplementationFactory = new DefaultJavaImplementationFactory(); } diff --git a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java index 14eadfe6a2..d591123aef 100644 --- a/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java +++ b/java/sca/modules/implementation-java/src/test/java/org/apache/tuscany/sca/implementation/java/introspect/impl/ServiceProcessorTestCase.java @@ -26,6 +26,8 @@ import static org.junit.Assert.fail; import javax.jws.WebService; import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory; import org.apache.tuscany.sca.implementation.java.IntrospectionException; import org.apache.tuscany.sca.implementation.java.JavaImplementation; @@ -141,7 +143,8 @@ public class ServiceProcessorTestCase { @Before public void setUp() throws Exception { - processor = new ServiceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory()); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + processor = new ServiceProcessor(new DefaultAssemblyFactory(), new DefaultJavaInterfaceFactory(registry)); JavaImplementationFactory javaImplementationFactory = new DefaultJavaImplementationFactory(); type = javaImplementationFactory.createJavaImplementation(); } diff --git a/java/sca/modules/interface-java-jaxws/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor b/java/sca/modules/interface-java-jaxws/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor index b109269328..3c1fc0095e 100644 --- a/java/sca/modules/interface-java-jaxws/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor +++ b/java/sca/modules/interface-java-jaxws/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor @@ -14,5 +14,5 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -org.apache.tuscany.sca.interfacedef.java.jaxws.WebServiceInterfaceProcessor -org.apache.tuscany.sca.interfacedef.java.jaxws.JAXWSJavaInterfaceProcessor
\ No newline at end of file +org.apache.tuscany.sca.interfacedef.java.jaxws.WebServiceInterfaceProcessor;ranking=400 +org.apache.tuscany.sca.interfacedef.java.jaxws.JAXWSJavaInterfaceProcessor;ranking=100
\ No newline at end of file diff --git a/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java b/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java index 1d34dd1679..5f3114a67c 100644 --- a/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java +++ b/java/sca/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java @@ -28,10 +28,7 @@ import javax.jws.soap.SOAPBinding; import javax.xml.namespace.QName; import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; -import org.apache.tuscany.sca.databinding.DefaultDataBindingExtensionPoint; -import org.apache.tuscany.sca.databinding.jaxb.DefaultXMLAdapterExtensionPoint; -import org.apache.tuscany.sca.databinding.jaxb.XMLAdapterExtensionPoint; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory; import org.apache.tuscany.sca.interfacedef.java.JavaInterface; @@ -46,21 +43,23 @@ import com.example.stock.StockExceptionTest; * @version $Rev$ $Date$ */ public class JAXWSJavaInterfaceProcessorTestCase { - private JAXWSJavaInterfaceProcessor interfaceProcessor; + private ExtensionPointRegistry registry; + // private JAXWSJavaInterfaceProcessor interfaceProcessor; @Before public void setUp() throws Exception { - DataBindingExtensionPoint db = new DefaultDataBindingExtensionPoint(new DefaultExtensionPointRegistry()); - XMLAdapterExtensionPoint xa = new DefaultXMLAdapterExtensionPoint(); - interfaceProcessor = new JAXWSJavaInterfaceProcessor(db, new JAXWSFaultExceptionMapper(db, xa), xa); + registry = new DefaultExtensionPointRegistry(); +// DataBindingExtensionPoint db = new DefaultDataBindingExtensionPoint(registry); +// XMLAdapterExtensionPoint xa = new DefaultXMLAdapterExtensionPoint(); + // interfaceProcessor = new JAXWSJavaInterfaceProcessor(db, new JAXWSFaultExceptionMapper(db, xa), xa); } @Test public void testWrapper() throws Exception { - DefaultJavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory(); + DefaultJavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory(registry); JavaInterface contract = iFactory.createJavaInterface(StockExceptionTest.class); - interfaceProcessor.visitInterface(contract); + // interfaceProcessor.visitInterface(contract); Operation op = contract.getOperations().get(0); Assert.assertTrue(!op.isWrapperStyle()); Assert.assertEquals(new QName("http://www.example.com/stock", "stockQuoteOffer"), op.getWrapper().getInputWrapperElement().getQName()); @@ -73,14 +72,14 @@ public class JAXWSJavaInterfaceProcessorTestCase { */ @Test public final void testProcessor() throws Exception { - DefaultJavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory(); + DefaultJavaInterfaceFactory iFactory = new DefaultJavaInterfaceFactory(registry); JavaInterface contract = iFactory.createJavaInterface(WebServiceInterfaceWithoutAnnotation.class); - interfaceProcessor.visitInterface(contract); + // interfaceProcessor.visitInterface(contract); assertFalse(contract.isRemotable()); contract = iFactory.createJavaInterface(WebServiceInterfaceWithAnnotation.class); - interfaceProcessor.visitInterface(contract); + // interfaceProcessor.visitInterface(contract); assertTrue(contract.isRemotable()); Operation op1 = contract.getOperations().get(0); diff --git a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java index 374cb2029a..85af53068a 100644 --- a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java +++ b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/DefaultJavaInterfaceFactory.java @@ -24,20 +24,11 @@ import java.util.Collection; import java.util.List; import java.util.logging.Logger; -import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.extensibility.ServiceDeclaration; import org.apache.tuscany.sca.extensibility.ServiceDiscovery; import org.apache.tuscany.sca.interfacedef.java.impl.JavaInterfaceFactoryImpl; -import org.apache.tuscany.sca.interfacedef.java.impl.PolicyJavaInterfaceVisitor; import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor; -import org.apache.tuscany.sca.monitor.Monitor; -import org.apache.tuscany.sca.monitor.MonitorFactory; -import org.apache.tuscany.sca.monitor.Problem; -import org.apache.tuscany.sca.monitor.Problem.Severity; -import org.apache.tuscany.sca.policy.PolicyFactory; /** * A factory for the Java interface model. @@ -48,37 +39,13 @@ public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implem private static final Logger logger = Logger.getLogger(DefaultJavaInterfaceFactory.class.getName()); private ExtensionPointRegistry extensionPointRegistry; - private FactoryExtensionPoint modelFactoryExtensionPoint; - private Monitor monitor = null; + // private Monitor monitor = null; private boolean loadedVisitors; - public DefaultJavaInterfaceFactory() { + public DefaultJavaInterfaceFactory(ExtensionPointRegistry registry) { super(); - this.extensionPointRegistry = new DefaultExtensionPointRegistry(); - - UtilityExtensionPoint utilities = this.extensionPointRegistry.getExtensionPoint(UtilityExtensionPoint.class); - MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - if (monitorFactory != null) { - this.monitor = monitorFactory.createMonitor(); - } - - } - - /* - public DefaultJavaInterfaceFactory(FactoryExtensionPoint modelFactoryExtensionPoint) { - this.extensionPointRegistry = new DefaultExtensionPointRegistry(); - - this.extensionPointRegistry = new DefaultExtensionPointRegistry(); - this.modelFactoryExtensionPoint = modelFactoryExtensionPoint; - - UtilityExtensionPoint utilities = this.extensionPointRegistry.getExtensionPoint(UtilityExtensionPoint.class); - MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); - if (monitorFactory != null) { - this.monitor = monitorFactory.createMonitor(); - } - + this.extensionPointRegistry = registry; } - */ @Override public List<JavaInterfaceVisitor> getInterfaceVisitors() { @@ -94,17 +61,10 @@ public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implem if (loadedVisitors) return; - if (modelFactoryExtensionPoint != null) { - PolicyFactory policyFactory = modelFactoryExtensionPoint.getFactory(PolicyFactory.class); - if (policyFactory != null) { - addInterfaceVisitor(new PolicyJavaInterfaceVisitor(policyFactory)); - } - } - // Get the databinding service declarations Collection<ServiceDeclaration> visitorDeclarations; try { - visitorDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(JavaInterfaceVisitor.class.getName()); + visitorDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(JavaInterfaceVisitor.class, true); } catch (IOException e) { throw new IllegalStateException(e); } @@ -125,7 +85,6 @@ public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implem } catch (Exception e) { IllegalStateException ie = new IllegalStateException(e); - error("IllegalStateException", visitor, ie); throw ie; } @@ -137,24 +96,5 @@ public class DefaultJavaInterfaceFactory extends JavaInterfaceFactoryImpl implem loadedVisitors = true; } - - /** - * Report a exception. - * - * @param problems - * @param message - * @param model - */ - private void error(String message, Object model, Exception ex) { - if (monitor != null) { - Problem problem = - monitor.createProblem(this.getClass().getName(), - "interface-javaxml-validation-messages.properties", - Severity.ERROR, - model, - message, - ex); - monitor.problem(problem); - } - } + } diff --git a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java index cda87188be..1610a2e8ec 100644 --- a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java +++ b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java @@ -27,6 +27,8 @@ import java.util.Set; import javax.xml.namespace.QName; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.interfacedef.java.JavaInterface; @@ -47,9 +49,9 @@ import org.oasisopen.sca.annotation.Requires; public class PolicyJavaInterfaceVisitor implements JavaInterfaceVisitor { private PolicyFactory policyFactory; - public PolicyJavaInterfaceVisitor(PolicyFactory policyFactory) { + public PolicyJavaInterfaceVisitor(ExtensionPointRegistry registry) { super(); - this.policyFactory = policyFactory; + this.policyFactory = registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(PolicyFactory.class); } private QName getQName(String intentName) { diff --git a/java/sca/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor b/java/sca/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor new file mode 100644 index 0000000000..3bfa8cf685 --- /dev/null +++ b/java/sca/modules/interface-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor @@ -0,0 +1,17 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +org.apache.tuscany.sca.interfacedef.java.impl.PolicyJavaInterfaceVisitor;ranking=1000 diff --git a/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java b/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java index 0879d00b12..c70bdcaf47 100644 --- a/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java +++ b/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceUtilDuplicateRemotableTestCase.java @@ -24,6 +24,8 @@ import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.interfacedef.DataType; import org.apache.tuscany.sca.interfacedef.Interface; import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; @@ -167,7 +169,8 @@ public class JavaInterfaceUtilDuplicateRemotableTestCase { @Test public void testDuplicateOpeartionOnRemotableInterface() { - JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + JavaInterfaceFactory javaFactory = new DefaultJavaInterfaceFactory(registry); JavaInterfaceIntrospectorImpl introspector = new JavaInterfaceIntrospectorImpl(javaFactory); JavaInterfaceImpl javaInterface = new JavaInterfaceImpl(); diff --git a/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java b/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java index 925fe90f1c..88ef90edbe 100644 --- a/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java +++ b/java/sca/modules/interface-java/src/test/java/org/apache/tuscany/sca/interfacedef/java/introspection/impl/PolicyProcessorTestCase.java @@ -20,11 +20,11 @@ package org.apache.tuscany.sca.interfacedef.java.introspection.impl; import static org.junit.Assert.assertEquals; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory; import org.apache.tuscany.sca.interfacedef.java.JavaInterface; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; -import org.apache.tuscany.sca.interfacedef.java.impl.PolicyJavaInterfaceVisitor; -import org.apache.tuscany.sca.policy.DefaultPolicyFactory; import org.junit.Before; import org.junit.Test; import org.oasisopen.sca.annotation.Authentication; @@ -36,13 +36,13 @@ import org.oasisopen.sca.annotation.Requires; * @version $Rev$ $Date$ */ public class PolicyProcessorTestCase { - private JavaInterfaceFactory factory = new DefaultJavaInterfaceFactory(); - private PolicyJavaInterfaceVisitor policyProcessor; + private JavaInterfaceFactory factory; + // private PolicyJavaInterfaceVisitor policyProcessor; @Test public void testInterfaceLevel() throws Exception { JavaInterface type = factory.createJavaInterface(Interface1.class); - policyProcessor.visitInterface(type); + // policyProcessor.visitInterface(type); assertEquals(2, type.getRequiredIntents().size()); assertEquals(1, type.getPolicySets().size()); } @@ -50,7 +50,7 @@ public class PolicyProcessorTestCase { @Test public void testMethodLevel() throws Exception { JavaInterface type = factory.createJavaInterface(Interface2.class); - policyProcessor.visitInterface(type); + // policyProcessor.visitInterface(type); assertEquals(0, type.getRequiredIntents().size()); assertEquals(3, type.getOperations().get(0).getRequiredIntents().size()); assertEquals(1, type.getOperations().get(1).getRequiredIntents().size()); @@ -62,7 +62,7 @@ public class PolicyProcessorTestCase { @Test public void testInterfaceAndMethodLevel() throws Exception { JavaInterface type = factory.createJavaInterface(Interface3.class); - policyProcessor.visitInterface(type); + // policyProcessor.visitInterface(type); assertEquals(2, type.getRequiredIntents().size()); assertEquals(1, type.getOperations().get(0).getRequiredIntents().size()); assertEquals(1, type.getOperations().get(1).getRequiredIntents().size()); @@ -73,7 +73,9 @@ public class PolicyProcessorTestCase { @Before public void setUp() throws Exception { - policyProcessor = new PolicyJavaInterfaceVisitor(new DefaultPolicyFactory()); + ExtensionPointRegistry registry = new DefaultExtensionPointRegistry(); + factory = new DefaultJavaInterfaceFactory(registry); + // policyProcessor = new PolicyJavaInterfaceVisitor(registry); } // @Remotable |