01: /*****************************************************************************
02: * Copyright (C) NanoContainer Organization. All rights reserved. *
03: * ------------------------------------------------------------------------- *
04: * The software in this package is published under the terms of the BSD *
05: * style license a copy of which has been included with this distribution in *
06: * the LICENSE.txt file. *
07: * *
08: *****************************************************************************/package org.nanocontainer.webcontainer;
09:
10: import org.mortbay.jetty.servlet.ServletHolder;
11: import org.picocontainer.PicoContainer;
12: import org.picocontainer.defaults.DefaultPicoContainer;
13:
14: import javax.servlet.Servlet;
15:
16: public class PicoServletHolder extends ServletHolder {
17:
18: private final PicoContainer parentContainer;
19:
20: public PicoServletHolder(PicoContainer parentContainer) {
21: this .parentContainer = parentContainer;
22: }
23:
24: public PicoServletHolder(Class clazz, PicoContainer parentContainer) {
25: super (clazz);
26: this .parentContainer = parentContainer;
27: }
28:
29: public synchronized Object newInstance()
30: throws InstantiationException, IllegalAccessException {
31: DefaultPicoContainer child = new DefaultPicoContainer(
32: parentContainer);
33: child.registerComponentImplementation(Servlet.class, _class);
34: return child.getComponentInstance(Servlet.class);
35: }
36:
37: }
|