View Javadoc

1   package com.atlassian.plugin.spring.pluginns;
2   
3   import com.atlassian.plugin.spring.PluginBeanDefinitionRegistry;
4   import org.springframework.beans.factory.config.BeanDefinitionHolder;
5   import org.springframework.beans.factory.xml.BeanDefinitionDecorator;
6   import org.springframework.beans.factory.xml.ParserContext;
7   import org.w3c.dom.Attr;
8   import org.w3c.dom.Node;
9   
10  
11  public class PluginTrackBundleBeanDefinitionDecorator implements BeanDefinitionDecorator
12  {
13  
14      public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext ctx)
15      {
16          final String trackBundleAsString = ((Attr) source).getValue();
17          if (isTrackBundleEnabled(trackBundleAsString))
18          {
19              new PluginBeanDefinitionRegistry(ctx.getRegistry()).addBundleTrackingBean(holder.getBeanName());
20          }
21          return holder;
22  
23      }
24  
25      private boolean isTrackBundleEnabled(String trackBundle)
26      {
27          return Boolean.parseBoolean(trackBundle);
28      }
29  }