View Javadoc
1   package com.atlassian.plugin.spring;
2   
3   import com.atlassian.plugin.osgi.hostcomponents.ContextClassLoaderStrategy;
4   
5   import java.util.Collections;
6   import java.util.Map;
7   import java.util.Set;
8   
9   /**
10   * Offers configurations for SpringHostComponentProvider.
11   */
12  public class SpringHostComponentProviderConfig {
13      /**
14       * A set of bean names to make available to plugins
15       */
16      private Set<String> beanNames = Collections.emptySet();
17  
18      /**
19       * Mapping of beanNames to the interfaces it should be exposed as. Note that if a bean name is present an no interface
20       * is defined then all its interfaces should be 'exposed'.
21       */
22      private Map<String, Class[]> beanInterfaces = Collections.emptyMap();
23  
24      /**
25       * Mapping of beanNames with their {@link com.atlassian.plugin.osgi.hostcomponents.ContextClassLoaderStrategy}.
26       * Default value is {@link com.atlassian.plugin.osgi.hostcomponents.ContextClassLoaderStrategy#USE_HOST}.
27       */
28      private Map<String, ContextClassLoaderStrategy> beanContextClassLoaderStrategies = Collections.emptyMap();
29  
30      private Set<String> bundleTrackingBeans = Collections.emptySet();
31  
32      /**
33       * Whether or not to scan for {@link com.atlassian.plugin.spring.AvailableToPlugins} annotations on beans defined in the bean factory, defaults to {@code false}.
34       */
35      private boolean useAnnotation = false;
36  
37  
38      public Set<String> getBeanNames() {
39          return beanNames;
40      }
41  
42      @SuppressWarnings("unused")
43      public void setBeanNames(Set<String> beanNames) {
44          this.beanNames = beanNames;
45      }
46  
47      public Map<String, Class[]> getBeanInterfaces() {
48          return beanInterfaces;
49      }
50  
51      @SuppressWarnings("unused")
52      public void setBeanInterfaces(Map<String, Class[]> beanInterfaces) {
53          this.beanInterfaces = beanInterfaces;
54      }
55  
56      public Map<String, ContextClassLoaderStrategy> getBeanContextClassLoaderStrategies() {
57          return beanContextClassLoaderStrategies;
58      }
59  
60      @SuppressWarnings("unused")
61      public void setBeanContextClassLoaderStrategies(Map<String, ContextClassLoaderStrategy> beanContextClassLoaderStrategies) {
62          this.beanContextClassLoaderStrategies = beanContextClassLoaderStrategies;
63      }
64  
65      public Set<String> getBundleTrackingBeans() {
66          return bundleTrackingBeans;
67      }
68  
69      @SuppressWarnings("unused")
70      public void setBundleTrackingBeans(Set<String> bundleTrackingBeans) {
71          this.bundleTrackingBeans = bundleTrackingBeans;
72      }
73  
74      public void setUseAnnotation(boolean useAnnotation) {
75          this.useAnnotation = useAnnotation;
76      }
77  
78      public boolean isUseAnnotation() {
79          return useAnnotation;
80      }
81  }