KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > deployment > application > EARDescriptor


1 /* JFox, the OpenSource J2EE Application Server
2  *
3  * Distributable under GNU LGPL license by gun.org
4  * more details please visit http://www.huihoo.org/jfox
5  */

6
7 package org.jfox.deployment.application;
8
9 import java.io.File JavaDoc;
10 import java.io.IOException JavaDoc;
11 import java.util.ArrayList JavaDoc;
12 import java.util.Iterator JavaDoc;
13 import java.util.List JavaDoc;
14
15 import org.jfox.deployment.ejb.EJBModuleDescriptor;
16 import org.jfox.deployment.ejb.NestedEJBModule;
17 import org.jfox.deployment.web.NestedWebModule;
18 import org.jfox.deployment.web.WebModuleDescriptor;
19 import org.jfox.ejb.meta.Descriptor;
20 import org.jfox.ejb.meta.EJBDescriptionException;
21 import org.jfox.ioc.deploy.DeployException;
22 import org.jfox.ioc.util.Files;
23 import org.jfox.ioc.util.XMLUtils;
24 import org.w3c.dom.Element JavaDoc;
25 import org.w3c.dom.Node JavaDoc;
26
27 /**
28  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
29  */

30
31 public class EARDescriptor extends Descriptor {
32     private String JavaDoc displayName;
33     private String JavaDoc smallIcon;
34     private String JavaDoc largeIcon;
35     private List JavaDoc ejbModuleDescriptors = new ArrayList JavaDoc();
36     private List JavaDoc webModuleDescriptors = new ArrayList JavaDoc();
37     // not support client modules now!!!
38
private List JavaDoc clientModules = new ArrayList JavaDoc();
39
40     private EARModule earModule;
41
42     public EARDescriptor(EARModule earModule) {
43         this.earModule = earModule;
44     }
45
46     public void processXML(Node JavaDoc node) throws EJBDescriptionException {
47         super.processXML(node);
48         setSmallIcon(XMLUtils.getChildNodeValueOf(node, "small-icon"));
49         setLargeIcon(XMLUtils.getChildNodeValueOf(node, "large-icon"));
50         setDisplayName(XMLUtils.getChildNodeValueOf(node, "display-name"));
51
52         Iterator JavaDoc modules = XMLUtils.getElementsByTagName((Element JavaDoc) node, "module");
53         while(modules.hasNext()) {
54             Element JavaDoc element = (Element JavaDoc) modules.next();
55             Iterator JavaDoc _modules = XMLUtils.getElementsByTagNames(element, new String JavaDoc[]{"ejb", "web", "java"});
56             while(_modules.hasNext()) {
57                 Element JavaDoc _element = (Element JavaDoc) _modules.next();
58                 if(_element.getNodeName().equals("ejb")) {
59                     processEjbModule(_element);
60                 }
61                 else if(_element.getNodeName().equals("web")) {
62                     processWebModule(_element);
63                 }
64
65                 // Sorry, Not support Client Module now !!!
66
else if(_element.getNodeName().equals("java")) {
67
68                 }
69             }
70         }
71
72     }
73
74     private void processEjbModule(Element JavaDoc element) throws EJBDescriptionException {
75         EJBModuleDescriptor ejbModuleDesc = new EJBModuleDescriptor();
76         ejbModuleDesc.processXML(element);
77         ejbModuleDescriptors.add(ejbModuleDesc);
78
79         // create EJBModule
80
try {
81             File JavaDoc target = Files.move(new File JavaDoc(earModule.getTempDeployDirectory(), ejbModuleDesc.getJarName()),
82                     new File JavaDoc(earModule.getTempDeployDirectory(), NestedEJBModule.Target));
83             NestedEJBModule ejbModule = new NestedEJBModule(earModule, target);
84             earModule.addNestedEJBModule(ejbModule);
85         }
86         catch(IOException JavaDoc e) {
87             throw new EJBDescriptionException("move ejb module " + ejbModuleDesc.getJarName() + " to " + NestedEJBModule.Target + " error");
88         }
89         catch(DeployException e) {
90             throw new EJBDescriptionException(e);
91         }
92     }
93
94     private void processWebModule(Element JavaDoc element) throws EJBDescriptionException {
95         WebModuleDescriptor webModuleDesc = new WebModuleDescriptor();
96         webModuleDesc.processXML(element);
97         webModuleDescriptors.add(webModuleDesc);
98         try {
99             File JavaDoc target = Files.move(new File JavaDoc(earModule.getTempDeployDirectory(), webModuleDesc.getWarName()),
100                     new File JavaDoc(earModule.getTempDeployDirectory(), NestedWebModule.Target));
101             NestedWebModule webModule = new NestedWebModule(earModule, target, webModuleDesc.getWebContext());
102             earModule.addNestedWebModule(webModule);
103         }
104         catch(IOException JavaDoc e) {
105             e.printStackTrace();
106             throw new EJBDescriptionException("move ejb module " + webModuleDesc.getWarName() + " to " + NestedWebModule.Target + " error");
107         }
108         catch(DeployException e) {
109             throw new EJBDescriptionException(e);
110         }
111
112     }
113
114     public String JavaDoc getDisplayName() {
115         return displayName;
116     }
117
118     public void setDisplayName(String JavaDoc displayName) {
119         this.displayName = displayName;
120     }
121
122     public String JavaDoc getSmallIcon() {
123         return smallIcon;
124     }
125
126     public void setSmallIcon(String JavaDoc smallIcon) {
127         this.smallIcon = smallIcon;
128     }
129
130     public String JavaDoc getLargeIcon() {
131         return largeIcon;
132     }
133
134     public void setLargeIcon(String JavaDoc largeIcon) {
135         this.largeIcon = largeIcon;
136     }
137
138     public List JavaDoc getEjbModuleDescriptors() {
139         return ejbModuleDescriptors;
140     }
141
142     public List JavaDoc getWebModuleDescriptors() {
143         return webModuleDescriptors;
144     }
145
146     public List JavaDoc getClientModules() {
147         return clientModules;
148     }
149
150     public static void main(String JavaDoc[] args) {
151
152     }
153 }
154
155
Popular Tags