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 public class JMSResource extends GenericResource { 43 44 45 public JMSResource() { 46 } 47 52 public void transform(Element element, Element parentSource, Element parentResult){ 53 Element resultResource = null; 54 String resourceType = element.getAttribute("res-type"); 55 58 if(resourceType.equals("javax.jms.Topic") || resourceType.equals("javax.jms.Queue")){ 59 resultResource = this.transformToAdminObjectResource(element, parentSource, parentResult); 61 }else{ 62 resultResource = this.transformToConnectorResource(element, parentSource, parentResult); 64 } 65 super.updateResourceRef(resultResource, parentResult); 66 super.transform(element, parentSource, resultResource); 67 } 68 private Element transformToAdminObjectResource(Element element, Element parentSource, Element parentResult){ 69 NodeList resultResources = parentResult.getElementsByTagName("admin-object-resource"); 70 Element resultResource = null; 71 for(int lh =0; lh < resultResources.getLength(); lh++){ 72 if((element.getAttribute("jndi-name")).equals(((Element )resultResources.item(lh)).getAttribute("jndi-name"))){ 74 resultResource = (Element )resultResources.item(lh); 75 resultResource.setAttribute("res-type", element.getAttribute("res-type")); 76 resultResource.setAttribute("enabled", element.getAttribute("enabled")); 77 resultResource.setAttribute("res-adapter", "jmsra"); 78 break; 79 } 80 } 81 if(resultResource == null){ 82 resultResource = parentResult.getOwnerDocument().createElement("admin-object-resource"); 84 resultResource.setAttribute("jndi-name", element.getAttribute("jndi-name")); 85 resultResource.setAttribute("res-type", element.getAttribute("res-type")); 86 resultResource.setAttribute("enabled", element.getAttribute("enabled")); 87 resultResource.setAttribute("res-adapter", "jmsra"); 88 this.appendElementToParent(parentResult,resultResource); 89 } 90 return resultResource; 91 } 92 private Element transformToConnectorResource(Element element, Element parentSource, Element parentResult){ 93 NodeList resultResources = parentResult.getElementsByTagName("connector-resource"); 94 Element resultResource = null; 95 for(int lh =0; lh < resultResources.getLength(); lh++){ 96 if((element.getAttribute("jndi-name")).equals(((Element )resultResources.item(lh)).getAttribute("jndi-name"))){ 98 resultResource = (Element )resultResources.item(lh); 99 resultResource.setAttribute("enabled", element.getAttribute("enabled")); 100 break; 101 } 102 } 103 if(resultResource == null){ 104 resultResource = parentResult.getOwnerDocument().createElement("connector-resource"); 106 resultResource.setAttribute("jndi-name", element.getAttribute("jndi-name")); 107 resultResource.setAttribute("enabled", element.getAttribute("enabled")); 108 resultResource.setAttribute("pool-name", element.getAttribute("jndi-name")); 109 this.appendElementToParent(parentResult,resultResource); 110 this.transformConnectorPool(element, parentSource, parentResult); 112 } 113 return resultResource; 114 } 115 private void transformConnectorPool(Element element, Element parentSource, Element parentResult){ 116 NodeList connectorPools = parentResult.getElementsByTagName("connector-connection-pool"); 117 Element connectorPool = null; 118 for(int lh =0; lh < connectorPools.getLength(); lh++){ 119 if((element.getAttribute("jndi-name")).equals(((Element )connectorPools.item(lh)).getAttribute("name"))){ 121 connectorPool = (Element )connectorPools.item(lh); 122 connectorPool.setAttribute("connection-definition-name", element.getAttribute("res-type")); 123 connectorPool.setAttribute("resource-adapter-name", "jmsra"); 124 break; 125 } 126 } 127 if(connectorPool == null){ 128 connectorPool = parentResult.getOwnerDocument().createElement("connector-connection-pool"); 130 connectorPool.setAttribute("name", element.getAttribute("jndi-name")); 131 connectorPool.setAttribute("connection-definition-name", element.getAttribute("res-type")); 132 connectorPool.setAttribute("resource-adapter-name", "jmsra"); 133 this.appendElementToParent(parentResult,connectorPool); 134 } 135 } 136 } 137 | Popular Tags |