KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jdon > controller > config > XmlServiceParser


1 /**
2  * Copyright 2003-2006 the original author or authors.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6
7        http://www.apache.org/licenses/LICENSE-2.0
8
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */

15
16 package com.jdon.controller.config;
17
18
19 import java.util.Iterator JavaDoc;
20 import java.util.List JavaDoc;
21 import java.util.Map JavaDoc;
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 JavaDoc module = XmlServiceParser.class.getName();
31
32   public void parse(Element root, Map JavaDoc mps) throws Exception JavaDoc {
33     List JavaDoc services = root.getChildren("services");
34     Iterator JavaDoc iter = services.iterator();
35     while (iter.hasNext()) {
36       Element service = (Element) iter.next();
37       if (service.getChildren("ejbService") != null) {
38         Iterator JavaDoc 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 JavaDoc mps) throws
48       Exception JavaDoc {
49     String JavaDoc name = ejbService.getAttributeValue("name");
50     Debug.logVerbose("[JdonFramework] ejbService name=" + name, module);
51
52     Element jndiE = ejbService.getChild("jndi");
53     String JavaDoc 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) {//local EJB
63
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)) {//remote EJB
71
String JavaDoc homeClassName = ejbHobjectE.getAttributeValue("class");//ejbHome class
72
String JavaDoc remoteClassName = ejbRobjectE.getAttributeValue("class");//ejbRemote class
73
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){//EJB3
82
eJBMetaDef = new DistributedTargetMetaDef(name, jndiName, interfaceE.getAttributeValue("class"));
83     } else {
84       throw new Exception JavaDoc(
85           "please config ejbLocalObject or ejbHomeObject/ejbRemoteObject or interface(EJB3) ");
86     }
87     mps.put(name, eJBMetaDef);
88    
89   }
90
91 }
92
Popular Tags