Java17のサポートについて

320 views
Skip to first unread message

西美羽

unread,
May 18, 2023, 7:35:52 AM5/18/23
to DBFluteユーザの集い
Spring Bootのバージョンアップに伴いJava17にバージョンアップする必要があります。DBFluteを利用しているのですが、
@javax.annotation.Resource(name="xxxxx")
上記のアノテーションが Java11で非推奨になって Java17では利用できなくなっているようです。
こちらについて Java17に対応する予定があれば教えてもらえますでしょうか。
また回避策などございましたら教えていただけたらうれしいです。

お忙しいところ恐縮ですがご確認、よろしくお願いいたします。

kubo

unread,
May 18, 2023, 8:18:57 AM5/18/23
to dbf...@googlegroups.com
jfluteです。西さん、こんばんは。

Java17にアップするプロジェクトでのDBFlute利用ありがとうございます。


javax.annotation.Resourceを使っている箇所ですが、最新のDBFluteで利用しないように修正しています。

// Springで@Resourceを使わないように修正してJava17でもスムーズにしたコミット履歴 | Github

DBFlute-1.2.6 にて反映されていますので、DBFluteもアップグレードして頂ければと思います。
すでに1.2.6である場合は、最新パッチを当てるようにしてください。
(パッチというのは、単にネット上の1.2.6に差し替えるだけです)

// アップグレード方法 | DBFlute

// DBFlute Engineのパッチ | DBFlute


ちなみに、javax.annotation.Resourceは非推奨になったというわけではなく、
jakarta.annotation.Resourceというようにパッケージが変わりました。

JavaEE の管理がコミュニティに移管されて、JakartaEE という名前に変わったことによる影響です。
(大人の事情ですね><)

DBFluteが新しいパッケージで自動生成するようにすれば問題なく動きますが、
元々@Resourceでなくても良い部分ではあるので、使わない方法に変えてしまったという感じです。



ちなみにちなみに、西さんお久しぶりです(^^。DBFluteフェス以来...ですよね?
(人違いだったらごめんなさいm(_ _)m)


西美羽

unread,
May 18, 2023, 8:48:18 PM5/18/23
to DBFluteユーザの集い
早速の返信ありがとうございます!たすかりました。。
1.2.1を利用しておりましたのでこちら、 アップグレードで対応させていただければと思います。

>ちなみに、javax.annotation.Resourceは非推奨になったというわけではなく、
>jakarta.annotation.Resourceというようにパッケージが変わりました。
>JavaEE の管理がコミュニティに移管されて、JakartaEE という名前に変わったことによる影響です。
>(大人の事情ですね><)

なるほど、、そうだったのですね。詳細にありがとうございます。。
こちらをみて、Java8までしか対応していない!?と焦ってしまってました。。

>ちなみにちなみに、西さんお久しぶりです(^^。DBFluteフェス以来...ですよね?

お久しぶりです!!DBFluteフェス以来です!覚えてくださってて、感激してます。。(笑)

2023年5月18日木曜日 21:18:57 UTC+9 jflute:

西美羽

unread,
May 18, 2023, 10:22:01 PM5/18/23
to DBFluteユーザの集い
五月雨に失礼します。
1.2.1-> 1.2.6にバージョンを上げたときの修正履歴をリリースノートから確認しようと思ったのですが、
どちらのドキュメントを確認すればよいでしょうか。(Git Hubのリリースノートからは確認できなかったもので、、)
お手数おかけしますがご確認よろしくお願い致します。
2023年5月19日金曜日 9:48:18 UTC+9 西美羽:

kubo

unread,
May 18, 2023, 10:37:54 PM5/18/23
to dbf...@googlegroups.com
jfluteです。

まず、アップグレードするときのドキュメントがこのページになります。

// DBFluteのアップグレード
このページからリンクされている...

// DBFluteの移行情報

そしてそこからリンクされている...

// Changelog

を読むと良いです。


アップグレードで移行に注意が必要な場合は、DBFluteの移行情報に載せています。
1.2.1から1.2.6で言うと、1個しかないので、あまり気にせずアップはできるとは思います。
もちろん、現場でのDBFluteの使い方がわからないので検証はして頂ければと。

Changelogとかで気になるところ、わからないところなどありましたら、
また気軽に言って頂ければ説明します。



> こちらをみて、Java8までしか対応していない!?と焦ってしまってました。。

なるほど。ちょっと書き方が紛らわしくてごめんなさい。
ちょっと後で表現を直しておきますね。

Java8のDBFluteというのは「Java8でコンパイルされたDBFlute」というニュアンスで、
一般にJavaだと互換性が高いので、古いバージョンで作られたライブラリなら、
新しいJavaを使ってるアプリでも動くという解釈ができます。
(もちろん、今回のようなちょこっとすれ違いあったりしますが、
jarファイルレベルでどう調整しても実行すらできないわけではないということで)

DBFluteの対応プログラミング言語のバージョンとかは、
別途サポート情報のページが用意されています。

// DBFluteのサポート情報

Java8 以降 @since 1.1.0



> お久しぶりです!!DBFluteフェス以来です!覚えてくださってて、感激してます。。(笑)

わーい嬉しいです。もちろん覚えてますよ(^^。
DBFluteの質問してくださって嬉しいです。

西美羽

unread,
May 18, 2023, 11:13:55 PM5/18/23
to DBFluteユーザの集い
ご確認ありがとうございます!
アップグレードするときのドキュメント詳細に書かれてましたね。。失礼いたしました。

>Java8のDBFluteというのは「Java8でコンパイルされたDBFlute」というニュアンスで、
>一般にJavaだと互換性が高いので、古いバージョンで作られたライブラリなら、
>新しいJavaを使ってるアプリでも動くという解釈ができます。

こちら理解しました。ありがとうございます。

>1.2.1から1.2.6で言うと、1個しかないので、あまり気にせずアップはできるとは思います。
内容確認させていただきましたが、ご記載いただいておりますように、既存アプリケーションには影響なさそうです。

すみません、、manage.shの94番(upgrade)叩いてみたのですがエラーとなってしまいます。
dbflute.logを確認した限りですと

'java.lang.IllegalStateException: The url threw the IO exception: url=http://dbflute.org/meta/public.properties'
[...省略]
 Caused by: java.net.UnknownHostException: dbflute.org
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:220)
at java.base/java.net.Socket.connect(Socket.java:608)
at java.base/java.net.Socket.connect(Socket.java:557)
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:341)
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:362)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1248)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
のエラーが出ており、おそらく社内プロキシ経由が影響していそうです。
初歩的な質問で恐れ入りますが、プロキシの設定についてはどちらに設定すればよいでしょうか。
※OS自体には設定が効いていおります、、

