Skip to content

Releases: dddjava/jig

2025.5.1

01 Jun 14:59
Compare
Choose a tag to compare

変更

  • フィールドアクセスの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

30 Apr 14:32
Compare
Choose a tag to compare

変更

  • フィールドコメントも読み取り対象にしました。いまのところ出力されるのは用語集のみです。

ライブラリ更新

  • 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

31 Mar 07:56
Compare
Choose a tag to compare

変更

  • MyBatisのMapperインタフェースの検出を名前からMapperアノテーションに変更しました。 ae4c6af
    • これまで *Mapper と言う名前で検出していましたが、特にネーミングルールは無くなりました。
  • (実験的機能)パッケージ概要を追加しました。 22e849e
    • JIGの読み取り対象全体の、クラスがある or package-info.java があるパッケージの一覧です。

不具合修正

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

27 Feb 14:09
Compare
Choose a tag to compare

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

24 Feb 07:56
Compare
Choose a tag to compare

重要な変更

  • ダイアグラムの関係簡略化機能を追加しました。
    • 間接的に到達できる関連線を出力しなくなりました。
    • パッケージ関連図とビジネスルール関連図が対象です。​​
    • a->b,b->c,a->c がある場合は3本の線が出力されていましたが、a-b,b-c だけ出力するようになります。
    • 簡略化機能は設定可能で、デフォルトで有効です。
      • 以前までの出力に戻したい場合は jig.output.diagram.transitiveReduction=false を指定してください。(CLIの場合)
    • なお、相互参照や循環参照がある部分は省略せず全て出力するようにしています。
  • 用語集(HTML)のデザインを一新しました。
    • テーブル表示してましたがやめました。テーブルで見たい場合はExcelの方を見てください。
    • ファイル名を term.html から glossary.html に変えました。
    • 出力例
      • image
  • ドメイン概要(HTML)にて、パッケージ内のクラス関連​図を出力するようにしました。 #518
    • ビジネスルール関連図だと見切れないプロジェクトが大半だと思います。これなら見れるんじゃないでしょうか。
    • ドメイン概要のパッケージのところに出ます。
    • パッケージ外からの関連線は出していません。
    • パッケージ外への関連線は関連線の合計が20を超えない場合のみ出しています。
    • 現在は全ての関連を同じ線で表記していますが、クラス図としての表現に寄せていこうとは思っています。
    • 出力例
      • image

不具合修正

  • 分岐数の判定に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

16 Feb 15:04
Compare
Choose a tag to compare

変更

  • javadocコメントの {@code hoge}hoge にするようにしました。プレーンテキストでの出力を想定しているため、 <code> タグなどで囲んではいません。現在対応しているインラインJavadocタグは {@link}{@code} になります。
  • index.html のパッケージ関連図を浅い方から順番に並べるようにしました。ざっくり把握するものが上にくる方がいいと思ったからです。
  • 読み込み対象に存在しないパスを指定した際にWARNログとスタックトレースが出ていたのを出なくしました。出力自体はされていましたが、うるさかったと思います。意図せず存在しないパスが指定されるのは jig-maven-plugin を使用してMavenの標準パッケージが無い場合などです。
  • メソッドの別名解釈でジェネリクスを無視するようにしました。これまで別名が出ていなかったメソッドでもだいたい大丈夫になったと思います。
  • ​​いくつかの箇所でネストしたクラスの単純名を変更しました。 hoge.Fuga$PiyoFuga$Piyo となっていたのを Piyo とするようにしました。
  • アノテーションの要素の読み取りおよび出力を少し変更しました。文字列出力部分で差があるケースがあるかもしれません。

不具合修正

  • ​区分図に本文を出力してしまっていました。タイトルだけにしました。本文にHTMLタグがある場合などに区分図が出なくなっていたのも解消します。タイトルにHTMLタグを使用している場合は相変わらず出力に失敗します。
  • エントリーポイント概要のダイアグラムで矢印が重複して出力されていたのを出なくしました。

Full Changelog: 2025.2.1...2025.2.2

2025.2.1

09 Feb 13:52
Compare
Choose a tag to compare

変更

  • パッケージ関連図
    • 直下にクラスがある場合のグルーピングを一緒にしました。直下にあるクラスは . パッケージに入ります。(いい表現が思いつかない)
  • 区分図
    • パッケージでのグルーピングをやめました
    • 区分図のenumの実装状態での色分けをやめました
  • エントリーポイント概要のダイアグラムにてパスが空の場合に / を出力するようにしました
  • Javadocの {@link hoge fuga} -> fuga の置き換えをHTML以外でも行うようにしました
    • 別名などに使用している場合も {@link} は出なくなっています。 2024.7.1 の暫定対処でHTMLのテキストだけだったものです。
  • 別名が未指定の場合に単純名を出力するようにしました
    • 一覧の「引数別名」などでプリミティブを使用している場合に [, ] のようになっていたのが [String, int] などを出すようになりました。

修正

  • 双方向依存リストに同じパッケージの依存がでているケースがあったのを出ないようにしました。
  • 「メンバ未使用」の判定を修正しました
    • インタフェースの抽象メソッドで警告されていたのを直しました #824
    • 警告が出るべき状態で出ていない場合を修正しました
    • テストパターン
  • 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

19 Jan 13:41
Compare
Choose a tag to compare

不具合修正がメインです。 2025.1.3 は使用せずこちらを使用してください。

変更

  • デフォルトパッケージを対象にした場合のパッケージ関連図出力できない問題を解消しました。
    • いつから起こるかは不明ですが、おそらくほとんどのバージョンで起こります。原因が最初のバージョンからあるので。
    • デフォルトパッケージなんて使うのが悪い
  • 概要HTMLの出力で中身が混ざってしまう不具合を解消しました( 2025.1.3 のみの事象)
  • index.html に出力するバージョン名が意図しないものになっていたのを解消しました( 2025.1.3 のみの事象)

Full Changelog: 2025.1.3...2025.1.4

2025.1.3

18 Jan 03:57
f3ebfb5
Compare
Choose a tag to compare

🛑 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

10 Jan 04:04
98c8c4d
Compare
Choose a tag to compare

概要

内部構造をすっごく変えました。

不具合修正・変更

  • 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は失敗していますが、リリース自体は正常にできている、はずです。