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