001 package org.nanocontainer.webcontainer;
002
003 import javax.servlet.Filter;
004
005 import org.mortbay.jetty.servlet.FilterHolder;
006 import org.picocontainer.PicoContainer;
007 import org.picocontainer.defaults.DefaultPicoContainer;
008
009 public class PicoFilterHolder extends FilterHolder {
010
011 private final PicoContainer parentContainer;
012
013 public PicoFilterHolder(PicoContainer parentContainer) {
014 this.parentContainer = parentContainer;
015 }
016
017 public PicoFilterHolder(Class filterClass, PicoContainer parentContainer) {
018 super(filterClass);
019 this.parentContainer = parentContainer;
020 }
021
022 public synchronized Object newInstance() throws InstantiationException, IllegalAccessException {
023 DefaultPicoContainer child = new DefaultPicoContainer(parentContainer);
024 child.registerComponentImplementation(Filter.class, _class);
025 return child.getComponentInstance(Filter.class);
026 }
027
028
029 }