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