1 9 10 package org.nanocontainer.webcontainer; 11 12 import org.mortbay.jetty.webapp.WebXmlConfiguration; 13 import org.mortbay.jetty.servlet.ServletHolder; 14 import org.mortbay.jetty.servlet.FilterHolder; 15 import org.picocontainer.PicoContainer; 16 import org.picocontainer.defaults.DefaultPicoContainer; 17 18 19 public class PicoWebXmlConfiguration extends WebXmlConfiguration { 20 21 private PicoContainer parentContainer; 22 23 public PicoWebXmlConfiguration(PicoContainer parentContainer) { 24 this.parentContainer = parentContainer; 25 } 26 27 protected ServletHolder newServletHolder() { 28 return new PicoServletHolder(parentContainer); 29 } 30 31 protected FilterHolder newFilterHolder() { 32 return new PicoFilterHolder(parentContainer); 33 } 34 35 protected Object newListenerInstance(Class clazz) throws InstantiationException , IllegalAccessException { 36 DefaultPicoContainer child = new DefaultPicoContainer(parentContainer); 37 child.registerComponentImplementation("listener", clazz); 38 Object componentInstance = child.getComponentInstance("listener"); 39 return componentInstance; 40 41 } 42 43 } 44 | Popular Tags |