diff --git a/its/plugin/plugins/java-extension-plugin/src/main/java/org/sonar/samples/java/JspCodeCheck.java b/its/plugin/plugins/java-extension-plugin/src/main/java/org/sonar/samples/java/JspCodeCheck.java
index eac26f083bf..2459d02eac4 100644
--- a/its/plugin/plugins/java-extension-plugin/src/main/java/org/sonar/samples/java/JspCodeCheck.java
+++ b/its/plugin/plugins/java-extension-plugin/src/main/java/org/sonar/samples/java/JspCodeCheck.java
@@ -65,17 +65,17 @@ private void visitClass(ClassTree tree) {
}
private void visitMethodInvocation(MethodInvocationTree tree) {
- if (isInvocation(tree, "index_jsp.java", 116) ||
- isInvocation(tree, "test_005finclude_jsp.java", 124) ||
- isInvocation(tree, "test_005finclude_jsp.java", 129)) {
+ if (isInvocation(tree, "index_jsp.java", "write") ||
+ isInvocation(tree, "test_005finclude_jsp.java", "getParameter") ||
+ isInvocation(tree, "test_005finclude_jsp.java", "print")) {
context.sourceMap()
.flatMap(sourceMap -> sourceMap.sourceMapLocationFor(tree))
.ifPresent(this::writeToFile);
}
}
- private boolean isInvocation(MethodInvocationTree tree, String inputFile, int line) {
- return context.getInputFile().filename().equals(inputFile) && tree.firstToken().range().start().line() == line;
+ private boolean isInvocation(MethodInvocationTree tree, String inputFile, String methodName) {
+ return context.getInputFile().filename().equals(inputFile) && tree.methodSymbol().name().equals(methodName);
}
private void writeToFile(SourceMap.Location location) {
diff --git a/its/plugin/projects/servlet-jsp/pom.xml b/its/plugin/projects/servlet-jsp/pom.xml
index 4634684c1c3..30f9fe09dd0 100644
--- a/its/plugin/projects/servlet-jsp/pom.xml
+++ b/its/plugin/projects/servlet-jsp/pom.xml
@@ -12,6 +12,8 @@
UTF-8
1.8
1.8
+ 3.0.1
+ 1.4.0
src/main/java,src/main/webapp
@@ -24,21 +26,26 @@
provided
- javax.servlet
- jstl
- 1.2
-
+ jakarta.servlet.jsp.jstl
+ jakarta.servlet.jsp.jstl-api
+ ${jakarta.jstl.version}
+
+
+ org.glassfish.web
+ jakarta.servlet.jsp.jstl
+ ${jakarta.jstl.version}
+
org.owasp.encoder
encoder
- 1.2.2
+ ${owasp.encoder.version}
org.owasp.encoder
- encoder-jsp
- 1.2.2
+ encoder-jakarta-jsp
+ ${owasp.encoder.version}
com.googlecode.owasp-java-html-sanitizer
diff --git a/its/plugin/projects/servlet-jsp/src/main/webapp/views/greeting.jsp b/its/plugin/projects/servlet-jsp/src/main/webapp/views/greeting.jsp
index fbadaf75bd3..afb6a5d22e6 100644
--- a/its/plugin/projects/servlet-jsp/src/main/webapp/views/greeting.jsp
+++ b/its/plugin/projects/servlet-jsp/src/main/webapp/views/greeting.jsp
@@ -1,7 +1,7 @@
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
-<%@ taglib prefix="e" uri="https://www.owasp.org/index.php/OWASP_Java_Encoder_Project" %>
+<%@ taglib prefix="c" uri="jakarta.tags.core"%>
+<%@ taglib prefix="e" uri="owasp.encoder.jakarta" %>
<%@ page import="org.owasp.encoder.Encode" %>
diff --git a/java-frontend/src/main/java/org/sonar/java/JavaFrontend.java b/java-frontend/src/main/java/org/sonar/java/JavaFrontend.java
index 08530df3dea..aa4aaec778d 100644
--- a/java-frontend/src/main/java/org/sonar/java/JavaFrontend.java
+++ b/java-frontend/src/main/java/org/sonar/java/JavaFrontend.java
@@ -70,6 +70,7 @@ public class JavaFrontend {
private final SonarComponents sonarComponents;
private final Telemetry telemetry;
private final List globalClasspath;
+ private final List autoScanClasspath;
private final JavaAstScanner astScanner;
private final JavaAstScanner astScannerForTests;
private final JavaAstScanner astScannerForGeneratedFiles;
@@ -108,6 +109,7 @@ public JavaFrontend(JavaVersion javaVersion, SonarComponents sonarComponents, Me
globalClasspath = Stream.of(classpath, testClasspath, jspClasspath)
.flatMap(Collection::stream).distinct().toList();
+ autoScanClasspath = sonarComponents.isAutoScan() ? sonarComponents.getAutoScanClasspath() : List.of();
//AstScanner for main files
astScanner = new JavaAstScanner(sonarComponents, telemetry, TelemetryKey.JAVA_ANALYSIS_MAIN);
@@ -279,7 +281,7 @@ public String descriptor(InputFile input) {
@Override
public List getClasspath() {
- return globalClasspath;
+ return autoScanClasspath;
}
@Override
diff --git a/java-frontend/src/main/java/org/sonar/java/SonarComponents.java b/java-frontend/src/main/java/org/sonar/java/SonarComponents.java
index 240e2d012d9..2dc8cba6313 100644
--- a/java-frontend/src/main/java/org/sonar/java/SonarComponents.java
+++ b/java-frontend/src/main/java/org/sonar/java/SonarComponents.java
@@ -22,9 +22,13 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -34,6 +38,9 @@
import java.util.TreeSet;
import java.util.function.LongSupplier;
import java.util.function.UnaryOperator;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.jar.JarOutputStream;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.CheckForNull;
@@ -83,6 +90,7 @@ public class SonarComponents extends CheckRegistrar.RegistrarContext {
private static final Logger LOG = LoggerFactory.getLogger(SonarComponents.class);
private static final int LOGGED_MAX_NUMBER_UNDEFINED_TYPES = 50;
+ private static final List JSP_RUNTIME_API_PREFIXES = List.of("jakarta/el/", "jakarta/servlet/");
public static final String FAIL_ON_EXCEPTION_KEY = "sonar.internal.analysis.failFast";
public static final String SONAR_BATCH_MODE_KEY = "sonar.java.internal.batchMode";
@@ -137,6 +145,9 @@ public class SonarComponents extends CheckRegistrar.RegistrarContext {
private UnaryOperator> checkFilter = UnaryOperator.identity();
private final Set additionalAutoScanCompatibleRuleKeys;
+ @Nullable
+ private File autoScanPluginJar;
+
private boolean alreadyLoggedSkipStatus = false;
public SonarComponents(FileLinesContextFactory fileLinesContextFactory, FileSystem fs,
@@ -275,6 +286,67 @@ public List getJspClasspath() {
return jspClasspath;
}
+ public List getAutoScanClasspath() {
+ return getAutoScanClasspath(findPluginJar());
+ }
+
+ @VisibleForTesting
+ List getAutoScanClasspath(File pluginJar) {
+ List autoScanClasspath = new ArrayList<>();
+ // Jasper is disabled in AutoScan; do not expose its bundled Jakarta APIs as inferred project dependencies.
+ autoScanClasspath.add(pluginJarWithoutJspRuntimeApis(pluginJar));
+ autoScanClasspath.addAll(getJavaClasspath());
+ autoScanClasspath.addAll(getJavaTestClasspath());
+ return autoScanClasspath.stream().distinct().toList();
+ }
+
+ private File pluginJarWithoutJspRuntimeApis(File pluginJar) {
+ if (autoScanPluginJar != null) {
+ return autoScanPluginJar;
+ }
+ if (!pluginJar.isFile()) {
+ // Unit tests and IDE executions load analyzer classes from a directory rather than a shaded plugin JAR.
+ return pluginJar;
+ }
+ Path outputDirectory = fs.workDir().toPath().resolve("autoscan");
+ Path target = outputDirectory.resolve(pluginJar.getName());
+ try {
+ Files.createDirectories(outputDirectory);
+ Path temporary = Files.createTempFile(outputDirectory, "sonar-java-plugin-", ".jar");
+ try {
+ createAutoScanPluginJar(pluginJar.toPath(), temporary);
+ Files.move(temporary, target, StandardCopyOption.REPLACE_EXISTING);
+ } finally {
+ Files.deleteIfExists(temporary);
+ }
+ autoScanPluginJar = target.toFile();
+ return autoScanPluginJar;
+ } catch (IOException e) {
+ throw new AnalysisException("Failed to prepare the Java analyzer classpath for AutoScan.", e);
+ }
+ }
+
+ @VisibleForTesting
+ static void createAutoScanPluginJar(Path source, Path target) throws IOException {
+ try (JarFile sourceJar = new JarFile(source.toFile());
+ JarOutputStream targetJar = new JarOutputStream(Files.newOutputStream(target))) {
+ Enumeration entries = sourceJar.entries();
+ while (entries.hasMoreElements()) {
+ JarEntry entry = entries.nextElement();
+ if (JSP_RUNTIME_API_PREFIXES.stream().anyMatch(entry.getName()::startsWith)) {
+ continue;
+ }
+ targetJar.putNextEntry(new JarEntry(entry));
+ if (!entry.isDirectory()) {
+ try (var input = sourceJar.getInputStream(entry)) {
+ input.transferTo(targetJar);
+ }
+ }
+ targetJar.closeEntry();
+ }
+ }
+ }
+
/**
* @return the jar of sonar-java plugin
*/
diff --git a/java-frontend/src/test/java/org/sonar/java/JavaFrontendTest.java b/java-frontend/src/test/java/org/sonar/java/JavaFrontendTest.java
index 9878e64b678..d3b88e67f31 100644
--- a/java-frontend/src/test/java/org/sonar/java/JavaFrontendTest.java
+++ b/java-frontend/src/test/java/org/sonar/java/JavaFrontendTest.java
@@ -513,6 +513,25 @@ void test_as_autoscan_main_and_test() throws IOException {
assertThat(testCodeIssueScannerAndFilter.scanFileInvocationCount).isEqualTo(1);
}
+ @Test
+ void autoscan_should_use_its_dedicated_classpath() {
+ SonarComponents components = mockSonarComponents();
+ List autoScanClasspath = List.of(new File("autoscan-plugin.jar"));
+ when(components.isAutoScan()).thenReturn(true);
+ when(components.getAutoScanClasspath()).thenReturn(autoScanClasspath);
+
+ JavaFrontend frontend = new JavaFrontend(
+ new JavaVersionImpl(),
+ components,
+ mock(Measurer.class),
+ new NoOpTelemetry(),
+ mock(JavaResourceLocator.class),
+ mainCodeIssueScannerAndFilter
+ );
+
+ assertThat(frontend.new AutoScanBatchContext().getClasspath()).isEqualTo(autoScanClasspath);
+ }
+
@Test
void test_end_of_analysis_should_be_called_once() throws IOException {
scan(SONARLINT_RUNTIME, "class A {}", "class B {}");
diff --git a/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java b/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java
index 8af9156dafe..19c667f4291 100644
--- a/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java
+++ b/java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.text.DecimalFormat;
@@ -32,6 +33,9 @@
import java.util.List;
import java.util.Optional;
import java.util.function.LongSupplier;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.jar.JarOutputStream;
import java.util.stream.Stream;
import javax.annotation.CheckForNull;
@@ -40,6 +44,7 @@
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.extension.RegisterExtension;
+import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.CsvSource;
@@ -727,6 +732,71 @@ void jsp_classpath_should_include_plugin() {
assertThat(jspClassPath).containsExactly(plugin.getAbsolutePath(), someJar.getAbsolutePath());
}
+ @Test
+ void autoscan_classpath_should_filter_plugin_jar_and_cache_it(@TempDir Path tempDirectory) throws IOException {
+ Path pluginJar = createPluginJar(tempDirectory.resolve("plugin.jar"));
+ File mainClasspath = new File("main.jar");
+ File testClasspath = new File("test.jar");
+ ClasspathForMain javaClasspath = mock(ClasspathForMain.class);
+ ClasspathForTest javaTestClasspath = mock(ClasspathForTest.class);
+ when(javaClasspath.getElements()).thenReturn(List.of(mainClasspath));
+ when(javaTestClasspath.getElements()).thenReturn(List.of(testClasspath));
+
+ SensorContextTester sensorContextTester = SensorContextTester.create(tempDirectory);
+ DefaultFileSystem fs = sensorContextTester.fileSystem();
+ fs.setWorkDir(tempDirectory.resolve("work"));
+ SonarComponents sonarComponents = new SonarComponents(fileLinesContextFactory, fs, javaClasspath, javaTestClasspath,
+ checkFactory, context.activeRules());
+ List autoScanClasspath = sonarComponents.getAutoScanClasspath(pluginJar.toFile());
+ File autoScanPlugin = autoScanClasspath.get(0);
+
+ assertThat(autoScanClasspath).containsExactly(autoScanPlugin, mainClasspath, testClasspath);
+ assertThat(autoScanPlugin.toPath()).isEqualTo(tempDirectory.resolve("work/autoscan/plugin.jar"));
+ assertThat(sonarComponents.getAutoScanClasspath(pluginJar.toFile()).get(0)).isSameAs(autoScanPlugin);
+ try (JarFile jar = new JarFile(autoScanPlugin)) {
+ assertThat(Collections.list(jar.entries()))
+ .extracting(JarEntry::getName)
+ .containsExactly("org/sonar/java/Analyzer.class", "javax/servlet/Servlet.class");
+ assertThat(new String(jar.getInputStream(jar.getJarEntry("javax/servlet/Servlet.class")).readAllBytes(), StandardCharsets.UTF_8))
+ .isEqualTo("javax/servlet/Servlet.class");
+ }
+ }
+
+ @Test
+ void autoscan_classpath_should_report_plugin_copy_failures(@TempDir Path tempDirectory) throws IOException {
+ Path pluginJar = createPluginJar(tempDirectory.resolve("plugin.jar"));
+ File pluginFile = pluginJar.toFile();
+ Path invalidWorkDirectory = tempDirectory.resolve("not-a-directory");
+ Files.writeString(invalidWorkDirectory, "file");
+ SensorContextTester sensorContextTester = SensorContextTester.create(tempDirectory);
+ DefaultFileSystem fs = sensorContextTester.fileSystem();
+ fs.setWorkDir(invalidWorkDirectory);
+ SonarComponents sonarComponents = new SonarComponents(fileLinesContextFactory, fs, mock(ClasspathForMain.class), mock(ClasspathForTest.class),
+ checkFactory, context.activeRules());
+
+ assertThatThrownBy(() -> sonarComponents.getAutoScanClasspath(pluginFile))
+ .isInstanceOf(AnalysisException.class)
+ .hasMessage("Failed to prepare the Java analyzer classpath for AutoScan.")
+ .hasCauseInstanceOf(IOException.class);
+ }
+
+ private static Path createPluginJar(Path pluginJar) throws IOException {
+ List entries = List.of(
+ "org/sonar/java/Analyzer.class",
+ "javax/servlet/Servlet.class",
+ "jakarta/servlet/Servlet.class",
+ "jakarta/el/ELContext.class"
+ );
+ try (JarOutputStream jar = new JarOutputStream(Files.newOutputStream(pluginJar))) {
+ for (String entry : entries) {
+ jar.putNextEntry(new JarEntry(entry));
+ jar.write(entry.getBytes(StandardCharsets.UTF_8));
+ jar.closeEntry();
+ }
+ }
+ return pluginJar;
+ }
+
@Test
void autoscan_getters() {
MapSettings settings = new MapSettings();
diff --git a/java-jsp/pom.xml b/java-jsp/pom.xml
index 5fba537b343..df41c88e14e 100644
--- a/java-jsp/pom.xml
+++ b/java-jsp/pom.xml
@@ -32,7 +32,7 @@
org.apache.tomcat.embed
tomcat-embed-jasper
- 9.0.120
+ 11.0.24
org.eclipse.jdt
@@ -92,7 +92,8 @@
org.springframework
spring-webmvc
- 5.2.3.RELEASE
+ 6.2.15
+ spring-webmvc.jar
javax
diff --git a/java-jsp/src/main/java/org/sonar/java/jsp/Jasper.java b/java-jsp/src/main/java/org/sonar/java/jsp/Jasper.java
index 9bbc6996e7a..67b64e1a22d 100644
--- a/java-jsp/src/main/java/org/sonar/java/jsp/Jasper.java
+++ b/java-jsp/src/main/java/org/sonar/java/jsp/Jasper.java
@@ -36,7 +36,7 @@
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.StreamSupport;
-import javax.servlet.jsp.JspFactory;
+import jakarta.servlet.jsp.JspFactory;
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.compiler.Compiler;
@@ -254,4 +254,3 @@ public void log(String message, Throwable exception) {
}
}
-
diff --git a/java-jsp/src/main/java/org/sonar/java/jsp/JasperOptions.java b/java-jsp/src/main/java/org/sonar/java/jsp/JasperOptions.java
index e12af6514c1..e115e7dc084 100644
--- a/java-jsp/src/main/java/org/sonar/java/jsp/JasperOptions.java
+++ b/java-jsp/src/main/java/org/sonar/java/jsp/JasperOptions.java
@@ -22,7 +22,7 @@
import java.nio.file.Path;
import java.util.Collections;
import java.util.Map;
-import javax.servlet.jsp.tagext.TagLibraryInfo;
+import jakarta.servlet.jsp.tagext.TagLibraryInfo;
import org.apache.jasper.Options;
import org.apache.jasper.TrimSpacesOption;
import org.apache.jasper.compiler.JspConfig;
@@ -40,8 +40,6 @@
*/
class JasperOptions implements Options {
- static final String DEFAULT_IE_CLASS_ID = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93";
-
private final Path outputDir;
private final TagPluginManager tagPluginManager;
private final TldCache tldCache;
@@ -123,11 +121,6 @@ public TrimSpacesOption getTrimSpaces() {
return TrimSpacesOption.FALSE;
}
- @Override
- public String getIeClassId() {
- return DEFAULT_IE_CLASS_ID;
- }
-
@Override
public File getScratchDir() {
return outputDir.toFile();
diff --git a/java-jsp/src/test/java/org/sonar/java/jsp/JasperOptionsTest.java b/java-jsp/src/test/java/org/sonar/java/jsp/JasperOptionsTest.java
index e67f467e2ed..cc6c5ae1674 100644
--- a/java-jsp/src/test/java/org/sonar/java/jsp/JasperOptionsTest.java
+++ b/java-jsp/src/test/java/org/sonar/java/jsp/JasperOptionsTest.java
@@ -54,7 +54,6 @@ void test() throws Exception {
assertThat(options.isSmapDumped()).isTrue();
assertThat(options.isSmapSuppressed()).isFalse();
assertThat(options.getTrimSpaces()).isEqualTo(TrimSpacesOption.FALSE);
- assertThat(options.getIeClassId()).isEqualTo(JasperOptions.DEFAULT_IE_CLASS_ID);
assertThat(options.getScratchDir()).isEqualTo(output.toFile());
assertThat(options.getClassPath()).isNull();
assertThat(options.getCompiler()).isNull();
diff --git a/java-jsp/src/test/java/org/sonar/java/jsp/JasperTest.java b/java-jsp/src/test/java/org/sonar/java/jsp/JasperTest.java
index 32e6d15c7cf..16404eb5358 100644
--- a/java-jsp/src/test/java/org/sonar/java/jsp/JasperTest.java
+++ b/java-jsp/src/test/java/org/sonar/java/jsp/JasperTest.java
@@ -74,7 +74,7 @@ class JasperTest {
@RegisterExtension
public LogTesterJUnit5 logTester = new LogTesterJUnit5().setLevel(Level.DEBUG);
private Path jspFile;
- private final File springJar = Paths.get("target/test-jars/spring-webmvc-5.2.3.RELEASE.jar").toFile();
+ private final File springJar = Paths.get("target/test-jars/spring-webmvc.jar").toFile();
private final File jstlJar = Paths.get("target/test-jars/jstl-1.2.jar").toFile();
private final File jee6Jar = Paths.get("target/test-jars/javaee-web-api-6.0.jar").toFile();
diff --git a/override-dep-licenses.properties b/override-dep-licenses.properties
index 9dab5494438..d464288c425 100644
--- a/override-dep-licenses.properties
+++ b/override-dep-licenses.properties
@@ -7,3 +7,7 @@ org.ow2.asm--asm-commons--8.0.1=bsd
org.ow2.asm--asm-tree--8.0.1=bsd
org.ow2.asm--asm-util--8.0.1=bsd
org.codehaus.woodstox--stax2-api--4.3.0=bsd
+
+# Tomcat uses both Apache v2 and CDDL, but its POM combines them in a way the license plugin cannot recognize.
+# Override to the accepted Apache license, as previously done for older versions of this artifact.
+org.apache.tomcat--tomcat-servlet-api--9.0.120=apache_v2
diff --git a/sonar-java-plugin/license-resources/tomcat.txt b/sonar-java-plugin/license-resources/tomcat.txt
new file mode 100644
index 00000000000..3c90dffae2b
--- /dev/null
+++ b/sonar-java-plugin/license-resources/tomcat.txt
@@ -0,0 +1,563 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+APACHE TOMCAT SUBCOMPONENTS:
+
+Apache Tomcat includes a number of subcomponents with separate copyright notices
+and license terms. Your use of these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+For the following XML Schemas for Java EE Deployment Descriptors:
+ - javaee_5.xsd
+ - javaee_web_services_1_2.xsd
+ - javaee_web_services_client_1_2.xsd
+ - javaee_6.xsd
+ - javaee_web_services_1_3.xsd
+ - javaee_web_services_client_1_3.xsd
+ - jsp_2_2.xsd
+ - web-app_3_0.xsd
+ - web-common_3_0.xsd
+ - web-fragment_3_0.xsd
+ - javaee_7.xsd
+ - javaee_web_services_1_4.xsd
+ - javaee_web_services_client_1_4.xsd
+ - jsp_2_3.xsd
+ - web-app_3_1.xsd
+ - web-common_3_1.xsd
+ - web-fragment_3_1.xsd
+ - javaee_8.xsd
+ - web-app_4_0.xsd
+ - web-common_4_0.xsd
+ - web-fragment_4_0.xsd
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+ 1.1. Contributor. means each individual or entity that creates or contributes
+ to the creation of Modifications.
+
+ 1.2. Contributor Version. means the combination of the Original Software,
+ prior Modifications used by a Contributor (if any), and the
+ Modifications made by that particular Contributor.
+
+ 1.3. Covered Software. means (a) the Original Software, or (b) Modifications,
+ or (c) the combination of files containing Original Software with files
+ containing Modifications, in each case including portions thereof.
+
+ 1.4. Executable. means the Covered Software in any form other than Source
+ Code.
+
+ 1.5. Initial Developer. means the individual or entity that first makes
+ Original Software available under this License.
+
+ 1.6. Larger Work. means a work which combines Covered Software or portions
+ thereof with code not governed by the terms of this License.
+
+ 1.7. License. means this document.
+
+ 1.8. Licensable. means having the right to grant, to the maximum extent
+ possible, whether at the time of the initial grant or subsequently
+ acquired, any and all of the rights conveyed herein.
+
+ 1.9. Modifications. means the Source Code and Executable form of any of the
+ following:
+
+ A. Any file that results from an addition to, deletion from or
+ modification of the contents of a file containing Original Software
+ or previous Modifications;
+
+ B. Any new file that contains any part of the Original Software or
+ previous Modification; or
+
+ C. Any new file that is contributed or otherwise made available under
+ the terms of this License.
+
+ 1.10. Original Software. means the Source Code and Executable form of
+ computer software code that is originally released under this License.
+
+ 1.11. Patent Claims. means any patent claim(s), now owned or hereafter
+ acquired, including without limitation, method, process, and apparatus
+ claims, in any patent Licensable by grantor.
+
+ 1.12. Source Code. means (a) the common form of computer software code in
+ which modifications are made and (b) associated documentation included
+ in or with such code.
+
+ 1.13. You. (or .Your.) means an individual or a legal entity exercising
+ rights under, and complying with all of the terms of, this License. For
+ legal entities, .You. includes any entity which controls, is controlled
+ by, or is under common control with You. For purposes of this
+ definition, .control. means (a) the power, direct or indirect, to cause
+ the direction or management of such entity, whether by contract or
+ otherwise, or (b) ownership of more than fifty percent (50%) of the
+ outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+ 2.1. The Initial Developer Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and subject to
+ third party intellectual property claims, the Initial Developer hereby
+ grants You a world-wide, royalty-free, non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or trademark)
+ Licensable by Initial Developer, to use, reproduce, modify, display,
+ perform, sublicense and distribute the Original Software (or
+ portions thereof), with or without Modifications, and/or as part of
+ a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using or selling of
+ Original Software, to make, have made, use, practice, sell, and
+ offer for sale, and/or otherwise dispose of the Original Software
+ (or portions thereof).
+
+ (c) The licenses granted in Sections 2.1(a) and (b) are effective on the
+ date Initial Developer first distributes or otherwise makes the
+ Original Software available to a third party under the terms of this
+ License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is granted:
+ (1) for code that You delete from the Original Software, or (2) for
+ infringements caused by: (i) the modification of the Original
+ Software, or (ii) the combination of the Original Software with
+ other software or devices.
+
+ 2.2. Contributor Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and subject to third
+ party intellectual property claims, each Contributor hereby grants You a
+ world-wide, royalty-free, non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or trademark)
+ Licensable by Contributor to use, reproduce, modify, display,
+ perform, sublicense and distribute the Modifications created by such
+ Contributor (or portions thereof), either on an unmodified basis,
+ with other Modifications, as Covered Software and/or as part of a
+ Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or selling of
+ Modifications made by that Contributor either alone and/or in
+ combination with its Contributor Version (or portions of such
+ combination), to make, use, sell, offer for sale, have made, and/or
+ otherwise dispose of: (1) Modifications made by that Contributor (or
+ portions thereof); and (2) the combination of Modifications made by
+ that Contributor with its Contributor Version (or portions of such
+ combination).
+
+ (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on
+ the date Contributor first distributes or otherwise makes the
+ Modifications available to a third party.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is granted:
+ (1) for any code that Contributor has deleted from the Contributor
+ Version; (2) for infringements caused by: (i) third party
+ modifications of Contributor Version, or (ii) the combination of
+ Modifications made by that Contributor with other software (except
+ as part of the Contributor Version) or other devices; or (3) under
+ Patent Claims infringed by Covered Software in the absence of
+ Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Availability of Source Code.
+ Any Covered Software that You distribute or otherwise make available in
+ Executable form must also be made available in Source Code form and that
+ Source Code form must be distributed only under the terms of this License.
+ You must include a copy of this License with every copy of the Source Code
+ form of the Covered Software You distribute or otherwise make available.
+ You must inform recipients of any such Covered Software in Executable form
+ as to how they can obtain such Covered Software in Source Code form in a
+ reasonable manner on or through a medium customarily used for software
+ exchange.
+
+ 3.2. Modifications.
+ The Modifications that You create or to which You contribute are governed
+ by the terms of this License. You represent that You believe Your
+ Modifications are Your original creation(s) and/or You have sufficient
+ rights to grant the rights conveyed by this License.
+
+ 3.3. Required Notices.
+ You must include a notice in each of Your Modifications that identifies
+ You as the Contributor of the Modification. You may not remove or alter
+ any copyright, patent or trademark notices contained within the Covered
+ Software, or any notices of licensing or any descriptive text giving
+ attribution to any Contributor or the Initial Developer.
+
+ 3.4. Application of Additional Terms.
+ You may not offer or impose any terms on any Covered Software in Source
+ Code form that alters or restricts the applicable version of this License
+ or the recipients. rights hereunder. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability obligations to
+ one or more recipients of Covered Software. However, you may do so only on
+ Your own behalf, and not on behalf of the Initial Developer or any
+ Contributor. You must make it absolutely clear that any such warranty,
+ support, indemnity or liability obligation is offered by You alone, and
+ You hereby agree to indemnify the Initial Developer and every Contributor
+ for any liability incurred by the Initial Developer or such Contributor as
+ a result of warranty, support, indemnity or liability terms You offer.
+
+ 3.5. Distribution of Executable Versions.
+ You may distribute the Executable form of the Covered Software under the
+ terms of this License or under the terms of a license of Your choice,
+ which may contain terms different from this License, provided that You are
+ in compliance with the terms of this License and that the license for the
+ Executable form does not attempt to limit or alter the recipient.s rights
+ in the Source Code form from the rights set forth in this License. If You
+ distribute the Covered Software in Executable form under a different
+ license, You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial Developer
+ or Contributor. You hereby agree to indemnify the Initial Developer and
+ every Contributor for any liability incurred by the Initial Developer or
+ such Contributor as a result of any such terms You offer.
+
+ 3.6. Larger Works.
+ You may create a Larger Work by combining Covered Software with other code
+ not governed by the terms of this License and distribute the Larger Work
+ as a single product. In such a case, You must make sure the requirements
+ of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+ 4.1. New Versions.
+ Sun Microsystems, Inc. is the initial license steward and may publish
+ revised and/or new versions of this License from time to time. Each
+ version will be given a distinguishing version number. Except as provided
+ in Section 4.3, no one other than the license steward has the right to
+ modify this License.
+
+ 4.2. Effect of New Versions.
+ You may always continue to use, distribute or otherwise make the Covered
+ Software available under the terms of the version of the License under
+ which You originally received the Covered Software. If the Initial
+ Developer includes a notice in the Original Software prohibiting it from
+ being distributed or otherwise made available under any subsequent version
+ of the License, You must distribute and make the Covered Software
+ available under the terms of the version of the License under which You
+ originally received the Covered Software. Otherwise, You may also choose
+ to use, distribute or otherwise make the Covered Software available under
+ the terms of any subsequent version of the License published by the
+ license steward.
+
+ 4.3. Modified Versions.
+ When You are an Initial Developer and You want to create a new license for
+ Your Original Software, You may create and use a modified version of this
+ License if You: (a) rename the license and remove any references to the
+ name of the license steward (except to note that the license differs from
+ this License); and (b) otherwise make it clear that the license contains
+ terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN .AS IS. BASIS, WITHOUT
+ WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+ LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
+ MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK
+ AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD
+ ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
+ DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+ SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED
+ HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+ 6.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to
+ cure such breach within 30 days of becoming aware of the breach.
+ Provisions which, by their nature, must remain in effect beyond the
+ termination of this License shall survive.
+
+ 6.2. If You assert a patent infringement claim (excluding declaratory
+ judgment actions) against Initial Developer or a Contributor (the
+ Initial Developer or Contributor against whom You assert such claim
+ is referred to as .Participant.) alleging that the Participant
+ Software (meaning the Contributor Version where the Participant is a
+ Contributor or the Original Software where the Participant is the
+ Initial Developer) directly or indirectly infringes any patent, then
+ any and all rights granted directly or indirectly to You by such
+ Participant, the Initial Developer (if the Initial Developer is not
+ the Participant) and all Contributors under Sections 2.1 and/or 2.2
+ of this License shall, upon 60 days notice from Participant terminate
+ prospectively and automatically at the expiration of such 60 day
+ notice period, unless if within such 60 day period You withdraw Your
+ claim with respect to the Participant Software against such
+ Participant either unilaterally or pursuant to a written agreement
+ with Participant.
+
+ 6.3. In the event of termination under Sections 6.1 or 6.2 above, all end
+ user licenses that have been validly granted by You or any
+ distributor hereunder prior to termination (excluding licenses
+ granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
+ NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
+ OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF
+ ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
+ INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE,
+ COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR
+ LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
+ SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR
+ DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY.S NEGLIGENCE TO THE EXTENT
+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+ EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+ The Covered Software is a .commercial item,. as that term is defined in 48
+ C.F.R. 2.101 (Oct. 1995), consisting of .commercial computer software. (as
+ that term is defined at 48 C.F.R. ? 252.227-7014(a)(1)) and commercial
+ computer software documentation. as such terms are used in 48 C.F.R. 12.212
+ (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+ through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered
+ Software with only those rights set forth herein. This U.S. Government Rights
+ clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or
+ provision that addresses Government rights in computer software under this
+ License.
+
+9. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject matter
+ hereof. If any provision of this License is held to be unenforceable, such
+ provision shall be reformed only to the extent necessary to make it
+ enforceable. This License shall be governed by the law of the jurisdiction
+ specified in a notice contained within the Original Software (except to the
+ extent applicable law, if any, provides otherwise), excluding such
+ jurisdiction's conflict-of-law provisions. Any litigation relating to this
+ License shall be subject to the jurisdiction of the courts located in the
+ jurisdiction and venue specified in a notice contained within the Original
+ Software, with the losing party responsible for costs, including, without
+ limitation, court costs and reasonable attorneys. fees and expenses. The
+ application of the United Nations Convention on Contracts for the
+ International Sale of Goods is expressly excluded. Any law or regulation
+ which provides that the language of a contract shall be construed against
+ the drafter shall not apply to this License. You agree that You alone are
+ responsible for compliance with the United States export administration
+ regulations (and the export control laws and regulation of any other
+ countries) when You use, distribute or otherwise make available any Covered
+ Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is responsible
+ for claims and damages arising, directly or indirectly, out of its
+ utilization of rights under this License and You agree to work with Initial
+ Developer and Contributors to distribute such responsibility on an equitable
+ basis. Nothing herein is intended or shall be deemed to constitute any
+ admission of liability.
+
+ NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION
+ LICENSE (CDDL)
+
+ The code released under the CDDL shall be governed by the laws of the State
+ of California (excluding conflict-of-law provisions). Any litigation relating
+ to this License shall be subject to the jurisdiction of the Federal Courts of
+ the Northern District of California and the state courts of the State of
+ California, with venue lying in Santa Clara County, California.
diff --git a/sonar-java-plugin/pom.xml b/sonar-java-plugin/pom.xml
index 72646a2dab4..63a390186b7 100644
--- a/sonar-java-plugin/pom.xml
+++ b/sonar-java-plugin/pom.xml
@@ -78,6 +78,13 @@
sonar-performance-measure
+
+
+ org.apache.tomcat
+ tomcat-servlet-api
+ 9.0.120
+
+
org.sonarsource.api.plugin
sonar-plugin-api
@@ -252,6 +259,41 @@
**
+
+ org.apache.tomcat:tomcat-servlet-api
+
+ javax/servlet/**
+
+
+ javax/servlet/resources/**
+
+ javax/servlet/GenericFilter.class
+ javax/servlet/ServletContextAttributeEvent.class
+ javax/servlet/ServletContextAttributeListener.class
+ javax/servlet/ServletContextEvent.class
+ javax/servlet/ServletContextListener.class
+ javax/servlet/ServletRequestAttributeEvent.class
+ javax/servlet/ServletRequestAttributeListener.class
+ javax/servlet/ServletRequestEvent.class
+ javax/servlet/ServletRequestListener.class
+ javax/servlet/ServletRequestWrapper.class
+ javax/servlet/annotation/HandlesTypes.class
+ javax/servlet/annotation/WebFilter.class
+ javax/servlet/annotation/WebInitParam.class
+ javax/servlet/annotation/WebListener.class
+ javax/servlet/annotation/WebServlet.class
+ javax/servlet/http/HttpFilter.class
+ javax/servlet/http/HttpServletRequestWrapper.class
+ javax/servlet/http/HttpSessionActivationListener.class
+ javax/servlet/http/HttpSessionAttributeListener.class
+ javax/servlet/http/HttpSessionBindingEvent.class
+ javax/servlet/http/HttpSessionBindingListener.class
+ javax/servlet/http/HttpSessionEvent.class
+ javax/servlet/http/HttpSessionIdListener.class
+ javax/servlet/http/HttpSessionListener.class
+ javax/servlet/http/HttpUtils.class
+
+
org.apache.tomcat.embed:tomcat-embed-el
@@ -308,6 +350,10 @@
http://www.opensource.org/licenses/bsd-license.php
${project.baseUri}/license-resources/bsd.txt
+
+ http://www\.apache\.org/licenses/LICENSE-2\.0\.txt\s+and\s+https://opensource\.org/license/CDDL-1\.0\s+and
+ ${project.baseUri}/license-resources/tomcat.txt
+
diff --git a/sonar-java-plugin/src/main/resources/licenses/THIRD_PARTY_LICENSES/org.apache.tomcat.tomcat-servlet-api-LICENSE.txt b/sonar-java-plugin/src/main/resources/licenses/THIRD_PARTY_LICENSES/org.apache.tomcat.tomcat-servlet-api-LICENSE.txt
new file mode 100644
index 00000000000..3c90dffae2b
--- /dev/null
+++ b/sonar-java-plugin/src/main/resources/licenses/THIRD_PARTY_LICENSES/org.apache.tomcat.tomcat-servlet-api-LICENSE.txt
@@ -0,0 +1,563 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+APACHE TOMCAT SUBCOMPONENTS:
+
+Apache Tomcat includes a number of subcomponents with separate copyright notices
+and license terms. Your use of these subcomponents is subject to the terms and
+conditions of the following licenses.
+
+
+For the following XML Schemas for Java EE Deployment Descriptors:
+ - javaee_5.xsd
+ - javaee_web_services_1_2.xsd
+ - javaee_web_services_client_1_2.xsd
+ - javaee_6.xsd
+ - javaee_web_services_1_3.xsd
+ - javaee_web_services_client_1_3.xsd
+ - jsp_2_2.xsd
+ - web-app_3_0.xsd
+ - web-common_3_0.xsd
+ - web-fragment_3_0.xsd
+ - javaee_7.xsd
+ - javaee_web_services_1_4.xsd
+ - javaee_web_services_client_1_4.xsd
+ - jsp_2_3.xsd
+ - web-app_3_1.xsd
+ - web-common_3_1.xsd
+ - web-fragment_3_1.xsd
+ - javaee_8.xsd
+ - web-app_4_0.xsd
+ - web-common_4_0.xsd
+ - web-fragment_4_0.xsd
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+ 1.1. Contributor. means each individual or entity that creates or contributes
+ to the creation of Modifications.
+
+ 1.2. Contributor Version. means the combination of the Original Software,
+ prior Modifications used by a Contributor (if any), and the
+ Modifications made by that particular Contributor.
+
+ 1.3. Covered Software. means (a) the Original Software, or (b) Modifications,
+ or (c) the combination of files containing Original Software with files
+ containing Modifications, in each case including portions thereof.
+
+ 1.4. Executable. means the Covered Software in any form other than Source
+ Code.
+
+ 1.5. Initial Developer. means the individual or entity that first makes
+ Original Software available under this License.
+
+ 1.6. Larger Work. means a work which combines Covered Software or portions
+ thereof with code not governed by the terms of this License.
+
+ 1.7. License. means this document.
+
+ 1.8. Licensable. means having the right to grant, to the maximum extent
+ possible, whether at the time of the initial grant or subsequently
+ acquired, any and all of the rights conveyed herein.
+
+ 1.9. Modifications. means the Source Code and Executable form of any of the
+ following:
+
+ A. Any file that results from an addition to, deletion from or
+ modification of the contents of a file containing Original Software
+ or previous Modifications;
+
+ B. Any new file that contains any part of the Original Software or
+ previous Modification; or
+
+ C. Any new file that is contributed or otherwise made available under
+ the terms of this License.
+
+ 1.10. Original Software. means the Source Code and Executable form of
+ computer software code that is originally released under this License.
+
+ 1.11. Patent Claims. means any patent claim(s), now owned or hereafter
+ acquired, including without limitation, method, process, and apparatus
+ claims, in any patent Licensable by grantor.
+
+ 1.12. Source Code. means (a) the common form of computer software code in
+ which modifications are made and (b) associated documentation included
+ in or with such code.
+
+ 1.13. You. (or .Your.) means an individual or a legal entity exercising
+ rights under, and complying with all of the terms of, this License. For
+ legal entities, .You. includes any entity which controls, is controlled
+ by, or is under common control with You. For purposes of this
+ definition, .control. means (a) the power, direct or indirect, to cause
+ the direction or management of such entity, whether by contract or
+ otherwise, or (b) ownership of more than fifty percent (50%) of the
+ outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+ 2.1. The Initial Developer Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and subject to
+ third party intellectual property claims, the Initial Developer hereby
+ grants You a world-wide, royalty-free, non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or trademark)
+ Licensable by Initial Developer, to use, reproduce, modify, display,
+ perform, sublicense and distribute the Original Software (or
+ portions thereof), with or without Modifications, and/or as part of
+ a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using or selling of
+ Original Software, to make, have made, use, practice, sell, and
+ offer for sale, and/or otherwise dispose of the Original Software
+ (or portions thereof).
+
+ (c) The licenses granted in Sections 2.1(a) and (b) are effective on the
+ date Initial Developer first distributes or otherwise makes the
+ Original Software available to a third party under the terms of this
+ License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is granted:
+ (1) for code that You delete from the Original Software, or (2) for
+ infringements caused by: (i) the modification of the Original
+ Software, or (ii) the combination of the Original Software with
+ other software or devices.
+
+ 2.2. Contributor Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and subject to third
+ party intellectual property claims, each Contributor hereby grants You a
+ world-wide, royalty-free, non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or trademark)
+ Licensable by Contributor to use, reproduce, modify, display,
+ perform, sublicense and distribute the Modifications created by such
+ Contributor (or portions thereof), either on an unmodified basis,
+ with other Modifications, as Covered Software and/or as part of a
+ Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or selling of
+ Modifications made by that Contributor either alone and/or in
+ combination with its Contributor Version (or portions of such
+ combination), to make, use, sell, offer for sale, have made, and/or
+ otherwise dispose of: (1) Modifications made by that Contributor (or
+ portions thereof); and (2) the combination of Modifications made by
+ that Contributor with its Contributor Version (or portions of such
+ combination).
+
+ (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on
+ the date Contributor first distributes or otherwise makes the
+ Modifications available to a third party.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is granted:
+ (1) for any code that Contributor has deleted from the Contributor
+ Version; (2) for infringements caused by: (i) third party
+ modifications of Contributor Version, or (ii) the combination of
+ Modifications made by that Contributor with other software (except
+ as part of the Contributor Version) or other devices; or (3) under
+ Patent Claims infringed by Covered Software in the absence of
+ Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Availability of Source Code.
+ Any Covered Software that You distribute or otherwise make available in
+ Executable form must also be made available in Source Code form and that
+ Source Code form must be distributed only under the terms of this License.
+ You must include a copy of this License with every copy of the Source Code
+ form of the Covered Software You distribute or otherwise make available.
+ You must inform recipients of any such Covered Software in Executable form
+ as to how they can obtain such Covered Software in Source Code form in a
+ reasonable manner on or through a medium customarily used for software
+ exchange.
+
+ 3.2. Modifications.
+ The Modifications that You create or to which You contribute are governed
+ by the terms of this License. You represent that You believe Your
+ Modifications are Your original creation(s) and/or You have sufficient
+ rights to grant the rights conveyed by this License.
+
+ 3.3. Required Notices.
+ You must include a notice in each of Your Modifications that identifies
+ You as the Contributor of the Modification. You may not remove or alter
+ any copyright, patent or trademark notices contained within the Covered
+ Software, or any notices of licensing or any descriptive text giving
+ attribution to any Contributor or the Initial Developer.
+
+ 3.4. Application of Additional Terms.
+ You may not offer or impose any terms on any Covered Software in Source
+ Code form that alters or restricts the applicable version of this License
+ or the recipients. rights hereunder. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability obligations to
+ one or more recipients of Covered Software. However, you may do so only on
+ Your own behalf, and not on behalf of the Initial Developer or any
+ Contributor. You must make it absolutely clear that any such warranty,
+ support, indemnity or liability obligation is offered by You alone, and
+ You hereby agree to indemnify the Initial Developer and every Contributor
+ for any liability incurred by the Initial Developer or such Contributor as
+ a result of warranty, support, indemnity or liability terms You offer.
+
+ 3.5. Distribution of Executable Versions.
+ You may distribute the Executable form of the Covered Software under the
+ terms of this License or under the terms of a license of Your choice,
+ which may contain terms different from this License, provided that You are
+ in compliance with the terms of this License and that the license for the
+ Executable form does not attempt to limit or alter the recipient.s rights
+ in the Source Code form from the rights set forth in this License. If You
+ distribute the Covered Software in Executable form under a different
+ license, You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial Developer
+ or Contributor. You hereby agree to indemnify the Initial Developer and
+ every Contributor for any liability incurred by the Initial Developer or
+ such Contributor as a result of any such terms You offer.
+
+ 3.6. Larger Works.
+ You may create a Larger Work by combining Covered Software with other code
+ not governed by the terms of this License and distribute the Larger Work
+ as a single product. In such a case, You must make sure the requirements
+ of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+ 4.1. New Versions.
+ Sun Microsystems, Inc. is the initial license steward and may publish
+ revised and/or new versions of this License from time to time. Each
+ version will be given a distinguishing version number. Except as provided
+ in Section 4.3, no one other than the license steward has the right to
+ modify this License.
+
+ 4.2. Effect of New Versions.
+ You may always continue to use, distribute or otherwise make the Covered
+ Software available under the terms of the version of the License under
+ which You originally received the Covered Software. If the Initial
+ Developer includes a notice in the Original Software prohibiting it from
+ being distributed or otherwise made available under any subsequent version
+ of the License, You must distribute and make the Covered Software
+ available under the terms of the version of the License under which You
+ originally received the Covered Software. Otherwise, You may also choose
+ to use, distribute or otherwise make the Covered Software available under
+ the terms of any subsequent version of the License published by the
+ license steward.
+
+ 4.3. Modified Versions.
+ When You are an Initial Developer and You want to create a new license for
+ Your Original Software, You may create and use a modified version of this
+ License if You: (a) rename the license and remove any references to the
+ name of the license steward (except to note that the license differs from
+ this License); and (b) otherwise make it clear that the license contains
+ terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN .AS IS. BASIS, WITHOUT
+ WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+ LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
+ MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK
+ AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD
+ ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL
+ DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+ SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED
+ HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+ 6.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to
+ cure such breach within 30 days of becoming aware of the breach.
+ Provisions which, by their nature, must remain in effect beyond the
+ termination of this License shall survive.
+
+ 6.2. If You assert a patent infringement claim (excluding declaratory
+ judgment actions) against Initial Developer or a Contributor (the
+ Initial Developer or Contributor against whom You assert such claim
+ is referred to as .Participant.) alleging that the Participant
+ Software (meaning the Contributor Version where the Participant is a
+ Contributor or the Original Software where the Participant is the
+ Initial Developer) directly or indirectly infringes any patent, then
+ any and all rights granted directly or indirectly to You by such
+ Participant, the Initial Developer (if the Initial Developer is not
+ the Participant) and all Contributors under Sections 2.1 and/or 2.2
+ of this License shall, upon 60 days notice from Participant terminate
+ prospectively and automatically at the expiration of such 60 day
+ notice period, unless if within such 60 day period You withdraw Your
+ claim with respect to the Participant Software against such
+ Participant either unilaterally or pursuant to a written agreement
+ with Participant.
+
+ 6.3. In the event of termination under Sections 6.1 or 6.2 above, all end
+ user licenses that have been validly granted by You or any
+ distributor hereunder prior to termination (excluding licenses
+ granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING
+ NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY
+ OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF
+ ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL,
+ INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE,
+ COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR
+ LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
+ SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR
+ DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY.S NEGLIGENCE TO THE EXTENT
+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+ EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+ The Covered Software is a .commercial item,. as that term is defined in 48
+ C.F.R. 2.101 (Oct. 1995), consisting of .commercial computer software. (as
+ that term is defined at 48 C.F.R. ? 252.227-7014(a)(1)) and commercial
+ computer software documentation. as such terms are used in 48 C.F.R. 12.212
+ (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+ through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered
+ Software with only those rights set forth herein. This U.S. Government Rights
+ clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or
+ provision that addresses Government rights in computer software under this
+ License.
+
+9. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject matter
+ hereof. If any provision of this License is held to be unenforceable, such
+ provision shall be reformed only to the extent necessary to make it
+ enforceable. This License shall be governed by the law of the jurisdiction
+ specified in a notice contained within the Original Software (except to the
+ extent applicable law, if any, provides otherwise), excluding such
+ jurisdiction's conflict-of-law provisions. Any litigation relating to this
+ License shall be subject to the jurisdiction of the courts located in the
+ jurisdiction and venue specified in a notice contained within the Original
+ Software, with the losing party responsible for costs, including, without
+ limitation, court costs and reasonable attorneys. fees and expenses. The
+ application of the United Nations Convention on Contracts for the
+ International Sale of Goods is expressly excluded. Any law or regulation
+ which provides that the language of a contract shall be construed against
+ the drafter shall not apply to this License. You agree that You alone are
+ responsible for compliance with the United States export administration
+ regulations (and the export control laws and regulation of any other
+ countries) when You use, distribute or otherwise make available any Covered
+ Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is responsible
+ for claims and damages arising, directly or indirectly, out of its
+ utilization of rights under this License and You agree to work with Initial
+ Developer and Contributors to distribute such responsibility on an equitable
+ basis. Nothing herein is intended or shall be deemed to constitute any
+ admission of liability.
+
+ NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION
+ LICENSE (CDDL)
+
+ The code released under the CDDL shall be governed by the laws of the State
+ of California (excluding conflict-of-law provisions). Any litigation relating
+ to this License shall be subject to the jurisdiction of the Federal Courts of
+ the Northern District of California and the state courts of the State of
+ California, with venue lying in Santa Clara County, California.