This is an automated email from the ASF dual-hosted git repository.

xuetaoli pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git


The following commit(s) were added to refs/heads/main by this push:
     new 77cc7ed4 update: update health check mek (#1039)
77cc7ed4 is described below

commit 77cc7ed4f4081b01ebed2fd844406c9858326f93
Author: Xuetao Li <[email protected]>
AuthorDate: Wed Feb 25 11:33:54 2026 +0800

    update: update health check mek (#1039)
    
    * chore: squash update_health_check branch changes
---
 Makefile                                           |  62 -------
 compatibility/generic/default/java-client/run.sh   |   2 +-
 compatibility/generic/default/java-server/run.sh   |   2 +-
 docker-compose.yml                                 |  81 +++++++---
 docker-health-check.sh                             |  53 ------
 generic/java-client/java-client/run.sh             |   2 +-
 generic/java-server/java-server/run.sh             |   2 +-
 http3/java-client/run.sh                           |   2 +-
 http3/java-server/run.sh                           |   2 +-
 integrate_test.sh                                  | 178 +++++++++++----------
 java_interop/non-protobuf-dubbo/java-client/run.sh |   2 +-
 java_interop/non-protobuf-dubbo/java-server/run.sh |   2 +-
 .../non-protobuf-triple/java-client/run.sh         |   2 +-
 .../non-protobuf-triple/java-server/run.sh         |   2 +-
 java_interop/protobuf-triple/java-client/run.sh    |   2 +-
 java_interop/protobuf-triple/java-server/run.sh    |   2 +-
 .../service_discovery/interface/java-client/run.sh |   2 +-
 .../service_discovery/interface/java-server/run.sh |   2 +-
 .../service_discovery/service/java-client/run.sh   |   2 +-
 .../service_discovery/service/java-server/run.sh   |   2 +-
 start_integrate_test.sh                            |   6 +-
 streaming/java-client/run.sh                       |   4 +-
 streaming/java-server/run.sh                       |   4 +-
 23 files changed, 169 insertions(+), 251 deletions(-)

diff --git a/Makefile b/Makefile
index 993ffee2..1ea0ebc4 100644
--- a/Makefile
+++ b/Makefile
@@ -17,24 +17,13 @@ PROJECT_DIR ?= $(CURDIR)
 PROJECT_NAME ?= $(notdir $(abspath $(PROJECT_DIR)))
 PID = /tmp/.$(PROJECT_NAME).pid
 BASE_DIR := $(PROJECT_DIR)/go-server/dist
-DOCKER_DIR := ./integrate_test/dockercompose
 
 SOURCES = $(wildcard $(PROJECT_DIR)/go-server/cmd/*.go)
 GO ?= go
-GO_PATH = $(shell $(GO) env GOPATH)
-GO_OS = $(shell $(GO) env GOOS)
-ifeq ($(GO_OS), darwin)
-    GO_OS = mac
-endif
 
 # shell
 SHELL = /bin/bash
 
-# license
-GO_LICENSE_CHECKER_DIR = license-header-checker-$(GO_OS)
-GO_LICENSE_CHECKER = $(GO_PATH)/bin/license-header-checker
-LICENSE_DIR = /tmp/tools/license
-
 export GO111MODULE ?= on
 export GOSUMDB ?= sum.golang.org
 export GOARCH ?= amd64
@@ -65,24 +54,11 @@ else
        LDFLAGS := "-s -w"
 endif
 
-DOCKER_COMPOSE_CMD := docker-compose
-ifeq ($(shell docker compose version > /dev/null; echo $$?), 0)
-       DOCKER_COMPOSE_CMD := docker compose
-endif
-
 OUT_DIR := $(BASE_DIR)/$(GOOS)_$(GOARCH)/$(BUILD_TYPE)
 LOG_FILE := $(OUT_DIR)/$(PROJECT_NAME).log
 
 export APP_LOG_CONF_FILE ?= $(OUT_DIR)/conf/log.yml
 
-.PHONY: license
-license:
-       rm -rf coverage.txt
-       rm -rf license-header-checker*
-       $(GO_LICENSE_CHECKER) -version || (wget 
https://github.com/lsm-dev/license-header-checker/releases/download/v1.2.0/$(GO_LICENSE_CHECKER_DIR).zip
 -O $(GO_LICENSE_CHECKER_DIR).zip && unzip -o $(GO_LICENSE_CHECKER_DIR).zip && 
mkdir -p $(GO_PATH)/bin/ && cp 
$(GO_LICENSE_CHECKER_DIR)/64bit/license-header-checker $(GO_PATH)/bin/)
-       ls /tmp/tools/license/license.txt || wget -P $(LICENSE_DIR) 
https://github.com/dubbogo/resources/raw/master/tools/license/license.txt
-       $(GO_LICENSE_CHECKER) -v -a -r -i vendor $(LICENSE_DIR)/license.txt . 
go && [[ -z `git status -s` ]]
-
 .PHONY: all
 all: help
 .DEFAULT_GOAL := help
@@ -102,31 +78,6 @@ $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME): $(SOURCES)
        @mkdir -p $(OUT_DIR)
        @CGO_ENABLED=$(CGO) GOOS=$(GOOS) GOARCH=$(GOARCH) $(GO) build 
$(GCFLAGS) -ldflags=$(LDFLAGS) -o $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME) 
$(SOURCES)
 
-## docker-health-check: check services health on docker
-.PHONY: docker-health-check
-docker-health-check:
-       $(info   >  run docker health check)
-       @-test -f $(PROJECT_DIR)/docker-health-check.sh && bash -f 
$(PROJECT_DIR)/docker-health-check.sh
-
-## docker-up: Shutdown dependency services on docker
-.PHONY: docker-up
-docker-up:
-       $(info   >  Starting dependency services with 
$(DOCKER_DIR)/docker-compose.yml)
-       @$(DOCKER_COMPOSE_CMD) -f $(DOCKER_DIR)/docker-compose.yml up -d
-
-## docker-down: Shutdown dependency services on docker
-.PHONY: docker-down
-docker-down:
-       $(info   >  Stopping dependency services with 
$(DOCKER_DIR)/docker-compose.yml)
-       @$(DOCKER_COMPOSE_CMD) -f $(DOCKER_DIR)/docker-compose.yml down
-
-## clean: Clean up the output and the binary of the application
-.PHONY: clean
-clean: stop
-       $(info   >  Cleaning up $(OUT_DIR))
-       @-rm -rf $(OUT_DIR)
-       @-rm -f $(PID)
-
 ## start: Start the application (for server)
 .PHONY: start
 start: export DUBBO_GO_CONFIG_PATH ?= $(PROJECT_DIR)/go-server/conf/dubbogo.yml
@@ -139,19 +90,6 @@ start: build
        @-cd $(PROJECT_DIR) && $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME) > 
$(LOG_FILE) 2>&1 & echo $$! > $(PID)
        @sed 's/^/  \>  PID: /' $(PID)
 
-## print-server-log: print application log (for server)
-.PHONY: print-server-log
-print-server-log:
-       $(info   >  print server log with $(LOG_FILE))
-       @-test -f $(LOG_FILE) && cat $(LOG_FILE) || true
-
-## run: Run the application (for client)
-.PHONY: run
-run: build
-       $(info   >  Running application $(PROJECT_NAME), output is redirected 
to $(LOG_FILE))
-       @mkdir -p $(OUT_DIR)
-       @-cd $(PROJECT_DIR) && $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME) 2>&1 | tee 
$(LOG_FILE)
-
 ## stop: Stop running the application (for server)
 .PHONY: stop
 stop:
diff --git a/compatibility/generic/default/java-client/run.sh 
b/compatibility/generic/default/java-client/run.sh
index 712bf57c..e3651a06 100755
--- a/compatibility/generic/default/java-client/run.sh
+++ b/compatibility/generic/default/java-client/run.sh
@@ -1 +1 @@
-mvn -e clean compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.ApiConsumer"
\ No newline at end of file
+mvn -q -e clean compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.ApiConsumer"
\ No newline at end of file
diff --git a/compatibility/generic/default/java-server/run.sh 
b/compatibility/generic/default/java-server/run.sh
index e2b4e7e7..b96d7d84 100755
--- a/compatibility/generic/default/java-server/run.sh
+++ b/compatibility/generic/default/java-server/run.sh
@@ -1 +1 @@
-mvn -e clean compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.ApiProvider"
\ No newline at end of file
+mvn -q -e clean compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.ApiProvider"
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 11bbf48d..6cb37d78 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,52 +1,83 @@
 # services config in one docker-compose file for integrate test
-# integrate test will start up services and samples test will depend on those 
containers
 services:
   zookeeper:
-    image: zookeeper:3.8.4
+    image: zookeeper:3.9.4
     ports:
       - "2181:2181"
-    restart: on-failure
+    healthcheck:
+      test: ["CMD", "nc", "-z", "localhost", "2181"]
+      interval: 5s
+      timeout: 3s
+      retries: 10
+      start_period: 10s
+    restart: unless-stopped
+    networks: [itnet]
 
   nacos:
-    image: nacos/nacos-server:v2.1.2-slim
-    container_name: nacos-standalone
+    image: nacos/nacos-server:v2.5.2
     environment:
-      - PREFER_HOST_MODE=hostname
-      - MODE=standalone
+      PREFER_HOST_MODE: hostname
+      MODE: standalone
     ports:
       - "8848:8848"
       - "9848:9848"
+      - "9849:9849"
     healthcheck:
-      test: "curl --fail 
http://127.0.0.1:8848/nacos/v1/console/health/liveness || exit 1"
-      interval: 5s
+      test: [ "CMD", "curl", "-fsS", 
"http://localhost:8848/nacos/v1/console/health/liveness"; ]
+      interval: 7s
+      timeout: 5s
+      retries: 10
+      start_period: 30s
+    restart: unless-stopped
+    networks: [itnet]
 
   polaris:
-    image: polarismesh/polaris-standalone:latest
-    container_name: polaris-standalone
+    image: polarismesh/polaris-standalone:v1.17.2
     privileged: true
     ports:
       - "8090:8090"
       - "8091:8091"
       - "8093:8093"
     healthcheck:
-      test: "curl --fail http://127.0.0.1:8090 || exit 1"
+      test: [ "CMD", "curl", "-fsS", "http://localhost:8090/"; ]
       interval: 5s
+      timeout: 3s
+      retries: 10
+      start_period: 20s
+    restart: unless-stopped
+    networks: [itnet]
 
   etcd:
-    image: "quay.io/coreos/etcd:v3.4.28"
-    container_name: etcd
+    image: quay.io/coreos/etcd:v3.4.28
     environment:
-      - ETCDCTL_API=3
-    command: [
-        "etcd",
-        "--name=etcd0",
-        "--advertise-client-urls=http://127.0.0.1:2379";,
-        "--listen-client-urls=http://0.0.0.0:2379";,
-        "--initial-advertise-peer-urls=http://127.0.0.1:2380";,
-        "--listen-peer-urls=http://0.0.0.0:2380";,
-        "--initial-cluster=etcd0=http://127.0.0.1:2380";,
-    ]
+      ETCDCTL_API: "3"
+    command:
+      - etcd
+      - --name=etcd0
+      - --data-dir=/etcd-data
+      - --listen-client-urls=http://0.0.0.0:2379
+      - --advertise-client-urls=http://etcd:2379
+      - --listen-peer-urls=http://0.0.0.0:2380
+      - --initial-advertise-peer-urls=http://etcd:2380
+      - --initial-cluster=etcd0=http://etcd:2380
+      - --initial-cluster-state=new
     ports:
       - "2379:2379"
       - "2380:2380"
-    restart: always
+    volumes:
+      - etcd-data:/etcd-data
+    healthcheck:
+      test: [ "CMD", "etcdctl", "--endpoints=http://localhost:2379";, 
"endpoint", "health" ]
+      interval: 5s
+      timeout: 3s
+      retries: 10
+      start_period: 10s
+    restart: unless-stopped
+    networks: [itnet]
+
+networks:
+  itnet:
+    name: itnet
+
+volumes:
+  etcd-data:
diff --git a/docker-health-check.sh b/docker-health-check.sh
deleted file mode 100644
index b0671f99..00000000
--- a/docker-health-check.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-
-set -euo pipefail
-
-retry() {
-  local name="$1"
-  local attempts="$2"
-  local interval="$3"
-  shift 3
-
-  local i
-  for ((i = 1; i <= attempts; i++)); do
-    if "$@"; then
-      echo "[health-check] $name is ready"
-      return 0
-    fi
-    echo "[health-check] waiting for $name ($i/$attempts)..."
-    sleep "$interval"
-  done
-
-  echo "[health-check] $name is not ready after $attempts attempts"
-  return 1
-}
-
-check_zookeeper() {
-  # zookeeper 2181 is not HTTP; "empty reply" also indicates port is open.
-  curl -sS --max-time 2 127.0.0.1:2181 >/dev/null 2>&1
-  local code=$?
-  [ "$code" -eq 0 ] || [ "$code" -eq 52 ]
-}
-
-check_nacos() {
-  curl -fsS --max-time 3 
http://127.0.0.1:8848/nacos/v1/console/health/liveness >/dev/null
-}
-
-check_nacos_grpc() {
-  # Nacos 2.x gRPC port.
-  timeout 2 bash -c 'cat < /dev/null > /dev/tcp/127.0.0.1/9848' >/dev/null 2>&1
-}
-
-check_polaris() {
-  curl -fsS --max-time 3 http://127.0.0.1:8090 >/dev/null
-}
-
-check_etcd() {
-  curl -fsS --max-time 3 http://127.0.0.1:2379/health >/dev/null
-}
-
-retry "zookeeper" 24 5 check_zookeeper
-retry "nacos" 24 5 check_nacos
-retry "nacos-grpc-9848" 24 5 check_nacos_grpc
-retry "polaris" 24 5 check_polaris
-retry "etcd" 24 5 check_etcd
diff --git a/generic/java-client/java-client/run.sh 
b/generic/java-client/java-client/run.sh
index 175f47b2..2884ca0c 100755
--- a/generic/java-client/java-client/run.sh
+++ b/generic/java-client/java-client/run.sh
@@ -1 +1 @@
-mvn -e clean package && java -jar 
target/generic-dubbo-java-client-1.0-SNAPSHOT.jar
\ No newline at end of file
+mvn -q -e clean package && java -jar 
target/generic-dubbo-java-client-1.0-SNAPSHOT.jar
\ No newline at end of file
diff --git a/generic/java-server/java-server/run.sh 
b/generic/java-server/java-server/run.sh
index a50c1e5e..0fa16c68 100755
--- a/generic/java-server/java-server/run.sh
+++ b/generic/java-server/java-server/run.sh
@@ -1 +1 @@
-mvn -e clean package && java -jar 
target/generic-dubbo-java-server-1.0-SNAPSHOT.jar
\ No newline at end of file
+mvn -q -e clean package && java -jar 
target/generic-dubbo-java-server-1.0-SNAPSHOT.jar
\ No newline at end of file
diff --git a/http3/java-client/run.sh b/http3/java-client/run.sh
index 03dd6291..5853923b 100755
--- a/http3/java-client/run.sh
+++ b/http3/java-client/run.sh
@@ -1,4 +1,4 @@
 #!/bin/bash
 
 cd "$(dirname "$0")"
-mvn compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.h3.H3ClientApp"
+mvn -q compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.h3.H3ClientApp"
diff --git a/http3/java-server/run.sh b/http3/java-server/run.sh
index 09c95185..32db0c49 100755
--- a/http3/java-server/run.sh
+++ b/http3/java-server/run.sh
@@ -1,4 +1,4 @@
 #!/bin/bash
 
 cd "$(dirname "$0")"
-mvn compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.h3.H3ServerApp"
+mvn -q compile exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.h3.H3ServerApp"
diff --git a/integrate_test.sh b/integrate_test.sh
index 8462f87d..3a507488 100755
--- a/integrate_test.sh
+++ b/integrate_test.sh
@@ -28,47 +28,57 @@ P_DIR="$(pwd)/$SAMPLE"
 PROJECT_NAME="$(basename "$P_DIR")"
 GO_SERVER_LOG="/tmp/.${PROJECT_NAME}.go-server.log"
 JAVA_SERVER_LOG="/tmp/.${PROJECT_NAME}.java-server.log"
+PID_FILE="/tmp/.${PROJECT_NAME}.pid"
+GO_CLIENT_TIMEOUT_SECONDS="${GO_CLIENT_TIMEOUT_SECONDS:-90}"
+JAVA_SERVER_READY_TIMEOUT_SECONDS="${JAVA_SERVER_READY_TIMEOUT_SECONDS:-60}"
+JAVA_SERVER_HOST="${JAVA_SERVER_HOST:-127.0.0.1}"
+JAVA_SERVER_PORT="${JAVA_SERVER_PORT:-20000}"
 
 if [ ! -d "$P_DIR" ]; then
   echo "Sample directory not found: $P_DIR"
   exit 1
 fi
 
+MAKE_CMD=(make PROJECT_DIR="$P_DIR" PROJECT_NAME="$PROJECT_NAME" -f Makefile)
 JAVA_SERVER_RUN_SH="$(find "$P_DIR" -type f -path '*/java-server*/run.sh' 
-print -quit || true)"
 JAVA_CLIENT_RUN_SH="$(find "$P_DIR" -type f -path '*/java-client*/run.sh' 
-print -quit || true)"
 JAVA_SERVER_PID=""
 GO_AUX_PIDS=()
+
 JAVA_ENABLED=true
 if { [ -n "$JAVA_SERVER_RUN_SH" ] || [ -n "$JAVA_CLIENT_RUN_SH" ]; } && ! 
command -v mvn >/dev/null 2>&1; then
   JAVA_ENABLED=false
   echo "Maven (mvn) is not available, all Java phases will be skipped for 
sample: $SAMPLE"
 fi
 
-cleanup() {
-  local aux_pid
-  if [ "${#GO_AUX_PIDS[@]}" -gt 0 ]; then
-    for aux_pid in "${GO_AUX_PIDS[@]}"; do
-      if [ -n "$aux_pid" ] && kill -0 "$aux_pid" 2>/dev/null; then
-        kill "$aux_pid" 2>/dev/null || true
-        sleep 1
-        kill -9 "$aux_pid" 2>/dev/null || true
-      fi
-    done
-  fi
+run_make_target() {
+  "${MAKE_CMD[@]}" "$1"
+}
 
-  if [ -n "$JAVA_SERVER_PID" ] && kill -0 "$JAVA_SERVER_PID" 2>/dev/null; then
-    kill "$JAVA_SERVER_PID" 2>/dev/null || true
+kill_if_running() {
+  local pid="$1"
+  if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
+    kill "$pid" 2>/dev/null || true
     sleep 1
-    kill -9 "$JAVA_SERVER_PID" 2>/dev/null || true
+    kill -9 "$pid" 2>/dev/null || true
   fi
+}
+
+cleanup() {
+  local aux_pid
+  for aux_pid in "${GO_AUX_PIDS[@]:-}"; do
+    kill_if_running "$aux_pid"
+  done
 
-  make PROJECT_DIR="$P_DIR" PROJECT_NAME="$PROJECT_NAME" -f Makefile stop 
>/dev/null 2>&1 || true
+  kill_if_running "$JAVA_SERVER_PID"
+  run_make_target stop >/dev/null 2>&1 || true
 }
 trap cleanup EXIT
 
 resolve_config_path() {
   local role="$1"
   local conf_dir="$P_DIR/$role/conf"
+
   if [ -f "$conf_dir/dubbogo.yml" ]; then
     echo "$conf_dir/dubbogo.yml"
     return 0
@@ -93,6 +103,7 @@ wait_for_tcp_port() {
     sleep 1
     elapsed=$((elapsed + 1))
   done
+
   return 1
 }
 
@@ -102,8 +113,6 @@ run_go_client() {
     return 1
   fi
 
-  local timeout_seconds="${GO_CLIENT_TIMEOUT_SECONDS:-90}"
-
   local client_conf
   client_conf="$(resolve_config_path "go-client" || true)"
 
@@ -119,11 +128,9 @@ run_go_client() {
   local elapsed=0
 
   while kill -0 "$go_client_pid" 2>/dev/null; do
-    if [ "$elapsed" -ge "$timeout_seconds" ]; then
-      echo "Go client timed out after ${timeout_seconds}s: $SAMPLE"
-      kill "$go_client_pid" 2>/dev/null || true
-      sleep 1
-      kill -9 "$go_client_pid" 2>/dev/null || true
+    if [ "$elapsed" -ge "$GO_CLIENT_TIMEOUT_SECONDS" ]; then
+      echo "Go client timed out after ${GO_CLIENT_TIMEOUT_SECONDS}s: $SAMPLE"
+      kill_if_running "$go_client_pid"
       wait "$go_client_pid" 2>/dev/null || true
       return 124
     fi
@@ -143,6 +150,7 @@ start_aux_go_servers() {
 
   while IFS= read -r aux_server_dir; do
     [ -z "$aux_server_dir" ] && continue
+
     aux_name="$(basename "$(dirname "$aux_server_dir")")"
     aux_log="/tmp/.${PROJECT_NAME}.${aux_name}.log"
 
@@ -151,6 +159,7 @@ start_aux_go_servers() {
       cd "$P_DIR"
       go run "./${aux_server_dir#"$P_DIR"/}"/*.go
     ) >"$aux_log" 2>&1 &
+
     aux_pid="$!"
     GO_AUX_PIDS+=("$aux_pid")
 
@@ -171,46 +180,28 @@ start_aux_go_servers() {
   done < <(find "$P_DIR" -mindepth 1 -maxdepth 1 -type d -name '*-server' ! 
-name 'go-server' ! -name 'java-server' -exec sh -c 'test -d "$1/cmd" && ls 
"$1"/cmd/*.go >/dev/null 2>&1 && echo "$1/cmd"' _ {} \;)
 }
 
-run_java_client_if_present() {
-  if [ "$JAVA_ENABLED" != "true" ]; then
-    echo "Java phase disabled, skipping Java client run"
-    return 0
-  fi
-
-  if [ -z "$JAVA_CLIENT_RUN_SH" ]; then
-    echo "No Java client found, skipping Java client run"
-    return 0
-  fi
-
-  local java_client_dir
-  java_client_dir="$(dirname "$JAVA_CLIENT_RUN_SH")"
-  echo "Running Java client: $JAVA_CLIENT_RUN_SH"
-  (
-    cd "$java_client_dir"
-    bash ./run.sh
-  )
-}
-
 start_go_server() {
   echo "Starting Go server..."
+
   local server_conf
   server_conf="$(resolve_config_path "go-server" || true)"
+
   if [ -n "$server_conf" ]; then
-    DUBBO_GO_CONFIG_PATH="$server_conf" make PROJECT_DIR="$P_DIR" 
PROJECT_NAME="$PROJECT_NAME" -f Makefile start >"$GO_SERVER_LOG" 2>&1
+    DUBBO_GO_CONFIG_PATH="$server_conf" run_make_target start 
>"$GO_SERVER_LOG" 2>&1
   else
-    make PROJECT_DIR="$P_DIR" PROJECT_NAME="$PROJECT_NAME" -f Makefile start 
>"$GO_SERVER_LOG" 2>&1
+    run_make_target start >"$GO_SERVER_LOG" 2>&1
   fi
+
   sleep 5
 
-  local pid_file="/tmp/.${PROJECT_NAME}.pid"
-  if [ ! -f "$pid_file" ]; then
-    echo "Go server pid file not found: $pid_file"
+  if [ ! -f "$PID_FILE" ]; then
+    echo "Go server pid file not found: $PID_FILE"
     cat "$GO_SERVER_LOG" || true
     return 1
   fi
 
   local server_pid
-  server_pid="$(cat "$pid_file" 2>/dev/null || true)"
+  server_pid="$(cat "$PID_FILE" 2>/dev/null || true)"
   if [ -z "$server_pid" ] || ! kill -0 "$server_pid" 2>/dev/null; then
     echo "Go server is not running after startup: $SAMPLE"
     cat "$GO_SERVER_LOG" || true
@@ -222,20 +213,41 @@ start_go_server() {
 
 stop_go_server() {
   echo "Stopping Go server..."
-  make PROJECT_DIR="$P_DIR" PROJECT_NAME="$PROJECT_NAME" -f Makefile stop 
>/dev/null 2>&1 || true
+  run_make_target stop >/dev/null 2>&1 || true
 }
 
-start_java_server_if_present() {
+run_java_client_if_present() {
+  if [ -z "$JAVA_CLIENT_RUN_SH" ]; then
+    echo "No Java client found, skipping Java client run"
+    return 0
+  fi
+
   if [ "$JAVA_ENABLED" != "true" ]; then
-    echo "Java phase disabled, skipping Java server phase"
-    return 1
+    echo "Java phase disabled, skipping Java client run"
+    return 0
   fi
 
+  local java_client_dir
+  java_client_dir="$(dirname "$JAVA_CLIENT_RUN_SH")"
+
+  echo "Running Java client: $JAVA_CLIENT_RUN_SH"
+  (
+    cd "$java_client_dir"
+    bash ./run.sh
+  )
+}
+
+start_java_server_if_present() {
   if [ -z "$JAVA_SERVER_RUN_SH" ]; then
     echo "No Java server found, skipping Java server phase"
     return 1
   fi
 
+  if [ "$JAVA_ENABLED" != "true" ]; then
+    echo "Java phase disabled, skipping Java server phase"
+    return 1
+  fi
+
   local java_server_dir
   java_server_dir="$(dirname "$JAVA_SERVER_RUN_SH")"
 
@@ -254,11 +266,8 @@ start_java_server_if_present() {
     return 1
   fi
 
-  local java_server_host="${JAVA_SERVER_HOST:-127.0.0.1}"
-  local java_server_port="${JAVA_SERVER_PORT:-20000}"
-  local java_server_wait_timeout="${JAVA_SERVER_READY_TIMEOUT_SECONDS:-60}"
-  if ! wait_for_tcp_port "$java_server_host" "$java_server_port" 
"$java_server_wait_timeout"; then
-    echo "Java server is running but not ready on 
${java_server_host}:${java_server_port} after ${java_server_wait_timeout}s"
+  if ! wait_for_tcp_port "$JAVA_SERVER_HOST" "$JAVA_SERVER_PORT" 
"$JAVA_SERVER_READY_TIMEOUT_SECONDS"; then
+    echo "Java server is running but not ready on 
${JAVA_SERVER_HOST}:${JAVA_SERVER_PORT} after 
${JAVA_SERVER_READY_TIMEOUT_SECONDS}s"
     cat "$JAVA_SERVER_LOG" || true
     return 1
   fi
@@ -266,40 +275,37 @@ start_java_server_if_present() {
   return 0
 }
 
-echo "=========================================="
-echo "Starting sample flow for: $SAMPLE"
-echo "Sample directory: $P_DIR"
-echo "=========================================="
+main() {
+  echo "=========================================="
+  echo "Starting sample flow for: $SAMPLE"
+  echo "Sample directory: $P_DIR"
+  echo "=========================================="
 
-# 1. go-server up
-start_go_server
-start_aux_go_servers
+  start_go_server
+  start_aux_go_servers
 
-# 2. go-client
-run_go_client
+  run_go_client
+  run_java_client_if_present
 
-# 3. java-client (if exists)
-run_java_client_if_present
+  stop_go_server
 
-# 4. go-server down
-stop_go_server
+  if start_java_server_if_present; then
+    run_java_client_if_present
 
-# 5. java-server (if exists)
-if start_java_server_if_present; then
-  # 6. java-client
-  run_java_client_if_present
+    if ! kill -0 "$JAVA_SERVER_PID" 2>/dev/null; then
+      echo "Java server exited before final Go client phase. Log:"
+      cat "$JAVA_SERVER_LOG" || true
+      exit 1
+    fi
 
-  # 7. go-client
-  if ! kill -0 "$JAVA_SERVER_PID" 2>/dev/null; then
-    echo "Java server exited before final Go client phase. Log:"
-    cat "$JAVA_SERVER_LOG" || true
-    exit 1
+    run_go_client
+  else
+    echo "Java server phase skipped"
   fi
-  run_go_client
-else
-  echo "Java server phase skipped"
-fi
 
-echo "=========================================="
-echo "Sample flow completed for: $SAMPLE"
-echo "=========================================="
+  echo "=========================================="
+  echo "Sample flow completed for: $SAMPLE"
+  echo "=========================================="
+}
+
+main
diff --git a/java_interop/non-protobuf-dubbo/java-client/run.sh 
b/java_interop/non-protobuf-dubbo/java-client/run.sh
index f2841c84..611e2ca7 100644
--- a/java_interop/non-protobuf-dubbo/java-client/run.sh
+++ b/java_interop/non-protobuf-dubbo/java-client/run.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 set -euo pipefail
 
-mvn -B -ntp clean compile exec:java \
+mvn -q -B -ntp clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.hessian2.client.Application" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/java_interop/non-protobuf-dubbo/java-server/run.sh 
b/java_interop/non-protobuf-dubbo/java-server/run.sh
index dc33303b..c7a74c21 100644
--- a/java_interop/non-protobuf-dubbo/java-server/run.sh
+++ b/java_interop/non-protobuf-dubbo/java-server/run.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 set -euo pipefail
 
-mvn -B -ntp clean compile exec:java \
+mvn -q -B -ntp clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.hessian2.provider.Application" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/java_interop/non-protobuf-triple/java-client/run.sh 
b/java_interop/non-protobuf-triple/java-client/run.sh
index 40440dfe..b48a7019 100644
--- a/java_interop/non-protobuf-triple/java-client/run.sh
+++ b/java_interop/non-protobuf-triple/java-client/run.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 set -euo pipefail
 
-mvn -B -ntp clean compile exec:java \
+mvn -q -B -ntp clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.tri.hessian2.client.Application" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/java_interop/non-protobuf-triple/java-server/run.sh 
b/java_interop/non-protobuf-triple/java-server/run.sh
index 2fe18deb..53216027 100644
--- a/java_interop/non-protobuf-triple/java-server/run.sh
+++ b/java_interop/non-protobuf-triple/java-server/run.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 set -euo pipefail
 
-mvn -B -ntp clean compile exec:java \
+mvn -q -B -ntp clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.tri.hessian2.provider.Application" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/java_interop/protobuf-triple/java-client/run.sh 
b/java_interop/protobuf-triple/java-client/run.sh
index e67e60d5..6ab3de3b 100644
--- a/java_interop/protobuf-triple/java-client/run.sh
+++ b/java_interop/protobuf-triple/java-client/run.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 set -euo pipefail
 
-mvn -B -ntp clean compile exec:java \
+mvn -q -B -ntp clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.sample.Consumer" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/java_interop/protobuf-triple/java-server/run.sh 
b/java_interop/protobuf-triple/java-server/run.sh
index c5d58c50..f83584cf 100644
--- a/java_interop/protobuf-triple/java-server/run.sh
+++ b/java_interop/protobuf-triple/java-server/run.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 set -euo pipefail
 
-mvn -B -ntp clean compile exec:java \
+mvn -q -B -ntp clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.sample.Provider" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/java_interop/service_discovery/interface/java-client/run.sh 
b/java_interop/service_discovery/interface/java-client/run.sh
index ded11de9..0b66efad 100644
--- a/java_interop/service_discovery/interface/java-client/run.sh
+++ b/java_interop/service_discovery/interface/java-client/run.sh
@@ -1,4 +1,4 @@
-mvn -e clean compile exec:java \
+mvn -q -e clean compile exec:java \
   -Dspotless.apply.skip=true \
   -Dspotless.check.skip=true \
   -Dexec.mainClass="org.apache.dubbo.samples.Main" \
diff --git a/java_interop/service_discovery/interface/java-server/run.sh 
b/java_interop/service_discovery/interface/java-server/run.sh
index ded11de9..0b66efad 100644
--- a/java_interop/service_discovery/interface/java-server/run.sh
+++ b/java_interop/service_discovery/interface/java-server/run.sh
@@ -1,4 +1,4 @@
-mvn -e clean compile exec:java \
+mvn -q -e clean compile exec:java \
   -Dspotless.apply.skip=true \
   -Dspotless.check.skip=true \
   -Dexec.mainClass="org.apache.dubbo.samples.Main" \
diff --git a/java_interop/service_discovery/service/java-client/run.sh 
b/java_interop/service_discovery/service/java-client/run.sh
index 24a6dc86..347c3270 100644
--- a/java_interop/service_discovery/service/java-client/run.sh
+++ b/java_interop/service_discovery/service/java-client/run.sh
@@ -4,6 +4,6 @@ set -euo pipefail
 JDK_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED"
 export MAVEN_OPTS="${MAVEN_OPTS:-} ${JDK_OPENS}"
 
-mvn -B -ntp -e clean compile exec:java \
+mvn -q -B -ntp -e clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.samples.Main" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/java_interop/service_discovery/service/java-server/run.sh 
b/java_interop/service_discovery/service/java-server/run.sh
index 24a6dc86..347c3270 100644
--- a/java_interop/service_discovery/service/java-server/run.sh
+++ b/java_interop/service_discovery/service/java-server/run.sh
@@ -4,6 +4,6 @@ set -euo pipefail
 JDK_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED"
 export MAVEN_OPTS="${MAVEN_OPTS:-} ${JDK_OPENS}"
 
-mvn -B -ntp -e clean compile exec:java \
+mvn -q -B -ntp -e clean compile exec:java \
   -Dexec.mainClass="org.apache.dubbo.samples.Main" \
   -Dexec.cleanupDaemonThreads=false
diff --git a/start_integrate_test.sh b/start_integrate_test.sh
index dc6d892d..e46dba82 100755
--- a/start_integrate_test.sh
+++ b/start_integrate_test.sh
@@ -103,11 +103,7 @@ cleanup() {
 trap cleanup EXIT
 
 echo "::group::> docker up"
-$DOCKER_COMPOSE_CMD -f "$DOCKER_DIR"/docker-compose.yml up -d
-echo "::endgroup::"
-
-echo "::group::> docker health-check"
-bash -f "$DOCKER_DIR"/docker-health-check.sh
+$DOCKER_COMPOSE_CMD -f "$DOCKER_DIR"/docker-compose.yml up -d --wait
 echo "::endgroup::"
 
 for t in "${array[@]}"; do
diff --git a/streaming/java-client/run.sh b/streaming/java-client/run.sh
index 8aa4c34e..6c1325ff 100644
--- a/streaming/java-client/run.sh
+++ b/streaming/java-client/run.sh
@@ -1,3 +1,3 @@
 #!/bin/bash
-mvn clean compile
-mvn exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.tri.streaming.StreamingClient"
+mvn -q clean compile
+mvn -q exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.tri.streaming.StreamingClient"
diff --git a/streaming/java-server/run.sh b/streaming/java-server/run.sh
index cad7c4ed..159742a9 100644
--- a/streaming/java-server/run.sh
+++ b/streaming/java-server/run.sh
@@ -1,3 +1,3 @@
 #!/bin/bash
-mvn clean compile
-mvn exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.tri.streaming.StreamingServer"
+mvn -q clean compile
+mvn -q exec:java 
-Dexec.mainClass="org.apache.dubbo.samples.tri.streaming.StreamingServer"

Reply via email to