Hi Christian, very good initiative, +1 from my side.
Regards JB On 10/17/2014 03:13 PM, Christian Schneider wrote:
I have recently created a maven plugin that generates blueprint.xml from CDI, JEE and Spring annotations. https://github.com/cschneider/blueprint-maven-plugin What makes this different from the blueprint annotations support we already got in aries? ------------------------------------------------------------------------------------------------------------------------ - The blueprint annotations follow the xml style of binding to an exact bean id. The annotations I used by default bind simply by type which is much simpler to manage and more in line with Spring @Autowired and CDI @Inject. Still they also allow to bind by name using @Named - The aries blueprint annotations are processed at runtime but create xml under the covers. My plugin on the other hand does all the work at build time. So at runtime you can install into any existing container running blueprint - no additional deps needed. - My plugin uses standard CDI/JEE annotations and where there is no standard (Services) pax cdi annoations. So people using this style can transition from and to real CDI quite easily. People with JEE background also feel at home with this style. - My plugin also supports some spring annotations like @Autowired, @Component, @Value. This allows a very fast migration from spring to blueprint. In fact I used it in a quite big customer project for that case Sample application ------------------------- I created an example application that shows how the following features: - internal wiring - container managed JPA with transactions - using and offering OSGi services https://github.com/cschneider/Karaf-Tutorial/tree/master/tasklist-cdi Here are the most important classes that show the annotations: https://github.com/cschneider/Karaf-Tutorial/blob/master/tasklist-cdi/persistence/src/main/java/net/lr/tasklist/persistence/impl/TaskServiceImpl.java https://github.com/cschneider/Karaf-Tutorial/blob/master/tasklist-cdi/ui/src/main/java/net/lr/tasklist/ui/TaskListServlet.java https://github.com/cschneider/Karaf-Tutorial/blob/master/tasklist-cdi/persistence/src/main/java/net/lr/tasklist/persistence/impl/InitHelper.java Here is the generated xml for: - persistence https://gist.github.com/cschneider/763785e3d4faed89d36b - ui https://gist.github.com/cschneider/6ef0872919299eb0b774 You can run the example easily in karaf by following the readme. What is missing ? ----------------------- Currently I only have support for binding configs from config admin by using the spring @Value annotation. Adding a similar non spring annotation would be simple but I am a bit hesitant to create my own annotations. Does anyone know existing annotations that would match? Future at aries? --------------------- I started with the plugin on github to get fast results. Now for the longer term I would like to put it into a community so there are official releases as well as hopefully contributions by others. So as blueprint lives at aries this is my first choice. The plugin is already using Apache License but of course I would have to refactor it to the aries namings and other coding standards. So what do you think? Christian
-- Jean-Baptiste Onofré [email protected] http://blog.nanthrax.net Talend - http://www.talend.com
