sure.. I will have a look and come back to you later again..

Bye,
Norman

2010/6/18 Lin Sun <[email protected]>:
> Sure.  The annotation work in blueprint is at very early stage.  We
> are collecting inputs and requirement from community.
>
> The existing work we have is based on standardized blueprint container
> spec, but we do want to use common annotation specs that are already
> defined if possible (like jsr 250 or 330, etc).
>
> And if possible, I'd like to keep anything add on to the standardized
> blueprint container as optional project/packages, in case people don't
> want it, which is where all blueprint annotation related projects are.
>
> Lin
>
> On Fri, Jun 18, 2010 at 2:16 PM, Norman Maurer <[email protected]> wrote:
>> I think I could write a jsr250 BeanProcessor by myself.. Are you
>> interested in such a contribution ?
>>
>> Thx,
>> Norman
>>
>>
>> 2010/6/18 Lin Sun <[email protected]>:
>>> Hi Norma
>>>
>>> Yep I agree with Valentin that I don't think the standardized
>>> blueprint container spec provides what you want.
>>>
>>> Regarding annotation, I have done some limited work on it, but it is
>>> mostly based on the blueprint XML definition file.  What you are
>>> attempting to do isn't configurable from the configuration of
>>> blueprint XML file.
>>>
>>> Lin
>>>
>>> On Fri, Jun 18, 2010 at 1:49 PM, Norman Maurer <[email protected]> wrote:
>>>> 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