Skip to content

Releases: igapyon/miku-javaclass2json-java

v0.5.4.1 : -sources.jarを生成するように

Choose a tag to compare

@igapyon igapyon released this 07 May 15:10
5f1e3f0

v0.5.4.1 : -sources.jarを生成するように

v0.5.4 CLI / Maven plugin の進捗表示、split phase 実行、class JSON の出力構造を改善

Choose a tag to compare

@igapyon igapyon released this 07 May 14:36
2a064e7

v0.5.4 CLI / Maven plugin の進捗表示、split phase 実行、class JSON の出力構造を改善

概要

CLI / Maven plugin の進捗表示、split phase 実行、class JSON の出力構造を改善したリリースです。

主な変更

  • CLI に --verbose を追加し、進捗メッセージを stderr に出力できるようにしました
  • Maven plugin に miku-javaclass2json.verbose を追加し、進捗を Maven log に出力できるようにしました
  • step2 / step3--step1-output を省略した場合、--output/binary-names.jsonl を参照するようにしました
  • per-class JSON の出力先を classes/ から cls/ に変更しました
  • $ 付き nested / anonymous class を top-level class JSON の nestedClasses[] に内包する構造へ変更しました
  • classes.jsonlpathcls/... 参照へ更新しました
  • CLI module で sources jar を生成する Maven 設定を追加しました
  • README と設計ドキュメントを、verbose、split phase、cls/nestedClasses[] の仕様に合わせて更新しました
  • CLI / core API / Maven plugin のテストを追加・更新しました

確認

  • mvn test
  • mvn package -DskipTests

v0.5.2 CLI にバージョン表示オプションを追加

Choose a tag to compare

@igapyon igapyon released this 06 May 10:52
9e14395

v0.5.2 CLI にバージョン表示オプションを追加

概要

miku-javaclass2json CLI に --version / -v を追加し、プロジェクトバージョンを 0.5.2 に更新します。

変更内容

  • CLI で --version / -v を受け付け、miku-javaclass2json 0.5.2 を出力する処理を追加
  • Maven resource filtering で project.versionversion.properties に埋め込み、CLI から参照するように変更
  • --help の Usage に miku-javaclass2json --version を追加
  • --version のユニットテストを追加
  • root / module POM のバージョンを 0.5.1 から 0.5.2 に更新
  • README、advanced indexing docs、self-jar smoke script の jar / Maven plugin バージョン表記を 0.5.2 に更新
  • filtered properties の encoding を明示するため maven-resources-plugin 設定を追加

確認

  • mvn test
  • mvn package
  • java -jar miku-javaclass2json/target/miku-javaclass2json-0.5.2.jar --version

v0.5.1 大規模な Java class / jar 対策+逆引きサマリ生成を追加

Choose a tag to compare

@igapyon igapyon released this 06 May 09:40
8770b08

v0.5.1 大規模な Java class / jar のインデックス生成に向けて、出力サイズを抑えるためのパッケージ除外指定と、メソッド呼び出しの逆引きサマリ生成を追加

Release Body

概要

大規模な Java class / jar のインデックス生成に向けて、出力サイズを抑えるためのパッケージ除外指定と、メソッド呼び出しの逆引きサマリ生成を追加しました。

method-call-summary.jsonl から method-call-reverse-summary.jsonl を生成できるようになり、「どのクラス・メソッドが呼び出されているか」を target-first で検索しやすくなっています。

主な変更

  • パッケージ除外指定を追加

    • --exclude-package により、指定パッケージのクラスをインデックス対象から除外
    • classes.jsonlsources.jsonlsymbols.jsonldependencies.jsonlmethod-calls.jsonl、method-call summary、per-class JSON の dependencies/calls に反映
    • shaded library や生成コードなど、大規模入力で JSONL が膨らみやすいパッケージを外部から指定可能
  • method-call edge 専用の除外指定を追加

    • --exclude-call-package により、クラス・シンボル・依存関係は残しつつ、該当パッケージに関係する method-call edge のみを除外可能
  • 逆引きメソッド呼び出しサマリを追加

    • method-call-reverse-summary.jsonl を生成
    • method-call-summary.jsonl と同じ集約粒度で、toClass / toMethod を先頭にした target-first 形式を出力
    • index.jsonmethodCallReverseSummaryIndex を追加
  • split phase に step4 を追加

    • step4method-call-summary.jsonl から method-call-reverse-summary.jsonl を生成
    • .class / .jar を読み直さず、既存の summary から派生ファイルを作成
  • CLI help を拡充

    • 生成ファイル一覧
    • step1 から step4 の責務
    • --exclude-package--exclude-call-package の違い
    • 大規模システム向けの注意
    • wildcard pattern のクォート例を追加
  • Maven plugin に除外パラメータを追加

    • miku-javaclass2json.excludePackages
    • miku-javaclass2json.excludeCallPackages
  • ドキュメントを更新

    • README に reverse summary、除外指定、step4、Maven plugin parameter を追加
    • advanced indexing に split 実行時の除外指定と step4 を追記
    • design memo に noDescendPackages / excludePackages / excludeCallPackages の違いを追記
  • バージョンを 0.5.1 に更新

    • parent / child POM
    • README
    • advanced docs
    • smoke script

確認

  • mvn test

v0.5.0.1 miku-javaclass2json-java 初回リリース

Choose a tag to compare

@igapyon igapyon released this 06 May 08:45
2834d35

v0.5.0.1 miku-javaclass2json-java 初回リリース

概要

miku-javaclass2json-java の初回リリースです。

Java の .class ファイル、classes ディレクトリ、.jar ファイルを読み取り、agent workflow 向けの JSON / JSONL artifacts を生成します。コンパイル済み Java のクラス構造、symbols、dependencies、method-call surface を、ソース全体を読む前に確認できるようにします。

主な内容

  • CLI miku-javaclass2json を提供
    • index コマンドで .class / classes directory / .jar を索引化
    • 出力先未指定時は .java-class-index に生成
  • Maven plugin miku-javaclass2json-maven-plugin を提供
    • 明示実行による index 生成に対応
    • classesDirectory / outputDirectory / skip の設定に対応
  • JSON / JSONL artifacts を生成
    • index.json
    • classes.jsonl
    • symbols.jsonl
    • dependencies.jsonl
    • method-calls.jsonl
    • method-call-summary.jsonl
    • sources.jsonl
    • warnings.log
    • per-class JSON files under classes/
  • method call 情報を出力
    • per-class JSON の calls[]
    • streaming search 向けの method-calls.jsonl
    • 集約済み call edge 向けの method-call-summary.jsonl
  • invokedynamic を bytecode-level call surface として記録
  • advanced indexing / development guide / design memo を docs 配下に整理

確認

  • mvn test

v0.5.0 : デプロイテスト

Choose a tag to compare

@igapyon igapyon released this 06 May 07:36
aeb42e2

v0.5.0 : デプロイテスト