}
}
private Configurator getConfigurator(Config configObject, ClassLoader deploymentClassLoader)
throws ClassNotFoundException, DeploymentException {
Configurator configurator = new Configurator();
if (configObject.getExtensionClasses() != null) {
String[] extensionClasses = configObject.getExtensionClasses().getExtensionClass();
if (extensionClasses != null) {
Class extensionClass;
for (int i = 0; i < extensionClasses.length; i++) {
extensionClass = Loader.loadClass(deploymentClassLoader, extensionClasses[i]);
configurator.addExtension(extensionClass);
}
}
}
if (configObject.getPackageToNamespaceMapings() != null) {
PackageToNamespaceMap[] packageToNamespaceMapings =
configObject.getPackageToNamespaceMapings().getPackageToNamespaceMap();
if (packageToNamespaceMapings != null) {
for (int i = 0; i < packageToNamespaceMapings.length; i++) {
configurator.addPackageToNamespaceMaping(packageToNamespaceMapings[i].getPackageName(),
packageToNamespaceMapings[i].getNamespace());
}
}
}
// set the simple type data handler if it is set
if ((configObject.getSimpleDataHandlerClass() != null)
&& (configObject.getSimpleDataHandlerClass().trim().length() > 0)){
Class simpleTypeHandlerClass =
Loader.loadClass(deploymentClassLoader,configObject.getSimpleDataHandlerClass());
try {
SimpleTypeHandler simpleTypeHandler = (SimpleTypeHandler) simpleTypeHandlerClass.newInstance();
configurator.setSimpleTypeHandler(simpleTypeHandler);
} catch (InstantiationException e) {
throw new DeploymentException("Can not instantiate simple type handler",e);
} catch (IllegalAccessException e) {
throw new DeploymentException("Can not instantiate simple type handler",e);
}
}
// setting the custom class info
ClassInfo[] classInfos = null;
FieldInfo[] filsInfos = null;
org.apache.axis2.rmi.config.ClassInfo classInfo;
Class customClass = null;
if (configObject.getCustomClassInfo() != null) {
CustomClassInfo customClassInfo = configObject.getCustomClassInfo();
if ((customClassInfo.getClassInfo() != null) && (customClassInfo.getClassInfo().length > 0)) {
classInfos = customClassInfo.getClassInfo();
for (int i = 0; i < classInfos.length; i++) {
if ((classInfos[i].getFieldInfo() != null) &&
(classInfos[i].getFieldInfo().length > 0)){
customClass = Loader.loadClass(deploymentClassLoader,classInfos[i].getClassName());
classInfo = new org.apache.axis2.rmi.config.ClassInfo(customClass);
filsInfos = classInfos[i].getFieldInfo();
for (int j = 0; j < filsInfos.length; j++) {
classInfo.addFieldInfo(
new org.apache.axis2.rmi.config.FieldInfo(
filsInfos[j].getJavaName(),
filsInfos[j].getXmlName(),
filsInfos[j].isElement()));
}
configurator.addClassInfo(classInfo);
}
}
}
}
return configurator;