Run build without warnings (#1387)
This commit is contained in:
parent
30e75c6d6d
commit
15e0b2ff32
|
@ -3,11 +3,38 @@ name: PR build
|
||||||
on: pull_request
|
on: pull_request
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up JDK 11 for running checks
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
uses: burrunan/gradle-cache-action@v1.5
|
||||||
|
with:
|
||||||
|
job-id: jdk11
|
||||||
|
arguments: build --stacktrace -x :smoke-tests:test
|
||||||
|
|
||||||
|
- name: Aggregate test reports with ciMate
|
||||||
|
if: always()
|
||||||
|
continue-on-error: true
|
||||||
|
env:
|
||||||
|
CIMATE_PROJECT_ID: mz1jo49x
|
||||||
|
CIMATE_CI_KEY: "PR / jdk11"
|
||||||
|
run: |
|
||||||
|
wget -q https://get.cimate.io/release/linux/cimate
|
||||||
|
chmod +x cimate
|
||||||
|
./cimate -v "**/TEST-*.xml"
|
||||||
|
|
||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
java: [ 8, 11, 15 ]
|
java: [ 8, 15 ]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
@ -16,17 +43,13 @@ jobs:
|
||||||
with:
|
with:
|
||||||
java-version: ${{ matrix.java }}
|
java-version: ${{ matrix.java }}
|
||||||
- name: Set JDK ${{ matrix.java }} home
|
- name: Set JDK ${{ matrix.java }} home
|
||||||
run: echo "::set-env name=JAVA_${{ matrix.java }}_HOME::${{ env.JAVA_HOME }}"
|
run: echo JAVA_${{ matrix.java }}_HOME=${{ env.JAVA_HOME }} >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Set up JDK 11 for running Gradle
|
- name: Set up JDK 11 for running Gradle
|
||||||
if: matrix.java != 11
|
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 11
|
java-version: 11
|
||||||
|
|
||||||
- name: Debug space
|
|
||||||
run: df -h
|
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
uses: burrunan/gradle-cache-action@v1.5
|
uses: burrunan/gradle-cache-action@v1.5
|
||||||
with:
|
with:
|
||||||
|
@ -102,7 +125,7 @@ jobs:
|
||||||
run: ./gradlew ${{ matrix.module }}:muzzle --no-daemon
|
run: ./gradlew ${{ matrix.module }}:muzzle --no-daemon
|
||||||
|
|
||||||
accept-pr:
|
accept-pr:
|
||||||
needs: [ test, smoke-test, muzzle ]
|
needs: [ build, test, smoke-test, muzzle ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Success
|
- name: Success
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
apply plugin: 'checkstyle'
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
checkstyle 'com.puppycrawl.tools:checkstyle:8.20'
|
|
||||||
}
|
|
||||||
|
|
||||||
def checkstyleConfigDir = file("${buildscript.sourceFile.parentFile}/enforcement/checkstyle")
|
|
||||||
|
|
||||||
checkstyle {
|
|
||||||
configDirectory = checkstyleConfigDir
|
|
||||||
configProperties.checkstyleConfigDir = checkstyleConfigDir
|
|
||||||
maxWarnings = 500
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins.withType(GroovyBasePlugin) {
|
|
||||||
sourceSets.all { sourceSet ->
|
|
||||||
tasks.register("${sourceSet.getTaskName('checkstyle', 'groovy')}", Checkstyle) {
|
|
||||||
configFile = new File(checkstyleConfigDir, "checkstyle-groovy.xml")
|
|
||||||
source(allGroovy)
|
|
||||||
classpath = sourceSet.compileClasspath
|
|
||||||
reports.xml.destination = new File(reportsDir, "${sourceSet.name}-groovy.xml")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def checkstyleTasks = tasks.withType(Checkstyle)
|
|
||||||
|
|
||||||
tasks.register("checkstyle") {
|
|
||||||
dependsOn checkstyleTasks
|
|
||||||
}
|
|
||||||
|
|
||||||
check.dependsOn checkstyleTasks
|
|
||||||
|
|
||||||
tasks.withType(Test).configureEach {
|
|
||||||
mustRunAfter checkstyleTasks
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
<!DOCTYPE module PUBLIC
|
|
||||||
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
|
|
||||||
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
|
|
||||||
<module name="Checker">
|
|
||||||
<module name="SuppressionFilter">
|
|
||||||
<property name="file" value="${checkstyleConfigDir}/suppressions.xml"/>
|
|
||||||
</module>
|
|
||||||
<module name="JavadocPackage"/>
|
|
||||||
|
|
||||||
<module name="TreeWalker">
|
|
||||||
<module name="JavadocStyle">
|
|
||||||
<property name="checkEmptyJavadoc" value="true"/>
|
|
||||||
</module>
|
|
||||||
|
|
||||||
<module name="JavadocType">
|
|
||||||
<property name="scope" value="package"/>
|
|
||||||
</module>
|
|
||||||
|
|
||||||
<module name="JavadocMethod">
|
|
||||||
<property name="scope" value="package"/>
|
|
||||||
</module>
|
|
||||||
|
|
||||||
</module>
|
|
||||||
</module>
|
|
|
@ -1,14 +0,0 @@
|
||||||
<!DOCTYPE module PUBLIC
|
|
||||||
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
|
|
||||||
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
|
|
||||||
<module name="Checker">
|
|
||||||
<module name="SuppressionFilter">
|
|
||||||
<property name="file" value="${checkstyleConfigDir}/suppressions.xml"/>
|
|
||||||
</module>
|
|
||||||
<module name="RegexpSingleline">
|
|
||||||
<property name="format" value="File \| Settings \| File Templates"/>
|
|
||||||
</module>
|
|
||||||
<module name="RegexpSingleline">
|
|
||||||
<property name="format" value="Created with IntelliJ IDEA"/>
|
|
||||||
</module>
|
|
||||||
</module>
|
|
|
@ -1,261 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE module PUBLIC
|
|
||||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
|
||||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Checkstyle configuration that checks the Google coding conventions from Google Java Style
|
|
||||||
that can be found at https://google.github.io/styleguide/javaguide.html.
|
|
||||||
|
|
||||||
Checkstyle is very configurable. Be sure to read the documentation at
|
|
||||||
http://checkstyle.sf.net (or in your downloaded distribution).
|
|
||||||
|
|
||||||
To completely disable a check, just comment it out or delete it from the file.
|
|
||||||
|
|
||||||
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<module name = "Checker">
|
|
||||||
<property name="charset" value="UTF-8"/>
|
|
||||||
|
|
||||||
<property name="severity" value="warning"/>
|
|
||||||
|
|
||||||
<property name="fileExtensions" value="java, properties, xml"/>
|
|
||||||
<!-- Excludes all 'module-info.java' files -->
|
|
||||||
<!-- See https://checkstyle.org/config_filefilters.html -->
|
|
||||||
<module name="BeforeExecutionExclusionFileFilter">
|
|
||||||
<property name="fileNamePattern" value="module\-info\.java$"/>
|
|
||||||
</module>
|
|
||||||
<!-- Checks for whitespace -->
|
|
||||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
|
||||||
<module name="FileTabCharacter">
|
|
||||||
<property name="eachLine" value="true"/>
|
|
||||||
</module>
|
|
||||||
|
|
||||||
<module name="TreeWalker">
|
|
||||||
<module name="OuterTypeFilename"/>
|
|
||||||
<module name="IllegalTokenText">
|
|
||||||
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
|
|
||||||
<property name="format"
|
|
||||||
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
|
|
||||||
<property name="message"
|
|
||||||
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
|
|
||||||
</module>
|
|
||||||
<module name="AvoidEscapedUnicodeCharacters">
|
|
||||||
<property name="allowEscapesForControlCharacters" value="true"/>
|
|
||||||
<property name="allowByTailComment" value="true"/>
|
|
||||||
<property name="allowNonPrintableEscapes" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="LineLength">
|
|
||||||
<property name="max" value="100"/>
|
|
||||||
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
|
|
||||||
</module>
|
|
||||||
<module name="AvoidStarImport"/>
|
|
||||||
<module name="OneTopLevelClass"/>
|
|
||||||
<module name="NoLineWrap"/>
|
|
||||||
<module name="EmptyBlock">
|
|
||||||
<property name="option" value="TEXT"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
|
|
||||||
</module>
|
|
||||||
<module name="NeedBraces"/>
|
|
||||||
<module name="LeftCurly"/>
|
|
||||||
<module name="RightCurly">
|
|
||||||
<property name="id" value="RightCurlySame"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
|
|
||||||
LITERAL_DO"/>
|
|
||||||
</module>
|
|
||||||
<module name="RightCurly">
|
|
||||||
<property name="id" value="RightCurlyAlone"/>
|
|
||||||
<property name="option" value="alone"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
|
|
||||||
INSTANCE_INIT"/>
|
|
||||||
</module>
|
|
||||||
<module name="WhitespaceAround">
|
|
||||||
<property name="allowEmptyConstructors" value="true"/>
|
|
||||||
<property name="allowEmptyLambdas" value="true"/>
|
|
||||||
<property name="allowEmptyMethods" value="true"/>
|
|
||||||
<property name="allowEmptyTypes" value="true"/>
|
|
||||||
<property name="allowEmptyLoops" value="true"/>
|
|
||||||
<message key="ws.notFollowed"
|
|
||||||
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
|
|
||||||
<message key="ws.notPreceded"
|
|
||||||
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
|
|
||||||
</module>
|
|
||||||
<module name="OneStatementPerLine"/>
|
|
||||||
<module name="MultipleVariableDeclarations"/>
|
|
||||||
<module name="ArrayTypeStyle"/>
|
|
||||||
<module name="MissingSwitchDefault"/>
|
|
||||||
<module name="FallThrough"/>
|
|
||||||
<module name="UpperEll"/>
|
|
||||||
<module name="ModifierOrder"/>
|
|
||||||
<module name="EmptyLineSeparator">
|
|
||||||
<property name="allowNoEmptyLineBetweenFields" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<property name="id" value="SeparatorWrapDot"/>
|
|
||||||
<property name="tokens" value="DOT"/>
|
|
||||||
<property name="option" value="nl"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<property name="id" value="SeparatorWrapComma"/>
|
|
||||||
<property name="tokens" value="COMMA"/>
|
|
||||||
<property name="option" value="EOL"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 -->
|
|
||||||
<property name="id" value="SeparatorWrapEllipsis"/>
|
|
||||||
<property name="tokens" value="ELLIPSIS"/>
|
|
||||||
<property name="option" value="EOL"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 -->
|
|
||||||
<property name="id" value="SeparatorWrapArrayDeclarator"/>
|
|
||||||
<property name="tokens" value="ARRAY_DECLARATOR"/>
|
|
||||||
<property name="option" value="EOL"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<property name="id" value="SeparatorWrapMethodRef"/>
|
|
||||||
<property name="tokens" value="METHOD_REF"/>
|
|
||||||
<property name="option" value="nl"/>
|
|
||||||
</module>
|
|
||||||
<module name="PackageName">
|
|
||||||
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Package name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="TypeName">
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="MemberName">
|
|
||||||
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Member name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="ParameterName">
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="LambdaParameterName">
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="CatchParameterName">
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="LocalVariableName">
|
|
||||||
<property name="tokens" value="VARIABLE_DEF"/>
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="ClassTypeParameterName">
|
|
||||||
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Class type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="MethodTypeParameterName">
|
|
||||||
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Method type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="InterfaceTypeParameterName">
|
|
||||||
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="NoFinalizer"/>
|
|
||||||
<module name="GenericWhitespace">
|
|
||||||
<message key="ws.followed"
|
|
||||||
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
|
|
||||||
<message key="ws.preceded"
|
|
||||||
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
|
|
||||||
<message key="ws.illegalFollow"
|
|
||||||
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
|
|
||||||
<message key="ws.notPreceded"
|
|
||||||
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
|
|
||||||
</module>
|
|
||||||
<module name="Indentation">
|
|
||||||
<property name="basicOffset" value="2"/>
|
|
||||||
<property name="braceAdjustment" value="0"/>
|
|
||||||
<property name="caseIndent" value="2"/>
|
|
||||||
<property name="throwsIndent" value="4"/>
|
|
||||||
<property name="lineWrappingIndentation" value="4"/>
|
|
||||||
<property name="arrayInitIndent" value="2"/>
|
|
||||||
</module>
|
|
||||||
<module name="AbbreviationAsWordInName">
|
|
||||||
<property name="ignoreFinal" value="false"/>
|
|
||||||
<property name="allowedAbbreviationLength" value="1"/>
|
|
||||||
</module>
|
|
||||||
<module name="OverloadMethodsDeclarationOrder"/>
|
|
||||||
<module name="VariableDeclarationUsageDistance"/>
|
|
||||||
<module name="CustomImportOrder">
|
|
||||||
<property name="sortImportsInGroupAlphabetically" value="true"/>
|
|
||||||
<property name="separateLineBetweenGroups" value="true"/>
|
|
||||||
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
|
|
||||||
</module>
|
|
||||||
<module name="MethodParamPad"/>
|
|
||||||
<module name="NoWhitespaceBefore">
|
|
||||||
<property name="tokens"
|
|
||||||
value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
|
|
||||||
<property name="allowLineBreaks" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="ParenPad"/>
|
|
||||||
<module name="OperatorWrap">
|
|
||||||
<property name="option" value="NL"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
|
|
||||||
LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
|
|
||||||
</module>
|
|
||||||
<module name="AnnotationLocation">
|
|
||||||
<property name="id" value="AnnotationLocationMostCases"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
|
|
||||||
</module>
|
|
||||||
<module name="AnnotationLocation">
|
|
||||||
<property name="id" value="AnnotationLocationVariables"/>
|
|
||||||
<property name="tokens" value="VARIABLE_DEF"/>
|
|
||||||
<property name="allowSamelineMultipleAnnotations" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="NonEmptyAtclauseDescription"/>
|
|
||||||
<module name="JavadocTagContinuationIndentation"/>
|
|
||||||
<module name="SummaryJavadoc">
|
|
||||||
<property name="forbiddenSummaryFragments"
|
|
||||||
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
|
|
||||||
</module>
|
|
||||||
<module name="JavadocParagraph"/>
|
|
||||||
<module name="AtclauseOrder">
|
|
||||||
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
|
|
||||||
<property name="target"
|
|
||||||
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
|
|
||||||
</module>
|
|
||||||
<module name="JavadocMethod">
|
|
||||||
<property name="scope" value="public"/>
|
|
||||||
<property name="allowMissingParamTags" value="true"/>
|
|
||||||
<property name="allowMissingThrowsTags" value="true"/>
|
|
||||||
<property name="allowMissingReturnTag" value="true"/>
|
|
||||||
<property name="minLineCount" value="2"/>
|
|
||||||
<property name="allowedAnnotations" value="Override, Test"/>
|
|
||||||
<property name="allowThrowsTagsForSubclasses" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="MethodName">
|
|
||||||
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Method name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="SingleLineJavadoc">
|
|
||||||
<property name="ignoreInlineTags" value="false"/>
|
|
||||||
</module>
|
|
||||||
<module name="EmptyCatchBlock">
|
|
||||||
<property name="exceptionVariableName" value="expected"/>
|
|
||||||
</module>
|
|
||||||
<module name="CommentsIndentation"/>
|
|
||||||
</module>
|
|
||||||
</module>
|
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<!DOCTYPE suppressions PUBLIC
|
|
||||||
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
|
|
||||||
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
|
|
||||||
|
|
||||||
<suppressions>
|
|
||||||
|
|
||||||
<suppress checks="RegexpHeader" files=".*MimeParse.java"/>
|
|
||||||
|
|
||||||
</suppressions>
|
|
|
@ -5,7 +5,6 @@ apply plugin: 'groovy'
|
||||||
apply plugin: 'org.gradle.test-retry'
|
apply plugin: 'org.gradle.test-retry'
|
||||||
|
|
||||||
apply from: "$rootDir/gradle/spotless.gradle"
|
apply from: "$rootDir/gradle/spotless.gradle"
|
||||||
apply from: "$rootDir/gradle/checkstyle.gradle"
|
|
||||||
apply from: "$rootDir/gradle/codenarc.gradle"
|
apply from: "$rootDir/gradle/codenarc.gradle"
|
||||||
apply from: "$rootDir/gradle/spotbugs.gradle"
|
apply from: "$rootDir/gradle/spotbugs.gradle"
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,6 @@ package io.opentelemetry.instrumentation.api.log;
|
||||||
* instrumentations.
|
* instrumentations.
|
||||||
*
|
*
|
||||||
* @see org.slf4j.MDC
|
* @see org.slf4j.MDC
|
||||||
* @see org.apache.logging.log4j.ThreadContext
|
|
||||||
* @see org.apache.log4j.MDC
|
|
||||||
*/
|
*/
|
||||||
public final class LoggingContextConstants {
|
public final class LoggingContextConstants {
|
||||||
/** Key under which the current trace id will be injected into the context data. */
|
/** Key under which the current trace id will be injected into the context data. */
|
||||||
|
|
|
@ -101,7 +101,7 @@ public abstract class HttpServerTracer<REQUEST, RESPONSE, CONNECTION, STORAGE> e
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience method. Delegates to {@link #endExceptionally(Span, Throwable, RESPONSE)}, passing
|
* Convenience method. Delegates to {@link #endExceptionally(Span, Throwable, Object)}, passing
|
||||||
* {@code response} value of {@code null}.
|
* {@code response} value of {@code null}.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@ -110,7 +110,7 @@ public abstract class HttpServerTracer<REQUEST, RESPONSE, CONNECTION, STORAGE> e
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience method. Delegates to {@link #endExceptionally(Span, Throwable, RESPONSE, long)},
|
* Convenience method. Delegates to {@link #endExceptionally(Span, Throwable, Object, long)},
|
||||||
* passing {@code timestamp} value of {@code -1}.
|
* passing {@code timestamp} value of {@code -1}.
|
||||||
*/
|
*/
|
||||||
public void endExceptionally(Span span, Throwable throwable, RESPONSE response) {
|
public void endExceptionally(Span span, Throwable throwable, RESPONSE response) {
|
||||||
|
@ -119,7 +119,8 @@ public abstract class HttpServerTracer<REQUEST, RESPONSE, CONNECTION, STORAGE> e
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If {@code response} is {@code null}, the {@code http.status_code} will be set to {@code 500}
|
* If {@code response} is {@code null}, the {@code http.status_code} will be set to {@code 500}
|
||||||
* and the {@link Span} status will be set to {@link io.opentelemetry.trace.Status#INTERNAL}.
|
* and the {@link Span} status will be set to {@link
|
||||||
|
* io.opentelemetry.trace.StatusCanonicalCode#ERROR}.
|
||||||
*/
|
*/
|
||||||
public void endExceptionally(Span span, Throwable throwable, RESPONSE response, long timestamp) {
|
public void endExceptionally(Span span, Throwable throwable, RESPONSE response, long timestamp) {
|
||||||
onError(span, unwrapThrowable(throwable));
|
onError(span, unwrapThrowable(throwable));
|
||||||
|
@ -138,7 +139,7 @@ public abstract class HttpServerTracer<REQUEST, RESPONSE, CONNECTION, STORAGE> e
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns context stored to the given request-response-loop storage by {@link
|
* Returns context stored to the given request-response-loop storage by {@link
|
||||||
* #attachServerContext(Context, STORAGE)}.
|
* #attachServerContext(Context, Object)}.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public abstract Context getServerContext(STORAGE storage);
|
public abstract Context getServerContext(STORAGE storage);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.opentelemetry.javaagent.instrumentation.api.jdbc;
|
package io.opentelemetry.javaagent.instrumentation.jdbc;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
|
@ -14,8 +14,6 @@ import static net.bytebuddy.matcher.ElementMatchers.returns;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
import com.google.auto.service.AutoService;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.jdbc.DBInfo;
|
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.jdbc.JDBCConnectionUrlParser;
|
|
||||||
import io.opentelemetry.javaagent.tooling.Instrumenter;
|
import io.opentelemetry.javaagent.tooling.Instrumenter;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -3,10 +3,11 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.opentelemetry.javaagent.instrumentation.api.jdbc;
|
package io.opentelemetry.javaagent.instrumentation.jdbc;
|
||||||
|
|
||||||
import static io.opentelemetry.javaagent.instrumentation.api.jdbc.DBInfo.DEFAULT;
|
import static io.opentelemetry.javaagent.instrumentation.jdbc.DBInfo.DEFAULT;
|
||||||
|
|
||||||
|
import io.opentelemetry.javaagent.instrumentation.api.jdbc.DbSystem;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.javaagent.instrumentation.jdbc;
|
||||||
import static io.opentelemetry.javaagent.instrumentation.api.WeakMap.Provider.newWeakMap;
|
import static io.opentelemetry.javaagent.instrumentation.api.WeakMap.Provider.newWeakMap;
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.WeakMap;
|
import io.opentelemetry.javaagent.instrumentation.api.WeakMap;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.jdbc.DBInfo;
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,6 @@ import static io.opentelemetry.javaagent.instrumentation.jdbc.JDBCUtils.connecti
|
||||||
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
import io.opentelemetry.instrumentation.api.tracer.DatabaseClientTracer;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.CallDepthThreadLocalMap;
|
import io.opentelemetry.javaagent.instrumentation.api.CallDepthThreadLocalMap;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.CallDepthThreadLocalMap.Depth;
|
import io.opentelemetry.javaagent.instrumentation.api.CallDepthThreadLocalMap.Depth;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.jdbc.DBInfo;
|
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.jdbc.JDBCConnectionUrlParser;
|
|
||||||
import io.opentelemetry.trace.Span;
|
import io.opentelemetry.trace.Span;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import static io.opentelemetry.javaagent.instrumentation.api.jdbc.JDBCConnectionUrlParser.parse
|
import static io.opentelemetry.javaagent.instrumentation.jdbc.JDBCConnectionUrlParser.parse
|
||||||
|
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.jdbc.DBInfo
|
import io.opentelemetry.javaagent.instrumentation.jdbc.DBInfo
|
||||||
import spock.lang.Shared
|
import spock.lang.Shared
|
||||||
import spock.lang.Specification
|
import spock.lang.Specification
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,7 @@ import java.lang.reflect.Method;
|
||||||
import net.bytebuddy.asm.Advice;
|
import net.bytebuddy.asm.Advice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instrumentation for methods annotated with {@link
|
* Instrumentation for methods annotated with {@link WithSpan} annotation.
|
||||||
* io.opentelemetry.extensions.auto.annotations.WithSpan} annotation.
|
|
||||||
*
|
*
|
||||||
* @see WithSpanAnnotationInstrumentation
|
* @see WithSpanAnnotationInstrumentation
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -11,6 +11,7 @@ import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||||
import static net.bytebuddy.matcher.ElementMatchers.not;
|
import static net.bytebuddy.matcher.ElementMatchers.not;
|
||||||
|
|
||||||
|
import application.io.opentelemetry.extensions.auto.annotations.WithSpan;
|
||||||
import com.google.auto.service.AutoService;
|
import com.google.auto.service.AutoService;
|
||||||
import io.opentelemetry.javaagent.tooling.Instrumenter;
|
import io.opentelemetry.javaagent.tooling.Instrumenter;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -19,10 +20,7 @@ import net.bytebuddy.description.method.MethodDescription;
|
||||||
import net.bytebuddy.description.type.TypeDescription;
|
import net.bytebuddy.description.type.TypeDescription;
|
||||||
import net.bytebuddy.matcher.ElementMatcher;
|
import net.bytebuddy.matcher.ElementMatcher;
|
||||||
|
|
||||||
/**
|
/** Instrumentation for methods annotated with {@link WithSpan} annotation. */
|
||||||
* Instrumentation for methods annotated with {@link
|
|
||||||
* io.opentelemetry.extensions.auto.annotations.WithSpan} annotation.
|
|
||||||
*/
|
|
||||||
@AutoService(Instrumenter.class)
|
@AutoService(Instrumenter.class)
|
||||||
public final class WithSpanAnnotationInstrumentation
|
public final class WithSpanAnnotationInstrumentation
|
||||||
extends AbstractTraceAnnotationInstrumentation {
|
extends AbstractTraceAnnotationInstrumentation {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.time.Duration;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration for {@link JaegerSpanExporter}
|
* Configuration for {@link io.opentelemetry.exporters.jaeger.JaegerGrpcSpanExporter}
|
||||||
*
|
*
|
||||||
* <p>Get Exporter Service Name
|
* <p>Get Exporter Service Name
|
||||||
*
|
*
|
||||||
|
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure.exporters.logging;
|
||||||
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
/** Configuration for {@link LoggingSpanExporter} */
|
/** Configuration for {@link io.opentelemetry.exporters.logging.LoggingSpanExporter} */
|
||||||
@ConfigurationProperties(prefix = "opentelemetry.trace.exporter.logging")
|
@ConfigurationProperties(prefix = "opentelemetry.trace.exporter.logging")
|
||||||
public final class LoggingSpanExporterProperties {
|
public final class LoggingSpanExporterProperties {
|
||||||
private boolean enabled = true;
|
private boolean enabled = true;
|
||||||
|
|
|
@ -12,7 +12,7 @@ import java.time.Duration;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration for {@link OtlpGrpcSpanExporter}
|
* Configuration for {@link io.opentelemetry.exporters.otlp.OtlpGrpcSpanExporter}
|
||||||
*
|
*
|
||||||
* <p>Get Exporter Service Name
|
* <p>Get Exporter Service Name
|
||||||
*
|
*
|
||||||
|
|
|
@ -11,9 +11,9 @@ import static io.opentelemetry.exporters.zipkin.ZipkinSpanExporter.DEFAULT_SERVI
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration for {@link ZipkinSpanExporter}
|
* Configuration for {@link io.opentelemetry.exporters.zipkin.ZipkinSpanExporter}
|
||||||
*
|
*
|
||||||
* <p>Get Exporter Service Name {@link getServiceName()}
|
* <p>Get Exporter Service Name {@link #getServiceName()}
|
||||||
*
|
*
|
||||||
* <p>Get Exporter Endpoint
|
* <p>Get Exporter Endpoint
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -14,7 +14,7 @@ import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.web.filter.OncePerRequestFilter;
|
import org.springframework.web.filter.OncePerRequestFilter;
|
||||||
|
|
||||||
/** Configures {@link WebMVCFilter} for tracing. */
|
/** Configures {@link WebMvcTracingFilter} for tracing. */
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableConfigurationProperties(WebMvcProperties.class)
|
@EnableConfigurationProperties(WebMvcProperties.class)
|
||||||
@ConditionalOnProperty(prefix = "opentelemetry.trace.web", name = "enabled", matchIfMissing = true)
|
@ConditionalOnProperty(prefix = "opentelemetry.trace.web", name = "enabled", matchIfMissing = true)
|
||||||
|
|
|
@ -3,6 +3,9 @@ group = 'io.opentelemetry.javaagent'
|
||||||
apply from: "$rootDir/gradle/java.gradle"
|
apply from: "$rootDir/gradle/java.gradle"
|
||||||
apply from: "$rootDir/gradle/publish.gradle"
|
apply from: "$rootDir/gradle/publish.gradle"
|
||||||
|
|
||||||
|
project.ext.minimumBranchCoverage = 0.0
|
||||||
|
project.ext.minimumInstructionCoverage = 0.0
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api deps.opentelemetryApi
|
api deps.opentelemetryApi
|
||||||
compileOnly deps.opentelemetrySdk
|
compileOnly deps.opentelemetrySdk
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
`db.system`
|
|
||||||
|
|
||||||
The latest specification for `db.system` is [database.md].
|
|
||||||
|
|
||||||
[database.md]: https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/database.md
|
|
||||||
|
|
||||||
| Value for `db.system` | Product name | Note |
|
|
||||||
| :-------------------- | :------------------------ | :----------------------------- |
|
|
||||||
| `"h2"` | H2 Database | not on [database.md] |
|
|
||||||
| `"hsqldb"` | Hyper SQL Database | not on [database.md] |
|
|
|
@ -227,13 +227,13 @@ public interface Instrumenter {
|
||||||
/** @return A type matcher used to match the class under transform. */
|
/** @return A type matcher used to match the class under transform. */
|
||||||
public abstract ElementMatcher<? super TypeDescription> typeMatcher();
|
public abstract ElementMatcher<? super TypeDescription> typeMatcher();
|
||||||
|
|
||||||
/** @return A map of matcher->advice */
|
/** @return A map of matcher to advice */
|
||||||
public abstract Map<? extends ElementMatcher<? super MethodDescription>, String> transformers();
|
public abstract Map<? extends ElementMatcher<? super MethodDescription>, String> transformers();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Context stores to define for this instrumentation.
|
* Context stores to define for this instrumentation.
|
||||||
*
|
*
|
||||||
* <p>A map of {class-name -> context-class-name}. Keys (and their subclasses) will be
|
* <p>A map of {@code class-name to context-class-name}. Keys (and their subclasses) will be
|
||||||
* associated with a context of the value.
|
* associated with a context of the value.
|
||||||
*/
|
*/
|
||||||
public Map<String, String> contextStore() {
|
public Map<String, String> contextStore() {
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class Utils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** com.foo.Bar -> com/foo/Bar.class */
|
/** com.foo.Bar to com/foo/Bar.class */
|
||||||
public static String getResourceName(String className) {
|
public static String getResourceName(String className) {
|
||||||
if (!className.endsWith(".class")) {
|
if (!className.endsWith(".class")) {
|
||||||
return className.replace('.', '/') + ".class";
|
return className.replace('.', '/') + ".class";
|
||||||
|
@ -54,12 +54,12 @@ public class Utils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** com/foo/Bar.class -> com.foo.Bar */
|
/** com/foo/Bar.class to com.foo.Bar */
|
||||||
public static String getClassName(String resourceName) {
|
public static String getClassName(String resourceName) {
|
||||||
return resourceName.replaceAll("\\.class\\$", "").replace('/', '.');
|
return resourceName.replaceAll("\\.class\\$", "").replace('/', '.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/** com.foo.Bar -> com/foo/Bar */
|
/** com.foo.Bar to com/foo/Bar */
|
||||||
public static String getInternalName(String resourceName) {
|
public static String getInternalName(String resourceName) {
|
||||||
return resourceName.replaceAll("\\.class\\$", "").replace('.', '/');
|
return resourceName.replaceAll("\\.class\\$", "").replace('.', '/');
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ import net.bytebuddy.pool.TypePool;
|
||||||
* There two core parts to the cache...
|
* There two core parts to the cache...
|
||||||
* <li>a cache of ClassLoader to WeakReference<ClassLoader>
|
* <li>a cache of ClassLoader to WeakReference<ClassLoader>
|
||||||
* <li>a single cache of TypeResolutions for all ClassLoaders - keyed by a custom composite key of
|
* <li>a single cache of TypeResolutions for all ClassLoaders - keyed by a custom composite key of
|
||||||
* ClassLoader & class name
|
* ClassLoader and class name
|
||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
* <p>This design was chosen to create a single limited size cache that can be adjusted for the
|
* <p>This design was chosen to create a single limited size cache that can be adjusted for the
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class ReferenceCollector extends ClassVisitor {
|
||||||
* ByteBuddy plugin.
|
* ByteBuddy plugin.
|
||||||
*
|
*
|
||||||
* @param entryPointClassName Starting point for generating references.
|
* @param entryPointClassName Starting point for generating references.
|
||||||
* @return Map of [referenceClassName -> Reference]
|
* @return Map of [referenceClassName to Reference]
|
||||||
* @see io.opentelemetry.javaagent.tooling.muzzle.InstrumentationClassPredicate
|
* @see io.opentelemetry.javaagent.tooling.muzzle.InstrumentationClassPredicate
|
||||||
*/
|
*/
|
||||||
public static Map<String, Reference> collectReferencesFrom(String entryPointClassName) {
|
public static Map<String, Reference> collectReferencesFrom(String entryPointClassName) {
|
||||||
|
|
|
@ -313,12 +313,6 @@ class TestHttpServer implements AutoCloseable {
|
||||||
resp.setContentLength(body.bytes.length)
|
resp.setContentLength(body.bytes.length)
|
||||||
resp.writer.print(body)
|
resp.writer.print(body)
|
||||||
}
|
}
|
||||||
|
|
||||||
void send(String body, String contentType) {
|
|
||||||
assert contentType != null
|
|
||||||
resp.setContentType(contentType)
|
|
||||||
send(body)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Headers {
|
static class Headers {
|
||||||
|
|
Loading…
Reference in New Issue