* @param role
* @return
*/
protected static GenericBeanDefinition createModuleBeanDefinition(String className, Map<String,String> params, String role)
throws IOException {
ScannedGenericBeanDefinition result = getScannedBeanDefinition(className);
result.setParentName(Module.class.getName());
result.setScope(BeanDefinition.SCOPE_SINGLETON);
result.setAttribute("id", role);
result.setAttribute("name", role);
result.setAttribute("init-method", "initModule");
result.setEnforceInitMethod(true);
result.setAttribute("destroy-method", "shutdownModule");
result.setEnforceDestroyMethod(true);
ConstructorArgumentValues cArgs = new ConstructorArgumentValues();
cArgs.addIndexedArgumentValue(0, params,MODULE_CONSTRUCTOR_PARAM1_CLASS);
// one server bean in context
BeanReference serverRef = new RuntimeBeanReference(MODULE_CONSTRUCTOR_PARAM2_CLASS);
cArgs.addIndexedArgumentValue(1, serverRef);
cArgs.addIndexedArgumentValue(2, role,MODULE_CONSTRUCTOR_PARAM3_CLASS);
result.setConstructorArgumentValues(cArgs);
return result;
}