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 42 import com.sun.enterprise.tools.upgrade.common.*; 43 import com.sun.enterprise.tools.upgrade.cluster.*; 44 45 public class GenericResource extends GenericElement { 46 47 private boolean appendingResourceRefToCluster = false; 48 private java.util.List insertStructureForResourceRefInCluster = null; 49 50 public GenericResource() { 51 } 52 57 public void transform(Element element, Element parentSource, Element parentResult){ 58 String resourceTagName = element.getTagName(); 59 if(resourceTagName.equals("jms-resource")) 60 { 61 this.skipGenericElementTransform(element, parentSource, parentResult); 63 return; 64 } 65 if(resourceTagName.equals("jdbc-connection-pool")) { 67 if(element.getAttribute("name").equals("__TimerPool") || 68 element.getAttribute("name").equals("PointBasePool")) 69 return; 70 } 71 if(resourceTagName.equals("jdbc-resource")) { 73 if(element.getAttribute("pool-name").equals("PointBasePool")) 74 return; 75 } 76 super.transform(element, parentSource, parentResult); 77 this.updateResourceRef(element, parentResult); 78 } 79 protected void updateResourceRef(Element element, Element parentResult){ 80 if(!commonInfoModel.getSourceVersion().equals(com.sun.enterprise.tools.upgrade.common.UpgradeConstants.VERSION_7X)) 83 return; 84 org.w3c.dom.Attr jndiAttr = element.getAttributeNode("jndi-name"); 85 if(jndiAttr != null){ 86 NodeList servers = ((Element )parentResult.getParentNode()).getElementsByTagName("servers"); 88 NodeList serverList = ((Element )servers.item(0)).getElementsByTagName("server"); 89 if(commonInfoModel.getTargetEdition().equals(com.sun.enterprise.tools.upgrade.common.UpgradeConstants.EDITION_PE)){ 91 Element serverElement = ((Element )serverList.item(0)); 92 this.addOrUpdateResourceRef(serverElement, element, parentResult); 93 }else{ 94 if(commonInfoModel.getCurrentCluster() == null){ 95 String serverName = commonInfoModel.getCurrentSourceInstance(); 97 if((serverName == null) || ("".equals(serverName.trim()))){ 98 serverName = "server"; 100 } 101 if(serverName != null){ 102 for(int lh =0; lh < serverList.getLength(); lh++){ 103 if(serverName.equals(((Element )serverList.item(lh)).getAttribute("name"))){ 104 this.addOrUpdateResourceRef((Element )serverList.item(lh), element, parentResult); 105 break; 106 } 107 } 108 } 109 }else{ 110 String clusterName = commonInfoModel.getCurrentCluster(); 111 this.updateResourceRefsForCluster(clusterName, serverList,element,parentResult); 112 } 113 } 114 } 115 } 116 private void updateResourceRefsForCluster(String clusterName, NodeList serverRefList, Element element, Element parentResult){ 117 for(java.util.Iterator dItr = ClustersInfoManager.getClusterInfoManager().getClusterInfoList().iterator(); dItr.hasNext();){ 118 ClusterInfo cInfo = (ClusterInfo)dItr.next(); 119 if(cInfo.getClusterName().equals(clusterName)){ 120 for(java.util.Iterator clItr = cInfo.getClusteredInstanceList().iterator(); clItr.hasNext();){ 121 ClusteredInstance clInstance = (ClusteredInstance)clItr.next(); 122 String clInstanceName = clInstance.getInstanceName(); 123 for(int lh =0; lh < serverRefList.getLength(); lh++){ 124 if(clInstanceName.equals(((Element )serverRefList.item(lh)).getAttribute("name"))){ 125 this.addOrUpdateResourceRef((Element )serverRefList.item(lh), element, parentResult); 126 break; 127 } 128 } 129 } 130 } 131 } 132 NodeList clusters = ((Element )parentResult.getParentNode()).getElementsByTagName("clusters"); 133 if((clusters != null) && (clusters.getLength() > 0)){ 134 NodeList clustersList = ((Element )clusters.item(0)).getElementsByTagName("cluster"); 135 for(int lh =0; lh < clustersList.getLength(); lh++){ 136 if(clusterName.equals(((Element )clustersList.item(lh)).getAttribute("name"))){ 137 this.appendingResourceRefToCluster = true; 138 this.addOrUpdateResourceRef((Element )clustersList.item(lh), element, parentResult); 139 this.appendingResourceRefToCluster = false; 140 break; 141 } 142 } 143 } 144 } 145 private void addOrUpdateResourceRef(Element parentForRef, Element element, Element parentResult){ 146 NodeList resourceRefs = parentForRef.getElementsByTagName("resource-ref"); 148 Element resourceRef = null; 149 for(int lh =0; lh < resourceRefs.getLength(); lh++){ 150 if((element.getAttribute("jndi-name")).equals(((Element )resourceRefs.item(lh)).getAttribute("ref"))){ 152 resourceRef = (Element )resourceRefs.item(lh); 153 org.w3c.dom.Attr enAttr = element.getAttributeNode("enabled"); 154 if(enAttr != null){ 155 resourceRef.setAttribute("enabled", element.getAttribute("enabled")); 156 } 157 break; 158 } 159 } 160 if(resourceRef == null){ 161 resourceRef = parentResult.getOwnerDocument().createElement("resource-ref"); 162 resourceRef.setAttribute("ref", element.getAttribute("jndi-name")); 163 org.w3c.dom.Attr enAttr = element.getAttributeNode("enabled"); 164 if(enAttr != null){ 165 resourceRef.setAttribute("enabled", element.getAttribute("enabled")); 166 } 167 this.appendElementToParent(parentForRef,resourceRef); 168 } 169 } 170 private void skipGenericElementTransform(Element element, Element parentSource, Element parentResult){ 171 NodeList childNodes = element.getChildNodes(); 172 for(int index=0; index < childNodes.getLength(); index++){ 173 Node aNode = childNodes.item(index); 174 try{ 175 if(aNode.getNodeType() == Node.ELEMENT_NODE){ 176 BaseElement baseElement = ElementToObjectMapper.getMapper().getElementObject(aNode.getNodeName()); 177 baseElement.transform((Element )aNode, element, parentResult); 178 } 179 }catch(Exception ex){ 180 ex.printStackTrace(); 181 } 182 } 183 } 184 protected java.util.List getInsertElementStructure(Element element, Element parentEle){ 185 java.util.List insertStrucure = ElementToObjectMapper.getMapper().getInsertElementStructure(element.getTagName()); 186 if(element.getTagName().equals("resource-ref") && this.appendingResourceRefToCluster){ 187 if(this.insertStructureForResourceRefInCluster == null){ 188 this.insertStructureForResourceRefInCluster = new java.util.ArrayList (); 189 this.insertStructureForResourceRefInCluster.add("application-ref"); 190 this.insertStructureForResourceRefInCluster.add("system-property"); 191 this.insertStructureForResourceRefInCluster.add("property"); 192 } 193 return this.insertStructureForResourceRefInCluster; 194 } 195 return insertStrucure; 196 } 197 } 198 | Popular Tags |