Hey,
So far I managed  to make it working without additional namespace. Because 
activiti ProcessEngineConfiguration always returns a own instance I was able to 
use ext:field-injection to complete this task. 

Many thanks for support,
Best regards,
Lukasz

> Timothy,
> That's looks really good! I'll try do something myself, to reach this. If I 
> will meet problems then will post a message to dev@.
> 
> Best regards,
> Lukasz
> 
> 
>> All contributions are welcome!
>> 
>> I would imagine that the most practical approach would be to add a new 
>> namespace handler called fluent, builder or similar. This could be provided 
>> as a new bundle in the blueprint project.
>> 
>> Adding some XML along the lines of the following to your blueprint:
>> 
>> <bean class="builderClass" fluent:begin-method="getConfigurable" 
>> fluent:end-method="create">
>> 
>>   <argument>2</argument>
>> 
>>   <fluent:configure method="setJDBCURL" value="someValue"/>
>>   <fluent:configure method="autoCommit">
>>       <value>true</value>
>>   <fluent:configure method="addListener" ref="someBeanId"/>
>> </bean>
>> 
>> 
>> could result in a configured bean using a fluent API like
>> 
>> builderClass.getConfigurable(2).setJDBCURL("someValue").autoCommit(true).addListener(blueprintBean).create();
>> 
>> Under the covers the namespace handler can turn the bean metadata into a 
>> "normal" blueprint metadata tree like the really verbose XML I gave as an 
>> example before.
>> 
>> What do you think?
>> 
>> Regards,
>> 
>> Tim Ward
>> -------------------
>> Apache Aries PMC member & Enterprise OSGi advocate
>> Enterprise OSGi in Action (http://www.manning.com/cummins)
>> -------------------
>> 
>> 
>> From: [email protected]
>> Subject: Re: Aries and fluent builders
>> Date: Thu, 15 Dec 2011 09:42:40 +0100
>> To: [email protected]
>> 
>> Timothy,
>> If you could give an advice where to start, I can experiment. Maybe we can 
>> add an attribute from additional namespace (aries-util?) which will mark an 
>> field as non standard java bean and let inject given value? But, it is 
>> possible to extend a <property> behavior somehow?
>> 
>> Regards,
>> Lukasz
>> 
>> We could look at adding some better fluent support in Aries blueprint 
>> (although it would be in a non-standard namespace). It might be a while 
>> before there was anything actually in trunk though.
>> 
>> Regards
>> 
>> Tim Ward
>> -------------------
>> Apache Aries PMC member & Enterprise OSGi advocate
>> Enterprise OSGi in Action (http://www.manning.com/cummins)
>> -------------------
>> 
>> 
>> From: [email protected]
>> Subject: Re: Aries and fluent builders
>> Date: Thu, 15 Dec 2011 09:26:37 +0100
>> To: [email protected]
>> 
>> Hey Timothy,
>> I know that solution proposed by you will work but it will mess a XML. Once 
>> I'll need to inject more values I will have 100 lines only to put true or 
>> false in some fields.
>> 
>> Regards,
>> Lukasz
>> 
>> 
>> Hi,
>> 
>> It's not very concise, but this should work:
>> 
>>     <bean id="processEngineConfiguration1" 
>> class="org.activiti.engine.ProcessEngineConfiguration" 
>> factory-method="createStandaloneInMemProcessEngineConfiguration"/>
>> 
>>     <bean id="processEngineConfiguration2" 
>> factory-ref="processEngineConfiguration1" 
>> factory-method="setDatabaseSchemaUpdate">
>>       <argument value="false"/>
>>     </bean>
>> 
>>     <bean id="processEngineConfiguration3" 
>> factory-ref="processEngineConfiguration2" factory-method="setDataSource">
>>       <argument>
>>         <bean class="org.h2.jdbcx.JdbcDataSource">
>>           <property name="url" value="jdbc:h2:mem:activiti" />
>>         </bean>
>>       </argument>
>>     </bean>
>> 
>>     <bean id="processEngineConfiguration4" 
>> factory-ref="processEngineConfiguration3" 
>> factory-method="setJobExecutorActivate">
>>       <argument value="true"/>
>>     </bean>
>> 
>> 
>>     <bean id="processEngine" factory-ref="processEngineConfiguration4" 
>> factory-method="buildProcessEngine"/>
>> 
>> If you're interested in more information about advanced blueprint techniques 
>> then you may find Enterprise OSGi in Action to be a useful resource. You can 
>> get 37% off if you use the code eosgi37 at the Manning website - 
>> http://www.manning.com/cummins 
>> 
>> Regards,
>> 
>> Tim Ward
>> -------------------
>> Apache Aries PMC member & Enterprise OSGi advocate
>> Enterprise OSGi in Action (http://www.manning.com/cummins)
>> -------------------
>> 
>> 
>> From: [email protected]
>> Subject: Aries and fluent builders
>> Date: Thu, 15 Dec 2011 08:58:47 +0100
>> To: [email protected]
>> 
>> Hello,
>> I tried to use Aries instead of Spring to configure Activiti process engine. 
>> The problem I meet was related to fluent builders. Activiti can be 
>> configured with fluent builder, for example:
>> 
>> ProcessEngine processEngine = 
>> ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
>>   .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE)
>>   .setJdbcUrl("jdbc:h2:mem:my-own-db;DB_CLOSE_DELAY=1000")
>>   .setJobExecutorActivate(true)
>>   .buildProcessEngine();
>> 
>> I ported this fragment to an XML fragment:
>> 
>>     <bean id="processEngineConfiguration" 
>> class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
>>         <property name="jobExecutorActivate" value="true" />
>>         <property name="databaseSchemaUpdate" value="false" />
>>         <property name="dataSource">
>>             <bean class="org.h2.jdbcx.JdbcDataSource">
>>                 <property name="url" value="jdbc:h2:mem:activiti" />
>>             </bean>
>>         </property>
>>     </bean>
>>     <bean id="processEngine" factory-ref="processEngineConfiguration" 
>> factory-method="buildProcessEngine">
>>     </bean>
>> 
>> The error reported by blueprint is:
>> org.osgi.service.blueprint.container.ComponentDefinitionException: No setter 
>> for jobExecutorActivate property
>> 
>> The jobExecutorActivate property returns an instance of 
>> ProcessEngineConfiguration so it is not a regular Java Bean property. Do you 
>> have any ideas how to manage both - Aries and Activiti to work together?
>> 
>> Best regards,
>> Lukasz
>> 
>> 
>> 
>> 
> 

Reply via email to