1 23 24 29 30 package com.sun.enterprise.tools.upgrade.transform.elements; 31 import com.sun.enterprise.tools.upgrade.common.UpgradeConstants; 32 import org.w3c.dom.Element ; 33 import org.w3c.dom.NodeList ; 34 import org.w3c.dom.Node ; 35 36 37 public class JVMOptions extends BaseElement { 38 39 40 public JVMOptions() { 41 } 42 47 public void transform(Element element, Element parentSource, Element parentResult){ 48 NodeList jvmOptions = parentResult.getElementsByTagName("jvm-options"); 51 Element jvmOption = null; 52 String srcTxtDt = this.getTextNodeData(element); 53 String [] sourceTextData = this.parseTextData(srcTxtDt); 54 if(sourceTextData == null){ 55 logger.log(java.util.logging.Level.WARNING, stringManager.getString("upgrade.transform.jvmoptions.notTransferred", srcTxtDt)); 59 return; 61 } 62 if(srcTxtDt.trim().equals("-Djdbc.drivers=com.pointbase.jdbc.jdbcUniversalDriver")) { 64 return; 66 } 67 if(!this.canTransfer(sourceTextData[0], sourceTextData[1])){ 68 logger.log(java.util.logging.Level.WARNING, stringManager.getString("upgrade.transform.jvmoptions.notTransferred", sourceTextData[0])); 70 return; 72 } 73 for(int lh =0; lh < jvmOptions.getLength(); lh++){ 74 String tgTxtDt = this.getTextNodeData((Element )jvmOptions.item(lh)); 76 if(srcTxtDt.equals(tgTxtDt)){ 77 jvmOption = (Element )jvmOptions.item(lh); 78 break; 80 } 81 String [] targetTextData = this.parseTextData(tgTxtDt); 82 if(sourceTextData != null && targetTextData != null){ 83 if(sourceTextData[0].equals(targetTextData[0])){ 84 jvmOption = (Element )jvmOptions.item(lh); 87 break; 88 } 89 } 90 } 91 if(jvmOption == null){ 92 if(this.canTransfer(sourceTextData[0], sourceTextData[1])){ 95 if(sourceTextData[1].indexOf(this.commonInfoModel.getSourceInstallDir()) == -1){ 98 jvmOption = parentResult.getOwnerDocument().createElement("jvm-options"); 100 Node textNode = jvmOption.getOwnerDocument().createTextNode(srcTxtDt); 101 jvmOption.appendChild(textNode); 102 parentResult.appendChild(jvmOption); 103 } 104 } else { 106 logger.log(java.util.logging.Level.WARNING, stringManager.getString("upgrade.transform.jvmoptions.notTransferred", sourceTextData[0])); 107 } 108 110 } 111 } 112 private String [] parseTextData(String fullStr){ 113 String [] parsedStrings = null; 114 java.util.StringTokenizer stk = new java.util.StringTokenizer (fullStr,"="); 115 if((stk.hasMoreTokens()) && (stk.countTokens() == 2)){ 116 parsedStrings = new String [2]; 118 parsedStrings[0] = stk.nextToken(); 119 parsedStrings[1] = stk.nextToken(); 120 } 121 return parsedStrings; 122 } 123 private String getTextNodeData(Element element){ 124 NodeList children = element.getChildNodes(); 125 for(int index=0; index < children.getLength(); index++){ 126 if(children.item(index).getNodeType() == Node.TEXT_NODE){ 127 return children.item(index).getNodeValue(); 128 } 129 } 130 return ""; 131 } 132 private boolean canTransfer(String optionName, String optionValue){ 133 if((optionName.indexOf("Dorg.xml.sax.parser") != -1) || 135 (optionName.indexOf("Dorg.xml.sax.driver") != -1) || 136 (optionName.indexOf("Dcom.sun.jdo.api.persistence.model.multipleClassLoaders") != -1) || 137 (optionName.indexOf("Djava.util.logging.manager") != -1) || 138 (optionName.indexOf("Dcom.sun.aas.imqLib") != -1) || 139 (optionName.indexOf("Dcom.sun.aas.imqBin") != -1) || 140 (optionName.indexOf("Dcom.sun.aas.webServicesLib") != -1) || 141 (optionName.indexOf("Dcom.sun.aas.configRoot") != -1)){ 142 return false; 143 } 144 String repOpValue = this.commonInfoModel.getSourceInstallDir().replace('\\','/'); 146 if((optionValue.indexOf(repOpValue) != -1) || (optionValue.indexOf(this.commonInfoModel.getSourceInstallDir()) != -1)){ 149 return false; 151 } 152 if(commonInfoModel.getTargetEdition().equals(UpgradeConstants.EDITION_EE) && optionName.indexOf("javax.net.ssl") != -1) { 154 return false; 155 } 156 return true; 157 } 158 159 } 160 | Popular Tags |