Jason Dillon wrote:
> What is the value for name you are using?
In my test code "java.lang.Object[]"
> Why not just use Class.class?
Because I am trying to load a parameter type from an xml file that
just has the string name of the type.
> Or if you really want to use Class.forName to load Class, then you
> should be able to use the system class loader.
>
> Is this after yesterdays Server/ServerLoader change?
No new feature. Class.forName docs say you can load arrays but it is
broken. Here is the code I use now:
private Class convertToJavaClass(String name) throws DeploymentException {
// Check primitive first
for (int i = 0; i < PRIMITIVES.length; i++) {
if(name.equals(PRIMITIVES[i])) {
return PRIMITIVE_CLASSES[i];
}
}
int arraySize = 0;
while(name.endsWith("[]")) {
name = name.substring(0, name.length()-2);
arraySize++;
}
try {
// get the base class
Class c = entity.getClassLoader().loadClass(name);
// if we have an array get the array class
if(arraySize > 0) {
int[] dimensions = new int[arraySize];
for(int i=0; i<arraySize; i++) {
dimensions[i]=1;
}
c = Array.newInstance(c, dimensions).getClass();
}
return c;
} catch(ClassNotFoundException e) {
throw new DeploymentException("Parameter class not found: " +
name);
}
}
This is lame but works.
-dain
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development