aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Valentin Mahrwald <>
Subject Re: blueprint annotation prototype
Date Sat, 08 May 2010 15:54:37 GMT
Hi Lin,

the annotation code looks cool, will be well cool when blueprint xml is no longer needed.

Some comments I have (in particular order):

- how does field injection work in the current code, I couldn't see that you set the extension
attribute anywhere?

- what is the intention behind giving the scanner service service.ranking=0, I thought 0 was
the default?

- might it be better to allow the blueprint level settings (defaultActivation, defaultTimeout,
defaultAvailability) in the bundle manifest as opposed to an annotation on a random class?

- as far as I understand the FactoryMethod annotation, this annotation is going to be used
on the factory class, right? Does this mean that this only works for factory classes using
annotations (and in the same bundle), also how does this work with multiple factory methods
like java.util.concurrent.Executors?

- the Reference and ReferenceList annotations look a bit strange with an annotation target
of type because to me that suggests you can only use them if your bundle contains the interfaces
for any services you want to inject via annotations. 

What about supporting annotation like

class ServiceUser {

	private Service service;

- also the bind and unbind methods look awkward being marked as Strings in the ReferenceListener
annotation as opposed to having separate annotations like Init and Destroy? (Same for registration
listeners :)

Maybe (although that works only for annotation based reference listeners), and similarly for

class ServiceUser {

	private Service service;

class Listener {
	public void bind() { ... }

	public void unbind() { ... }

Apologies for the amount of questions ;)



On 7 May 2010, at 18:00, Lin Sun wrote:

> Hi
> I have been doing some prototype work for blueprint annotation in my
> own sandbox[1].   Currently the code builds in these orders:
> blueprint-annotation-api, blueprint-annotation-impl and
> blueprint-sample-annotation, blueprint-annotation-itest.  However the
> itest only run successfully on my local machine, since I also have
> some uncommitted code on my local machine that modifies the blueprint
> core a bit to scan blueprint annotation for bundles that have the
> Bundle-Blueprint-Annotation header to true.  I intend to move the
> sandbox code to trunk if there is no objection, so that I can commit
> my change to blueprint core without breaking the aries build.   I have
> coded to do runtime annotation scanning only but supporting build time
> generation of blueprint definition XML from annotation should be
> possible.
> The blueprint-annotation-api contains some of the basic annotations I
> am proposing, such as @Bean, @Service, @Reference, @ReferenceList,
> @Inject, etc.
> The blueprint-annotation-impl contains a bunch of generated and
> slightly modified jaxb files along with some code to scan annotations
> and write the generated blueprint definition to a URL location, using
> xbean-finder.
> The blueprint-sample-annotation contains an example of how these
> annotations can be used in the sample.
> Comments welcome!
> Thanks
> Lin
> [1]

View raw message