summaryrefslogtreecommitdiffstats
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
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 '')
-rw-r--r--branches/sca-java-1.x/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringContextTie.java15
-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
-rw-r--r--branches/sca-java-1.x/modules/pom.xml2
8 files changed, 73 insertions, 16 deletions
diff --git a/branches/sca-java-1.x/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringContextTie.java b/branches/sca-java-1.x/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringContextTie.java
index d44e4ef408..bf7d133d01 100644
--- a/branches/sca-java-1.x/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringContextTie.java
+++ b/branches/sca-java-1.x/modules/implementation-spring-runtime/src/main/java/org/apache/tuscany/sca/implementation/spring/runtime/context/SpringContextTie.java
@@ -55,12 +55,14 @@ public class SpringContextTie {
private AbstractApplicationContext springContext;
private SpringImplementationStub implementation;
+ private boolean isAnnotationSupported;
- public SpringContextTie(SpringImplementationStub implementation, URL resource) throws Exception {
+ public SpringContextTie(SpringImplementationStub implementation, URL resource, boolean annotationSupport) throws Exception {
this.implementation = implementation;
+ this.isAnnotationSupported = annotationSupport;
if ((SpringVersion.getVersion()!= null) && (! SpringVersion.getVersion().equals("2.5.5"))) {
throw new RuntimeException("Unsupported version: Use only Spring Framework Version 2.5.5");
- }
+ }
SCAParentApplicationContext scaParentContext = new SCAParentApplicationContext(implementation);
springContext = createApplicationContext(scaParentContext, resource);
}
@@ -120,19 +122,22 @@ public class SpringContextTie {
if (beanClassName.indexOf(".ClassPathXmlApplicationContext") != -1) {
appContext = new ClassPathXmlApplicationContext(listValues, false, scaParentContext);
appContext.refresh();
- includeAnnotationProcessors(appContext.getBeanFactory());
+ if (isAnnotationSupported)
+ includeAnnotationProcessors(appContext.getBeanFactory());
return appContext;
} else {
appContext = new FileSystemXmlApplicationContext(listValues, false, scaParentContext);
appContext.refresh();
- includeAnnotationProcessors(appContext.getBeanFactory());
+ if (isAnnotationSupported)
+ includeAnnotationProcessors(appContext.getBeanFactory());
return appContext;
}
}
}
// use the generic application context as default
- includeAnnotationProcessors(beanFactory);
+ if (isAnnotationSupported)
+ includeAnnotationProcessors(beanFactory);
appContext = new GenericApplicationContext(beanFactory, scaParentContext);
return appContext;
}
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
diff --git a/branches/sca-java-1.x/modules/pom.xml b/branches/sca-java-1.x/modules/pom.xml
index 87fcc6d32e..b07618fac9 100644
--- a/branches/sca-java-1.x/modules/pom.xml
+++ b/branches/sca-java-1.x/modules/pom.xml
@@ -176,7 +176,7 @@
<module>policy-logging</module>
<module>policy-reliability</module>
<module>policy-security</module>
- <module>policy-security-http</module>
+ <!--module>policy-security-http</module-->
<module>policy-security-jsr250</module>
<module>policy-transaction</module>
<module>sca-api</module>