X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fspring%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fspring%2FSpringComponent.java;h=d0abbcd173b8f20152744cac6b4b35df1cd94f53;hb=d67dfdb9198fbe3bb9034cd1d9f4a9870618d2b6;hp=1da30a324ed53c4c9812306669e2adc287b5b6a8;hpb=d67a117843d23eaf7b44f5c048d3fdee9310b2a1;p=utils diff --git a/system/spring/src/main/java/org/wamblee/system/spring/SpringComponent.java b/system/spring/src/main/java/org/wamblee/system/spring/SpringComponent.java index 1da30a32..d0abbcd1 100644 --- a/system/spring/src/main/java/org/wamblee/system/spring/SpringComponent.java +++ b/system/spring/src/main/java/org/wamblee/system/spring/SpringComponent.java @@ -15,6 +15,7 @@ */ package org.wamblee.system.spring; +import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -49,6 +50,7 @@ public class SpringComponent extends AbstractComponent { private String[] _configFiles; private Map _provided; private Map _required; + private Map _propertyObjects; /** * Constructs a spring system. @@ -75,6 +77,8 @@ public class SpringComponent extends AbstractComponent { _configFiles = aConfigFiles; _provided = aProvided; _required = aRequired; + _propertyObjects = new HashMap(); + } /** @@ -94,6 +98,14 @@ public class SpringComponent extends AbstractComponent { setProperty((String) key, aProperties.getProperty((String) key)); } } + + public void addProperties(String aBeanname, Properties aProperties) { + _propertyObjects.put(aBeanname, aProperties); + } + + public Properties getProperties(String aBeanname) { + return _propertyObjects.get(aBeanname); + } @Override protected Scope doStart(Scope aExternalScope) { @@ -107,6 +119,7 @@ public class SpringComponent extends AbstractComponent { GenericApplicationContext parentContext = new GenericApplicationContext(); registerRequiredServices(parentContext); + registerPropertyObjects(parentContext); parentContext.refresh(); @@ -164,6 +177,18 @@ public class SpringComponent extends AbstractComponent { aParentContext.registerBeanDefinition(beanName, definition); } } + + private void registerPropertyObjects(GenericApplicationContext aParentContext) { + for (String beanName: _propertyObjects.keySet()) { + ConstructorArgumentValues cargs = new ConstructorArgumentValues(); + cargs.addGenericArgumentValue(PropertySetter.createPropertyFile(_propertyObjects.get(beanName))); + BeanDefinition definition = new RootBeanDefinition( + ConfiguredProperties.class, cargs, + new MutablePropertyValues()); + aParentContext.registerBeanDefinition(beanName, definition); + } + } + @Override protected void doStop(Scope aRuntime) {