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
12
13
14
15
16
17 public class PluginAvailableBeanDefinitionDecorator implements BeanDefinitionDecorator
18 {
19
20
21
22
23
24
25
26 public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext ctx)
27 {
28 final String isAvailable = ((Attr) source).getValue();
29 if (Boolean.parseBoolean(isAvailable))
30 {
31 new PluginBeanDefinitionRegistry(ctx.getRegistry()).addBeanName(holder.getBeanName());
32 }
33 return holder;
34 }
35 }