Short update on the current status:

I rethought how to provide a good transition for users of Aries transaction 1.x and jpa 1.x. My old plan was to use the same namespace uri for transaction 2 as for the old one and just ignore the xml Elements besides enable-annotations. While this is convenient as you do not need to change user code it means that you need to change all you modules in a big bang.

So instead I now plan to use a new namespace uri 2.0.0 with just the enable element like in jpa. The downside is that the user will have to adapt the xml. The good thing though is that he can simply install transaction blueprint 1.x and 2.0 modules in parallel so both namespaces work. This should allow projects to migrate gradually.

I also added this to the maven bundle plugin. You can now give it a list of namespace URIs to support. It will then create xml that is compatible to the listed namespaces. It will default to the jpa 2 and transaction 2 namespaces but you can also set it to the old ones.

The currently supported namespaces are:
"http://aries.apache.org/xmlns/jpa/v1.1.0"; -> jpa support exported as xml
"http://aries.apache.org/xmlns/jpa/v2.0.0"; -> jpa support based on annotations "http://aries.apache.org/xmlns/transactions/v1.2.0"; -> transactions exported as xml "http://aries.apache.org/xmlns/transactions/v2.0.0"; -> transactions based on annotations

In the future I plan a plugin model for the xml generation like in blueprint namespaces. So for example CXF could implement a plugin to generate CXF blueprint xml from specific CXF annotations. The idea is to activate the plugins based on the listed namespaces I introduce with this version.

As this is a conceptual change I will delay the releases at least until tomorrow and will only release if there is no negative feedback from the community.

Christian

On 20.09.2015 12:38, Christian Schneider wrote:
I would like to do a release build of the above modules tomorrow.

For the blueprint-maven-plugin I will try to get in one more bug fix.

jpa and blueprint-maven-plugin are only small enhancements and bug fixes.

The most noteable change in jpa is to use a ComponentDefinitionRegistryProcessor instead of a BeanProcessor. This allowed to register all service references as ordinary blueprint service references. So the user bundle now correctly goes into graceperiod when for example the EntityManagerFactory is missing. So the use will have a much better feedback what is blocking the start. Before we were just starting and eventually failing after the first call.

Transaction.blueprint is a big redesign based on only using the @Transactional annotations. This allowed the code to be greatly simplified. The old proprietary annotations as well as the xml description are not supported anymore. The xml elements are still allowed though so code produced by the blueprint-maven-plugin does not fail. The transition for users is to first convert to @Transactional which works with 1.1.1 as well as 2.0.0 and then upgrade the transaction.blueprint bundle. Also note that the @Transactional annotation also works on the class level which makes the transition quite a lot easier than adding it to all methods.

Here are the jira versions:
blueprint-maven-plugin-1.2.0: https://issues.apache.org/jira/browse/ARIES/fixforversion/12329703 jpa-2.2.0: https://issues.apache.org/jira/browse/ARIES/fixforversion/12333252 transaction-blueprint-2.0.0: https://issues.apache.org/jira/browse/ARIES/fixforversion/12333578

Christian



--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to