1 23 package com.sun.enterprise.tools.verifier.tests.appclient.elements; 24 25 import com.sun.enterprise.tools.verifier.tests.appclient.AppClientTest; 26 import com.sun.enterprise.tools.verifier.tests.appclient.AppClientCheck; 27 import java.util.*; 28 import java.util.logging.Level ; 29 30 import com.sun.enterprise.deployment.*; 31 import com.sun.enterprise.tools.verifier.*; 32 import com.sun.enterprise.tools.verifier.tests.*; 33 34 38 public class AppClientEjbLinkElement extends AppClientTest implements AppClientCheck { 39 40 48 public Result check(ApplicationClientDescriptor descriptor) { 49 50 Result result = getInitializedResult(); 51 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 52 53 boolean resolved = false; 54 boolean oneFailed = false; 55 int na = 0; 56 71 if (!descriptor.getEjbReferenceDescriptors().isEmpty()) { 75 for (Iterator itr = descriptor.getEjbReferenceDescriptors().iterator(); 76 itr.hasNext();) { 77 EjbReferenceDescriptor nextEjbReference = (EjbReferenceDescriptor) itr.next(); 78 if (nextEjbReference.isLinked()) { 79 String ejb_link = nextEjbReference.getLinkName(); 80 ejb_link = ejb_link.substring(ejb_link.indexOf("#") + 1); 81 try { 83 86 Set ejbBundles = descriptor.getApplication().getEjbBundleDescriptors(); 88 Iterator ejbBundlesIterator = ejbBundles.iterator(); 89 EjbBundleDescriptor ejbBundle = null; 90 91 while (ejbBundlesIterator.hasNext()) { 92 ejbBundle = (EjbBundleDescriptor)ejbBundlesIterator.next(); 93 98 for (Iterator itr2 = ejbBundle.getEjbs().iterator(); itr2.hasNext();) { 99 EjbDescriptor ejbDescriptor = (EjbDescriptor) itr2.next(); 100 if (ejbDescriptor.getName().equals(ejb_link)) { 101 resolved = true; 102 result.addGoodDetails(smh.getLocalString 103 ("tests.componentNameConstructor", 104 "For [ {0} ]", 105 new Object [] {compName.toString()})); 106 result.addGoodDetails 107 (smh.getLocalString 108 (getClass().getName() + ".passed", 109 "EJB reference [ {0} ] is successfully resolved.", 110 new Object [] {nextEjbReference.getLinkName()})); 111 break; 112 } 113 } 114 } 115 }catch (Exception e) { 116 logger.log(Level.FINE, "com.sun.enterprise.tools.verifier.testsprint", 117 new Object [] {"[" + getClass() + "] Error: " + e.getMessage()}); 118 if (!oneFailed) { 119 oneFailed = true; 120 } 121 } 122 123 if (!resolved) { 126 if (!oneFailed) { 127 oneFailed = true; 128 } 129 result.addErrorDetails(smh.getLocalString 130 ("tests.componentNameConstructor", 131 "For [ {0} ]", 132 new Object [] {compName.toString()})); 133 result.addErrorDetails(smh.getLocalString 134 (getClass().getName() + ".failed", 135 "Error: Failed to resolve EJB reference [ {0} ].", 136 new Object [] {nextEjbReference.getLinkName()})); 137 } else { 138 resolved =false; 140 } 141 142 } else { 143 result.addNaDetails(smh.getLocalString 148 ("tests.componentNameConstructor", 149 "For [ {0} ]", 150 new Object [] {compName.toString()})); 151 result.addNaDetails 152 (smh.getLocalString 153 (getClass().getName() + ".notApplicable1", 154 "Not Applicable: Cannot verify the existence of an ejb reference [ {0} ] to external bean within different .ear file.", 155 new Object [] {nextEjbReference.getName()})); 156 na++; 157 } 158 } 159 160 if (oneFailed) { 161 result.setStatus(result.FAILED); 162 } else if (na == descriptor.getEjbReferenceDescriptors().size()) { 163 result.setStatus(result.NOT_APPLICABLE); 164 } else { 165 result.setStatus(result.PASSED); 166 } 167 return result; 171 172 } else { 173 result.addNaDetails(smh.getLocalString 174 ("tests.componentNameConstructor", 175 "For [ {0} ]", 176 new Object [] {compName.toString()})); 177 result.notApplicable(smh.getLocalString 178 (getClass().getName() + ".notApplicable", 179 "There are no ejb references to other beans within this application client [ {0} ]", 180 new Object [] {descriptor.getName()})); 181 } 182 183 return result; 184 } 185 199 200 } 201 | Popular Tags |