KickJava   Java API By Example, From Geeks To Geeks.

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


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
27 import com.sun.enterprise.tools.verifier.tests.web.elements.*;
28 import com.sun.enterprise.tools.verifier.tests.web.WebTest;
29 import com.sun.enterprise.tools.verifier.tests.web.WebCheck;
30 import java.util.*;
31 import com.sun.enterprise.deployment.*;
32 import com.sun.enterprise.tools.verifier.*;
33 import com.sun.enterprise.tools.verifier.tests.*;
34
35 import com.sun.enterprise.tools.common.dd.EjbRef;
36 import com.sun.enterprise.tools.common.dd.webapp.*;
37
38
39 public class IASWebEjbRef extends WebTest implements WebCheck {
40
41
42
43     public Result check(WebBundleDescriptor descriptor) {
44
45     Result result = getInitializedResult();
46     WebComponentNameConstructor compName = new WebComponentNameConstructor(descriptor);
47         EjbRef[] ejbRefs = descriptor.getIasWebApp().getEjbRef();
48
49     boolean oneFailed = false;
50         String JavaDoc jndiName;
51         String JavaDoc refName;
52
53         if (ejbRefs.length > 0) {
54             boolean isValidResRefName;
55         for (int rep=0; rep<ejbRefs.length; rep++ ) {
56                 //System.out.println(">>>>>>>>>>>>>rep is " + rep);
57
isValidResRefName=false;
58
59         jndiName = ejbRefs[rep].getJndiName();
60                 refName = ejbRefs[rep].getEjbRefName();
61
62                 if (validEjbRefName(refName,descriptor)) {
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 ejb reference name [ {0} ] defined in the war file.",
71                        new Object JavaDoc[] {refName}));
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: Ejb reference name [ {0} ] is not valid, either empty or not defined in web.xml.",
82                                         new Object JavaDoc[] {refName}));
83                 }
84
85                 if (isValidResRefName && validJndiName(jndiName, refName,descriptor)){
86                     // foundIt = true;
87
result.addGoodDetails(smh.getLocalString
88                        ("tests.componentNameConstructor",
89                     "For [ {0} ]",
90                     new Object JavaDoc[] {compName.toString()}));
91                     result.addGoodDetails(smh.getLocalString
92                       (getClass().getName() + ".passed",
93                        "Proper jndi name [ {0} ] defined in the war file.",
94                        new Object JavaDoc[] {jndiName}));
95                 } else {
96                     if (!oneFailed)
97                         oneFailed = true;
98             result.addErrorDetails(smh.getLocalString
99                        ("tests.componentNameConstructor",
100                     "For [ {0} ]",
101                     new Object JavaDoc[] {compName.toString()}));
102                     result.addErrorDetails(smh.getLocalString
103                                         (getClass().getName() + ".failed",
104                                         "Error: Jndi name [ {0} ] is not validis not valid, either empty or not starts with \"ejb/\".",
105                                         new Object JavaDoc[] {jndiName}));
106                 }
107
108
109
110
111         }
112     } else {
113         result.addNaDetails(smh.getLocalString
114                        ("tests.componentNameConstructor",
115                     "For [ {0} ]",
116                     new Object JavaDoc[] {compName.toString()}));
117         result.notApplicable(smh.getLocalString
118                  (getClass().getName() + ".notApplicable",
119                   "There is no ejb env reference element present in this web archive [ {0} ].",
120                   new Object JavaDoc[] {descriptor.getName()}));
121         return result;
122     }
123
124     if (oneFailed)
125         {
126         result.setStatus(Result.FAILED);
127         } else {
128         result.addGoodDetails(smh.getLocalString
129                     ("tests.componentNameConstructor",
130                     "For [ {0} ]",
131                     new Object JavaDoc[] {compName.toString()}));
132                 result.passed
133             (smh.getLocalString
134                     (getClass().getName() + ".passed",
135                     "All ejb env reference elements are valid within the web archive [ {0} ].",
136                     new Object JavaDoc[] {descriptor.getName()} ));
137         }
138     return result;
139     }
140
141
142     boolean validEjbRefName(String JavaDoc name,WebBundleDescriptor descriptor){
143         boolean valid =true;
144         if(name !=null && name.length()!=0) {
145             try{
146               descriptor.getEjbReferenceByName(name);
147             }
148             catch(IllegalArgumentException JavaDoc e){
149             valid=false;
150             }
151         } else{
152          valid=false;
153
154         }
155         return valid;
156     }
157
158     boolean validJndiName(String JavaDoc refJndiName, String JavaDoc refName,WebBundleDescriptor descriptor){
159         boolean valid =true;
160
161         if(refJndiName !=null && refJndiName.length()!=0 && refJndiName.startsWith("ejb/")) {
162
163          }
164         else{
165         valid=false;
166         }
167
168         return valid;
169     }
170
171
172 }
173
174
175
Popular Tags