Slide 1

Slide 1 text

7 年間死んでた Java ライブラリを 復活させようとしてる話 おがさわらなるひこ

Slide 2

Slide 2 text

OpenDocument Format (ODF) ● LibreOffice の標準フォーマット ● オフィス系ドキュメントの相互運用性を真に目的とした唯一の国際標準ファイル フォーマット ● 国際標準化団体 OASIS の OpenDocument TC にて標準化、その後 ISO 標準に ● アプリケーションの機能改善に伴う定期的な更新を取り込んで規格自体も更新、 現在 1.3 が OASIS 勧告で ISO 化中 ● 2006 年に規格化された後エラッタレベルでしか改訂が行われていない「 ISO 標準のファイル フォーマットであること」という調達要件を満たすことだけを目的としたものとは違う

Slide 3

Slide 3 text

ODF の技術的特徴 ● XML および一部埋め込みメディアの ZIP アーカイブ ● シンプルなスキーマ ● 人間にとっても機械(プログラム)にとっても高い可読性、操作 性 ● 豊富なライブラリエコシステム( Java 、 C/C++ 、 Go 、……) ● レポート生成システムのバックエンドに最適

Slide 4

Slide 4 text

ODF + LibreOffice → PDF レポート生成システム

Slide 5

Slide 5 text

jOpenDocument ● http://www.jopendocument.org/ ● JVM 言語で利用できる ODF の操作ライブラリ ● GPLv3 による OSS ● わかりやすいプログラマ向け I/F ( API ) ● 専用のプラグインによる便利なテンプレート機能 ● 結構便利で、弊社のツールは大体こいつに依存しており、オススメしたい……が

Slide 6

Slide 6 text

だがしかし…… ● に、 2014 年…… ● さすがに 7 年前はつらい ● 実際につらみが ● Obsolute API 使ってるから将来 の JDK だと動かないよ!と警 告がバリバリ出る ● ODF 1.3 (LibO 7.x の標準)が操 作できない

Slide 7

Slide 7 text

じゃあフォークしよう! ● https://github.com/naruoga/jOpenDocument ● 仕事じゃないです。いまんとこプライベートワークです。 ● もしかしたら仕事の一環としてやらせてもらえるかも……だけど

Slide 8

Slide 8 text

ちなみに ● 自分 Java 業務で書き始めたの 5 年ぐらい前 ● すでに世の中は Gradle + Intellij IDEA だった ● Ant? Maven? よくわからない ● Java といえば XML 文化だけど XML も実はよくわからない ● わからなくたってフォークはできる! OSS だもの!

Slide 9

Slide 9 text

現在できてること ● 2021 年に Ant はヤなので Maven 化 ● JAR で抱いてた依存関係も pom.xml に移動し可能な限り最新化 ● Jitpack で JAR ファイルも配布 ● ユニットテストも一部動くように ● 超簡単なサンプルは動いた ● GitHub Actions による CI ● JDK 8, JDK11 での自動ビルド& UT 実行

Slide 10

Slide 10 text

できてないこと(のほうが多い……) ● (細かいことだけど)まだパッケージ名が昔のまま ● XML ライブラリのくせにスキーマバリデーションが動いてない ● 誰か RelaxNG に詳しい人教えてくだされ ● やっぱ 2004 年開発のライブラリに依存してるのがよくないのかなあ ● なのでリアルなプログラムだとまだ動いてない ● 動かせなくて潰してるユニットテストがある ● というかユニットテストがぜんぜん足りない ● できれば下回りを別の ODF ライブラリに乗せ換えたい ● そしていつかは Maven Central にリリース……したい!

Slide 11

Slide 11 text

まとめ ● 実力はなくても勢いがあればフォークはできる ● できるところから始めてれば実力は勝手につく(といいなあ) ● でも詳しい人の助言や PR やその他はウェルカム ● PDF 生成システムに ODF 使うの超便利なのでぜひ検討を

Slide 12

Slide 12 text

おまけ

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

本件について書いたブログ (わたしがいかにしょぼいことしかしてないかバレる) ● 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 日から進捗がないのはどういうことなの……?