Properties names defined in the resource adapter config-propery should
be of an acceptable type
boolean oneFailed = false;
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
//Set properties = descriptor.getConfigProperties();
ConnectionDefDescriptor desc = descriptor.getConnectionDefinitionByCFType(null, true);
Set properties = desc.getConfigProperties();
if (properties.size()!=0) {
Iterator iterator = properties.iterator();
// let's add the propery name
// HashSet hs = new HashSet();
while (iterator.hasNext()) {
EnvironmentProperty ep = (EnvironmentProperty) iterator.next();
String type = ep.getType();
if (type == null) {
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString(getClass().getName() + ".notdefined",
"Error: The configuration property named [ {0} ] has no type ",
new Object[] {ep.getName()}));
return result;
}
Class typeClass = null;
// is it loadable ?
try {
typeClass = Class.forName(type);
} catch (Throwable t) {
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString(getClass().getName() + ".nonexist",
"Error: The type [ {0} ] of the configuration property named [ {1} ] cannot be loaded",
new Object[] {ep.getType(), ep.getName()}));
return result;
}
boolean allowedType = false;
for (int i = 0; i < allowedTypes.length; i++) {
if (allowedTypes[i].equals(typeClass)) {
allowedType = true;
break;
}
}
if (!allowedType) {
oneFailed = true;
result.addErrorDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.failed(smh.getLocalString(getClass().getName() + ".failed",
"Error: The type [ {0} ] for the configuration property named [ {1} ] is not allowed",
new Object[] {ep.getType(), ep.getName()}));
return result;
}
}
// for failure, result has been set before
if (!oneFailed) {
result.addGoodDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.passed(smh.getLocalString(getClass().getName() + ".passed",
"Success: all properties have an allowed type"));
}
} else {
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable",
"Not Applicable: There are no config-property element defined" ));
}
return result;