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 >>>>>> >>>>> >>> >>> >> >
