KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openejb > webadmin > ejbgen > StatelessBean


1 /**
2  * Redistribution and use of this software and associated documentation
3  * ("Software"), with or without modification, are permitted provided
4  * that the following conditions are met:
5  *
6  * 1. Redistributions of source code must retain copyright
7  * statements and notices. Redistributions must also contain a
8  * copy of this document.
9  *
10  * 2. Redistributions in binary form must reproduce the
11  * above copyright notice, this list of conditions and the
12  * following disclaimer in the documentation and/or other
13  * materials provided with the distribution.
14  *
15  * 3. The name "OpenEJB" must not be used to endorse or promote
16  * products derived from this Software without prior written
17  * permission of The OpenEJB Group. For written permission,
18  * please contact dev@openejb.org.
19  *
20  * 4. Products derived from this Software may not be called "OpenEJB"
21  * nor may "OpenEJB" appear in their names without prior written
22  * permission of The OpenEJB Group. OpenEJB is a registered
23  * trademark of The OpenEJB Group.
24  *
25  * 5. Due credit should be given to the OpenEJB Project
26  * (http://www.openejb.org/).
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
29  * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
32  * THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39  * OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Copyright 2001 (C) The OpenEJB Group. All Rights Reserved.
42  *
43  * $Id: StatelessBean.java 1912 2005-06-16 22:29:56Z jlaskowski $
44  */

45 package org.openejb.webadmin.ejbgen;
46
47 /** Stateless Session Bean Template extending EJBTemplate
48  * @author <a HREF="mailto:jcscoobyrs@developerkb.com">Jeremy Whitlock</a>
49  */

