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
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
00066
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
00092
00093 if (names.item(0).getFirstChild().getNodeValue().equals(name)) {
00094 wsd = e;
00095 }
00096 }
00097
00098 return wsd;
00099 }
00100
00101 }