KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > enterprise > tools > verifier > tests > web > ias > IASResourceEnvRef


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 package com.sun.enterprise.tools.verifier.tests.web.ias;
25
26 import java.util.*;
27 import com.sun.enterprise.deployment.*;
28 import com.sun.enterprise.tools.verifier.*;
29 import com.sun.enterprise.tools.verifier.tests.*;
30 import com.sun.enterprise.deployment.ResourceReferenceDescriptor;
31 import com.sun.enterprise.deployment.WebBundleDescriptor;
32 import com.sun.enterprise.tools.verifier.tests.web.*;
33
34 import com.sun.enterprise.tools.common.dd.ResourceEnvRef;
35 import com.sun.enterprise.tools.common.dd.webapp.*;
36
37
38
39 public class IASResourceEnvRef extends WebTest implements WebCheck {
40
41     public Result check(WebBundleDescriptor descriptor) {
42
43         String JavaDoc resName;
44         String JavaDoc resType;
45     Result result = getInitializedResult();
46     WebComponentNameConstructor compName = new WebComponentNameConstructor(descriptor);
47         String JavaDoc jndiName;
48         boolean oneFailed = false;
49         boolean notApp = false;
50         boolean chkOk=true;
51         ResourceEnvRef[] envRefs= descriptor.getIasWebApp().getResourceEnvRef();
52
53     if (envRefs.length > 0) {
54
55              boolean isValidResRefName;
56          for (int rep=0; rep<envRefs.length; rep++ ) {
57                 isValidResRefName=false;
58         resName = envRefs[rep].getResourceEnvRefName();
59                 jndiName = envRefs[rep].getJndiName();
60
61                 if (validResEnvRefName(resName,descriptor)) {
62
63                     isValidResRefName=true;
64             result.addGoodDetails(smh.getLocalString
65                        ("tests.componentNameConstructor",
66                     "For [ {0} ]",
67                     new Object JavaDoc[] {compName.toString()}));
68                     result.addGoodDetails(smh.getLocalString
69                       (getClass().getName() + ".passed",
70                        "Proper resource env reference name [ {0} ] defined in the war file.",
71                        new Object JavaDoc[] {resName}));
72                 } else {
73                     if (!oneFailed)
74                         oneFailed = true;
75             result.addErrorDetails(smh.getLocalString
76                        ("tests.componentNameConstructor",
77                     "For [ {0} ]",
78                     new Object JavaDoc[] {compName.toString()}));
79                     result.addErrorDetails(smh.getLocalString
80                                         (getClass().getName() + ".failed",
81                                         "Error: Resource env reference name [ {0} ] is not valid, either empty or not defined in web.xml.",
82                                         new Object JavaDoc[] {resName}));
83                 }
84
85                 if (isValidResRefName && validJndiName(jndiName, resName,descriptor)){
86                     result.addGoodDetails(smh.getLocalString
87                        ("tests.componentNameConstructor",
88                     "For [ {0} ]",
89                     new Object JavaDoc[] {compName.toString()}));
90                     result.addGoodDetails(smh.getLocalString
91                       (getClass().getName() + ".passed",
92                        "Proper jndi name [ {0} ] defined in the war file.",
93                        new Object JavaDoc[] {jndiName}));
94                 } else {
95                     if (!oneFailed)
96                         oneFailed = true;
97             result.addErrorDetails(smh.getLocalString
98                        ("tests.componentNameConstructor",
99                     "For [ {0} ]",
100                     new Object JavaDoc[] {compName.toString()}));
101                     result.addErrorDetails(smh.getLocalString
102                                         (getClass().getName() + ".failed",
103                                         "Error: Jndi name [ {0} ] is not valid, either empty or not starts with \"jms/\".",
104                                         new Object JavaDoc[] {resName}));
105                 }
106
107             }
108
109         } else {
110             //System.out.println("There are no resource env references defined within the ias-web archive");
111
notApp = true;
112         result.addNaDetails(smh.getLocalString
113                        ("tests.componentNameConstructor",
114                     "For [ {0} ]",
115                     new Object JavaDoc[] {compName.toString()}));
116             result.notApplicable(smh.getLocalString
117                  (getClass().getName() + ".notApplicable",
118                   "There is no resource env reference element present in this web archive [ {0} ].",
119                   new Object JavaDoc[] {descriptor.getName()}));
120         }
121         if (oneFailed) {
122             result.setStatus(Result.FAILED);
123         } else if(notApp) {
124             result.setStatus(Result.NOT_APPLICABLE);
125         }else {
126             result.setStatus(Result.PASSED);
127             result.addGoodDetails(smh.getLocalString
128                     ("tests.componentNameConstructor",
129                     "For [ {0} ]",
130                     new Object JavaDoc[] {compName.toString()}));
131             result.passed
132             (smh.getLocalString
133              (getClass().getName() + ".passed",
134               "All resource env reference elements are valid within the web archive [ {0} ].",
135                       new Object JavaDoc[] {descriptor.getName()} ));
136         }
137     return result;
138     }
139
140      boolean validResEnvRefName(String JavaDoc name,WebBundleDescriptor descriptor){
141         boolean valid =true;
142         if(name !=null && name.length()!=0) {
143             try{
144               descriptor.getJmsDestinationReferenceByName(name);
145             }
146             catch(IllegalArgumentException JavaDoc e){
147             valid=false;
148             }
149         } else{
150          valid=false;
151
152         }
153         return valid;
154     }
155
156     boolean validJndiName(String JavaDoc refJndiName, String JavaDoc refName,WebBundleDescriptor descriptor){
157         boolean valid =true;
158         JmsDestinationReferenceDescriptor resDesc;
159
160         if(refJndiName !=null && refJndiName.length()!=0) {
161           //descriptor.getResourceReferenceByName(name);
162
resDesc = descriptor.getJmsDestinationReferenceByName(refName);
163                         String JavaDoc type = resDesc.getRefType();
164                         if(type.indexOf("javax.jms")>-1) //jms resource
165
{
166                             if(!refJndiName.startsWith("jms/"))
167                               valid=false;
168
169                         }
170
171                         else
172                             valid=false;
173          }
174         else{
175         valid=false;
176         }
177
178         return valid;
179     }
180
181
182
183 }
184
Popular Tags