50 import java.io.File JavaDoc;
51
52 public class StatelessBean extends EJBTemplate
53 {
54     private String JavaDoc ejbname;
55     private String JavaDoc ejbdesc;
56     private String JavaDoc ejbauth;
57     private String JavaDoc ejbpack;
58     private String JavaDoc ejbsloc;
59     private String JavaDoc ejbstyp;
60     private File JavaDoc cdir;
61     private String JavaDoc objcode;
62     private String JavaDoc hmecode;
63     private String JavaDoc bencode;
64     private String JavaDoc ejbcode;
65     private String JavaDoc opecode;
66     
67     /**Constructor for Stateless EJB Bean Template
68      *
69      * @param name Name variable passed from form
70      * @param desc Description variable passed from form
71      * @param auth Author variable passed from form
72      * @param pack Package variable passed from form
73      * @param sloc Save Location variable passed from form
74      * @param styp Save Type variable passed from form
75      */

76     public StatelessBean(String JavaDoc name, String JavaDoc desc, String JavaDoc auth, String JavaDoc pack, String JavaDoc sloc, String JavaDoc styp)
77     {
78         ejbname = name;
79         ejbdesc = desc;
80         ejbauth = auth;
81         ejbpack = pack;
82         ejbsloc = sloc;
83         ejbstyp = styp;
84         super.setVars(name,desc,auth,pack,sloc,styp);
85         cdir = new File JavaDoc(sloc);
86         createEJB();
87     }
88     
89     /**This method actually calls all methods to create
90      * the EJB Template
91      */

92     public void createEJB()
93     {
94         if(ejbpack.equals("") != true)
95         {
96             super.createPackage();
97         }
98         
99         super.createClass(ejbname,"Object.java");
100         createObjCode();
101         super.writeClass(ejbname + "Object.java", objcode);
102         super.createClass(ejbname,"Home.java");
103         createHmeCode();
104         super.writeClass(ejbname + "Home.java", hmecode);
105         super.createClass(ejbname,"Bean.java");
106         createBenCode();
107         super.writeClass(ejbname + "Bean.java", bencode);
108         createEJBXML();
109         super.createXML("ejb-jar.xml", ejbcode);
110         super.buildZipFile();
111 // createOPEXML();
112
// super.createXML("openejb-jar.xml", opecode);
113
}
114     
115     /** This creates the code for the Remote Interface
116      *
117      */

118     public void createObjCode()
119     {
120         objcode = "/**\n";
121         objcode = objcode + "*@author " + ejbauth + "\n";
122         objcode = objcode + "**/\n\n";
123         objcode = objcode + "package " + ejbpack + ";\n\n";
124         objcode = objcode + "import java.rmi.*;\n";
125         objcode = objcode + "import javax.ejb.*;\n\n";
126         objcode = objcode + "public interface " + ejbname + "Object extends EJBObject\n";
127         objcode = objcode + "{\n\n";
128         objcode = objcode + "}";
129     }
130     
131     /** This creates the code for the Home Interface
132      *
133      */

134     public void createHmeCode()
135     {
136         hmecode = "/**\n";
137         hmecode = hmecode + "*@author " + ejbauth + "\n";
138         hmecode = hmecode + "**/\n\n";
139         hmecode = hmecode + "package " + ejbpack + ";\n\n";
140         hmecode = hmecode + "import java.rmi.*;\n";
141         hmecode = hmecode + "import javax.ejb.*;\n\n";
142         hmecode = hmecode + "public interface " + ejbname + "Home extends EJBHome\n";
143         hmecode = hmecode + "{\n";
144         hmecode = hmecode + "\tpublic " + ejbname + "Object create() throws RemoteException, CreateException;\n";
145         hmecode = hmecode + "}";
146     }
147     
148     /** This creates the code for the Bean
149      *
150      */

151     public void createBenCode()
152     {
153         bencode = "/**\n";
154         bencode = bencode + "*@author " + ejbauth + "\n";
155         bencode = bencode + "**/\n\n";
156         bencode = bencode + "package " + ejbpack + ";\n\n";
157         bencode = bencode + "import java.rmi.*;\n";
158         bencode = bencode + "import javax.ejb.*;\n\n";
159         bencode = bencode + "public class " + ejbname + "Bean implements SessionBean\n";
160         bencode = bencode + "{\n";
161         bencode = bencode + "\tprivate SessionContext sessionContext;\n\n";
162         bencode = bencode + "\tpublic void ejbCreate()\n";
163         bencode = bencode + "\t{\n";
164         bencode = bencode + "\t}\n\n";
165         bencode = bencode + "\tpublic void ejbRemove()\n";
166         bencode = bencode + "\t{\n";
167         bencode = bencode + "\t}\n\n";
168         bencode = bencode + "\tpublic void ejbActivate()\n";
169         bencode = bencode + "\t{\n";
170         bencode = bencode + "\t}\n\n";
171         bencode = bencode + "\tpublic void ejbPassivate()\n";
172         bencode = bencode + "\t{\n";
173         bencode = bencode + "\t}\n\n";
174         bencode = bencode + "\tpublic void setSessionContext(SessionContext sessionContext)\n";
175         bencode = bencode + "\t{\n";
176         bencode = bencode + "\t\tthis.sessionContext = sessionContext;\n";
177         bencode = bencode + "\t}\n";
178         bencode = bencode + "}";
179     }
180     
181 // public void createOPEXML()
182
// {
183
// String opestr;
184
//
185
// opestr = "<?xml version=\"1.0\"?>\n";
186
// opestr = opestr + "<openejb-jar xmlns=\"http://www.openejb.org/openejb-jar/1.1\">\n";
187
// opestr = opestr + "\t<ejb-deployment ejb-name=\"" + ejbname + "\" deployment-id=\"" + ejbname + "\" container-id=\"Default Stateless Container\"/>\n";
188
// opestr = opestr + "</openejb-jar>";
189
//
190
// opecode = opestr;
191
// }
192

193     /** This creates the code for the ejb-xml.jar
194      *
195      */

196     public void createEJBXML()
197     {
198         String JavaDoc ejbstr;
199         
200         ejbstr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
201         ejbstr = ejbstr + "<ejb-jar>\n";
202         ejbstr = ejbstr + "\t<enterprise-beans>\n";
203         ejbstr = ejbstr + "\t\t<session>\n";
204         ejbstr = ejbstr + "\t\t\t<ejb-name>" + ejbname + "</ejb-name>\n";
205         ejbstr = ejbstr + "\t\t\t<home>" + ejbpack + "." + ejbname + "Home</home>\n";
206         ejbstr = ejbstr + "\t\t\t<remote>" + ejbpack + "." + ejbname + "Object</remote>\n";
207         ejbstr = ejbstr + "\t\t\t<ejb-class>" + ejbpack + "." + ejbname + "Bean</ejb-class>\n";
208         ejbstr = ejbstr + "\t\t\t<session-type>Stateless</session-type>\n";
209         ejbstr = ejbstr + "\t\t\t<transaction-type>Container</transaction-type>\n";
210         ejbstr = ejbstr + "\t\t</session>\n";
211         ejbstr = ejbstr + "\t</enterprise-beans>\n";
212         ejbstr = ejbstr + "\t<assembly-descriptor>\n";
213         ejbstr = ejbstr + "\t\t<container-transaction>\n";
214         ejbstr = ejbstr + "\t\t\t<method>\n";
215         ejbstr = ejbstr + "\t\t\t\t<ejb-name>" + ejbname + "</ejb-name>\n";
216         ejbstr = ejbstr + "\t\t\t\t<method-name>*</method-name>\n";
217         ejbstr = ejbstr + "\t\t\t</method>\n";
218         ejbstr = ejbstr + "\t\t<trans-attribute>Required</trans-attribute>\n";
219         ejbstr = ejbstr + "\t</container-transaction>\n";
220         ejbstr = ejbstr + "\t</assembly-descriptor>\n";
221         ejbstr = ejbstr + "</ejb-jar>";
222         
223         ejbcode = ejbstr;
224     }
225 }
226
Popular Tags