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.*", "javax.swing.tree", "org.quartz", "org.quartz.*", "bucket.*", "net.sf.cglib", "net.sf.cglib.*", "net.sf.hibernate", "net.sf.hibernate.*", "com.octo.captcha.*", "com.opensymphony.*", "org.apache.*", "org.xml.*", "javax.*", "org.w3c.*");
17      private List<String> packageExcludes = Arrays.asList("com.springframework*", "org.apache.commons.logging*");
18      private Map<String, String> packageVersions;
19      private ServletContext servletContext;
20  
21      public DefaultPackageScannerConfiguration()
22      {
23          jarIncludes = new ArrayList<String>(jarIncludes);
24          jarExcludes = new ArrayList<String>(jarExcludes);
25          packageIncludes = new ArrayList<String>(packageIncludes);
26          packageExcludes = new ArrayList<String>(packageExcludes);
27      }
28  
29  
30      public void setJarIncludes(List<String> jarIncludes)
31      {
32          this.jarIncludes = jarIncludes;
33      }
34  
35      public void setJarExcludes(List<String> jarExcludes)
36      {
37          this.jarExcludes = jarExcludes;
38      }
39  
40      public void setPackageIncludes(List<String> packageIncludes)
41      {
42          this.packageIncludes = packageIncludes;
43      }
44  
45      public void setPackageExcludes(List<String> packageExcludes)
46      {
47          this.packageExcludes = packageExcludes;
48      }
49  
50      /**
51       * Sets the jars to include and exclude from scanning
52       * @param includes A list of jar patterns to include
53       * @param excludes A list of jar patterns to exclude
54       */
55      public void setJarPatterns(List<String> includes, List<String> excludes) {
56          this.jarIncludes = includes;
57          this.jarExcludes = excludes;
58      }
59  
60      /**
61       * Sets the packages to include and exclude
62       * @param includes A list of patterns to include
63       * @param excludes A list of patterns to exclude
64       */
65      public void setPackagePatterns(List<String> includes, List<String> excludes) {
66          this.packageIncludes = includes;
67          this.packageExcludes = excludes;
68      }
69  
70      /**
71       * Maps discovered packages to specific versions by overriding autodiscovered versions
72       * @param packageToVersions A map of package patterns to version strings
73       */
74      public void setPackageVersions(Map<String,String> packageToVersions)
75      {
76          this.packageVersions = packageToVersions;
77      }
78  
79      public List<String> getJarIncludes()
80      {
81          return jarIncludes;
82      }
83  
84      public List<String> getJarExcludes()
85      {
86          return jarExcludes;
87      }
88  
89      public List<String> getPackageIncludes()
90      {
91          return packageIncludes;
92      }
93  
94      public List<String> getPackageExcludes()
95      {
96          return packageExcludes;
97      }
98  
99      public Map<String, String> getPackageVersions()
100     {
101         return packageVersions;
102     }
103 
104     public ServletContext getServletContext()
105     {
106         return servletContext;
107     }
108 
109     public void setServletContext(ServletContext servletContext)
110     {
111         this.servletContext = servletContext;
112     }
113 }