This page last changed on Dec 20, 2007 by smaddox.

Spring Modules

A Spring module allows you to use standard Spring XML configuration tags.

A Spring module appears in atlassian-plugin.xml like this:

<spring name="Space Cleaner Job" key="spaceCleanerJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        ... any standard spring configuration goes here...
</spring>

The above is equivalent to the following configuration in applicationContext.xml:

<bean id="spaceCleanerJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        ...
</bean>

Ordering of Components

If you declare a Spring component that refers to another Spring component, you must ensure the referred component is declared first. For example:

<spring name="Bean A" key="beanA" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    ...
</spring>

<spring name="Bean B" key="beanB" alias="soapServiceDelegator" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="target">
        <ref local="beanA"/>
    </property>
    ...
</spring>

Notice that beanB refers to beanA and that beanA is declared before beanB. If you don't do it in this order, Confluence will complain that beanA does not exist.

Document generated by Confluence on Aug 07, 2008 19:08