Upgrade to Pro — share decks privately, control downloads, hide ads and more …

7年間死んでたJavaライブラリを復活させようとしてる話

 7年間死んでたJavaライブラリを復活させようとしてる話

Open Developers Conference 2021のLTで話した内容です。COSCUP 2021、社内LTで三回も同じネタを使いまわす話。
OpenDocument FormatをPDF生成システムに使うと便利だよというのが主題で、jOpenDocumentをリブートしようとしてるよというのはつけたりです(でもjOpenDocument便利なのは本当なので、リブートできたらうれしいです。

Naruhiko Ogasawara

August 28, 2021
Tweet

More Decks by Naruhiko Ogasawara

Other Decks in Technology

Transcript

  1. OpenDocument Format (ODF) • LibreOffice の標準フォーマット • オフィス系ドキュメントの相互運用性を真に目的とした唯一の国際標準ファイル フォーマット •

    国際標準化団体 OASIS の OpenDocument TC にて標準化、その後 ISO 標準に • アプリケーションの機能改善に伴う定期的な更新を取り込んで規格自体も更新、 現在 1.3 が OASIS 勧告で ISO 化中 • 2006 年に規格化された後エラッタレベルでしか改訂が行われていない「 ISO 標準のファイル フォーマットであること」という調達要件を満たすことだけを目的としたものとは違う
  2. ODF の技術的特徴 • XML および一部埋め込みメディアの ZIP アーカイブ • シンプルなスキーマ •

    人間にとっても機械(プログラム)にとっても高い可読性、操作 性 • 豊富なライブラリエコシステム( Java 、 C/C++ 、 Go 、……) • レポート生成システムのバックエンドに最適
  3. jOpenDocument • http://www.jopendocument.org/ • JVM 言語で利用できる ODF の操作ライブラリ • GPLv3

    による OSS • わかりやすいプログラマ向け I/F ( API ) • 専用のプラグインによる便利なテンプレート機能 • 結構便利で、弊社のツールは大体こいつに依存しており、オススメしたい……が
  4. だがしかし…… • に、 2014 年…… • さすがに 7 年前はつらい •

    実際につらみが • Obsolute API 使ってるから将来 の JDK だと動かないよ!と警 告がバリバリ出る • ODF 1.3 (LibO 7.x の標準)が操 作できない
  5. ちなみに • 自分 Java 業務で書き始めたの 5 年ぐらい前 • すでに世の中は Gradle

    + Intellij IDEA だった • Ant? Maven? よくわからない • Java といえば XML 文化だけど XML も実はよくわからない • わからなくたってフォークはできる! OSS だもの!
  6. 現在できてること • 2021 年に Ant はヤなので Maven 化 • JAR

    で抱いてた依存関係も pom.xml に移動し可能な限り最新化 • Jitpack で JAR ファイルも配布 • ユニットテストも一部動くように • 超簡単なサンプルは動いた • GitHub Actions による CI • JDK 8, JDK11 での自動ビルド& UT 実行
  7. できてないこと(のほうが多い……) • (細かいことだけど)まだパッケージ名が昔のまま • XML ライブラリのくせにスキーマバリデーションが動いてない • 誰か RelaxNG に詳しい人教えてくだされ

    • やっぱ 2004 年開発のライブラリに依存してるのがよくないのかなあ • なのでリアルなプログラムだとまだ動いてない • 動かせなくて潰してるユニットテストがある • というかユニットテストがぜんぜん足りない • できれば下回りを別の ODF ライブラリに乗せ換えたい • そしていつかは Maven Central にリリース……したい!