├── .github └── workflows │ └── built_and_test.yml ├── .gitignore ├── .mergify.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── build.gradle.kts ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── package-lock.json ├── package.json ├── release.config.js ├── renovate.json ├── settings.gradle.kts └── src ├── main └── kotlin │ └── io │ └── github │ └── kelvindev15 │ └── kotlin2plantuml │ ├── Main.kt │ ├── plantuml │ ├── ClassDiagram.kt │ ├── ClassHierarchy.kt │ ├── Configuration.kt │ ├── PlantUmlClass.kt │ ├── PlantUmlRelationship.kt │ └── RelationshipType.kt │ └── utils │ ├── DefaultScanConfiguration.kt │ ├── ReflectUtils.kt │ └── ScanConfiguration.kt └── test ├── kotlin └── io │ └── github │ └── kelvindev15 │ └── kotlin2plantuml │ └── test │ ├── RegressionTest.kt │ └── sample │ └── Car.kt └── resources ├── default_configuration.plantuml ├── hide_fields.plantuml ├── hide_methods.plantuml ├── hide_relationships.plantuml ├── no_recurse.plantuml ├── private_fields.plantuml └── private_methods.plantuml /.github/workflows/built_and_test.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | push: 4 | paths-ignore: 5 | - 'CHANGELOG.md' 6 | - '.gitignore' 7 | pull_request: 8 | branches: 9 | - master 10 | workflow_dispatch: 11 | 12 | jobs: 13 | # Runs all tests 14 | build: 15 | name: Test 16 | strategy: 17 | matrix: 18 | os: [windows, macos, ubuntu] 19 | runs-on: ${{ matrix.os }}-latest 20 | timeout-minutes: 120 21 | concurrency: 22 | group: ${{ github.workflow }}-build-${{ matrix.os }}-${{ github.event.number || github.ref }} 23 | cancel-in-progress: true 24 | steps: 25 | - name: Checkout 26 | uses: danysk/action-checkout@0.2.22 27 | - uses: DanySK/build-check-deploy-gradle-action@3.7.20 28 | with: 29 | build_command: 'true' 30 | should-run-codecov: ${{ contains('Linux', runner.os) }} 31 | test-deploy: 32 | runs-on: ubuntu-latest 33 | timeout-minutes: 120 34 | concurrency: 35 | group: ${{ github.workflow }}-test-deploy-${{ github.event.number || github.ref }} 36 | cancel-in-progress: true 37 | steps: 38 | - name: Checkout 39 | uses: danysk/action-checkout@0.2.22 40 | - uses: DanySK/build-check-deploy-gradle-action@3.7.20 41 | with: 42 | build-command: true 43 | check-command: | 44 | ./gradlew tasks | grep releaseStagingRepositoryOnMavenCentral 45 | ./gradlew tasks | grep closeStagingRepositoryOnMavenCentral 46 | should-run-codecov: false 47 | should-deploy: false 48 | should-validate-wrapper: false 49 | - uses: DanySK/build-check-deploy-gradle-action@3.7.20 50 | if: contains(github.repository, 'Kotlin2PlantUML') && contains('push workflow_dispatch', github.event_name) 51 | with: 52 | build-command: true 53 | check-command: true 54 | deploy-command: ./gradlew uploadKotlin close || ./gradlew uploadKotlin close || ./gradlew uploadKotlin close 55 | java-version: 11 56 | should-run-codecov: false 57 | should-deploy: true 58 | should-validate-wrapper: false 59 | maven-central-username: ${{ secrets.MAVEN_CENTRAL_USERNAME }} 60 | maven-central-password: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} 61 | signing-key: ${{ secrets.SIGNING_KEY }} 62 | signing-password: ${{ secrets.SIGNING_PASSWORD }} 63 | release: 64 | concurrency: 65 | # Only one release job at a time. Strictly sequential. 66 | group: release 67 | needs: 68 | - build 69 | - test-deploy 70 | runs-on: ubuntu-latest 71 | if: >- 72 | contains('push workflow_dispatch', github.event_name) 73 | && contains(github.repository, 'Kelvindev15/Kotlin2PlantUML') 74 | steps: 75 | - name: Checkout 76 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 77 | with: 78 | submodules: recursive 79 | - uses: actions/setup-node@v4.4.0 80 | with: 81 | node-version: '22.16' 82 | - uses: DanySK/build-check-deploy-gradle-action@3.7.20 83 | env: 84 | GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} 85 | with: 86 | java-version: 11 87 | build-command: true 88 | check-command: true 89 | deploy-command: | 90 | npm install 91 | npx semantic-release 92 | should-run-codecov: false 93 | should-deploy: true 94 | should-validate-wrapper: false 95 | github-token: ${{ secrets.GH_TOKEN }} 96 | maven-central-username: ${{ secrets.MAVEN_CENTRAL_USERNAME }} 97 | maven-central-password: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} 98 | signing-key: ${{ secrets.SIGNING_KEY }} 99 | signing-password: ${{ secrets.SIGNING_PASSWORD }} 100 | success: 101 | runs-on: ubuntu-24.04 102 | needs: 103 | - build 104 | - release 105 | - test-deploy 106 | if: >- 107 | always() && ( 108 | contains(join(needs.*.result, ','), 'failure') 109 | || !contains(join(needs.*.result, ','), 'cancelled') 110 | ) 111 | steps: 112 | - name: Verify that there were no failures 113 | run: ${{ !contains(join(needs.*.result, ','), 'failure') }} 114 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle/ 2 | build/ 3 | .idea/ 4 | node_modules/ 5 | bin/ -------------------------------------------------------------------------------- /.mergify.yml: -------------------------------------------------------------------------------- 1 | pull_request_rules: 2 | - name: "Rebase on passing tests" 3 | conditions: 4 | - and: 5 | - author=renovate[bot] 6 | - or: 7 | - check-success=success 8 | - check-skipped=success 9 | - check-neutral=success 10 | - -draft 11 | - -conflict 12 | actions: 13 | merge: 14 | method: rebase 15 | 16 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [3.0.15](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.14...3.0.15) (2023-11-02) 2 | 3 | 4 | ### Dependency updates 5 | 6 | * **deps:** update dependency commons-cli:commons-cli to v1.6.0 ([c098423](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c0984239a8a0c1d7d0fab7fa8e9de583b18f9576)) 7 | * **deps:** update dependency gradle to v8.3 ([9d6862a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9d6862a2b3925e353cf62e2f64c18d2639f21707)) 8 | * **deps:** update dependency gradle to v8.4 ([dc19276](https://github.com/kelvindev15/Kotlin2PlantUML/commit/dc192767b6bcbfd0edd64a535729fdcc1cb53ce0)) 9 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.163 ([f5a6292](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f5a62923bd4911a53e490b7564c10ad5deec6c39)) 10 | * **deps:** update dependency io.kotest:kotest-property to v5.7.1 ([460077f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/460077f678bb049170cfe92301cbcff3ca37ad68)) 11 | * **deps:** update dependency org.jetbrains.kotlin.jvm to v1.9.20 ([79e1ad5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/79e1ad5e1b6f41ac5574271c9be2c5357758716c)) 12 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.44 ([4714063](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4714063051ddd87b6fff54b9f572f4bad6f23175)) 13 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.46 ([ab93494](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ab9349481bb6dc81b42bd9f365ebfbf26735ad00)) 14 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.47 ([61f7fdf](https://github.com/kelvindev15/Kotlin2PlantUML/commit/61f7fdf71917a84d8db907075ad3284de9b1572c)) 15 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.49 ([875b425](https://github.com/kelvindev15/Kotlin2PlantUML/commit/875b4254b8ef7a69d497e5effb3c55f5df739381)) 16 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.50 ([dba8935](https://github.com/kelvindev15/Kotlin2PlantUML/commit/dba893529f32ff50921feeb755443addb6f2a8f1)) 17 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.53 ([bebef0b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/bebef0b3d8d2c18a530d5c35d381d773b47767bd)) 18 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.54 ([f01263e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f01263e7e7141d7f0db3a3b7e78557ef205c168d)) 19 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.55 ([bdee774](https://github.com/kelvindev15/Kotlin2PlantUML/commit/bdee7744608eeb3bf86a362a3b6dc9bc43a7f0bb)) 20 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.56 ([3721134](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3721134d645c4b637e3dda77be03a297ab01cb61)) 21 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.60 ([3acf44a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3acf44af449cb44ca9bcead1226cec009be6b142)) 22 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.61 ([5c23bce](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5c23bce90aac378f82f88a8bb40efe4f892206e3)) 23 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.62 ([db1f317](https://github.com/kelvindev15/Kotlin2PlantUML/commit/db1f317abcd5770e1079500fe63b4ec635eb85e1)) 24 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.63 ([2ed9c2e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2ed9c2e22e7ae876e1a174117e97805eefe480d3)) 25 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.66 ([a5360a3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a5360a313ef6ad7cd9a261f0316335cf3787db71)) 26 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.67 ([6f33170](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6f33170e34f491e86c21bd9eddb0875a1529a72a)) 27 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.68 ([8b6381c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8b6381c170c4f57b39da88be1c37270c90ee6a7c)) 28 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.69 ([cd2dce9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cd2dce95a62210947d50e379921e6164d0745f82)) 29 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.70 ([0f8a79e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0f8a79e89ee5cd189ee595ae97f433ad06626036)) 30 | * **deps:** update kotest to v5.7.0 ([e18d935](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e18d9359b84f123147decfb49946fb957e4b08b8)) 31 | * **deps:** update kotest to v5.7.2 ([8edb97e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8edb97e74ea746e37e3079d9433a23e98c4edd68)) 32 | * **deps:** update kotlin monorepo to v1.9.10 ([8c0d0e1](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8c0d0e100b09a9e8a4aafeae37bf93e1c10409ce)) 33 | * **deps:** update node.js to 18.18 ([ad7873e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ad7873e7b2aabda94373e759c78a39311ad4031d)) 34 | * **deps:** update node.js to 20.9 ([38db143](https://github.com/kelvindev15/Kotlin2PlantUML/commit/38db143648286ab9c6556182d4886c46133a95ae)) 35 | * **deps:** update node.js to v20 ([6029cc2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6029cc213d22e3ef36aa2ef95f64e0b4371c2362)) 36 | * **deps:** update plugin dokka to v1.9.0 ([4b7b7cb](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4b7b7cbf1739c39c0e221229f5245ba022edb656)) 37 | * **deps:** update plugin dokka to v1.9.10 ([218af7e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/218af7e810389e876a82af7309eca89082610088)) 38 | * **deps:** update plugin kotlin-qa to v0.49.1 ([d2f2d83](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d2f2d839b725d2f03678ac1961531db9223cc626)) 39 | * **deps:** update plugin kotlin-qa to v0.50.0 ([787bba5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/787bba5edab2ad61ba7d9b77b0ff181e44ff948b)) 40 | * **deps:** update plugin kotlin-qa to v0.51.0 ([c899bc5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c899bc5badd1a803f4149ecec4aca84e6ec80b32)) 41 | * **deps:** update plugin kotlin-qa to v0.51.1 ([8294c21](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8294c21b82debe88e07c83483454c84c17370809)) 42 | * **deps:** update plugin kotlin-qa to v0.52.0 ([dc81988](https://github.com/kelvindev15/Kotlin2PlantUML/commit/dc81988c493adfbdd8d205489be6601c724360ea)) 43 | * **deps:** update plugin kotlin-qa to v0.53.0 ([2ddfbf9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2ddfbf9feb2537b72a518e8baf3ac6c003dd2dc2)) 44 | * **deps:** update plugin kotlin-qa to v0.54.0 ([ad80346](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ad803463bf0fd646b35ebac9020e665313c0ef44)) 45 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.10 ([b7ddc8c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b7ddc8c66f6696203a49ca78293347d7e0b9fb27)) 46 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.11 ([23f288a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/23f288ac57df20e84f5af7ff691095d8b938eadd)) 47 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.13 ([32ca4e1](https://github.com/kelvindev15/Kotlin2PlantUML/commit/32ca4e1ba2784d2fdbca7e83e36f54daa10dbd14)) 48 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.14 ([f066773](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f0667738d41ed2357851abe5974b205f65101472)) 49 | * **deps:** update plugin publiconcentral to v5.0.11 ([27abdbe](https://github.com/kelvindev15/Kotlin2PlantUML/commit/27abdbecae06a87de0e19ca90caac021e6fc8ca6)) 50 | * **deps:** update plugin publiconcentral to v5.0.12 ([8fcd1ce](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8fcd1ce6098824a1505a7ee24c379441015379ac)) 51 | * **deps:** update plugin publiconcentral to v5.0.13 ([6073261](https://github.com/kelvindev15/Kotlin2PlantUML/commit/607326109152826d7386c68122211539754716d6)) 52 | * **deps:** update plugin publiconcentral to v5.0.14 ([a71edaa](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a71edaa995633a781dacacbc09ba185d868d9caa)) 53 | * **deps:** update plugin publiconcentral to v5.0.15 ([a56be44](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a56be444f32982bf6e10e1ea1c73d6f16b7fc4a5)) 54 | * **deps:** update plugin publiconcentral to v5.0.16 ([4a07564](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4a07564504f6e1da57a2da766921d370831616ec)) 55 | * **deps:** update plugin publiconcentral to v5.0.17 ([8d25ea3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8d25ea3e2573a602a3e06f66c5e1b2ec865b73b5)) 56 | * **deps:** update plugin publiconcentral to v5.0.18 ([a1928d7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a1928d716ffd57cf71fe48acdf9617af6abf85cf)) 57 | * **deps:** update plugin semanticversioning to v1.1.11 ([9e99e75](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9e99e75305f1777a2367fe57590546e3c40d602d)) 58 | * **deps:** update plugin semanticversioning to v1.1.12 ([016e400](https://github.com/kelvindev15/Kotlin2PlantUML/commit/016e4000fd202c788ada70cc22798bd295aed009)) 59 | * **deps:** update plugin semanticversioning to v1.1.14 ([e07c25e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e07c25e2df0867543012d3d84741b4a9e4b335d4)) 60 | * **deps:** update plugin semanticversioning to v1.1.15 ([2902ead](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2902ead1bb7fea537259f92f6c5552f9a375c918)) 61 | * **deps:** update plugin semanticversioning to v2 ([9ffd01b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9ffd01bb93f617b197dbc56e57250e9092b7335e)) 62 | * **deps:** update plugin semanticversioning to v2.0.1 ([217b8f0](https://github.com/kelvindev15/Kotlin2PlantUML/commit/217b8f0a4fc19a4e1b80927d595e14d6db5d8c9c)) 63 | 64 | 65 | ### Bug Fixes 66 | 67 | * licence ([71137d6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/71137d623a8ed7687cc87c25e88a40b6e251f046)) 68 | 69 | 70 | ### Build and continuous integration 71 | 72 | * **deps:** update actions/checkout action to v3.6.0 ([5c66cd9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5c66cd931489464ef750346cc94b45bb86c4f41b)) 73 | * **deps:** update actions/checkout action to v4 ([e5b96f0](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e5b96f0236b155a4cea23323ad7739a4046f2348)) 74 | * **deps:** update actions/checkout action to v4.1.0 ([ee21311](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ee21311dcb46e0e5c939f9685baf4054bdb6150b)) 75 | * **deps:** update actions/checkout action to v4.1.1 ([c5b21b4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c5b21b410e9a775a3d6c984fe67d4536086d60be)) 76 | * **deps:** update danysk/action-checkout action to v0.2.11 ([7376cdd](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7376cdd16259e8985f82fd33c03553e406e0c9ff)) 77 | * **deps:** update danysk/action-checkout action to v0.2.12 ([b29ac26](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b29ac26bceca41f683a5a3419436598122438c82)) 78 | * **deps:** update danysk/action-checkout action to v0.2.13 ([8cb1eef](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8cb1eefa13f3a5baadeacaa17edee8e3938f67e4)) 79 | * **deps:** update danysk/action-checkout action to v0.2.14 ([d123231](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d123231f26ff973afa35d831ed54b85d977719de)) 80 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.10 ([5d58259](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5d58259c592e12ef2e60189b9cb11afbffa76bab)) 81 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.9 ([7cb3064](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7cb3064c0c9cbdbb9c334411dd5b214edc4112aa)) 82 | * **mergify:** add success job and update rebase conditions ([b17d505](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b17d505ceef5ad3105f860c9547df30e0c85f56f)) 83 | * **mergify:** configure mergify ([3327fab](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3327fab7bc851d92bf098f20b839539f043328cc)) 84 | * **mergify:** fix rebase actions ([984159d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/984159d243faf42cace9c8e20508e20d79c642ce)) 85 | * **mergify:** fix rebase conditions ([172fef6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/172fef6c35b5cc76f3c4d8e8b0e51240c08c8f64)) 86 | * **mergify:** update rebase conditions ([813cf5b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/813cf5b13640e6aba05426775cfaa3800f2887c7)) 87 | * **mergify:** update rebase conditions ([9fa03f4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9fa03f4095c3b02b84c49db272fc23e0927e523c)) 88 | * **mergify:** update rebase conditions ([4cf1bb9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4cf1bb9203aba01bbd9963a8e7bdb7f81723724b)) 89 | * **mergify:** update rebase conditions ([96c4ec3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/96c4ec37ac2fbfbb4fbe0a203071d73de5cdd1c2)) 90 | * **renovate:** update configuration ([bf556a9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/bf556a9410060b66472cfe53c05c0a5ffd5192ee)) 91 | 92 | ## [3.0.14](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.13...3.0.14) (2023-08-08) 93 | 94 | 95 | ### Bug Fixes 96 | 97 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.162 ([93a53e5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/93a53e5dc675a4106f770b097b3b2f808349c707)) 98 | 99 | 100 | ### Dependency updates 101 | 102 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.8 ([1fabba7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1fabba7afd1c7c1edc55f406d0c18fedc782bc13)) 103 | * **deps:** update plugin kotlin-qa to v0.48.0 ([6620943](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6620943376c138c0fd3328293f82619ccba30a8e)) 104 | * **deps:** update plugin kotlin-qa to v0.49.0 ([0c846fa](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0c846faed0b81db5eb8bbe980ee0ac9e519d9edf)) 105 | 106 | ## [3.0.13](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.12...3.0.13) (2023-07-24) 107 | 108 | 109 | ### Bug Fixes 110 | 111 | * **deps:** update junit5 monorepo to v5.10.0 ([cad0442](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cad04421bbd90b11d2ebf293a37648549a03381e)) 112 | 113 | 114 | ### Dependency updates 115 | 116 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.7 ([7d6be46](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7d6be4627e29c54dfa127bad5fc011601dc34e6c)) 117 | * **deps:** update dependency gradle to v8.2.1 ([b2eee68](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b2eee684bea5e466fcca19dc6c3b22cebea3e989)) 118 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.40 ([4198094](https://github.com/kelvindev15/Kotlin2PlantUML/commit/41980947bc4b169835ad511ca82b4079b0a69a1b)) 119 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.41 ([795f29a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/795f29a4bc7ff53edd9d0cd1ef29b7ceae91a985)) 120 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.43 ([8f3db60](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8f3db60cedbd00befdea5b3e832acdb8a90e4732)) 121 | * **deps:** update node.js to 18.17 ([8c651f9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8c651f90420eee4382cb3b1dd88b2593583b62b8)) 122 | * **deps:** update plugin kotlin-qa to v0.47.0 ([4e9b212](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4e9b212916bbc7579df582502cd6def5059c0bd2)) 123 | * **deps:** update plugin kotlin-qa to v0.47.1 ([11e5217](https://github.com/kelvindev15/Kotlin2PlantUML/commit/11e5217a8fabac5c1aaa3c76f21d4f4952128241)) 124 | * **deps:** update plugin publiconcentral to v5.0.10 ([2f1b4e7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2f1b4e7d4b34deeff66b5f93f4b83b8b5d64759b)) 125 | 126 | ## [3.0.12](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.11...3.0.12) (2023-07-06) 127 | 128 | 129 | ### Bug Fixes 130 | 131 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.161 ([6fa22b7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6fa22b731ba2135acdffbe90d7f0d7868b62cbd6)) 132 | 133 | 134 | ### Dependency updates 135 | 136 | * **deps:** update actions/checkout action to v3.5.3 ([bff7d60](https://github.com/kelvindev15/Kotlin2PlantUML/commit/bff7d60f19be9a7117d5c0b01193c52139ebf59f)) 137 | * **deps:** update danysk/action-checkout action to v0.2.10 ([3bf7821](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3bf7821a9d882e0550c2df4e2fbbc34d2f72d134)) 138 | * **deps:** update dependency gradle to v8.2 ([18f2c35](https://github.com/kelvindev15/Kotlin2PlantUML/commit/18f2c3509fca20f7d50beddddf83f281ee2c6459)) 139 | * **deps:** update dependency org.jetbrains.kotlin.jvm to v1.8.22 ([69d7f20](https://github.com/kelvindev15/Kotlin2PlantUML/commit/69d7f20def8a9eb81c4d6bf5cd72fa2376f86242)) 140 | * **deps:** update dependency org.jetbrains.kotlin.jvm to v1.9.0 ([d60b496](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d60b496e0036bb5d6df251942fe44e3e5ae8b820)) 141 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.30 ([3d7cec9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3d7cec9ed83982e32a214d0661252a0f8359a708)) 142 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.32 ([dea2561](https://github.com/kelvindev15/Kotlin2PlantUML/commit/dea256162583e53042dd97dbd36a7d568d8dc80e)) 143 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.33 ([0f36370](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0f36370fa412a29a82bdfee2958fa99cf03a7974)) 144 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.35 ([37961b7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/37961b77386157785361e134070214ecfb0cc065)) 145 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.37 ([2d4e4b8](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2d4e4b896580ed2f5137e6235b7ae6448fd5ad6f)) 146 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.38 ([ee84735](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ee847353a47376f046147ae7056f10f097fd75be)) 147 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.39 ([5aaec61](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5aaec6190959075b9257fd228a5a48ff279c902f)) 148 | * **deps:** update plugin dokka to v1.8.20 ([f1e276b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f1e276b5bd51573d47ef5758ab4a7976fd88433b)) 149 | * **deps:** update plugin kotlin-qa to v0.42.1 ([1402f72](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1402f72ae5114ad2ba66dfa54085a6e5c2c5a93d)) 150 | * **deps:** update plugin kotlin-qa to v0.43.0 ([79645b9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/79645b923a3d4f533724b554b10c500b271d338b)) 151 | * **deps:** update plugin kotlin-qa to v0.44.0 ([96b7498](https://github.com/kelvindev15/Kotlin2PlantUML/commit/96b749816ec9bf1c56e30e3b3475488eac7a3dce)) 152 | * **deps:** update plugin kotlin-qa to v0.45.0 ([cbf0d08](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cbf0d08a5703ee4d5c445b73ab46b0b6024551e2)) 153 | * **deps:** update plugin kotlin-qa to v0.46.0 ([cabeb53](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cabeb53762c438be26efe85c8bee7bc46760a1e7)) 154 | * **deps:** update plugin kotlin-qa to v0.46.1 ([d1ea56a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d1ea56a6afacf02dccadea659587f3ecf161fd15)) 155 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.8 ([22e8d67](https://github.com/kelvindev15/Kotlin2PlantUML/commit/22e8d677c8e3dcf42b1056c102ed3184449aca4e)) 156 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.9 ([0a71432](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0a71432e2158e016e65b27e7e521a4a4a2178e32)) 157 | * **deps:** update plugin publiconcentral to v5.0.6 ([5dff83f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5dff83fee0aaa9d06d769e44977deb95b45ee520)) 158 | * **deps:** update plugin publiconcentral to v5.0.7 ([4026c61](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4026c61d1dd3db75a6ef3724ed9a059551c6ed40)) 159 | * **deps:** update plugin publiconcentral to v5.0.9 ([1eb0c64](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1eb0c640b2fb28495610258c034bd8055868aef4)) 160 | * **deps:** update plugin semanticversioning to v1.1.10 ([2e5be6b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2e5be6b1bc9eecbb589543b3369e9b74e241774c)) 161 | 162 | ## [3.0.11](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.10...3.0.11) (2023-05-24) 163 | 164 | 165 | ### Bug Fixes 166 | 167 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.160 ([95355a3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/95355a3749ffd11fa7175df11feb8b9f1c38fa3b)) 168 | 169 | 170 | ### Dependency updates 171 | 172 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.6 ([41efe25](https://github.com/kelvindev15/Kotlin2PlantUML/commit/41efe25465634f0381643e02cc8454af2fcceee1)) 173 | * **deps:** update plugin kotlin-qa to v0.42.0 ([67be85a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/67be85ae786a09c3a7318b53a8c6fff9fe3b5a70)) 174 | 175 | ## [3.0.10](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.9...3.0.10) (2023-05-12) 176 | 177 | 178 | ### Bug Fixes 179 | 180 | * **deps:** update kotest to v5.6.2 ([5a9641b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5a9641b08393d979b077126411c46983683f66df)) 181 | 182 | ## [3.0.9](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.8...3.0.9) (2023-05-11) 183 | 184 | 185 | ### Bug Fixes 186 | 187 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.158 ([a61d36a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a61d36a480e57a2c95a29089cfdbc80492e8b2a4)) 188 | 189 | 190 | ### Dependency updates 191 | 192 | * **deps:** update plugin kotlin-qa to v0.41.0 ([693f5fb](https://github.com/kelvindev15/Kotlin2PlantUML/commit/693f5fb354e7758bc4017ffb46f28da730e8fc1c)) 193 | 194 | ## [3.0.8](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.7...3.0.8) (2023-05-03) 195 | 196 | 197 | ### Bug Fixes 198 | 199 | * **deps:** update dependency org.jgrapht:jgrapht-core to v1.5.2 ([09684e9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/09684e95764069f090f24a4ff2b535e212c91402)) 200 | 201 | 202 | ### Dependency updates 203 | 204 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.26 ([0a7743f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0a7743f0b651ab36d679c97e30724960feaff8f6)) 205 | 206 | ## [3.0.7](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.6...3.0.7) (2023-04-26) 207 | 208 | 209 | ### Bug Fixes 210 | 211 | * **deps:** update junit5 monorepo to v5.9.3 ([c19023c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c19023c5d041159bf4604b9dc3a8a5b011f24d55)) 212 | 213 | 214 | ### Dependency updates 215 | 216 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.4 ([1b895bc](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1b895bc6a1c72d0861cf0bcbe165c2eb72fa160a)) 217 | * **deps:** update dependency gradle to v8.1.1 ([72f4eb3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/72f4eb3ae08517872bb7d1478a0a8ca198b42b2e)) 218 | * **deps:** update dependency org.jetbrains.kotlin.jvm to v1.8.21 ([ba2696d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ba2696d9409a09bad8d5b7d49a2d815d1d864bbf)) 219 | * **deps:** update plugin kotlin-qa to v0.38.2 ([7364a7b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7364a7b31c9086bf41654c35aa4062f7de70f6fc)) 220 | * **deps:** update plugin kotlin-qa to v0.39.0 ([21f735e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/21f735e6a26da02542114ad5de971714a3ef17f9)) 221 | * **deps:** update plugin kotlin-qa to v0.40.0 ([09e11c4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/09e11c42f3b6df7f8ede0b03cba73a87d22cdade)) 222 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.7 ([d87fc90](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d87fc90a5105b305c6fac3753931ee83ca88dd9d)) 223 | * **deps:** update plugin publiconcentral to v5.0.2 ([e55a3fc](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e55a3fc9db8ad75aa88d420b68a3a04ffcde08e8)) 224 | * **deps:** update plugin publiconcentral to v5.0.3 ([1353563](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1353563cb27e863df9492d6d90a3776df18ca9e2)) 225 | * **deps:** update plugin publiconcentral to v5.0.4 ([3cd8d66](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3cd8d667bc769b9e2a932f16be05b2adb09cdd11)) 226 | * **deps:** update plugin publiconcentral to v5.0.5 ([a78265f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a78265fe2a6a527924ccc7fc708bbbfd496495be)) 227 | * **deps:** update plugin semanticversioning to v1.1.8 ([fdb8964](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fdb8964d03f9625c9ba342bcdc4c261e7d11bce1)) 228 | * **deps:** update plugin semanticversioning to v1.1.9 ([9fcad63](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9fcad63f8526cdf42700b286a1f4628b88851956)) 229 | 230 | ## [3.0.6](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.5...3.0.6) (2023-04-18) 231 | 232 | 233 | ### Bug Fixes 234 | 235 | * **deps:** update kotest to v5.6.1 ([db0e690](https://github.com/kelvindev15/Kotlin2PlantUML/commit/db0e690dafd5a89d5d4b31bb241877cd174baebe)) 236 | 237 | 238 | ### Dependency updates 239 | 240 | * **deps:** update plugin publiconcentral to v5 ([7f7efbf](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7f7efbf5d64ad5205eeb33fa41b05c6729baa2f8)) 241 | 242 | ## [3.0.5](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.4...3.0.5) (2023-04-17) 243 | 244 | 245 | ### Bug Fixes 246 | 247 | * **deps:** update kotest to v5.6.0 ([092356c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/092356c6c32d17bd36d13d3a828f8d5547ce0b40)) 248 | 249 | 250 | ### Dependency updates 251 | 252 | * **deps:** update actions/checkout action to v3.4.0 ([3bdbfa2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3bdbfa2371c65c6040d17dcb9fe7bfbce285aa2b)) 253 | * **deps:** update actions/checkout action to v3.5.0 ([1ab86af](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1ab86af5b6657ec9166ae9eff47bdfe8b5efd1ce)) 254 | * **deps:** update actions/checkout action to v3.5.2 ([7e0be2f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7e0be2f706d463d6fd00d6ad4523b5380ae0c3ab)) 255 | * **deps:** update danysk/action-checkout action to v0.2.6 ([87125df](https://github.com/kelvindev15/Kotlin2PlantUML/commit/87125df5f3bef30a63c06d99955b008785b60aa8)) 256 | * **deps:** update danysk/action-checkout action to v0.2.7 ([7aff7e9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7aff7e9c95e453dba597ad70b0dceff9afc9eab3)) 257 | * **deps:** update danysk/action-checkout action to v0.2.8 ([efb792d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/efb792d52a2b65930019fb7ab29c45ed4981c31e)) 258 | * **deps:** update danysk/action-checkout action to v0.2.9 ([2e8b580](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2e8b5806b575adcadce33dbfe34f414bce9eccf0)) 259 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.1 ([3024c8c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3024c8caba3aa96f1bf8d810d6f9867d9d75f7b0)) 260 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.2 ([3af7c9f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3af7c9ffb0bb3ade6ec168fb97cedea67e6de130)) 261 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.3 ([32b0121](https://github.com/kelvindev15/Kotlin2PlantUML/commit/32b01214d8ed80b7314e0d3e79533c30be3495b1)) 262 | * **deps:** update dependency gradle to v8.1 ([083a010](https://github.com/kelvindev15/Kotlin2PlantUML/commit/083a01011b72bc1df535ac900adc4ad8f996fe66)) 263 | * **deps:** update dependency org.jetbrains.kotlin.jvm to v1.8.20 ([6dc6e4c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6dc6e4cb989f712e7e04b22531f7efd99df4152d)) 264 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.17 ([7476a6f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7476a6f16e0257364d32b3dec2f7a253d700c96e)) 265 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.19 ([eb5c943](https://github.com/kelvindev15/Kotlin2PlantUML/commit/eb5c943a45146ce58be6cadf42ffd73270f19235)) 266 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.21 ([a239dd3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a239dd37576f695b7e45fb30e61e3a567a43f104)) 267 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.22 ([84ad83c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/84ad83cb2fdcee768533a6b3440c8fd531014838)) 268 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.23 ([bc8892d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/bc8892dc2544a392c450a9d53c93964ab10e49ff)) 269 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.24 ([770b429](https://github.com/kelvindev15/Kotlin2PlantUML/commit/770b429f2ba73be677eeceefb5a1fc6ab9609828)) 270 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.25 ([162ef88](https://github.com/kelvindev15/Kotlin2PlantUML/commit/162ef886438a6ab58b661f349714a33366ed8265)) 271 | * **deps:** update node.js to 18.16 ([9f18630](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9f18630ab3438293553b7d260848be81e9f00902)) 272 | * **deps:** update plugin kotlin-qa to v0.38.1 ([677998a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/677998a95a9800117eb0c1a7958b8110130558d7)) 273 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.6 ([9bed2a4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9bed2a463eef57cd3b64f6005191598b753983a4)) 274 | * **deps:** update plugin publiconcentral to v4 ([beac5f4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/beac5f4e3b225089cf579ebf291785ff62d6b526)) 275 | * **deps:** update plugin publiconcentral to v4.1.1 ([0f1d7d3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0f1d7d3f5dc7beed2dde3960351406a5391b56e1)) 276 | * **deps:** update plugin semanticversioning to v1.1.5 ([d1efa69](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d1efa69f6a8b4243f671dbc966f1e6817516bb85)) 277 | * **deps:** update plugin semanticversioning to v1.1.6 ([06d9e38](https://github.com/kelvindev15/Kotlin2PlantUML/commit/06d9e388f57ad24f387e967e6eae58e3869f1b96)) 278 | * **deps:** update plugin semanticversioning to v1.1.7 ([379b951](https://github.com/kelvindev15/Kotlin2PlantUML/commit/379b95106f5c261d41907ba1b92bbe35fff9e103)) 279 | * **deps:** update plugin shadowjar to v8.1.1 ([11362f5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/11362f5cc72ea92e49ca18debffaf12f787e1bba)) 280 | 281 | 282 | ### Style improvements 283 | 284 | * fix detekt warnings ([ffa9de5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ffa9de5f669239574daf21706d234e2ef8a3561c)) 285 | 286 | ## [3.0.4](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.3...3.0.4) (2023-03-09) 287 | 288 | 289 | ### Bug Fixes 290 | 291 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.157 ([62c158e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/62c158eeee8c8791dbdb75e6c8bb8f2085cafd0e)) 292 | 293 | 294 | ### Dependency updates 295 | 296 | * **deps:** update node.js to 18.15 ([495f8a2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/495f8a2b90cf8ba098c2af279677d1de9d87dfe2)) 297 | * **deps:** update plugin publiconcentral to v3.4.0 ([412cfa9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/412cfa9fdca21b7ece449ff3bc4997f3203be973)) 298 | 299 | ## [3.0.3](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.2...3.0.3) (2023-03-04) 300 | 301 | 302 | ### Bug Fixes 303 | 304 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.156 ([09611ca](https://github.com/kelvindev15/Kotlin2PlantUML/commit/09611caad610e48083eff212e9c979cd5d6c1979)) 305 | 306 | 307 | ### General maintenance 308 | 309 | * **build:** remove VERSION_CATALOGS feature preview enablement call ([a5d86db](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a5d86db320ce4df002774661fdf05b03ae5a38e2)) 310 | 311 | 312 | ### Dependency updates 313 | 314 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.2.0 ([dfd2d59](https://github.com/kelvindev15/Kotlin2PlantUML/commit/dfd2d59566dd71f58c920a12a7cf848b3268ff01)) 315 | * **deps:** update dependency gradle to v8 ([8bba9ec](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8bba9ec229aba49046ffd8f453f8f94dccbbdf34)) 316 | * **deps:** update dependency gradle to v8.0.2 ([d0298d9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d0298d9e88ebf0c0df46bbff14248cc3ba7cfd91)) 317 | * **deps:** update plugin dokka to v1.8.10 ([c09a0f2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c09a0f2d87df2715ce6947c891b9333ebeb46006)) 318 | * **deps:** update plugin kotlin-qa to v0.36.1 ([a94875f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a94875f0f48a47242bbdd655dfd2bc3d484614ad)) 319 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.5 ([27e4647](https://github.com/kelvindev15/Kotlin2PlantUML/commit/27e4647a23a2d9b503fa3d9d7be3d46046209055)) 320 | * **deps:** update plugin publiconcentral to v3.3.1 ([df6f589](https://github.com/kelvindev15/Kotlin2PlantUML/commit/df6f58909b21cbaff1bc332e54ecc782e254352e)) 321 | * **deps:** update plugin publiconcentral to v3.3.2 ([751cc91](https://github.com/kelvindev15/Kotlin2PlantUML/commit/751cc91a29b9fc0a41e7b8180a54c0ec58ccfd34)) 322 | * **deps:** update plugin publiconcentral to v3.3.3 ([d7bca1e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d7bca1ee9181c0e85eef602b5e9b822659f91008)) 323 | * **deps:** update plugin semanticversioning to v1.1.2 ([df99978](https://github.com/kelvindev15/Kotlin2PlantUML/commit/df999783975413e65791efef33daef7cdab47cff)) 324 | * **deps:** update plugin semanticversioning to v1.1.4 ([d64f93f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d64f93fcfe0937d7fcc5b0717a9227d6ba7006a7)) 325 | * **deps:** update plugin shadowjar to v8 ([2a340ff](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2a340ffe6509319678ab4d98c3235692612f98fd)) 326 | 327 | ## [3.0.2](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.1...3.0.2) (2023-02-28) 328 | 329 | 330 | ### Bug Fixes 331 | 332 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.155 ([da59e4a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/da59e4aec5b2e4b12974774a1e388d26ef07afdb)) 333 | 334 | ## [3.0.1](https://github.com/kelvindev15/Kotlin2PlantUML/compare/3.0.0...3.0.1) (2023-02-25) 335 | 336 | 337 | ### Bug Fixes 338 | 339 | * **utils:** remove check of path existance on DefaultScanConfiguration ([fa5c851](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fa5c8516e6d8127ab414ac2e7cc604e8fdedf0d8)) 340 | 341 | ## [3.0.0](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.22...3.0.0) (2023-02-25) 342 | 343 | 344 | ### ⚠ BREAKING CHANGES 345 | 346 | * add the possibility to specify a classpath 347 | 348 | ### Features 349 | 350 | * add the possibility to specify a classpath ([7ba5a5b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7ba5a5be104977c3eca4058b22d369b8d012b09b)) 351 | 352 | 353 | ### Style improvements 354 | 355 | * add a blank line ([9aed74e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9aed74ed610a96f0d479efcb9081931314a88fb3)) 356 | 357 | 358 | ### General maintenance 359 | 360 | * **utils:** add a default scan configuration ([281e4e6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/281e4e6a1ba6090f5f5572363299c4bd5f6fefcf)) 361 | 362 | 363 | ### Refactoring 364 | 365 | * use the DefaultScanConfiguration to store scan packages ([11d1a7c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/11d1a7ce67d82a92885825fda0fe9cb1a31dd4f1)) 366 | 367 | 368 | ### Documentation 369 | 370 | * **readme:** update README ([a77297f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a77297f0b5689b5c47a87e640b6a4a0f40141f7f)) 371 | * **utils:** add ScanConfiguration kdoc ([b49090c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b49090c50a9778c858134daee198426d650882d0)) 372 | 373 | 374 | ### Dependency updates 375 | 376 | * **deps:** update plugin kotlin-qa to v0.35.0 ([e91e891](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e91e891d149193bcd3a114f3e8452aab9a950082)) 377 | 378 | ## [2.0.22](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.21...2.0.22) (2023-02-24) 379 | 380 | 381 | ### Bug Fixes 382 | 383 | * **deps:** change jgraph and classgraph deps from implementation to api ([21e1416](https://github.com/kelvindev15/Kotlin2PlantUML/commit/21e1416d821353a96f4469c15f12484d559c9a4b)) 384 | 385 | 386 | ### Dependency updates 387 | 388 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.23 ([5b284a3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5b284a3e3f32d4582b6e8047588464548b8c7d53)) 389 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.24 ([e0292a5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e0292a54613422761fcbfd2aadedbb3981a88e11)) 390 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.25 ([007fbba](https://github.com/kelvindev15/Kotlin2PlantUML/commit/007fbba6923b41180c56ce6219cd7c0d70e0fef9)) 391 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.26 ([d9158b3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d9158b32c944108364face383cee8ff613d44791)) 392 | * **deps:** update dependency gradle to v7.6.1 ([313edc7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/313edc7cb356bacdba211a33df0fc2439bc19a66)) 393 | * **deps:** update plugin kotlin-qa to v0.34.0 ([9397acb](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9397acbf43bfe7bd017f5f182f8febf0ac60dd14)) 394 | * **deps:** update plugin kotlin-qa to v0.34.1 ([75e43d5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/75e43d559ddb2ed0c94c8faafc10651cc8a30d11)) 395 | * **deps:** update plugin kotlin-qa to v0.34.2 ([5770796](https://github.com/kelvindev15/Kotlin2PlantUML/commit/57707962c6352e44411ba54817993e8c20608332)) 396 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.2 ([ace9228](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ace9228b8f171b9f46f852b0b9de5a9e2f88f9ab)) 397 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.3 ([05cb346](https://github.com/kelvindev15/Kotlin2PlantUML/commit/05cb346c48733a32e7494c0fee38a765654535f7)) 398 | * **deps:** update plugin publiconcentral to v3.2.2 ([91d7db8](https://github.com/kelvindev15/Kotlin2PlantUML/commit/91d7db8bf013076faa3bf85769dd70e6d1aa8704)) 399 | * **deps:** update plugin publiconcentral to v3.2.3 ([80e9490](https://github.com/kelvindev15/Kotlin2PlantUML/commit/80e94902df27f9bd1d5071666a0ceaea86faaacc)) 400 | * **deps:** update plugin publiconcentral to v3.2.4 ([7a755b6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7a755b6d714c4abdae5c7b263545fd20e154ec98)) 401 | * **deps:** update plugin publiconcentral to v3.3.0 ([2d4ac0e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2d4ac0ebf2477dccb7ccbb8b424f32fa0eb88307)) 402 | * **deps:** update plugin semanticversioning to v1.0.2 ([ba99b27](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ba99b275fb6c5f53a4f521627ff26f35e7e892d3)) 403 | * **deps:** update plugin semanticversioning to v1.1.1 ([884dc96](https://github.com/kelvindev15/Kotlin2PlantUML/commit/884dc96531bfa4755e4f8ea0d2854a09d1c695b1)) 404 | 405 | ## [2.0.21](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.20...2.0.21) (2023-02-06) 406 | 407 | 408 | ### Bug Fixes 409 | 410 | * **deps:** update kotest to v5.5.5 ([52f4ec6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/52f4ec6badf75cbe1f9783bb19eda01c835eb280)) 411 | 412 | 413 | ### Dependency updates 414 | 415 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.22 ([260702f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/260702f9cdba5050694e120d0ca3c8a64ba43c54)) 416 | * **deps:** update plugin publiconcentral to v3.2.1 ([114dd42](https://github.com/kelvindev15/Kotlin2PlantUML/commit/114dd4267eb5a3392ab7c9dae0b918c9ea529a3d)) 417 | 418 | ## [2.0.20](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.19...2.0.20) (2023-02-02) 419 | 420 | 421 | ### Bug Fixes 422 | 423 | * **deps:** update kotlin monorepo to v1.8.10 ([269dd7f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/269dd7f64a65a409e3f7a6e2bd48d2a33de20fb3)) 424 | 425 | 426 | ### Dependency updates 427 | 428 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.21 ([0a3ff6d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0a3ff6d2c3339ec2fabb9e55329aca4fad57c616)) 429 | * **deps:** update node.js to 18.14 ([bc5529b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/bc5529b98f3cee25baa8af42ea22dc022960d711)) 430 | * **deps:** update plugin kotlin-qa to v0.32.0 ([4cfbb3a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4cfbb3a9aafaff98717c7907d2938dfafc12d96c)) 431 | * **deps:** update plugin kotlin-qa to v0.33.0 ([9e55a12](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9e55a120c0406678a3aca67509f2adbade655a38)) 432 | * **deps:** update plugin publiconcentral to v3.1.1 ([98bd160](https://github.com/kelvindev15/Kotlin2PlantUML/commit/98bd1607fe3429994b4827c39b7dcbb27eb2a8e1)) 433 | * **deps:** update plugin publiconcentral to v3.2.0 ([6d64c40](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6d64c40500e8b04ad84862d15aaa411f8540d1dd)) 434 | 435 | ## [2.0.19](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.18...2.0.19) (2023-01-11) 436 | 437 | 438 | ### Bug Fixes 439 | 440 | * **deps:** update junit5 monorepo to v5.9.2 ([7a33761](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7a33761c40bfc9337a7b0c59c640ea9bcd633d80)) 441 | 442 | 443 | ### Style improvements 444 | 445 | * replace elvis operator with orEmpty call ([aa8deb1](https://github.com/kelvindev15/Kotlin2PlantUML/commit/aa8deb1e01db1f7b74f00c51ae24f9effc913ec4)) 446 | 447 | 448 | ### Dependency updates 449 | 450 | * **deps:** update actions/checkout action to v3.3.0 ([b14feae](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b14feae6c234c0a0736c0baba03564e850eeae07)) 451 | * **deps:** update danysk/action-checkout action to v0.2.5 ([dffa726](https://github.com/kelvindev15/Kotlin2PlantUML/commit/dffa726de847e34bc24528fd52a2008165ef0ecb)) 452 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.16 ([613fb2a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/613fb2abb687fd4b6d985c281651daf831d04e9d)) 453 | * **deps:** update node.js to 18.13 ([a1f4052](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a1f40524e0e70f091709bcbc2a508df51e29ccbb)) 454 | * **deps:** update plugin kotlin-qa to v0.31.0 ([db3924b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/db3924b5a25527b71eedb33be57a66e06abe39e5)) 455 | * **deps:** update plugin publiconcentral to v2.0.13 ([927b1ad](https://github.com/kelvindev15/Kotlin2PlantUML/commit/927b1adcd2e65ab43a84b951330df206455049ff)) 456 | * **deps:** update plugin publiconcentral to v3 ([695b64b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/695b64bffad9f82a24d7606b54037240d38c9079)) 457 | * **deps:** update plugin publiconcentral to v3.1.0 ([1387bf6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1387bf617ba3a630f74ff7ce66c03bc2e082b64c)) 458 | * **deps:** update plugin semanticversioning to v1 ([508b979](https://github.com/kelvindev15/Kotlin2PlantUML/commit/508b97972f75e4bda131dcfd9b8b1c7bbbabb529)) 459 | 460 | ## [2.0.18](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.17...2.0.18) (2023-01-03) 461 | 462 | 463 | ### Bug Fixes 464 | 465 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.154 ([931b89f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/931b89f3f2130809431d9381c86fb10b1e332434)) 466 | 467 | 468 | ### Dependency updates 469 | 470 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.19 ([1231d13](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1231d130196fb726508c3abe85a495125e85b684)) 471 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.20 ([28d34c6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/28d34c695eacfb602126101525ec04a5bcacce2e)) 472 | * **deps:** update kotlin monorepo to v1.8.0 ([64a67b4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/64a67b4fd003a988b6614b7adf861a7156656e56)) 473 | * **deps:** update plugin kotlin-qa to v0.29.2 ([54177e4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/54177e4e902acf473c8c3d17a96ea8745bf5f0a1)) 474 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.1 ([e218f8e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e218f8e2e6426c4db75e73a6ef18beea5f79b399)) 475 | * **deps:** update plugin publiconcentral to v2.0.12 ([9528fee](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9528fee1b61b747e1f6fd89ab237e1a96a62cc2b)) 476 | 477 | ## [2.0.17](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.16...2.0.17) (2022-12-21) 478 | 479 | 480 | ### Bug Fixes 481 | 482 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.153 ([f2a8c6c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f2a8c6c316a42de33ee2a8dc8b5073839df74031)) 483 | 484 | 485 | ### Dependency updates 486 | 487 | * **deps:** update danysk/action-checkout action to v0.2.4 ([de4779f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/de4779fc4673f598bc47e2e913822b538bdaa847)) 488 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.18 ([a92aa25](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a92aa256e16020c6b55f68fb762b2baef2be839d)) 489 | 490 | ## [2.0.16](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.15...2.0.16) (2022-12-13) 491 | 492 | 493 | ### Bug Fixes 494 | 495 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.152 ([dd135ae](https://github.com/kelvindev15/Kotlin2PlantUML/commit/dd135ae5a10ecd7c1b0f45c0e56d277b4c2e0117)) 496 | 497 | 498 | ### Dependency updates 499 | 500 | * **deps:** update actions/checkout action to v3.2.0 ([ad43e0a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ad43e0ad1b5f09ad899d9c3d02ab9977a9cb074f)) 501 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.15 ([cce6a20](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cce6a2010ee69a414db05981d2b15453d0675c31)) 502 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.16 ([6e8571c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6e8571c6bca2d28c20501d4319e56d6d091a158f)) 503 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.17 ([3b67c8e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3b67c8e1277e551aadf9364638e2579723bcba2f)) 504 | * **deps:** update dependency gradle to v7.6 ([7d0fb1d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7d0fb1dfed8c7cd44c758d169059656ed05f62d7)) 505 | * **deps:** update kotlin monorepo to v1.7.22 ([4423b56](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4423b56fb60d333ff82527f3d9b1a8a9e9faaea0)) 506 | * **deps:** update plugin kotlin-qa to v0.28.0 ([d3998c3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d3998c38112c3649cd5d31f9dcaa341a89306662)) 507 | * **deps:** update plugin kotlin-qa to v0.29.1 ([370806a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/370806af20f240aec30eef2329a0dad8b29a3f82)) 508 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.25 ([ca583da](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ca583daa9b6e8942c606ff967df9e0d057d8d6fc)) 509 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.1.0 ([d04d7fb](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d04d7fbb50ad7af1383ca31ce844655fc793ebbc)) 510 | * **deps:** update plugin publiconcentral to v2.0.11 ([db1a56a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/db1a56ac0ffe62ad7713c035cccbb5366559dc25)) 511 | 512 | ## [2.0.15](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.14...2.0.15) (2022-11-17) 513 | 514 | 515 | ### Bug Fixes 516 | 517 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.151 ([8fce51b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8fce51baf5a7293325c97e2e3ba1fb41474640b8)) 518 | 519 | ## [2.0.14](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.13...2.0.14) (2022-11-15) 520 | 521 | 522 | ### Bug Fixes 523 | 524 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.150 ([d95fd88](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d95fd88a40e20fa31e672ef50afaa1d21710572a)) 525 | 526 | 527 | ### Dependency updates 528 | 529 | * **deps:** update kotlin monorepo to v1.7.21 ([20ee080](https://github.com/kelvindev15/Kotlin2PlantUML/commit/20ee0800146720f6938f8779316643fd1c773dba)) 530 | * **deps:** update plugin kotlin-qa to v0.27.1 ([c8e03db](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c8e03db3426ef62714df291edd365f0cd292694f)) 531 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.23 ([fa35ca6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fa35ca65f60645630dd3a99aa9c3463befc8bdea)) 532 | * **deps:** update plugin publiconcentral to v2.0.9 ([9912667](https://github.com/kelvindev15/Kotlin2PlantUML/commit/99126676f3df3730b580bd91feb8ab7db0aa2c8f)) 533 | 534 | ## [2.0.13](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.12...2.0.13) (2022-11-07) 535 | 536 | 537 | ### Bug Fixes 538 | 539 | * **deps:** update kotest to v5.5.4 ([a943c0b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a943c0bf39e6dfe3a7ccab41471d86f710cd417e)) 540 | 541 | 542 | ### Dependency updates 543 | 544 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.14 ([062058e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/062058e5a8de022866fee2e2425c787f13ee71ef)) 545 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.15 ([fa7f4cf](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fa7f4cf2057d423f0585cbeb07af06a0bb77b784)) 546 | * **deps:** update plugin kotlin-qa to v0.27.0 ([f81db99](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f81db997682b5699798072c8305bcc22d24517bd)) 547 | 548 | ## [2.0.12](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.11...2.0.12) (2022-10-28) 549 | 550 | 551 | ### Bug Fixes 552 | 553 | * **deps:** update kotest to v5.5.3 ([9518f19](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9518f1937cb9f7302a2420c274dda1f7eb2e94e1)) 554 | 555 | 556 | ### Dependency updates 557 | 558 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.13 ([ff2ad90](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ff2ad9010106b9b0d15684420ea915669d952549)) 559 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.14 ([85500c3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/85500c3e025447760e19e324a7126c9a776f2c3e)) 560 | * **deps:** update node.js to 18.12 ([ebb2755](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ebb2755c91983dc764e97386ac518b4b65ab8b78)) 561 | * **deps:** update node.js to v18 ([cf9030a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cf9030a01c3ce3c100a61ac9ed50c4dd2bbf358c)) 562 | 563 | ## [2.0.11](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.10...2.0.11) (2022-10-24) 564 | 565 | 566 | ### Bug Fixes 567 | 568 | * **ci:** try using access token as environment variable ([#126](https://github.com/kelvindev15/Kotlin2PlantUML/issues/126)) ([5328e3d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5328e3df1ae7f048adcbc0eb726e79843e1e65ec)) 569 | 570 | ## [2.0.10](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.9...2.0.10) (2022-10-24) 571 | 572 | 573 | ### Bug Fixes 574 | 575 | * **deps:** update kotest to v5.5.2 ([9418094](https://github.com/kelvindev15/Kotlin2PlantUML/commit/94180948bb4d2fcdd74ff447c31c5d05231ef9b3)) 576 | 577 | 578 | ### Dependency updates 579 | 580 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.11 ([630e72c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/630e72ca8def5d2ebeb90464cfc98283f95b9d64)) 581 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.12 ([f63ea94](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f63ea94bf8d8e3fea9277ac88ff9a55956f0e406)) 582 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.12 ([4151858](https://github.com/kelvindev15/Kotlin2PlantUML/commit/41518584a7259dd0d1f7e8947b3aecd5cae614af)) 583 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.13 ([99540fe](https://github.com/kelvindev15/Kotlin2PlantUML/commit/99540fee7c19ad6595c976877a773ccf267b4b81)) 584 | * **deps:** update node.js to 16.18 ([fa4f96c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fa4f96ce11d0cdf196cb7f634150569ad7b69c1f)) 585 | * **deps:** update plugin kotlin-qa to v0.26.1 ([0e0c5b2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0e0c5b2b3492cf76b74ad7f66d7997e860bedc87)) 586 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.22 ([55c3201](https://github.com/kelvindev15/Kotlin2PlantUML/commit/55c3201e2c60498985323ea882222fcb8c261981)) 587 | * **deps:** update plugin publiconcentral to v2.0.8 ([b8d5726](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b8d5726b278120f984bbbe7b5440f0c49f67e5b1)) 588 | 589 | ## [2.0.9](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.8...2.0.9) (2022-10-11) 590 | 591 | 592 | ### Bug Fixes 593 | 594 | * ci badly :( ([7bedfa9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7bedfa906e651fcf8aeb9a5504eb692ef8149c6b)) 595 | 596 | 597 | ### General maintenance 598 | 599 | * Merge branch 'master' of github.com:kelvindev15/Kotlin2PlantUML ([9eaeb6d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9eaeb6dc31ef6cfe951c301463015ebc828d9416)) 600 | 601 | ## [2.0.8](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.7...2.0.8) (2022-10-11) 602 | 603 | 604 | ### Bug Fixes 605 | 606 | * ci badly :( ([53e7642](https://github.com/kelvindev15/Kotlin2PlantUML/commit/53e7642e8a51d123a0f497837e1290be00803222)) 607 | 608 | 609 | ### General maintenance 610 | 611 | * resolve conflict ([b9eb7c7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b9eb7c72c18fff18fc9dc5c8a36e11f2a28a018a)) 612 | 613 | ## [2.0.7](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.6...2.0.7) (2022-10-11) 614 | 615 | 616 | ### Bug Fixes 617 | 618 | * ci in an ugly way :( ([6521b80](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6521b80ad0c3d92adee10d6dabe16c180dacb5d2)) 619 | 620 | ## [2.0.6](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.5...2.0.6) (2022-10-11) 621 | 622 | 623 | ### Bug Fixes 624 | 625 | * **deps:** update kotest to v5.5.1 ([72654b1](https://github.com/kelvindev15/Kotlin2PlantUML/commit/72654b1cfcf50246dc2aca7c32ce82f1e7010cd2)) 626 | 627 | 628 | ### Dependency updates 629 | 630 | * **deps:** update actions/checkout action to v3.1.0 ([c7edfe6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c7edfe69d7018a2cabdbe4328d7373be91c9cf62)) 631 | * **deps:** update danysk/action-checkout action to v0.2.3 ([cac4d29](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cac4d2949fd37009d6cc65708cf0d8069b6fd83d)) 632 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.10 ([6d606c4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6d606c47d0904d00d414cf13365c75d915ae2669)) 633 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.8 ([5ef88ba](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5ef88bab5800e3865e06537595a18df9541a9baa)) 634 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.9 ([a31ce90](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a31ce90161cc7536f7addf362b1eda4c7ee3f0d3)) 635 | * **deps:** update kotlin to v1.7.20 ([6105ff9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6105ff92a67808c6568f07d2a0ec998a8e01c7ab)) 636 | * **deps:** update plugin dokka to v1.7.20 ([4f6fc3e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4f6fc3eb4f0a011fe2f2a42d5ba47cc51ad2fc52)) 637 | * **deps:** update plugin kotlin-qa to v0.25.1 ([9fcea62](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9fcea62fda525cba47d67e70c498a22056acd5a2)) 638 | * **deps:** update plugin kotlin-qa to v0.26.0 ([39aad90](https://github.com/kelvindev15/Kotlin2PlantUML/commit/39aad9037804c34ef0534242d8beb9de2f76e29d)) 639 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.21 ([d6a25ba](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d6a25ba64a2f4cceb69d94e195977c055a69ae9c)) 640 | 641 | 642 | ### Build and continuous integration 643 | 644 | * fix release commands ([#115](https://github.com/kelvindev15/Kotlin2PlantUML/issues/115)) ([02fb82d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/02fb82d70071258b4c3fb5738b36155343f9ebc3)) 645 | 646 | ## [2.0.5](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.4...2.0.5) (2022-09-27) 647 | 648 | 649 | ### Bug Fixes 650 | 651 | * **deps:** update junit5 monorepo to v5.9.1 ([b744561](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b744561a96c8f21ffe622e9d4ffcdd98ae93f098)) 652 | 653 | 654 | ### Build and continuous integration 655 | 656 | * fix broken publish command ([#59](https://github.com/kelvindev15/Kotlin2PlantUML/issues/59)) ([0b360e8](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0b360e82dc045f75cc2a3f5011f0eb4962b4267d)) 657 | 658 | 659 | ### General maintenance 660 | 661 | * **release:** 2.0.5 [skip ci] ([d3c4ed2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d3c4ed20e050927a6bdbe2f6d370c1d3e91aed62)), closes [#59](https://github.com/kelvindev15/Kotlin2PlantUML/issues/59) [#70](https://github.com/kelvindev15/Kotlin2PlantUML/issues/70) 662 | 663 | 664 | ### Dependency updates 665 | 666 | * **deps:** update danysk/action-checkout action to v0.2.2 ([2d960f2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2d960f2fd2347dd05d1c234f0b6eaf4b106f6e02)) 667 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.4 ([8398a8f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8398a8f0aafb46aa8af518d4fc4e46663286ef0f)) 668 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.5 ([f9d8a58](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f9d8a586428783b35238e5df61a8c6ccf383ab6c)) 669 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.6 ([fb793cc](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fb793cc9623a2a9232b628e136902ffc1a9407e1)) 670 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.7 ([634b7d5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/634b7d5f781c5d418e0f4e08540270cce86a4c5e)) 671 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.10 ([321069f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/321069f7e93a5923fc7d83f23057235d0da60fd5)) 672 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.11 ([1272424](https://github.com/kelvindev15/Kotlin2PlantUML/commit/12724249fc7cecb0e6b972338998bebf0179a14c)) 673 | * **deps:** update node.js to 16.17 ([f916eb3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f916eb30c59a0a978ea2e6f60cc830648a9b4713)) 674 | * **deps:** update plugin dokka to v1.7.10 ([04e0990](https://github.com/kelvindev15/Kotlin2PlantUML/commit/04e099021da334feed534fb424014c95b9225a48)) 675 | * **deps:** update plugin dokka to v1.7.10 ([#70](https://github.com/kelvindev15/Kotlin2PlantUML/issues/70)) ([2b0366d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2b0366d1069103f3791b2fa7751f9629fd2335cc)) 676 | * **deps:** update plugin kotlin-qa to v0.24.0 ([faca9cb](https://github.com/kelvindev15/Kotlin2PlantUML/commit/faca9cbc0f11daaefcd71730a237226bf9daf84d)) 677 | * **deps:** update plugin kotlin-qa to v0.25.0 ([7bc88dc](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7bc88dc021979c60d9efb5ba92c5b1a4329f44e7)) 678 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.20 ([eef92ae](https://github.com/kelvindev15/Kotlin2PlantUML/commit/eef92ae407286ff6f87734985b1cb1f8e0af4564)) 679 | 680 | ## [2.0.5](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.4...2.0.5) (2022-09-21) 681 | 682 | 683 | ### Bug Fixes 684 | 685 | * **deps:** update junit5 monorepo to v5.9.1 ([b744561](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b744561a96c8f21ffe622e9d4ffcdd98ae93f098)) 686 | 687 | 688 | ### Build and continuous integration 689 | 690 | * fix broken publish command ([#59](https://github.com/kelvindev15/Kotlin2PlantUML/issues/59)) ([0b360e8](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0b360e82dc045f75cc2a3f5011f0eb4962b4267d)) 691 | 692 | 693 | ### Dependency updates 694 | 695 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.4 ([8398a8f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8398a8f0aafb46aa8af518d4fc4e46663286ef0f)) 696 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.5 ([f9d8a58](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f9d8a586428783b35238e5df61a8c6ccf383ab6c)) 697 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.6 ([fb793cc](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fb793cc9623a2a9232b628e136902ffc1a9407e1)) 698 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.7 ([634b7d5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/634b7d5f781c5d418e0f4e08540270cce86a4c5e)) 699 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.10 ([321069f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/321069f7e93a5923fc7d83f23057235d0da60fd5)) 700 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.11 ([1272424](https://github.com/kelvindev15/Kotlin2PlantUML/commit/12724249fc7cecb0e6b972338998bebf0179a14c)) 701 | * **deps:** update node.js to 16.17 ([f916eb3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f916eb30c59a0a978ea2e6f60cc830648a9b4713)) 702 | * **deps:** update plugin dokka to v1.7.10 ([04e0990](https://github.com/kelvindev15/Kotlin2PlantUML/commit/04e099021da334feed534fb424014c95b9225a48)) 703 | * **deps:** update plugin dokka to v1.7.10 ([#70](https://github.com/kelvindev15/Kotlin2PlantUML/issues/70)) ([2b0366d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2b0366d1069103f3791b2fa7751f9629fd2335cc)) 704 | * **deps:** update plugin kotlin-qa to v0.24.0 ([faca9cb](https://github.com/kelvindev15/Kotlin2PlantUML/commit/faca9cbc0f11daaefcd71730a237226bf9daf84d)) 705 | * **deps:** update plugin kotlin-qa to v0.25.0 ([7bc88dc](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7bc88dc021979c60d9efb5ba92c5b1a4329f44e7)) 706 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.20 ([eef92ae](https://github.com/kelvindev15/Kotlin2PlantUML/commit/eef92ae407286ff6f87734985b1cb1f8e0af4564)) 707 | 708 | ## [2.0.4](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.3...2.0.4) (2022-08-11) 709 | 710 | 711 | ### Bug Fixes 712 | 713 | * **deps:** update kotest to v5.4.2 ([8a60fef](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8a60fef9d361805a247daf1c82269547640c345d)) 714 | 715 | 716 | ### Dependency updates 717 | 718 | * **deps:** update dependency gradle to v7.5.1 ([caa3689](https://github.com/kelvindev15/Kotlin2PlantUML/commit/caa3689fbe4bc63ac873a4ba31a5f167ca040452)) 719 | * **deps:** update plugin kotlin-qa to v0.22.2 ([c7edb4d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c7edb4dc17eb02ecd07030e098261e52ef837cff)) 720 | * **deps:** update plugin kotlin-qa to v0.23.1 ([afabce0](https://github.com/kelvindev15/Kotlin2PlantUML/commit/afabce05488fd0558691644cc5ac67ce4c027a37)) 721 | * **deps:** update plugin kotlin-qa to v0.23.2 ([e15de49](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e15de49040851ea9a3d46c4737b432359afb8ac5)) 722 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.19 ([beb1c3a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/beb1c3a16510aaa3c5f81b3b464ccef5ba4a0203)) 723 | 724 | ## [2.0.3](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.2...2.0.3) (2022-07-28) 725 | 726 | 727 | ### Bug Fixes 728 | 729 | * **deps:** update kotest to v5.4.1 ([043679f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/043679f1c88f1dea5e607c4ccb934cc4276758c9)) 730 | 731 | 732 | ### Dependency updates 733 | 734 | * **deps:** update plugin kotlin-qa to v0.22.1 ([f3b4eae](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f3b4eae0ea4a6d83be2a4939073b127ee91d32b1)) 735 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.18 ([b8da64e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b8da64ee272177eae3caa9d8df70567e638acfed)) 736 | 737 | ## [2.0.2](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.1...2.0.2) (2022-07-27) 738 | 739 | 740 | ### Bug Fixes 741 | 742 | * **deps:** update junit5 monorepo to v5.9.0 ([e5d7423](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e5d7423b72ad1b039c7dc4066983cc27bf9e8649)) 743 | 744 | 745 | ### General maintenance 746 | 747 | * **readme:** add CI badge ([3d676aa](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3d676aa900280d33e82b87154d37bfaad4cce0f3)) 748 | * **readme:** add javadoc reference ([5b8124a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5b8124a199dd7a0f4ba01dc123e7577a57a95ad9)) 749 | 750 | 751 | ### Dependency updates 752 | 753 | * **deps:** update danysk/build-check-deploy-gradle-action action to v1.2.15 ([6c2c405](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6c2c4054fb4cda3d04c8b00c85592b029bd87c3d)) 754 | * **deps:** update danysk/build-check-deploy-gradle-action action to v1.2.16 ([46451df](https://github.com/kelvindev15/Kotlin2PlantUML/commit/46451dfd4034f3791851c265e2ae389e208394ec)) 755 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2 ([08a1d1d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/08a1d1d0e727ecd17e5b05bb82230fe5dde34dc0)) 756 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.0.1 ([c117ba7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c117ba77685afbbaad99739c41aef6a01df3e562)) 757 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.0.2 ([5f505d6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5f505d6c0496b2746f8711fcec5561c46746c48b)) 758 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.0 ([16c3c28](https://github.com/kelvindev15/Kotlin2PlantUML/commit/16c3c28a8c3e923e58e34bd3e3296871e210c42a)) 759 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.1 ([68f5607](https://github.com/kelvindev15/Kotlin2PlantUML/commit/68f560704dfd90298f3367fbc85b9c83e62dfa40)) 760 | * **deps:** update danysk/build-check-deploy-gradle-action action to v2.1.2 ([692c831](https://github.com/kelvindev15/Kotlin2PlantUML/commit/692c831e1bd774b64ab5bbfa5c02d42c923b2c44)) 761 | * **deps:** update dependency gradle to v7.5 ([aff56ef](https://github.com/kelvindev15/Kotlin2PlantUML/commit/aff56efb07daa54e0c06d293a343174b149f5946)) 762 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.147 ([3e3f734](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3e3f73457ca147b1535e072eba61e70f08e36aca)) 763 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.148 ([a868239](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a868239cf660d285efb4331030c556dc2fd131d4)) 764 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.149 ([89c2bee](https://github.com/kelvindev15/Kotlin2PlantUML/commit/89c2bee308daa9db313471bf733f02fe8b60984a)) 765 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.7 ([eabf13b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/eabf13bd11ee9801b35f81e819e33c48abb3fbf1)) 766 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.8 ([4e8276f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4e8276f868530aea112c8e1ce7928d43f4c91713)) 767 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.9 ([a94af59](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a94af597dbfeb5a1b733224d9cce988b508d3c15)) 768 | * **deps:** update kotest to v5.3.1 ([2e73c38](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2e73c3871c9435a44ad3a2b05c84e9564858e111)) 769 | * **deps:** update kotest to v5.3.2 ([1e0e857](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1e0e8570e3f5867ea23ac4c317d50e42fe5a63f9)) 770 | * **deps:** update kotest to v5.4.0 ([8498b59](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8498b590a16359f824535cdd7984c91f8946f55e)) 771 | * **deps:** update kotlin to v1.7.0 ([78e7c04](https://github.com/kelvindev15/Kotlin2PlantUML/commit/78e7c046ac044a8be56980c2be35fb2ede8cd8b0)) 772 | * **deps:** update kotlin to v1.7.10 ([47453de](https://github.com/kelvindev15/Kotlin2PlantUML/commit/47453de8bd4bb35aa7c5e6ec09f9ab3e22445a9b)) 773 | * **deps:** update node.js to 16.16 ([a8cc2f4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a8cc2f44835cada9584de097a8bd4fdec5ee1774)) 774 | * **deps:** update plugin dokka to v1.7.0 ([177eb25](https://github.com/kelvindev15/Kotlin2PlantUML/commit/177eb25124fd78c903c3b3cceee8f4a8dbf29a2e)) 775 | * **deps:** update plugin kotlin-qa to v0.18.0 ([44283f8](https://github.com/kelvindev15/Kotlin2PlantUML/commit/44283f8ebdc068badcee18367d2c82619eac1aed)) 776 | * **deps:** update plugin kotlin-qa to v0.19.0 ([b3ea91a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b3ea91a28d8dad875aa03a951781bfa550640ed8)) 777 | * **deps:** update plugin kotlin-qa to v0.19.1 ([392f5d0](https://github.com/kelvindev15/Kotlin2PlantUML/commit/392f5d0a16beb844e91ba225bc494ea497dc7acc)) 778 | * **deps:** update plugin kotlin-qa to v0.20.3 ([d2d2faf](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d2d2faf05d415dab6988b671bc027c01b5d7b892)) 779 | * **deps:** update plugin kotlin-qa to v0.20.4 ([0217158](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0217158d7bcc3fe2e4e101b2febc2c3d5dcecf9a)) 780 | * **deps:** update plugin kotlin-qa to v0.21.0 ([4e83a96](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4e83a96a701369d2c8066ad6693b98d1f4eee6d5)) 781 | * **deps:** update plugin kotlin-qa to v0.22.0 ([91070d5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/91070d5d5c5c68b1605156acfe7d8296c068b5f4)) 782 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.11 ([5778e46](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5778e4639397a154a9d73dd45766e86e505497ac)) 783 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.12 ([c5a64ca](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c5a64ca159c7efc4a0cf28a69b57649c57bb9559)) 784 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.14 ([88b9d03](https://github.com/kelvindev15/Kotlin2PlantUML/commit/88b9d0309333e2d22a4bae87468065d842b4b436)) 785 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.15 ([b54e33c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b54e33c9cfc2348a7dcbe3ab67669573f97aa225)) 786 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.16 ([457a382](https://github.com/kelvindev15/Kotlin2PlantUML/commit/457a38241c4426fbb80139b23312fbfa0db77125)) 787 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.17 ([296b4e6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/296b4e6d6eb1ddeca567ee54c73dee3800a7091d)) 788 | * **deps:** update plugin publiconcentral to v0.8.0 ([fd11a2e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fd11a2e8715d6ce9333e72bfdb34aef33c8113aa)) 789 | * **deps:** update plugin publiconcentral to v0.8.2 ([a8991d0](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a8991d046099413c8e27dd836f3590cd5cbf6042)) 790 | * **deps:** update plugin publiconcentral to v0.8.3 ([e49f02f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e49f02ff29b4d76506ca831333ff0ac927afc1ac)) 791 | 792 | ### [2.0.1](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.0...2.0.1) (2022-05-03) 793 | 794 | 795 | ### Bug Fixes 796 | 797 | * **library:** resolved issue [#36](https://github.com/kelvindev15/Kotlin2PlantUML/issues/36) on setting the output file in the current directory ([b8afc4e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b8afc4eb2c25576da5b4ef59f5d40cb4a0f958b5)) 798 | 799 | 800 | ### Refactoring 801 | 802 | * **readme:** add link to latest executable jar file ([11962c4](https://github.com/kelvindev15/Kotlin2PlantUML/commit/11962c496842ae30a423aa740e833c47c854fac0)) 803 | * **readme:** fix link to jar file ([9c0fe9a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9c0fe9ae0900f75a021467a607276137d286cec2)) 804 | 805 | 806 | ### Dependency updates 807 | 808 | * **deps:** update actions/checkout action to v3.0.2 ([c57f093](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c57f093e22914700c804b84e4371856f00a0a422)) 809 | * **deps:** update danysk/build-check-deploy-gradle-action action to v1.2.13 ([fb98ad8](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fb98ad89411c91c5c734f03f631a9d1ac07bc81d)) 810 | * **deps:** update danysk/build-check-deploy-gradle-action action to v1.2.14 ([ff2cfa1](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ff2cfa10b3f34a27b57248b884995ac593101a5d)) 811 | * **deps:** update dependency semantic-release-preconfigured-conventional-commits to v1.1.6 ([c9081ea](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c9081eafcc9cda361fac7df35cc5f436bef7f047)) 812 | * **deps:** update io.kotest to v5.3.0 ([fa26e87](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fa26e8733e9b0b25330ab3329d209b6ebbfa15db)) 813 | * **deps:** update node.js to 16.15 ([233d03b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/233d03bce579767d52adb68201cd333432cf5103)) 814 | * **deps:** update plugin dokka to v1.6.21 ([7eefdbf](https://github.com/kelvindev15/Kotlin2PlantUML/commit/7eefdbf18bf5f17d1c0a2a2536cdc3b52a15b00e)) 815 | * **deps:** update plugin kotlin-qa to v0.16.1 ([eca68a9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/eca68a9ba4336ba38586e90dac9475e50410759c)) 816 | * **deps:** update plugin kotlin-qa to v0.16.2 ([786a1fa](https://github.com/kelvindev15/Kotlin2PlantUML/commit/786a1fa6818022deac5f5dfa37b8c640787f27a2)) 817 | * **deps:** update plugin kotlin-qa to v0.17.0 ([ff5a61f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ff5a61f3c2f24aab4c0f002edfd46939da4cb968)) 818 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.10 ([eaa5906](https://github.com/kelvindev15/Kotlin2PlantUML/commit/eaa59064d96ab5c16392bac922f06f9518d65be0)) 819 | * **deps:** update plugin org.danilopianini.gradle-pre-commit-git-hooks to v1.0.9 ([ede17e3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ede17e34c9b2050944160fc214eccffa1a825e15)) 820 | * **deps:** update plugin publiconcentral to v0.7.18 ([5b19569](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5b1956963e6b6440bdcf1d9acffbee9484fd1618)) 821 | * **deps:** update plugin publiconcentral to v0.7.19 ([997c97c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/997c97c07689e55af596dbcffea73c2837b6b6be)) 822 | 823 | ## [2.0.0](https://github.com/kelvindev15/Kotlin2PlantUML/compare/1.0.0...2.0.0) (2022-04-21) 824 | 825 | 826 | ### ⚠ BREAKING CHANGES 827 | 828 | * cheat commit to trigger a new version release 829 | 830 | ### Bug Fixes 831 | 832 | * **actions:** don't specify version explicitly ([799b339](https://github.com/kelvindev15/Kotlin2PlantUML/commit/799b3393da850fe33dee8336664c8e79ee0ccc57)) 833 | * **actions:** override maven username ([4661aa7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4661aa7aafd0cc883704dcd451a4abe6647e9fc5)) 834 | * **actions:** set concurrency constraint in release ([e3bbdf5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e3bbdf53107dc577fc39658ec3e9bcff41adb6f4)) 835 | * **ci:** directly write username in build file ([785781e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/785781ecd33e72737ff4dd78892658d39f166e88)) 836 | * **ci:** write github username ([6c372c6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6c372c620fa2e359faa7bebdbf70d010e1da4c4b)) 837 | * trigger a new release ([f8b7535](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f8b75356020a105e755a03300efcaae8e8be5ca3)) 838 | 839 | 840 | ### Refactoring 841 | 842 | * cheat commit to trigger a new version release ([4772ace](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4772ace8ea0742d27bc8c85b1f438044128df21b)) 843 | * move dependencies to toml file ([a489a7e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a489a7e9a3903371a539aa1806ce992d9ce35bb8)) 844 | 845 | 846 | ### General maintenance 847 | 848 | * **build:** add semantic versioning and conventional commit git hook ([f670d24](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f670d2482dd774655303050fc2189e4d06ccb335)) 849 | * merge origin ([d5c2e15](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d5c2e15c9bc1b2feb0afb3daa9e2ec339b24f645)) 850 | * **release:** 2.0.0 [skip ci] ([87d10ee](https://github.com/kelvindev15/Kotlin2PlantUML/commit/87d10ee6ffaeddc0cce53a531bf0f74874f1167a)) 851 | * **release:** 2.0.1 [skip ci] ([9276aca](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9276aca58a4107f93c2d74a49ae8c161a6756a15)) 852 | * **release:** 2.0.2 [skip ci] ([4c54680](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4c54680e4eb093eea34fbd88173919d31c419399)) 853 | * **release:** 2.0.3 [skip ci] ([45fbdbf](https://github.com/kelvindev15/Kotlin2PlantUML/commit/45fbdbfc7f89be5fb48298fb5dd1a0603ab3e80d)) 854 | * **release:** 2.0.4 [skip ci] ([1d27ad6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1d27ad6155e30ac6b4371ec5b00263c14969c9c7)) 855 | 856 | 857 | ### Dependency updates 858 | 859 | * **deps:** update plugin kotlin-jvm to v1.6.21 ([61600dd](https://github.com/kelvindev15/Kotlin2PlantUML/commit/61600dd37dae783fbd4470ccb01a83071ea37617)) 860 | 861 | ### [2.0.4](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.3...2.0.4) (2022-04-16) 862 | 863 | 864 | ### Bug Fixes 865 | 866 | * **ci:** directly write username in build file ([785781e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/785781ecd33e72737ff4dd78892658d39f166e88)) 867 | * **ci:** write github username ([6c372c6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6c372c620fa2e359faa7bebdbf70d010e1da4c4b)) 868 | 869 | ### [2.0.3](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.2...2.0.3) (2022-04-16) 870 | 871 | 872 | ### Bug Fixes 873 | 874 | * **actions:** don't specify version explicitly ([799b339](https://github.com/kelvindev15/Kotlin2PlantUML/commit/799b3393da850fe33dee8336664c8e79ee0ccc57)) 875 | 876 | ### [2.0.2](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.1...2.0.2) (2022-04-16) 877 | 878 | 879 | ### Bug Fixes 880 | 881 | * **actions:** set concurrency constraint in release ([e3bbdf5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e3bbdf53107dc577fc39658ec3e9bcff41adb6f4)) 882 | 883 | ### [2.0.1](https://github.com/kelvindev15/Kotlin2PlantUML/compare/2.0.0...2.0.1) (2022-04-16) 884 | 885 | 886 | ### Bug Fixes 887 | 888 | * **actions:** override maven username ([4661aa7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4661aa7aafd0cc883704dcd451a4abe6647e9fc5)) 889 | 890 | ## [2.0.0](https://github.com/kelvindev15/Kotlin2PlantUML/compare/1.0.0...2.0.0) (2022-04-16) 891 | 892 | 893 | ### ⚠ BREAKING CHANGES 894 | 895 | * cheat commit to trigger a new version release 896 | 897 | ### Refactoring 898 | 899 | * cheat commit to trigger a new version release ([4772ace](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4772ace8ea0742d27bc8c85b1f438044128df21b)) 900 | 901 | 902 | ### General maintenance 903 | 904 | * merge origin ([d5c2e15](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d5c2e15c9bc1b2feb0afb3daa9e2ec339b24f645)) 905 | 906 | ## 1.0.0 (2022-04-16) 907 | 908 | 909 | ### Features 910 | 911 | * **api:** now user can specify packages were subclasses should be looked ([2441f1b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2441f1b30b6d278eb1616dc387b9a471a7ad4645)) 912 | * use apache commons cli ([42524d8](https://github.com/kelvindev15/Kotlin2PlantUML/commit/42524d8434e77fce01bb4fb250f96b518eb31435)) 913 | 914 | 915 | ### Bug Fixes 916 | 917 | * **actions:** run codecov only on linux ([4c5cf79](https://github.com/kelvindev15/Kotlin2PlantUML/commit/4c5cf79199e9a796ab7b25dac422606b378e1959)) 918 | * filter only subclasses when adding edges ([a8b4159](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a8b4159740399da5a47bee700d1be5d68213e1d5)) 919 | * fix method return type display, temporarly add alchemist dependency ([f2f42b7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/f2f42b745806fdddd1b08c8dd3425711cac633cd)) 920 | * remove unused import ([b94edf5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b94edf51358a155e288ec4ef8b6db2bb7f3a6fb9)) 921 | * update gradlew permissions ([6a98096](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6a98096a8a38d9b140d8753078187410d9f6e0c3)) 922 | 923 | 924 | ### Tests 925 | 926 | * fix regression test files ([0196237](https://github.com/kelvindev15/Kotlin2PlantUML/commit/0196237f42cb69e0cb443e42638c318e9489fe56)) 927 | 928 | 929 | ### Refactoring 930 | 931 | * **actions:** add workflow_dispacth ([8c93e7a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/8c93e7a42061f8842b07fefa6c1ae0bcde80e23c)) 932 | * **actions:** ommit clean command ([101dc84](https://github.com/kelvindev15/Kotlin2PlantUML/commit/101dc8486e31c919e2cfe7d1254d25c9ff3ca1ad)) 933 | * **actions:** remove tag ([e7215f9](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e7215f96089a3aa39c8682197c3fabd8bbcddb1a)) 934 | * **actions:** remove useless runs ([195d3f7](https://github.com/kelvindev15/Kotlin2PlantUML/commit/195d3f7c87476f101a28f538835f4963daf308f7)) 935 | * **actions:** try removing workflow_dispacth ([5e58db2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5e58db2fa6101bd49a6f456b9dd82ac24d3a2c2f)) 936 | * **actions:** write true as literal ([fa86556](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fa865564a51f054da9a3869ad37410316c0bce78)) 937 | * add temp val ([2454cb3](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2454cb35e192679f198ee43c08e767d6d1b8fbe4)) 938 | * remove space ([2addabc](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2addabca1a26af5aa441e1e939a5daabebe118e2)) 939 | * remove useless condition ([cc92cff](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cc92cff36edfac2bcbe6cc955f0fa56a1179f23b)) 940 | * set signing always ([a7d6844](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a7d6844f175981ea849edb2edb76c580bf0e57c1)) 941 | * use toml libs ([406d1b5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/406d1b5a75163e43fab18c7afd119379479faec1)) 942 | 943 | 944 | ### General maintenance 945 | 946 | * **actions:** add release ([ad26871](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ad26871a3226c608a7c330f34f1d32d0a53b9c0b)) 947 | * **actions:** remove release ([e6e3e16](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e6e3e162a9eb80774c4c69136af40401e9c2b941)) 948 | * **actions:** update build-check-deploy-gradle-action to 1.2.9 ([9a82250](https://github.com/kelvindev15/Kotlin2PlantUML/commit/9a8225088b0d0c4646d88ebd8603dfbdc16789b6)) 949 | * add CI ([aa36f77](https://github.com/kelvindev15/Kotlin2PlantUML/commit/aa36f77185d54ca812e12407e242941fa6f659dd)) 950 | * add license ([13f3c6f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/13f3c6f24333b19cb32a1262bc7974adaad92b9f)) 951 | * add project files ([fae63e6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/fae63e66fa9831b79a56a81ffd2c1a14df33bab9)) 952 | * add toml file for later work ([ed2a533](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ed2a5335fb19bd9ca7b46bdddd928f0318574b0d)) 953 | * fix detekt warnings ([526b186](https://github.com/kelvindev15/Kotlin2PlantUML/commit/526b186d4be4878e5c9f9ded7ff81979161085c1)) 954 | * merge cli branch ([e1dcb9a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e1dcb9abfe5ea1fad6004a3f02d3fa04b04103e0)) 955 | * refactor gradle build file ([12c6f97](https://github.com/kelvindev15/Kotlin2PlantUML/commit/12c6f9717c3b330eb2e3893fc527964dd437b54d)) 956 | * remove test-shadowjar from actions ([bcc7fe5](https://github.com/kelvindev15/Kotlin2PlantUML/commit/bcc7fe5939a41a4db3a552aa97cb19d6ee9e3b10)) 957 | * set version to 1.0.0 ([a3a012c](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a3a012cf7846d1fe19d77574cee15c71734314be)) 958 | * start using renovate ([c2f67f6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c2f67f60af7b4c7aa5d441f68ac534c824352ece)) 959 | * update README ([e14d398](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e14d39844e6d4a81632fc0d7730eab3cf082d7c1)) 960 | 961 | 962 | ### Dependency updates 963 | 964 | * **deps:** add renovate.json ([1d526fd](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1d526fd0f073cadf0265b0d3f8575b41c7ada4d5)) 965 | * **deps:** update danysk/build-check-deploy-gradle-action action to v1.2.12 ([34c73ab](https://github.com/kelvindev15/Kotlin2PlantUML/commit/34c73ab24133bd86e18f09b59f06e36877cb036d)) 966 | * **deps:** update danysk/build-check-deploy-gradle-action action to v1.2.12 ([e2191cd](https://github.com/kelvindev15/Kotlin2PlantUML/commit/e2191cd4ee565744df9efcad8e08ba0148f219b9)) 967 | * **deps:** update dependency gradle to v7.4.2 ([5f21f36](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5f21f3662a16da5c9a86236a2a1cd81b8aaa098b)) 968 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.145 ([c925897](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c9258978b3b68eed0264172922ee2f09e62321df)) 969 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.145 ([c0ac40d](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c0ac40da0ba1dff16492f73de7e3db5e43c4c1b9)) 970 | * **deps:** update dependency io.github.classgraph:classgraph to v4.8.146 ([2d26739](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2d267391371df65e13b96a8cdb2fcbfdbe7b93ed)) 971 | * **deps:** update dependency org.jetbrains.kotlin:kotlin-reflect to v1.6.20 ([c59e596](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c59e59613cc789cec5e03768e1310909a95e3f22)) 972 | * **deps:** update dependency org.jetbrains.kotlin:kotlin-reflect to v1.6.20 ([6bf76e2](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6bf76e22c2f753cbcf47dad03aa6bd2103a527e1)) 973 | * **deps:** update it.unibo.alchemist to v17 ([86f7524](https://github.com/kelvindev15/Kotlin2PlantUML/commit/86f7524333b45e8a86f3bd6ecd7c0e720d5dac8c)) 974 | * **deps:** update it.unibo.alchemist to v17.0.2 ([13ee34e](https://github.com/kelvindev15/Kotlin2PlantUML/commit/13ee34efd001f79021a062bf21321cb4e0f0d5b1)) 975 | * **deps:** update kotestversion to v5.2.3 ([6e5f52f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/6e5f52ff7a18d28a183f65cdbd58a6ec3dfe6100)) 976 | * **deps:** update plugin org.danilopianini.gradle-kotlin-qa to v0.16.0 ([a59933f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/a59933fdfabe9ad9f088fea4b9945aeff5802c32)) 977 | * **deps:** update plugin org.danilopianini.gradle-kotlin-qa to v0.16.0 ([03a1124](https://github.com/kelvindev15/Kotlin2PlantUML/commit/03a1124e6f76fea03a3adee1ac9944050d44312c)) 978 | * **deps:** update plugin org.danilopianini.publish-on-central to v0.7.17 ([b24981f](https://github.com/kelvindev15/Kotlin2PlantUML/commit/b24981faed95722521e537478d93cbc963c28816)) 979 | * **deps:** update plugin org.jetbrains.dokka to v1.6.20 ([63cf7ab](https://github.com/kelvindev15/Kotlin2PlantUML/commit/63cf7ab2c9d81aeb91e08f4bc4aad2d2bf72998a)) 980 | * **deps:** update plugin org.jetbrains.kotlin.jvm to v1.6.20 ([d1ca44b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/d1ca44b1a56b75d9685647ece898bcc202d9f339)) 981 | 982 | 983 | ### Build and continuous integration 984 | 985 | * **actions:** add deploy job ([ef47966](https://github.com/kelvindev15/Kotlin2PlantUML/commit/ef4796668036bbb7e9ac84d675b315cb5ba93d52)) 986 | * **actions:** add test runs ([c8349df](https://github.com/kelvindev15/Kotlin2PlantUML/commit/c8349df963804bc3307f7e5e2dc9956436215e91)) 987 | * **actions:** add test runs ([2ab5f2a](https://github.com/kelvindev15/Kotlin2PlantUML/commit/2ab5f2a0372bbca38d5cc5ece13be5bdb08952d4)) 988 | * **actions:** hopefully signing works ([5618a38](https://github.com/kelvindev15/Kotlin2PlantUML/commit/5618a38d78011355a22711721d464d7969f11f20)) 989 | * add package.json ([cf77646](https://github.com/kelvindev15/Kotlin2PlantUML/commit/cf776462c08d0f5fa5519300f24d6633f579f380)) 990 | * add release config ([1b8809b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/1b8809b8f6cfde02fa4b56888c368424fbeeb9cb)) 991 | * add release job ([af5991b](https://github.com/kelvindev15/Kotlin2PlantUML/commit/af5991b9462416ed68ab646f40ee58bdab5fb924)) 992 | * use github token ([3a918f6](https://github.com/kelvindev15/Kotlin2PlantUML/commit/3a918f62818e750de65b6a67fc5c2d8fc8b4d7be)) 993 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2023 Kelvin Olaiya 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Kotlin2PlantUML 2 | 3 | This library allows you to obtain a plantuml class diagram directly from your Kotlin (and Java) 4 | code base. You can either generate a simple class uml representation or the hierarchy of a root class. 5 | 6 | [![javadoc](https://javadoc.io/badge2/io.github.kelvindev15/Kotlin2PlantUML/javadoc.svg)](https://javadoc.io/doc/io.github.kelvindev15/Kotlin2PlantUML) 7 | ![CI](https://github.com/Kelvindev15/Kotlin2PlantUML/actions/workflows/built_and_test.yml/badge.svg) 8 | 9 | ## Usage 10 | 11 | ### Command line 12 | 13 | --------------------------------------------------- 14 | One way to generate a PlantUML class diagram is by executing 15 | the [jar file](https://github.com/kelvindev15/Kotlin2PlantUML/releases/latest/download/kotlin2plantuml.jar). 16 | Arguments can be passed with the following structure: 17 | 18 | ```bash 19 | java -jar kotlin2plantuml.jar fullyQualifiedClass [...options] 20 | ``` 21 | At least one argument must be passed. The first argument must be a ***fully qualified*** 22 | class name, otherwise an error will be thrown. 23 | 24 | > ***Note***: The library uses the system ClassLoader to load classes thus only classes available in the 25 | > run time classpath will be found. Running the library via jar may require that you also set it's 26 | > classpath. 27 | 28 | --------------------------------------------------- 29 | #### Options: 30 | 31 | --------------------------------------------------- 32 | To understand which options can be passed you can run 33 | ```bash 34 | java -jar kotlin2plantuml.jar --help 35 | ``` 36 | Here's the output of the ***help*** command: 37 | ```text 38 | usage: java -jar kotlin2plantuml.jar full.class.name [...options] 39 | -cp,--classpath ':' separated paths (for classpath) 40 | -fv,--field-visibility Max. field visibility (0=Public, 41 | 1=Protected, 2=Internal, 3=Private) 42 | -h,--help Display this message 43 | -hf,--hide-fields Hide fields on classes 44 | -hm,--hide-methods Hide methods on classes 45 | -hr,--hide-relationships Hide relationships between classes 46 | -mv,--method-visibility Max. method visibility (0=Public, 47 | 1=Protected, 2=Internal, 3=Private) 48 | -o,--output Output file path 49 | -p,--packages ':' separated packages (for subclasses) 50 | -r,--recurse Visit class class hierarchy 51 | ``` 52 | 53 | Based on the passed arguments a `Configuration` will be created 54 | to customize the output. 55 | 56 | ### Example 57 | ```bash 58 | java -jar kotlin2plantuml.jar my.fully.qualified.Class --packages look.here:and.also.here --recurse 59 | ``` 60 | 61 | By default, the plantUml output file will be placed in *build/reports/* named *diagram.plantuml*. 62 | You can change this by setting the output file with the `--output` option: 63 | ```bash 64 | java -jar kotlin2plantuml.jar my.fully.qualified.Class --output ./path/to/file.plantuml 65 | ``` 66 | 67 | ### Import into a Gradle project 68 | 69 | Another possibility is to import the library into a gradle project. 70 | Just add this to your build file: 71 | ```kotlin 72 | implementation("io.github.kelvindev15:Kotlin2PlantUML:") 73 | ``` 74 | and you're good to go. Now you can freely use the library API. Here's an example: 75 | 76 | ```kotlin 77 | val myPlantUML = ClassDiagram( 78 | MyRootClass::class, 79 | configuration = Configuration(recurse = true) 80 | ).plantUml() 81 | ``` 82 | 83 | ### Reference 84 | 85 | * [Javadoc](https://javadoc.io/doc/io.github.kelvindev15/Kotlin2PlantUML/latest/index.html) 86 | 87 | -------------------------------------------------------------------------------- /build.gradle.kts: -------------------------------------------------------------------------------- 1 | import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar 2 | 3 | plugins { 4 | alias(libs.plugins.kotlin.jvm) 5 | alias(libs.plugins.kotlin.qa) 6 | alias(libs.plugins.publicOnCentral) 7 | alias(libs.plugins.dokka) 8 | alias(libs.plugins.shadowJar) 9 | alias(libs.plugins.semanticVersioning) 10 | java 11 | application 12 | } 13 | 14 | group = "io.github.kelvindev15" 15 | 16 | application { 17 | mainClass.set("$group.kotlin2plantuml.MainKt") 18 | } 19 | 20 | repositories { 21 | mavenCentral() 22 | maven { 23 | url = uri("https://oss.sonatype.org/content/repositories/snapshots") 24 | content { 25 | includeGroup("no.tornado") 26 | } 27 | } 28 | } 29 | 30 | dependencies { 31 | implementation(libs.bundles.kotlin) 32 | api(libs.jGraph) 33 | api(libs.classgraph) 34 | implementation(libs.common.cli) 35 | 36 | // Test 37 | testImplementation(libs.bundles.kotest) 38 | testImplementation(libs.junit.jupiter.api) 39 | testRuntimeOnly(libs.junit.jupiter.engine) 40 | } 41 | 42 | val githubUser = "Kelvindev15" 43 | 44 | if (System.getenv("CI") == true.toString()) { 45 | signing { 46 | val signingKey: String? by project 47 | val signingPassword: String? by project 48 | useInMemoryPgpKeys(signingKey, signingPassword) 49 | } 50 | } 51 | 52 | gitSemVer { 53 | minimumVersion.set("0.1.0") 54 | developmentIdentifier.set("dev") 55 | noTagIdentifier.set("archeo") 56 | fullHash.set(false) // set to true if you want to use the full git hash 57 | maxVersionLength.set(Int.MAX_VALUE) // Useful to limit the maximum version length, e.g. Gradle Plugins have a limit on 20 58 | developmentCounterLength.set(2) // How many digits after `dev` 59 | enforceSemanticVersioning.set(true) // Whether the plugin should stop if the resulting version is not a valid SemVer, or just warn 60 | preReleaseSeparator.set("-") 61 | buildMetadataSeparator.set("+") 62 | distanceCounterRadix.set(36) // The radix for the commit-distance counter. Must be in the 2-36 range. 63 | versionPrefix.set("") 64 | assignGitSemanticVersion() 65 | } 66 | 67 | publishOnCentral { 68 | configureMavenCentral.set(true) 69 | projectDescription.set("A kotlin library for generating plantuml from kotlin code.") 70 | projectLongName.set(project.name) 71 | licenseName.set("Apache License, Version 2.0") 72 | licenseUrl.set("http://www.apache.org/licenses/LICENSE-2.0") 73 | projectUrl.set("https://github.com/$githubUser/${project.name}") 74 | scmConnection.set("git:git@github.com:$githubUser/${project.name}") 75 | repository("https://maven.pkg.github.com/$githubUser/${project.name}", "GitHub") { 76 | user.set("kelvin-olaiya") 77 | password.set(System.getenv("GITHUB_TOKEN")) 78 | } 79 | } 80 | 81 | /* 82 | * Developers and contributors must be added manually 83 | */ 84 | publishing { 85 | publications { 86 | withType { 87 | pom { 88 | developers { 89 | developer { 90 | name.set("Kelvin Olaiya") 91 | email.set("kelvinoluwada.olaiya@studio.unibo.it") 92 | url.set("https://kelvin-olaiya.github.io") 93 | } 94 | } 95 | } 96 | } 97 | } 98 | } 99 | 100 | tasks.withType { 101 | archiveBaseName.set("kotlin2plantuml") 102 | archiveClassifier.set("") 103 | archiveVersion.set("") 104 | } 105 | 106 | tasks.getByName("test") { 107 | useJUnitPlatform() 108 | } 109 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /gradle/libs.versions.toml: -------------------------------------------------------------------------------- 1 | [versions] 2 | alchemist = "17.0.2" 3 | kotlin = "2.1.21" 4 | kotest = "5.9.1" 5 | jUnit = "5.13.1" 6 | 7 | [libraries] 8 | kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" } 9 | kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } 10 | kotest-runner = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" } 11 | kotest-assertions = { module = "io.kotest:kotest-assertions-core", version.ref = "kotest" } 12 | kotest-property = { module = "io.kotest:kotest-property", version.ref = "kotest" } 13 | classgraph = { module = "io.github.classgraph:classgraph", version = "4.8.179" } 14 | jGraph = { module = "org.jgrapht:jgrapht-core", version = "1.5.2" } 15 | common-cli = { module = "commons-cli:commons-cli", version = "1.9.0" } 16 | junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "jUnit" } 17 | junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "jUnit" } 18 | 19 | [plugins] 20 | kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } 21 | kotlin-qa = { id = "org.danilopianini.gradle-kotlin-qa", version = "0.89.1" } 22 | publicOnCentral = { id = "org.danilopianini.publish-on-central", version = "7.0.4" } 23 | dokka = { id = "org.jetbrains.dokka", version = "2.0.0" } 24 | shadowJar = { id = "com.github.johnrengelman.shadow", version = "8.1.1" } 25 | semanticVersioning = { id = "org.danilopianini.git-sensitive-semantic-versioning", version = "5.1.4" } 26 | 27 | [bundles] 28 | kotlin = [ "kotlin-reflect", "kotlin-stdlib" ] 29 | kotest = [ "kotest-runner", "kotest-assertions", "kotest-property" ] 30 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kelvindev15/Kotlin2PlantUML/a071315194f5618312edeb1489fc75281aa8b412/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | # SPDX-License-Identifier: Apache-2.0 19 | # 20 | 21 | ############################################################################## 22 | # 23 | # Gradle start up script for POSIX generated by Gradle. 24 | # 25 | # Important for running: 26 | # 27 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 28 | # noncompliant, but you have some other compliant shell such as ksh or 29 | # bash, then to run this script, type that shell name before the whole 30 | # command line, like: 31 | # 32 | # ksh Gradle 33 | # 34 | # Busybox and similar reduced shells will NOT work, because this script 35 | # requires all of these POSIX shell features: 36 | # * functions; 37 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 38 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 39 | # * compound commands having a testable exit status, especially «case»; 40 | # * various built-in commands including «command», «set», and «ulimit». 41 | # 42 | # Important for patching: 43 | # 44 | # (2) This script targets any POSIX shell, so it avoids extensions provided 45 | # by Bash, Ksh, etc; in particular arrays are avoided. 46 | # 47 | # The "traditional" practice of packing multiple parameters into a 48 | # space-separated string is a well documented source of bugs and security 49 | # problems, so this is (mostly) avoided, by progressively accumulating 50 | # options in "$@", and eventually passing that to Java. 51 | # 52 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 53 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 54 | # see the in-line comments for details. 55 | # 56 | # There are tweaks for specific operating systems such as AIX, CygWin, 57 | # Darwin, MinGW, and NonStop. 58 | # 59 | # (3) This script is generated from the Groovy template 60 | # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 61 | # within the Gradle project. 62 | # 63 | # You can find Gradle at https://github.com/gradle/gradle/. 64 | # 65 | ############################################################################## 66 | 67 | # Attempt to set APP_HOME 68 | 69 | # Resolve links: $0 may be a link 70 | app_path=$0 71 | 72 | # Need this for daisy-chained symlinks. 73 | while 74 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 75 | [ -h "$app_path" ] 76 | do 77 | ls=$( ls -ld "$app_path" ) 78 | link=${ls#*' -> '} 79 | case $link in #( 80 | /*) app_path=$link ;; #( 81 | *) app_path=$APP_HOME$link ;; 82 | esac 83 | done 84 | 85 | # This is normally unused 86 | # shellcheck disable=SC2034 87 | APP_BASE_NAME=${0##*/} 88 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) 89 | APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit 90 | 91 | # Use the maximum available, or set MAX_FD != -1 to use that value. 92 | MAX_FD=maximum 93 | 94 | warn () { 95 | echo "$*" 96 | } >&2 97 | 98 | die () { 99 | echo 100 | echo "$*" 101 | echo 102 | exit 1 103 | } >&2 104 | 105 | # OS specific support (must be 'true' or 'false'). 106 | cygwin=false 107 | msys=false 108 | darwin=false 109 | nonstop=false 110 | case "$( uname )" in #( 111 | CYGWIN* ) cygwin=true ;; #( 112 | Darwin* ) darwin=true ;; #( 113 | MSYS* | MINGW* ) msys=true ;; #( 114 | NONSTOP* ) nonstop=true ;; 115 | esac 116 | 117 | CLASSPATH="\\\"\\\"" 118 | 119 | 120 | # Determine the Java command to use to start the JVM. 121 | if [ -n "$JAVA_HOME" ] ; then 122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 123 | # IBM's JDK on AIX uses strange locations for the executables 124 | JAVACMD=$JAVA_HOME/jre/sh/java 125 | else 126 | JAVACMD=$JAVA_HOME/bin/java 127 | fi 128 | if [ ! -x "$JAVACMD" ] ; then 129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 130 | 131 | Please set the JAVA_HOME variable in your environment to match the 132 | location of your Java installation." 133 | fi 134 | else 135 | JAVACMD=java 136 | if ! command -v java >/dev/null 2>&1 137 | then 138 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 139 | 140 | Please set the JAVA_HOME variable in your environment to match the 141 | location of your Java installation." 142 | fi 143 | fi 144 | 145 | # Increase the maximum file descriptors if we can. 146 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 147 | case $MAX_FD in #( 148 | max*) 149 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 150 | # shellcheck disable=SC2039,SC3045 151 | MAX_FD=$( ulimit -H -n ) || 152 | warn "Could not query maximum file descriptor limit" 153 | esac 154 | case $MAX_FD in #( 155 | '' | soft) :;; #( 156 | *) 157 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 158 | # shellcheck disable=SC2039,SC3045 159 | ulimit -n "$MAX_FD" || 160 | warn "Could not set maximum file descriptor limit to $MAX_FD" 161 | esac 162 | fi 163 | 164 | # Collect all arguments for the java command, stacking in reverse order: 165 | # * args from the command line 166 | # * the main class name 167 | # * -classpath 168 | # * -D...appname settings 169 | # * --module-path (only if needed) 170 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 171 | 172 | # For Cygwin or MSYS, switch paths to Windows format before running java 173 | if "$cygwin" || "$msys" ; then 174 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 175 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 176 | 177 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 178 | 179 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 180 | for arg do 181 | if 182 | case $arg in #( 183 | -*) false ;; # don't mess with options #( 184 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 185 | [ -e "$t" ] ;; #( 186 | *) false ;; 187 | esac 188 | then 189 | arg=$( cygpath --path --ignore --mixed "$arg" ) 190 | fi 191 | # Roll the args list around exactly as many times as the number of 192 | # args, so each arg winds up back in the position where it started, but 193 | # possibly modified. 194 | # 195 | # NB: a `for` loop captures its iteration list before it begins, so 196 | # changing the positional parameters here affects neither the number of 197 | # iterations, nor the values presented in `arg`. 198 | shift # remove old arg 199 | set -- "$@" "$arg" # push replacement arg 200 | done 201 | fi 202 | 203 | 204 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 205 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 206 | 207 | # Collect all arguments for the java command: 208 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, 209 | # and any embedded shellness will be escaped. 210 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be 211 | # treated as '${Hostname}' itself on the command line. 212 | 213 | set -- \ 214 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 215 | -classpath "$CLASSPATH" \ 216 | -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ 217 | "$@" 218 | 219 | # Stop when "xargs" is not available. 220 | if ! command -v xargs >/dev/null 2>&1 221 | then 222 | die "xargs is not available" 223 | fi 224 | 225 | # Use "xargs" to parse quoted args. 226 | # 227 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 228 | # 229 | # In Bash we could simply go: 230 | # 231 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 232 | # set -- "${ARGS[@]}" "$@" 233 | # 234 | # but POSIX shell has neither arrays nor command substitution, so instead we 235 | # post-process each arg (as a line of input to sed) to backslash-escape any 236 | # character that might be a shell metacharacter, then use eval to reverse 237 | # that process (while maintaining the separation between arguments), and wrap 238 | # the whole thing up as a single "set" statement. 239 | # 240 | # This will of course break if any of these variables contains a newline or 241 | # an unmatched quote. 242 | # 243 | 244 | eval "set -- $( 245 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 246 | xargs -n1 | 247 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 248 | tr '\n' ' ' 249 | )" '"$@"' 250 | 251 | exec "$JAVACMD" "$@" 252 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | @rem SPDX-License-Identifier: Apache-2.0 17 | @rem 18 | 19 | @if "%DEBUG%"=="" @echo off 20 | @rem ########################################################################## 21 | @rem 22 | @rem Gradle startup script for Windows 23 | @rem 24 | @rem ########################################################################## 25 | 26 | @rem Set local scope for the variables with windows NT shell 27 | if "%OS%"=="Windows_NT" setlocal 28 | 29 | set DIRNAME=%~dp0 30 | if "%DIRNAME%"=="" set DIRNAME=. 31 | @rem This is normally unused 32 | set APP_BASE_NAME=%~n0 33 | set APP_HOME=%DIRNAME% 34 | 35 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 36 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 37 | 38 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 39 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 40 | 41 | @rem Find java.exe 42 | if defined JAVA_HOME goto findJavaFromJavaHome 43 | 44 | set JAVA_EXE=java.exe 45 | %JAVA_EXE% -version >NUL 2>&1 46 | if %ERRORLEVEL% equ 0 goto execute 47 | 48 | echo. 1>&2 49 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 50 | echo. 1>&2 51 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 52 | echo location of your Java installation. 1>&2 53 | 54 | goto fail 55 | 56 | :findJavaFromJavaHome 57 | set JAVA_HOME=%JAVA_HOME:"=% 58 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 59 | 60 | if exist "%JAVA_EXE%" goto execute 61 | 62 | echo. 1>&2 63 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 64 | echo. 1>&2 65 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 66 | echo location of your Java installation. 1>&2 67 | 68 | goto fail 69 | 70 | :execute 71 | @rem Setup the command line 72 | 73 | set CLASSPATH= 74 | 75 | 76 | @rem Execute Gradle 77 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* 78 | 79 | :end 80 | @rem End local scope for the variables with windows NT shell 81 | if %ERRORLEVEL% equ 0 goto mainEnd 82 | 83 | :fail 84 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 85 | rem the _cmd.exe /c_ return code! 86 | set EXIT_CODE=%ERRORLEVEL% 87 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 88 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 89 | exit /b %EXIT_CODE% 90 | 91 | :mainEnd 92 | if "%OS%"=="Windows_NT" endlocal 93 | 94 | :omega 95 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "semantic-release-preconfigured-conventional-commits": "1.1.133" 4 | }, 5 | "engines": { 6 | "node": "22.16" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /release.config.js: -------------------------------------------------------------------------------- 1 | var publishCmd = ` 2 | git tag -a -f \${nextRelease.version} \${nextRelease.version} -F CHANGELOG.md 3 | git push --force origin \${nextRelease.version} || exit 6 4 | ./gradlew shadowJar --parallel || ./gradlew shadowJar --parallel || exit 4 5 | ./gradlew uploadKotlinOSSRHToMavenCentralNexus releaseStagingRepositoryOnMavenCentral --parallel || exit 5 6 | ./gradlew publishAllPublicationsToGitHubRepository --continue || true 7 | ` 8 | var config = require('semantic-release-preconfigured-conventional-commits'); 9 | config.plugins.push( 10 | ["@semantic-release/exec", { 11 | "publishCmd": publishCmd, 12 | }], 13 | ["@semantic-release/github", { 14 | "assets": [ 15 | { "path": "build/libs/*.jar" }, 16 | ] 17 | }], 18 | "@semantic-release/git", 19 | ) 20 | module.exports = config 21 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "github>kelvindev15/renovate-config" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "Kotlin2PlantUML" 2 | 3 | plugins { 4 | id("org.danilopianini.gradle-pre-commit-git-hooks") version "2.0.26" 5 | } 6 | 7 | gitHooks { 8 | commitMsg { conventionalCommits() } 9 | preCommit { 10 | tasks("ktlintCheck") 11 | } 12 | createHooks() 13 | } 14 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/Main.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml 2 | 3 | import io.github.kelvindev15.kotlin2plantuml.plantuml.ClassDiagram 4 | import io.github.kelvindev15.kotlin2plantuml.plantuml.Configuration 5 | import io.github.kelvindev15.kotlin2plantuml.utils.DefaultScanConfiguration 6 | import io.github.kelvindev15.kotlin2plantuml.utils.ReflectUtils 7 | import org.apache.commons.cli.DefaultParser 8 | import org.apache.commons.cli.HelpFormatter 9 | import org.apache.commons.cli.Option 10 | import org.apache.commons.cli.Options 11 | import java.io.File 12 | import kotlin.reflect.KVisibility 13 | import kotlin.system.exitProcess 14 | 15 | /** 16 | * Tries to parse [option] to a [KVisibility]. 17 | */ 18 | fun toVisibility(option: String?) = option?.let { KVisibility.values()[it.toInt()] } ?: KVisibility.PUBLIC 19 | 20 | /** 21 | * --------------------------------------------------- 22 | * [args]: cli arguments 23 | * --------------------------------------------------- 24 | * fullyQualifiedClass [...options] 25 | * 26 | * --------------------------------------------------- 27 | * Options: 28 | * --------------------------------------------------- 29 | * -o, --output: output file 30 | * -r, --recurse: explore class hierarchy recursively 31 | * -p, --packages: `:` separated packages 32 | * -cp, --classpath: `:` separated paths 33 | * 34 | * -hf, --hide-fields: hide fields 35 | * -hm, --hide-methods: hide methods 36 | * -hr, --hide-relationships: hide relationships 37 | * 38 | * Visibility: 39 | * Show elements with up to modifier. 40 | * The order is defined by the KVisibility enum: 41 | * { 0: Public, 1: Protected, 2: Internal, 3: Private } 42 | * 43 | * -fv, --field-visibility: max field visibility 44 | * -mv, --method-visibility: max method visibility 45 | */ 46 | fun main(args: Array) { 47 | val help = Option("h", "help", false, "Display this message") 48 | val recurse = Option("r", "recurse", false, "Visit class class hierarchy") 49 | val output = Option("o", "output", true, "Output file path") 50 | val packages = Option("p", "packages", true, "':' separated packages (for subclasses)") 51 | val classpath = Option("cp", "classpath", true, "':' separated paths (for classpath)") 52 | val hideFields = Option("hf", "hide-fields", false, "Hide fields on classes") 53 | val hideMethods = Option("hm", "hide-methods", false, "Hide methods on classes") 54 | val hideRelationships = Option("hr", "hide-relationships", false, "Hide relationships between classes") 55 | val fieldVisibility = 56 | Option( 57 | "fv", 58 | "field-visibility", 59 | true, 60 | "Max. field visibility (0=Public, 1=Protected, 2=Internal, 3=Private)", 61 | ) 62 | val methodVisibility = 63 | Option( 64 | "mv", 65 | "method-visibility", 66 | true, 67 | "Max. method visibility (0=Public, 1=Protected, 2=Internal, 3=Private)", 68 | ) 69 | val options = 70 | Options() 71 | .addOption(help) 72 | .addOption(recurse) 73 | .addOption(output) 74 | .addOption(packages) 75 | .addOption(classpath) 76 | .addOption(hideFields) 77 | .addOption(hideMethods) 78 | .addOption(hideRelationships) 79 | .addOption(fieldVisibility) 80 | .addOption(methodVisibility) 81 | val commandLine = DefaultParser().parse(options, args) 82 | val configuration = 83 | Configuration( 84 | hideFields = commandLine.hasOption(hideFields), 85 | hideMethods = commandLine.hasOption(hideMethods), 86 | hideRelationships = commandLine.hasOption(hideRelationships), 87 | recurse = commandLine.hasOption(recurse), 88 | maxFieldVisibility = toVisibility(commandLine.getOptionValue(fieldVisibility)), 89 | maxMethodVisibility = toVisibility(commandLine.getOptionValue(methodVisibility)), 90 | ) 91 | if (commandLine.hasOption(help)) { 92 | HelpFormatter().printHelp("java -jar kotlin2plantuml.jar full.class.name [...options]", options) 93 | exitProcess(0) 94 | } 95 | require(args.isNotEmpty()) { 96 | "No fully qualified input class had been provided" 97 | } 98 | commandLine.getOptionValue(packages)?.split(":")?.forEach { DefaultScanConfiguration.addPackage(it) } 99 | commandLine.getOptionValue(classpath)?.split(":")?.forEach { DefaultScanConfiguration.addClasspath(it) } 100 | val outputFile = 101 | commandLine.getOptionValue(output) 102 | ?: "build${File.separatorChar}reports${File.separatorChar}diagram.plantuml" 103 | val clazz = ReflectUtils.loadClassOrThrow(args[0]) 104 | File(outputFile).apply { 105 | parentFile?.mkdirs() 106 | createNewFile() 107 | writeText( 108 | ClassDiagram( 109 | clazz, 110 | configuration = configuration, 111 | ).plantUml(), 112 | ) 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/plantuml/ClassDiagram.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.plantuml 2 | 3 | import kotlin.reflect.KClass 4 | 5 | /** 6 | * A plantUML class diagram. 7 | */ 8 | class ClassDiagram( 9 | private vararg val roots: ClassHierarchy, 10 | ) { 11 | constructor( 12 | vararg classRefs: KClass<*>, 13 | configuration: Configuration = Configuration(), 14 | ) : this(*classRefs.map { ClassHierarchy(it, configuration) }.toTypedArray()) 15 | 16 | /** 17 | * @return a plantuml representation of this [ClassDiagram]. 18 | */ 19 | fun plantUml() = 20 | buildString { 21 | append("@startuml") 22 | appendLine() 23 | roots.distinct().forEach { 24 | append(it.plantUml()) 25 | } 26 | append("@enduml\n") 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/plantuml/ClassHierarchy.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.plantuml 2 | 3 | import io.github.classgraph.ClassGraph 4 | import io.github.kelvindev15.kotlin2plantuml.utils.DefaultScanConfiguration 5 | import io.github.kelvindev15.kotlin2plantuml.utils.ReflectUtils.Companion.isInterface 6 | import org.jgrapht.Graph 7 | import org.jgrapht.graph.DefaultDirectedGraph 8 | import kotlin.reflect.KClass 9 | import kotlin.reflect.full.superclasses 10 | 11 | /** 12 | * A plantUML class hierarchy. 13 | */ 14 | class ClassHierarchy( 15 | /** 16 | * The root of hierarchy. 17 | */ 18 | val rootClass: KClass<*>, 19 | private val configuration: Configuration = Configuration(), 20 | ) : Graph, PlantUmlRelationship> by DefaultDirectedGraph(PlantUmlRelationship::class.java) { 21 | init { 22 | addVertex(rootClass) 23 | // GRAPH VERTICES 24 | ClassGraph() 25 | .acceptPackages( 26 | rootClass.java.packageName, 27 | *DefaultScanConfiguration.scanPackages.toTypedArray(), 28 | ).addClassLoader(DefaultScanConfiguration.classLoader) 29 | .scan() 30 | .let { 31 | if (rootClass.isInterface) { 32 | it.getClassesImplementing(rootClass.java) 33 | } else { 34 | it.getSubclasses(rootClass.java) 35 | } 36 | }.loadClasses() 37 | .forEach { addVertex(it.kotlin) } 38 | // GRAPH EDGES 39 | vertexSet().forEach { 40 | it.superclasses.filter { c -> c in vertexSet() }.forEach { superclass -> 41 | val relationshipType = 42 | if (it.isInterface != superclass.isInterface) { 43 | RelationshipType.IMPLEMENTS 44 | } else { 45 | RelationshipType.EXTENDS 46 | } 47 | addEdge(it, superclass, PlantUmlRelationship(relationshipType)) 48 | } 49 | } 50 | } 51 | 52 | private fun entities() = 53 | buildString { 54 | vertexSet() 55 | .forEach { 56 | append(PlantUmlClass(it, configuration).plantUml()) 57 | appendLine() 58 | } 59 | } 60 | 61 | private fun relationships() = 62 | buildString { 63 | edgeSet().forEach { 64 | append(it.plantUml()) 65 | appendLine() 66 | } 67 | } 68 | 69 | private fun plantUmlHierarchy() = 70 | buildString { 71 | append(entities()) 72 | if (!configuration.hideRelationships) { 73 | append(relationships()) 74 | } 75 | } 76 | 77 | /** 78 | * PlantUml representation of [rootClass]. 79 | * if [configuration]'s recurse is set to true the entire [rootClass] hierarchy 80 | * it's explored, otherwise only [rootClass] will be the plantuml output. 81 | */ 82 | fun plantUml(): String = 83 | if (configuration.recurse) { 84 | plantUmlHierarchy() 85 | } else { 86 | PlantUmlClass(rootClass, configuration).plantUml() 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/plantuml/Configuration.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.plantuml 2 | 3 | import kotlin.reflect.KVisibility 4 | 5 | /** 6 | * The plantuml display configuration. 7 | */ 8 | data class Configuration( 9 | /** 10 | * If set to true, [PlantUmlClass] using this [Configuration] 11 | * will hide all their fields. 12 | */ 13 | val hideFields: Boolean = false, 14 | /** 15 | * If set to true, [PlantUmlClass] using this [Configuration] 16 | * will hide all their member functions. 17 | */ 18 | val hideMethods: Boolean = false, 19 | /** 20 | * If set to true, [PlantUmlClass] using this [Configuration] 21 | * will not declare their relationships. 22 | */ 23 | val hideRelationships: Boolean = false, 24 | /** 25 | * If set to true, [PlantUmlClass] using this [Configuration] 26 | * will visit recursively all their subclasses. 27 | */ 28 | val recurse: Boolean = true, 29 | /** 30 | * [PlantUmlClass] using this [Configuration] 31 | * will hide fields with a visibility level grater than 32 | * [maxFieldVisibility]. 33 | * 34 | * note: the visibility level order is defined by [KVisibility]. 35 | */ 36 | val maxFieldVisibility: KVisibility = KVisibility.PUBLIC, 37 | /** 38 | * [PlantUmlClass] using this [Configuration] 39 | * will hide member functions with a visibility level grater than 40 | * [maxMethodVisibility]. 41 | * 42 | * note: the visibility level order is defined by [KVisibility]. 43 | */ 44 | val maxMethodVisibility: KVisibility = KVisibility.PUBLIC, 45 | ) 46 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/plantuml/PlantUmlClass.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.plantuml 2 | 3 | import io.github.kelvindev15.kotlin2plantuml.utils.ReflectUtils.Companion.canShow 4 | import io.github.kelvindev15.kotlin2plantuml.utils.ReflectUtils.Companion.loadClassOrThrow 5 | import io.github.kelvindev15.kotlin2plantuml.utils.ReflectUtils.Companion.plantUml 6 | import kotlin.reflect.KClass 7 | import kotlin.reflect.KFunction 8 | import kotlin.reflect.KProperty 9 | import kotlin.reflect.full.declaredMembers 10 | 11 | /** 12 | * A plantUML class. 13 | */ 14 | class PlantUmlClass( 15 | private val classRef: KClass<*>, 16 | private val configuration: Configuration, 17 | ) { 18 | constructor( 19 | fullyQualifiedClass: String, 20 | configuration: Configuration = Configuration(), 21 | ) : this(loadClassOrThrow(fullyQualifiedClass), configuration) 22 | 23 | constructor( 24 | simpleClassName: String, 25 | packages: List = listOf("io.github.kelvindev15.plantUmlGenerator.plantuml"), 26 | configuration: Configuration = Configuration(), 27 | ) : this(loadClassOrThrow(packages, simpleClassName), configuration) 28 | 29 | /** 30 | * Returns [classRef]'s PlantUML string. 31 | */ 32 | fun plantUml(): String = 33 | buildString { 34 | append(classRef.plantUml()) 35 | append(" {") 36 | appendLine() 37 | classRef.declaredMembers 38 | .filter { 39 | it.visibility?.let { visibility -> 40 | when (it) { 41 | is KFunction<*> -> 42 | !configuration.hideMethods && visibility.canShow(configuration.maxMethodVisibility) 43 | is KProperty<*> -> 44 | !configuration.hideFields && visibility.canShow(configuration.maxFieldVisibility) 45 | else -> false 46 | } 47 | } ?: false 48 | }.forEach { 49 | append(" ${it.plantUml()}") 50 | appendLine() 51 | } 52 | append("}\n") 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/plantuml/PlantUmlRelationship.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.plantuml 2 | 3 | import org.jgrapht.graph.DefaultEdge 4 | import kotlin.reflect.KClass 5 | 6 | /** 7 | * A plantUML relationship. 8 | */ 9 | class PlantUmlRelationship( 10 | private val relationshipType: RelationshipType, 11 | ) : DefaultEdge() { 12 | /** 13 | * Source class of the relationship. 14 | */ 15 | public override fun getSource(): KClass<*> = super.getSource() as KClass<*> 16 | 17 | /** 18 | * Destination class of the relationship. 19 | */ 20 | public override fun getTarget(): KClass<*> = super.getTarget() as KClass<*> 21 | 22 | /** 23 | * Plant representation of an uml relationship. 24 | */ 25 | fun plantUml(): String = "${target.simpleName} ${relationshipType.left} ${source.simpleName}" 26 | } 27 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/plantuml/RelationshipType.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.plantuml 2 | 3 | /** 4 | * Types of supported UML relationships. 5 | */ 6 | enum class RelationshipType( 7 | /** 8 | * Default string representation of the relationship. 9 | */ 10 | val right: String, 11 | /** 12 | * Reversed string representation of the relationship. 13 | */ 14 | val left: String, 15 | ) { 16 | /** 17 | * A [EXTENDS] B will be translated to "A --|> B". 18 | */ 19 | EXTENDS("--|>", "<|--"), 20 | 21 | /** 22 | * A [IMPLEMENTS] B will be translated to "A ..|> B". 23 | */ 24 | IMPLEMENTS("..|>", "<|.."), 25 | ; 26 | 27 | /** 28 | * String representation of this relationship. 29 | */ 30 | override fun toString() = right 31 | } 32 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/utils/DefaultScanConfiguration.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.utils 2 | 3 | import java.net.URL 4 | import java.net.URLClassLoader 5 | import kotlin.io.path.Path 6 | 7 | /** 8 | * A default implementation of [ScanConfiguration]. 9 | */ 10 | class DefaultScanConfiguration private constructor() { 11 | /** 12 | * Static methods. 13 | */ 14 | companion object : ScanConfiguration { 15 | private val packages = mutableListOf() 16 | private val classpath = mutableListOf() 17 | 18 | override fun addPackage(packageName: String) { 19 | packages.add(packageName) 20 | } 21 | 22 | override fun removePackage(packageName: String) { 23 | packages.remove(packageName) 24 | } 25 | 26 | override val scanPackages: List 27 | get() = packages.toList() 28 | 29 | override fun addClasspath(classpath: String) { 30 | this.classpath.add(classpath.toURL()) 31 | } 32 | 33 | override fun removeClasspath(classpath: String) { 34 | this.classpath.remove(classpath.toURL()) 35 | } 36 | 37 | private fun String.toURL() = Path(this).toUri().toURL() 38 | 39 | override val classLoader: ClassLoader 40 | get() = URLClassLoader(classpath.toTypedArray()) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/utils/ReflectUtils.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.utils 2 | 3 | import java.net.URLClassLoader 4 | import kotlin.reflect.KCallable 5 | import kotlin.reflect.KClass 6 | import kotlin.reflect.KFunction 7 | import kotlin.reflect.KParameter 8 | import kotlin.reflect.KType 9 | import kotlin.reflect.KTypeParameter 10 | import kotlin.reflect.KVisibility 11 | import kotlin.reflect.full.createType 12 | import kotlin.reflect.full.valueParameters 13 | import kotlin.reflect.jvm.jvmErasure 14 | 15 | /** 16 | * PlantUML utilities. 17 | */ 18 | class ReflectUtils private constructor() { 19 | /** 20 | * Utility functions for reflection. 21 | */ 22 | companion object { 23 | private fun loadClassOrNull(fullyQualifiedClass: String): KClass<*>? { 24 | var result: KClass<*>? = null 25 | try { 26 | var classLoader = DefaultScanConfiguration.classLoader 27 | if (classLoader is URLClassLoader) { 28 | classLoader = URLClassLoader(classLoader.urLs, ClassLoader.getSystemClassLoader()) 29 | } 30 | result = classLoader.loadClass(fullyQualifiedClass).kotlin 31 | } catch (_: ClassNotFoundException) { 32 | } 33 | return result 34 | } 35 | 36 | /** 37 | * Tries to load [fullyQualifiedClass]. 38 | * @return null if [fullyQualifiedClass] is not found in the classpath. 39 | */ 40 | fun loadClassOrThrow( 41 | fullyQualifiedClass: String, 42 | lazyMessage: () -> String = { "Unable to find $fullyQualifiedClass" }, 43 | ): KClass<*> = loadClassOrNull(fullyQualifiedClass) ?: throw ClassNotFoundException(lazyMessage()) 44 | 45 | /** 46 | * Tries to load [simpleClassName] by searching in [packages]. 47 | * @return null if [simpleClassName] is not found in any of the provided [packages]. 48 | */ 49 | fun loadClassOrThrow( 50 | packages: Iterable, 51 | simpleClassName: String, 52 | lazyMessage: () -> String = { "Unable to find $simpleClassName in the provided packages" }, 53 | ): KClass<*> = 54 | packages 55 | .mapNotNull { loadClassOrNull("$it.$simpleClassName") } 56 | .also { require(it.isNotEmpty(), lazyMessage) } 57 | .first() 58 | 59 | /** 60 | * @return a character corresponding to the plantuml visibility specification. 61 | */ 62 | fun KVisibility?.plantUml() = 63 | when (this) { 64 | KVisibility.PUBLIC -> "+" 65 | KVisibility.PROTECTED -> "#" 66 | KVisibility.INTERNAL -> "~" 67 | KVisibility.PRIVATE -> "-" 68 | else -> "" 69 | } 70 | 71 | /** 72 | * @return true if entity with this [KVisibility] can be displayed. 73 | */ 74 | fun KVisibility?.canShow(maxVisibility: KVisibility): Boolean = this != null && this <= maxVisibility 75 | 76 | /** 77 | * @return a plantuml representation of a [KCallable] (field or member function). 78 | */ 79 | fun KCallable<*>.plantUml() = 80 | buildString { 81 | append(visibility.plantUml()) 82 | if (isAbstract) { 83 | append("{abstract} ") 84 | } 85 | append(name) 86 | if (this@plantUml is KFunction) { 87 | append( 88 | valueParameters.joinToString(prefix = "(", separator = ", ", postfix = ")") { it.plantUml() }, 89 | ) 90 | } 91 | append(": ") 92 | append(returnType.plantUml()) 93 | } 94 | 95 | /** 96 | * @return a plantuml representation of a [KParameter]. 97 | */ 98 | fun KParameter.plantUml() = "$name: ${type.jvmErasure.simpleName}" 99 | 100 | /** 101 | * @return a plantuml representation o [KTypeParameter]. 102 | */ 103 | fun KTypeParameter.plantUml(): String = 104 | buildString { 105 | val upperBounds = this@plantUml.upperBounds.minus(Any::class.createType(nullable = true)) 106 | if (upperBounds.isNotEmpty()) { 107 | append(upperBounds.joinToString(separator = ",\\n") { "${this@plantUml.name} : ${it.plantUml()}" }) 108 | } else { 109 | append(this@plantUml.name) 110 | } 111 | } 112 | 113 | /** 114 | * PlantUml representation of [KType]. 115 | */ 116 | fun KType.plantUml() = 117 | buildString { 118 | append(jvmErasure.simpleName) 119 | if (arguments.isNotEmpty()) { 120 | append( 121 | arguments.joinToString(prefix = "<", postfix = ">") { 122 | it.toString().substringAfterLast(".") 123 | }, 124 | ) 125 | } 126 | } 127 | 128 | /** 129 | * @return true if this [KClass] is an interface 130 | */ 131 | val KClass<*>.isInterface get() = java.isInterface 132 | 133 | /** 134 | * @return a plantuml representation of a [KClass]. 135 | */ 136 | fun KClass<*>.plantUml(): String = 137 | buildString { 138 | if (isAbstract && !isInterface) { 139 | append("abstract ") 140 | } 141 | if (isInterface) { 142 | append("interface ") 143 | } else { 144 | append("class ") 145 | } 146 | append(simpleName) 147 | if (typeParameters.isNotEmpty()) { 148 | append( 149 | typeParameters.joinToString(prefix = "<", separator = ",\\n", postfix = ">") { it.plantUml() }, 150 | ) 151 | } 152 | } 153 | } 154 | } 155 | -------------------------------------------------------------------------------- /src/main/kotlin/io/github/kelvindev15/kotlin2plantuml/utils/ScanConfiguration.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.utils 2 | 3 | /** 4 | * Configures the scanning configuration. 5 | */ 6 | interface ScanConfiguration { 7 | /** 8 | * Add a package in which to scan classes in hierarchies. 9 | */ 10 | fun addPackage(packageName: String) 11 | 12 | /** 13 | * Don't scan classes in [packageName] package when building hierarchies. 14 | */ 15 | fun removePackage(packageName: String) 16 | 17 | /** 18 | * The list of packages in which to scan classes. 19 | */ 20 | val scanPackages: List 21 | 22 | /** 23 | * Add a path to the classpath. 24 | */ 25 | fun addClasspath(classpath: String) 26 | 27 | /** 28 | * Remove the path from the classpath. 29 | */ 30 | fun removeClasspath(classpath: String) 31 | 32 | /** 33 | * @return a classloader with the added paths. 34 | */ 35 | val classLoader: ClassLoader 36 | } 37 | -------------------------------------------------------------------------------- /src/test/kotlin/io/github/kelvindev15/kotlin2plantuml/test/RegressionTest.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.test 2 | 3 | import io.github.kelvindev15.kotlin2plantuml.plantuml.ClassDiagram 4 | import io.github.kelvindev15.kotlin2plantuml.plantuml.Configuration 5 | import io.github.kelvindev15.kotlin2plantuml.test.sample.Vehicle 6 | import io.kotest.core.spec.style.FunSpec 7 | import io.kotest.matchers.shouldBe 8 | import kotlin.reflect.KVisibility 9 | 10 | class RegressionTest : FunSpec() { 11 | private fun noCarriageReturn(text: String) = text.replace("\r", "") 12 | 13 | private fun comparePlantUml( 14 | actual: String, 15 | plantUmlFilePath: String, 16 | ) = noCarriageReturn(actual) shouldBe noCarriageReturn(ClassLoader.getSystemResource(plantUmlFilePath).readText()) 17 | 18 | init { 19 | test("default configuration") { 20 | comparePlantUml(ClassDiagram(Vehicle::class).plantUml(), "default_configuration.plantuml") 21 | } 22 | 23 | test("no recurse") { 24 | comparePlantUml( 25 | ClassDiagram(Vehicle::class, configuration = Configuration(recurse = false)).plantUml(), 26 | "no_recurse.plantuml", 27 | ) 28 | } 29 | 30 | test("hide methods") { 31 | comparePlantUml( 32 | ClassDiagram(Vehicle::class, configuration = Configuration(hideMethods = true)).plantUml(), 33 | "hide_methods.plantuml", 34 | ) 35 | } 36 | 37 | test("hide relationships") { 38 | comparePlantUml( 39 | ClassDiagram(Vehicle::class, configuration = Configuration(hideRelationships = true)).plantUml(), 40 | "hide_relationships.plantuml", 41 | ) 42 | } 43 | 44 | test("hide fields") { 45 | comparePlantUml( 46 | ClassDiagram(Vehicle::class, configuration = Configuration(hideFields = true)).plantUml(), 47 | "hide_fields.plantuml", 48 | ) 49 | } 50 | 51 | test("display private methods") { 52 | comparePlantUml( 53 | ClassDiagram( 54 | Vehicle::class, 55 | configuration = Configuration(maxMethodVisibility = KVisibility.PRIVATE), 56 | ).plantUml(), 57 | "private_methods.plantuml", 58 | ) 59 | } 60 | 61 | test("display private fields") { 62 | comparePlantUml( 63 | ClassDiagram( 64 | Vehicle::class, 65 | configuration = Configuration(maxFieldVisibility = KVisibility.PRIVATE), 66 | ).plantUml(), 67 | "private_fields.plantuml", 68 | ) 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/test/kotlin/io/github/kelvindev15/kotlin2plantuml/test/sample/Car.kt: -------------------------------------------------------------------------------- 1 | package io.github.kelvindev15.kotlin2plantuml.test.sample 2 | 3 | interface Vehicle { 4 | fun start() 5 | 6 | fun stop() 7 | } 8 | 9 | abstract class AbstractVehicle : Vehicle { 10 | abstract fun description(): String 11 | 12 | override fun start() { 13 | TODO("Not yet implemented") 14 | } 15 | 16 | override fun stop() { 17 | TODO("Not yet implemented") 18 | } 19 | } 20 | 21 | interface Wheeled : Vehicle 22 | 23 | interface TwoWheels : Wheeled 24 | 25 | interface FourWheels : Wheeled 26 | 27 | class Bicycle : 28 | AbstractVehicle(), 29 | TwoWheels { 30 | override fun description(): String { 31 | TODO("Not yet implemented") 32 | } 33 | } 34 | 35 | interface OutOfThree 36 | 37 | interface ComplexGeneric where T : FourWheels, P : Wheeled 38 | 39 | class Car> : 40 | AbstractVehicle(), 41 | OutOfThree, 42 | FourWheels> 43 | where T : FourWheels, 44 | O : Wheeled { 45 | override fun description(): String { 46 | TODO("Not yet implemented") 47 | } 48 | 49 | @Suppress("UnusedPrivateMember") 50 | private val privateField = "" 51 | 52 | @Suppress("EmptyFunctionBlock", "UnusedPrivateMember") 53 | private fun privateMethod() {} 54 | 55 | @Suppress("UnusedPrivateMember") 56 | val bike: Bicycle? = null 57 | } 58 | 59 | @Suppress("UnusedPrivateClass") 60 | private class PrivateCar : 61 | AbstractVehicle(), 62 | OutOfThree { 63 | override fun description(): String { 64 | TODO("Not yet implemented") 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/test/resources/default_configuration.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Vehicle { 3 | +{abstract} start(): Unit 4 | +{abstract} stop(): Unit 5 | } 6 | 7 | abstract class AbstractVehicle { 8 | +{abstract} description(): String 9 | +start(): Unit 10 | +stop(): Unit 11 | } 12 | 13 | class Bicycle { 14 | +description(): String 15 | } 16 | 17 | class Car,\nO : Wheeled,\nA : ComplexGeneric> { 18 | +bike: Bicycle 19 | +description(): String 20 | } 21 | 22 | interface FourWheels { 23 | } 24 | 25 | interface TwoWheels { 26 | } 27 | 28 | interface Wheeled { 29 | } 30 | 31 | Vehicle <|.. AbstractVehicle 32 | AbstractVehicle <|-- Bicycle 33 | TwoWheels <|.. Bicycle 34 | AbstractVehicle <|-- Car 35 | FourWheels <|.. Car 36 | Wheeled <|-- FourWheels 37 | Wheeled <|-- TwoWheels 38 | Vehicle <|-- Wheeled 39 | @enduml 40 | -------------------------------------------------------------------------------- /src/test/resources/hide_fields.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Vehicle { 3 | +{abstract} start(): Unit 4 | +{abstract} stop(): Unit 5 | } 6 | 7 | abstract class AbstractVehicle { 8 | +{abstract} description(): String 9 | +start(): Unit 10 | +stop(): Unit 11 | } 12 | 13 | class Bicycle { 14 | +description(): String 15 | } 16 | 17 | class Car,\nO : Wheeled,\nA : ComplexGeneric> { 18 | +description(): String 19 | } 20 | 21 | interface FourWheels { 22 | } 23 | 24 | interface TwoWheels { 25 | } 26 | 27 | interface Wheeled { 28 | } 29 | 30 | Vehicle <|.. AbstractVehicle 31 | AbstractVehicle <|-- Bicycle 32 | TwoWheels <|.. Bicycle 33 | AbstractVehicle <|-- Car 34 | FourWheels <|.. Car 35 | Wheeled <|-- FourWheels 36 | Wheeled <|-- TwoWheels 37 | Vehicle <|-- Wheeled 38 | @enduml 39 | -------------------------------------------------------------------------------- /src/test/resources/hide_methods.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Vehicle { 3 | } 4 | 5 | abstract class AbstractVehicle { 6 | } 7 | 8 | class Bicycle { 9 | } 10 | 11 | class Car,\nO : Wheeled,\nA : ComplexGeneric> { 12 | +bike: Bicycle 13 | } 14 | 15 | interface FourWheels { 16 | } 17 | 18 | interface TwoWheels { 19 | } 20 | 21 | interface Wheeled { 22 | } 23 | 24 | Vehicle <|.. AbstractVehicle 25 | AbstractVehicle <|-- Bicycle 26 | TwoWheels <|.. Bicycle 27 | AbstractVehicle <|-- Car 28 | FourWheels <|.. Car 29 | Wheeled <|-- FourWheels 30 | Wheeled <|-- TwoWheels 31 | Vehicle <|-- Wheeled 32 | @enduml 33 | -------------------------------------------------------------------------------- /src/test/resources/hide_relationships.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Vehicle { 3 | +{abstract} start(): Unit 4 | +{abstract} stop(): Unit 5 | } 6 | 7 | abstract class AbstractVehicle { 8 | +{abstract} description(): String 9 | +start(): Unit 10 | +stop(): Unit 11 | } 12 | 13 | class Bicycle { 14 | +description(): String 15 | } 16 | 17 | class Car,\nO : Wheeled,\nA : ComplexGeneric> { 18 | +bike: Bicycle 19 | +description(): String 20 | } 21 | 22 | interface FourWheels { 23 | } 24 | 25 | interface TwoWheels { 26 | } 27 | 28 | interface Wheeled { 29 | } 30 | 31 | @enduml 32 | -------------------------------------------------------------------------------- /src/test/resources/no_recurse.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Vehicle { 3 | +{abstract} start(): Unit 4 | +{abstract} stop(): Unit 5 | } 6 | @enduml 7 | -------------------------------------------------------------------------------- /src/test/resources/private_fields.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Vehicle { 3 | +{abstract} start(): Unit 4 | +{abstract} stop(): Unit 5 | } 6 | 7 | abstract class AbstractVehicle { 8 | +{abstract} description(): String 9 | +start(): Unit 10 | +stop(): Unit 11 | } 12 | 13 | class Bicycle { 14 | +description(): String 15 | } 16 | 17 | class Car,\nO : Wheeled,\nA : ComplexGeneric> { 18 | +bike: Bicycle 19 | -privateField: String 20 | +description(): String 21 | } 22 | 23 | interface FourWheels { 24 | } 25 | 26 | interface TwoWheels { 27 | } 28 | 29 | interface Wheeled { 30 | } 31 | 32 | Vehicle <|.. AbstractVehicle 33 | AbstractVehicle <|-- Bicycle 34 | TwoWheels <|.. Bicycle 35 | AbstractVehicle <|-- Car 36 | FourWheels <|.. Car 37 | Wheeled <|-- FourWheels 38 | Wheeled <|-- TwoWheels 39 | Vehicle <|-- Wheeled 40 | @enduml 41 | -------------------------------------------------------------------------------- /src/test/resources/private_methods.plantuml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Vehicle { 3 | +{abstract} start(): Unit 4 | +{abstract} stop(): Unit 5 | } 6 | 7 | abstract class AbstractVehicle { 8 | +{abstract} description(): String 9 | +start(): Unit 10 | +stop(): Unit 11 | } 12 | 13 | class Bicycle { 14 | +description(): String 15 | } 16 | 17 | class Car,\nO : Wheeled,\nA : ComplexGeneric> { 18 | +bike: Bicycle 19 | +description(): String 20 | -privateMethod(): Unit 21 | } 22 | 23 | interface FourWheels { 24 | } 25 | 26 | interface TwoWheels { 27 | } 28 | 29 | interface Wheeled { 30 | } 31 | 32 | Vehicle <|.. AbstractVehicle 33 | AbstractVehicle <|-- Bicycle 34 | TwoWheels <|.. Bicycle 35 | AbstractVehicle <|-- Car 36 | FourWheels <|.. Car 37 | Wheeled <|-- FourWheels 38 | Wheeled <|-- TwoWheels 39 | Vehicle <|-- Wheeled 40 | @enduml 41 | --------------------------------------------------------------------------------