[weld-dev] How to skip CDI injection if a property is not configured in batch application?

Jozef Hartinger jharting at redhat.com
Mon Mar 9 02:25:36 EDT 2015


Adding weld-dev.

Hi Cheng,

by defining a producer method you are basically saying "I am able to 
supply an object for this given type/qualifier combination". There is 
not way to opt out of it at runtime. Are you concerned about the JVM 
default values or the default values a user has provided?

Jozef

On 03/07/2015 05:54 PM, Cheng Fang wrote:
> Hi Jozef,
>
> I'm having a question in using CDI injection in project JBeret (batch 
> impl project), and would appreciate any help from you.
>
> A batch application (in Java SE or EE) can inject configured batch 
> properties into batch artifact classes:
>
> @Inject
> @javax.batch.api.BatchProperty(name = "batchPropName")
> String batchPropName = "default name";
>
> The property value comes from job.xml, which is the batch job 
> definition descriptor file:
>
> <batchlet ref="batchlet1">
>         <properties>
>                <property name="batchPropName" value="configured name"/>
>         </properties>
> ...
>
> When "batchPropName" property is not configured in job.xml, the 
> injection should not happen, and whatever java default field value 
> should be preserved for batchPropName field.
>
> With our current batch CDI extension [1] and producer bean [2], it 
> injects a null value into this field, overwriting the java default 
> value, when the target batch property is not present.
>
> How to signal to Weld to skip performing the injection for those 
> injection targets?  Ideally, I hope it can be done from within 
> producer methods, which is the place we retrieve batch properties and 
> know whether they exist or not.
>
> I think this is also how Java EE field injection works.  How do we 
> handle it in EE, and is it something I can mirror?
>
> Thanks,
> Cheng
>
> [1] 
> https://github.com/jberet/jsr352/blob/master/jberet-core/src/main/java/org/jberet/creation/BatchCDIExtension.java
>
> [2] 
> https://github.com/jberet/jsr352/blob/master/jberet-core/src/main/java/org/jberet/creation/BatchBeanProducer.java
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20150309/f28bb04d/attachment.html 


More information about the weld-dev mailing list