1 6 7 package org.jfox.deployment.application; 8 9 import java.io.File ; 10 import java.io.IOException ; 11 import java.util.ArrayList ; 12 import java.util.Iterator ; 13 import java.util.List ; 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 ; 25 import org.w3c.dom.Node ; 26 27 30 31 public class EARDescriptor extends Descriptor { 32 private String displayName; 33 private String smallIcon; 34 private String largeIcon; 35 private List ejbModuleDescriptors = new ArrayList (); 36 private List webModuleDescriptors = new ArrayList (); 37 private List clientModules = new ArrayList (); 39 40 private EARModule earModule; 41 42 public EARDescriptor(EARModule earModule) { 43 this.earModule = earModule; 44 } 45 46 public void processXML(Node 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 modules = XMLUtils.getElementsByTagName((Element ) node, "module"); 53 while(modules.hasNext()) { 54 Element element = (Element ) modules.next(); 55 Iterator _modules = XMLUtils.getElementsByTagNames(element, new String []{"ejb", "web", "java"}); 56 while(_modules.hasNext()) { 57 Element _element = (Element ) _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 else if(_element.getNodeName().equals("java")) { 67 68 } 69 } 70 } 71 72 } 73 74 private void processEjbModule(Element element) throws EJBDescriptionException { 75 EJBModuleDescriptor ejbModuleDesc = new EJBModuleDescriptor(); 76 ejbModuleDesc.processXML(element); 77 ejbModuleDescriptors.add(ejbModuleDesc); 78 79 try { 81 File target = Files.move(new File (earModule.getTempDeployDirectory(), ejbModuleDesc.getJarName()), 82 new File (earModule.getTempDeployDirectory(), NestedEJBModule.Target)); 83 NestedEJBModule ejbModule = new NestedEJBModule(earModule, target); 84 earModule.addNestedEJBModule(ejbModule); 85 } 86 catch(IOException 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 element) throws EJBDescriptionException { 95 WebModuleDescriptor webModuleDesc = new WebModuleDescriptor(); 96 webModuleDesc.processXML(element); 97 webModuleDescriptors.add(webModuleDesc); 98 try { 99 File target = Files.move(new File (earModule.getTempDeployDirectory(), webModuleDesc.getWarName()), 100 new File (earModule.getTempDeployDirectory(), NestedWebModule.Target)); 101 NestedWebModule webModule = new NestedWebModule(earModule, target, webModuleDesc.getWebContext()); 102 earModule.addNestedWebModule(webModule); 103 } 104 catch(IOException 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 getDisplayName() { 115 return displayName; 116 } 117 118 public void setDisplayName(String displayName) { 119 this.displayName = displayName; 120 } 121 122 public String getSmallIcon() { 123 return smallIcon; 124 } 125 126 public void setSmallIcon(String smallIcon) { 127 this.smallIcon = smallIcon; 128 } 129 130 public String getLargeIcon() { 131 return largeIcon; 132 } 133 134 public void setLargeIcon(String largeIcon) { 135 this.largeIcon = largeIcon; 136 } 137 138 public List getEjbModuleDescriptors() { 139 return ejbModuleDescriptors; 140 } 141 142 public List getWebModuleDescriptors() { 143 return webModuleDescriptors; 144 } 145 146 public List getClientModules() { 147 return clientModules; 148 } 149 150 public static void main(String [] args) { 151 152 } 153 } 154 155 | Popular Tags |