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(
17              "com.atlassian.*", "com.google.common.*", "javax.*", "net.jcip.*", "org.jfree.*",
18              "org.joda.*", "org.quartz", "org.quartz.*", "com.opensymphony.*", "org.apache.*", "org.ofbiz.*", "org.xml.*", "org.w3c.*", "webwork.*",
19              "org.tuckey.web.filters.urlrewrite.*", "org.bouncycastle*", "org.dom4j*", "org.jdom*", "com.perforce*", "org.slf4j*");
20      private List<String> packageExcludes = Arrays.asList("com.springframework*", "org.apache.tomcat.*",
21              "org.apache.catalina.*", "org.apache.jasper.*", "org.apache.coyote.*", "org.apache.naming*",
22              "org.apache.commons.logging*", "com.atlassian.plugin.osgi.bridge.*");
23      private Map<String, String> packageVersions;
24      private String hostVersion;
25      private ServletContext servletContext;
26  
27      public DefaultPackageScannerConfiguration()
28      {
29          this(null);
30      }
31  
32      /**
33       * @param hostVersion The current host application version
34       * @since 2.2
35       */
36      public DefaultPackageScannerConfiguration(String hostVersion)
37      {
38          this.hostVersion = hostVersion;
39          jarIncludes = new ArrayList<String>(jarIncludes);
40          jarExcludes = new ArrayList<String>(jarExcludes);
41          packageIncludes = new ArrayList<String>(packageIncludes);
42          packageExcludes = new ArrayList<String>(packageExcludes);
43          packageVersions = new HashMap<String, String>();
44      }
45  
46  
47      public void setJarIncludes(List<String> jarIncludes)
48      {
49          this.jarIncludes = jarIncludes;
50      }
51  
52      public void setJarExcludes(List<String> jarExcludes)
53      {
54          this.jarExcludes = jarExcludes;
55      }
56  
57      public void setPackageIncludes(List<String> packageIncludes)
58      {
59          this.packageIncludes = packageIncludes;
60      }
61  
62      public void setPackageExcludes(List<String> packageExcludes)
63      {
64          this.packageExcludes = packageExcludes;
65      }
66  
67      /**
68       * Sets the jars to include and exclude from scanning
69       *
70       * @param includes A list of jar patterns to include
71       * @param excludes A list of jar patterns to exclude
72       */
73      public void setJarPatterns(List<String> includes, List<String> excludes)
74      {
75          this.jarIncludes = includes;
76          this.jarExcludes = excludes;
77      }
78  
79      /**
80       * Sets the packages to include and exclude
81       *
82       * @param includes A list of patterns to include
83       * @param excludes A list of patterns to exclude
84       */
85      public void setPackagePatterns(List<String> includes, List<String> excludes)
86      {
87          this.packageIncludes = includes;
88          this.packageExcludes = excludes;
89      }
90  
91      /**
92       * Maps discovered packages to specific versions by overriding autodiscovered versions
93       *
94       * @param packageToVersions A map of package patterns to version strings
95       */
96      public void setPackageVersions(Map<String, String> packageToVersions)
97      {
98          this.packageVersions = packageToVersions;
99      }
100 
101     public List<String> getJarIncludes()
102     {
103         return jarIncludes;
104     }
105 
106     public List<String> getJarExcludes()
107     {
108         return jarExcludes;
109     }
110 
111     public List<String> getPackageIncludes()
112     {
113         return packageIncludes;
114     }
115 
116     public List<String> getPackageExcludes()
117     {
118         return packageExcludes;
119     }
120 
121     public Map<String, String> getPackageVersions()
122     {
123         return packageVersions;
124     }
125 
126     public String getCurrentHostVersion()
127     {
128         return hostVersion;
129     }
130 
131     public ServletContext getServletContext()
132     {
133         return servletContext;
134     }
135 
136     public void setServletContext(ServletContext servletContext)
137     {
138         this.servletContext = servletContext;
139     }
140 }