CLOVER🍀

That was when it all began.

Netty

Infinispan 14.0で実験的にサポートされた、io_uringを有効にしてみる

これは、なにをしたくて書いたもの? 前に、NettyのincubatorプロジェクトであるNetty io_uringを試してみるエントリーを書きました。 TCP Echo Server/Clientを書いて、Netty io_uringを試してみる - CLOVER Infinispanでも14.0.0.Finalから、Netty io_uri…

TCP Echo Server/Clientを書いて、Netty io_uringを試してみる

これは、なにをしたくて書いたもの? Nettyのio_uringを少し見てみたいな、ということで。 io_uring まずは、io_uring自体について。 io_uringは、非同期IO用のAPIです。カーネル5.1から導入されたそうです。 https://kernel.dk/io_uring.pdf io_uringについ…

RESTEasy JAX-RS Client × Reactor Netty

これは、なにをしたくて書いたもの? RESTEasy 4.1.0.Finalで追加されたReactorに関する2つのモジュールのうち、Reactorと統合するモジュールについてエントリを 書きました。 RESTEasy × Reactorを試す - CLOVER もうひとつ、JAX-RS ClientとしてのRESTEasy…

Reactor Netty 0.7のHttpClient/HttpServerで遊ぶ

Reactor Netty 0.7.2を使って、今度はHttpClientやHttpServerを使って遊んでみようと思います。こちらも、前にReactor Netty 0.5.1の頃に試しているのですが、見直しということで。Reactor Nettyのhttpパッケージで遊ぶ - CLOVER簡単なHTTP GET/POSTや、静…

Reactor Netty 0.7でTCP Echo Client/Server

過去に書いた、こちらのエントリのReactor Netty 0.7版。Reactor NettyでEcho Client/Serverを書く - CLOVERReactor Nettyを使って、TCPでEcho Client/Serverを書いてみます。ストリームっぽく…とはまあいかないものの、Reactor Nettyも前に動かしていた頃…

RESTEasy ClientのClientHttpEngineを差し替える(java.net.HttpURLConnection/OkHttp3)

RESTEasy Clientを使う時、HTTPクライアントの実装として次の2つから選択することができます。 Apache HttpComponents/Client java.net.HttpURLConnection デフォルトは、Apache HttpComponents/Clientです。Apache HTTP Client 4.x and other backends今…

RESTEasy+Netty(Netty 3/Netty 4/Netty 4 with CDI)で遊ぶ

RESTEasyのEmbedded Containerですが、以前JDK HttpServerとUndertowを試していましたのですけれど、Nettyがいるのが最近気になっていまして、ちょっと遊んでみることにしました。Chapter 36. Embedded Containers / 36.4. Nettyただ、ドキュメントに載って…

NettyのProxyのサンプル実装を、Groovyスクリプトに書き換えてみました

ちょっとしたことでプロキシサーバが必要になりそうで(TCPがプロキシできればよい)、そういえばNettyにプロキシのサンプル実装があったなぁと思い、これをGroovyスクリプトに移植してみました。Netty Documentation http://netty.io/wiki/Package io.netty…

Netty Http Snoop Clientを、SSL化する

せっかくなら、クライアント側もやってしまえ、ということで。 http://d.hatena.ne.jp/Kazuhira/20120610/1339323448クライアント側のSSLContextを作成するために、HttpsContextFactoryに修正を加えます。 HttpsContextFactory.scala import java.io.{Buffer…

Netty Http Snoop Serverを、SSL化する

そろそろ、Nettyを使ったSSLサーバの作成をやってみようと思います。ExampleのHTTP(Snoop)は、SecureChatで使用しているSSL系のクラスを使用していますが、今回はkeytoolで作った証明書を使って、SSL化します。では、まずKeyStoreを作成します。KeyStoreの…

NettyでChat Server/Clientを書く

久々のNettyネタです。まあ、写経ですが…なかなかNettyネタだけで突っ走るのも難しいのですが、知識が衰えないように時々書いておかないと(笑)。Nettyのサンプルとして、SecureChatというのがあるのですが、今回はこれを書いてみようと思います。ただ、今…

Nettyで簡易HTTPサーバを書く

久しぶりにNettyネタです。まあ、今回は写経ものですが。ところで、今年の1月頃にNettyを触っていた時はバージョン3.3.0.Finalだったのですが、今はすでにバージョン3.4.2.Finalとなっています。上がるの早いなぁ…。んで、今回はHTTPサーバを書いてみたいと…

