Skip to content

Commit 7f65465

Browse files
committed
updated
1 parent 094420a commit 7f65465

File tree

1 file changed

+102
-20
lines changed

1 file changed

+102
-20
lines changed

README.md

Lines changed: 102 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,20 @@ src/main
5656
│ │ ├── Trace.java
5757
│ │ ├── TraceTagHolder.java
5858
│ │ └── TraceTag.java
59-
│   ├── reactive [Reactive Messaging & Connecter]
60-
│   │   ├── ReactiveResource.java
61-
│   │   └── ReactiveJmsResource.java
59+
│ ├── reactive [Reactive Messaging & Connecter]
60+
│ │ ├── DaoEvent.java
61+
│ │ ├── ExecutorServiceHelper.java
62+
│ │ ├── ReactiveJmsResource.java
63+
│ │ └── ReactiveResource.java
6264
│   ├── graphql [GraphQL]
6365
│   │   ├── Country.java
6466
│   │   └── CountryGraphQLApi.java
65-
│   ├── jpa [拡張機能 JPA/JTA]
66-
│   │   ├── Country.java
67-
│   │   ├── CountryResource.java
68-
│   │   ├── Greeting.java
69-
│   │   └── JPAExampleResource.java
67+
│ ├── jpa [拡張機能 JPA/JTA]
68+
│ │ ├── CountryDAO.java
69+
│ │ ├── Country.java
70+
│ │ ├── CountryResource.java
71+
│ │ ├── Greeting.java
72+
│ │ └── JPAExampleResource.java
7073
│   ├── grpc [拡張機能 gRPC]
7174
│   │   ├── javaobj [gRPC Javaシリアライゼーション版]
7275
│   │   │   ├── GreeterServiceImpl.java
@@ -84,7 +87,7 @@ src/main
8487
├── proto
8588
│   └── helloworld.proto [gRPC IDL定義]
8689
└── resources
87-
├── application.yaml [Helidonで使う設定ファイル]
90+
├── application.yaml [Helidonの設定ファイル microprofile-config.properties 相当として利用可能]
8891
├── createtable.ddl [JPA拡張機能で使うH2用のDDL]
8992
├── jbossts-properties.xml [JTAの設定ファイル]
9093
├── logging.properties [ログ設定ファイル]
@@ -102,9 +105,14 @@ demo
102105
│   ├── open-tracing.yaml
103106
│   ├── simple-deployment.yaml
104107
│   └── simple-service.yaml
105-
└── tracing [トレーシングデモ]
106-
├── request.json
107-
└── tracing-demo.sh
108+
├── tracing [トレーシングデモ]
109+
│ ├── request.json
110+
│ └── tracing-demo.sh
111+
└── weblogic [WebLogic Server コンテナ作成・設定]
112+
├── config-jms.sh
113+
├── config-jms.yaml
114+
├── domain.properties
115+
└── start-weblogic.sh
108116
```
109117

110118
## ビルド方法
@@ -122,7 +130,7 @@ mvn package
122130
java -jar target/helidon-demo-mp.jar
123131
```
124132

125-
## Docker イメージの作成
133+
## Docker イメージの作成
126134

