1 15 16 package com.jdon.controller.config; 17 18 19 import java.util.Iterator ; 20 import java.util.List ; 21 import java.util.Map ; 22 23 import org.jdom.Element; 24 25 import com.jdon.bussinessproxy.meta.DistributedTargetMetaDef; 26 import com.jdon.bussinessproxy.meta.EJBTargetMetaDef; 27 import com.jdon.util.Debug; 28 29 public class XmlServiceParser extends XmlParser{ 30 private final static String module = XmlServiceParser.class.getName(); 31 32 public void parse(Element root, Map mps) throws Exception { 33 List services = root.getChildren("services"); 34 Iterator iter = services.iterator(); 35 while (iter.hasNext()) { 36 Element service = (Element) iter.next(); 37 if (service.getChildren("ejbService") != null) { 38 Iterator i = service.getChildren("ejbService").iterator(); 39 while (i.hasNext()) { 40 Element ejbService = (Element) i.next(); 41 parseEJBServiceConfig(ejbService, mps); 42 } 43 } 44 } 45 } 46 47 private void parseEJBServiceConfig(Element ejbService, Map mps) throws 48 Exception { 49 String name = ejbService.getAttributeValue("name"); 50 Debug.logVerbose("[JdonFramework] ejbService name=" + name, module); 51 52 Element jndiE = ejbService.getChild("jndi"); 53 String jndiName = jndiE.getAttributeValue("name"); 54 55 Element ejbLobjectE = ejbService.getChild("ejbLocalObject"); 56 57 Element ejbHobjectE = ejbService.getChild("ejbHomeObject"); 58 Element ejbRobjectE = ejbService.getChild("ejbRemoteObject"); 59 Element interfaceE = ejbService.getChild("interface"); 60 61 DistributedTargetMetaDef eJBMetaDef = null; 62 if (ejbLobjectE != null) { eJBMetaDef = new EJBTargetMetaDef(name, jndiName, 64 ejbLobjectE.getAttributeValue("class")); 65 Debug.logVerbose("[JdonFramework] jndiName=" + jndiName, module); 66 Debug.logVerbose("[JdonFramework] local=" + eJBMetaDef.getClassName(), module); 67 if (interfaceE != null){ 68 eJBMetaDef.setInterfaceClass(interfaceE.getAttributeValue("class")); 69 } 70 } else if ( (ejbRobjectE != null) && (ejbHobjectE != null)) { String homeClassName = ejbHobjectE.getAttributeValue("class"); String remoteClassName = ejbRobjectE.getAttributeValue("class"); eJBMetaDef = new EJBTargetMetaDef(name, jndiName, homeClassName, 74 remoteClassName); 75 Debug.logVerbose("[JdonFramework] jndiName=" + jndiName, module); 76 Debug.logVerbose("[JdonFramework] ejbHome class=" + homeClassName, module); 77 Debug.logVerbose("[JdonFramework] ejbRemote class=" + remoteClassName, module); 78 if (interfaceE != null){ 79 eJBMetaDef.setInterfaceClass(interfaceE.getAttributeValue("class")); 80 } 81 } else if (interfaceE != null){ eJBMetaDef = new DistributedTargetMetaDef(name, jndiName, interfaceE.getAttributeValue("class")); 83 } else { 84 throw new Exception ( 85 "please config ejbLocalObject or ejbHomeObject/ejbRemoteObject or interface(EJB3) "); 86 } 87 mps.put(name, eJBMetaDef); 88 89 } 90 91 } 92 | Popular Tags |