X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fant%2FAbstractSpringArg.java;h=2e2f3dfefa03d4fab28bd01eb9d19a417ec1362b;hb=5114616a3c3bf70c16107ff915f50069a46b930b;hp=fac2945925ca66be4bb8687b0e6f7abf11b6274f;hpb=123aaa6a30ac0b5c5d2c176c3c6cc503548041e1;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/ant/AbstractSpringArg.java b/org.argeo.slc/src/main/java/org/argeo/slc/ant/AbstractSpringArg.java index fac294592..2e2f3dfef 100644 --- a/org.argeo.slc/src/main/java/org/argeo/slc/ant/AbstractSpringArg.java +++ b/org.argeo.slc/src/main/java/org/argeo/slc/ant/AbstractSpringArg.java @@ -1,8 +1,16 @@ package org.argeo.slc.ant; +import java.util.List; +import java.util.Vector; + +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; import org.springframework.context.ApplicationContext; +import org.apache.tools.ant.BuildException; + public abstract class AbstractSpringArg { + private List overrides = new Vector(); private String bean; private ApplicationContext context; @@ -14,14 +22,26 @@ public abstract class AbstractSpringArg { public void setBean(String bean) { this.bean = bean; } - - protected Object getBeanInstance(){ - return context.getBean(bean); + + protected Object getBeanInstance() { + Object obj = context.getBean(bean); + + BeanWrapper wrapper = new BeanWrapperImpl(obj); + for (OverrideArg override : overrides) { + wrapper.setPropertyValue(override.getName(), override.getObject()); + } + + return obj; } public void setContext(ApplicationContext context) { this.context = context; } - - + + public OverrideArg createOverride() { + OverrideArg propertyArg = new OverrideArg(); + propertyArg.setContext(context); + overrides.add(propertyArg); + return propertyArg; + } }