#chiroito ’s blog

Java を中心とした趣味の技術について

Java

Javaで16進数の乱数を生成

Java で32桁の16進数の乱数を簡単に作りたいなと思ったので作ってみたメモ。 byte[] bytes = new byte[16]; SecureRandom random = new SecureRandom(); random.nextBytes(bytes); String hexString = HexFormat.of().formatHex(bytes); これで変数 hexStrin…

日本語訳:JEP 425 : Virtual Threads (Preview) Part 5

個人的に気になっている Project Loom で Virtual Threads がプレビューされたので仕様である JEP を翻訳してみました。 ボリュームが多いため、いくつかのパートに分けて公開していきます。 原文はこちら:JEP 425: Virtual Threads (Preview) 全パートはこ…

日本語訳:JEP 425 : Virtual Threads (Preview) Part 4

個人的に気になっている Project Loom で Virtual Threads がプレビューされたので仕様である JEP を翻訳してみました。 ボリュームが多いため、いくつかのパートに分けて公開していきます。 原文はこちら:JEP 425: Virtual Threads (Preview) 全パートはこ…

日本語訳:JEP 425 : Virtual Threads (Preview) Part 3

個人的に気になっている Project Loom で Virtual Threads がプレビューされたので仕様である JEP を翻訳してみました。 ボリュームが多いため、いくつかのパートに分けて公開していきます。 原文はこちら:JEP 425: Virtual Threads (Preview) 全パートはこ…

日本語訳:JEP 425 : Virtual Threads (Preview) Part 2

