$30 off During Our Annual Pro Sale. View Details »

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. 7 年間死んでた Java ライブラリを 復活させようとしてる話 おがさわらなるひこ

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

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

    人間にとっても機械(プログラム)にとっても高い可読性、操作 性 • 豊富なライブラリエコシステム( Java 、 C/C++ 、 Go 、……) • レポート生成システムのバックエンドに最適
  4. ODF + LibreOffice → PDF レポート生成システム

  5. jOpenDocument • http://www.jopendocument.org/ • JVM 言語で利用できる ODF の操作ライブラリ • GPLv3

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

    実際につらみが • Obsolute API 使ってるから将来 の JDK だと動かないよ!と警 告がバリバリ出る • ODF 1.3 (LibO 7.x の標準)が操 作できない
  7. じゃあフォークしよう! • https://github.com/naruoga/jOpenDocument • 仕事じゃないです。いまんとこプライベートワークです。 • もしかしたら仕事の一環としてやらせてもらえるかも……だけど

  8. ちなみに • 自分 Java 業務で書き始めたの 5 年ぐらい前 • すでに世の中は Gradle

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

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

    • やっぱ 2004 年開発のライブラリに依存してるのがよくないのかなあ • なのでリアルなプログラムだとまだ動いてない • 動かせなくて潰してるユニットテストがある • というかユニットテストがぜんぜん足りない • できれば下回りを別の ODF ライブラリに乗せ換えたい • そしていつかは Maven Central にリリース……したい!
  11. まとめ • 実力はなくても勢いがあればフォークはできる • できるところから始めてれば実力は勝手につく(といいなあ) • でも詳しい人の助言や PR やその他はウェルカム •

    PDF 生成システムに ODF 使うの超便利なのでぜひ検討を
  12. おまけ

  13. ODFを用いて PDFレポート生成システムを作る話は 2020年の台湾のオープンソースイベントCOSCUPで発表しました https://speakerdeck.com/naruoga/why-odf-is-the-best-intermediate-format-for-report-generation-systems 技術面に興味がある人は よかったら見てください (なお YouTube にビデオも  あるけど死ぬほど英語つらい

     ので見ないで…… >< )
  14. 本件について書いたブログ (わたしがいかにしょぼいことしかしてないかバレる) • https://naruoga.hatenablog.com/entry/2021/07/11/172032 • https://naruoga.hatenablog.com/entry/2021/07/16/110327 • https://naruoga.hatenablog.com/entry/2021/07/16/161413 • https://naruoga.hatenablog.com/entry/2021/07/16/184505

    ※ ) 7 月 16 日から進捗がないのはどういうことなの……?