View Javadoc

1   package com.atlassian.plugin.osgi.container.impl;
2   
3   import com.atlassian.plugin.osgi.container.PackageScannerConfiguration;
4   
5   import java.util.*;
6   
7   /**
8    * Default package scanner configuration.  Probably mostly useful for Spring XML configuration.
9    */
10  public class DefaultPackageScannerConfiguration implements PackageScannerConfiguration
11  {
12  
13      private List<String> jarIncludes = Arrays.asList("*.jar");
14      private List<String> jarExcludes = Collections.emptyList();
15      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.*");
16      private List<String> packageExcludes = Arrays.asList("com.springframework*", "org.apache.commons.logging*");
17      private Map<String, String> packageVersions;
18  
19      public DefaultPackageScannerConfiguration()
20      {
21          jarIncludes = new ArrayList<String>(jarIncludes);
22          jarExcludes = new ArrayList<String>(jarExcludes);
23          packageIncludes = new ArrayList<String>(packageIncludes);
24          packageExcludes = new ArrayList<String>(packageExcludes);
25      }
26  
27  
28      public void setJarIncludes(List<String> jarIncludes)
29      {
30          this.jarIncludes = jarIncludes;
31      }
32  
33      public void setJarExcludes(List<String> jarExcludes)
34      {
35          this.jarExcludes = jarExcludes;
36      }
37  
38      public void setPackageIncludes(List<String> packageIncludes)
39      {
40          this.packageIncludes = packageIncludes;
41      }
42  
43      public void setPackageExcludes(List<String> packageExcludes)
44      {
45          this.packageExcludes = packageExcludes;
46      }
47  
48      /**
49       * Sets the jars to include and exclude from scanning
50       * @param includes A list of jar patterns to include
51       * @param excludes A list of jar patterns to exclude
52       */
53      public void setJarPatterns(List<String> includes, List<String> excludes) {
54          this.jarIncludes = includes;
55          this.jarExcludes = excludes;
56      }
57  
58      /**
59       * Sets the packages to include and exclude
60       * @param includes A list of patterns to include
61       * @param excludes A list of patterns to exclude
62       */
63      public void setPackagePatterns(List<String> includes, List<String> excludes) {
64          this.packageIncludes = includes;
65          this.packageExcludes = excludes;
66      }
67  
68      /**
69       * Maps discovered packages to specific versions by overriding autodiscovered versions
70       * @param packageToVersions A map of package patterns to version strings
71       */
72      public void setPackageVersions(Map<String,String> packageToVersions)
73      {
74          this.packageVersions = packageToVersions;
75      }
76  
77      public List<String> getJarIncludes()
78      {
79          return jarIncludes;
80      }
81  
82      public List<String> getJarExcludes()
83      {
84          return jarExcludes;
85      }
86  
87      public List<String> getPackageIncludes()
88      {
89          return packageIncludes;
90      }
91  
92      public List<String> getPackageExcludes()
93      {
94          return packageExcludes;
95      }
96  
97      public Map<String, String> getPackageVersions()
98      {
99          return packageVersions;
100     }
101 }