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 com.sun.enterprise.deployment.*; 29 import com.sun.enterprise.tools.verifier.*; 30 import com.sun.enterprise.tools.verifier.tests.*; 31 32 40 public class AppClientEjbReferencesElement extends AppClientTest implements AppClientCheck { 41 42 43 55 public Result check(ApplicationClientDescriptor descriptor) { 56 57 Result result = getInitializedResult(); 58 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 59 60 if (descriptor instanceof ApplicationClientDescriptor) { 61 65 70 EjbReferenceDescriptor ejbReference; 71 Set references = descriptor.getEjbReferenceDescriptors(); 72 Iterator iterator = references.iterator(); 73 74 if (iterator.hasNext()) { 75 boolean oneFailed = false; 76 while (iterator.hasNext()) { 77 ejbReference = (EjbReferenceDescriptor) iterator.next(); 78 79 String homeClassName = ejbReference.getHomeClassName(); 80 if(homeClassName == null) { 81 oneFailed = true; 82 result.addErrorDetails(smh.getLocalString 83 ("tests.componentNameConstructor", 84 "For [ {0} ]", 85 new Object [] {compName.toString()})); 86 result.failed(smh.getLocalString 87 (getClass().getName() + ".failed1", 88 "Error: {0} class cannot be null.", 89 new Object [] {"home"})); 90 } else { 91 try { 92 Class.forName(homeClassName, false, getVerifierContext().getClassLoader()); 93 } catch (ClassNotFoundException e) { 94 Verifier.debug(e); 95 oneFailed = true; 96 result.addErrorDetails(smh.getLocalString 97 ("tests.componentNameConstructor", 98 "For [ {0} ]", 99 new Object [] {compName.toString()})); 100 result.failed(smh.getLocalString 101 (getClass().getName() + ".failed", 102 "Error: [ {0} ] class [ {1} ] cannot be found within this jar [ {2} ].", 103 new Object [] {ejbReference.getName(), homeClassName, 104 descriptor.getModuleDescriptor().getArchiveUri()})); 105 } 106 result.addGoodDetails(smh.getLocalString 107 ("tests.componentNameConstructor", 108 "For [ {0} ]", 109 new Object [] {compName.toString()})); 110 result.passed(smh.getLocalString 111 (getClass().getName() + ".passed2", 112 "The referenced bean's home interface [ {0} ] exists and is loadable within [ {1} ].", 113 new Object [] {ejbReference.getHomeClassName(), 114 descriptor.getModuleDescriptor().getArchiveUri()})); 115 } 116 117 String remoteClassName = ejbReference.getEjbInterface(); 118 if(remoteClassName == null) { 119 oneFailed = true; 120 result.addErrorDetails(smh.getLocalString 121 ("tests.componentNameConstructor", 122 "For [ {0} ]", 123 new Object [] {compName.toString()})); 124 result.failed(smh.getLocalString 125 (getClass().getName() + ".failed1", 126 "Error: {0} class cannot be null.", 127 new Object [] {"remote"})); 128 } else { 129 try { 130 Class.forName(remoteClassName, false, getVerifierContext().getClassLoader()); 131 } catch (ClassNotFoundException e) { 132 Verifier.debug(e); 133 oneFailed = true; 134 result.addErrorDetails(smh.getLocalString 135 ("tests.componentNameConstructor", 136 "For [ {0} ]", 137 new Object [] {compName.toString()})); 138 result.failed(smh.getLocalString 139 (getClass().getName() + ".failed", 140 "Error: [ {0} ] class [ {1} ] cannot be found within this jar [ {2} ].", 141 new Object [] {ejbReference.getName(), remoteClassName, 142 descriptor.getModuleDescriptor().getArchiveUri()})); 143 } 144 result.addGoodDetails(smh.getLocalString 145 ("tests.componentNameConstructor", 146 "For [ {0} ]", 147 new Object [] {compName.toString()})); 148 result.passed(smh.getLocalString 149 (getClass().getName() + ".passed3", 150 "The referenced bean's remote interface [ {0} ] exists and is loadable within [ {1} ].", 151 new Object [] {ejbReference.getEjbInterface(), 152 descriptor.getModuleDescriptor().getArchiveUri()})); 153 } 154 } 155 if (oneFailed) { 156 result.setStatus(result.FAILED); 157 } else { 158 result.setStatus(result.PASSED); 159 } 160 } else { 161 result.addNaDetails(smh.getLocalString 162 ("tests.componentNameConstructor", 163 "For [ {0} ]", 164 new Object [] {compName.toString()})); 165 result.notApplicable(smh.getLocalString 166 (getClass().getName() + ".notApplicable1", 167 "There are no ejb references to other beans within this application client [ {0} ]", 168 new Object [] {descriptor.getName()})); 169 } 170 171 return result; 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 "[ {0} ] not called with a application client.", 180 new Object [] {getClass()})); 181 return result; 182 } 183 } 184 } 185 186 187 | Popular Tags |