Compare commits
103 commits
Author | SHA1 | Date | |
---|---|---|---|
e16a3eac76 | |||
ef3e35d766 | |||
10f738bea8 | |||
ad7032d82f | |||
c9585f3a5c | |||
e8c901c6c1 | |||
f55e010286 | |||
610a042ced | |||
ccc04bf81d | |||
4e373bfd10 | |||
91a113ed5a | |||
1c8fc1d685 | |||
a8d595cce0 | |||
6cd5bc8e8f | |||
b326e9787c | |||
bddb869fe8 | |||
f040cfd9f9 | |||
34042de676 | |||
c6c80b6f3f | |||
534be59ae8 | |||
a490b80f42 | |||
41b6af3a45 | |||
1b986c7f21 | |||
b26c0ff129 | |||
1659308eb5 | |||
638d12c5c2 | |||
c4672d88ae | |||
69c0b6692d | |||
5d0147154b | |||
b332c6e885 | |||
440cd91c8a | |||
dc2656200b | |||
b357caf341 | |||
71141e0b3e | |||
c5e11dd1cb | |||
9aaad3381e | |||
02a626a756 | |||
9ddf93057a | |||
dca356b140 | |||
6994600afe | |||
c2779f7462 | |||
6f3e4442dd | |||
2c8c219b81 | |||
51fa6fbab2 | |||
11476127f0 | |||
2fd73691c2 | |||
660a4ea840 | |||
fc84ae9d60 | |||
b3dce4fa0a | |||
41169b88d9 | |||
0429bbec0a | |||
bf6cf48978 | |||
6b638fcabb | |||
43cc65ba1f | |||
1b419e2baa | |||
e1263fd3e6 | |||
0a2a2f4b03 | |||
c93c9ea2d0 | |||
6f11563739 | |||
f623921ff3 | |||
d28388bcd4 | |||
becd6384cd | |||
143bb31a78 | |||
8198f1e985 | |||
826a967815 | |||
00f40e887f | |||
aa6d6a70b0 | |||
7aa0319d4d | |||
4de2b0b3f1 | |||
1141c3bbb8 | |||
cdd9fd345a | |||
a1fccaabc3 | |||
e5738ec79d | |||
d7d9cdf98c | |||
b7fb8d9728 | |||
a19e4e8ff3 | |||
c219852e85 | |||
a7674039df | |||
3f0c0ee51b | |||
0c0222800b | |||
5d24b4060a | |||
42dd870408 | |||
da0c2e17d7 | |||
2e3798dd72 | |||
818e40dcb9 | |||
95daa9d0d1 | |||
5b59813b8a | |||
0ac06e7a3d | |||
a8bfe12cc4 | |||
56f095e931 | |||
fb132d7dc9 | |||
1c653b818a | |||
4419ccb2f5 | |||
80bb55a713 | |||
9a09ea2737 | |||
03cd729e01 | |||
0b7cfcacdf | |||
ebd8a435ef | |||
792b253694 | |||
fde145f0b3 | |||
3c7bfba31a | |||
5110ac1cec | |||
98f88f9976 |
37 changed files with 1151 additions and 272 deletions
31
.github/workflows/bld.yml
vendored
31
.github/workflows/bld.yml
vendored
|
@ -4,29 +4,36 @@ on: [ push, pull_request, workflow_dispatch ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-bld-project:
|
build-bld-project:
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
java-version: [ 17, 20 ]
|
java-version: [ 17, 21, 24 ]
|
||||||
|
kotlin-version: [ 1.9.25, 2.0.21, 2.1.20 ]
|
||||||
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source repository
|
- name: Checkout source repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Set up JDK ${{ matrix.java-version }}
|
- name: Set up JDK ${{ matrix.java-version }}
|
||||||
uses: actions/setup-java@v3
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: 'zulu'
|
distribution: "zulu"
|
||||||
java-version: ${{ matrix.java-version }}
|
java-version: ${{ matrix.java-version }}
|
||||||
|
|
||||||
- name: Grant execute permission for bld
|
- name: Download dependencies [examples]
|
||||||
run: chmod +x bld
|
working-directory: examples
|
||||||
|
|
||||||
- name: Download the dependencies
|
|
||||||
run: ./bld download
|
run: ./bld download
|
||||||
|
|
||||||
- name: Run tests with bld
|
- name: Compile and Run Checkstyle [examples]
|
||||||
run: ./bld compile test
|
working-directory: examples
|
||||||
|
run: ./bld compile checkstyle-custom
|
||||||
|
|
||||||
|
- name: Download dependencies
|
||||||
|
run: ./bld download
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: ./bld compile test
|
57
.github/workflows/pages.yml
vendored
57
.github/workflows/pages.yml
vendored
|
@ -0,0 +1,57 @@
|
||||||
|
name: javadocs-pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Runs on pushes targeting the default branch
|
||||||
|
push:
|
||||||
|
branches: ["master"]
|
||||||
|
|
||||||
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Allow one concurrent deployment
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Single deploy job since we're just deploying
|
||||||
|
deploy:
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout source repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: "zulu"
|
||||||
|
java-version: 17
|
||||||
|
|
||||||
|
- name: Build Javadocs
|
||||||
|
run: ./bld download clean javadoc
|
||||||
|
|
||||||
|
- name: Setup Pages
|
||||||
|
uses: actions/configure-pages@v3
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
# Upload generated Javadocs repository
|
||||||
|
path: "build/javadoc/"
|
||||||
|
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
6
.idea/bld.xml
generated
Normal file
6
.idea/bld.xml
generated
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="BldConfiguration">
|
||||||
|
<events />
|
||||||
|
</component>
|
||||||
|
</project>
|
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<component name="ProjectCodeStyleConfiguration">
|
||||||
|
<state>
|
||||||
|
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Erik's Code Style" />
|
||||||
|
</state>
|
||||||
|
</component>
|
2
.idea/copyright/Apache_License.xml
generated
2
.idea/copyright/Apache_License.xml
generated
|
@ -1,6 +1,6 @@
|
||||||
<component name="CopyrightManager">
|
<component name="CopyrightManager">
|
||||||
<copyright>
|
<copyright>
|
||||||
<option name="notice" value="Copyright &#36;today.year the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://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." />
|
<option name="notice" value="Copyright 2023-&#36;today.year the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://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." />
|
||||||
<option name="myName" value="Apache License" />
|
<option name="myName" value="Apache License" />
|
||||||
</copyright>
|
</copyright>
|
||||||
</component>
|
</component>
|
13
.idea/icon.svg
generated
Normal file
13
.idea/icon.svg
generated
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="100%" height="100%" viewBox="0 0 179 108" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||||
|
<g transform="matrix(1,0,0,1,-210.511,-96.3382)">
|
||||||
|
<g transform="matrix(1,0,0,1,-23.3386,-649.816)">
|
||||||
|
<g transform="matrix(0.221288,0,0,0.24,73.9536,390.254)">
|
||||||
|
<path d="M722.568,1482.92L722.568,1921.1L808.968,1921.1L808.968,1888.7C822.168,1907.9 846.168,1930.1 893.568,1930.1C933.168,1930.1 961.968,1917.5 985.368,1893.5C1012.97,1865.9 1027.37,1827.5 1027.37,1786.1C1027.37,1741.7 1011.17,1705.1 985.368,1680.5C961.968,1658.3 928.968,1644.5 892.368,1644.5C862.968,1644.5 830.568,1654.1 808.968,1683.5L808.968,1482.92L722.568,1482.92ZM871.368,1718.9C888.768,1718.9 903.768,1723.7 917.568,1736.9C930.168,1748.9 938.568,1766.3 938.568,1787.9C938.568,1807.7 930.168,1825.1 917.568,1837.1C904.368,1849.7 887.568,1855.7 872.568,1855.7C856.368,1855.7 837.168,1849.1 823.368,1835.9C813.168,1826.3 803.568,1810.1 803.568,1787.9C803.568,1765.1 812.568,1749.5 822.768,1738.7C836.568,1724.3 852.768,1718.9 871.368,1718.9Z" style="fill:rgb(35,146,255);fill-rule:nonzero;"/>
|
||||||
|
<rect x="1083.77" y="1482.92" width="86.4" height="438.182" style="fill:rgb(250,144,82);fill-rule:nonzero;"/>
|
||||||
|
<path d="M1531.37,1482.92L1444.97,1482.92L1444.97,1683.5C1423.37,1654.1 1390.97,1644.5 1361.57,1644.5C1324.97,1644.5 1291.97,1658.3 1268.57,1680.5C1242.77,1705.1 1226.57,1741.7 1226.57,1786.1C1226.57,1827.5 1240.97,1865.9 1268.57,1893.5C1291.97,1917.5 1320.77,1930.1 1360.37,1930.1C1407.77,1930.1 1431.77,1907.9 1444.97,1888.7L1444.97,1921.1L1531.37,1921.1L1531.37,1482.92ZM1382.57,1718.9C1401.17,1718.9 1417.37,1724.3 1431.17,1738.7C1441.37,1749.5 1450.37,1765.1 1450.37,1787.9C1450.37,1810.1 1440.77,1826.3 1430.57,1835.9C1416.77,1849.1 1397.57,1855.7 1381.37,1855.7C1366.37,1855.7 1349.57,1849.7 1336.37,1837.1C1323.77,1825.1 1315.37,1807.7 1315.37,1787.9C1315.37,1766.3 1323.77,1748.9 1336.37,1736.9C1350.17,1723.7 1365.17,1718.9 1382.57,1718.9Z" style="fill:rgb(35,146,255);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
204
.idea/intellij-javadocs-4.0.1.xml
generated
Normal file
204
.idea/intellij-javadocs-4.0.1.xml
generated
Normal file
|
@ -0,0 +1,204 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaDocConfiguration">
|
||||||
|
<GENERAL>
|
||||||
|
<MODE>UPDATE</MODE>
|
||||||
|
<OVERRIDDEN_METHODS>false</OVERRIDDEN_METHODS>
|
||||||
|
<SPLITTED_CLASS_NAME>true</SPLITTED_CLASS_NAME>
|
||||||
|
<LEVELS>
|
||||||
|
<LEVEL>FIELD</LEVEL>
|
||||||
|
<LEVEL>METHOD</LEVEL>
|
||||||
|
<LEVEL>TYPE</LEVEL>
|
||||||
|
</LEVELS>
|
||||||
|
<VISIBILITIES>
|
||||||
|
<VISIBILITY>PUBLIC</VISIBILITY>
|
||||||
|
<VISIBILITY>PROTECTED</VISIBILITY>
|
||||||
|
<VISIBILITY>DEFAULT</VISIBILITY>
|
||||||
|
</VISIBILITIES>
|
||||||
|
</GENERAL>
|
||||||
|
<TEMPLATES>
|
||||||
|
<CLASSES>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>^.*(public|protected|private)*.+interface\s+\w+.*</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The interface ${name}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>^.*(public|protected|private)*.+enum\s+\w+.*</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The enum ${name}.\n
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>^.*(public|protected|private)*.+class\s+\w+.*</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The type ${name}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
<CLASS>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The type ${name}.\n
|
||||||
|
*/</VALUE>
|
||||||
|
</CLASS>
|
||||||
|
</CLASSES>
|
||||||
|
<CONSTRUCTORS>
|
||||||
|
<CONSTRUCTOR>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* Instantiates a new ${name}.\n
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</CONSTRUCTOR>
|
||||||
|
</CONSTRUCTORS>
|
||||||
|
<METHODS>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>^.*(public|protected|private)*\s*.*(\w(\s*<.+>)*)+\s+get\w+\s*\(.*\).+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* Gets ${partName}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if isNotVoid>
|
||||||
|
*\n
|
||||||
|
* @return the ${partName}\n
|
||||||
|
</#if>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>^.*(public|protected|private)*\s*.*(void|\w(\s*<.+>)*)+\s+set\w+\s*\(.*\).+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* Sets ${partName}.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if isNotVoid>
|
||||||
|
*\n
|
||||||
|
* @return the ${partName}\n
|
||||||
|
</#if>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>^.*((public\s+static)|(static\s+public))\s+void\s+main\s*\(\s*String\s*(\[\s*\]|\.\.\.)\s+\w+\s*\).+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The entry point of application.\n
|
||||||
|
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
* @param ${element.parameterList.parameters[0].name} the input arguments\n
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
<METHOD>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* ${name}<#if isNotVoid> ${return}</#if>.\n
|
||||||
|
<#if element.typeParameters?has_content> * \n
|
||||||
|
</#if>
|
||||||
|
<#list element.typeParameters as typeParameter>
|
||||||
|
* @param <${typeParameter.name}> the type parameter\n
|
||||||
|
</#list>
|
||||||
|
<#if element.parameterList.parameters?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.parameterList.parameters as parameter>
|
||||||
|
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
|
||||||
|
</#list>
|
||||||
|
<#if isNotVoid>
|
||||||
|
*\n
|
||||||
|
* @return the ${return}\n
|
||||||
|
</#if>
|
||||||
|
<#if element.throwsList.referenceElements?has_content>
|
||||||
|
*\n
|
||||||
|
</#if>
|
||||||
|
<#list element.throwsList.referenceElements as exception>
|
||||||
|
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
|
||||||
|
</#list>
|
||||||
|
*/</VALUE>
|
||||||
|
</METHOD>
|
||||||
|
</METHODS>
|
||||||
|
<FIELDS>
|
||||||
|
<FIELD>
|
||||||
|
<KEY>^.*(public|protected|private)*.+static.*(\w\s\w)+.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
* The constant ${element.getName()}.\n
|
||||||
|
*/</VALUE>
|
||||||
|
</FIELD>
|
||||||
|
<FIELD>
|
||||||
|
<KEY>^.*(public|protected|private)*.*(\w\s\w)+.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
<#if element.parent.isInterface()>
|
||||||
|
* The constant ${element.getName()}.\n
|
||||||
|
<#else>
|
||||||
|
* The ${name}.\n
|
||||||
|
</#if> */</VALUE>
|
||||||
|
</FIELD>
|
||||||
|
<FIELD>
|
||||||
|
<KEY>.+</KEY>
|
||||||
|
<VALUE>/**\n
|
||||||
|
<#if element.parent.isEnum()>
|
||||||
|
*${name} ${typeName}.\n
|
||||||
|
<#else>
|
||||||
|
* The ${name}.\n
|
||||||
|
</#if>*/</VALUE>
|
||||||
|
</FIELD>
|
||||||
|
</FIELDS>
|
||||||
|
</TEMPLATES>
|
||||||
|
</component>
|
||||||
|
</project>
|
7
.idea/libraries/bld.xml
generated
7
.idea/libraries/bld.xml
generated
|
@ -2,11 +2,12 @@
|
||||||
<library name="bld">
|
<library name="bld">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.7.5.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.7.5-sources.jar!/" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<excluded>
|
<excluded>
|
||||||
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
||||||
|
@ -14,4 +15,4 @@
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
|
|
4
.idea/libraries/compile.xml
generated
4
.idea/libraries/compile.xml
generated
|
@ -7,7 +7,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/compile" />
|
<root url="file://$PROJECT_DIR$/lib/compile" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
.idea/libraries/runtime.xml
generated
4
.idea/libraries/runtime.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
.idea/libraries/test.xml
generated
4
.idea/libraries/test.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/test" />
|
<root url="file://$PROJECT_DIR$/lib/test" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
13
.idea/misc.xml
generated
13
.idea/misc.xml
generated
|
@ -1,3 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="EntryPointsManager">
|
<component name="EntryPointsManager">
|
||||||
<pattern value="rife.bld.extension.CheckstyleOperationBuild" />
|
<pattern value="rife.bld.extension.CheckstyleOperationBuild" />
|
||||||
|
@ -8,6 +9,18 @@
|
||||||
<option name="customRuleSets">
|
<option name="customRuleSets">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/config/pmd.xml" />
|
<option value="$PROJECT_DIR$/config/pmd.xml" />
|
||||||
|
<option value="K:\java\semver\config\pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../bld-generated-version/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../bld-pitest/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../bld-jacoco-report/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../bld-exec/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../bld-testng/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../../bld-generated-version/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../../bld-pitest/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../../bld-jacoco-report/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../../bld-checkstyle/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../../bld-exec/config/pmd.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/../../bld-testng/config/pmd.xml" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
<option name="skipTestSources" value="false" />
|
<option name="skipTestSources" value="false" />
|
||||||
|
|
9
.vscode/launch.json
vendored
9
.vscode/launch.json
vendored
|
@ -5,7 +5,14 @@
|
||||||
"type": "java",
|
"type": "java",
|
||||||
"name": "Run Tests",
|
"name": "Run Tests",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"mainClass": "rife.bld.extension.CheckstyleOperationTest"
|
"mainClass": "org.junit.platform.console.ConsoleLauncher",
|
||||||
|
"args": [
|
||||||
|
"--details=verbose",
|
||||||
|
"--scan-classpath",
|
||||||
|
"--disable-banner",
|
||||||
|
"--disable-ansi-colors",
|
||||||
|
"--exclude-engine=junit-platform-suite",
|
||||||
|
"--exclude-engine=junit-vintage"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
13
.vscode/settings.json
vendored
13
.vscode/settings.json
vendored
|
@ -3,13 +3,14 @@
|
||||||
"src/main/java",
|
"src/main/java",
|
||||||
"src/main/resources",
|
"src/main/resources",
|
||||||
"src/test/java",
|
"src/test/java",
|
||||||
"src/bld/java"
|
"src/test/resources",
|
||||||
|
"src/bld/java",
|
||||||
|
"src/bld/resources"
|
||||||
],
|
],
|
||||||
"java.configuration.updateBuildConfiguration": "automatic",
|
"java.configuration.updateBuildConfiguration": "automatic",
|
||||||
"java.project.referencedLibraries": [
|
"java.project.referencedLibraries": [
|
||||||
"${HOME}/.bld/dist/bld-1.7.5.jar",
|
"${HOME}/.bld/dist/bld-2.2.1.jar",
|
||||||
"lib/compile/*.jar",
|
"lib/**/*.jar"
|
||||||
"lib/runtime/*.jar",
|
],
|
||||||
"lib/test/*.jar"
|
"java.compile.nullAnalysis.mode": "automatic"
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
28
README.md
28
README.md
|
@ -1,13 +1,21 @@
|
||||||
# [Checkstyle](https://checkstyle.sourceforge.io/) Extension for [b<span style="color:orange">l</span>d](https://rife2.com/bldb)
|
# [Checkstyle](https://checkstyle.sourceforge.io/) Extension for [b<span style="color:orange">l</span>d](https://rife2.com/bld)
|
||||||
|
|
||||||
[](https://opensource.org/licenses/Apache-2.0)
|
[](https://opensource.org/licenses/Apache-2.0)
|
||||||
[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
|
[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
|
||||||
[](https://rife2.com/bld)
|
[](https://rife2.com/bld)
|
||||||
[](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-checkstyle)
|
[](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-checkstyle)
|
||||||
[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-checkstyle)
|
[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-checkstyle)
|
||||||
[](https://github.com/rife2/bld-checkstyle/actions/workflows/bld.yml)
|
[](https://github.com/rife2/bld-checkstyle/actions/workflows/bld.yml)
|
||||||
|
|
||||||
To install, please refer to the [extensions documentation](https://github.com/rife2/bld/wiki/Extensions).
|
To install the latest version, add the following to the `lib/bld/bld-wrapper.properties` file:
|
||||||
|
|
||||||
|
```properties
|
||||||
|
bld.extension-checkstyle=com.uwyn.rife2:bld-checkstyle
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information, please refer to the [extensions](https://github.com/rife2/bld/wiki/Extensions) documentation.
|
||||||
|
|
||||||
|
## Check Source Code with Checkstyle
|
||||||
|
|
||||||
To check your code with Chesktyle, include the following in your build file:
|
To check your code with Chesktyle, include the following in your build file:
|
||||||
|
|
||||||
|
@ -21,19 +29,21 @@ public void checkstyle() throws Exception {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```console
|
||||||
./bld checkstyle
|
./bld checkstyle
|
||||||
```
|
```
|
||||||
|
|
||||||
- [View Examples](https://github.com/rife2/bld-checkstyle/blob/master/examples/src/bld/java/com/example/)
|
- [View Examples](https://github.com/rife2/bld-checkstyle/blob/master/examples/src/bld/java/com/example/)
|
||||||
|
|
||||||
Please check the [CheckstyleOperation documentation](https://rife2.github.io/bld-checkstyle/rife/bld/extension/CheckstyleOperation.html#method-summary) for all available configuration options.
|
Please check the [CheckstyleOperation documentation](https://rife2.github.io/bld-checkstyle/rife/bld/extension/CheckstyleOperation.html#method-summary)
|
||||||
|
for all available configuration options.
|
||||||
|
|
||||||
### Checkstyle Dependency
|
## Checkstyle Dependency
|
||||||
|
|
||||||
Don't forget to add a Checkstyle `test` dependency to your build file, as it is not provided by the extension. For example:
|
Don't forget to add a Checkstyle `test` dependency to your build file, as it is
|
||||||
|
not provided by the extension. For example:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
repositories = List.of(MAVEN_CENTRAL);
|
repositories = List.of(MAVEN_CENTRAL);
|
||||||
scope(test).include(dependency("com.puppycrawl.tools", "checkstyle", version(10, 12, 2)));
|
scope(test).include(dependency("com.puppycrawl.tools", "checkstyle", version(10, 23, 0)));
|
||||||
|
```
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<!-- BEST PRACTICES -->
|
<!-- BEST PRACTICES -->
|
||||||
<rule ref="category/java/bestpractices.xml">
|
<rule ref="category/java/bestpractices.xml">
|
||||||
<exclude name="AvoidPrintStackTrace"/>
|
<exclude name="AvoidPrintStackTrace"/>
|
||||||
<exclude name="JUnit4TestShouldUseTestAnnotation"/>
|
|
||||||
<exclude name="JUnitTestContainsTooManyAsserts"/>
|
|
||||||
<exclude name="GuardLogStatement"/>
|
<exclude name="GuardLogStatement"/>
|
||||||
|
<exclude name="UnitTestContainsTooManyAsserts"/>
|
||||||
|
<exclude name="UnitTestShouldUseTestAnnotation"/>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule ref="category/java/bestpractices.xml/MissingOverride">
|
<rule ref="category/java/bestpractices.xml/MissingOverride">
|
||||||
|
@ -19,12 +19,13 @@
|
||||||
</properties>
|
</properties>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
|
|
||||||
<!-- CODE STYLE -->
|
<!-- CODE STYLE -->
|
||||||
<rule ref="category/java/codestyle.xml">
|
<rule ref="category/java/codestyle.xml">
|
||||||
<exclude name="AtLeastOneConstructor"/>
|
<exclude name="AtLeastOneConstructor"/>
|
||||||
<exclude name="ClassNamingConventions"/>
|
<exclude name="ClassNamingConventions"/>
|
||||||
<exclude name="ConfusingTernary"/>
|
|
||||||
<exclude name="CommentDefaultAccessModifier"/>
|
<exclude name="CommentDefaultAccessModifier"/>
|
||||||
|
<exclude name="ConfusingTernary"/>
|
||||||
<exclude name="FieldNamingConventions"/>
|
<exclude name="FieldNamingConventions"/>
|
||||||
<exclude name="LocalVariableCouldBeFinal"/>
|
<exclude name="LocalVariableCouldBeFinal"/>
|
||||||
<exclude name="LongVariable"/>
|
<exclude name="LongVariable"/>
|
||||||
|
@ -34,8 +35,9 @@
|
||||||
<exclude name="ShortClassName"/>
|
<exclude name="ShortClassName"/>
|
||||||
<exclude name="ShortMethodName"/>
|
<exclude name="ShortMethodName"/>
|
||||||
<exclude name="ShortVariable"/>
|
<exclude name="ShortVariable"/>
|
||||||
<exclude name="UselessParentheses"/>
|
<exclude name="UseExplicitTypes"/>
|
||||||
<exclude name="UseUnderscoresInNumericLiterals"/>
|
<exclude name="UseUnderscoresInNumericLiterals"/>
|
||||||
|
<exclude name="UselessParentheses"/>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule ref="category/java/codestyle.xml/UnnecessaryImport">
|
<rule ref="category/java/codestyle.xml/UnnecessaryImport">
|
||||||
|
@ -51,8 +53,6 @@
|
||||||
<exclude name="AvoidUncheckedExceptionsInSignatures"/>
|
<exclude name="AvoidUncheckedExceptionsInSignatures"/>
|
||||||
<exclude name="CognitiveComplexity"/>
|
<exclude name="CognitiveComplexity"/>
|
||||||
<exclude name="CyclomaticComplexity"/>
|
<exclude name="CyclomaticComplexity"/>
|
||||||
<exclude name="ExcessiveClassLength"/>
|
|
||||||
<exclude name="ExcessiveMethodLength"/>
|
|
||||||
<exclude name="ExcessiveParameterList"/>
|
<exclude name="ExcessiveParameterList"/>
|
||||||
<exclude name="ExcessivePublicCount"/>
|
<exclude name="ExcessivePublicCount"/>
|
||||||
<exclude name="GodClass"/>
|
<exclude name="GodClass"/>
|
||||||
|
@ -106,4 +106,4 @@
|
||||||
<!-- SECURITY -->
|
<!-- SECURITY -->
|
||||||
<rule ref="category/java/security.xml">
|
<rule ref="category/java/security.xml">
|
||||||
</rule>
|
</rule>
|
||||||
</ruleset>
|
</ruleset>
|
||||||
|
|
1
examples/.idea/.name
generated
Normal file
1
examples/.idea/.name
generated
Normal file
|
@ -0,0 +1 @@
|
||||||
|
bld-checkstyle-examples
|
7
examples/.idea/libraries/bld.xml
generated
7
examples/.idea/libraries/bld.xml
generated
|
@ -2,11 +2,12 @@
|
||||||
<library name="bld">
|
<library name="bld">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.7.5.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.7.5-sources.jar!/" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<excluded>
|
<excluded>
|
||||||
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
||||||
|
@ -14,4 +15,4 @@
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/bld" recursive="false" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
|
|
4
examples/.idea/libraries/compile.xml
generated
4
examples/.idea/libraries/compile.xml
generated
|
@ -7,7 +7,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/compile" />
|
<root url="file://$PROJECT_DIR$/lib/compile" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
examples/.idea/libraries/runtime.xml
generated
4
examples/.idea/libraries/runtime.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
examples/.idea/libraries/test.xml
generated
4
examples/.idea/libraries/test.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/test" />
|
<root url="file://$PROJECT_DIR$/lib/test" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
7
examples/.idea/misc.xml
generated
7
examples/.idea/misc.xml
generated
|
@ -1,5 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="EntryPointsManager">
|
||||||
|
<pattern value="com.example.ExamplesBuild" method="checkstyle" />
|
||||||
|
<pattern value="com.example.ExamplesBuild" />
|
||||||
|
</component>
|
||||||
<component name="PDMPlugin">
|
<component name="PDMPlugin">
|
||||||
<option name="customRuleSets">
|
<option name="customRuleSets">
|
||||||
<list>
|
<list>
|
||||||
|
@ -11,4 +14,4 @@
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build" />
|
<output url="file://$PROJECT_DIR$/build" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
10
examples/.vscode/settings.json
vendored
10
examples/.vscode/settings.json
vendored
|
@ -3,13 +3,13 @@
|
||||||
"src/main/java",
|
"src/main/java",
|
||||||
"src/main/resources",
|
"src/main/resources",
|
||||||
"src/test/java",
|
"src/test/java",
|
||||||
"src/bld/java"
|
"src/test/resources",
|
||||||
|
"src/bld/java",
|
||||||
|
"src/bld/resources"
|
||||||
],
|
],
|
||||||
"java.configuration.updateBuildConfiguration": "automatic",
|
"java.configuration.updateBuildConfiguration": "automatic",
|
||||||
"java.project.referencedLibraries": [
|
"java.project.referencedLibraries": [
|
||||||
"${HOME}/.bld/dist/bld-1.7.5.jar",
|
"${HOME}/.bld/dist/bld-2.2.1.jar",
|
||||||
"lib/compile/*.jar",
|
"lib/**/*.jar"
|
||||||
"lib/runtime/*.jar",
|
|
||||||
"lib/test/*.jar"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
6
examples/README.md
Normal file
6
examples/README.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Compile and Run Checkstyle
|
||||||
|
|
||||||
|
```console
|
||||||
|
./bld compile checkstyle
|
||||||
|
```
|
||||||
|
|
Binary file not shown.
|
@ -1,7 +1,7 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.extensions=com.uwyn.rife2:bld-checkstyle:0.9.0-SNAPSHOT
|
|
||||||
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_RELEASES
|
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
|
bld.extension-checkstyle=com.uwyn.rife2:bld-checkstyle:1.0.14
|
||||||
|
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||||
bld.sourceDirectories=
|
bld.sourceDirectories=
|
||||||
bld.version=1.7.5
|
bld.version=2.2.1
|
||||||
|
|
|
@ -5,6 +5,9 @@ import rife.bld.BuildCommand;
|
||||||
import rife.bld.extension.CheckstyleOperation;
|
import rife.bld.extension.CheckstyleOperation;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.logging.ConsoleHandler;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
|
import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
|
||||||
import static rife.bld.dependencies.Scope.*;
|
import static rife.bld.dependencies.Scope.*;
|
||||||
|
@ -16,19 +19,33 @@ public class ExamplesBuild extends BaseProject {
|
||||||
mainClass = "com.example.ExamplesMain";
|
mainClass = "com.example.ExamplesMain";
|
||||||
version = version(0, 1, 0);
|
version = version(0, 1, 0);
|
||||||
|
|
||||||
|
javaRelease = 17;
|
||||||
|
|
||||||
|
autoDownloadPurge = true;
|
||||||
downloadSources = true;
|
downloadSources = true;
|
||||||
|
|
||||||
repositories = List.of(MAVEN_CENTRAL);
|
repositories = List.of(MAVEN_CENTRAL);
|
||||||
|
|
||||||
scope(test).include(dependency("com.puppycrawl.tools", "checkstyle", version(10, 12, 4)));
|
scope(test).include(dependency("com.puppycrawl.tools", "checkstyle", version(10, 23, 0)));
|
||||||
|
|
||||||
testOperation().mainClass("com.example.ExamplesTest");
|
testOperation().mainClass("com.example.ExamplesTest");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
// Enable detailed logging for the extensions
|
||||||
|
var level = Level.ALL;
|
||||||
|
var logger = Logger.getLogger("rife.bld.extension");
|
||||||
|
var consoleHandler = new ConsoleHandler();
|
||||||
|
|
||||||
|
consoleHandler.setLevel(level);
|
||||||
|
logger.addHandler(consoleHandler);
|
||||||
|
logger.setLevel(level);
|
||||||
|
logger.setUseParentHandlers(false);
|
||||||
|
|
||||||
new ExamplesBuild().start(args);
|
new ExamplesBuild().start(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BuildCommand(summary = "Check code style")
|
@BuildCommand(summary = "Check code style using Sun coding conventions")
|
||||||
public void checkstyle() throws Exception {
|
public void checkstyle() throws Exception {
|
||||||
new CheckstyleOperation()
|
new CheckstyleOperation()
|
||||||
.fromProject(this)
|
.fromProject(this)
|
||||||
|
@ -36,4 +53,11 @@ public class ExamplesBuild extends BaseProject {
|
||||||
.execute();
|
.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
@BuildCommand(value = "checkstyle-custom", summary = "Check code style using custom coding conventions")
|
||||||
|
public void checkstyleCustom() throws Exception {
|
||||||
|
new CheckstyleOperation()
|
||||||
|
.fromProject(this)
|
||||||
|
.configurationFile("src/test/resources/checkstyle.xml")
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
10
examples/src/test/resources/checkstyle.xml
Normal file
10
examples/src/test/resources/checkstyle.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<!DOCTYPE module PUBLIC
|
||||||
|
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
||||||
|
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
||||||
|
<module name="Checker">
|
||||||
|
<module name="TreeWalker">
|
||||||
|
<module name="AvoidStarImport">
|
||||||
|
<property name="severity" value="warning" />
|
||||||
|
</module>
|
||||||
|
</module>
|
||||||
|
</module>
|
Binary file not shown.
|
@ -1,8 +1,8 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.2
|
|
||||||
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.0
|
|
||||||
bld.repositories=MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
|
bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.5
|
||||||
|
bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.2.2
|
||||||
|
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||||
bld.sourceDirectories=
|
bld.sourceDirectories=
|
||||||
bld.version=1.7.5
|
bld.version=2.2.1
|
||||||
|
|
16
scripts/checkcliargs.sh
Executable file
16
scripts/checkcliargs.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
main="com.puppycrawl.tools.checkstyle.Main"
|
||||||
|
new=/tmp/checkcliargs-new
|
||||||
|
old=/tmp/checkcliargs-old
|
||||||
|
|
||||||
|
java -cp "lib/test/*" $main --help >$new
|
||||||
|
java -cp "examples/lib/test/*" $main --help >$old
|
||||||
|
|
||||||
|
if [ "$1" == "-v" ]; then
|
||||||
|
code --wait --diff $old $new
|
||||||
|
else
|
||||||
|
diff $old $new
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $new $old
|
6
scripts/cliargs.sh
Executable file
6
scripts/cliargs.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
java -cp "lib/test/*" com.puppycrawl.tools.checkstyle.Main --help |\
|
||||||
|
grep "^ -.*" |\
|
||||||
|
sed -e "s/ -/-/" -e "s/[,=].*//" -e '/-V/d' -e '/-h/d' |\
|
||||||
|
sort > "src/test/resources/checkstyle-args.txt"
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2023 the original author or authors.
|
* Copyright 2023-2025 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -22,53 +22,65 @@ import rife.bld.publish.PublishDeveloper;
|
||||||
import rife.bld.publish.PublishLicense;
|
import rife.bld.publish.PublishLicense;
|
||||||
import rife.bld.publish.PublishScm;
|
import rife.bld.publish.PublishScm;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
|
import static rife.bld.dependencies.Repository.*;
|
||||||
import static rife.bld.dependencies.Repository.RIFE2_RELEASES;
|
import static rife.bld.dependencies.Scope.compile;
|
||||||
import static rife.bld.dependencies.Scope.*;
|
import static rife.bld.dependencies.Scope.test;
|
||||||
import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
|
import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
|
||||||
|
|
||||||
public class CheckstyleOperationBuild extends Project {
|
public class CheckstyleOperationBuild extends Project {
|
||||||
public CheckstyleOperationBuild() {
|
public CheckstyleOperationBuild() {
|
||||||
pkg = "rife.bld.extension";
|
pkg = "rife.bld.extension";
|
||||||
name = "CheckstyleOperation";
|
name = "CheckstyleOperation";
|
||||||
version = version(0, 9, 0, "SNAPSHOT");
|
version = version(1, 0, 15, "SNAPSHOT");
|
||||||
|
|
||||||
javaRelease = 17;
|
javaRelease = 17;
|
||||||
|
|
||||||
downloadSources = true;
|
downloadSources = true;
|
||||||
autoDownloadPurge = true;
|
autoDownloadPurge = true;
|
||||||
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
|
||||||
|
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
|
||||||
|
|
||||||
scope(compile)
|
scope(compile)
|
||||||
.include(dependency("com.uwyn.rife2", "bld", version(1, 7, 5)));
|
.include(dependency("com.uwyn.rife2", "bld", version(2, 2, 1)));
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("com.puppycrawl.tools", "checkstyle", version(10, 12, 4)))
|
.include(dependency("com.puppycrawl.tools", "checkstyle", version(10, 23, 0)))
|
||||||
.include(dependency("org.jsoup", "jsoup", version(1, 16, 2)))
|
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
|
||||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 0)))
|
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
|
||||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 0)))
|
.include(dependency("org.assertj", "assertj-core", version(3, 27, 3)));
|
||||||
.include(dependency("org.assertj", "assertj-core", version(3, 24, 2)));
|
|
||||||
javadocOperation()
|
javadocOperation()
|
||||||
.javadocOptions()
|
.javadocOptions()
|
||||||
|
.author()
|
||||||
.docLint(NO_MISSING)
|
.docLint(NO_MISSING)
|
||||||
.link("https://rife2.github.io/bld/")
|
.link("https://rife2.github.io/bld/")
|
||||||
.link("https://rife2.github.io/rife2/");
|
.link("https://rife2.github.io/rife2/");
|
||||||
|
|
||||||
publishOperation()
|
publishOperation()
|
||||||
.repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
|
.repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
|
||||||
|
.repository(repository("github"))
|
||||||
.info()
|
.info()
|
||||||
.groupId("com.uwyn.rife2")
|
.groupId("com.uwyn.rife2")
|
||||||
.artifactId("bld-checkstyle")
|
.artifactId("bld-checkstyle")
|
||||||
.description("bld Checkstyle Extensions")
|
.description("bld Checkstyle Extension")
|
||||||
.url("https://github.com/rife2/bld-checkstyle")
|
.url("https://github.com/rife2/bld-checkstyle")
|
||||||
.developer(new PublishDeveloper().id("ethauvin").name("Erik C. Thauvin").email("erik@thauvin.net")
|
.developer(new PublishDeveloper()
|
||||||
.url("https://erik.thauvin.net/"))
|
.id("ethauvin")
|
||||||
.license(new PublishLicense().name("The Apache License, Version 2.0")
|
.name("Erik C. Thauvin")
|
||||||
.url("http://www.apache.org/licenses/LICENSE-2.0.txt"))
|
.email("erik@thauvin.net")
|
||||||
.scm(new PublishScm().connection("scm:git:https://github.com/rife2/bld-checkstyle.git")
|
.url("https://erik.thauvin.net/")
|
||||||
|
)
|
||||||
|
.license(new PublishLicense()
|
||||||
|
.name("The Apache License, Version 2.0")
|
||||||
|
.url("https://www.apache.org/licenses/LICENSE-2.0.txt")
|
||||||
|
)
|
||||||
|
.scm(new PublishScm()
|
||||||
|
.connection("scm:git:https://github.com/rife2/bld-checkstyle.git")
|
||||||
.developerConnection("scm:git:git@github.com:rife2/bld-checkstyle.git")
|
.developerConnection("scm:git:git@github.com:rife2/bld-checkstyle.git")
|
||||||
.url("https://github.com/rife2/bld-checkstyle"))
|
.url("https://github.com/rife2/bld-checkstyle")
|
||||||
|
)
|
||||||
.signKey(property("sign.key"))
|
.signKey(property("sign.key"))
|
||||||
.signPassphrase(property("sign.passphrase"));
|
.signPassphrase(property("sign.passphrase"));
|
||||||
}
|
}
|
||||||
|
@ -77,19 +89,24 @@ public class CheckstyleOperationBuild extends Project {
|
||||||
new CheckstyleOperationBuild().start(args);
|
new CheckstyleOperationBuild().start(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BuildCommand(summary = "Generates JaCoCo Reports")
|
|
||||||
public void jacoco() throws IOException {
|
|
||||||
new JacocoReportOperation()
|
|
||||||
.fromProject(this)
|
|
||||||
.execute();
|
|
||||||
}
|
|
||||||
|
|
||||||
@BuildCommand(summary = "Runs PMD analysis")
|
@BuildCommand(summary = "Runs PMD analysis")
|
||||||
public void pmd() {
|
public void pmd() throws Exception {
|
||||||
new PmdOperation()
|
new PmdOperation()
|
||||||
.fromProject(this)
|
.fromProject(this)
|
||||||
.failOnViolation(true)
|
.failOnViolation(true)
|
||||||
.ruleSets("config/pmd.xml")
|
.ruleSets("config/pmd.xml")
|
||||||
.execute();
|
.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void test() throws Exception {
|
||||||
|
var os = System.getProperty("os.name");
|
||||||
|
if (os != null && os.toLowerCase(Locale.US).contains("linux")) {
|
||||||
|
new ExecOperation()
|
||||||
|
.fromProject(this)
|
||||||
|
.command("scripts/cliargs.sh")
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
|
super.test();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2023 the original author or authors.
|
* Copyright 2023-2025 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -17,11 +17,16 @@
|
||||||
package rife.bld.extension;
|
package rife.bld.extension;
|
||||||
|
|
||||||
import rife.bld.BaseProject;
|
import rife.bld.BaseProject;
|
||||||
|
import rife.bld.extension.checkstyle.OutputFormat;
|
||||||
import rife.bld.operations.AbstractProcessOperation;
|
import rife.bld.operations.AbstractProcessOperation;
|
||||||
|
import rife.bld.operations.exceptions.ExitStatusException;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,22 +37,23 @@ import java.util.logging.Logger;
|
||||||
*/
|
*/
|
||||||
public class CheckstyleOperation extends AbstractProcessOperation<CheckstyleOperation> {
|
public class CheckstyleOperation extends AbstractProcessOperation<CheckstyleOperation> {
|
||||||
private static final Logger LOGGER = Logger.getLogger(CheckstyleOperation.class.getName());
|
private static final Logger LOGGER = Logger.getLogger(CheckstyleOperation.class.getName());
|
||||||
/**
|
private final Collection<String> excludeRegex_ = new ArrayList<>();
|
||||||
* The command line options.
|
private final Collection<File> exclude_ = new ArrayList<>();
|
||||||
*/
|
private final Map<String, String> options_ = new ConcurrentHashMap<>();
|
||||||
protected final Map<String, String> options = new ConcurrentHashMap<>();
|
private final Set<File> sourceDir_ = new TreeSet<>();
|
||||||
|
|
||||||
/**
|
|
||||||
* The source files(s) or folder(s).
|
|
||||||
*/
|
|
||||||
protected final Set<String> sourceDirs = new TreeSet<>();
|
|
||||||
private BaseProject project_;
|
private BaseProject project_;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows Abstract Syntax Tree(AST) branches that match given XPath query.
|
* Shows Abstract Syntax Tree(AST) branches that match given XPath query.
|
||||||
|
*
|
||||||
|
* @param xPathQuery the xPath query
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation branchMatchingXpath(String xPathQuery) {
|
public CheckstyleOperation branchMatchingXpath(String xPathQuery) {
|
||||||
options.put("-b", xPathQuery);
|
if (isNotBlank(xPathQuery)) {
|
||||||
|
options_.put("-b", xPathQuery);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,88 +61,216 @@ public class CheckstyleOperation extends AbstractProcessOperation<CheckstyleOper
|
||||||
* Specifies the location of the file that defines the configuration modules. The location can either be a
|
* Specifies the location of the file that defines the configuration modules. The location can either be a
|
||||||
* filesystem location, or a name passed to the {@link ClassLoader#getResource(String) ClassLoader.getResource() }
|
* filesystem location, or a name passed to the {@link ClassLoader#getResource(String) ClassLoader.getResource() }
|
||||||
* method. A configuration file is required.
|
* method. A configuration file is required.
|
||||||
|
*
|
||||||
|
* @param file the file
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation configurationFile(String file) {
|
public CheckstyleOperation configurationFile(String file) {
|
||||||
options.put("-c", file);
|
if (isNotBlank(file)) {
|
||||||
|
options_.put("-c", file);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints all debug logging of CheckStyle utility.
|
* Specifies the location of the file that defines the configuration modules. The location can either be a
|
||||||
|
* filesystem location, or a name passed to the {@link ClassLoader#getResource(String) ClassLoader.getResource() }
|
||||||
|
* method. A configuration file is required.
|
||||||
|
*
|
||||||
|
* @param file the file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation configurationFile(File file) {
|
||||||
|
return configurationFile(file.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the location of the file that defines the configuration modules. The location can either be a
|
||||||
|
* filesystem location, or a name passed to the {@link ClassLoader#getResource(String) ClassLoader.getResource() }
|
||||||
|
* method. A configuration file is required.
|
||||||
|
*
|
||||||
|
* @param file the file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation configurationFile(Path file) {
|
||||||
|
return configurationFile(file.toFile().getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints all debug logging of Checkstyle utility.
|
||||||
|
*
|
||||||
|
* @param isDebug {@code true} or {@code false}
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation debug(boolean isDebug) {
|
public CheckstyleOperation debug(boolean isDebug) {
|
||||||
if (isDebug) {
|
if (isDebug) {
|
||||||
options.put("-d", "");
|
options_.put("-d", "");
|
||||||
} else {
|
} else {
|
||||||
options.remove("-d");
|
options_.remove("-d");
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Directory/file to exclude from CheckStyle. The path can be the full, absolute path, or relative to the current
|
* Directory/file to exclude from Checkstyle. The path can be the full, absolute path, or relative to the current
|
||||||
* path. Multiple excludes are allowed.
|
* path. Multiple excludes are allowed.
|
||||||
*
|
*
|
||||||
* @see #sourceDir(Collection)
|
* @param path one or more paths
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #excludeStrings(Collection)
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation exclude(String... path) {
|
public CheckstyleOperation exclude(String... path) {
|
||||||
for (var p : path) {
|
return excludeStrings(List.of(path));
|
||||||
options.put("-e", p);
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Directory/file to exclude from CheckStyle. The path can be the full, absolute path, or relative to the current
|
* Directory/file to exclude from Checkstyle. The path can be the full, absolute path, or relative to the current
|
||||||
* path. Multiple excludes are allowed.
|
* path. Multiple excludes are allowed.
|
||||||
*
|
*
|
||||||
* @see #exclude(String...)
|
* @param path one or more paths
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #exclude(Collection)
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation exclude(Collection<String> paths) {
|
public CheckstyleOperation exclude(File... path) {
|
||||||
for (var p : paths) {
|
return exclude(List.of(path));
|
||||||
options.put("-e", p);
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* Directory/file to exclude from Checkstyle. The path can be the full, absolute path, or relative to the current
|
||||||
|
* path. Multiple excludes are allowed.
|
||||||
|
*
|
||||||
|
* @param path one or more paths
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #excludePaths(Collection)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation exclude(Path... path) {
|
||||||
|
return excludePaths(List.of(path));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Directory/file to exclude from Checkstyle. The path can be the full, absolute path, or relative to the current
|
||||||
|
* path. Multiple excludes are allowed.
|
||||||
|
*
|
||||||
|
* @param paths the paths
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #exclude(File...)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation exclude(Collection<File> paths) {
|
||||||
|
exclude_.addAll(paths);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Directory/file pattern to exclude from CheckStyle. Multiple excludes are allowed.
|
* Directory/file to exclude from Checkstyle. The path can be the full, absolute path, or relative to the current
|
||||||
|
* path. Multiple excludes are allowed.
|
||||||
|
*
|
||||||
|
* @param paths the paths
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #exclude(Path...)
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation excludedPathPattern(String pattern) {
|
public CheckstyleOperation excludePaths(Collection<Path> paths) {
|
||||||
options.put("-x", pattern);
|
return exclude(paths.stream().map(Path::toFile).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Directory/file pattern to exclude from Checkstyle. Multiple exclude are allowed.
|
||||||
|
*
|
||||||
|
* @param regex the pattern to exclude
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #excludeRegex(Collection)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation excludeRegex(String... regex) {
|
||||||
|
return excludeRegex(List.of(regex));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Directory/file pattern to exclude from Checkstyle. Multiple exclude are allowed.
|
||||||
|
*
|
||||||
|
* @param regex the patterns to exclude
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #excludeRegex(String...)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation excludeRegex(Collection<String> regex) {
|
||||||
|
excludeRegex_.addAll(regex);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Directory/file to exclude from Checkstyle. The path can be the full, absolute path, or relative to the current
|
||||||
|
* path. Multiple excludes are allowed.
|
||||||
|
*
|
||||||
|
* @param paths the paths
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #exclude(String...)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation excludeStrings(Collection<String> paths) {
|
||||||
|
return exclude(paths.stream().map(File::new).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() throws IOException, InterruptedException, ExitStatusException {
|
||||||
|
if (project_ == null) {
|
||||||
|
if (LOGGER.isLoggable(Level.SEVERE) && !silent()) {
|
||||||
|
LOGGER.severe("A project must be specified.");
|
||||||
|
}
|
||||||
|
throw new ExitStatusException(ExitStatusException.EXIT_FAILURE);
|
||||||
|
} else {
|
||||||
|
super.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Part of the {@link #execute} operation, constructs the command list
|
* Part of the {@link #execute} operation, constructs the command list
|
||||||
* to use for building the process.
|
* to use for building the process.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected List<String> executeConstructProcessCommandList() {
|
protected List<String> executeConstructProcessCommandList() {
|
||||||
if (project_ == null) {
|
|
||||||
LOGGER.severe("A project must be specified.");
|
|
||||||
} else if (sourceDirs.isEmpty()) {
|
|
||||||
sourceDirs.add(project_.srcMainJavaDirectory().getPath());
|
|
||||||
sourceDirs.add(project_.srcTestJavaDirectory().getPath());
|
|
||||||
}
|
|
||||||
|
|
||||||
final List<String> args = new ArrayList<>();
|
final List<String> args = new ArrayList<>();
|
||||||
args.add(javaTool());
|
|
||||||
|
|
||||||
args.add("-cp");
|
if (project_ != null) {
|
||||||
args.add(String.format("%s:%s:%s:%s", Path.of(project_.libTestDirectory().getPath(), "*"),
|
if (sourceDir_.isEmpty()) {
|
||||||
Path.of(project_.libCompileDirectory().getPath(), "*"), project_.buildMainDirectory(),
|
sourceDir_.add(project_.srcMainJavaDirectory());
|
||||||
project_.buildTestDirectory()));
|
sourceDir_.add(project_.srcTestJavaDirectory());
|
||||||
args.add("com.puppycrawl.tools.checkstyle.Main");
|
|
||||||
|
|
||||||
options.forEach((k, v) -> {
|
|
||||||
args.add(k);
|
|
||||||
if (!v.isEmpty()) {
|
|
||||||
args.add(v);
|
|
||||||
}
|
}
|
||||||
});
|
args.add(javaTool());
|
||||||
|
|
||||||
args.addAll(sourceDirs);
|
args.add("-cp");
|
||||||
|
args.add(String.format("%s%s%s%s%s%s%s", new File(project_.libTestDirectory(), "*"),
|
||||||
|
File.pathSeparator, new File(project_.libCompileDirectory(), "*"), File.pathSeparator,
|
||||||
|
project_.buildMainDirectory(), File.pathSeparator, project_.buildTestDirectory()));
|
||||||
|
args.add("com.puppycrawl.tools.checkstyle.Main");
|
||||||
|
|
||||||
|
options_.forEach((k, v) -> {
|
||||||
|
args.add(k);
|
||||||
|
if (!v.isEmpty()) {
|
||||||
|
args.add(v);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!exclude_.isEmpty()) {
|
||||||
|
for (var e : exclude_) {
|
||||||
|
if (e.exists()) {
|
||||||
|
args.add("-e");
|
||||||
|
args.add(e.getAbsolutePath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!excludeRegex_.isEmpty()) {
|
||||||
|
for (var e : excludeRegex_) {
|
||||||
|
if (isNotBlank(e)) {
|
||||||
|
args.add("-x");
|
||||||
|
args.add(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
args.addAll(sourceDir_.stream().map(File::getAbsolutePath).toList());
|
||||||
|
|
||||||
|
if (LOGGER.isLoggable(Level.FINE)) {
|
||||||
|
LOGGER.log(Level.FINE, String.join(" ", args));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
@ -152,22 +286,31 @@ public class CheckstyleOperation extends AbstractProcessOperation<CheckstyleOper
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows ignored modules to be run.
|
* Allows ignored modules to be run.
|
||||||
|
*
|
||||||
|
* @param isAllowIgnoreModules {@code true} or {@code false}
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation executeIgnoredModules(boolean isAllowIgnoreModules) {
|
public CheckstyleOperation executeIgnoredModules(boolean isAllowIgnoreModules) {
|
||||||
if (isAllowIgnoreModules) {
|
if (isAllowIgnoreModules) {
|
||||||
options.put("-E", "");
|
options_.put("-E", "");
|
||||||
} else {
|
} else {
|
||||||
options.remove("-E");
|
options_.remove("-E");
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specifies the output format. Valid values: {@code xml}, {@code sarif}, {@code plain} for the XML, sarif and
|
* Specifies the output format. Valid values: {@link OutputFormat#XML},
|
||||||
* default logger respectively. Defaults to {@code plain}.
|
* {@link OutputFormat#SARIF}, {@link OutputFormat#PLAIN} for the XML, sarif and default logger
|
||||||
|
* respectively.
|
||||||
|
* <p>
|
||||||
|
* Defaults to {@link OutputFormat#PLAIN}.
|
||||||
|
*
|
||||||
|
* @param format the output format
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation format(String format) {
|
public CheckstyleOperation format(OutputFormat format) {
|
||||||
options.put("-f", format);
|
options_.put("-f", format.label.toLowerCase());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,128 +318,279 @@ public class CheckstyleOperation extends AbstractProcessOperation<CheckstyleOper
|
||||||
* Generates to output a suppression xml to use to suppress all violations from user's config. Instead of printing
|
* Generates to output a suppression xml to use to suppress all violations from user's config. Instead of printing
|
||||||
* every violation, all violations will be caught and single suppressions xml file will be printed out.
|
* every violation, all violations will be caught and single suppressions xml file will be printed out.
|
||||||
* Used only with the {@link #configurationFile(String) configurationFile} option. Output location can be specified
|
* Used only with the {@link #configurationFile(String) configurationFile} option. Output location can be specified
|
||||||
* with the {@link #output(String) output} option.
|
* with the {@link #outputPath(String) output} option.
|
||||||
|
*
|
||||||
|
* @param xPathSuppression {@code true} or {@code false}
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation generateXpathSuppression(boolean xPathSuppression) {
|
public CheckstyleOperation generateXpathSuppression(boolean xPathSuppression) {
|
||||||
if (xPathSuppression) {
|
if (xPathSuppression) {
|
||||||
options.put("-g", "");
|
options_.put("-g", "");
|
||||||
} else {
|
} else {
|
||||||
options.remove("-g");
|
options_.remove("-g");
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Determines if a string is not blank.
|
||||||
|
*/
|
||||||
|
private boolean isNotBlank(String s) {
|
||||||
|
return s != null && !s.isBlank();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This option is used to print the Parse Tree of the Javadoc comment. The file has to contain only Javadoc comment
|
||||||
|
* content excluding '/**' and '*/' at the beginning and at the end respectively. It can only be used on a
|
||||||
|
* single file and cannot be combined with other options.
|
||||||
|
*
|
||||||
|
* @param isTree {@code true} or {@code false}
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation javadocTree(boolean isTree) {
|
||||||
|
if (isTree) {
|
||||||
|
options_.put("-j", "");
|
||||||
|
} else {
|
||||||
|
options_.remove("-j");
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints Parse Tree of the Javadoc comment. The file have to contain <b>only Javadoc comment content</b>
|
* Returns the command line options.
|
||||||
* without including '/**' and '*/' at the beginning and at the end respectively. The option cannot
|
*
|
||||||
* be used other options and requires exactly one file to run on to be specified.
|
* @return the command line options
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation javadocTree(boolean isTree) {
|
public Map<String, String> options() {
|
||||||
if (isTree) {
|
return options_;
|
||||||
options.put("-j", "");
|
}
|
||||||
} else {
|
|
||||||
options.remove("-j");
|
/**
|
||||||
|
* Sets the output file.
|
||||||
|
* <p>
|
||||||
|
* Defaults to stdout.
|
||||||
|
*
|
||||||
|
* @param file the output file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation outputPath(String file) {
|
||||||
|
if (isNotBlank(file)) {
|
||||||
|
options_.put("-o", file);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the output file.
|
||||||
|
* <p>
|
||||||
|
* Defaults to stdout.
|
||||||
|
*
|
||||||
|
* @param file the output file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation outputPath(File file) {
|
||||||
|
return outputPath(file.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the output file.
|
||||||
|
* <p>
|
||||||
|
* Defaults to stdout.
|
||||||
|
*
|
||||||
|
* @param file the output file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation outputPath(Path file) {
|
||||||
|
return outputPath(file.toFile().getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the property files to load.
|
||||||
|
*
|
||||||
|
* @param file the file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation propertiesFile(String file) {
|
||||||
|
if (isNotBlank(file)) {
|
||||||
|
options_.put("-p", file);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the property files to load.
|
||||||
|
*
|
||||||
|
* @param file the file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation propertiesFile(File file) {
|
||||||
|
return propertiesFile(file.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the property files to load.
|
||||||
|
*
|
||||||
|
* @param file the file
|
||||||
|
* @return the checkstyle operation
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation propertiesFile(Path file) {
|
||||||
|
return propertiesFile(file.toFile().getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the file(s) or folder(s) containing the source files to check.
|
||||||
|
*
|
||||||
|
* @param dir one or more directories
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #sourceDirStrings(Collection)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation sourceDir(String... dir) {
|
||||||
|
return sourceDirStrings(List.of(dir));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the file(s) or folder(s) containing the source files to check.
|
||||||
|
*
|
||||||
|
* @param dir one or more directories
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #sourceDir(Collection)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation sourceDir(File... dir) {
|
||||||
|
return sourceDir(List.of(dir));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the file(s) or folder(s) containing the source files to check.
|
||||||
|
*
|
||||||
|
* @param dir one or more directories
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #sourceDirPaths(Collection)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation sourceDir(Path... dir) {
|
||||||
|
return sourceDirPaths(List.of(dir));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the file(s) or folder(s) containing the source files to check.
|
||||||
|
*
|
||||||
|
* @param dirs the directories
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #sourceDir(File...)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation sourceDir(Collection<File> dirs) {
|
||||||
|
sourceDir_.addAll(dirs);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the file(s) or folders(s) containing the sources files to check
|
||||||
|
*
|
||||||
|
* @return the files or directories
|
||||||
|
*/
|
||||||
|
public Set<File> sourceDir() {
|
||||||
|
return sourceDir_;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the file(s) or folder(s) containing the source files to check.
|
||||||
|
*
|
||||||
|
* @param dirs the directories
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #sourceDir(Path...)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation sourceDirPaths(Collection<Path> dirs) {
|
||||||
|
return sourceDir(dirs.stream().map(Path::toFile).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the file(s) or folder(s) containing the source files to check.
|
||||||
|
*
|
||||||
|
* @param dirs the directories
|
||||||
|
* @return the checkstyle operation
|
||||||
|
* @see #sourceDir(String...)
|
||||||
|
*/
|
||||||
|
public CheckstyleOperation sourceDirStrings(Collection<String> dirs) {
|
||||||
|
return sourceDir(dirs.stream().map(File::new).toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints xpath suppressions at the file's line and column position. Argument is the line and column number
|
* Prints xpath suppressions at the file's line and column position. Argument is the line and column number
|
||||||
* (separated by a {@code :} ) in the file that the suppression should be generated for. The option cannot be
|
* (separated by a {@code :} ) in the file that the suppression should be generated for. The option cannot be
|
||||||
* used with other options and requires exactly one file to run on to be specified.
|
* used with other options and requires exactly one file to run on to be specified.
|
||||||
* <p>
|
* <p>
|
||||||
* <b>ATTENTION</b>: generated result will have few queries, joined by pipe(|). Together they will match all AST nodes
|
* Note that the generated result will have few queries, joined by pipe({@code |}). Together they will match all
|
||||||
* on specified line and column. You need to choose only one and recheck that it works. Usage of all of them is also
|
* AST nodes on specified line and column. You need to choose only one and recheck that it works. Usage of all of
|
||||||
* ok, but might result in undesirable matching and suppress other issues.
|
* them is also ok, but might result in undesirable matching and suppress other issues.
|
||||||
*/
|
|
||||||
public CheckstyleOperation lineColumn(String lineColumn) {
|
|
||||||
options.put("-s", lineColumn);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the output file. Defaults to stdout.
|
|
||||||
*/
|
|
||||||
public CheckstyleOperation output(String file) {
|
|
||||||
options.put("-o", file);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the property files to load.
|
|
||||||
*/
|
|
||||||
public CheckstyleOperation propertiesFile(String file) {
|
|
||||||
options.put("-p", file);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specified the file(s) or folder(s) containing the source files to check.
|
|
||||||
*
|
*
|
||||||
* @see #sourceDir(Collection)
|
* @param lineColumnNumber the line column number
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation sourceDir(String... dir) {
|
public CheckstyleOperation suppressionLineColumnNumber(String lineColumnNumber) {
|
||||||
sourceDirs.addAll(Arrays.asList(dir));
|
if (isNotBlank(lineColumnNumber)) {
|
||||||
|
options_.put("-s", lineColumnNumber);
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specified the file(s) or folder(s) containing the source files to check.
|
* Sets the length of the tab character. Used only with the
|
||||||
*
|
* {@link #suppressionLineColumnNumber(String) suppressionLineColumnNumber} option.
|
||||||
* @see #sourceDir(String...)
|
* <p>
|
||||||
*/
|
|
||||||
public CheckstyleOperation sourceDir(Collection<String> dirs) {
|
|
||||||
sourceDirs.addAll(dirs);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the length of the tab character. Used only with the {@link #lineColumn(String) lineColum} option.
|
|
||||||
* Default value is {@code 8}.
|
* Default value is {@code 8}.
|
||||||
|
*
|
||||||
|
* @param length the length
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation tabWith(int length) {
|
public CheckstyleOperation tabWith(int length) {
|
||||||
options.put("-w", String.valueOf(length));
|
options_.put("-w", String.valueOf(length));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints Abstract Syntax Tree(AST) of the checked file. The option cannot be used other options and requires
|
* This option is used to display the Abstract Syntax Tree (AST) without any comments of the specified file. It can
|
||||||
* exactly one file to run on to be specified.
|
* only be used on a single file and cannot be combined with other options.
|
||||||
|
*
|
||||||
|
* @param isTree {@code true} or {@code false}
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation tree(boolean isTree) {
|
public CheckstyleOperation tree(boolean isTree) {
|
||||||
if (isTree) {
|
if (isTree) {
|
||||||
options.put("-t", "");
|
options_.put("-t", "");
|
||||||
} else {
|
} else {
|
||||||
options.remove("-t");
|
options_.remove("-t");
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints Abstract Syntax Tree(AST) with comment nodes of the checked file. The option cannot be used with other
|
* This option is used to display the Abstract Syntax Tree (AST) with comment nodes excluding Javadoc of the
|
||||||
* options and requires exactly one file to run on to be specified.
|
* specified file. It can only be used on a single file and cannot be combined with other options.
|
||||||
|
*
|
||||||
|
* @param isTree {@code true} or {@code false}
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation treeWithComments(boolean isTree) {
|
public CheckstyleOperation treeWithComments(boolean isTree) {
|
||||||
if (isTree) {
|
if (isTree) {
|
||||||
options.put("-T", "");
|
options_.put("-T", "");
|
||||||
} else {
|
} else {
|
||||||
options.remove("-T");
|
options_.remove("-T");
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints Abstract Syntax Tree(AST) with Javadoc nodes and comment nodes of the checked file. Attention that line
|
* This option is used to display the Abstract Syntax Tree (AST) with Javadoc nodes of the specified file. It can
|
||||||
* number and columns will not be the same as it is a file due to the fact that each javadoc comment is parsed
|
* only be used on a single file and cannot be combined with other options.
|
||||||
* separately from java file. The option cannot be used with other options and requires exactly one file to run on
|
*
|
||||||
* to be specified.
|
* @param isTree {@code true} or {@code false}
|
||||||
|
* @return the checkstyle operation
|
||||||
*/
|
*/
|
||||||
public CheckstyleOperation treeWithJavadoc(boolean isTree) {
|
public CheckstyleOperation treeWithJavadoc(boolean isTree) {
|
||||||
if (isTree) {
|
if (isTree) {
|
||||||
options.put("-J", "");
|
options_.put("-J", "");
|
||||||
} else {
|
} else {
|
||||||
options.remove("-J");
|
options_.remove("-J");
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2023-2025 the original author or authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package rife.bld.extension.checkstyle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Checkstyle output format for XML, sarif and default (plain) logger.
|
||||||
|
*/
|
||||||
|
public enum OutputFormat {
|
||||||
|
XML("xml"),
|
||||||
|
SARIF("sarif"),
|
||||||
|
PLAIN("plain");
|
||||||
|
|
||||||
|
public final String label;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the label of this output format.
|
||||||
|
*/
|
||||||
|
OutputFormat(String label) {
|
||||||
|
this.label = label;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2023 the original author or authors.
|
* Copyright 2023-2025 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -16,58 +16,150 @@
|
||||||
|
|
||||||
package rife.bld.extension;
|
package rife.bld.extension;
|
||||||
|
|
||||||
|
import org.assertj.core.api.AutoCloseableSoftAssertions;
|
||||||
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.condition.EnabledOnOs;
|
||||||
|
import org.junit.jupiter.api.condition.OS;
|
||||||
import rife.bld.BaseProject;
|
import rife.bld.BaseProject;
|
||||||
import rife.bld.Project;
|
import rife.bld.Project;
|
||||||
import rife.bld.WebProject;
|
import rife.bld.WebProject;
|
||||||
|
import rife.bld.extension.checkstyle.OutputFormat;
|
||||||
import rife.bld.operations.exceptions.ExitStatusException;
|
import rife.bld.operations.exceptions.ExitStatusException;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.logging.ConsoleHandler;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatCode;
|
import static org.assertj.core.api.Assertions.assertThatCode;
|
||||||
|
|
||||||
|
|
||||||
class CheckstyleOperationTest {
|
class CheckstyleOperationTest {
|
||||||
|
public static final String SRC_MAIN_JAVA = "src/main/java";
|
||||||
|
public static final String SRC_TEST_JAVA = "src/test/java";
|
||||||
private static final String ADD = "add";
|
private static final String ADD = "add";
|
||||||
private static final String BAR = "bar";
|
private static final String BAR = "bar";
|
||||||
private static final String FOO = "foo";
|
private static final String FOO = "foo";
|
||||||
private static final String REMOVE = "remove";
|
private static final String REMOVE = "remove";
|
||||||
|
|
||||||
|
@BeforeAll
|
||||||
|
static void beforeAll() {
|
||||||
|
var level = Level.ALL;
|
||||||
|
var logger = Logger.getLogger("rife.bld.extension");
|
||||||
|
var consoleHandler = new ConsoleHandler();
|
||||||
|
consoleHandler.setLevel(level);
|
||||||
|
logger.addHandler(consoleHandler);
|
||||||
|
logger.setLevel(level);
|
||||||
|
logger.setUseParentHandlers(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void branchMatchingXpath() {
|
void branchMatchingXpath() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).branchMatchingXpath(FOO);
|
var op = new CheckstyleOperation().fromProject(new Project()).branchMatchingXpath(FOO);
|
||||||
assertThat(op.options.get("-b")).isEqualTo(FOO);
|
assertThat(op.options().get("-b")).isEqualTo(FOO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnabledOnOs(OS.LINUX)
|
||||||
|
void checkAllParameters() throws IOException {
|
||||||
|
var args = Files.readAllLines(Paths.get("src", "test", "resources", "checkstyle-args.txt"));
|
||||||
|
|
||||||
|
assertThat(args).isNotEmpty();
|
||||||
|
|
||||||
|
var params = new CheckstyleOperation()
|
||||||
|
.fromProject(new Project())
|
||||||
|
.branchMatchingXpath("xpath")
|
||||||
|
.debug(true)
|
||||||
|
.configurationFile(new File("config"))
|
||||||
|
.exclude(SRC_MAIN_JAVA)
|
||||||
|
.excludeRegex("regex")
|
||||||
|
.executeIgnoredModules(true)
|
||||||
|
.format(OutputFormat.XML)
|
||||||
|
.generateXpathSuppression(true)
|
||||||
|
.javadocTree(true)
|
||||||
|
.outputPath(new File("optionPath"))
|
||||||
|
.propertiesFile(new File("properties"))
|
||||||
|
.suppressionLineColumnNumber("12")
|
||||||
|
.tabWith(1)
|
||||||
|
.tree(true)
|
||||||
|
.treeWithComments(true)
|
||||||
|
.treeWithJavadoc(true)
|
||||||
|
.executeConstructProcessCommandList();
|
||||||
|
|
||||||
|
try (var softly = new AutoCloseableSoftAssertions()) {
|
||||||
|
for (var p : args) {
|
||||||
|
var found = false;
|
||||||
|
for (var a : params) {
|
||||||
|
if (a.startsWith(p)) {
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
softly.assertThat(found).as(p + " not found.").isTrue();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void configurationFile() {
|
void configurationFile() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).configurationFile(FOO);
|
var op = new CheckstyleOperation().fromProject(new Project()).configurationFile(FOO);
|
||||||
assertThat(op.options.get("-c")).isEqualTo(FOO);
|
assertThat(op.options().get("-c")).isEqualTo(FOO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void debug() {
|
void debug() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).debug(true);
|
var op = new CheckstyleOperation().fromProject(new Project()).debug(true);
|
||||||
assertThat(op.options.containsKey("-d")).as(ADD).isTrue();
|
assertThat(op.options().containsKey("-d")).as(ADD).isTrue();
|
||||||
op = op.debug(false);
|
op = op.debug(false);
|
||||||
assertThat(op.options.containsKey("-d")).as(REMOVE).isFalse();
|
assertThat(op.options().containsKey("-d")).as(REMOVE).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void exclude() {
|
void exclude() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).exclude(FOO);
|
var foo = new File(SRC_MAIN_JAVA);
|
||||||
assertThat(op.options.get("-e")).isEqualTo(FOO);
|
var bar = new File(SRC_TEST_JAVA);
|
||||||
op = new CheckstyleOperation().fromProject(new Project()).exclude(List.of(FOO));
|
var e = "-e ";
|
||||||
assertThat(op.options.get("-e")).as("as list").isEqualTo(FOO);
|
|
||||||
|
var op = new CheckstyleOperation().fromProject(new Project()).exclude(SRC_MAIN_JAVA, SRC_TEST_JAVA);
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).as("String...")
|
||||||
|
.contains(e + foo.getAbsolutePath()).contains(e + bar.getAbsolutePath());
|
||||||
|
|
||||||
|
op = new CheckstyleOperation().fromProject(new Project()).excludeStrings(List.of(SRC_MAIN_JAVA, SRC_TEST_JAVA));
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).as("List(String...)")
|
||||||
|
.contains(e + foo.getAbsolutePath()).contains(e + bar.getAbsolutePath());
|
||||||
|
|
||||||
|
op = new CheckstyleOperation().fromProject(new Project()).exclude(foo, bar);
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).as("File...")
|
||||||
|
.contains(e + foo.getAbsolutePath()).contains(e + bar.getAbsolutePath());
|
||||||
|
|
||||||
|
op = new CheckstyleOperation().fromProject(new Project()).exclude(List.of(foo, bar));
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).as("List(File...)")
|
||||||
|
.contains(e + foo.getAbsolutePath()).contains(e + bar.getAbsolutePath());
|
||||||
|
|
||||||
|
op = new CheckstyleOperation().fromProject(new Project()).exclude(foo.toPath(), bar.toPath());
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).as("Path...")
|
||||||
|
.contains(e + foo.getAbsolutePath()).contains(e + bar.getAbsolutePath());
|
||||||
|
|
||||||
|
op = new CheckstyleOperation().fromProject(new Project()).excludePaths(List.of(foo.toPath(), bar.toPath()));
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).as("List(Path...)")
|
||||||
|
.contains(e + foo.getAbsolutePath()).contains(e + bar.getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void excludedPathPattern() {
|
void excludeRegex() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).excludedPathPattern(FOO);
|
var op = new CheckstyleOperation().fromProject(new Project()).excludeRegex(FOO, BAR);
|
||||||
assertThat(op.options.get("-x")).isEqualTo(FOO);
|
var x = "-x ";
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).contains(x + FOO, x + BAR);
|
||||||
|
|
||||||
|
op = new CheckstyleOperation().fromProject(new Project()).excludeRegex(List.of(FOO, BAR));
|
||||||
|
assertThat(String.join(" ", op.executeConstructProcessCommandList())).as("as list").contains(x + FOO, x + BAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -76,9 +168,9 @@ class CheckstyleOperationTest {
|
||||||
tmpFile.deleteOnExit();
|
tmpFile.deleteOnExit();
|
||||||
var op = new CheckstyleOperation()
|
var op = new CheckstyleOperation()
|
||||||
.fromProject(new WebProject())
|
.fromProject(new WebProject())
|
||||||
.sourceDir("src/main/java", "src/test/java")
|
.sourceDir(SRC_MAIN_JAVA, SRC_TEST_JAVA)
|
||||||
.configurationFile("src/test/resources/google_checks.xml")
|
.configurationFile(Path.of("src/test/resources/google_checks.xml"))
|
||||||
.output(tmpFile.getAbsolutePath());
|
.outputPath(tmpFile.toPath());
|
||||||
op.execute();
|
op.execute();
|
||||||
assertThat(tmpFile).exists();
|
assertThat(tmpFile).exists();
|
||||||
}
|
}
|
||||||
|
@ -91,7 +183,7 @@ class CheckstyleOperationTest {
|
||||||
.propertiesFile("config/checkstyle.properties")
|
.propertiesFile("config/checkstyle.properties")
|
||||||
.debug(true)
|
.debug(true)
|
||||||
.executeIgnoredModules(true)
|
.executeIgnoredModules(true)
|
||||||
.sourceDir("src/main/java", "src/test/java");
|
.sourceDir(SRC_MAIN_JAVA, SRC_TEST_JAVA);
|
||||||
assertThat(String.join(" ", op.executeConstructProcessCommandList()))
|
assertThat(String.join(" ", op.executeConstructProcessCommandList()))
|
||||||
.startsWith("java -cp ")
|
.startsWith("java -cp ")
|
||||||
.endsWith(
|
.endsWith(
|
||||||
|
@ -100,15 +192,22 @@ class CheckstyleOperationTest {
|
||||||
"-b xpath " +
|
"-b xpath " +
|
||||||
"-c config/checkstyle.xml " +
|
"-c config/checkstyle.xml " +
|
||||||
"-d -E " +
|
"-d -E " +
|
||||||
"src/main/java src/test/java");
|
new File(SRC_MAIN_JAVA).getAbsolutePath() + " " +
|
||||||
|
new File(SRC_TEST_JAVA).getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void executeIgnoredModules() {
|
void executeIgnoredModules() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).executeIgnoredModules(true);
|
var op = new CheckstyleOperation().fromProject(new Project()).executeIgnoredModules(true);
|
||||||
assertThat(op.options.containsKey("-E")).as(ADD).isTrue();
|
assertThat(op.options().containsKey("-E")).as(ADD).isTrue();
|
||||||
op = op.executeIgnoredModules(false);
|
op = op.executeIgnoredModules(false);
|
||||||
assertThat(op.options.containsKey("-E")).as(REMOVE).isFalse();
|
assertThat(op.options().containsKey("-E")).as(REMOVE).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void executeNoProject() {
|
||||||
|
var op = new CheckstyleOperation();
|
||||||
|
assertThatCode(op::execute).isInstanceOf(ExitStatusException.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -117,88 +216,115 @@ class CheckstyleOperationTest {
|
||||||
tmpFile.deleteOnExit();
|
tmpFile.deleteOnExit();
|
||||||
var op = new CheckstyleOperation()
|
var op = new CheckstyleOperation()
|
||||||
.fromProject(new WebProject())
|
.fromProject(new WebProject())
|
||||||
.sourceDir(List.of("src/main/java", "src/test/java"))
|
.sourceDir(SRC_MAIN_JAVA, SRC_TEST_JAVA)
|
||||||
.configurationFile("src/test/resources/sun_checks.xml")
|
.configurationFile("src/test/resources/sun_checks.xml")
|
||||||
.output(tmpFile.getAbsolutePath());
|
.outputPath(tmpFile.getAbsolutePath());
|
||||||
assertThatCode(op::execute).isInstanceOf(ExitStatusException.class);
|
assertThatCode(op::execute).isInstanceOf(ExitStatusException.class);
|
||||||
assertThat(tmpFile).exists();
|
assertThat(tmpFile).exists();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void format() {
|
void format() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).format(FOO);
|
var op = new CheckstyleOperation().fromProject(new Project()).format(OutputFormat.XML);
|
||||||
assertThat(op.options.get("-f")).isEqualTo(FOO);
|
assertThat(op.options().get("-f")).isEqualTo("xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void generateXpathSuppression() {
|
void generateXpathSuppression() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).generateXpathSuppression(true);
|
var op = new CheckstyleOperation().fromProject(new Project()).generateXpathSuppression(true);
|
||||||
assertThat(op.options.containsKey("-g")).as(ADD).isTrue();
|
assertThat(op.options().containsKey("-g")).as(ADD).isTrue();
|
||||||
op = op.generateXpathSuppression(false);
|
op = op.generateXpathSuppression(false);
|
||||||
assertThat(op.options.containsKey("-g")).as(REMOVE).isFalse();
|
assertThat(op.options().containsKey("-g")).as(REMOVE).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void javadocTree() {
|
void javadocTree() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).javadocTree(true);
|
var op = new CheckstyleOperation().fromProject(new Project()).javadocTree(true);
|
||||||
assertThat(op.options.containsKey("-j")).as(ADD).isTrue();
|
assertThat(op.options().containsKey("-j")).as(ADD).isTrue();
|
||||||
op = op.javadocTree(false);
|
op = op.javadocTree(false);
|
||||||
assertThat(op.options.containsKey("-j")).as(REMOVE).isFalse();
|
assertThat(op.options().containsKey("-j")).as(REMOVE).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void lineColumn() {
|
void outputPath() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).lineColumn(FOO);
|
var op = new CheckstyleOperation().fromProject(new Project()).outputPath(FOO);
|
||||||
assertThat(op.options.get("-s")).isEqualTo(FOO);
|
assertThat(op.options().get("-o")).isEqualTo(FOO);
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void output() {
|
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).output(FOO);
|
|
||||||
assertThat(op.options.get("-o")).isEqualTo(FOO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void propertiesFile() {
|
void propertiesFile() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).propertiesFile(FOO);
|
var op = new CheckstyleOperation().fromProject(new Project()).propertiesFile(FOO);
|
||||||
assertThat(op.options.get("-p")).isEqualTo(FOO);
|
assertThat(op.options().get("-p")).isEqualTo(FOO);
|
||||||
|
|
||||||
|
var fooPath = Path.of(FOO);
|
||||||
|
op = op.propertiesFile(fooPath);
|
||||||
|
assertThat(op.options().get("-p")).isEqualTo(fooPath.toFile().getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void sourceDir() {
|
void sourceDir() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).sourceDir(FOO);
|
var foo = new File(FOO);
|
||||||
assertThat(op.sourceDirs).contains(FOO);
|
var bar = new File(BAR);
|
||||||
op = op.sourceDir(FOO, BAR);
|
|
||||||
assertThat(op.sourceDirs).as("foo, bar").hasSize(2).contains(FOO).contains(BAR);
|
var op = new CheckstyleOperation().fromProject(new Project()).sourceDir(FOO, BAR);
|
||||||
|
assertThat(op.sourceDir()).as("String...").hasSize(2).contains(foo, bar);
|
||||||
|
op.sourceDir().clear();
|
||||||
|
|
||||||
|
op = op.sourceDirStrings(List.of(FOO, BAR));
|
||||||
|
assertThat(op.sourceDir()).as("List(String...)").hasSize(2).contains(foo, bar);
|
||||||
|
op.sourceDir().clear();
|
||||||
|
|
||||||
|
op = op.sourceDir(foo, bar);
|
||||||
|
assertThat(op.sourceDir()).as("File...").hasSize(2).contains(foo, bar);
|
||||||
|
op.sourceDir().clear();
|
||||||
|
|
||||||
|
op = op.sourceDir(List.of(foo, bar));
|
||||||
|
assertThat(op.sourceDir()).as("List(File...)").hasSize(2).contains(foo, bar);
|
||||||
|
op.sourceDir().clear();
|
||||||
|
|
||||||
|
op = op.sourceDir(foo.toPath(), bar.toPath());
|
||||||
|
assertThat(op.sourceDir()).as("Path...").hasSize(2).contains(foo, bar);
|
||||||
|
op.sourceDir().clear();
|
||||||
|
|
||||||
|
op = op.sourceDirPaths(List.of(foo.toPath(), bar.toPath()));
|
||||||
|
assertThat(op.sourceDir()).as("List(Path...)").hasSize(2).contains(foo, bar);
|
||||||
|
op.sourceDir().clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void suppressionLineColumnNumber() {
|
||||||
|
var op = new CheckstyleOperation().fromProject(new Project()).suppressionLineColumnNumber(FOO + ':' + BAR);
|
||||||
|
assertThat(op.options().get("-s")).isEqualTo(FOO + ':' + BAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void tabWith() {
|
void tabWith() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).tabWith(9);
|
var op = new CheckstyleOperation().fromProject(new Project()).tabWith(9);
|
||||||
assertThat(op.options.get("-w")).isEqualTo("9");
|
assertThat(op.options().get("-w")).isEqualTo("9");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void tree() {
|
void tree() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).tree(true);
|
var op = new CheckstyleOperation().fromProject(new Project()).tree(true);
|
||||||
assertThat(op.options.containsKey("-t")).as(ADD).isTrue();
|
assertThat(op.options().containsKey("-t")).as(ADD).isTrue();
|
||||||
op = op.tree(false);
|
op = op.tree(false);
|
||||||
assertThat(op.options.containsKey("-t")).as(REMOVE).isFalse();
|
assertThat(op.options().containsKey("-t")).as(REMOVE).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void treeWithComments() {
|
void treeWithComments() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).treeWithComments(true);
|
var op = new CheckstyleOperation().fromProject(new Project()).treeWithComments(true);
|
||||||
assertThat(op.options.containsKey("-T")).as(ADD).isTrue();
|
assertThat(op.options().containsKey("-T")).as(ADD).isTrue();
|
||||||
op = op.treeWithComments(false);
|
op = op.treeWithComments(false);
|
||||||
assertThat(op.options.containsKey("-T")).as(REMOVE).isFalse();
|
assertThat(op.options().containsKey("-T")).as(REMOVE).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void treeWithJavadoc() {
|
void treeWithJavadoc() {
|
||||||
var op = new CheckstyleOperation().fromProject(new Project()).treeWithJavadoc(true);
|
var op = new CheckstyleOperation().fromProject(new Project()).treeWithJavadoc(true);
|
||||||
assertThat(op.options.containsKey("-J")).as(ADD).isTrue();
|
assertThat(op.options().containsKey("-J")).as(ADD).isTrue();
|
||||||
op = op.treeWithJavadoc(false);
|
op = op.treeWithJavadoc(false);
|
||||||
assertThat(op.options.containsKey("-J")).as(REMOVE).isFalse();
|
assertThat(op.options().containsKey("-J")).as(REMOVE).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
16
src/test/resources/checkstyle-args.txt
Normal file
16
src/test/resources/checkstyle-args.txt
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-b
|
||||||
|
-c
|
||||||
|
-d
|
||||||
|
-e
|
||||||
|
-E
|
||||||
|
-f
|
||||||
|
-g
|
||||||
|
-j
|
||||||
|
-J
|
||||||
|
-o
|
||||||
|
-p
|
||||||
|
-s
|
||||||
|
-t
|
||||||
|
-T
|
||||||
|
-w
|
||||||
|
-x
|
Loading…
Add table
Add a link
Reference in a new issue