Compare commits
3 Commits
snapshot@0
...
release@1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
d3a8270d8a
|
|||
|
f156aff839
|
|||
|
12108b49d6
|
84
.gitea/workflows/release.yml
Normal file
84
.gitea/workflows/release.yml
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'release@*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up Java 21
|
||||||
|
uses: actions/setup-java@v3
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: 21
|
||||||
|
|
||||||
|
- name: Cache Gradle
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches
|
||||||
|
~/.gradle/wrapper
|
||||||
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gradle-
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: ./gradlew clean build --no-daemon
|
||||||
|
|
||||||
|
- name: Generate release notes
|
||||||
|
id: notes
|
||||||
|
run: |
|
||||||
|
current_tag="${{ github.ref_name }}"
|
||||||
|
|
||||||
|
# strip the prefix for sorting, keep prefix for matching
|
||||||
|
prefix="release@"
|
||||||
|
|
||||||
|
# get all matching tags, strip prefix, sort them
|
||||||
|
all_versions=$(git tag --list "${prefix}*" | sed "s/^${prefix}//" | sort -V)
|
||||||
|
|
||||||
|
# find previous version
|
||||||
|
previous_tag=""
|
||||||
|
for v in $all_versions; do
|
||||||
|
if [[ "$prefix$v" == "$current_tag" ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
previous_tag="$prefix$v"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z "$previous_tag" ]]; then
|
||||||
|
range=""
|
||||||
|
else
|
||||||
|
range="$previous_tag..$current_tag"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Comparing range: $range"
|
||||||
|
|
||||||
|
body="## What's New"
|
||||||
|
|
||||||
|
for category in "feat: Features" "fix: Bug Fixes" "docs: Documentation" "chore: Chores"; do
|
||||||
|
prefix="${category%%:*}"
|
||||||
|
title="${category##*: }"
|
||||||
|
entries=$(git log $range --pretty=format:"%B" --no-merges | ( grep "^${prefix}" || true ) | sed "s/^${prefix}:/- /")
|
||||||
|
if [[ -n "$entries" ]]; then
|
||||||
|
body="$body\n\n### $title\n$entries"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "$body" > /tmp/release_notes.md
|
||||||
|
|
||||||
|
- name: Create Gitea Release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
build/distributions/*.tar
|
||||||
|
build/distributions/*.zip
|
||||||
|
body_path: /tmp/release_notes.md
|
||||||
357
.ruleset
Normal file
357
.ruleset
Normal file
@@ -0,0 +1,357 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
name="EgothorRuleset"
|
||||||
|
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
|
||||||
|
<description>Egothor preferences rule set</description>
|
||||||
|
<exclude-pattern>.*/package-info\.java</exclude-pattern>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AccessorClassGeneration"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AccessorMethodGeneration"/>
|
||||||
|
<!-- rule ref="category/java/bestpractices.xml/ArrayIsStoredDirectly"/ -->
|
||||||
|
<rule ref="category/java/bestpractices.xml/AvoidMessageDigestField"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AvoidReassigningCatchVariables"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AvoidReassigningLoopVariables"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AvoidReassigningParameters"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AvoidStringBufferField"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/CheckResultSet"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ConstantsInInterface"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/DefaultLabelNotLastInSwitch"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/DoubleBraceInitialization"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ExhaustiveSwitchHasDefault"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ForLoopCanBeForeach"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ForLoopVariableCount"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/GuardLogStatement"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ImplicitFunctionalInterface"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/JUnit4SuitesShouldUseSuiteAnnotation"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/JUnit5TestShouldBePackagePrivate"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/JUnitUseExpected"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/LiteralsFirstInComparisons"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/LooseCoupling"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/MethodReturnsInternalArray"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/MissingOverride"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/NonExhaustiveSwitch"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/OneDeclarationPerLine"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/PreserveStackTrace"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/PrimitiveWrapperInstantiation"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ReplaceEnumerationWithIterator"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ReplaceHashtableWithMap"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/ReplaceVectorWithList"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/SimplifiableTestAssertion"/>
|
||||||
|
<!-- rule ref="category/java/bestpractices.xml/SystemPrintln"/ -->
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnitTestAssertionsShouldIncludeMessage"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnitTestContainsTooManyAsserts"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnitTestShouldIncludeAssert"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnitTestShouldUseAfterAnnotation"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnitTestShouldUseBeforeAnnotation"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnitTestShouldUseTestAnnotation"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnnecessaryVarargsArrayCreation"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnnecessaryWarningSuppression"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnusedAssignment"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnusedFormalParameter"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnusedLocalVariable"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnusedPrivateField"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UseCollectionIsEmpty"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UseEnumCollections"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UseStandardCharsets"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UseTryWithResources"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/UseVarargs"/>
|
||||||
|
<rule ref="category/java/bestpractices.xml/WhileLoopWithLiteralBoolean"/>
|
||||||
|
<!-- rule ref="category/java/codestyle.xml/AtLeastOneConstructor"/ -->
|
||||||
|
<rule ref="category/java/codestyle.xml/AvoidDollarSigns"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/AvoidProtectedFieldInFinalClass"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/AvoidProtectedMethodInFinalClassNotExtending"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/AvoidUsingNativeCode"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/BooleanGetMethodName"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/CallSuperInConstructor"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/ClassNamingConventions"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/ConfusingTernary"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/ControlStatementBraces"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/EmptyControlStatement"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/EmptyMethodInAbstractClassShouldBeAbstract"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/ExtendsObject"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/FieldDeclarationsShouldBeAtStartOfClass"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/FieldNamingConventions">
|
||||||
|
<properties>
|
||||||
|
<property name="publicConstantPattern" value="[A-Z][A-Z_0-9]*" />
|
||||||
|
<property name="constantPattern" value="[A-Z][A-Z_0-9]*" />
|
||||||
|
<property name="enumConstantPattern" value="[A-Z][A-Z_0-9]*" />
|
||||||
|
<property name="finalFieldPattern" value="[_a-zA-Z][a-zA-Z_0-9]*" />
|
||||||
|
<property name="staticFieldPattern" value="[_a-zA-Z][a-zA-Z0-9]*" />
|
||||||
|
<property name="defaultFieldPattern" value="[_a-z][a-zA-Z0-9]*" />
|
||||||
|
<property name="exclusions" value="serialVersionUID,serialPersistentFields" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/codestyle.xml/FinalParameterInAbstractMethod"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/FormalParameterNamingConventions"/>
|
||||||
|
<!-- rule ref="category/java/codestyle.xml/GenericsNaming"/ -->
|
||||||
|
<rule ref="category/java/codestyle.xml/IdenticalCatchBranches"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/LambdaCanBeMethodReference"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/LinguisticNaming"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/LocalHomeNamingConvention"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/LocalInterfaceSessionNamingConvention"/>
|
||||||
|
<!-- rule ref="category/java/codestyle.xml/LocalVariableCouldBeFinal"/ -->
|
||||||
|
<rule ref="category/java/codestyle.xml/LocalVariableNamingConventions">
|
||||||
|
<properties>
|
||||||
|
<property name="localVarPattern" value="[_a-z][a-zA-Z0-9]*" />
|
||||||
|
<property name="finalVarPattern" value="[_a-zA-Z][a-zA-Z_0-9]*" />
|
||||||
|
<property name="catchParameterPattern" value="[a-z][a-zA-Z0-9]*" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/codestyle.xml/LongVariable">
|
||||||
|
<properties>
|
||||||
|
<property name="minimum" value="28" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/codestyle.xml/MDBAndSessionBeanNamingConvention"/>
|
||||||
|
<!-- rule ref="category/java/codestyle.xml/MethodArgumentCouldBeFinal"/ -->
|
||||||
|
<rule ref="category/java/codestyle.xml/MethodNamingConventions">
|
||||||
|
<properties>
|
||||||
|
<property name="methodPattern" value="[a-z][a-zA-Z0-9_]*" />
|
||||||
|
<property name="staticPattern" value="[a-z][a-zA-Z0-9_]*" />
|
||||||
|
<property name="nativePattern" value="[a-z][a-zA-Z0-9_]*" />
|
||||||
|
<property name="junit3TestPattern" value="test[A-Z0-9][a-zA-Z0-9]*" />
|
||||||
|
<property name="junit4TestPattern" value="[a-z][a-zA-Z0-9]*" />
|
||||||
|
<property name="junit5TestPattern" value="[a-z][a-zA-Z0-9]*" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/codestyle.xml/NoPackage"/>
|
||||||
|
<!-- rule ref="category/java/codestyle.xml/OnlyOneReturn"/ -->
|
||||||
|
<rule ref="category/java/codestyle.xml/PackageCase"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/PrematureDeclaration"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/RemoteInterfaceNamingConvention"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/RemoteSessionInterfaceNamingConvention"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/ShortClassName"/>
|
||||||
|
<!-- rule ref="category/java/codestyle.xml/ShortMethodName"/ -->
|
||||||
|
<!-- rule ref="category/java/codestyle.xml/ShortVariable"/ -->
|
||||||
|
<rule ref="category/java/codestyle.xml/TooManyStaticImports"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryAnnotationValueElement"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryBoxing"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryCast"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryConstructor"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryFullyQualifiedName"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryImport"/>
|
||||||
|
<!-- PMD 8.0.0: obsolete rule ref="category/java/codestyle.xml/UnnecessaryLocalBeforeReturn"/ -->
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryModifier"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessaryReturn"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UnnecessarySemicolon"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UseDiamondOperator"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UseExplicitTypes"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UselessParentheses"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UselessQualifiedThis"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UseShortArrayInitializer"/>
|
||||||
|
<rule ref="category/java/codestyle.xml/UseUnderscoresInNumericLiterals"/>
|
||||||
|
<rule ref="category/java/design.xml/AbstractClassWithoutAnyMethod"/>
|
||||||
|
<rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts"/>
|
||||||
|
<rule ref="category/java/design.xml/AvoidRethrowingException"/>
|
||||||
|
<rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException"/>
|
||||||
|
<rule ref="category/java/design.xml/AvoidThrowingNullPointerException"/>
|
||||||
|
<rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes"/>
|
||||||
|
<rule ref="category/java/design.xml/AvoidUncheckedExceptionsInSignatures"/>
|
||||||
|
<rule ref="category/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal"/>
|
||||||
|
<rule ref="category/java/design.xml/CognitiveComplexity">
|
||||||
|
<properties>
|
||||||
|
<property name="reportLevel" value="45" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/design.xml/CollapsibleIfStatements"/>
|
||||||
|
<rule ref="category/java/design.xml/CouplingBetweenObjects">
|
||||||
|
<properties>
|
||||||
|
<property name="threshold" value="50" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/design.xml/CyclomaticComplexity">
|
||||||
|
<properties>
|
||||||
|
<property name="methodReportLevel" value="18" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/design.xml/DataClass"/>
|
||||||
|
<rule ref="category/java/design.xml/DoNotExtendJavaLangError"/>
|
||||||
|
<rule ref="category/java/design.xml/ExceptionAsFlowControl"/>
|
||||||
|
<!-- rule ref="category/java/design.xml/ExcessiveImports"/ -->
|
||||||
|
<rule ref="category/java/design.xml/ExcessiveParameterList"/>
|
||||||
|
<rule ref="category/java/design.xml/ExcessivePublicCount"/>
|
||||||
|
<rule ref="category/java/design.xml/FinalFieldCouldBeStatic"/>
|
||||||
|
<!-- rule ref="category/java/design.xml/GodClass"/ -->
|
||||||
|
<rule ref="category/java/design.xml/ImmutableField"/>
|
||||||
|
<rule ref="category/java/design.xml/InvalidJavaBean"/>
|
||||||
|
<!-- rule ref="category/java/design.xml/LawOfDemeter"/ -->
|
||||||
|
<rule ref="category/java/design.xml/LogicInversion"/>
|
||||||
|
<!-- rule ref="category/java/design.xml/LoosePackageCoupling"/ -->
|
||||||
|
<rule ref="category/java/design.xml/MutableStaticState"/>
|
||||||
|
<rule ref="category/java/design.xml/NcssCount"/>
|
||||||
|
<rule ref="category/java/design.xml/NPathComplexity">
|
||||||
|
<properties>
|
||||||
|
<property name="reportLevel" value="260" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/design.xml/SignatureDeclareThrowsException"/>
|
||||||
|
<rule ref="category/java/design.xml/SimplifiedTernary"/>
|
||||||
|
<rule ref="category/java/design.xml/SimplifyBooleanExpressions"/>
|
||||||
|
<rule ref="category/java/design.xml/SimplifyBooleanReturns"/>
|
||||||
|
<rule ref="category/java/design.xml/SimplifyConditional"/>
|
||||||
|
<rule ref="category/java/design.xml/SingularField"/>
|
||||||
|
<rule ref="category/java/design.xml/SwitchDensity"/>
|
||||||
|
<rule ref="category/java/design.xml/TooManyFields">
|
||||||
|
<properties>
|
||||||
|
<property name="maxfields" value="30"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/design.xml/TooManyMethods">
|
||||||
|
<properties>
|
||||||
|
<property name="maxmethods" value="50"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/design.xml/UselessOverridingMethod"/>
|
||||||
|
<rule ref="category/java/design.xml/UseObjectForClearerAPI"/>
|
||||||
|
<rule ref="category/java/design.xml/UseUtilityClass"/>
|
||||||
|
<rule ref="category/java/documentation.xml/CommentContent"/>
|
||||||
|
<rule ref="category/java/documentation.xml/CommentRequired">
|
||||||
|
<properties>
|
||||||
|
<property name="fieldCommentRequirement" value="Ignored"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/documentation.xml/CommentSize">
|
||||||
|
<properties>
|
||||||
|
<property name="maxLines" value="150"/>
|
||||||
|
<property name="maxLineLength" value="130"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/documentation.xml/UncommentedEmptyConstructor"/>
|
||||||
|
<rule ref="category/java/documentation.xml/UncommentedEmptyMethodBody"/>
|
||||||
|
<!-- rule ref="category/java/errorprone.xml/AssignmentInOperand"/ -->
|
||||||
|
<rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidAccessibilityAlteration"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidAssertAsIdentifier"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidCallingFinalize"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidCatchingGenericException">
|
||||||
|
<properties>
|
||||||
|
<property name="typesThatShouldNotBeCaught" value="java.lang.RuntimeException,java.lang.Throwable,java.lang.Error" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
|
||||||
|
<properties>
|
||||||
|
<property name="maxDuplicateLiterals" value="6"/>
|
||||||
|
<property name="skipAnnotations" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidEnumAsIdentifier"/>
|
||||||
|
<!-- rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingMethodName"/ -->
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingTypeName"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidInstanceofChecksInCatchClause"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidLiteralsInIfCondition"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/AvoidUsingOctalValues"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/BrokenNullCheck"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CallSuperFirst"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CallSuperLast"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CheckSkipResult"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CloneMethodMustBePublic"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CloneMethodMustImplementCloneable"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CloneMethodReturnTypeMustMatchClassName"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CloseResource"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/CompareObjectsWithEquals"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ComparisonWithNaN"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ConfusingArgumentToVarargsMethod"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ConstructorCallsOverridableMethod"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DetachedTestCase"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DoNotExtendJavaLangThrowable"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DoNotHardCodeSDCard"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DoNotTerminateVM"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DoNotThrowExceptionInFinally"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DontImportSun"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/DontUseFloatTypeForLoopIndices"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/EmptyCatchBlock"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/EmptyFinalizer"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/EqualsNull"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/FinalizeDoesNotCallSuperFinalize"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/FinalizeOnlyCallsSuperFinalize"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/FinalizeOverloaded"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/FinalizeShouldBeProtected"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/IdempotentOperations"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ImplicitSwitchFallThrough"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/InstantiationToGetClass"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/InvalidLogMessageFormat"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/JumbledIncrementer"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/JUnitSpelling"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/JUnitStaticSuite"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/MethodWithSameNameAsEnclosingClass"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/MisplacedNullCheck"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/MissingSerialVersionUID"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/MoreThanOneLogger"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/NonCaseLabelInSwitch"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/NonSerializableClass"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/NonStaticInitializer"/>
|
||||||
|
<!-- rule ref="category/java/errorprone.xml/NullAssignment"/ -->
|
||||||
|
<rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ProperCloneImplementation"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ProperLogger"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ReturnEmptyCollectionRatherThanNull"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/SimpleDateFormatNeedsLocale"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/SingleMethodSingleton"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/SingletonClassReturningNewInstance"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/StaticEJBFieldShouldBeFinal"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/StringBufferInstantiationWithChar"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/SuspiciousEqualsMethodName"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/SuspiciousHashcodeMethodName"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/SuspiciousOctalEscape"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/TestClassWithoutTestCases"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UnconditionalIfStatement"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UnnecessaryBooleanAssertion"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UnnecessaryCaseChange"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UseCorrectExceptionLogging"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UseEqualsToCompareStrings"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UselessPureMethodCall" />
|
||||||
|
<rule ref="category/java/errorprone.xml/UseLocaleWithCaseConversions"/>
|
||||||
|
<rule ref="category/java/errorprone.xml/UseProperClassLoader"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/AvoidSynchronizedAtMethodLevel"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/AvoidSynchronizedStatement"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/AvoidThreadGroup"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/AvoidUsingVolatile"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/DoNotUseThreads"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/DontCallThreadRun"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/DoubleCheckedLocking"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/NonThreadSafeSingleton"/>
|
||||||
|
<rule ref="category/java/multithreading.xml/UnsynchronizedStaticFormatter"/>
|
||||||
|
<!-- rule ref="category/java/multithreading.xml/UseConcurrentHashMap"/ -->
|
||||||
|
<rule ref="category/java/multithreading.xml/UseNotifyAllInsteadOfNotify"/>
|
||||||
|
<rule ref="category/java/performance.xml/AddEmptyString"/>
|
||||||
|
<rule ref="category/java/performance.xml/AppendCharacterWithChar"/>
|
||||||
|
<rule ref="category/java/performance.xml/AvoidArrayLoops"/>
|
||||||
|
<rule ref="category/java/performance.xml/AvoidCalendarDateCreation"/>
|
||||||
|
<rule ref="category/java/performance.xml/AvoidFileStream"/>
|
||||||
|
<rule ref="category/java/performance.xml/AvoidInstantiatingObjectsInLoops"/>
|
||||||
|
<rule ref="category/java/performance.xml/BigIntegerInstantiation"/>
|
||||||
|
<rule ref="category/java/performance.xml/ConsecutiveAppendsShouldReuse"/>
|
||||||
|
<rule ref="category/java/performance.xml/ConsecutiveLiteralAppends"/>
|
||||||
|
<rule ref="category/java/performance.xml/InefficientEmptyStringCheck"/>
|
||||||
|
<rule ref="category/java/performance.xml/InefficientStringBuffering"/>
|
||||||
|
<rule ref="category/java/performance.xml/InsufficientStringBufferDeclaration"/>
|
||||||
|
<rule ref="category/java/performance.xml/OptimizableToArrayCall"/>
|
||||||
|
<rule ref="category/java/performance.xml/RedundantFieldInitializer"/>
|
||||||
|
<rule ref="category/java/performance.xml/StringInstantiation"/>
|
||||||
|
<rule ref="category/java/performance.xml/StringToString"/>
|
||||||
|
<rule ref="category/java/performance.xml/TooFewBranchesForSwitch"/>
|
||||||
|
<rule ref="category/java/performance.xml/UseArrayListInsteadOfVector"/>
|
||||||
|
<rule ref="category/java/performance.xml/UseArraysAsList"/>
|
||||||
|
<rule ref="category/java/performance.xml/UseIndexOfChar"/>
|
||||||
|
<rule ref="category/java/performance.xml/UseIOStreamsWithApacheCommonsFileItem"/>
|
||||||
|
<rule ref="category/java/performance.xml/UselessStringValueOf"/>
|
||||||
|
<rule ref="category/java/performance.xml/UseStringBufferForStringAppends"/>
|
||||||
|
<rule ref="category/java/performance.xml/UseStringBufferLength"/>
|
||||||
|
<rule ref="category/java/security.xml/HardCodedCryptoKey"/>
|
||||||
|
<rule ref="category/java/security.xml/InsecureCryptoIv"/>
|
||||||
|
</ruleset>
|
||||||
BIN
MethodAtlas.png
Normal file
BIN
MethodAtlas.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 593 KiB |
@@ -1,5 +1,7 @@
|
|||||||
# MethodAtlasApp
|
# MethodAtlasApp
|
||||||
|
|
||||||
|
<img src=MethodAtlas.png width=20% align="right" />
|
||||||
|
|
||||||
`MethodAtlasApp` is a small standalone CLI that scans Java source trees for JUnit test methods and prints per-method
|
`MethodAtlasApp` is a small standalone CLI that scans Java source trees for JUnit test methods and prints per-method
|
||||||
statistics:
|
statistics:
|
||||||
|
|
||||||
|
|||||||
88
build.gradle
88
build.gradle
@@ -1,10 +1,12 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'application'
|
id 'application'
|
||||||
|
id 'pmd'
|
||||||
|
id 'com.palantir.git-version' version '4.0.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
group = 'org.egothor.methodatlas'
|
group = 'org.egothor.methodatlas'
|
||||||
version = '0.1.0-SNAPSHOT'
|
version = gitVersion(prefix:'release@')
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain {
|
toolchain {
|
||||||
@@ -32,17 +34,47 @@ tasks.test {
|
|||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
javadoc {
|
||||||
|
failOnError = false
|
||||||
|
|
||||||
|
options.addStringOption('Xdoclint:all,-missing', '-quiet')
|
||||||
|
options.addBooleanOption('html5', true)
|
||||||
|
options.tags('apiNote:a:API Note:')
|
||||||
|
options.tags('implSpec:a:Implementation Requirements:')
|
||||||
|
options.tags('implNote:a:Implementation Note:')
|
||||||
|
options.tags('param')
|
||||||
|
options.tags('return')
|
||||||
|
options.tags('throws')
|
||||||
|
options.tags('since')
|
||||||
|
options.tags('version')
|
||||||
|
options.tags('serialData')
|
||||||
|
options.tags('factory')
|
||||||
|
options.tags('see')
|
||||||
|
|
||||||
|
options.use = true
|
||||||
|
options.author = true
|
||||||
|
options.version = true
|
||||||
|
options.windowTitle = 'MethodAtlas'
|
||||||
|
options.docTitle = 'MethodAtlas API'
|
||||||
|
|
||||||
|
source = sourceSets.main.allJava
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('jar') {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register('fatJar', Jar) {
|
||||||
|
archiveClassifier = ''
|
||||||
manifest {
|
manifest {
|
||||||
attributes(
|
attributes(
|
||||||
'Main-Class': application.mainClass,
|
'Main-Class': application.mainClass.get(),
|
||||||
'Implementation-Title': rootProject.name,
|
'Implementation-Title': rootProject.name,
|
||||||
'Implementation-Version': "${version}"
|
'Implementation-Version': "${version}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
from sourceSets.main.output
|
from sourceSets.main.output
|
||||||
|
|
||||||
dependsOn configurations.runtimeClasspath
|
dependsOn configurations.runtimeClasspath
|
||||||
|
|
||||||
// Include each JAR dependency
|
// Include each JAR dependency
|
||||||
@@ -66,3 +98,51 @@ jar {
|
|||||||
|
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
distributions {
|
||||||
|
create('fat') {
|
||||||
|
distributionBaseName = project.name
|
||||||
|
contents {
|
||||||
|
into('bin') {
|
||||||
|
from(tasks.named('startScripts'))
|
||||||
|
filePermissions {
|
||||||
|
unix('rwxr-xr-x')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
into('lib') {
|
||||||
|
from(tasks.named('fatJar'))
|
||||||
|
}
|
||||||
|
from('src/dist')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('assemble') {
|
||||||
|
dependsOn tasks.named('fatDistZip'), tasks.named('fatDistTar')
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('startScripts') {
|
||||||
|
dependsOn tasks.named('fatJar')
|
||||||
|
classpath = files(tasks.named('fatJar').flatMap { it.archiveFile })
|
||||||
|
}
|
||||||
|
|
||||||
|
gradle.taskGraph.whenReady { taskGraph ->
|
||||||
|
def banner = """
|
||||||
|
\u001B[34m
|
||||||
|
|
||||||
|
8888888888 .d8888b. .d88888b. 88888888888 888 888 .d88888b. 8888888b.
|
||||||
|
888 d88P Y88b d88P" "Y88b 888 888 888 d88P" "Y88b 888 Y88b
|
||||||
|
888 888 888 888 888 888 888 888 888 888 888 888
|
||||||
|
8888888 888 888 888 888 8888888888 888 888 888 d88P
|
||||||
|
888 888 88888 888 888 888 888 888 888 888 8888888P"
|
||||||
|
888 888 888 888 888 888 888 888 888 888 888 T88b
|
||||||
|
888 Y88b d88P Y88b. .d88P 888 888 888 Y88b. .d88P 888 T88b
|
||||||
|
8888888888 "Y8888P88 "Y88888P" 888 888 888 "Y88888P" 888 T88b
|
||||||
|
|
||||||
|
\u001B[36m
|
||||||
|
Project : ${project.name}
|
||||||
|
Version : ${project.version}
|
||||||
|
\u001B[0m
|
||||||
|
"""
|
||||||
|
println banner
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user