Author: dblevins
Date: Wed Aug 24 08:56:50 2011
New Revision: 1161019
URL: http://svn.apache.org/viewvc?rev=1161019&view=rev
Log:
OPENEJB-1647: Injection support for Filters and load-on-startup Servlets
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java?rev=1161019&r1=1161018&r2=1161019&view=diff
==============================================================================
---
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java
(original)
+++
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/ContextListener.java
Wed Aug 24 08:56:50 2011
@@ -97,4 +97,6 @@ public interface ContextListener {
* @param standardHost host
*/
void checkHost(StandardHost standardHost);
+
+ void configureStart(StandardContext standardContext);
}
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java?rev=1161019&r1=1161018&r2=1161019&view=diff
==============================================================================
---
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java
(original)
+++
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/GlobalListenerSupport.java
Wed Aug 24 08:56:50 2011
@@ -117,13 +117,7 @@ public class GlobalListenerSupport imple
} else if (DESTROY_EVENT.equals(type) ||
Lifecycle.AFTER_DESTROY_EVENT.equals(type)) {
contextListener.destroy(standardContext);
} else if (Lifecycle.CONFIGURE_START_EVENT.equals(type)) {
- if (TomcatHelper.isTomcat7()) {
- TomcatHelper.configureJarScanner(standardContext);
-
- ContextTransaction contextTransaction = new
ContextTransaction();
- contextTransaction.setProperty(Constants.FACTORY,
UserTransactionFactory.class.getName());
-
standardContext.getNamingResources().setTransaction(contextTransaction);
- }
+ contextListener.configureStart(standardContext);
}
} else if (source instanceof StandardHost) {
StandardHost standardHost = (StandardHost) source;
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java?rev=1161019&r1=1161018&r2=1161019&view=diff
==============================================================================
---
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
(original)
+++
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatLoader.java
Wed Aug 24 08:56:50 2011
@@ -113,11 +113,11 @@ public class TomcatLoader implements Loa
public void init(Properties properties) throws Exception {
// Enable System EJBs like the MEJB and DeployerEJB
- properties.setProperty("openejb.deployments.classpath", "true");
-
properties.setProperty("openejb.deployments.classpath.filter.systemapps",
"false");
+ setIfNull(properties, "openejb.deployments.classpath", "true");
+ setIfNull(properties,
"openejb.deployments.classpath.filter.systemapps", "false");
//Sets default service provider
- System.setProperty("openejb.provider.default", "org.apache.openejb." +
platform);
+ setIfNull(properties, "openejb.provider.default",
"org.apache.openejb." + platform);
// Loader maybe the first thing executed in a new classloader
// so we must attempt to initialize the system instance.
@@ -258,6 +258,10 @@ public class TomcatLoader implements Loa
});
}
+ private void setIfNull(Properties properties, String key, String value) {
+ if (!properties.containsKey(key)) properties.setProperty(key, value);
+ }
+
/**
* Destroy system.
*/
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1161019&r1=1161018&r2=1161019&view=diff
==============================================================================
---
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
(original)
+++
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
Wed Aug 24 08:56:50 2011
@@ -21,17 +21,14 @@ import org.apache.catalina.Engine;
import org.apache.catalina.LifecycleListener;
import org.apache.catalina.Service;
import org.apache.catalina.Wrapper;
-import org.apache.catalina.connector.Request;
-import org.apache.catalina.connector.Response;
import org.apache.catalina.core.*;
import org.apache.catalina.deploy.ContextEnvironment;
import org.apache.catalina.deploy.ContextResource;
import org.apache.catalina.deploy.ContextResourceLink;
+import org.apache.catalina.deploy.ContextTransaction;
import org.apache.catalina.deploy.NamingResources;
-import org.apache.catalina.mbeans.MBeanUtils;
import org.apache.catalina.startup.ContextConfig;
import org.apache.catalina.startup.HostConfig;
-import org.apache.catalina.valves.ValveBase;
import org.apache.naming.ContextAccessController;
import org.apache.naming.ContextBindings;
import org.apache.openejb.AppContext;
@@ -58,40 +55,20 @@ import org.apache.openejb.server.rest.RE
import org.apache.openejb.server.webservices.WsService;
import org.apache.openejb.tomcat.common.LegacyAnnotationProcessor;
import org.apache.openejb.tomcat.common.TomcatVersion;
+import org.apache.openejb.tomcat.common.UserTransactionFactory;
import org.apache.openejb.tomcat.loader.TomcatHelper;
+import org.apache.openejb.util.Debug;
import org.apache.openejb.util.LinkResolver;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
-import org.apache.webbeans.component.InjectionPointBean;
-import org.apache.webbeans.config.OWBLogConst;
import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.conversation.ConversationManager;
-import org.apache.webbeans.el.ELContextStore;
-import org.apache.webbeans.logger.WebBeansLogger;
-import org.apache.webbeans.spi.ContainerLifecycle;
-import org.apache.webbeans.spi.ContextsService;
-import org.apache.webbeans.spi.FailOverService;
-import org.apache.webbeans.util.WebBeansUtil;
-import org.apache.webbeans.web.context.WebContextsService;
import org.omg.CORBA.ORB;
import javax.ejb.spi.HandleDelegate;
-import javax.enterprise.context.RequestScoped;
-import javax.enterprise.context.SessionScoped;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.persistence.EntityManagerFactory;
import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequestEvent;
-import javax.servlet.ServletRequestListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionActivationListener;
-import javax.servlet.http.HttpSessionEvent;
-import javax.servlet.http.HttpSessionListener;
import javax.transaction.TransactionManager;
import javax.transaction.TransactionSynchronizationRegistry;
import java.io.File;
@@ -313,6 +290,18 @@ public class TomcatWebAppBuilder impleme
public void beforeStart(StandardContext standardContext) {
}
+ @Override
+ public void configureStart(StandardContext standardContext) {
+ if (TomcatHelper.isTomcat7()) {
+ TomcatHelper.configureJarScanner(standardContext);
+
+ ContextTransaction contextTransaction = new ContextTransaction();
+
contextTransaction.setProperty(org.apache.naming.factory.Constants.FACTORY,
UserTransactionFactory.class.getName());
+
standardContext.getNamingResources().setTransaction(contextTransaction);
+ startInternal(standardContext);
+ }
+ }
+
/**
* {@inheritDoc}
*/
@@ -320,6 +309,16 @@ public class TomcatWebAppBuilder impleme
@SuppressWarnings("unchecked")
@Override
public void start(StandardContext standardContext) {
+ if (!TomcatHelper.isTomcat7()) {
+ startInternal(standardContext);
+ }
+ }
+ /**
+ * {@inheritDoc}
+ */
+// @Override
+ private void startInternal(StandardContext standardContext) {
+ System.out.println("TomcatWebAppBuilder.start");
if (isIgnored(standardContext)) return;
CoreContainerSystem cs = getContainerSystem();
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1161019&r1=1161018&r2=1161019&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
Wed Aug 24 08:56:50 2011
@@ -1766,7 +1766,7 @@ public class AnnotationDeployer implemen
"javax.faces.bean.ManagedBean",
"javax.servlet.annotation.WebServlet",
"javax.servlet.annotation.WebServletContextListener",
- "javax.servlet.annotation.ServletFilter",
+ "javax.servlet.annotation.WebFilter",
};
List<Class<? extends Annotation>> annotations = new
ArrayList<Class<? extends Annotation>>();