@Transactional annotation / atlassian spring scanner?

There is a section in


describing how to set up a spring BeanPostProcessor wrapping all components having a @Transactional annotation with a TX-Proxy.

Is there a similar construct to do that stuff with Atlassian Spring Scanner?



   name="Transactional Annotation Processor" 
  <decription>Processes @Transactional annotations.</decription>


public interface TestStepService {
 TestStep findById(int testStepId);
 TestStep updateTestStep(TestStep testStep)


2 answers

1 accepted

(1) Remove any ComponentImport annotations from ActiveObjects

// AO is imported via META-INF/spring/plugin-context.xml
// @ComponentImport
com.atlassian.activeobjects.external.ActiveObjects ao;

(2) Configure TransactionalAnnotationProcessor in META-INF/spring/plugin-context.xml descriptor

http://www.atlassian.com/schema/atlassian-scanner http://www.atlassian.com/schema/atlassian-scanner/atlassian-scanner.xsd
http://www.eclipse.org/gemini/blueprint/schema/blueprint http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd">
<osgi:reference id="ao_osgi">
<beans:bean id="tx-processor" class="com.atlassian.activeobjects.external.TransactionalAnnotationProcessor">
<beans:constructor-arg ref="ao_osgi"/>

really? why Atlassian makes this so complicated now - in comparison with the atplassian-pligin.xml style? 

Is there a docu where you found this, because the scanner docu is missing of explicit examples :-/?

There might be some better solution for the problem, but I had no time for further investigations.

Unfortunately I can't point you directly to an appropriate documentation. 

You have to dive into the documentation of the underlying framework stack sad to get some knowledge what is happening behind the scenes. 

You may look for BeanPostProcessor in the spring documentation to get some basic understanding how the TX Annotation is working and then check the Atlassian documentation


I'll leave it here, it might help somenone:

Keep @ComponentImport and add only

<bean class="com.atlassian.activeobjects.external.TransactionalAnnotationProcessor">
<constructor-arg ref="activeObjects"/>

 in the plugin-context.xml.

Works with ao v.1.4.0, atlassian-scanner v1.2.7

Suggest an answer

Log in or Join to answer
Community showcase
Jason Wong
Published Tuesday in Agility Beta

Welcome to agility

Every team in the world is unique, and so   Atlassian believes   that each and every team's best way of working  needs to  be molded to their unique circumstances  – ...

398 views 6 16
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot