1 23 28 29 package com.sun.enterprise.tools.verifier.tests.connector.managed; 30 31 import com.sun.enterprise.tools.verifier.tests.connector.ConnectorTest; 32 import com.sun.enterprise.tools.verifier.tests.connector.ConnectorCheck; 33 import com.sun.enterprise.tools.verifier.Result; 34 import com.sun.enterprise.tools.verifier.*; 35 import com.sun.enterprise.deployment.ConnectorDescriptor; 36 import com.sun.enterprise.deployment.ConnectionDefDescriptor; 37 import com.sun.enterprise.deployment.OutboundResourceAdapter; 38 import com.sun.enterprise.tools.verifier.tests.*; 39 import java.util.Iterator ; 40 import java.util.Set ; 41 42 50 public class CheckConnectionImplClass 51 extends ConnectorTest 52 implements ConnectorCheck 53 { 54 55 64 public Result check(ConnectorDescriptor descriptor) { 65 66 Result result = getInitializedResult(); 67 ComponentNameConstructor compName = 68 getVerifierContext().getComponentNameConstructor(); 69 if(!descriptor.getOutBoundDefined()) 71 { 72 result.addNaDetails(smh.getLocalString 73 ("tests.componentNameConstructor", 74 "For [ {0} ]", 75 new Object [] {compName.toString()})); 76 result.notApplicable(smh.getLocalString 77 ("com.sun.enterprise.tools.verifier.tests.connector.managed.notApplicableForInboundRA", 78 "Resource Adapter does not provide outbound communication")); 79 return result; 80 } 81 OutboundResourceAdapter outboundRA = 82 descriptor.getOutboundResourceAdapter(); 83 if(outboundRA == null) 84 { 85 return null; 86 } 87 boolean oneFailed = false; 88 Set connDefs = outboundRA.getConnectionDefs(); 89 Iterator iter = connDefs.iterator(); 90 while(iter.hasNext()) 91 { 92 ConnectionDefDescriptor connDefDesc = (ConnectionDefDescriptor) 93 iter.next(); 94 String connectionInterface = connDefDesc.getConnectionIntf(); 95 String connectionImpl = connDefDesc.getConnectionImpl(); 96 Class implClass = null; 97 try 98 { 99 implClass = Class.forName(connectionImpl, false, getVerifierContext().getClassLoader()); 100 } 101 catch(ClassNotFoundException e) 102 { 103 result.addErrorDetails(smh.getLocalString 104 ("tests.componentNameConstructor", 105 "For [ {0} ]", 106 new Object [] {compName.toString()})); 107 result.failed(smh.getLocalString 108 (getClass().getName() + ".nonexist", 109 "Error: The class [ {0} ] as defined under connection-impl-class in the deployment descriptor does not exist", 110 new Object [] {connectionImpl})); 111 return result; 112 } 113 if(!isImplementorOf(implClass, connectionInterface)) 114 { 115 oneFailed = true; 116 result.addErrorDetails(smh.getLocalString 117 ("tests.componentNameConstructor", 118 "For [ {0} ]", 119 new Object [] {compName.toString()})); 120 result.failed(smh.getLocalString(getClass().getName() + ".failed", 121 "Error: connection-impl-class [ {0} ] does not implement connection-interface [ {1} ].", 122 new Object [] {implClass.getName(), connectionInterface})); 123 return result; 124 } 125 } 126 if(!oneFailed) 127 { 128 result.addGoodDetails(smh.getLocalString 129 ("tests.componentNameConstructor", 130 "For [ {0} ]", 131 new Object [] {compName.toString()})); 132 result.passed(smh.getLocalString(getClass().getName() + ".passed", 133 "Success: all connection-impl-class implement their corresponding connection-interface")); 134 } 135 return result; 136 } 137 } 138 | Popular Tags |