Hi Valentin,

thanks for the response. I will try out the BeanProcessor stuff and
come back to you.. At the end maybe I can contribute something back ;)

BTW, would it be possible to publish the javadocs online ?

Bye,
Norman


2010/6/18 Valentin Mahrwald <[email protected]>:
> Hi Norman,
>
> that sounds like quite a tall order :) Especially, ordering configuration and 
> JSR250 (or blueprint) lifecycle callbacks sounds like something blueprint is 
> unlikely to support out of the box.
>
> By the sounds of it for the level of control you want, you might want to use 
> the org.apache.aries.blueprint.BeanProcessor extension point. This allows you 
> to intercept beans during creation where you could the instanceof checks 
> against LogEnabled and Configurable as well as look at annotations (assuming 
> no other BeanProcessor proxied the bean previously).
>
> Now, the BeanProcessor is on the far end of supported extensions in that it 
> is more likely to change or be completely redesigned :)
>
> Regards,
>
> Valentin
>
>
>
> On 18 Jun 2010, at 18:20, Norman Maurer wrote:
>
>> Hi Lin,
>>
>> not exactly. I want to implement 3 things..
>>
>> 1) LogEnabled.
>> Every component which is instanced by aries should get checked if it
>> implement LogEnabled. If so it has a setLog(Log logger) method which
>> should get called to inject a Log instance
>>
>> 2) Configurable.
>> Every component which is instanced by aries should get checked if it
>> implement Configurable. If so it need to get the "right" configuration
>> passed to its configure(HierachicalConfiguration config) methd.
>>
>> 3) JSR250
>> Check if the component which is instanced by aries has
>> @Resource(name="example"), @PostConstruct, @PreDestroy annotations on
>> methods. If so inject the service with name example to the setter.
>> Then call method which is annotated by @PostConstruct.  On shutdown /
>> undeploy etc the method annoted with @PreDestroy should get called.
>>
>> I need to be sure that it is handled in the right order.
>>
>> LogEnabled, Configurable, JSR250
>>
>> Hope its now clear what I want todo :)
>>
>> Thx,
>> Norman
>>
>>
>>
>> 2010/6/18 Lin Sun <[email protected]>:
>>> Hi
>>>
>>> Aries already has this bean Interceptor concept that allows you to
>>> specify precall before the method is invoked and specify postCall
>>> after the method is invoked, see the Interceptor interface.
>>>
>>> Aries also has an example in transaction-blueprint project where it
>>> specifies a custom name space for transaction blueprint and allow
>>> users to intercept attribute with certain transaction attribute on
>>> bean method invocations.
>>>
>>> for example -
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
>>>    xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0";>
>>>     <bean id="TestBeanImpl" class="org.apache.aries.simple.TestBeanImpl">
>>>        <tx:transaction method="insertRow" value="required"/>
>>>     </bean>
>>>
>>> </blueprint>
>>>
>>> basically asks the blueprint container to manage required transaction
>>> attribute/strategy on insertRow method invocation.
>>>
>>> Is this similar as what you want to do, except you want to do it with 
>>> logging?
>>>
>>> HTH
>>>
>>> Lin
>>>
>>>
>>> On Fri, Jun 18, 2010 at 12:19 PM, Norman Maurer <[email protected]> wrote:
>>>> Hi all,
>>>>
>>>> I'm very new to Aries and wonder if its possible to add some kind of
>>>> "PostBeanProcessor" (this is how it get called in spring). We at JAMES
>>>> use spring at the moment to wire up our application as standalone
>>>> application. Now we are working on "osgify" JAMES. We need to
>>>> implement some kind of lifecycle methods. For example if a "service"
>>>> implements LogEnabled interface it need to get a Log injected. The
>>>> same is true for other dependencies.. We use JSR250 annotations, so we
>>>> would need to handle this kind of stuff. I did some tests with
>>>> spring-dm the last weeks and it seems to work but aries looks very
>>>> interesting too.
>>>>
>>>> You know, Eat your own dogfood ;)
>>>>
>>>>
>>>> Thx,
>>>> Norman
>>>>
>>>
>
>

Reply via email to