個人的に気になっている Project Loom で Virtual Threads がプレビューされたので仕様である JEP を翻訳してみました。 ボリュームが多いため、いくつかのパートに分けて公開していきます。スターやブコメが付くとモチベーションが上がるかもしれません。(…

日本語訳:JEP 425 : Virtual Threads (Preview) Part 1

個人的に気になっている Project Loom で Virtual Threads がプレビューされたので仕様である JEP を翻訳してみました。 ボリュームが多いため、いくつかのパートに分けて公開していきます。スターやブコメが付くとモチベーションが上がるかもしれません。(…

QuarkusのReactiveからBlockingする処理を呼び出す方法まとめ

前回(Quarkusはどのようにスレッドを使うのか - #chiroito ’s blog)の記事にある通り、QuarkusでReactiveのアプリケーション開発をしていると、Reactiveに対応したデータストアのAPIを使います。これによってReactiveのメリットを完全に得られます。ですが…

Quarkusはどのようにスレッドを使うのか

Quarkusを使ったアプリケーション開発では、従来のフレームワークなどで使われている命令型に加え、ここ最近のフレームワークで使われているReactive型の2種類の実装方法が選べます。命令型の実装ではBlockingとして動作し、Reactiveの実装ではNon Blocking…

JJUG CCC 2020 Fall で「パフォーマンスのトラブルシュート入門」という内容で喋ってきました

2020年11月7日(土)に開催された JJUG CCC 2020 Fall にて「パフォーマンスのトラブルシュート入門」というタイトルで話をしてきました。 動画はこちらです。 CCC 2020 Fall A02-パフォーマンスのトラブルシュート入門 スライドはこちらになります。 speake…

JFR Event Streamingを軽い気持ちで非同期にしてみたら動かなかった

もともとこんな感じで同期で作っていたので「es.start()の部分をes.startAsync()にしたら非同期になるだろ」と思いやったらイベントが全然処理されない。 import jdk.jfr.Configuration; import jdk.jfr.consumer.EventStream; import jdk.jfr.consumer.Reco…

Windows Subsystem for Linux を使って OpenJDK をビルド

Windows 上で Windows Subsystem for Linux (WSL) を使用して OpenJDK 14 の Windows バイナリをビルドする方法をまとめます。 やりがちですが、Windows Subsystem for Linux (WSL)側のUbuntu 側で hg するのは必須ではありません。(やった) Windows側で好…

Try Project Loom -Project Loomを試す-

JVM Language Summit に先立ち、Fri, 27 Jul 2018 15:33:05 +0100 に Project Loom がついにコミットされたので試してみたいと思います。 現段階ではまだまだ開発途中であるためクラスやメソッドが変更される可能性があるのでご注意ください。

ファンクションの入出力を JSON 形式にする @ Fn Project

Fn Project で作成したファンクションの入出力を JSON 形式にしてみましょう。 以下のチュートリアルをベースにしています。 tutorials/JavaFDKIntroduction at master · fnproject/tutorials · GitHub

Java でファンクションを開発する @Fn Project

Fn Project + Java の組み合わせでファンクションを開発するチュートリアルを紹介します。 原文(英語)は以下にあります。 fn/examples/tutorial/hello/java at master · fnproject/fn · GitHub Fn サーバや Dashboard の作り方は以下をご覧下さい。 関数プ…

Eclipse 上で OpenJDK を開発/デバッグする

OpenJDK を開発したりソースを見ていると、関数やクラスの定義を追いたくなったり、実行しながら動作を確認したくなることがあります。 多くのエンジニア達は vi や grep 、gdb を使ってるそうです。私にとってCUIでの開発はハードルが高くてかなりつらいの…

Docker Store から Oracle 公式イメージを取得する

米国時間の2017年4月19日に dockercon17 で Oracle 製品の docker イメージが正式にサポートされたと発表されました。 Docker Store には、Oracle WebLogic Server、Oracle JDK、Oracle Databaseなどの Oracle 製品がインストールされたイメージがあります。…

OpenJDK を Linux でビルドする

OpenJDK の JDK 9 をビルドします。 ビルドするには以下の手順を行います。 必要なパッケージのインストール ソースコードをダウンロード コンフィグレーション ビルド 今回は Oracle Linux 7.3 上に環境を作っています。RHEL や CentOS でも手順は変わらな…

Oracle公式のMavenリポジトリを使う

Oracle が公開している Maven リポジトリを使うには以下 2 つのステップを実施します。 ライセンスを確認 Mavenの設定 この 2 つのステップが完了した後に、サンプルのプロジェクトを使用して設定が行なえていることを確認します。 参考:Oracle Mavenリポジ…

Spring Boot on Oracle Application Container Cloud Service

Oracle Application Container Cloud Service (ACCS) は Java、Node、PHP で書かれた任意のアプリケーションを実行できるクラウドサービスです。 Application Container Cloud | ACC | Oracle Cloud 作成したアプリケーションに加え、アプリケーションをどの…

mvnw で java.net.ConnectException

Spring Boot のアプリケーションをパッケージングしようとしたらapache-maven-3.3.9-bin.zipファイルを取得するところでjava.net.ConnectExceptionが出てしまいました。プロキシを通さないといけない環境なので、環境変数にはプロキシの設定をしていますが、…

JAX-WS アプリケーションの開発(スタブの自動作成、スタブの使用)

JAX-WS のクライアントから次のJAX-WSのクラスを使用するまでの流れを紹介します。 package chiroito.jaxws; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class JaxWsSample { @WebMethod public String hello() { return…

IntelliJ IDEA と WebLogic Server で Java EE 開発

IntelliJ IDEA と Oracle WebLogic Server を使用して Java EE の Web アプリケーションを開発するまでの手順です。最後に開発時間を短縮する Tips もあります。 前提条件 Oracle WebLogic Server 12.2.1.2.0 (以降 WebLogic Server)のインストールと構成ウ…

Oracle 公式の Docker レジストリからイメージを pull

Oracle 公式の Docker レジストリには、Oracle WebLogic Server、Oracle JDK、Oracle Database、MySQL などの Oracle 製品がインストールされたイメージがあります。これらの公式イメージは Oracle 社のシングルサインオンアカウントを登録するだけで使用で…

IntelliJ IDEA で CDI をデバッグする時の落とし穴

IntelliJ IDEA (以下 IntelliJ) を使用して CDI 実装の1つである Weld を使用したアプリケーションを開発している人は多いかと思います。 テストフェーズでは、テストが上手くいかず、原因を特定するためにデバッグ実行をして動きをステップ毎に確認すること…

Java がファイルを読んでいるか strace を使って確認する

Java アプリケーションの動きを分析をしていると、javaプロセスがファイルを開いたのかどうか確認したいことがあります。自分で作成したアプリケーションがファイルを読み書きしていればログを入れて確認できますが、アプリケーションの変更が簡単に行なえな…

OracleJDKのDocker イメージで任意のアプリケーションを実行する

Oracle JDK の Docker イメージ上で Java SE のアプリケーションを実行するには以下の手順が必要です。 アプリケーションの用意 OracleJDK 環境構築 アプリケーションの実行 アプリケーションの用意 現場で使う場合には CI ツールでビルドされた jar/war/ear…

Oracle公式Java実行環境のDockerイメージを構築

概要 Oracle 社の公式の Docker の設定ファイルが Github 上で公開されています。 github.com 設定ファイルには様々な製品の物が含まれていますが、今回はこれを使用して Oracle Java の実行環境を構築します。 作業 設定ファイルと Java のサーバランタイム…

nasne 監視システム -Oracle Stream Explorer-

この記事はnasne監視システムを作る記事の第3弾です。[nasne 監視システム概要]で紹介しましたが、nasne監視システムは4つの要素で構成されています。今回はその中で最もコアな部分である Complex Event Processing を紹介します。Complex Event Processing…

nasne 監視システム -収集プログラム-

この記事はnasne監視システムを作る記事の第2弾です。[nasne 監視システム概要]で紹介しましたが、nasne監視システムでは下図のように4つの要素で構成されています。今回はその中で収集プログラムを紹介します。収集プログラムは定期的に nasneから情報を収…

nasne 監視システム概要

背景我が家にはHDDレコーダとしてSONYのnasneが2台あり、2番組を同時録画できるようにしています。普段は録画したら数日中に見て消すので何も気にせず使っていますが、仕事が忙しくなるとどうしても見ることができなくなってしまいます。ある日、仕事に没頭…