Releases: dddjava/jig
2025.5.1
変更
- フィールドアクセスのget/setが識別できていなかったのを修正 605fbbf
- 分岐判定で
TABLESWITCH
を検出できていなかったのを修正 - (実験)メトリクスを出力するようにしました。
jig-metrics.txt
にOpenMetrics形式で出力されます。出力内容は調整中です。
ライブラリ更新
- Bump io.swagger.core.v3:swagger-annotations-jakarta from 2.2.30 to 2.2.31 by @dependabot in #985
- Bump io.swagger.core.v3:swagger-annotations-jakarta from 2.2.31 to 2.2.32 by @dependabot in #986
- Bump org.mockito:mockito-core from 5.17.0 to 5.18.0 by @dependabot in #987
Full Changelog: 2025.4.1...2025.5.1
2025.4.1
変更
- フィールドコメントも読み取り対象にしました。いまのところ出力されるのは用語集のみです。
ライブラリ更新
- Bump org.ow2.asm:asm from 9.7.1 to 9.8 by @dependabot in #980
- Bump com.github.javaparser:javaparser-core from 3.26.3 to 3.26.4 by @dependabot in #981
- Bump poi from 5.4.0 to 5.4.1 by @dependabot in #982
- Bump org.mockito:mockito-core from 5.16.1 to 5.17.0 by @dependabot in #983
- Bump io.swagger.core.v3:swagger-annotations-jakarta from 2.2.29 to 2.2.30 by @dependabot in #984
Full Changelog: 2025.3.1...2025.4.1
2025.3.1
変更
- MyBatisのMapperインタフェースの検出を名前からMapperアノテーションに変更しました。 ae4c6af
- これまで
*Mapper
と言う名前で検出していましたが、特にネーミングルールは無くなりました。
- これまで
- (実験的機能)パッケージ概要を追加しました。 22e849e
- JIGの読み取り対象全体の、クラスがある or
package-info.java
があるパッケージの一覧です。
- JIGの読み取り対象全体の、クラスがある or
不具合修正
What's Changed
- Bump org.mockito:mockito-core from 5.15.2 to 5.16.0 by @dependabot in #977
- Bump io.swagger.core.v3:swagger-annotations-jakarta from 2.2.28 to 2.2.29 by @dependabot in #978
- Bump org.mockito:mockito-core from 5.16.0 to 5.16.1 by @dependabot in #979
Full Changelog: 2025.2.4...2025.3.1
2025.2.4
2025.2.3 のパッチ的なリリースです。 2025.2.2
以前を使用されていた方は 2025.2.3
のリリースノートも見てください。
変更
2025.2.3
で一新した 用語集(HTML) に部分一致での絞り込みを追加しました。タイトルもしくは説明を部分一致で見ています。
あと表示設定のデザインを調整しました。
不具合修正
2025.2.3
で ドメイン概要(HTML) の関連図を追加しましたが、クラス名に日本語を使用していた場合に正しく表示されない不具合があったので修正しました。
日本語クラス名を使用していて「あるべきクラスが出ていない」「ないはずの関連が表示されている」などはこれです。
ライブラリ更新
- Bump org.junit.jupiter:junit-jupiter from 5.11.4 to 5.12.0 by @dependabot in #976
テスト用だけですね
Full Changelog: 2025.2.3...2025.2.4
2025.2.3
重要な変更
- ダイアグラムの関係簡略化機能を追加しました。
- 間接的に到達できる関連線を出力しなくなりました。
- パッケージ関連図とビジネスルール関連図が対象です。
a->b,b->c,a->c
がある場合は3本の線が出力されていましたが、a-b,b-c
だけ出力するようになります。- 簡略化機能は設定可能で、デフォルトで有効です。
- 以前までの出力に戻したい場合は
jig.output.diagram.transitiveReduction=false
を指定してください。(CLIの場合)
- 以前までの出力に戻したい場合は
- なお、相互参照や循環参照がある部分は省略せず全て出力するようにしています。
- 用語集(HTML)のデザインを一新しました。
- ドメイン概要(HTML)にて、パッケージ内のクラス関連図を出力するようにしました。 #518
不具合修正
- 分岐数の判定にnullの判定(
if (hoge == null)
など )が含まれていなかったので、入れるようにしました。 - javadocコメントにjavadocタグだけなどの場合に変な出力(空文字になるので何も出てないように見える)のを修正しました。
- 概要で戻る/進むでページ内移動ができなくなっていたのを修正しました。
<a name="xxx">
をやめてidにしたとき 89db364 以降なので、2024.12.2..2025.2.2
にこの不具合はあります。
- ビジネスルール関連図と区分使用図のラベルにタイトル以外も出ていたのを修正しました。
ライブラリ更新
- 概要表示に使用しているmerked, mermaidのバージョンを上げました。
内部処理
- キャッシュにCaffeineを使い始めました。それに伴い自前キャッシュのためにsynchronizedしてたのをやめました。
Full Changelog: 2025.2.2...2025.2.3
2025.2.2
変更
- javadocコメントの
{@code hoge}
をhoge
にするようにしました。プレーンテキストでの出力を想定しているため、<code>
タグなどで囲んではいません。現在対応しているインラインJavadocタグは{@link}
と{@code}
になります。 index.html
のパッケージ関連図を浅い方から順番に並べるようにしました。ざっくり把握するものが上にくる方がいいと思ったからです。- 読み込み対象に存在しないパスを指定した際にWARNログとスタックトレースが出ていたのを出なくしました。出力自体はされていましたが、うるさかったと思います。意図せず存在しないパスが指定されるのは
jig-maven-plugin
を使用してMavenの標準パッケージが無い場合などです。 - メソッドの別名解釈でジェネリクスを無視するようにしました。これまで別名が出ていなかったメソッドでもだいたい大丈夫になったと思います。
- いくつかの箇所でネストしたクラスの単純名を変更しました。
hoge.Fuga$Piyo
がFuga$Piyo
となっていたのをPiyo
とするようにしました。 - アノテーションの要素の読み取りおよび出力を少し変更しました。文字列出力部分で差があるケースがあるかもしれません。
不具合修正
- 区分図に本文を出力してしまっていました。タイトルだけにしました。本文にHTMLタグがある場合などに区分図が出なくなっていたのも解消します。タイトルにHTMLタグを使用している場合は相変わらず出力に失敗します。
- エントリーポイント概要のダイアグラムで矢印が重複して出力されていたのを出なくしました。
Full Changelog: 2025.2.1...2025.2.2
2025.2.1
変更
- パッケージ関連図
- 直下にクラスがある場合のグルーピングを一緒にしました。直下にあるクラスは
.
パッケージに入ります。(いい表現が思いつかない)
- 直下にクラスがある場合のグルーピングを一緒にしました。直下にあるクラスは
- 区分図
- パッケージでのグルーピングをやめました
- 区分図のenumの実装状態での色分けをやめました
- エントリーポイント概要のダイアグラムにてパスが空の場合に
/
を出力するようにしました - Javadocの
{@link hoge fuga}
->fuga
の置き換えをHTML以外でも行うようにしました- 別名などに使用している場合も
{@link}
は出なくなっています。2024.7.1
の暫定対処でHTMLのテキストだけだったものです。
- 別名などに使用している場合も
- 別名が未指定の場合に単純名を出力するようにしました
- 一覧の「引数別名」などでプリミティブを使用している場合に
[, ]
のようになっていたのが[String, int]
などを出すようになりました。
- 一覧の「引数別名」などでプリミティブを使用している場合に
修正
- 双方向依存リストに同じパッケージの依存がでているケースがあったのを出ないようにしました。
- 「メンバ未使用」の判定を修正しました
- enumのフィールド判定を修正しました。
- 列挙定数に「定義したenumと同じ値のstaticフィールド」があると列挙定数として解釈されていたのが解消されました。そんなことしないと思うけど。
- 改行コードが
CRLF
環境(Windowsなど)で出力した場合にHTMLのコメント部分がCRLF
、ファイル全体はLF
となっていたのをLF
に統一するようにしました。
What's Changed
- Bump org.assertj:assertj-core from 3.27.2 to 3.27.3 by @dependabot in #974
- Bump com.gradle.plugin-publish from 1.3.0 to 1.3.1 by @dependabot in #975
Full Changelog: 2025.1.4...2025.2.1
2025.1.4
不具合修正がメインです。 2025.1.3
は使用せずこちらを使用してください。
変更
- デフォルトパッケージを対象にした場合のパッケージ関連図出力できない問題を解消しました。
- いつから起こるかは不明ですが、おそらくほとんどのバージョンで起こります。原因が最初のバージョンからあるので。
デフォルトパッケージなんて使うのが悪い
- 概要HTMLの出力で中身が混ざってしまう不具合を解消しました(
2025.1.3
のみの事象) index.html
に出力するバージョン名が意図しないものになっていたのを解消しました(2025.1.3
のみの事象)
Full Changelog: 2025.1.3...2025.1.4
2025.1.3
🛑 2025.1.4
以降を使用してください。
変更・修正
- 概要HTML
- 引数のジェネリクスに対応しました
- 引数が
java.lang.String
などJava標準型やプリミティブ型だった場合にリンクしないようにしました
- ビジネスルール一覧
- 注意メソッドから使用箇所数を削除しました。IDEとかで見ればいいかなって。
- index.htmlにJIGのバージョンを出力するようにしました
- 実行時ログに出てもドキュメントに出ないんじゃイマイチなので
ライブラリ更新
- Bump poi from 5.3.0 to 5.4.0 by @dependabot in #969
- Bump io.swagger.core.v3:swagger-annotations-jakarta from 2.2.27 to 2.2.28 by @dependabot in #970
Full Changelog: 2025.1.2...2025.1.3
2025.1.2
概要
内部構造をすっごく変えました。
不具合修正・変更
- javaファイル読み取り時のメソッド引数を考慮するようにしました
- メソッドオーバーロード時のコメント識別を改善しました #98
- 用語集にて、メソッドの識別子に引数型が出るようになりました
- 概要などでメソッド引数が実装順ではなくFQN順で出力されているものを実装順に直しました
- メソッド参照などを使用した場合など、検出されていなかったいくつかの関連が追加で検出されるようになりました
- これまでなかった関連が追加で出るようになります
メソッドオーバーロード時のコメント識別を改善
対応しないことにしていた #98 の解決です。
主に ユースケース概要
用語集
などに影響があります。
メソッドコメントは主に概要で使用されるものです。
メソッドがオーバーロードされている際の別名やコメントをある程度識別できるようにしました。
これまでオーバーロードがある場合はどれか一つのコメントを採用していましたが、引数型が近しいものを引き当てるようにしました。
以下のようなメソッドがある場合:
/** めそっどめい */
void method() { }
/** メソッドメイ */
void method(String str) { }
void method(int i) { }
これまでは全てのメソッドで めそっどめい
あるいは メソッドメイ
のいずれかが採用されていました。
このリリース以降はそれぞれ対応したコメントが採用されます。
単純名が同じクラスが複数ある場合はうまく引き当てられないことがあります。
たとえばデフォルトパッケージや java.lang
と同じ単純名を使用している場合などです。
ライブラリ更新
- Bump org.assertj:assertj-core from 3.27.1 to 3.27.2 by @dependabot in #967
Full Changelog: 2025.1.1...2025.1.2
備考
CircleCIでのMavenCentralへのリリースがタイムアウトしたので手動で実行しました。
CircleCIは失敗していますが、リリース自体は正常にできている、はずです。