Pipelineに組み込まれたChannelHandlerの実行順を確認する[クライアント編&まとめ]

前に、NettyのTelnetサーバのサンプルを写経して、Pipelineに組み込まれたChannelHandlerがどういう順番に呼び出されていくのかを確認しました。今度は、クライアント側を見ていこうと思います。というわけで、TelnetクライアントのサンプルをScalaでアレン…

NettyでPipelineの構成を動的に変更する

前回は、Pipelineに組み込まれたChannelHandlerがどう呼ばれているのかをトレースしました。今度は、Pipeline内のChannelHandlerを動的に変更してみたいと思います。これ自体は、実は前にWebSocketの例を写経した時に書いているんですよね。まあ、当時は「何…

NettyのPipelineとChannelHandlerの関係を学ぶ

久々にNettyです。以前はUser Guideの写経でしたが、今度はもうちょっと踏み込んだ内容に手を出していこうと思います。まずは、Pipelineとそれに組み込まれているChannelHandlerを理解していくところから。ChannelHandlerインターフェースは、そのサブクラス…

Nettyアプリケーションをシャットダウンする

Netty User Guidの最後のチュートリアルです。アプリケーションのシャットダウン方法を学びます。9. Shutting Down Your Application http://netty.io/docs/stable/guide/html/#start.12ではでは、訳していってみましょう。 TimeClientを実行したのであれば…

NettyのChannelBufferをPOJOに置き換える

今度は、Timeクライアント/サーバをChannelBufferからPOJOを使うように変更してきます。User Guide的には、こちらの内容です。Speaking in POJO instead of ChannelBuffer http://netty.io/docs/stable/guide/html/#start.pojoではでは、いってみましょう。…

Nettyでストリームベースのプロトコルを扱う

前回のエントリから、ちょっと時間が空いてしまいました…。その間に、世間では ScalaがVersion 2.10のMilestone 1と2をリリース Nettyが3.3.1にバージョンアップ とまあ、ちょっと置いてかれてる感じですね。Scala 2.10はまだMilestoneリリースなのと、Netty…

NettyでTime Server/Clientを書く

今回は、Nettyを使用してTimeプロトコルのクライアント/サーバを書いてみます。といっても、なんか大層なことをするわけではなくUser Guidの以下のセクションの写しです。なお、Timeプロトコルっていうのは、NTP以前の時刻同期プロトコルなんだそうな。[Wri…

Discard ServerからEcho Serverへ

今度は、Discard ServerをEcho Serverに変更してみます。はい、これを写します。 http://netty.io/docs/stable/guide/html/#start.7結果は、こうなります。名前がDiscardServerHandlerのままなのは、ご愛嬌。 DiscardServerHandler.scala import org.jboss.n…

Discard Serverに送られてきたデータを見てみる

前回作成したDiscard Serverを、クライアントから送られてきたデータを見れるように修正してみましょう。って要は http://netty.io/docs/stable/guide/html/#start.6 に沿って修正するだけなのですが。つまり、こういう結果になります。修正するのは、Discar…

Netty 3.3.0を触る

このところ、ScalazやGaucheなどちょっと寄り道気味なものを勉強していたので、少し実務が見えるようなものの勉強を始めてみることにしました。んで、ここはネットワークプログラミングかなぁと思い、以前やっていたJBoss Nettyをもう少し真面目に勉強してみ…

JBoss NettyでHTTPサーバ

先週触っていた、Netty ExampleのScala写経の続きです。今回のお題は、HTTPサーバ。 http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/http/snoop/package-summary.htmlまずは、サーバ側。 HttpServer.scala import java.net.InetSocketAddres…

JBoss NettyでWebSocket

今度は、チュートリアルのWebSocketをScalaで写経。いかにチュートリアルの写経とはいえ、WebSocketを使ったプログラムを書くのは今回が初めてです♪写経元のチュートリアル。 http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/http/websocket/…

JBoss Nettyを触ってみる

以前からちょっと興味はあったのですが、NIOベースのフレームワークを触ってみることにしました。この分野でのフレームワークと言えば…Grizzly http://grizzly.java.net/Apache MINA http://mina.apache.org/JBoss Netty http://www.jboss.org/nettyJBoss Ne…