Package org.jboss.ejb3.embedded

Source Code of org.jboss.ejb3.embedded.ServletBootstrapListener

/*     */ package org.jboss.ejb3.embedded;
/*     */
/*     */ import java.net.URL;
/*     */ import java.util.ArrayList;
/*     */ import java.util.HashSet;
/*     */ import java.util.Hashtable;
/*     */ import java.util.Iterator;
/*     */ import java.util.List;
/*     */ import java.util.Set;
/*     */ import java.util.StringTokenizer;
/*     */ import javax.servlet.ServletContext;
/*     */ import javax.servlet.ServletContextEvent;
/*     */ import javax.servlet.ServletContextListener;
/*     */ import org.jboss.aop.AspectXmlLoader;
/*     */ import org.jboss.dependency.spi.ControllerContext;
/*     */ import org.jboss.kernel.Kernel;
/*     */ import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
/*     */ import org.jboss.kernel.plugins.deployment.xml.BeanXMLDeployer;
/*     */ import org.jboss.kernel.spi.dependency.KernelController;
/*     */ import org.jboss.kernel.spi.deployment.KernelDeployment;
/*     */ import org.jboss.logging.Logger;
/*     */
/*     */ public class ServletBootstrapListener
/*     */   implements ServletContextListener
/*     */ {
/*  50 */   private static final Logger log = Logger.getLogger(ServletBootstrapListener.class);
/*     */   protected Kernel kernel;
/*  54 */   protected List<KernelDeployment> deployments = new ArrayList();
/*  55 */   protected List<URL> aopDeployments = new ArrayList();
/*     */
/*  86 */   public static Set<Object> ignoredJars = new HashSet();
/*     */   private EJB3StandaloneDeployer deployer;
/*     */
/*     */   protected void createKernel()
/*     */     throws Exception
/*     */   {
/*  61 */     BasicBootstrap bootstrap1 = new BasicBootstrap();
/*  62 */     bootstrap1.run();
/*  63 */     this.kernel = bootstrap1.getKernel();
/*     */   }
/*     */
/*     */   protected void deployXmlResource(String resource)
/*     */   {
/*     */     try
/*     */     {
/*  70 */       BeanXMLDeployer deployer = new BeanXMLDeployer(this.kernel);
/*  71 */       URL bootstrap = Thread.currentThread().getContextClassLoader().getResource(resource);
/*  72 */       if (bootstrap == null)
/*  73 */         throw new RuntimeException("Cannot find " + resource);
/*  74 */       KernelDeployment deployment = deployer.deploy(bootstrap);
/*  75 */       deployer.validate();
/*  76 */       this.deployments.add(0, deployment);
/*     */     }
/*     */     catch (Throwable throwable)
/*     */     {
/*  80 */       throwable.printStackTrace();
/*  81 */       throw new RuntimeException(throwable);
/*     */     }
/*     */   }
/*     */
/*     */   public void contextInitialized(ServletContextEvent servletContextEvent)
/*     */   {
/*     */     try
/*     */     {
/* 141 */       createKernel();
/*     */
/* 143 */       ServletContext servletContext = servletContextEvent.getServletContext();
/* 144 */       String aop = servletContext.getInitParameter("jboss-aop-deployments");
/*     */
/* 146 */       if (aop == null) aop = "ejb3-interceptors-aop.xml";
/*     */
/* 148 */       StringTokenizer tokenizer = new StringTokenizer(aop, ",");
/* 149 */       while (tokenizer.hasMoreTokens())
/*     */       {
/* 151 */         String token = tokenizer.nextToken().trim();
/* 152 */         log.debug("deploying aop xml: " + token);
/* 153 */         URL url = Thread.currentThread().getContextClassLoader().getResource(token);
/*     */         try
/*     */         {
/* 156 */           AspectXmlLoader.deployXML(url);
/* 157 */           this.aopDeployments.add(0, url);
/*     */         }
/*     */         catch (Exception e)
/*     */         {
/* 161 */           throw new RuntimeException(e);
/*     */         }
/*     */       }
/*     */
/* 165 */       String deployments = servletContext.getInitParameter("jboss-kernel-deployments");
/*     */
/* 167 */       if (deployments == null) deployments = "embedded-jboss-beans.xml";
/*     */
/* 169 */       tokenizer = new StringTokenizer(deployments, ",");
/* 170 */       while (tokenizer.hasMoreTokens())
/*     */       {
/* 172 */         String token = tokenizer.nextToken().trim();
/* 173 */         log.debug("deploying kernel xml: " + token);
/* 174 */         deployXmlResource(token);
/*     */       }
/*     */
/* 177 */       String scan = servletContext.getInitParameter("automatic-scan");
/* 178 */       if ((scan != null) && (!scan.equals("false"))) return;
/*     */
/* 180 */       Set libJars = servletContext.getResourcePaths("/WEB-INF/lib");
/* 181 */       this.deployer = new EJB3StandaloneDeployer();
/* 182 */       this.deployer.setJndiProperties(getInitialContextProperties());
/* 183 */       this.deployer.setKernel(this.kernel);
/* 184 */       for (Iterator i$ = libJars.iterator(); i$.hasNext(); ) { Object jar = i$.next();
/*     */
/* 186 */         if (!ignoredJars.contains(jar)) {
/* 187 */           URL archive = servletContext.getResource((String)jar);
/* 188 */           this.deployer.getArchives().add(archive);
/*     */         } }
/* 190 */       if (this.deployer.getArchives().size() == 0)
/*     */       {
/* 192 */         this.deployer = null;
/* 193 */         return;
/*     */       }
/* 195 */       this.deployer.create();
/* 196 */       this.deployer.start();
/*     */     }
/*     */     catch (Exception e)
/*     */     {
/* 200 */       log.error(e);
/* 201 */       throw new RuntimeException(e);
/*     */     }
/*     */
/* 204 */     if (!KernelErrors.validate(this.kernel)) throw new RuntimeException("Problems scanning ServletContext.getResourcePaths");
/*     */   }
/*     */
/*     */   protected Hashtable getInitialContextProperties()
/*     */   {
/* 209 */     Hashtable hash = null;
/* 210 */     ControllerContext context = this.kernel.getController().getInstalledContext("InitialContextProperties");
/* 211 */     if (context != null)
/* 212 */       hash = (Hashtable)context.getTarget();
/*     */     else
/* 214 */       log.warn("could not find an configured InitialContextProperties, this is ok if your already have a correct jndi.properties file");
/* 215 */     return hash;
/*     */   }
/*     */
/*     */   public void contextDestroyed(ServletContextEvent servletContextEvent)
/*     */   {
/*     */     try
/*     */     {
/* 223 */       if (this.deployer != null)
/*     */       {
/* 225 */         this.deployer.stop();
/* 226 */         this.deployer.destroy();
/*     */       }
/* 228 */       BeanXMLDeployer deployer = new BeanXMLDeployer(this.kernel);
/* 229 */       for (KernelDeployment deployment : this.deployments)
/*     */       {
/* 231 */         deployer.undeploy(deployment);
/*     */       }
/*     */
/* 234 */       for (URL url : this.aopDeployments)
/*     */       {
/* 236 */         AspectXmlLoader.undeployXML(url);
/*     */       }
/*     */     }
/*     */     catch (Throwable throwable)
/*     */     {
/* 241 */       throwable.printStackTrace();
/* 242 */       throw new RuntimeException(throwable);
/*     */     }
/*     */   }
/*     */
/*     */   static
/*     */   {
/*  90 */     ignoredJars.add("/WEB-INF/lib/antlr-2.7.5H3.jar");
/*  91 */     ignoredJars.add("/WEB-INF/lib/asm-attrs.jar");
/*  92 */     ignoredJars.add("/WEB-INF/lib/asm.jar");
/*  93 */     ignoredJars.add("/WEB-INF/lib/cglib-2.1.1.jar");
/*  94 */     ignoredJars.add("/WEB-INF/lib/commons-collections.jar");
/*  95 */     ignoredJars.add("/WEB-INF/lib/commons-logging-api.jar");
/*  96 */     ignoredJars.add("/WEB-INF/lib/commons-logging.jar");
/*  97 */     ignoredJars.add("/WEB-INF/lib/concurrent.jar");
/*  98 */     ignoredJars.add("/WEB-INF/lib/dom4j.jar");
/*  99 */     ignoredJars.add("/WEB-INF/lib/ejb3-persistence.jar");
/* 100 */     ignoredJars.add("/WEB-INF/lib/hibernate3.jar");
/* 101 */     ignoredJars.add("/WEB-INF/lib/hibernate-annotations.jar");
/* 102 */     ignoredJars.add("/WEB-INF/lib/hibernate-entitymanager.jar");
/* 103 */     ignoredJars.add("/WEB-INF/lib/hsqldb.jar");
/* 104 */     ignoredJars.add("/WEB-INF/lib/javassist.jar");
/* 105 */     ignoredJars.add("/WEB-INF/lib/jboss-annotations-ejb3.jar");
/* 106 */     ignoredJars.add("/WEB-INF/lib/jboss-aop-jdk50.jar");
/* 107 */     ignoredJars.add("/WEB-INF/lib/jboss-aspect-library-jdk50.jar");
/* 108 */     ignoredJars.add("/WEB-INF/lib/jboss-common.jar");
/* 109 */     ignoredJars.add("/WEB-INF/lib/jboss-common-jdbc-wrapper.jar");
/* 110 */     ignoredJars.add("/WEB-INF/lib/jboss-container.jar");
/* 111 */     ignoredJars.add("/WEB-INF/lib/jboss-dependency.jar");
/* 112 */     ignoredJars.add("/WEB-INF/lib/jboss-ejb3.jar");
/* 113 */     ignoredJars.add("/WEB-INF/lib/jboss-ejb3x.jar");
/* 114 */     ignoredJars.add("/WEB-INF/lib/jboss-j2ee.jar");
/* 115 */     ignoredJars.add("/WEB-INF/lib/jboss-j2se.jar");
/* 116 */     ignoredJars.add("/WEB-INF/lib/jboss.jar");
/* 117 */     ignoredJars.add("/WEB-INF/lib/jboss-jca.jar");
/* 118 */     ignoredJars.add("/WEB-INF/lib/jboss-local-jdbc.jar");
/* 119 */     ignoredJars.add("/WEB-INF/lib/jboss-microcontainer.jar");
/* 120 */     ignoredJars.add("/WEB-INF/lib/jbossmq.jar");
/* 121 */     ignoredJars.add("/WEB-INF/lib/jboss-remoting.jar");
/* 122 */     ignoredJars.add("/WEB-INF/lib/jbosssx.jar");
/* 123 */     ignoredJars.add("/WEB-INF/lib/jboss-system.jar");
/* 124 */     ignoredJars.add("/WEB-INF/lib/jboss-transaction.jar");
/* 125 */     ignoredJars.add("/WEB-INF/lib/jboss-xa-jdbc.jar");
/* 126 */     ignoredJars.add("/WEB-INF/lib/jnpserver.jar");
/* 127 */     ignoredJars.add("/WEB-INF/lib/log4j.jar");
/* 128 */     ignoredJars.add("/WEB-INF/lib/resolver.jar");
/* 129 */     ignoredJars.add("/WEB-INF/lib/trove.jar");
/* 130 */     ignoredJars.add("/WEB-INF/lib/xercesImpl.jar");
/* 131 */     ignoredJars.add("/WEB-INF/lib/xml-apis.jar");
/*     */   }
/*     */ }

/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/jboss-embedded-all.jar
* Qualified Name:     org.jboss.ejb3.embedded.ServletBootstrapListener
* JD-Core Version:    0.6.0
*/
TOP

Related Classes of org.jboss.ejb3.embedded.ServletBootstrapListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.