com.nablarch.integration:nablarch-lettuce-adaptor

Nablarch Framework.

License

License

GroupId

GroupId

com.nablarch.integration
ArtifactId

ArtifactId

nablarch-lettuce-adaptor
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

Nablarch Framework.
Project URL

Project URL

https://github.com/nablarch/nablarch-lettuce-adaptor
Source Code Management

Source Code Management

https://github.com/nablarch/nablarch-lettuce-adaptor/tree/master

Download nablarch-lettuce-adaptor

How to add to project

<!-- https://jarcasting.com/artifacts/com.nablarch.integration/nablarch-lettuce-adaptor/ -->
<dependency>
    <groupId>com.nablarch.integration</groupId>
    <artifactId>nablarch-lettuce-adaptor</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.nablarch.integration/nablarch-lettuce-adaptor/
implementation 'com.nablarch.integration:nablarch-lettuce-adaptor:1.0.0'
// https://jarcasting.com/artifacts/com.nablarch.integration/nablarch-lettuce-adaptor/
implementation ("com.nablarch.integration:nablarch-lettuce-adaptor:1.0.0")
'com.nablarch.integration:nablarch-lettuce-adaptor:jar:1.0.0'
<dependency org="com.nablarch.integration" name="nablarch-lettuce-adaptor" rev="1.0.0">
  <artifact name="nablarch-lettuce-adaptor" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.nablarch.integration', module='nablarch-lettuce-adaptor', version='1.0.0')
)
libraryDependencies += "com.nablarch.integration" % "nablarch-lettuce-adaptor" % "1.0.0"
[com.nablarch.integration/nablarch-lettuce-adaptor "1.0.0"]

Dependencies

compile (3)

Group / Artifact Type Version
com.nablarch.framework : nablarch-core-repository jar
com.nablarch.framework : nablarch-fw-web jar
io.lettuce : lettuce-core jar 5.3.0.RELEASE

test (4)

Group / Artifact Type Version
com.nablarch.dev : nablarch-test-support jar 0.2.0
org.jmockit : jmockit jar 1.35
junit : junit jar 4.12
org.hamcrest : hamcrest-all jar 1.3

Project Modules

There are no modules declared in this project.

nablarch-lettuce-adaptor

単体テストの実行方法

本モジュールの単体テストを実行するためには、Redisを別途起動しておく必要がある。

テスト用のRedisを手早く起動できるようにするため、Docker Composeのひな形ファイルを docker-compose ディレクトリに用意している。

以下のコマンドを実行すると、ローカルでDocker Composeを起動するための設定ファイルが docker-compose-local ディレクトリに出力される。

$ mvn -Pinit-docker-compose -DREDIS_HOST=<ローカルのIPアドレス> resources:resources

<ローカルのIPアドレス> には、実行時のローカルの IP アドレスを設定する(localhost, 127.0.0.1 は不可)。

コマンドラインで docker-compose-local に移動し、以下のコマンドを実行することでテスト用のRedisを起動できる。

$ docker-compose up -d

なお、起動のためには以下のTCPポートが全て空いている必要がある。

  • 単一構成用
    • 7000
  • Master-Replica構成用
    • Redisインスタンス用
      • 7101, 7102, 7103
    • Sentinelインスタンス用
      • 7111, 7112, 7113
  • Cluster構成用
    • Redisインスタンス用
      • 7211, 7212, 7221, 7222, 7231, 7232
    • ノード間通信用
      • 17211, 17212, 17221, 17222, 17231, 17232

クラスタのテストでエラーが発生する場合

docker-compose/cluster/create-cluster/create-cluster.sh の改行コードが CRLF になっていると、 LettuceClusterRedisClientTest のテストで以下のようなエラーが発生する。

io.lettuce.core.RedisException: io.lettuce.core.cluster.PartitionSelectorException: Cannot determine a partition for slot 5061.
    at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:135)
    at io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:123)
    at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
    ...

この場合、 create-cluster コンテナのログには次のようなエラーログが出力されている。

$ docker-compose logs create_cluster
Attaching to create_cluster
create_cluster    | /usr/local/bin/docker-entrypoint.sh: 16: exec: /redis/create-cluster.sh: not fou              nd

.gitattributes でシェルスクリプトの改行コードは LF に固定しているが、なんらかの原因で改行コードが CRLF になって上記エラーが発生した場合は、次のように対処することでエラーを解消できる。

  1. create-cluster.sh の改行コードを LF に変換する
  2. Docker Compose で作成したコンテナイメージを削除する

コンテナイメージの削除は、次のコマンドで実行できる。

$ cd docker-compose

$ docker-compose down --rmi all --volumes
com.nablarch.integration

Versions

Version
1.0.0