KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > enterprise > tools > upgrade > transform > elements > JMSResource


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the License). You may not use this file except in
5  * compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * https://glassfish.dev.java.net/public/CDDLv1.0.html or
9  * glassfish/bootstrap/legal/CDDLv1.0.txt.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * Header Notice in each file and include the License file
15  * at glassfish/bootstrap/legal/CDDLv1.0.txt.
16  * If applicable, add the following below the CDDL Header,
17  * with the fields enclosed by brackets [] replaced by
18  * you own identifying information:
19  * "Portions Copyrighted [year] [name of copyright owner]"
20  *
21  * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
22  */

23
24 /*
25  * IIOPListener.java
26  *
27  * Created on August 4, 2003, 2:04 PM
28  */

29
30 package com.sun.enterprise.tools.upgrade.transform.elements;
31
32 /**
33  *
34  * @author prakash
35  */

36 import org.w3c.dom.Document JavaDoc;
37 import org.w3c.dom.Element JavaDoc;
38 import org.w3c.dom.NodeList JavaDoc;
39 import org.w3c.dom.Node JavaDoc;
40 import com.sun.enterprise.tools.upgrade.transform.ElementToObjectMapper;
41
42 public class JMSResource extends GenericResource {
43     
44     /** Creates a new instance of Element */
45     public JMSResource() {
46     }
47     /**
48      * element - jms-resource
49      * parentSource - resources element of source
50      * parentResult - resources element of result
51      */

52     public void transform(Element JavaDoc element, Element JavaDoc parentSource, Element JavaDoc parentResult){
53         Element JavaDoc resultResource = null;
54         String JavaDoc resourceType = element.getAttribute("res-type");
55         /*
56          * JMS resource type. This can be one of: javax.jms.Topic, javax.jms.Queue, javax.jms.TopicConnectionFactory, javax.jms.QueueConnectionFactory
57          */

58         if(resourceType.equals("javax.jms.Topic") || resourceType.equals("javax.jms.Queue")){
59             // javax.jms.Topic, javax.jms.Queue must use admin-object-resource in 8.0
60
resultResource = this.transformToAdminObjectResource(element, parentSource, parentResult);
61         }else{
62             // javax.jms.TopicConnectionFactory, javax.jms.QueueConnectionFactory must use connector-resouce in appserver 8.0
63
resultResource = this.transformToConnectorResource(element, parentSource, parentResult);
64         }
65         super.updateResourceRef(resultResource, parentResult);
66         super.transform(element, parentSource, resultResource);
67     }
68     private Element JavaDoc transformToAdminObjectResource(Element JavaDoc element, Element JavaDoc parentSource, Element JavaDoc parentResult){
69         NodeList JavaDoc resultResources = parentResult.getElementsByTagName("admin-object-resource");
70         Element JavaDoc resultResource = null;
71         for(int lh =0; lh < resultResources.getLength(); lh++){
72             // Compare one key attribute
73
if((element.getAttribute("jndi-name")).equals(((Element JavaDoc)resultResources.item(lh)).getAttribute("jndi-name"))){
74                 resultResource = (Element JavaDoc)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             // Add element - http-listener to result http-service.
83
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 JavaDoc transformToConnectorResource(Element JavaDoc element, Element JavaDoc parentSource, Element JavaDoc parentResult){
93         NodeList JavaDoc resultResources = parentResult.getElementsByTagName("connector-resource");
94         Element JavaDoc resultResource = null;
95         for(int lh =0; lh < resultResources.getLength(); lh++){
96             // Compare one key attribute
97
if((element.getAttribute("jndi-name")).equals(((Element JavaDoc)resultResources.item(lh)).getAttribute("jndi-name"))){
98                 resultResource = (Element JavaDoc)resultResources.item(lh);
99                 resultResource.setAttribute("enabled", element.getAttribute("enabled"));
100                 break;
101              }
102         }
103         if(resultResource == null){
104             // Add element - http-listener to result http-service.
105
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             // Now search for connectionpool resource.
111
this.transformConnectorPool(element, parentSource, parentResult);
112         }
113         return resultResource;
114     }
115     private void transformConnectorPool(Element JavaDoc element, Element JavaDoc parentSource, Element JavaDoc parentResult){
116         NodeList JavaDoc connectorPools = parentResult.getElementsByTagName("connector-connection-pool");
117         Element JavaDoc connectorPool = null;
118         for(int lh =0; lh < connectorPools.getLength(); lh++){
119             // Compare one key attribute
120
if((element.getAttribute("jndi-name")).equals(((Element JavaDoc)connectorPools.item(lh)).getAttribute("name"))){
121                 connectorPool = (Element JavaDoc)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             // Add element - http-listener to result http-service.
129
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