diff options
Diffstat (limited to 'tags/java/sca/2.0-M4-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyAnnotationsProcessor.java')
-rw-r--r-- | tags/java/sca/2.0-M4-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyAnnotationsProcessor.java | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/tags/java/sca/2.0-M4-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyAnnotationsProcessor.java b/tags/java/sca/2.0-M4-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyAnnotationsProcessor.java deleted file mode 100644 index 54947d6492..0000000000 --- a/tags/java/sca/2.0-M4-RC1/distribution/tomcat/tomcat-hook/src/main/java/org/apache/tuscany/sca/tomcat/TuscanyAnnotationsProcessor.java +++ /dev/null @@ -1,85 +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.tomcat; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import javax.naming.NamingException; -import javax.servlet.ServletContext; - -import org.apache.AnnotationProcessor; -import org.apache.catalina.util.DefaultAnnotationProcessor; - -public class TuscanyAnnotationsProcessor implements AnnotationProcessor { - - private TuscanyStandardContext tuscanyStandardContext; - private AnnotationProcessor tomcatAnnotationProcessor; - private Method tuscanyInjectMethod; - - public TuscanyAnnotationsProcessor(TuscanyStandardContext tuscanyStandardContext, javax.naming.Context context) { - this.tuscanyStandardContext = tuscanyStandardContext; - this.tomcatAnnotationProcessor = new DefaultAnnotationProcessor(context); - initInjectMethod(tuscanyStandardContext); - } - - private void initInjectMethod(TuscanyStandardContext tuscanyStandardContext) { - - // this needs to use reflection as the tuscany-hook module can't have any - // dependencies on the tuscany runtime modules as they're not - // in the server classpath - // TODO: is there a nicer way ? - - ClassLoader cl = tuscanyStandardContext.getParentClassLoader(); - try { - Class<?> c = Class.forName("org.apache.tuscany.sca.implementation.web.runtime.utils.ContextHelper", true, cl); - if (c != null) { - this.tuscanyInjectMethod = c.getMethod("inject", new Class[]{Object.class, ServletContext.class}); - } - } catch (Exception e){ - // ignore - } - } - - public void postConstruct(Object instance) throws IllegalAccessException, InvocationTargetException { - tomcatAnnotationProcessor.postConstruct(instance); - } - - public void preDestroy(Object instance) throws IllegalAccessException, InvocationTargetException { - tomcatAnnotationProcessor.preDestroy(instance); - } - - public void processAnnotations(Object instance) throws IllegalAccessException, InvocationTargetException, NamingException { - if (tuscanyInjectMethod != null) { - ServletContext sc = tuscanyStandardContext.getServletContext(); - if (sc != null) { - Object rc = sc.getAttribute("org.apache.tuscany.sca.implementation.web.RuntimeComponent"); - if (rc != null) { - try { - tuscanyInjectMethod.invoke(null, instance, sc); - } catch (Exception e) { - throw new InvocationTargetException(e); - } - } - } - } - tomcatAnnotationProcessor.processAnnotations(instance); - } -} |