Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion docs/src/process-development/linter-tool/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions docs/src/process-development/linter-tool/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
24 changes: 12 additions & 12 deletions docs/src/process-development/linter-tool/linter-tool.md
Original file line number Diff line number Diff line change
Expand Up @@ -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-<name>/dsf-linter-report/index.html
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -154,48 +154,48 @@ 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
```

#### Advanced Configuration

```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)
# Step 1: Build the project
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
```

#### CI/CD Integration

```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
```

Expand Down
20 changes: 10 additions & 10 deletions docs/src/process-development/linter-tool/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

Expand All @@ -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
```

Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
```

Expand All @@ -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
```

Expand Down