1 23 24 29 30 package com.sun.enterprise.tools.upgrade.transform.elements; 31 32 36 import org.w3c.dom.Document ; 37 import org.w3c.dom.Element ; 38 import org.w3c.dom.NodeList ; 39 import org.w3c.dom.Node ; 40 import com.sun.enterprise.tools.upgrade.transform.ElementToObjectMapper; 41 import java.util.List ; 43 import java.util.StringTokenizer ; 44 45 public class JavaConfig extends BaseElement { 46 47 private java.util.List exludedJarList = null; 49 50 51 public JavaConfig() { 52 } 53 58 public void transform(Element element, Element parentSource, Element parentResult){ 59 NodeList javaConfs = parentResult.getElementsByTagName("java-config"); 61 Element javaConf = null; 62 if(javaConfs.getLength() == 0){ 63 NodeList config = parentResult.getElementsByTagName("config"); 64 javaConf = parentResult.getOwnerDocument().createElement("java-config"); 65 java.util.Vector notToTransferAttrList = new java.util.Vector (); 66 notToTransferAttrList.add("classpath-suffix"); 67 notToTransferAttrList.add("classpath-prefix"); 69 notToTransferAttrList.add("java-home"); 70 notToTransferAttrList.add("server-classpath"); 72 this.transferAttributes(element, javaConf, notToTransferAttrList); 73 this.updateClassPathAttributes(element,javaConf); 75 this.appendElementToParent((Element )config.item(0),javaConf); 76 }else { 77 javaConf = (Element )javaConfs.item(0); 78 java.util.Vector notToTransferAttrList = new java.util.Vector (); 79 notToTransferAttrList.add("classpath-suffix"); 80 notToTransferAttrList.add("classpath-prefix"); 82 notToTransferAttrList.add("java-home"); 83 notToTransferAttrList.add("server-classpath"); 84 this.transferAttributes(element, javaConf, notToTransferAttrList); 85 this.updateClassPathAttributes(element,javaConf); 87 } 88 super.transform(element, parentSource, javaConf); 89 } 90 91 private void updateClassPathAttributes(Element source, Element target){ 93 String cpSuffix = source.getAttribute("classpath-suffix"); 95 if((cpSuffix != null) && (!cpSuffix.trim().equals(""))){ 96 String cpToAppend = getClassPathStringToAppend(cpSuffix); 97 if(cpToAppend != null){ 98 String targetCP = target.getAttribute("classpath-suffix"); 99 if((targetCP == null) || (targetCP.trim().equals(""))){ 100 target.setAttribute("classpath-suffix", cpToAppend); 101 }else{ 102 targetCP = targetCP+"${path.separator}"+cpToAppend; 103 target.setAttribute("classpath-suffix", targetCP); 104 } 105 } 106 } 107 String cpPrefix = source.getAttribute("classpath-prefix"); 110 if((cpPrefix != null) && (!cpPrefix.trim().equals(""))){ 111 String cpToAppend = getClassPathStringToAppend(cpPrefix); 112 if(cpToAppend != null){ 113 String targetCP = target.getAttribute("classpath-prefix"); 114 if((targetCP == null) || (targetCP.trim().equals(""))){ 115 target.setAttribute("classpath-prefix", cpToAppend); 116 }else{ 117 targetCP = targetCP+"${path.separator}"+cpToAppend; 118 target.setAttribute("classpath-prefix", targetCP); 119 } 120 } 121 } 122 123 139 } 140 private String getClassPathStringToAppend(String sourceCPString){ 141 if(sourceCPString == null) 142 return null; 143 java.util.StringTokenizer tokenizer = new java.util.StringTokenizer (sourceCPString,System.getProperty("path.separator")); 144 String cpToAppend = null; 145 if(this.exludedJarList == null) 146 this.buildExcludedJarList(); 147 while(tokenizer.hasMoreTokens()){ 148 String token = tokenizer.nextToken(); 149 if(this.isValidClassPathElement(token)){ 150 if(cpToAppend == null){ 151 cpToAppend = token; 152 }else{ 153 cpToAppend = cpToAppend+"${path.separator}"+token; 154 } 155 } 156 } 157 return cpToAppend; 158 } 159 private boolean isValidClassPathElement(String cp){ 160 for(int i=0; i < this.exludedJarList.size(); i++){ 162 if(cp.indexOf((String )this.exludedJarList.get(i)) != -1) 163 return false; 164 } 165 return true; 166 } 167 private void buildExcludedJarList(){ 168 if(this.exludedJarList !=null) 169 return; 170 this.exludedJarList = new java.util.ArrayList (); 171 this.exludedJarList.add("pbclient42RE.jar"); 172 this.exludedJarList.add("sax.jar"); 173 this.exludedJarList.add("xalan.jar"); 174 this.exludedJarList.add("dom.jar"); 175 this.exludedJarList.add("dom4j.jar"); 176 this.exludedJarList.add("xercesImpl.jar"); 177 this.exludedJarList.add("jaxp-api.jar"); 178 this.exludedJarList.add("jaxrpc-api.jar"); 179 this.exludedJarList.add("xmlsec.jar"); 180 this.exludedJarList.add("saaj-api.jar"); 181 this.exludedJarList.add("jaxrpc-impl.jar"); 182 this.exludedJarList.add("jaxrpc-spi.jar"); 183 this.exludedJarList.add("common-logging.jar"); 184 this.exludedJarList.add("saaj-impl.jar"); 185 this.exludedJarList.add("mail.jar"); 186 this.exludedJarList.add("activation.jar"); 187 this.exludedJarList.add("jaas.jar"); 188 this.exludedJarList.add("jdk_logging.jar"); 189 this.exludedJarList.add("servlet.jar"); 190 this.exludedJarList.add("xsltc.jar"); 191 this.exludedJarList.add("relaxngDatatype.jar"); 192 this.exludedJarList.add("xsdlib.jar"); 193 this.exludedJarList.add("jakarta-log4j.jar"); 194 this.exludedJarList.add("namespace.jar"); 195 this.exludedJarList.add("appserv-rt.jar"); 196 this.exludedJarList.add("jmxremote_optional.jar"); 197 this.exludedJarList.add("rmissl.jar"); 198 this.exludedJarList.add("appserv-tags.jar"); 199 this.exludedJarList.add("jsf-api.jar"); 200 this.exludedJarList.add("activation.jar"); 201 this.exludedJarList.add("appserv-upgrade.jar"); 202 this.exludedJarList.add("jsf-impl.jar"); 203 this.exludedJarList.add("admin-cli.jar"); 204 this.exludedJarList.add("appservLauncher.jar"); 205 this.exludedJarList.add("j2ee-svc.jar"); 206 this.exludedJarList.add("j2ee.jar"); 207 this.exludedJarList.add("sun-appserv-ant.jar"); 208 this.exludedJarList.add("jaxr-api.jar"); 209 this.exludedJarList.add("appserv-admin.jar"); 210 this.exludedJarList.add("jaxr-impl.jar"); 211 this.exludedJarList.add("appserv-assemblytool.jar"); 212 this.exludedJarList.add("jaxrpc-api.jar"); 213 this.exludedJarList.add("appserv-cmp.jar"); 214 this.exludedJarList.add("commons-launcher.jar"); 215 this.exludedJarList.add("appserv-ext.jar"); 216 this.exludedJarList.add("commons-logging.jar"); 217 this.exludedJarList.add("jhall.jar"); 218 this.exludedJarList.add("appserv-jstl.jar"); 219 this.exludedJarList.add("deployhelp.jar"); 220 this.exludedJarList.add("jmxremote.jar"); 221 this.exludedJarList.add("relaxngDatatype.jar"); 222 this.exludedJarList.add("jaxb-api.jar"); 223 this.exludedJarList.add("jaxb-impl.jar"); 224 this.exludedJarList.add("jaxb-libs.jar"); 225 this.exludedJarList.add("jaxb-xjc.jar"); 226 this.exludedJarList.add("jax-qname.jar"); 227 this.exludedJarList.add("namespace.jar"); 228 235 } 236 } 238 | Popular Tags |