...
Code Block |
---|
protected static GenericBeanDefinition createModuleBeanDefinition(String className, Object params, String role){ GenericBeanDefinition result = new GenericBeanDefinition(); result.setScope(BeanDefinition.SCOPE_SINGLETON); result.setBeanClassName(className); result.setAttribute("id", role); result.setAttribute("name", role); result.setAttribute("init-method", "initModule"); result.setAttribute("destroy-method", "shutdownModule"); result.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR); result.setParentName(Module.class.getName()); ConstructorArgumentValues cArgs = new ConstructorArgumentValues(); cArgs.addIndexedArgumentValue(0, params,MODULE_CONSTRUCTOR_PARAM1_CLASS); //BeanReference theserverRef server= constructornew arg (index 1) is autowired with the Server bean in contextRuntimeBeanReference(MODULE_CONSTRUCTOR_PARAM2_CLASS); cArgs.addIndexedArgumentValue(1, serverRef); cArgs.addIndexedArgumentValue(2, role,MODULE_CONSTRUCTOR_PARAM3_CLASS); result.setConstructorArgumentValues(cArgs); return result; } protected static GenericBeanDefinition createModuleConfigurationBeanDefinition(String role){ GenericBeanDefinition result = new GenericBeanDefinition(); result.setScope(BeanDefinition.SCOPE_SINGLETON); result.setBeanClassName(ModuleConfiguration.class.getName()); String name = role+"Configuration"; result.setAttribute("id", name); result.setAttribute("name", name); result.setFactoryBeanName(ServerConfiguration.class.getName()); result.setFactoryMethodName("getModuleConfiguration"); ConstructorArgumentValues cArgs = new ConstructorArgumentValues(); cArgs.addGenericArgumentValue(role); result.setConstructorArgumentValues(cArgs); return result; } protected static GenericBeanDefinition createDatastoreConfigurationBeanDefinition(String id){ GenericBeanDefinition result = new GenericBeanDefinition(); result.setScope(BeanDefinition.SCOPE_SINGLETON); result.setBeanClassName(DatastoreConfiguration.class.getName()); result.setAttribute("id", id); result.setAttribute("name", id); result.setFactoryBeanName(ServerConfiguration.class.getName()); result.setFactoryMethodName("getDatastoreConfiguration"); ConstructorArgumentValues cArgs = new ConstructorArgumentValues(); cArgs.addGenericArgumentValue(id); result.setConstructorArgumentValues(cArgs); return result; } |
...
Code Block |
---|
@Override
protected void registerBeanDefinitions()
throws ServerInitializationException{
for (String rebuilder:REBUILDERS){
try{
ScannedGenericBeanDefinition beanDefinition =
Server.getScannedBeanDefinition(rebuilder);
beanDefinition.setAutowireCandidate(true);
beanDefinition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_NAME);
beanDefinition.setAttribute("id", rebuilder);
beanDefinition.setAttribute("name", rebuilder);
beanDefinition.setScope(BeanDefinition.SCOPE_SINGLETON);
registerBeanDefinition(rebuilder, beanDefinition);
}
catch (IOException e){
throw new ServerInitializationException(e.toString(),e);
}
}
}
|
...