127135
Dockerfileを使わずに、[Jib](https://github.com/GoogleContainerTools/jib) を使ってMavenから直接イメージをビルドします.
128136
ルートディレクトリにあるDockerfileを使ってもイメージの作成は可能です.
@@ -166,7 +174,51 @@ helidon-demo-mp latest 1b4d2e82f6
166174
$ docker push (remote docker repository path/)helidon-demo-mp
167175
```
168176

169-
## gRPC 関連の補足 (oracle.demo.grpc パッケージ)
177+
## ■ MicroProfile Health デモ (oracle.demo.health パッケージ)
178+
179+
`/health/live` (Liveness)、`/health/ready` (Readiness) 及び `/health` (複合パターン) のエンドポイントを使ってヘルスチェックができます。
180+
181+
```json
182+
{
183+
"outcome": "UP",
184+
"status": "UP",
185+
"checks": [
186+
{
187+
"name": "my-health-check-liveness",
188+
"state": "UP",
189+
"status": "UP",
190+
"data": {
191+
"time-to-fail": 0,
192+
"uptime": 29071
193+
}
194+
},
195+
{
196+
"name": "my-health-check-readiness",
197+
"state": "UP",
198+
"status": "UP"
199+
}
200+
]
201+
}
202+
```
203+
204+
このデモでは、タイムアウト値を設定することによって、サーバーの起動時間が一定の値を超えるとLivenessをDOWNにすることができます。
205+
タイムアウト値(デフォルト= 0 [タイムアウトしない])は、2種類の方法で設定できます。
206+
207+
1. microprofile-config.properties (or application.yaml) で設定する
208+
209+
```text
210+
# Health
211+
#demo.healthcheck.liveness.name=_my-health-check
212+
demo.healthcheck.time-to-fail=30 # in second, default: 0
213+
```
214+
215+
2. RESTで設定する
216+
217+
```
218+
$ curl localhost:8080/myhealth?timeToFail=30
219+
```
220+
221+
## ■ gRPC 関連の補足 (oracle.demo.grpc パッケージ)
170222

171223
protobuf ペイロードを使ったサーバー実装は、POJO + Annotaion を使った方法と、GrpcMpExtensionを使って従来型のサービス実装クラスをデプロイする方法の、2種類を提供しています。おすすめは POJO + Annotaion です。
172224

@@ -216,7 +268,7 @@ pom.xmlの通常ビルドフェーズとは独立してprotoファイルのコ
216268
mvn -P protoc generate-sources
217269
```
218270

219-
## OpenTracing SPAN定義のためのアノテーション (oracle.demo.tracing.interceptor パッケージ)
271+
## OpenTracing SPAN定義のためのアノテーション (oracle.demo.tracing.interceptor パッケージ)
220272

221273
MicroProfileのOpenTracingの実装の多くはSPANの定義を暗黙的に行っているケースが多く、コーディングしなくてもそれなりのトレース情報が出力されるので便利です。また、明示的にSPANを定義したい場合は@Tracedアノテーション(org.eclipse.microprofile.opentracing.Traced)を使って、メソッドにトレース出力をつけることができます。しかしながら、標準機能では必ずしも欲しい情報を出力してくれるとは限りません。そこで、ここではSPANの定義処理をCDI Interceptorとして実装して、Trace出力の内容をアノテーションである程度コントロールできるようにしてみました。
222274

@@ -247,7 +299,7 @@ public List<Country> getCountriesWithError(){
247299
| value | defaul = "" ; SPAN名の接頭辞をつける、指定した場合 "<接頭辞>:<メソッド名>" となる|
248300
| stackTrace | default = false ; Exception発生時にtrace logにstack traceを出力するか否か |
249301

250-
## MicroProfile Reactive Messaging (oracle.demo.reactive パッケージ)
302+
## MicroProfile Reactive Messaging (oracle.demo.reactive パッケージ)
251303

252304
JPA/JDBC経由でデータベースにアクセスするデモ(oracle.demo.jpaパッケージ)のバリエーションとして、MicroProfile Reactive Messaging を使ったデータベースの非同期更新(Event Sourcing)処理を実装しています。RESTでリクエストを受け付けた後、非同期更新イベントを発行します。
253305

@@ -299,7 +351,7 @@ wlthint3client.jar は後述するWebLogic Serverのコンテナ・イメージ
299351

300352
```bash
301353
WL_HOME=${HOME}/opt/wls1411
302-
WL_T3CLIENT_JAR=${WL_HOME}/wlserver/server/lib/wlthint3client.jar
354+
WL_T3CLIENT_JAR=${WL_HOME}/wlserver/server/lib/wlthint3client.jar # これを正しいパスに
303355

304356
mkdir -p m2repo
305357

@@ -314,7 +366,7 @@ mvn deploy:deploy-file \
314366
```
315367
3. pom.xml 及び Javaソースのコメントアウトを外す
316368
- pom.xml
317-
```text
369+
```xml
318370
<!-- WebLogic thin t3 client for 14.1.1 -->
319371
<!--
320372
<dependency>
@@ -374,7 +426,7 @@ mp.messaging:
374426
provider.url: t3://localhost:7001 # 確認
375427
```
376428

377-
#### (参考)テスト用の WebLogic Server Docker インスタンスの作成
429+
### テスト用の WebLogic Server Docker インスタンスの作成
378430

379431
JMS Connector のテストに使うための設定済み WebLogic Server インスタンスを Docker コンテナで実行するためのスクリプトを用意しています。
380432

@@ -401,7 +453,7 @@ WebLogic Server Deploy Tooling を使ってJMSリソースを追加し、サー
401453
docker cp wls1411:/u01/oracle/wlserver/server/lib/wlthint3client.jar wlthint3client.jar
402454
```
403455

404-
## MicroProfile GraphQL (oracle.demo.graphql パッケージ)
456+
## MicroProfile GraphQL (oracle.demo.graphql パッケージ)
405457

406458
JPA経由でデータベースのCRUD操作をRestで公開するコードは既に提供していましたが、これをMicroProfile GraphQL仕様にしたものを追加しました。
407459
スキーマは `/graphql/schema.graphql` から取得できます。
@@ -467,6 +519,36 @@ curl -X POST -H "Content-Type: application/json" localhost:8080/graphql \
467519

468520
![データベースへのアクセス・パターン](doc/images/microprofile-demo-crud.png)
469521

522+
## ■ (おまけ)Cowsay (oracle.demo.cowweb パッケージ)
523+
524+
https://github.com/ricksbrown/cowsay
525+
526+
```
527+
$ curl localhost:8080/cowsay/say
528+
______
529+
< Moo! >
530+
------
531+
\ ^__^
532+
\ (oo)\_______
533+
(__)\ )\/\
534+
||----w |
535+
|| ||
536+
537+
$ curl "localhost:8080/cowsay/think?message=Hello&cowfile=moose"
538+
_______
539+
( Hello )
540+
-------
541+
o
542+
o \_\_ _/_/
543+
o \__/
544+
(oo)\_______
545+
(__)\ )\/\
546+
||----w |
547+
|| ||
548+
549+
```
550+
エンジョイ!
551+
470552
---
471553
_Copyright © 2019-2021, Oracle and/or its affiliates. All rights reserved._
472554

0 commit comments

Comments
 (0)