View Javadoc

1   package com.atlassian.plugin.osgi.container.impl;
2   
3   import com.atlassian.plugin.osgi.container.PackageScannerConfiguration;
4   
5   import javax.servlet.ServletContext;
6   import java.util.*;
7   
8   /**
9    * Default package scanner configuration.  Probably mostly useful for Spring XML configuration.
10   */
11  public class DefaultPackageScannerConfiguration implements PackageScannerConfiguration
12  {
13  
14      private List<String> jarIncludes = Arrays.asList("*.jar");
15      private List<String> jarExcludes = Collections.emptyList();
16      private List<String> packageIncludes = Arrays.asList("com.atlassian.*", "org.apache.*", "org.jdom*");
17      private List<String> packageExcludes = Arrays.asList("com.springframework*", "org.apache.commons.logging*");
18      private Map<String, String> packageVersions;
19      private String hostVersion;
20      private ServletContext servletContext;
21  
22      public DefaultPackageScannerConfiguration()
23      {
24          this(null);
25      }
26  
27      /**
28       * @since 2.2
29       * @param hostVersion The current host application version
30       */
31      public DefaultPackageScannerConfiguration(String hostVersion)
32      {
33          this.hostVersion = hostVersion;
34          jarIncludes = new ArrayList<String>(jarIncludes);
35          jarExcludes = new ArrayList<String>(jarExcludes);
36          packageIncludes = new ArrayList<String>(packageIncludes);
37          packageExcludes = new ArrayList<String>(packageExcludes);
38          packageVersions = new HashMap<String,String>();
39      }
40  
41  
42      public void setJarIncludes(List<String> jarIncludes)
43      {
44          this.jarIncludes = jarIncludes;
45      }
46  
47      public void setJarExcludes(List<String> jarExcludes)
48      {
49          this.jarExcludes = jarExcludes;
50      }
51  
52      public void setPackageIncludes(List<String> packageIncludes)
53      {
54          this.packageIncludes = packageIncludes;
55      }
56  
57      public void setPackageExcludes(List<String> packageExcludes)
58      {
59          this.packageExcludes = packageExcludes;
60      }
61  
62      /**
63       * Sets the jars to include and exclude from scanning
64       * @param includes A list of jar patterns to include
65       * @param excludes A list of jar patterns to exclude
66       */
67      public void setJarPatterns(List<String> includes, List<String> excludes) {
68          this.jarIncludes = includes;
69          this.jarExcludes = excludes;
70      }
71  
72      /**
73       * Sets the packages to include and exclude
74       * @param includes A list of patterns to include
75       * @param excludes A list of patterns to exclude
76       */
77      public void setPackagePatterns(List<String> includes, List<String> excludes) {
78          this.packageIncludes = includes;
79          this.packageExcludes = excludes;
80      }
81  
82      /**
83       * Maps discovered packages to specific versions by overriding autodiscovered versions
84       * @param packageToVersions A map of package patterns to version strings
85       */
86      public void setPackageVersions(Map<String,String> packageToVersions)
87      {
88          this.packageVersions = packageToVersions;
89      }
90  
91      public List<String> getJarIncludes()
92      {
93          return jarIncludes;
94      }
95  
96      public List<String> getJarExcludes()
97      {
98          return jarExcludes;
99      }
100 
101     public List<String> getPackageIncludes()
102     {
103         return packageIncludes;
104     }
105 
106     public List<String> getPackageExcludes()
107     {
108         return packageExcludes;
109     }
110 
111     public Map<String, String> getPackageVersions()
112     {
113         return packageVersions;
114     }
115 
116     public String getCurrentHostVersion()
117     {
118         return hostVersion;
119     }
120 
121     public ServletContext getServletContext()
122     {
123         return servletContext;
124     }
125 
126     public void setServletContext(ServletContext servletContext)
127     {
128         this.servletContext = servletContext;
129     }
130 }