summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/implementation-spring
diff options
context:
space:
mode:
authorramkumar <ramkumar@13f79535-47bb-0310-9956-ffa450edef68>2009-06-23 09:11:37 +0000
committerramkumar <ramkumar@13f79535-47bb-0310-9956-ffa450edef68>2009-06-23 09:11:37 +0000
commite74260dedbe4ba4af9d6af3d2856410fd706dc88 (patch)
tree933c3b13f11c534daaab5ef4f039957618b9cf57 /branches/sca-java-1.x/modules/implementation-spring
parentedd87337caed8414eadd9ff03339e9d3e534be3e (diff)
Fixes for TUSCANY-3096
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@787589 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x/modules/implementation-spring')
-rw-r--r--branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/AnnotationProcessorExtensionPoint.java7
-rw-r--r--branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/DefaultAnnotationProcessorExtensionPoint.java15
-rw-r--r--branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringContextStub.java12
-rw-r--r--branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProvider.java5
-rw-r--r--branches/sca-java-1.x/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/invocation/SpringImplementationProviderFactory.java15
-rw-r--r--branches/sca-java-1.x/modules/implementation-spring/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.spring.AnnotationProcessorExtensionPoint18
6 files changed, 62 insertions, 10 deletions
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