>わーい嬉しいです。もちろん覚えてますよ(^^。
あの時はまだ2年目のぺーぺーでしたが私ももう8年目になりました(^^;
まだまだプロダクトで、dbflute使わせていただいております!!
2023年5月19日金曜日 11:37:54 UTC+9 jflute:

kubo

unread,
May 18, 2023, 11:34:03 PM5/18/23
to dbf...@googlegroups.com
jfluteです。

おおぉ、プロキシですか。
あれこれ中をいじればできるとは思いますが、簡単にここに設定すればOKという機能は今はないです。

ただ、upgradeタスクも大したことしてないので...


1. 以下のページからDBFlute Engineのzipをダウンロード


2. zipを解凍してmydbflute配下に配置

mydbflute
 |-dbflute-1.2.1 // 古いバージョンは削除しちゃってOK
 |-dbflute-1.2.6 // ここに置く


3. _project.sh, _project.bat の 1.2.1 を 1.2.6 に修正

DBFluteクライアント配下にあります。
テキストファイルなので、直接修正しちゃってOK。


をしてみてください。
upgradeタスクはこれを自動でやっているだけですので。




> あの時はまだ2年目のぺーぺーでしたが私ももう8年目になりました(^^;

おおぉ、変わらず頑張ってらっしゃるの素敵です。


> まだまだプロダクトで、dbflute使わせていただいております!!

わーい

西美羽

unread,
May 19, 2023, 12:06:23 AM5/19/23
to DBFluteユーザの集い
確認ありがとうございます!無事できました!
コンパイルエラーになっていたアノテーションも最新のものに変わっていることを確認できました。ありがとうございます。
(ちなみに、、コメント文の部分でgitの差分が出てしまうところ、解消されていてうれしかったです)

迅速に回答いただいて非常にたすかりました。
引き続きよろしくお願いします!

2023年5月19日金曜日 12:34:03 UTC+9 jflute:

mokkouyou

unread,
May 19, 2023, 12:11:34 AM5/19/23
to DBFluteユーザの集い
mokkouyouです。

以前、manage.batの88で同様の問題にあたりましたので、一応。
ただ、jfluteさん案内の手動の方が手っ取り早いですし、今後のマニュアル化もしやすいかと思います。



抜粋
1)_project.batのANT_OPTSに-Dhttp.proxyXX設定入れる⇒×
2)mydbflute/xxxx/_df-intro.cmdの中でのant呼び出しに-Dhttp.proxyXX入れる⇒×
3)build.torque.xmlの中で<setproxy>タスクをかませてあげる⇒○

3)の通り、
mydbflute/dbflute-x.x.x/build.torque.xmlを編集する対応となります。
ただ、上記の通りのバージョン依存編集ですので
一度設定しておけば今後も使えるという訳ではないので手作業の方が良いですね。
antの知識も必要ですし。
upgrade\intro位しかproxy絡まなそうですが・・・もし他にもぶち当たった場合の参考になれば。


補足)なお私はめでたくproxyの呪縛から解放されましたので検証は出来ずです。
当時の編集が残っているファイルもなくちょっと間違っていたらごめんなさい。


2023年5月19日金曜日 12:34:03 UTC+9 jflute:
jfluteです。

kubo

unread,
May 19, 2023, 12:32:28 AM5/19/23
to dbf...@googlegroups.com
jfluteです。

西さん、確認ありがとうございます。
良かったです。引き続き何かあればぜひ聞いてください。

> (ちなみに、、コメント文の部分でgitの差分が出てしまうところ、解消されていてうれしかったです)

あー、なるほど。そこ喜んでもらえるの良かったです。
そういう細かい改善ちょこちょこやっていきたいとの、
致命的でなくても「ちょっとこうなると嬉しいな」的な話もぜひお気軽に(^^。
(そういうフィードバックがなかなか手に入らないので貴重なのです)



mokkouyouさん、Proxyのサンプルありがとうございます!
なるほど、build-torque.xmlもいじることになるとややこしいですね。

DBFluteのJavaコード内部だけでできるやり方がわかれば、対応したいとは思います。
でも確かに、検証がしづらいのが痛いですね。。。
実装してもこれで本当に大丈夫か?ってなりそう(><。




Reply all
Reply to author
Forward
0 new messages