01: package org.nanocontainer.webcontainer;
02:
03: import javax.servlet.Filter;
04:
05: import org.mortbay.jetty.servlet.FilterHolder;
06: import org.picocontainer.PicoContainer;
07: import org.picocontainer.defaults.DefaultPicoContainer;
08:
09: public class PicoFilterHolder extends FilterHolder {
10:
11: private final PicoContainer parentContainer;
12:
13: public PicoFilterHolder(PicoContainer parentContainer) {
14: this .parentContainer = parentContainer;
15: }
16:
17: public PicoFilterHolder(Class filterClass,
18: PicoContainer parentContainer) {
19: super (filterClass);
20: this .parentContainer = parentContainer;
21: }
22:
23: public synchronized Object newInstance()
24: throws InstantiationException, IllegalAccessException {
25: DefaultPicoContainer child = new DefaultPicoContainer(
26: parentContainer);
27: child.registerComponentImplementation(Filter.class, _class);
28: return child.getComponentInstance(Filter.class);
29: }
30:
31: }
|