1 23 28 29 package com.sun.enterprise.tools.verifier.tests.connector; 30 31 import java.util.*; 32 import com.sun.enterprise.deployment.ConnectorDescriptor; 33 import com.sun.enterprise.tools.verifier.tests.*; 34 import com.sun.enterprise.deployment.EnvironmentProperty; 35 import com.sun.enterprise.deployment.ConnectionDefDescriptor; 36 import com.sun.enterprise.tools.verifier.Result; 37 44 public class CheckConfigPropertyType extends ConnectorTest implements ConnectorCheck { 45 46 49 private static Class [] allowedTypes = { 50 java.lang.String .class, 51 java.lang.Boolean .class, 52 java.lang.Integer .class, 53 java.lang.Double .class, 54 java.lang.Byte .class, 55 java.lang.Short .class, 56 java.lang.Long .class, 57 java.lang.Float .class, 58 java.lang.Character .class, 59 }; 60 61 70 public Result check(ConnectorDescriptor descriptor) { 71 72 boolean oneFailed = false; 73 74 Result result = getInitializedResult(); 75 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 76 ConnectionDefDescriptor desc = descriptor.getConnectionDefinitionByCFType(null, true); 78 Set properties = desc.getConfigProperties(); 79 if (properties.size()!=0) { 80 Iterator iterator = properties.iterator(); 81 while (iterator.hasNext()) { 84 EnvironmentProperty ep = (EnvironmentProperty) iterator.next(); 85 String type = ep.getType(); 86 if (type == null) { 87 result.addErrorDetails(smh.getLocalString 88 ("tests.componentNameConstructor", 89 "For [ {0} ]", 90 new Object [] {compName.toString()})); 91 result.failed(smh.getLocalString(getClass().getName() + ".notdefined", 92 "Error: The configuration property named [ {0} ] has no type ", 93 new Object [] {ep.getName()})); 94 return result; 95 } 96 Class typeClass = null; 97 try { 99 typeClass = Class.forName(type); 100 } catch (Throwable t) { 101 result.addErrorDetails(smh.getLocalString 102 ("tests.componentNameConstructor", 103 "For [ {0} ]", 104 new Object [] {compName.toString()})); 105 result.failed(smh.getLocalString(getClass().getName() + ".nonexist", 106 "Error: The type [ {0} ] of the configuration property named [ {1} ] cannot be loaded", 107 new Object [] {ep.getType(), ep.getName()})); 108 return result; 109 } 110 boolean allowedType = false; 111 for (int i = 0; i < allowedTypes.length; i++) { 112 if (allowedTypes[i].equals(typeClass)) { 113 allowedType = true; 114 break; 115 } 116 } 117 if (!allowedType) { 118 oneFailed = true; 119 result.addErrorDetails(smh.getLocalString 120 ("tests.componentNameConstructor", 121 "For [ {0} ]", 122 new Object [] {compName.toString()})); 123 result.failed(smh.getLocalString(getClass().getName() + ".failed", 124 "Error: The type [ {0} ] for the configuration property named [ {1} ] is not allowed", 125 new Object [] {ep.getType(), ep.getName()})); 126 return result; 127 } 128 } 129 if (!oneFailed) { 131 result.addGoodDetails(smh.getLocalString 132 ("tests.componentNameConstructor", 133 "For [ {0} ]", 134 new Object [] {compName.toString()})); 135 result.passed(smh.getLocalString(getClass().getName() + ".passed", 136 "Success: all properties have an allowed type")); 137 138 } 139 } else { 140 result.addNaDetails(smh.getLocalString 141 ("tests.componentNameConstructor", 142 "For [ {0} ]", 143 new Object [] {compName.toString()})); 144 result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable", 145 "Not Applicable: There are no config-property element defined" )); 146 147 } 148 return result; 149 } 150 } 151 | Popular Tags |