View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one   *
3    * or more contributor license agreements.  See the NOTICE file *
4    * distributed with this work for additional information        *
5    * regarding copyright ownership.  The ASF licenses this file   *
6    * to you under the Apache License, Version 2.0 (the            *
7    * "License"); you may not use this file except in compliance   *
8    * with the License.  You may obtain a copy of the License at   *
9    *                                                              *
10   *   http://www.apache.org/licenses/LICENSE-2.0                 *
11   *                                                              *
12   * Unless required by applicable law or agreed to in writing,   *
13   * software distributed under the License is distributed on an  *
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
15   * KIND, either express or implied.  See the License for the    *
16   * specific language governing permissions and limitations      *
17   * under the License.                                           *
18   */
19  package org.apache.rat;
20  
21  import org.apache.rat.analysis.IHeaderMatcher;
22  import org.apache.rat.analysis.generation.GeneratedLicenseNotRequired;
23  import org.apache.rat.analysis.generation.JavaDocLicenseNotRequired;
24  import org.apache.rat.analysis.license.ApacheSoftwareLicense20;
25  import org.apache.rat.analysis.license.CDDL1License;
26  import org.apache.rat.analysis.license.DojoLicenseHeader;
27  import org.apache.rat.analysis.license.GPL1License;
28  import org.apache.rat.analysis.license.GPL2License;
29  import org.apache.rat.analysis.license.GPL3License;
30  import org.apache.rat.analysis.license.MITLicense;
31  import org.apache.rat.analysis.license.OASISLicense;
32  import org.apache.rat.analysis.license.TMF854LicenseHeader;
33  import org.apache.rat.analysis.license.W3CDocLicense;
34  import org.apache.rat.analysis.license.W3CLicense;
35  import org.apache.rat.analysis.util.HeaderMatcherMultiplexer;
36  import org.apache.rat.api.MetaData;
37  
38  import java.io.InputStream;
39  import java.util.Arrays;
40  import java.util.Collections;
41  import java.util.List;
42  
43  
44  /**
45   * Utility class that holds constants shared by the CLI tool and the Ant tasks.
46   */
47  public class Defaults {
48      /**
49       * no instances
50       */
51      private Defaults() {
52      }
53  
54      /**
55       * The standard list of licenses to include in the reports.
56       * Needs to match configuration in {@link org.apache.rat.policy.DefaultPolicy}.
57       */
58      public static final List<IHeaderMatcher> DEFAULT_MATCHERS = Collections.unmodifiableList(
59              Arrays.asList(new ApacheSoftwareLicense20(),
60                      new GPL1License(),
61                      new GPL2License(),
62                      new GPL3License(),
63                      new MITLicense(),
64                      new W3CLicense(),
65                      new W3CDocLicense(),
66                      new OASISLicense(),
67                      new JavaDocLicenseNotRequired(), // does not have a MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_... entry
68                      new GeneratedLicenseNotRequired(), // does not have a MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_... entry
69                      new DojoLicenseHeader(),
70                      new TMF854LicenseHeader(),
71                      new CDDL1License()));
72  
73      // all classes in license package implementing ILicenseFamily
74      public static final List<String> DEFAULT_LICENSE_FAMILIES = Collections.unmodifiableList(
75              Arrays.asList(
76                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_ACADEMIC_FREE_LICENSE_VERSION_2_1, //
77                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_APACHE_LICENSE_VERSION_2_0, //
78                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_CDDL1, //
79                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_1, //
80                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_2, //
81                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_GPL_VERSION_3, //
82                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_MIT, //
83                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_MODIFIED_BSD_LICENSE, //
84                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_OASIS_OPEN_LICENSE, //
85                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_W3C_DOCUMENT_COPYRIGHT, //
86                      MetaData.RAT_LICENSE_FAMILY_NAME_VALUE_W3C_SOFTWARE_COPYRIGHT
87                      //
88              ));
89  
90      public static final String PLAIN_STYLESHEET = "org/apache/rat/plain-rat.xsl";
91      public static final String UNAPPROVED_LICENSES_STYLESHEET = "org/apache/rat/unapproved-licenses.xsl";
92  
93      public static InputStream getPlainStyleSheet() {
94          return Defaults.class.getClassLoader().getResourceAsStream(Defaults.PLAIN_STYLESHEET);
95      }
96  
97      public static InputStream getUnapprovedLicensesStyleSheet() {
98          return Defaults.class.getClassLoader().getResourceAsStream(Defaults.UNAPPROVED_LICENSES_STYLESHEET);
99      }
100 
101     public static InputStream getDefaultStyleSheet() {
102         return getPlainStyleSheet();
103     }
104 
105     public static IHeaderMatcher createDefaultMatcher() {
106         return new HeaderMatcherMultiplexer(Defaults.DEFAULT_MATCHERS);
107     }
108 }