From e74260dedbe4ba4af9d6af3d2856410fd706dc88 Mon Sep 17 00:00:00 2001 From: ramkumar Date: Tue, 23 Jun 2009 09:11:37 +0000 Subject: Fixes for TUSCANY-3096 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@787589 13f79535-47bb-0310-9956-ffa450edef68 --- .../invocation/AnnotationProcessorExtensionPoint.java | 7 +++++++ .../DefaultAnnotationProcessorExtensionPoint.java | 15 +++++++++++++++ .../spring/invocation/SpringContextStub.java | 12 +++++++----- .../invocation/SpringImplementationProvider.java | 5 +++-- .../SpringImplementationProviderFactory.java | 15 ++++++++++++--- ...ementation.spring.AnnotationProcessorExtensionPoint | 18 ++++++++++++++++++ 6 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/AnnotationProcessorExtensionPoint.java create mode 100644 branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/DefaultAnnotationProcessorExtensionPoint.java create mode 100644 branches/sca-java-1.x/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.AnnotationProcessorExtensionPoint (limited to 'branches/sca-java-1.x/modules/implementation-spring/src/main') diff --git a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/AnnotationProcessorExtensionPoint.java b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/AnnotationProcessorExtensionPoint.java new file mode 100644 index 0000000000..c91f7faaea --- /dev/null +++ b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/AnnotationProcessorExtensionPoint.java @@ -0,0 +1,7 @@ +package org.apache.tuscany.sca.implementation.spring.invocation; + +public interface AnnotationProcessorExtensionPoint { + + boolean isAnnotationSupported(); + +} diff --git a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/DefaultAnnotationProcessorExtensionPoint.java b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/DefaultAnnotationProcessorExtensionPoint.java new file mode 100644 index 0000000000..509e1f9f49 --- /dev/null +++ b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/DefaultAnnotationProcessorExtensionPoint.java @@ -0,0 +1,15 @@ +package org.apache.tuscany.sca.implementation.spring.invocation; + +public class DefaultAnnotationProcessorExtensionPoint implements AnnotationProcessorExtensionPoint { + + // Contructor + public DefaultAnnotationProcessorExtensionPoint() { + + } + + // By default SCA annotations for implementation.spring + // will be supproted. + public boolean isAnnotationSupported() { + return true; + } +} diff --git a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringContextStub.java b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringContextStub.java index 3d8d4112f0..a49f9d05ad 100644 --- a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringContextStub.java +++ b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringContextStub.java @@ -45,15 +45,17 @@ public class SpringContextStub { public SpringContextStub(RuntimeComponent component, SpringImplementation implementation, ProxyFactory proxyService, - JavaPropertyValueObjectFactory propertyValueObjectFactory) { + JavaPropertyValueObjectFactory propertyValueObjectFactory, + boolean annotationSupport) { - initTie(component, implementation, propertyValueObjectFactory); + initTie(component, implementation, propertyValueObjectFactory, annotationSupport); } private void initTie(RuntimeComponent component, SpringImplementation implementation, - JavaPropertyValueObjectFactory propertyValueObjectFactory) { + JavaPropertyValueObjectFactory propertyValueObjectFactory, + boolean annotationSupport) { // TODO: what class loader to use? ClassLoader cl = Thread.currentThread().getContextClassLoader(); @@ -65,8 +67,8 @@ public class SpringContextStub { Object stub = stubConstructor.newInstance(new SpringImplementationTie(implementation, component, propertyValueObjectFactory)); Class tieClass = Class.forName("org.apache.tuscany.sca.implementation.spring.runtime.context.SpringContextTie", true, cl); - Constructor tieConstructor = tieClass.getConstructor(new Class[]{stubClass, URL.class}); - this.tie = tieConstructor.newInstance(stub, implementation.getResource()); + Constructor tieConstructor = tieClass.getConstructor(new Class[]{stubClass, URL.class, boolean.class}); + this.tie = tieConstructor.newInstance(stub, implementation.getResource(), annotationSupport); this.startMethod = tieClass.getMethod("start"); this.closeMethod = tieClass.getMethod("close"); diff --git a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProvider.java b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProvider.java index e010f30776..e78dbe19b3 100644 --- a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProvider.java +++ b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProvider.java @@ -50,13 +50,14 @@ public class SpringImplementationProvider implements ImplementationProvider { public SpringImplementationProvider(RuntimeComponent component, SpringImplementation implementation, ProxyFactory proxyService, - JavaPropertyValueObjectFactory propertyValueObjectFactory) { + JavaPropertyValueObjectFactory propertyValueObjectFactory, + boolean annotationSupport) { super(); this.implementation = implementation; this.component = component; this.propertyValueObjectFactory = propertyValueObjectFactory; - springContext = new SpringContextStub(component, implementation, proxyService, propertyValueObjectFactory); + springContext = new SpringContextStub(component, implementation, proxyService, propertyValueObjectFactory, annotationSupport); } // end constructor diff --git a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProviderFactory.java b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProviderFactory.java index b7deeb2eb5..5a487436c9 100644 --- a/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProviderFactory.java +++ b/branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProviderFactory.java @@ -38,6 +38,8 @@ public class SpringImplementationProviderFactory implements ImplementationProvid private ProxyFactory proxyFactory; private JavaPropertyValueObjectFactory propertyFactory; + private AnnotationProcessorExtensionPoint annotationProcessor; + private boolean annotationSupport; /** * Simple constructor @@ -47,8 +49,14 @@ public class SpringImplementationProviderFactory implements ImplementationProvid super(); ProxyFactoryExtensionPoint proxyFactories = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class); - proxyFactory = new ExtensibleProxyFactory(proxyFactories); - + proxyFactory = new ExtensibleProxyFactory(proxyFactories); + + annotationProcessor = extensionPoints.getExtensionPoint(AnnotationProcessorExtensionPoint.class); + if (annotationProcessor == null) { + annotationProcessor = new DefaultAnnotationProcessorExtensionPoint(); + } + annotationSupport = annotationProcessor.isAnnotationSupported(); + // TODO: could the runtime have a default PropertyValueObjectFactory? propertyFactory = new JavaPropertyValueObjectFactory(new MediatorImpl(extensionPoints)); } @@ -65,7 +73,8 @@ public class SpringImplementationProviderFactory implements ImplementationProvid return new SpringImplementationProvider(component, implementation, proxyFactory, - propertyFactory); + propertyFactory, + annotationSupport); } /** diff --git a/branches/sca-java-1.x/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.AnnotationProcessorExtensionPoint b/branches/sca-java-1.x/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.AnnotationProcessorExtensionPoint new file mode 100644 index 0000000000..0d46795e88 --- /dev/null +++ b/branches/sca-java-1.x/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.AnnotationProcessorExtensionPoint @@ -0,0 +1,18 @@ +# 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.implementation.spring.invocation.DefaultAnnotationProcessorExtensionPoint -- cgit v1.2.3