WebServicesDDModifier.java

00001 
00025 package org.objectweb.jonas_ws.wsgen.ddmodifier;
00026 
00027 import org.w3c.dom.Document;
00028 import org.w3c.dom.Element;
00029 import org.w3c.dom.Node;
00030 import org.w3c.dom.NodeList;
00031 
00035 public class WebServicesDDModifier extends DeploymentDescModifier {
00036 
00040     public WebServicesDDModifier(Document doc) {
00041         super(doc.getDocumentElement(), doc);
00042     }
00043 
00051     public void changeServletLink(String wsdName, String link, String replace) {
00052 
00053         Element wsd = findWebserviceDesc(wsdName);
00054 
00055         // if element found
00056         if (wsd != null) {
00057             NodeList nl = wsd.getElementsByTagNameNS(J2EE_NS, "port-component");
00058 
00059             for (int i = 0; i < nl.getLength(); i++) {
00060                 Element e = (Element) nl.item(i);
00061                 NodeList sib = e.getElementsByTagNameNS(J2EE_NS, "service-impl-bean");
00062 
00063                 Node servletLink = ((Element) sib.item(0)).getElementsByTagNameNS(J2EE_NS, "servlet-link").item(0);
00064 
00065                 // test
00066                 // port-component/sib-link/servlet-link/#text-node.value
00067                 if (servletLink.getFirstChild().getNodeValue().equals(link)) {
00068                     servletLink.getFirstChild().setNodeValue(replace);
00069                 }
00070             }
00071         }
00072     }
00073 
00082     private Element findWebserviceDesc(String name) {
00083         NodeList nl = getElement().getElementsByTagNameNS(J2EE_NS, "webservice-description");
00084         Element wsd = null;
00085 
00086         for (int i = 0; (i < nl.getLength()) && (wsd == null); i++) {
00087             Element e = (Element) nl.item(i);
00088 
00089             NodeList names = e.getElementsByTagNameNS(J2EE_NS, "webservice-description-name");
00090 
00091             // test
00092             // webservices-description/webservices-description--name/#text-node.value
00093             if (names.item(0).getFirstChild().getNodeValue().equals(name)) {
00094                 wsd = e;
00095             }
00096         }
00097 
00098         return wsd;
00099     }
00100 
00101 }

Generated on Tue Feb 15 15:06:00 2005 for JOnAS by  doxygen 1.3.9.1