diff --git a/docs/src/process-development/linter-tool/changelog.md b/docs/src/process-development/linter-tool/changelog.md index 9d4ecb420..fee8f6a5a 100644 --- a/docs/src/process-development/linter-tool/changelog.md +++ b/docs/src/process-development/linter-tool/changelog.md @@ -2,8 +2,18 @@ title: Changelog icon: code --- +## Version 0.1.2 (Latest) -### Version 0.1.1 (Latest) +### Bug Fixes + +- **Fixed false positive class hierarchy checks for V1 plugins** — The linter incorrectly reported that implementation classes did not implement `JavaDelegate`, did not extend `AbstractServiceDelegate` / `AbstractTaskMessageSend`, or that execution listeners did not implement `ExecutionListener`. This was caused by missing Spring Framework classes in the shaded CLI JAR, which prevented the JVM from resolving plugin class hierarchies at runtime. Spring artifacts (`spring-beans`, `spring-core`, `spring-jcl`) are now explicitly included in the shade configuration. + +- **Fixed version mismatch between `linter-cli` and `linter-core`** — `linter-cli` referenced a hardcoded dependency on `linter-core:0.1.0` instead of the current project version, causing stale artifacts to be used during the build. The version is now derived from `${project.version}`. + +**Upgrade is strongly recommended for all users of v0.1.1.** + + +### Version 0.1.1 - **Bugfix: DSF API v2 Plugin Discovery (`CLASS_LOADING_FAILED`)**: - Fixed a bug where linting a JAR built against **DSF API v2** (`dev.dsf.bpe.v2.ProcessPluginDefinition`) failed with `CLASS_LOADING_FAILED` and the message `Failed to load plugin class: dev/dsf/bpe/v2/AbstractProcessPluginDefinition` - **Root Cause**: The linter's shaded JAR only included `dsf-bpe-process-api-v1`; the v2 API classes were absent at runtime diff --git a/docs/src/process-development/linter-tool/development.md b/docs/src/process-development/linter-tool/development.md index 6b7daaba4..62228cea1 100644 --- a/docs/src/process-development/linter-tool/development.md +++ b/docs/src/process-development/linter-tool/development.md @@ -76,7 +76,7 @@ vim linter-core/src/main/java/dev/dsf/linter/service/BpmnLintingService.java mvn clean package -DskipTests # 3. Test with a sample plugin -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path test-plugin.jar --html --verbose # 4. Check the generated report @@ -97,7 +97,7 @@ git commit -m "Description of changes" ```bash # Start the linter with debugger enabled java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 \ - -jar linter-cli/target/linter-cli-0.1.1.jar \ + -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html --verbose # Attach debugger from IDE to localhost:5005 diff --git a/docs/src/process-development/linter-tool/linter-tool.md b/docs/src/process-development/linter-tool/linter-tool.md index 0413160bb..b65ea728e 100644 --- a/docs/src/process-development/linter-tool/linter-tool.md +++ b/docs/src/process-development/linter-tool/linter-tool.md @@ -64,11 +64,11 @@ mvn clean package -X ```bash # Lint a local JAR file -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path your-plugin.jar --html # Lint a remote JAR file -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path https://github.com/datasharingframework/dsf-process-ping-pong/releases/download/v2.0.0.1/dsf-process-ping-pong-2.0.0.1.jar --html # View report at: /tmp/dsf-linter-report-/dsf-linter-report/index.html @@ -93,7 +93,7 @@ cd dsf-linter mvn clean package # The executable JAR will be at: -# linter-cli/target/linter-cli-0.1.1.jar +# linter-cli/target/linter-cli-0.1.2.jar ``` ### Distribution @@ -102,7 +102,7 @@ The linter is distributed as a single executable JAR file that includes all depe ```bash # Copy to a convenient location -cp linter-cli/target/linter-cli-0.1.1.jar ~/bin/dsf-linter.jar +cp linter-cli/target/linter-cli-0.1.2.jar ~/bin/dsf-linter.jar # Use from anywhere java -jar ~/bin/dsf-linter.jar --path plugin.jar --html @@ -154,11 +154,11 @@ plugin.jar ```bash # Local JAR file -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path C:\path\to\plugin.jar --html # Remote JAR file -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path https://github.com/datasharingframework/dsf-process-ping-pong/releases/download/v2.0.0.1/dsf-process-ping-pong-2.0.0.1.jar --html ``` @@ -166,11 +166,11 @@ java -jar linter-cli/target/linter-cli-0.1.1.jar \ ```bash # Multiple report formats with custom path -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html --json --report-path ./reports # Verbose output (colors enabled by default, use --no-color to disable) -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html --verbose # Lint Maven project (two-step process) @@ -178,7 +178,7 @@ java -jar linter-cli/target/linter-cli-0.1.1.jar \ cd /path/to/project && mvn clean package # Step 2: Lint the resulting JAR -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path /path/to/project/target/my-plugin-1.0.0.jar --html ``` @@ -186,16 +186,16 @@ java -jar linter-cli/target/linter-cli-0.1.1.jar \ ```bash # GitHub Actions / GitLab CI -FORCE_COLOR=1 java -jar linter-cli/target/linter-cli-0.1.1.jar \ +FORCE_COLOR=1 java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html --json --verbose # Jenkins (fail on errors) -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html # Exit code: 0 = success, 1 = errors # Don't fail build (gradual adoption) -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html --no-fail ``` diff --git a/docs/src/process-development/linter-tool/troubleshooting.md b/docs/src/process-development/linter-tool/troubleshooting.md index 1cfd0a6dd..045830990 100644 --- a/docs/src/process-development/linter-tool/troubleshooting.md +++ b/docs/src/process-development/linter-tool/troubleshooting.md @@ -12,12 +12,12 @@ icon: config **Solution**: ```bash # Wrong - Maven project directly -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path /path/to/project --html # Correct - Build first, then lint JAR cd /path/to/project && mvn clean package -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path /path/to/project/target/my-plugin-1.0.0.jar --html ``` @@ -29,11 +29,11 @@ java -jar linter-cli/target/linter-cli-0.1.1.jar \ ```bash # Windows -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path "C:\Users\Username\project\target\plugin.jar" --html # Linux/Mac -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path /home/username/project/target/plugin.jar --html ``` @@ -47,7 +47,7 @@ java -jar linter-cli/target/linter-cli-0.1.1.jar \ ls ~/.m2/settings.xml # Use verbose mode to see detailed error messages -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html --verbose # Check if dependencies are in the JAR @@ -61,11 +61,11 @@ jar -tf plugin.jar | grep -i "class" **Solution**: ```bash # --html or --json flag must be set -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html # ← Required # Use absolute path for report directory -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html --report-path $(pwd)/reports # Check write permissions @@ -88,7 +88,7 @@ ls -lh test.jar ping example.com # Then use the local file -java -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -jar linter-cli/target/linter-cli-0.1.2.jar \ --path test.jar --html ``` @@ -110,11 +110,11 @@ java -jar linter-cli/target/linter-cli-0.1.1.jar \ **Solution**: ```bash # Increase heap size -java -Xmx2g -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -Xmx2g -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html # For very large projects -java -Xmx4g -Xms1g -jar linter-cli/target/linter-cli-0.1.1.jar \ +java -Xmx4g -Xms1g -jar linter-cli/target/linter-cli-0.1.2.jar \ --path plugin.jar --html ```