summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/myfaces/src
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-03-02 13:35:19 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-03-02 13:35:19 +0000
commita7313bd1ff764e5060b9bb3a090cd41d66e9293c (patch)
tree8f1bb905973c56b668dc19f59622168c117b9d2f /java/sca/modules/myfaces/src
parenta0bab15571fa93dd8015ad44039f08865b96c6b7 (diff)
Remove the dependency on the Tomcat annotation processor
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@749302 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/myfaces/src')
-rw-r--r--java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationLifecycleProvider.java30
-rw-r--r--java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationProcessor.java17
2 files changed, 28 insertions, 19 deletions
diff --git a/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationLifecycleProvider.java b/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationLifecycleProvider.java
index 8f9000ffe6..c98366d033 100644
--- a/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationLifecycleProvider.java
+++ b/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationLifecycleProvider.java
@@ -26,34 +26,44 @@ import javax.faces.context.ExternalContext;
import javax.naming.NamingException;
import javax.servlet.ServletContext;
-import org.apache.AnnotationProcessor;
import org.apache.myfaces.config.annotation.DiscoverableLifecycleProvider;
-import org.apache.myfaces.config.annotation.TomcatAnnotationLifecycleProvider;
import org.apache.myfaces.shared_impl.util.ClassUtils;
-import org.apache.tuscany.sca.node.impl.NodeImpl;
-public class TuscanyAnnotationLifecycleProvider extends TomcatAnnotationLifecycleProvider implements DiscoverableLifecycleProvider {
+public class TuscanyAnnotationLifecycleProvider implements DiscoverableLifecycleProvider {
private static final Logger logger = Logger.getLogger(TuscanyAnnotationLifecycleProvider.class.getName());
private TuscanyAnnotationProcessor annotationProcessor;
private ServletContext servletContext;
+
public TuscanyAnnotationLifecycleProvider(ExternalContext externalContext) {
- super(externalContext);
this.servletContext = (ServletContext)externalContext.getContext();
- AnnotationProcessor ap = (org.apache.AnnotationProcessor)servletContext.getAttribute(org.apache.AnnotationProcessor.class.getName());
- annotationProcessor = new TuscanyAnnotationProcessor(ap);
+
+ // TODO: Should this use any existing AnnotationProcessor?
+ // Tomcat based runtimes may use an org.apache.AnnotationProcessor which
+ // if exists this could delegate to so as to support both SCA and other annotations
+ // AnnotationProcessor existingAnnotationProcessor = (AnnotationProcessor)
+ // servletContext.getAttribute(org.apache.AnnotationProcessor.class.getName());
+ // annotationProcessor = new TuscanyAnnotationProcessor(existingAnnotationProcessor);
+ annotationProcessor = new TuscanyAnnotationProcessor();
}
public Object newInstance(String className) throws InstantiationException, IllegalAccessException, InvocationTargetException, NamingException, ClassNotFoundException {
-
- Class<?> clazz = ClassUtils.classForName(className);
logger.info("Creating instance of " + className);
+ Class<?> clazz = ClassUtils.classForName(className);
Object object = clazz.newInstance();
annotationProcessor.processAnnotations(object, servletContext);
annotationProcessor.postConstruct(object);
-
return object;
}
+ public boolean isAvailable() {
+ return true;
+ }
+
+ public void destroyInstance(Object o) throws IllegalAccessException, InvocationTargetException {
+ logger.info("Destroy instance of " + o.getClass().getName());
+ annotationProcessor.preDestroy(o);
+ }
+
}
diff --git a/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationProcessor.java b/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationProcessor.java
index bd9b19fd8c..bd0ead8087 100644
--- a/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationProcessor.java
+++ b/java/sca/modules/myfaces/src/main/java/org/apache/tuscany/myfaces/TuscanyAnnotationProcessor.java
@@ -24,31 +24,30 @@ import java.lang.reflect.InvocationTargetException;
import javax.naming.NamingException;
import javax.servlet.ServletContext;
-import org.apache.AnnotationProcessor;
import org.apache.tuscany.sca.implementation.web.runtime.utils.ContextHelper;
-public class TuscanyAnnotationProcessor implements org.apache.AnnotationProcessor {
+//public class TuscanyAnnotationProcessor implements org.apache.AnnotationProcessor {
+public class TuscanyAnnotationProcessor {
- org.apache.AnnotationProcessor annotationProcessor;
+// private AnnotationProcessor annotationProcessor;
- public TuscanyAnnotationProcessor(AnnotationProcessor annotationProcessor) {
- this.annotationProcessor = annotationProcessor;
+ public TuscanyAnnotationProcessor() {
}
public void postConstruct(Object arg0) throws IllegalAccessException, InvocationTargetException {
- annotationProcessor.postConstruct(arg0);
+// annotationProcessor.postConstruct(arg0);
}
public void preDestroy(Object arg0) throws IllegalAccessException, InvocationTargetException {
- annotationProcessor.preDestroy(arg0);
+// annotationProcessor.preDestroy(arg0);
}
public void processAnnotations(Object arg0, ServletContext servletContext) throws IllegalAccessException, InvocationTargetException, NamingException {
ContextHelper.inject(arg0, servletContext);
- annotationProcessor.processAnnotations(arg0);
+// annotationProcessor.processAnnotations(arg0);
}
public void processAnnotations(Object arg0) throws IllegalAccessException, InvocationTargetException, NamingException {
- annotationProcessor.processAnnotations(arg0);
+// annotationProcessor.processAnnotations(arg0);
}
}