KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > console > plugins > helpers > ServletPluginHelper


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.console.plugins.helpers;
23
24 import javax.servlet.ServletConfig JavaDoc;
25 import javax.servlet.ServletException JavaDoc;
26
27 /**
28  * <description>
29  *
30  * @see <related>
31  *
32  * @author <a HREF="mailto:sacha.labourey@cogito-info.ch">Sacha Labourey</a>.
33  * @version $Revision: 37459 $
34  *
35  * <p><b>Revisions:</b>
36  *
37  * <p><b>23 dec 2002 Sacha Labourey:</b>
38  * <ul>
39  * <li> First implementation </li>
40  * </ul>
41  */

42 public class ServletPluginHelper
43    extends javax.servlet.http.HttpServlet JavaDoc
44 {
45    
46    // Constants -----------------------------------------------------
47

48    public static final String JavaDoc WRAPPER_CLASS_PARAM = "WrapperClass";
49    
50    // Attributes ----------------------------------------------------
51

52    protected ServletConfig JavaDoc config = null;
53    
54    protected PluginWrapper wrapper = null;
55
56    // Static --------------------------------------------------------
57

58    // Constructors --------------------------------------------------
59

60    // Public --------------------------------------------------------
61

62    // Z implementation ----------------------------------------------
63

64    // HttpServlet overrides -----------------------------------------
65

66    public void init (ServletConfig JavaDoc config) throws ServletException JavaDoc
67    {
68       try
69       {
70          super.init (config);
71          
72          this.config = config;
73          
74          wrapper = createPluginWrapper ();
75          wrapper.init (config);
76       }
77       catch (Throwable JavaDoc e)
78       {
79          //throw new ServletException ("Failed to init plugin", e);
80
// @todo, cleanup the logic to display an unavailable place holder
81
log("Failed to init plugin, "+e.getMessage());
82       }
83    }
84
85
86    public void destroy ()
87    {
88       if( wrapper != null )
89       {
90          wrapper.destroy ();
91       }
92       super.destroy ();
93    }
94
95    // Package protected ---------------------------------------------
96

97    // Protected -----------------------------------------------------
98

99    protected PluginWrapper createPluginWrapper () throws Exception JavaDoc
100    {
101       String JavaDoc tmp = config.getInitParameter(WRAPPER_CLASS_PARAM);
102       if (tmp != null && !"".equals(tmp))
103       {
104          // These plugins do provide their own wrapper implementation
105
//
106
Class JavaDoc clazz = Thread.currentThread().getContextClassLoader().loadClass(tmp);
107          return (PluginWrapper) (clazz.newInstance());
108       }
109       
110       
111       // Otherwise we make the hypothesis that the script provides
112
// all required information
113
//
114
return new BasePluginWrapper ();
115       
116    }
117    
118    // Private -------------------------------------------------------
119

120    // Inner classes -------------------------------------------------
121

122 }
123
Popular Tags