mirror of
https://github.com/didi/KnowStreaming.git
synced 2025-12-24 11:52:08 +08:00
Add km module kafka
This commit is contained in:
23
gradle/buildscript.gradle
Normal file
23
gradle/buildscript.gradle
Normal file
@@ -0,0 +1,23 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
// contributor license agreements. See the NOTICE file distributed with
|
||||
// this work for additional information regarding copyright ownership.
|
||||
// The ASF licenses this file to You 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.
|
||||
|
||||
repositories {
|
||||
repositories {
|
||||
// For license plugin.
|
||||
maven {
|
||||
url 'https://dl.bintray.com/content/netflixoss/external-gradle-plugins/'
|
||||
}
|
||||
}
|
||||
}
|
||||
194
gradle/dependencies.gradle
Normal file
194
gradle/dependencies.gradle
Normal file
@@ -0,0 +1,194 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.
|
||||
*/
|
||||
|
||||
ext {
|
||||
versions = [:]
|
||||
libs = [:]
|
||||
|
||||
// Enabled by default when commands like `testAll` are invoked
|
||||
defaultScalaVersions = [ '2.12', '2.13' ]
|
||||
// Available if -PscalaVersion is used. This is useful when we want to support a Scala version that has
|
||||
// a higher minimum Java requirement than Kafka. This was previously the case for Scala 2.12 and Java 7.
|
||||
availableScalaVersions = [ '2.12', '2.13' ]
|
||||
}
|
||||
|
||||
// Add Scala version
|
||||
def defaultScala212Version = '2.12.10'
|
||||
def defaultScala213Version = '2.13.1'
|
||||
if (hasProperty('scalaVersion')) {
|
||||
if (scalaVersion == '2.12') {
|
||||
versions["scala"] = defaultScala212Version
|
||||
} else if (scalaVersion == '2.13') {
|
||||
versions["scala"] = defaultScala213Version
|
||||
} else {
|
||||
versions["scala"] = scalaVersion
|
||||
}
|
||||
} else {
|
||||
versions["scala"] = defaultScala212Version
|
||||
}
|
||||
|
||||
/* Resolve base Scala version according to these patterns:
|
||||
1. generally available Scala versions (such as: 2.12.y and 2.13.z) corresponding base versions will be: 2.12 and 2.13 (respectively)
|
||||
2. pre-release Scala versions (i.e. milestone/rc, such as: 2.13.0-M5, 2.13.0-RC1, 2.14.0-M1, etc.) will have identical base versions;
|
||||
rationale: pre-release Scala versions are not binary compatible with each other and that's the reason why libraries include the full
|
||||
Scala release string in their name for pre-releases (see dependencies below with an artifact name suffix '_$versions.baseScala')
|
||||
*/
|
||||
if ( !versions.scala.contains('-') ) {
|
||||
versions["baseScala"] = versions.scala.substring(0, versions.scala.lastIndexOf("."))
|
||||
} else {
|
||||
versions["baseScala"] = versions.scala
|
||||
}
|
||||
|
||||
versions += [
|
||||
activation: "1.1.1",
|
||||
apacheda: "1.0.2",
|
||||
apacheds: "2.0.0-M24",
|
||||
argparse4j: "0.7.0",
|
||||
bcpkix: "1.64",
|
||||
checkstyle: "8.20",
|
||||
commonsCli: "1.4",
|
||||
gradle: "5.6.2",
|
||||
gradleVersionsPlugin: "0.27.0",
|
||||
grgit: "4.0.1",
|
||||
httpclient: "4.5.11",
|
||||
easymock: "4.1",
|
||||
jackson: "2.10.2",
|
||||
jacoco: "0.8.3",
|
||||
// 9.4.25 renamed closeOutput to completeOutput (https://github.com/eclipse/jetty.project/commit/c5acf965067478784b54e2d241ec58fdb0b2c9fe)
|
||||
// which is a method used by recent Jersey versions when this comment was written (2.30.1 was the latest). Please
|
||||
// verify that this is fixed in some way before bumping the Jetty version.
|
||||
jetty: "9.4.24.v20191120",
|
||||
jersey: "2.28",
|
||||
jmh: "1.23",
|
||||
hamcrest: "2.2",
|
||||
log4j: "1.2.17",
|
||||
scalaLogging: "3.9.2",
|
||||
jaxb: "2.3.0",
|
||||
jaxrs: "2.1.1",
|
||||
jfreechart: "1.0.0",
|
||||
jopt: "5.0.4",
|
||||
junit: "4.13",
|
||||
kafka_0100: "0.10.0.1",
|
||||
kafka_0101: "0.10.1.1",
|
||||
kafka_0102: "0.10.2.2",
|
||||
kafka_0110: "0.11.0.3",
|
||||
kafka_10: "1.0.2",
|
||||
kafka_11: "1.1.1",
|
||||
kafka_20: "2.0.1",
|
||||
kafka_21: "2.1.1",
|
||||
kafka_22: "2.2.2",
|
||||
kafka_23: "2.3.1",
|
||||
kafka_24: "2.4.0",
|
||||
kafka_25: "2.5.0",
|
||||
lz4: "1.7.1",
|
||||
mavenArtifact: "3.6.3",
|
||||
metrics: "2.2.0",
|
||||
mockito: "3.2.4",
|
||||
netty: "4.1.50.Final",
|
||||
owaspDepCheckPlugin: "5.2.4",
|
||||
powermock: "2.0.5",
|
||||
reflections: "0.9.12",
|
||||
rocksDB: "5.18.3",
|
||||
scalaCollectionCompat: "2.1.3",
|
||||
scalafmt: "1.5.1",
|
||||
scalaJava8Compat : "0.9.0",
|
||||
scalatest: "3.0.8",
|
||||
scoverage: "1.4.1",
|
||||
scoveragePlugin: "4.0.1",
|
||||
shadowPlugin: "5.2.0",
|
||||
slf4j: "1.7.30",
|
||||
snappy: "1.1.7.3",
|
||||
spotbugs: "3.1.12",
|
||||
spotbugsPlugin: "3.0.0",
|
||||
spotlessPlugin: "3.27.1",
|
||||
zookeeper: "3.5.8",
|
||||
zstd: "1.4.4-7"
|
||||
]
|
||||
libs += [
|
||||
activation: "javax.activation:activation:$versions.activation",
|
||||
apacheda: "org.apache.directory.api:api-all:$versions.apacheda",
|
||||
apachedsCoreApi: "org.apache.directory.server:apacheds-core-api:$versions.apacheds",
|
||||
apachedsInterceptorKerberos: "org.apache.directory.server:apacheds-interceptor-kerberos:$versions.apacheds",
|
||||
apachedsProtocolShared: "org.apache.directory.server:apacheds-protocol-shared:$versions.apacheds",
|
||||
apachedsProtocolKerberos: "org.apache.directory.server:apacheds-protocol-kerberos:$versions.apacheds",
|
||||
apachedsProtocolLdap: "org.apache.directory.server:apacheds-protocol-ldap:$versions.apacheds",
|
||||
apachedsLdifPartition: "org.apache.directory.server:apacheds-ldif-partition:$versions.apacheds",
|
||||
apachedsMavibotPartition: "org.apache.directory.server:apacheds-mavibot-partition:$versions.apacheds",
|
||||
apachedsJdbmPartition: "org.apache.directory.server:apacheds-jdbm-partition:$versions.apacheds",
|
||||
argparse4j: "net.sourceforge.argparse4j:argparse4j:$versions.argparse4j",
|
||||
bcpkix: "org.bouncycastle:bcpkix-jdk15on:$versions.bcpkix",
|
||||
commonsCli: "commons-cli:commons-cli:$versions.commonsCli",
|
||||
easymock: "org.easymock:easymock:$versions.easymock",
|
||||
jacksonAnnotations: "com.fasterxml.jackson.core:jackson-annotations:$versions.jackson",
|
||||
jacksonDatabind: "com.fasterxml.jackson.core:jackson-databind:$versions.jackson",
|
||||
jacksonDataformatCsv: "com.fasterxml.jackson.dataformat:jackson-dataformat-csv:$versions.jackson",
|
||||
jacksonModuleScala: "com.fasterxml.jackson.module:jackson-module-scala_$versions.baseScala:$versions.jackson",
|
||||
jacksonJDK8Datatypes: "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$versions.jackson",
|
||||
jacksonJaxrsJsonProvider: "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:$versions.jackson",
|
||||
jaxbApi: "javax.xml.bind:jaxb-api:$versions.jaxb",
|
||||
jaxrsApi: "javax.ws.rs:javax.ws.rs-api:$versions.jaxrs",
|
||||
jettyServer: "org.eclipse.jetty:jetty-server:$versions.jetty",
|
||||
jettyClient: "org.eclipse.jetty:jetty-client:$versions.jetty",
|
||||
jettyServlet: "org.eclipse.jetty:jetty-servlet:$versions.jetty",
|
||||
jettyServlets: "org.eclipse.jetty:jetty-servlets:$versions.jetty",
|
||||
jerseyContainerServlet: "org.glassfish.jersey.containers:jersey-container-servlet:$versions.jersey",
|
||||
jerseyHk2: "org.glassfish.jersey.inject:jersey-hk2:$versions.jersey",
|
||||
jmhCore: "org.openjdk.jmh:jmh-core:$versions.jmh",
|
||||
jmhCoreBenchmarks: "org.openjdk.jmh:jmh-core-benchmarks:$versions.jmh",
|
||||
jmhGeneratorAnnProcess: "org.openjdk.jmh:jmh-generator-annprocess:$versions.jmh",
|
||||
joptSimple: "net.sf.jopt-simple:jopt-simple:$versions.jopt",
|
||||
junit: "junit:junit:$versions.junit",
|
||||
hamcrest: "org.hamcrest:hamcrest:$versions.hamcrest",
|
||||
kafkaStreams_0100: "org.apache.kafka:kafka-streams:$versions.kafka_0100",
|
||||
kafkaStreams_0101: "org.apache.kafka:kafka-streams:$versions.kafka_0101",
|
||||
kafkaStreams_0102: "org.apache.kafka:kafka-streams:$versions.kafka_0102",
|
||||
kafkaStreams_0110: "org.apache.kafka:kafka-streams:$versions.kafka_0110",
|
||||
kafkaStreams_10: "org.apache.kafka:kafka-streams:$versions.kafka_10",
|
||||
kafkaStreams_11: "org.apache.kafka:kafka-streams:$versions.kafka_11",
|
||||
kafkaStreams_20: "org.apache.kafka:kafka-streams:$versions.kafka_20",
|
||||
kafkaStreams_21: "org.apache.kafka:kafka-streams:$versions.kafka_21",
|
||||
kafkaStreams_22: "org.apache.kafka:kafka-streams:$versions.kafka_22",
|
||||
kafkaStreams_23: "org.apache.kafka:kafka-streams:$versions.kafka_23",
|
||||
kafkaStreams_24: "org.apache.kafka:kafka-streams:$versions.kafka_24",
|
||||
kafkaStreams_25: "org.apache.kafka:kafka-streams:$versions.kafka_25",
|
||||
log4j: "log4j:log4j:$versions.log4j",
|
||||
lz4: "org.lz4:lz4-java:$versions.lz4",
|
||||
metrics: "com.yammer.metrics:metrics-core:$versions.metrics",
|
||||
mockitoCore: "org.mockito:mockito-core:$versions.mockito",
|
||||
nettyHandler: "io.netty:netty-handler:$versions.netty",
|
||||
nettyTransportNativeEpoll: "io.netty:netty-transport-native-epoll:$versions.netty",
|
||||
powermockJunit4: "org.powermock:powermock-module-junit4:$versions.powermock",
|
||||
powermockEasymock: "org.powermock:powermock-api-easymock:$versions.powermock",
|
||||
reflections: "org.reflections:reflections:$versions.reflections",
|
||||
rocksDBJni: "org.rocksdb:rocksdbjni:$versions.rocksDB",
|
||||
scalaCollectionCompat: "org.scala-lang.modules:scala-collection-compat_$versions.baseScala:$versions.scalaCollectionCompat",
|
||||
scalaJava8Compat: "org.scala-lang.modules:scala-java8-compat_$versions.baseScala:$versions.scalaJava8Compat",
|
||||
scalaLibrary: "org.scala-lang:scala-library:$versions.scala",
|
||||
scalaLogging: "com.typesafe.scala-logging:scala-logging_$versions.baseScala:$versions.scalaLogging",
|
||||
scalaReflect: "org.scala-lang:scala-reflect:$versions.scala",
|
||||
scalatest: "org.scalatest:scalatest_$versions.baseScala:$versions.scalatest",
|
||||
slf4jApi: "org.slf4j:slf4j-api:$versions.slf4j",
|
||||
slf4jlog4j: "org.slf4j:slf4j-log4j12:$versions.slf4j",
|
||||
snappy: "org.xerial.snappy:snappy-java:$versions.snappy",
|
||||
zookeeper: "org.apache.zookeeper:zookeeper:$versions.zookeeper",
|
||||
jfreechart: "jfreechart:jfreechart:$versions.jfreechart",
|
||||
mavenArtifact: "org.apache.maven:maven-artifact:$versions.mavenArtifact",
|
||||
zstd: "com.github.luben:zstd-jni:$versions.zstd",
|
||||
httpclient: "org.apache.httpcomponents:httpclient:$versions.httpclient"
|
||||
]
|
||||
118
gradle/rat.gradle
Normal file
118
gradle/rat.gradle
Normal file
@@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.
|
||||
*/
|
||||
|
||||
import org.gradle.api.internal.project.IsolatedAntBuilder
|
||||
|
||||
apply plugin: RatPlugin
|
||||
|
||||
class RatTask extends DefaultTask {
|
||||
@Input
|
||||
List<String> excludes
|
||||
|
||||
def reportDir = project.file('build/rat')
|
||||
def stylesheet = project.file('gradle/resources/rat-output-to-html.xsl').getAbsolutePath()
|
||||
def xmlReport = new File(reportDir, 'rat-report.xml')
|
||||
def htmlReport = new File(reportDir, 'rat-report.html')
|
||||
|
||||
def generateXmlReport(File reportDir) {
|
||||
def antBuilder = services.get(IsolatedAntBuilder)
|
||||
def ratClasspath = project.configurations.rat
|
||||
def projectPath = project.getRootDir().getAbsolutePath()
|
||||
antBuilder.withClasspath(ratClasspath).execute {
|
||||
ant.taskdef(resource: 'org/apache/rat/anttasks/antlib.xml')
|
||||
ant.report(format: 'xml', reportFile: xmlReport) {
|
||||
fileset(dir: projectPath) {
|
||||
patternset {
|
||||
excludes.each {
|
||||
exclude(name: it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def printUnknownFiles() {
|
||||
def ratXml = new XmlParser().parse(xmlReport)
|
||||
def unknownLicenses = 0
|
||||
ratXml.resource.each { resource ->
|
||||
if (resource.'license-approval'.@name[0] == "false") {
|
||||
println('Unknown license: ' + resource.@name)
|
||||
unknownLicenses++
|
||||
}
|
||||
}
|
||||
if (unknownLicenses > 0) {
|
||||
throw new GradleException("Found " + unknownLicenses + " files with " +
|
||||
"unknown licenses.")
|
||||
}
|
||||
}
|
||||
|
||||
def generateHtmlReport() {
|
||||
def antBuilder = services.get(IsolatedAntBuilder)
|
||||
def ratClasspath = project.configurations.rat
|
||||
antBuilder.withClasspath(ratClasspath).execute {
|
||||
ant.xslt(
|
||||
in: xmlReport,
|
||||
style: stylesheet,
|
||||
out: htmlReport,
|
||||
classpath: ratClasspath)
|
||||
}
|
||||
println('Rat report: ' + htmlReport)
|
||||
}
|
||||
|
||||
@TaskAction
|
||||
def rat() {
|
||||
if (!reportDir.exists()) {
|
||||
reportDir.mkdirs()
|
||||
}
|
||||
def origEncoding = System.getProperty("file.encoding")
|
||||
try {
|
||||
System.setProperty("file.encoding", "UTF-8") //affects the output of the ant rat task
|
||||
generateXmlReport(reportDir)
|
||||
printUnknownFiles()
|
||||
generateHtmlReport()
|
||||
} finally {
|
||||
System.setProperty("file.encoding", origEncoding)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class RatPlugin implements Plugin<Project> {
|
||||
void apply(Project project) {
|
||||
configureDependencies(project)
|
||||
project.plugins.apply(JavaPlugin);
|
||||
Task ratTask = project.task("rat",
|
||||
type: RatTask,
|
||||
group: 'Build',
|
||||
description: 'Runs Apache Rat checks.')
|
||||
project.tasks[JavaPlugin.TEST_TASK_NAME].dependsOn ratTask
|
||||
}
|
||||
|
||||
void configureDependencies(final Project project) {
|
||||
project.configurations {
|
||||
rat
|
||||
}
|
||||
project.repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
project.dependencies {
|
||||
rat 'org.apache.rat:apache-rat-tasks:0.13'
|
||||
}
|
||||
}
|
||||
}
|
||||
206
gradle/resources/rat-output-to-html.xsl
Normal file
206
gradle/resources/rat-output-to-html.xsl
Normal file
@@ -0,0 +1,206 @@
|
||||
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
|
||||
|
||||
<!--***********************************************************
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you 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.
|
||||
*
|
||||
***********************************************************-->
|
||||
|
||||
<!-- This style sheet converts any rat-report.xml file. -->
|
||||
|
||||
<xsl:template match="/">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
body {margin-top: 0px;font-size: 0.8em;background-color: #F9F7ED;}
|
||||
|
||||
h1 {color:red;}
|
||||
h2 {color:blue;}
|
||||
h3 {color:green;}
|
||||
h4 {color:orange;}
|
||||
|
||||
/* Table Design */
|
||||
|
||||
table,tr,td {text-align:center;font-weight:bold;border:1px solid #000;}
|
||||
caption {color:blue;text-align:left;}
|
||||
.notes, .binaries, .archives, .standards {width:25%;}
|
||||
.notes {background:#D7EDEE;}
|
||||
.binaries {background:#D0F2F4;}
|
||||
.archives {background:#ABE7E9;}
|
||||
.standards {background:#A0F0F4;}
|
||||
.licenced, .generated {width:50%;}
|
||||
.licenced {background:#C6EBDD;}
|
||||
.generated {background:#ABE9D2;}
|
||||
.java_note {background:#D6EBC6;}
|
||||
.generated_note {background:#C9E7A9;}
|
||||
.unknown {width:100%;background:#E92020;}
|
||||
.unknown-zero {color:#00CC00;}
|
||||
.center{text-align:center;margin:0 auto;}
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:call-template name="generated"/>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="rat-report">
|
||||
|
||||
<h1>Rat Report</h1>
|
||||
<p>This HTML version (yes, it is!) is generated from the RAT xml reports using Saxon9B. All the outputs required are displayed below, similar to the .txt version.
|
||||
This is obviously a work in progress; and a prettier, easier to read and manage version will be available soon</p>
|
||||
<div class="center">
|
||||
<table id="rat-reports summary" cellspacing="0" summary="A snapshot summary of this rat report">
|
||||
<caption>
|
||||
Table 1: A snapshot summary of this rat report.
|
||||
</caption>
|
||||
<tr>
|
||||
<td colspan="1" class="notes">Notes: <xsl:value-of select="count(descendant::type[attribute::name="notice"])"/></td>
|
||||
<td colspan="1" class="binaries">Binaries: <xsl:value-of select="count(descendant::type[attribute::name="binary"])"/></td>
|
||||
<td colspan="1" class="archives">Archives: <xsl:value-of select="count(descendant::type[attribute::name="archive"])"/></td>
|
||||
<td colspan="1" class="standards">Standards: <xsl:value-of select="count(descendant::type[attribute::name="standard"])"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="licenced">Apache Licensed: <xsl:value-of select="count(descendant::header-type[attribute::name="AL "])"/></td>
|
||||
<td colspan="2" class="generated">Generated Documents: <xsl:value-of select="count(descendant::header-type[attribute::name="GEN "])"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="java_note">Note: JavaDocs are generated and so license header is optional</td>
|
||||
<td colspan="2" class="generated_note">Note: Generated files do not require license headers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<xsl:choose>
|
||||
<xsl:when test="count(descendant::header-type[attribute::name="?????"]) > 0">
|
||||
<td colspan="4" class="unknown"><xsl:value-of select="count(descendant::header-type[attribute::name="?????"])"/> Unknown Licenses - or files without a license.</td>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<td colspan="4" class="unknown-zero"><xsl:value-of select="count(descendant::header-type[attribute::name="?????"])"/> Unknown Licenses - or files without a license.</td>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<hr/>
|
||||
<h3>Unapproved Licenses:</h3>
|
||||
|
||||
<xsl:for-each select="descendant::resource[license-approval/@name="false"]">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="@name"/><br/>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</xsl:for-each>
|
||||
<hr/>
|
||||
|
||||
<h3>Archives:</h3>
|
||||
|
||||
<xsl:for-each select="descendant::resource[type/@name="archive"]">
|
||||
+ <xsl:value-of select="@name"/>
|
||||
<br/>
|
||||
</xsl:for-each>
|
||||
<hr/>
|
||||
|
||||
<p>
|
||||
Files with Apache License headers will be marked AL<br/>
|
||||
Binary files (which do not require AL headers) will be marked B<br/>
|
||||
Compressed archives will be marked A<br/>
|
||||
Notices, licenses etc will be marked N<br/>
|
||||
</p>
|
||||
|
||||
<xsl:for-each select="descendant::resource">
|
||||
<xsl:choose>
|
||||
<xsl:when test="license-approval/@name="false"">!</xsl:when>
|
||||
<xsl:otherwise><xsl:text> </xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:choose>
|
||||
<xsl:when test="type/@name="notice"">N </xsl:when>
|
||||
<xsl:when test="type/@name="archive"">A </xsl:when>
|
||||
<xsl:when test="type/@name="binary"">B </xsl:when>
|
||||
<xsl:when test="type/@name="standard""><xsl:value-of select="header-type/@name"/></xsl:when>
|
||||
<xsl:otherwise>!!!!!</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:value-of select="@name"/><br/>
|
||||
<xsl:text>
|
||||
</xsl:text>
|
||||
</xsl:for-each>
|
||||
<hr/>
|
||||
|
||||
<h3>Printing headers for files without AL header...</h3>
|
||||
|
||||
<xsl:for-each select="descendant::resource[header-type/@name="?????"]">
|
||||
|
||||
<h4><xsl:value-of select="@name"/></h4>
|
||||
<xsl:value-of select="header-sample"/>
|
||||
<hr/>
|
||||
</xsl:for-each>
|
||||
<br/>
|
||||
|
||||
<!-- <xsl:apply-templates select="resource"/>
|
||||
<xsl:apply-templates select="header-sample"/>
|
||||
<xsl:apply-templates select="header-type"/>
|
||||
<xsl:apply-templates select="license-family"/>
|
||||
<xsl:apply-templates select="license-approval"/>
|
||||
<xsl:apply-templates select="type"/> -->
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="resource">
|
||||
<div>
|
||||
<h3>Resource: <xsl:value-of select="@name"/></h3>
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="header-sample">
|
||||
<xsl:if test="normalize-space(.) != ''">
|
||||
<h4>First few lines of non-compliant file</h4>
|
||||
<p>
|
||||
<xsl:value-of select="."/>
|
||||
</p>
|
||||
</xsl:if>
|
||||
<h4>Other Info:</h4>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="header-type">
|
||||
Header Type: <xsl:value-of select="@name"/>
|
||||
<br/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="license-family">
|
||||
License Family: <xsl:value-of select="@name"/>
|
||||
<br/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="license-approval">
|
||||
License Approval: <xsl:value-of select="@name"/>
|
||||
<br/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="type">
|
||||
Type: <xsl:value-of select="@name"/>
|
||||
<br/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="generated">
|
||||
</xsl:template>
|
||||
</xsl:transform>
|
||||
430
gradle/spotbugs-exclude.xml
Normal file
430
gradle/spotbugs-exclude.xml
Normal file
@@ -0,0 +1,430 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You 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.
|
||||
-->
|
||||
|
||||
<!-- Spotbugs filtering.
|
||||
|
||||
Spotbugs is a static code analysis tool run as part of the "check" phase of the build.
|
||||
This file dictates which categories of bugs and individual false positives that we suppress.
|
||||
|
||||
For a detailed description of spotbugs bug categories, see https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html
|
||||
-->
|
||||
<FindBugsFilter>
|
||||
|
||||
<!-- false positive in Java 11, see https://github.com/spotbugs/spotbugs/issues/756 -->
|
||||
<Match>
|
||||
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"/>
|
||||
</Match>
|
||||
|
||||
<!-- false positive in Java 11, see https://github.com/spotbugs/spotbugs/issues/756 -->
|
||||
<Match>
|
||||
<Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Disable warnings about mutable objects and the use of public fields.
|
||||
EI_EXPOSE_REP: May expose internal representation by returning reference to mutable object
|
||||
EI_EXPOSE_REP2: May expose internal representation by incorporating reference to mutable object
|
||||
MS_PKGPROTECT: Field should be package protected -->
|
||||
<Bug pattern="EI_EXPOSE_REP,EI_EXPOSE_REP2,MS_PKGPROTECT"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Disable warnings about System.exit, until we decide to stop using it.
|
||||
DM_EXIT: Method invokes System.exit -->
|
||||
<Bug pattern="DM_EXIT"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Disable warnings about the lack of equals() when compareTo() is implemented.
|
||||
EQ_COMPARETO_USE_OBJECT_EQUALS: This class defines a compareTo method but no equals() method -->
|
||||
<Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Spotbugs tends to work a little bit better with Java than with Scala. We suppress
|
||||
some categories of bug reports when using Scala, since spotbugs generates huge
|
||||
numbers of false positives in some of these categories when examining Scala code.
|
||||
|
||||
NP_LOAD_OF_KNOWN_NULL_VALUE: The variable referenced at this point is known to be null
|
||||
due to an earlier check against null.
|
||||
NP_NULL_PARAM_DEREF: Method call passes null for non-null parameter.
|
||||
NP_NULL_ON_SOME_PATH: Possible null pointer dereference
|
||||
SE_BAD_FIELD: Non-transient non-serializable instance field in serializable class.
|
||||
DM_STRING_CTOR: Method invokes inefficient new String(String) constructor.
|
||||
DM_NEW_FOR_GETCLASS: Method allocates an object, only to get the class object.
|
||||
ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD: Write to static field from instance method.
|
||||
DM_NUMBER_CTOR: Method invokes inefficient Number constructor; use static valueOf instead.
|
||||
RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE: Nullcheck of value previously dereferenced.
|
||||
RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE: Redundant nullcheck of value known to be non-null.
|
||||
RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE: Redundant nullcheck of value known to be null.
|
||||
RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT: Return value of method without side effect is ignored.
|
||||
NM_CLASS_NAMING_CONVENTION: Class names should start with an upper case letter.
|
||||
NM_METHOD_NAMING_CONVENTION: Method names should start with a lower case letter.
|
||||
EC_NULL_ARG: Call to equals(null)
|
||||
NP_ALWAYS_NULL: Null pointer dereference
|
||||
MS_CANNOT_BE_FINAL: Field isn't final and can't be protected from malicious code
|
||||
IC_INIT_CIRCULARITY: Initialization circularity
|
||||
SE_NO_SUITABLE_CONSTRUCTOR: Class is Serializable but its superclass doesn't define a void constructor -->
|
||||
<Source name="~.*\.scala" />
|
||||
<Or>
|
||||
<Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE"/>
|
||||
<Bug pattern="NP_NULL_ON_SOME_PATH"/>
|
||||
<Bug pattern="NP_NULL_PARAM_DEREF"/>
|
||||
<Bug pattern="SE_BAD_FIELD"/>
|
||||
<Bug pattern="DM_STRING_CTOR"/>
|
||||
<Bug pattern="DM_NEW_FOR_GETCLASS"/>
|
||||
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
|
||||
<Bug pattern="DM_NUMBER_CTOR"/>
|
||||
<Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE"/>
|
||||
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"/>
|
||||
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE"/>
|
||||
<Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
|
||||
<Bug pattern="NM_CLASS_NAMING_CONVENTION"/>
|
||||
<Bug pattern="NM_METHOD_NAMING_CONVENTION"/>
|
||||
<Bug pattern="EC_NULL_ARG"/>
|
||||
<Bug pattern="NP_ALWAYS_NULL"/>
|
||||
<Bug pattern="MS_CANNOT_BE_FINAL"/>
|
||||
<Bug pattern="IC_INIT_CIRCULARITY"/>
|
||||
<Bug pattern="SE_NO_SUITABLE_CONSTRUCTOR"/>
|
||||
</Or>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppression for the equals() for extension methods. -->
|
||||
<Class name="kafka.api.package$ElectLeadersRequestOps"/>
|
||||
<Bug pattern="EQ_UNUSUAL"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Add a suppression for auto-generated calls to instanceof in kafka.utils.Json -->
|
||||
<Source name="Json.scala"/>
|
||||
<Package name="kafka.utils"/>
|
||||
<Bug pattern="BC_VACUOUS_INSTANCEOF"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- A spurious null check after inlining by the scalac optimizer confuses spotBugs -->
|
||||
<Class name="kafka.log.Log"/>
|
||||
<Bug pattern="NP_NULL_ON_SOME_PATH_EXCEPTION"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- A spurious null check after inlining by the scalac optimizer confuses spotBugs -->
|
||||
<Class name="kafka.tools.StateChangeLogMerger$"/>
|
||||
<Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Unboxing to Int to make scalac happy makes spotBugs unhappy -->
|
||||
<Class name="kafka.tools.ConsoleConsumer$ConsumerConfig"/>
|
||||
<Bug pattern="BX_UNBOXING_IMMEDIATELY_REBOXED"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Uncallable anonymous methods are left behind after inlining by scalac 2.12, fixed in 2.13 -->
|
||||
<Source name="AdminUtils.scala"/>
|
||||
<Package name="kafka.admin"/>
|
||||
<Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Uncallable anonymous methods are left behind after inlining by scalac 2.12, fixed in 2.13 -->
|
||||
<Source name="ControllerContext.scala"/>
|
||||
<Package name="kafka.controller"/>
|
||||
<Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Uncallable anonymous methods are left behind after inlining by scalac 2.12, fixed in 2.13 -->
|
||||
<Source name="LogManager.scala"/>
|
||||
<Package name="kafka.log"/>
|
||||
<Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Uncallable anonymous methods are left behind after inlining by scalac 2.12, fixed in 2.13 -->
|
||||
<Source name="DelayedElectLeader.scala"/>
|
||||
<Package name="kafka.server"/>
|
||||
<Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Uncallable anonymous methods are left behind after inlining by scalac 2.12, fixed in 2.13 -->
|
||||
<Source name="AdminZkClient.scala"/>
|
||||
<Package name="kafka.zk"/>
|
||||
<Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about some static initializers in Schema using instances of a
|
||||
subclass. -->
|
||||
<Or>
|
||||
<Class name="org.apache.kafka.connect.data.Schema"/>
|
||||
<Class name="org.apache.kafka.connect.data.SchemaBuilder"/>
|
||||
</Or>
|
||||
<Bug pattern="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress warnings about unread protected fields in some public classes.
|
||||
Although these are not read in Kafka Connect code, they are part of the API. -->
|
||||
<Or>
|
||||
<Class name="org.apache.kafka.connect.connector.Connector"/>
|
||||
<Class name="org.apache.kafka.connect.sink.SinkTask"/>
|
||||
<Class name="org.apache.kafka.connect.source.SourceTask"/>
|
||||
</Or>
|
||||
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress warnings about converting an integer number of
|
||||
milliseconds to a java.util.Date object. We do this intentionally in
|
||||
org.apache.kafka.connect.data.Time. -->
|
||||
<Class name="org.apache.kafka.connect.data.Time"/>
|
||||
<Method name="toLogical"/>
|
||||
<Bug pattern="ICAST_INT_2_LONG_AS_INSTANT"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress some minor warnings about machine-generated code for
|
||||
benchmarking. -->
|
||||
<Or>
|
||||
<Package name="org.apache.kafka.jmh.cache.generated"/>
|
||||
<Package name="org.apache.kafka.jmh.common.generated"/>
|
||||
<Package name="org.apache.kafka.jmh.record.generated"/>
|
||||
<Package name="org.apache.kafka.jmh.producer.generated"/>
|
||||
<Package name="org.apache.kafka.jmh.partition.generated"/>
|
||||
<Package name="org.apache.kafka.jmh.fetchsession.generated"/>
|
||||
<Package name="org.apache.kafka.jmh.fetcher.generated"/>
|
||||
</Or>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress warnings about generated schema arrays. -->
|
||||
<Or>
|
||||
<Package name="org.apache.kafka.common.message"/>
|
||||
<Package name="org.apache.kafka.streams.internals.generated"/>
|
||||
</Or>
|
||||
<Bug pattern="MS_MUTABLE_ARRAY"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- The code generator generates useless condition. Disable the check temporarily. -->
|
||||
<Class name="org.apache.kafka.common.message.JoinGroupResponseData"/>
|
||||
<Bug pattern="UC_USELESS_CONDITION"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress warnings about ignoring the return value of await.
|
||||
This is done intentionally because we use other clues to determine
|
||||
if the wait was cut short. -->
|
||||
<Class name="org.apache.kafka.connect.runtime.WorkerSourceTask"/>
|
||||
<Method name="execute"/>
|
||||
<Bug pattern="RV_RETURN_VALUE_IGNORED"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about ignoring the return value of await.
|
||||
This is done intentionally because we use other clues to determine
|
||||
if the wait was cut short. -->
|
||||
<Package name="kafka.log"/>
|
||||
<Source name="LogCleanerManager.scala"/>
|
||||
<Bug pattern="RV_RETURN_VALUE_IGNORED,RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress some warnings about intentional switch statement fallthrough. -->
|
||||
<Class name="org.apache.kafka.connect.runtime.WorkerConnector"/>
|
||||
<Or>
|
||||
<Method name="doStart"/>
|
||||
<Method name="pause"/>
|
||||
</Or>
|
||||
<Bug pattern="SF_SWITCH_FALLTHROUGH"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about intentional switch statement fallthrough. -->
|
||||
<Class name="org.apache.kafka.common.security.authenticator.SaslClientAuthenticator"/>
|
||||
<Method name="authenticate"/>
|
||||
<Bug pattern="SF_SWITCH_FALLTHROUGH"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a spurious warning about a missing default case. -->
|
||||
<Or>
|
||||
<Class name="org.apache.kafka.common.utils.Crc32"/>
|
||||
<Class name="org.apache.kafka.common.utils.PureJavaCrc32C"/>
|
||||
</Or>
|
||||
<Method name="update"/>
|
||||
<Bug pattern="SF_SWITCH_NO_DEFAULT"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about intentional missing default cases and fallthroughs. -->
|
||||
<Class name="org.apache.kafka.common.utils.Utils"/>
|
||||
<Method name="murmur2"/>
|
||||
<Or>
|
||||
<Bug pattern="SF_SWITCH_NO_DEFAULT"/>
|
||||
<Bug pattern="SF_SWITCH_FALLTHROUGH"/>
|
||||
</Or>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about intentional missing default cases and fallthroughs. -->
|
||||
<Class name="org.apache.kafka.streams.state.internals.Murmur3"/>
|
||||
<Or>
|
||||
<Bug pattern="SF_SWITCH_NO_DEFAULT"/>
|
||||
<Bug pattern="SF_SWITCH_FALLTHROUGH"/>
|
||||
</Or>
|
||||
</Match>
|
||||
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about intentional missing default cases and fallthroughs. -->
|
||||
<Class name="org.apache.kafka.streams.state.internals.Murmur3$IncrementalHash32"/>
|
||||
<Or>
|
||||
<Bug pattern="SF_SWITCH_NO_DEFAULT"/>
|
||||
<Bug pattern="SF_SWITCH_FALLTHROUGH"/>
|
||||
</Or>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a spurious warning about locks not being released on all paths.
|
||||
This happens because there is an 'if' statement that checks if we have the lock before
|
||||
releasing it. -->
|
||||
<Class name="org.apache.kafka.clients.producer.internals.BufferPool"/>
|
||||
<Method name="allocate"/>
|
||||
<Bug pattern="UL_UNRELEASED_LOCK"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress warnings about synchronizing on the UnsentRequests
|
||||
ConcurrentHashMap. This is done deliberately. -->
|
||||
<Package name="org.apache.kafka.clients.consumer.internals"/>
|
||||
<Source name="ConsumerNetworkClient.java"/>
|
||||
<Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress inconsistent synchronization warnings about
|
||||
AbstractCoordinator#coordinator. See KAFKA-4992 for details.-->
|
||||
<Class name="org.apache.kafka.clients.consumer.internals.AbstractCoordinator"/>
|
||||
<Bug pattern="IS2_INCONSISTENT_SYNC"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress warnings about implementing compareTo but not equals. -->
|
||||
<Class name="org.apache.kafka.streams.processor.internals.Stamped"/>
|
||||
<Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- TODO: fix this (see KAFKA-4996) -->
|
||||
<Or>
|
||||
<Package name="org.apache.kafka.streams.state.internals"/>
|
||||
<Package name="org.apache.kafka.streams.processor.internals"/>
|
||||
<Package name="org.apache.kafka.streams.processor"/>
|
||||
<Package name="org.apache.kafka.streams"/>
|
||||
</Or>
|
||||
<Bug pattern="IS2_INCONSISTENT_SYNC"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Ignore a warning about synchronizing on an AtomicBoolean -->
|
||||
<Package name="kafka.metrics"/>
|
||||
<Source name="KafkaMetricsReporter.scala"/>
|
||||
<Method name="startReporters"/>
|
||||
<Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Ignore spurious warning about imbalanced synchronization on a cached Exception. Some accesses of the
|
||||
variable must occur in synchronized blocks, while some need not, because of the nature of the producer.
|
||||
This seems to throw the static checker off. -->
|
||||
<Package name="org.apache.kafka.clients.producer" />
|
||||
<Source name="TransactionState.java" />
|
||||
<Bug pattern="IS2_INCONSISTENT_SYNC" />
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a spurious warning about an unreleased lock. -->
|
||||
<Class name="kafka.utils.timer.SystemTimer"/>
|
||||
<Method name="add"/>
|
||||
<Bug pattern="UL_UNRELEASED_LOCK_EXCEPTION_PATH"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about an intentional infinite loop. -->
|
||||
<Package name="kafka.utils"/>
|
||||
<Source name="Throttler.scala"/>
|
||||
<Method name="main"/>
|
||||
<Bug pattern="IL_INFINITE_LOOP"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a spurious warning about calling notify without modifying
|
||||
other state under the monitor. -->
|
||||
<Package name="org.apache.kafka.trogdor.workload"/>
|
||||
<Source name="RoundTripWorker.java"/>
|
||||
<Bug pattern="NN_NAKED_NOTIFY"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<Package name="org.apache.kafka.streams.scala"/>
|
||||
<Source name="FunctionConversions.scala"/>
|
||||
<Bug pattern="EQ_UNUSUAL"/>
|
||||
</Match>
|
||||
|
||||
<Match>
|
||||
<Package name="org.apache.kafka.streams.scala"/>
|
||||
<Source name="FunctionsCompatConversions.scala"/>
|
||||
<Bug pattern="EQ_UNUSUAL"/>
|
||||
</Match>
|
||||
|
||||
- <Match>
|
||||
<Package name="org.apache.kafka.streams.scala"/>
|
||||
<Or>
|
||||
<Class name="org.apache.kafka.streams.scala.Serializer" />
|
||||
<Class name="org.apache.kafka.streams.scala.Deserializer" />
|
||||
</Or>
|
||||
<Bug pattern="NM_SAME_SIMPLE_NAME_AS_INTERFACE"/>
|
||||
</Match>
|
||||
|
||||
<!-- Suppress warnings for unused members that are undetectably used by Jackson -->
|
||||
<Match>
|
||||
<Package name="org.apache.kafka.streams.examples.pageview"/>
|
||||
<Bug pattern="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD"/>
|
||||
</Match>
|
||||
<Match>
|
||||
<Package name="org.apache.kafka.streams.examples.pageview"/>
|
||||
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
|
||||
</Match>
|
||||
<Match>
|
||||
<Package name="org.apache.kafka.streams.examples.pageview"/>
|
||||
<Bug pattern="UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD"/>
|
||||
</Match>
|
||||
|
||||
<!-- END Suppress warnings for unused members that are undetectably used by Jackson -->
|
||||
|
||||
<Match>
|
||||
<!-- Suppress a warning about ignoring return value because this is intentional. -->
|
||||
<Class name="org.apache.kafka.common.config.AbstractConfig$ResolvingMap"/>
|
||||
<Method name="get"/>
|
||||
<Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
|
||||
</Match>
|
||||
|
||||
</FindBugsFilter>
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
#distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
|
||||
distributionUrl=https\://artifactory.intra.xiaojukeji.com/artifactory/appproduct_dev_local/gradle/gradle-5.6.4-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
Reference in New Issue
Block a user