This is an automated email from the ASF dual-hosted git repository.
terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git
The following commit(s) were added to refs/heads/master by this push:
new 06ddc45bb Fix Nacos integration nativetest for GraalVM Native Image
(#2552)
06ddc45bb is described below
commit 06ddc45bba9932d9931bf81ffaa91f1360ff28bc
Author: Hengqian Ling <[email protected]>
AuthorDate: Sat Oct 10 22:18:25 2026 +0800
Fix Nacos integration nativetest for GraalVM Native Image (#2552)
---
.github/workflows/graalvm.yml | 3 +-
.../configuration/graalvm-native-image.cn.md | 91 +-
.../configuration/graalvm-native-image.en.md | 97 +-
.../user-manual/configuration/java-api.cn.md | 16 +-
.../user-manual/configuration/java-api.en.md | 17 +-
.../configuration/registry-center/etcd.cn.md | 25 +-
.../configuration/registry-center/etcd.en.md | 26 +-
pom.xml | 29 +-
.../nacos-client/3.2.4/reachability-metadata.json | 741 +++++++++++++
.../1.82.2/reachability-metadata.json | 180 +++
.../reachability-metadata.json | 1164 +++++++++++++++++---
registry-center/provider/nacos/pom.xml | 9 +
test/native/native-image-filter/extra-filter.json | 4 +
test/native/pom.xml | 28 +
.../commons/job/dataflow/JavaDataflowJob.java | 14 -
.../natived/commons/job/simple/JavaSimpleJob.java | 8 -
.../test/natived/it/nacos/NacosJavaTest.java | 26 +-
.../test/natived/it/operation/JavaTest.java | 28 +-
.../test/natived/it/staticd/SpringBootDTest.java | 6 +-
test/native/src/test/resources/logback-test.xml | 6 +-
20 files changed, 2238 insertions(+), 280 deletions(-)
diff --git a/.github/workflows/graalvm.yml b/.github/workflows/graalvm.yml
index ac2097c86..c3a952901 100644
--- a/.github/workflows/graalvm.yml
+++ b/.github/workflows/graalvm.yml
@@ -35,10 +35,11 @@ jobs:
java: [ '25.0.2' ]
os: [ 'ubuntu-latest' ]
runs-on: ${{ matrix.os }}
+ timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Set up GraalVM CE ${{ matrix.java }}
- uses: graalvm/setup-graalvm@6f3fa030c4b8f77c1f554a860f593a654538fa38
# v1.5.6
+ uses: graalvm/setup-graalvm@0426e2e191540e8514dff98dc52a5f5146a2a276
# v1.6.6
with:
java-version: ${{ matrix.java }}
distribution: 'graalvm-community'
diff --git a/docs/content/user-manual/configuration/graalvm-native-image.cn.md
b/docs/content/user-manual/configuration/graalvm-native-image.cn.md
index d806e8e02..87d4940de 100644
--- a/docs/content/user-manual/configuration/graalvm-native-image.cn.md
+++ b/docs/content/user-manual/configuration/graalvm-native-image.cn.md
@@ -27,6 +27,14 @@ ElasticJob 不为已停止维护的 GraalVM CE 版本设置 CI。
使用者需要主动使用 GraalVM Reachability Metadata 中央仓库。
如下配置可供参考,以配置项目额外的 Maven Profiles,以 GraalVM Native Build Tools 的文档为准。
+当应用的 classpath 同时包含 Nacos 客户端和 Logback 时,`grpc-netty-shaded` 使用的 shaded Netty
类会在镜像构建期
+初始化 Logback logger,构建将以 `ch.qos.logback.classic.Logger was found in the image
heap` 失败。
+请通过构建参数 `--initialize-at-run-time=io.grpc.netty.shaded.io.netty` 将整棵 shaded
Netty 树推迟到运行时初始化。
+
+`native-maven-plugin` 1.1.14 捆绑的 metadata 仓库将 `io.netty:netty-common` 和
`io.netty:netty-transport` 的
+latest metadata 标记为 Netty `5.0.0.Alpha2`。将该 metadata 应用于 Netty 4.1.x 会导致 gRPC
客户端在协议协商阶段挂起,
+因此需要通过 `metadataRepository` 将这些构件以及 `io.netty:netty-codec` 固定到最后一个 Netty 4.x
metadata。
+
```xml
<project>
<dependencies>
@@ -42,8 +50,33 @@ ElasticJob 不为已停止维护的 GraalVM CE 版本设置 CI。
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
- <version>1.1.3</version>
+ <version>1.1.14</version>
<extensions>true</extensions>
+ <configuration>
+ <buildArgs>
+
<arg>--initialize-at-run-time=io.grpc.netty.shaded.io.netty</arg>
+ </buildArgs>
+ <metadataRepository>
+ <enabled>true</enabled>
+ <dependencies>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-transport</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-codec</artifactId>
+ <metadataVersion>4.1.42.Final</metadataVersion>
+ </dependency>
+ </dependencies>
+ </metadataRepository>
+ </configuration>
<executions>
<execution>
<id>build-native</id>
@@ -73,19 +106,31 @@ ElasticJob 不为已停止维护的 GraalVM CE 版本设置 CI。
由于 https://github.com/gradle/gradle/issues/17559 的限制,用户需要通过 Maven 依赖的形式引入
Metadata Repository 的 JSON 文件。
参考 https://github.com/graalvm/native-build-tools/issues/572 。
+当应用的 classpath 同时包含 Nacos 客户端和 Logback 时,请通过构建参数
+`--initialize-at-run-time=io.grpc.netty.shaded.io.netty` 将 shaded Netty
树推迟到运行时初始化。
+当启用插件的 metadata 仓库检索而不是捆绑的 ZIP 文件时,请通过 `moduleToConfigVersion` 固定 Netty
metadata 版本,
+避免将 Netty `5.0.0.Alpha2` 的 metadata 应用于 Netty 4.1.x。
+
```groovy
plugins {
- id 'org.graalvm.buildtools.native' version '1.1.3'
+ id 'org.graalvm.buildtools.native' version '1.1.14'
}
dependencies {
implementation
'org.apache.shardingsphere.elasticjob:elasticjob-bootstrap:${elasticjob.version}'
- implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.3', classifier: 'repository',
ext: 'zip')
+ implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.14', classifier: 'repository',
ext: 'zip')
}
graalvmNative {
+ binaries.all {
+ buildArgs.add('--initialize-at-run-time=io.grpc.netty.shaded.io.netty')
+ }
metadataRepository {
enabled.set(false)
+ // 当启用 metadata 仓库检索时,请固定 Netty metadata 版本:
+ // moduleToConfigVersion.put("io.netty:netty-common", "4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-transport",
"4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-codec", "4.1.42.Final")
}
}
```
@@ -96,6 +141,7 @@ graalvmNative {
使用者需要主动使用 GraalVM Reachability Metadata 中央仓库。
如下配置可供参考,以配置项目额外的 Maven Profiles,以 GraalVM Native Build Tools 的文档为准。
+与“使用 ElasticJob 的 Java API”一节同理,`buildArgs` 与 `metadataRepository` 配置是必需的。
```xml
<project>
@@ -123,8 +169,33 @@ graalvmNative {
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
- <version>1.1.3</version>
+ <version>1.1.14</version>
<extensions>true</extensions>
+ <configuration>
+ <buildArgs>
+
<arg>--initialize-at-run-time=io.grpc.netty.shaded.io.netty</arg>
+ </buildArgs>
+ <metadataRepository>
+ <enabled>true</enabled>
+ <dependencies>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-transport</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-codec</artifactId>
+ <metadataVersion>4.1.42.Final</metadataVersion>
+ </dependency>
+ </dependencies>
+ </metadataRepository>
+ </configuration>
<executions>
<execution>
<id>build-native</id>
@@ -166,12 +237,13 @@ graalvmNative {
如下配置可供参考,以配置项目额外的 Gradle Tasks,以 GraalVM Native Build Tools 的文档为准。
由于 https://github.com/gradle/gradle/issues/17559 的限制,用户需要通过 Maven 依赖的形式引入
Metadata Repository 的 JSON 文件。
参考 https://github.com/graalvm/native-build-tools/issues/572 。
+`buildArgs` 与 `moduleToConfigVersion` 配置与“使用 ElasticJob 的 Java API”一节同理,是必需的。
```groovy
plugins {
id 'org.springframework.boot' version '3.5.16'
id 'io.spring.dependency-management' version '1.1.7'
- id 'org.graalvm.buildtools.native' version '1.1.3'
+ id 'org.graalvm.buildtools.native' version '1.1.14'
}
dependencies {
@@ -179,12 +251,19 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation
'org.apache.shardingsphere.elasticjob:elasticjob-spring-boot-starter:${elasticjob.version}'
- implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.3', classifier: 'repository',
ext: 'zip')
+ implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.14', classifier: 'repository',
ext: 'zip')
}
graalvmNative {
+ binaries.all {
+ buildArgs.add('--initialize-at-run-time=io.grpc.netty.shaded.io.netty')
+ }
metadataRepository {
enabled.set(false)
+ // 当启用 metadata 仓库检索时,请固定 Netty metadata 版本:
+ // moduleToConfigVersion.put("io.netty:netty-common", "4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-transport",
"4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-codec", "4.1.42.Final")
}
}
```
diff --git a/docs/content/user-manual/configuration/graalvm-native-image.en.md
b/docs/content/user-manual/configuration/graalvm-native-image.en.md
index 862f4b83d..85f70ce23 100644
--- a/docs/content/user-manual/configuration/graalvm-native-image.en.md
+++ b/docs/content/user-manual/configuration/graalvm-native-image.en.md
@@ -29,6 +29,17 @@ Users need to actively use the GraalVM Reachability Metadata
Central Repository.
The following configuration is for reference. To configure additional Maven
Profiles for the project,
refer to the documentation of GraalVM Native Build Tools.
+When the application classpath contains both the Nacos client and Logback, the
shaded Netty classes used by
+`grpc-netty-shaded` initialize Logback loggers during the image build and the
build fails with
+`ch.qos.logback.classic.Logger was found in the image heap`. Pass
+`--initialize-at-run-time=io.grpc.netty.shaded.io.netty` as a build argument
to defer the whole shaded
+Netty tree to run time.
+
+The metadata repository bundled with `native-maven-plugin` 1.1.14 marks the
Netty `5.0.0.Alpha2` metadata as the
+latest one for `io.netty:netty-common` and `io.netty:netty-transport`.
Applying that metadata to Netty 4.1.x makes
+the gRPC client hang during protocol negotiation, so pin these artifacts, as
well as `io.netty:netty-codec`,
+to the last Netty 4.x metadata through `metadataRepository`.
+
```xml
<project>
<dependencies>
@@ -44,8 +55,33 @@ refer to the documentation of GraalVM Native Build Tools.
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
- <version>1.1.3</version>
+ <version>1.1.14</version>
<extensions>true</extensions>
+ <configuration>
+ <buildArgs>
+
<arg>--initialize-at-run-time=io.grpc.netty.shaded.io.netty</arg>
+ </buildArgs>
+ <metadataRepository>
+ <enabled>true</enabled>
+ <dependencies>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-transport</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-codec</artifactId>
+ <metadataVersion>4.1.42.Final</metadataVersion>
+ </dependency>
+ </dependencies>
+ </metadataRepository>
+ </configuration>
<executions>
<execution>
<id>build-native</id>
@@ -75,19 +111,32 @@ The following configuration is for reference. To configure
additional Gradle Tas
Due to the limitations of https://github.com/gradle/gradle/issues/17559, users
need to introduce the Metadata Repository JSON file in the form of Maven
dependencies.
Refer to https://github.com/graalvm/native-build-tools/issues/572.
+When the application classpath contains both the Nacos client and Logback, add
+`--initialize-at-run-time=io.grpc.netty.shaded.io.netty` to the build
arguments to defer the shaded Netty tree
+to run time. When the metadata repository search of the plugin is enabled
instead of the bundled ZIP file, pin
+the Netty metadata versions through `moduleToConfigVersion` so that the Netty
`5.0.0.Alpha2` metadata is not
+applied to Netty 4.1.x.
+
```groovy
plugins {
- id 'org.graalvm.buildtools.native' version '1.1.3'
+ id 'org.graalvm.buildtools.native' version '1.1.14'
}
dependencies {
implementation
'org.apache.shardingsphere.elasticjob:elasticjob-bootstrap:${elasticjob.version}'
- implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.3', classifier: 'repository',
ext: 'zip')
+ implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.14', classifier: 'repository',
ext: 'zip')
}
graalvmNative {
+ binaries.all {
+ buildArgs.add('--initialize-at-run-time=io.grpc.netty.shaded.io.netty')
+ }
metadataRepository {
enabled.set(false)
+ // When the metadata repository search is enabled instead, pin the
Netty metadata versions:
+ // moduleToConfigVersion.put("io.netty:netty-common", "4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-transport",
"4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-codec", "4.1.42.Final")
}
}
```
@@ -99,6 +148,8 @@ graalvmNative {
Users need to actively use the GraalVM Reachability Metadata Central
Repository.
The following configuration is for reference.
To configure additional Maven Profiles for the project, refer to the
documentation of GraalVM Native Build Tools.
+The `buildArgs` and `metadataRepository` configuration is required for the
same reasons as described in the
+"Using ElasticJob's Java API" section.
```xml
<project>
@@ -126,8 +177,33 @@ To configure additional Maven Profiles for the project,
refer to the documentati
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
- <version>1.1.3</version>
+ <version>1.1.14</version>
<extensions>true</extensions>
+ <configuration>
+ <buildArgs>
+
<arg>--initialize-at-run-time=io.grpc.netty.shaded.io.netty</arg>
+ </buildArgs>
+ <metadataRepository>
+ <enabled>true</enabled>
+ <dependencies>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-transport</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-codec</artifactId>
+ <metadataVersion>4.1.42.Final</metadataVersion>
+ </dependency>
+ </dependencies>
+ </metadataRepository>
+ </configuration>
<executions>
<execution>
<id>build-native</id>
@@ -169,12 +245,14 @@ Users need to actively use the GraalVM Reachability
Metadata Central Repository.
The following configuration is for reference. To configure additional Gradle
Tasks for the project, refer to the documentation of GraalVM Native Build Tools.
Due to the limitations of https://github.com/gradle/gradle/issues/17559, users
need to introduce the Metadata Repository JSON file in the form of Maven
dependencies.
Refer to https://github.com/graalvm/native-build-tools/issues/572 .
+The `buildArgs` and `moduleToConfigVersion` configuration is required for the
same reasons as described in the
+"Using ElasticJob's Java API" section.
```groovy
plugins {
id 'org.springframework.boot' version '3.5.16'
id 'io.spring.dependency-management' version '1.1.7'
- id 'org.graalvm.buildtools.native' version '1.1.3'
+ id 'org.graalvm.buildtools.native' version '1.1.14'
}
dependencies {
@@ -182,12 +260,19 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation
'org.apache.shardingsphere.elasticjob:elasticjob-spring-boot-starter:${elasticjob.version}'
- implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.3', classifier: 'repository',
ext: 'zip')
+ implementation(group: 'org.graalvm.buildtools', name:
'graalvm-reachability-metadata', version: '1.1.14', classifier: 'repository',
ext: 'zip')
}
graalvmNative {
+ binaries.all {
+ buildArgs.add('--initialize-at-run-time=io.grpc.netty.shaded.io.netty')
+ }
metadataRepository {
enabled.set(false)
+ // When the metadata repository search is enabled instead, pin the
Netty metadata versions:
+ // moduleToConfigVersion.put("io.netty:netty-common", "4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-transport",
"4.1.115.Final")
+ // moduleToConfigVersion.put("io.netty:netty-codec", "4.1.42.Final")
}
}
```
diff --git a/docs/content/user-manual/configuration/java-api.cn.md
b/docs/content/user-manual/configuration/java-api.cn.md
index 9431341a7..5e1af30db 100644
--- a/docs/content/user-manual/configuration/java-api.cn.md
+++ b/docs/content/user-manual/configuration/java-api.cn.md
@@ -6,7 +6,21 @@ chapter = true
## 注册中心配置
-用于注册和协调作业分布式行为的组件,目前仅支持 ZooKeeper。
+用于注册和协调作业分布式行为的组件。
+ElasticJob 支持 `ZooKeeper`(默认)、`etcd`、`Nacos` 和内存注册中心。
+除 `elasticjob-bootstrap` 外,还需要添加注册中心实现对应的 Maven 依赖:
+
+| 注册中心 | Maven 依赖 |
+|----------|------|
+| ZooKeeper |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-zookeeper-curator`
|
+| etcd |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-etcd` |
+| Nacos |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-nacos` |
+| Memory |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-memory` |
+
+依赖版本使用 `${elasticjob.version}`。
+各注册中心实现的可配置属性与使用示例,请参阅[注册中心配置](/cn/user-manual/configuration/registry-center)。
+
+默认的 ZooKeeper 实现如下所示。
类名称:org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperConfiguration
diff --git a/docs/content/user-manual/configuration/java-api.en.md
b/docs/content/user-manual/configuration/java-api.en.md
index f7a4bc1a9..7ad0c7a4d 100644
--- a/docs/content/user-manual/configuration/java-api.en.md
+++ b/docs/content/user-manual/configuration/java-api.en.md
@@ -6,7 +6,22 @@ chapter = true
## Registry Center Configuration
-The component which is used to register and coordinate the distributed
behavior of jobs, currently only supports `ZooKeeper`.
+The component which is used to register and coordinate the distributed
behavior of jobs.
+ElasticJob supports `ZooKeeper` (the default), `etcd`, `Nacos` and an
in-memory registry center.
+Besides `elasticjob-bootstrap`, add the Maven dependency of the registry
center implementation to the project:
+
+| Registry Center | Maven Dependency
|
+|-----------------|-------------------------------------------------------------------------------------|
+| ZooKeeper |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-zookeeper-curator`
|
+| etcd |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-etcd`
|
+| Nacos |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-nacos`
|
+| Memory |
`org.apache.shardingsphere.elasticjob:elasticjob-registry-center-memory`
|
+
+The dependencies use `${elasticjob.version}` as their version.
+Refer to [Registry Center
Configuration](/en/user-manual/configuration/registry-center) for the
configuration
+properties and usage examples of each implementation.
+
+The default ZooKeeper implementation is described below.
Class name:
`org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperConfiguration`
diff --git a/docs/content/user-manual/configuration/registry-center/etcd.cn.md
b/docs/content/user-manual/configuration/registry-center/etcd.cn.md
index ffaa799bc..1ec7c7bab 100644
--- a/docs/content/user-manual/configuration/registry-center/etcd.cn.md
+++ b/docs/content/user-manual/configuration/registry-center/etcd.cn.md
@@ -73,26 +73,7 @@ public class EtcdRegistryCenterExample {
}
```
-### Spring Boot Starter
-
-```yaml
-elasticjob:
- reg-center:
- type: etcd
- server-lists: http://host1:2379,http://host2:2379
- namespace: elasticjob
- connection-timeout-milliseconds: 5000
- username: root
- password: password
-```
-
-### Spring Namespace
+### Spring Boot Starter 与 Spring Namespace
-```xml
-<elasticjob:etcd id="regCenter"
- server-lists="http://host1:2379,http://host2:2379"
- namespace="elasticjob"
- connection-timeout-milliseconds="5000"
- username="root"
- password="password" />
-```
+目前 Spring Boot Starter 和 Spring Namespace 仅支持 ZooKeeper,因此 etcd 只能通过 Java API 或
+`RegistryCenterFactory`
使用。详见[注册中心配置](/cn/user-manual/configuration/registry-center)。
diff --git a/docs/content/user-manual/configuration/registry-center/etcd.en.md
b/docs/content/user-manual/configuration/registry-center/etcd.en.md
index af7ff5270..bc3293ca8 100644
--- a/docs/content/user-manual/configuration/registry-center/etcd.en.md
+++ b/docs/content/user-manual/configuration/registry-center/etcd.en.md
@@ -73,26 +73,8 @@ public class EtcdRegistryCenterExample {
}
```
-### Spring Boot Starter
-
-```yaml
-elasticjob:
- reg-center:
- type: etcd
- server-lists: http://host1:2379,http://host2:2379
- namespace: elasticjob
- connection-timeout-milliseconds: 5000
- username: root
- password: password
-```
-
-### Spring Namespace
+### Spring Boot Starter and Spring Namespace
-```xml
-<elasticjob:etcd id="regCenter"
- server-lists="http://host1:2379,http://host2:2379"
- namespace="elasticjob"
- connection-timeout-milliseconds="5000"
- username="root"
- password="password" />
-```
+The Spring Boot Starter and the Spring Namespace only support ZooKeeper at
present,
+so etcd can only be used through the Java API or `RegistryCenterFactory`.
+See the [Registry Center
Configuration](/en/user-manual/configuration/registry-center) page for details.
diff --git a/pom.xml b/pom.xml
index 4342112c2..931d88446 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,7 @@
<maven.version.range>[3.5.0,)</maven.version.range>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.deploy.skip>false</maven.deploy.skip>
+ <native.agent.enabled>false</native.agent.enabled>
<!-- 3rd party library versions -->
<shardingsphere.version>5.4.1</shardingsphere.version>
@@ -137,7 +138,7 @@
<maven-plugin-plugin.version>3.4</maven-plugin-plugin.version>
<checksum-maven-plugin.version>1.10</checksum-maven-plugin.version>
- <native-maven-plugin.version>1.1.3</native-maven-plugin.version>
+ <native-maven-plugin.version>1.1.14</native-maven-plugin.version>
</properties>
<dependencyManagement>
@@ -233,6 +234,17 @@
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${nacos-client.version}</version>
+ <classifier>pure</classifier>
+ </dependency>
+ <dependency>
+ <groupId>com.alibaba.nacos</groupId>
+ <artifactId>nacos-common</artifactId>
+ <version>${nacos-client.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.alibaba.nacos</groupId>
+ <artifactId>nacos-api</artifactId>
+ <version>${nacos-client.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
@@ -954,6 +966,9 @@
</profile>
<profile>
<id>generateMetadata</id>
+ <properties>
+ <native.agent.enabled>true</native.agent.enabled>
+ </properties>
<build>
<pluginManagement>
<plugins>
@@ -973,7 +988,6 @@
<configuration>
<skipNativeTests>true</skipNativeTests>
<agent>
- <enabled>true</enabled>
<defaultMode>conditional</defaultMode>
<modes>
<conditional>
@@ -993,16 +1007,9 @@
</configuration>
<executions>
<execution>
- <id>build-native</id>
+ <id>merge-agent-files</id>
<goals>
- <goal>compile-no-fork</goal>
- </goals>
- <phase>package</phase>
- </execution>
- <execution>
- <id>test-native</id>
- <goals>
- <goal>test</goal>
+ <goal>merge-agent-files</goal>
</goals>
<phase>test</phase>
</execution>
diff --git
a/reachability-metadata/src/main/resources/META-INF/native-image/com.alibaba.nacos/nacos-client/3.2.4/reachability-metadata.json
b/reachability-metadata/src/main/resources/META-INF/native-image/com.alibaba.nacos/nacos-client/3.2.4/reachability-metadata.json
new file mode 100644
index 000000000..4e515267b
--- /dev/null
+++
b/reachability-metadata/src/main/resources/META-INF/native-image/com.alibaba.nacos/nacos-client/3.2.4/reachability-metadata.json
@@ -0,0 +1,741 @@
+{
+ "reflection": [
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.ability.ClientAbilities",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.ability.ServerAbilities",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.config.ability.ClientConfigAbility",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.config.ability.ServerConfigAbility",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.AbstractConfigRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.AbstractFuzzyWatchNotifyRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ClientConfigMetricRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ClientConfigMetricRequest$MetricsKey",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigBatchListenRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigBatchListenRequest$ConfigListenContext",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigChangeNotifyRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigFuzzyWatchChangeNotifyRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigFuzzyWatchRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigFuzzyWatchSyncRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigFuzzyWatchSyncRequest$Context",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigPublishRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.config.remote.request.ConfigQueryRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.ConfigRemoveRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.request.cluster.ConfigChangeClusterSyncRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ClientConfigMetricResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigChangeBatchListenResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigChangeBatchListenResponse$ConfigContext",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigChangeNotifyResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigFuzzyWatchChangeNotifyResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigFuzzyWatchResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigFuzzyWatchSyncResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigPublishResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigQueryResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.ConfigRemoveResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.api.config.remote.response.cluster.ConfigChangeClusterSyncResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.grpc.auto.Metadata",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.grpc.auto.Metadata$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.grpc.auto.Payload",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.grpc.auto.Payload$Builder",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.Payload",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.ability.ClientRemoteAbility",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.ability.ServerRemoteAbility",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.ClientDetectionRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.ConnectResetRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.ConnectionSetupRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.HealthCheckRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.InternalRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.PushAckRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.Request",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.RequestMeta",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.RequestMeta$1",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.ServerCheckRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.ServerLoaderInfoRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.ServerReloadRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.ServerRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.request.SetupAckRequest",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.ClientDetectionResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.ConnectResetResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.ErrorResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.HealthCheckResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.Response",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.ResponseCode",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.ServerCheckResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.ServerLoaderInfoResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.ServerReloadResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.api.remote.response.SetupAckResponse",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.client.config.NacosConfigService",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.client.config.impl.ClientWorker",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type":
"com.alibaba.nacos.client.config.impl.ClientWorker$ConfigRpcTransportClient",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.common.remote.TlsConfig",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.common.remote.client.RpcClient",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "com.alibaba.nacos.api.config.ConfigService"
+ },
+ "type": "com.alibaba.nacos.common.remote.client.RpcClientTlsConfig",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ }
+ ]
+}
diff --git
a/reachability-metadata/src/main/resources/META-INF/native-image/io.grpc/grpc-netty-shaded/1.82.2/reachability-metadata.json
b/reachability-metadata/src/main/resources/META-INF/native-image/io.grpc/grpc-netty-shaded/1.82.2/reachability-metadata.json
new file mode 100644
index 000000000..8b2ddc745
--- /dev/null
+++
b/reachability-metadata/src/main/resources/META-INF/native-image/io.grpc/grpc-netty-shaded/1.82.2/reachability-metadata.json
@@ -0,0 +1,180 @@
+{
+ "reflection": [
+ {
+ "condition": {
+ "typeReached": "io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder"
+ },
+ "type": "io.grpc.netty.shaded.io.grpc.netty.NettyChannelProvider",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder"
+ },
+ "type":
"io.grpc.netty.shaded.io.grpc.netty.ProtocolNegotiators$PlaintextHandler",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached": "io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder"
+ },
+ "type": "io.grpc.netty.shaded.io.grpc.netty.UdsNettyChannelProvider",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type":
"io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type": "io.grpc.netty.shaded.io.netty.channel.ChannelOutboundBuffer",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type": "io.grpc.netty.shaded.io.netty.channel.DefaultChannelConfig",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type": "io.grpc.netty.shaded.io.netty.channel.DefaultChannelPipeline",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type":
"io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollChannel",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type": "io.grpc.netty.shaded.io.netty.util.DefaultAttributeMap",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type": "io.grpc.netty.shaded.io.netty.util.Recycler$DefaultHandle",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type":
"io.grpc.netty.shaded.io.netty.util.ResourceLeakDetector$DefaultResourceLeak",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type": "io.grpc.netty.shaded.io.netty.util.concurrent.DefaultPromise",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type":
"io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type":
"io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueConsumerIndexField",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type":
"io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerIndexField",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ },
+ {
+ "condition": {
+ "typeReached":
"io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent"
+ },
+ "type":
"io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueueProducerLimitField",
+ "allDeclaredFields": true,
+ "allDeclaredMethods": true,
+ "allDeclaredConstructors": true,
+ "queryAllDeclaredMethods": true,
+ "queryAllDeclaredConstructors": true
+ }
+ ]
+}
diff --git
a/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere.elasticjob/generated-reachability-metadata/reachability-metadata.json
b/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere.elasticjob/generated-reachability-metadata/reachability-metadata.json
index 973b7bfe3..c639c52b5 100644
---
a/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere.elasticjob/generated-reachability-metadata/reachability-metadata.json
+++
b/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere.elasticjob/generated-reachability-metadata/reachability-metadata.json
@@ -50,7 +50,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.reconcile.ReconcileService"
},
"type": "java.util.Properties",
"methods": [
@@ -62,7 +62,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.reconcile.ReconcileService"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionContextService"
},
"type": "java.util.Properties",
"methods": [
@@ -74,7 +74,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionContextService"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionService"
},
"type": "java.util.Properties",
"methods": [
@@ -86,7 +86,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionService"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingService"
},
"type": "java.util.Properties",
"methods": [
@@ -98,7 +98,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ListenServersChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter$EtcdWatchListener"
},
"type": "java.util.Properties",
"methods": [
@@ -110,7 +110,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ShardingTotalCountChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.memory.MemoryRegistryCenter"
},
"type": "java.util.Properties",
"methods": [
@@ -122,7 +122,19 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingService"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter$NacosDataWatch"
+ },
+ "type": "java.util.Properties",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter"
},
"type": "java.util.Properties",
"methods": [
@@ -132,6 +144,12 @@
}
]
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
+ },
+ "type": "libcore.io.Memory"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.item.JobItemExecutorFactory"
@@ -238,6 +256,12 @@
"java.lang.String"
]
},
+ {
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
{
"name": "setProps",
"parameterTypes": [
@@ -258,6 +282,12 @@
"java.lang.String"
]
},
+ {
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
{
"name": "setProps",
"parameterTypes": [
@@ -462,6 +492,108 @@
}
]
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.RescheduleListenerManager$CronSettingAndJobEventChangedJobListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setCron",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setDescription",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setDisabled",
+ "parameterTypes": [
+ "boolean"
+ ]
+ },
+ {
+ "name": "setFailover",
+ "parameterTypes": [
+ "boolean"
+ ]
+ },
+ {
+ "name": "setJobName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setJobParameter",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setJobShardingStrategyType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setMaxTimeDiffSeconds",
+ "parameterTypes": [
+ "int"
+ ]
+ },
+ {
+ "name": "setMisfire",
+ "parameterTypes": [
+ "boolean"
+ ]
+ },
+ {
+ "name": "setMonitorExecution",
+ "parameterTypes": [
+ "boolean"
+ ]
+ },
+ {
+ "name": "setOverwrite",
+ "parameterTypes": [
+ "boolean"
+ ]
+ },
+ {
+ "name": "setReconcileIntervalMinutes",
+ "parameterTypes": [
+ "int"
+ ]
+ },
+ {
+ "name": "setShardingItemParameters",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setShardingTotalCount",
+ "parameterTypes": [
+ "int"
+ ]
+ },
+ {
+ "name": "setStaticSharding",
+ "parameterTypes": [
+ "boolean"
+ ]
+ }
+ ]
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager"
@@ -475,9 +607,9 @@
]
},
{
- "name": "setProps",
+ "name": "setJobExtraConfigurations",
"parameterTypes": [
- "java.util.Properties"
+ "java.util.Collection"
]
}
]
@@ -498,12 +630,6 @@
"java.lang.String"
]
},
- {
- "name": "setDescription",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
{
"name": "setDisabled",
"parameterTypes": [
@@ -528,18 +654,6 @@
"java.lang.String"
]
},
- {
- "name": "setJobParameter",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
- {
- "name": "setJobShardingStrategyType",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
{
"name": "setMaxTimeDiffSeconds",
"parameterTypes": [
@@ -592,10 +706,16 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager$JobCrashedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverService"
},
"type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO",
"methods": [
+ {
+ "name": "setCron",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
{
"name": "setJobShardingStrategyType",
"parameterTypes": [
@@ -616,6 +736,12 @@
"java.lang.String"
]
},
+ {
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
{
"name": "setJobShardingStrategyType",
"parameterTypes": [
@@ -642,6 +768,12 @@
"java.lang.String"
]
},
+ {
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
{
"name": "setProps",
"parameterTypes": [
@@ -662,6 +794,18 @@
"java.lang.String"
]
},
+ {
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
+ {
+ "name": "setJobShardingStrategyType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
{
"name": "setProps",
"parameterTypes": [
@@ -680,18 +824,6 @@
"name": "<init>",
"parameterTypes": []
},
- {
- "name": "setCron",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
- {
- "name": "setDescription",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
{
"name": "setDisabled",
"parameterTypes": [
@@ -704,30 +836,12 @@
"boolean"
]
},
- {
- "name": "setJobExtraConfigurations",
- "parameterTypes": [
- "java.util.Collection"
- ]
- },
{
"name": "setJobName",
"parameterTypes": [
"java.lang.String"
]
},
- {
- "name": "setJobParameter",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
- {
- "name": "setJobShardingStrategyType",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
{
"name": "setMaxTimeDiffSeconds",
"parameterTypes": [
@@ -791,15 +905,9 @@
]
},
{
- "name": "setJobShardingStrategyType",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
- {
- "name": "setProps",
+ "name": "setJobExtraConfigurations",
"parameterTypes": [
- "java.util.Properties"
+ "java.util.Collection"
]
}
]
@@ -820,12 +928,6 @@
"java.lang.String"
]
},
- {
- "name": "setDescription",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
{
"name": "setDisabled",
"parameterTypes": [
@@ -850,18 +952,6 @@
"java.lang.String"
]
},
- {
- "name": "setJobParameter",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
- {
- "name": "setJobShardingStrategyType",
- "parameterTypes": [
- "java.lang.String"
- ]
- },
{
"name": "setMaxTimeDiffSeconds",
"parameterTypes": [
@@ -886,12 +976,6 @@
"boolean"
]
},
- {
- "name": "setProps",
- "parameterTypes": [
- "java.util.Properties"
- ]
- },
{
"name": "setReconcileIntervalMinutes",
"parameterTypes": [
@@ -931,7 +1015,13 @@
]
},
{
- "name": "setProps",
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
+ {
+ "name": "setProps",
"parameterTypes": [
"java.util.Properties"
]
@@ -1230,6 +1320,140 @@
}
]
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter$EtcdWatchListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO",
+ "methods": [
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Properties"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.memory.MemoryRegistryCenter"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO",
+ "methods": [
+ {
+ "name": "setCron",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Properties"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter$NacosDataWatch"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO",
+ "methods": [
+ {
+ "name": "setDescription",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setJobParameter",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Properties"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO",
+ "methods": [
+ {
+ "name": "setCron",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setDescription",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setJobExtraConfigurations",
+ "parameterTypes": [
+ "java.util.Collection"
+ ]
+ },
+ {
+ "name": "setJobParameter",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setJobShardingStrategyType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Properties"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.bootstrap.type.ScheduleJobBootstrap"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJOBeanInfo"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJOBeanInfo"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.bootstrap.type.ScheduleJobBootstrap"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJOCustomizer"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJOCustomizer"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobScheduler"
@@ -1248,6 +1472,18 @@
}
]
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.bootstrap.type.ScheduleJobBootstrap"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobShutdownHookPluginBeanInfo"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.bootstrap.type.ScheduleJobBootstrap"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobShutdownHookPluginCustomizer"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.instance.InstanceNode"
@@ -1412,6 +1648,30 @@
}
]
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.bootstrap.type.ScheduleJobBootstrap"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.JobInstanceBeanInfo"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.JobInstanceBeanInfo"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.bootstrap.type.ScheduleJobBootstrap"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.JobInstanceCustomizer"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.JobInstanceCustomizer"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingService"
@@ -1462,7 +1722,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.ConfigurationService"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.facade.AbstractJobFacade"
},
"type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
"methods": [
@@ -1486,7 +1746,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager$FailoverSettingsChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.facade.ShardingJobFacade"
},
"type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
"methods": [
@@ -1510,7 +1770,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.MonitorExecutionListenerManager$MonitorExecutionSettingsChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.ConfigurationService"
},
"type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
"methods": [
@@ -1534,7 +1794,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ShardingTotalCountChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager"
},
"type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
"methods": [
@@ -1558,7 +1818,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.settings.JobConfigurationAPIImpl"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager$FailoverSettingsChangedJobListener"
},
"type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
"methods": [
@@ -1582,7 +1842,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.statistics.JobStatisticsAPIImpl"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.reconcile.ReconcileService"
},
"type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
"methods": [
@@ -1606,59 +1866,317 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO"
- },
- "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfigurationConverter"
- },
- {
- "condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.reg.exception.RegExceptionHandler"
- },
- "type":
"org.apache.shardingsphere.elasticjob.reg.zookeeper.exception.ZookeeperCuratorIgnoredExceptionProvider"
- },
- {
- "condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
- },
- "type":
"org.apache.shardingsphere.elasticjob.script.executor.ScriptJobExecutor"
- },
- {
- "condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.item.JobItemExecutorFactory"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionContextService"
},
- "type":
"org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor"
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
+ },
+ {
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.script.executor.ScriptJobExecutor"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionService"
},
- "type":
"org.apache.shardingsphere.elasticjob.spi.executor.item.param.ShardingContext",
- "fields": [
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
{
- "name": "jobName"
+ "name": "<init>",
+ "parameterTypes": []
},
{
- "name": "jobParameter"
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
},
{
- "name": "shardingItem"
- },
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ListenServersChangedJobListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
{
- "name": "shardingParameter"
+ "name": "<init>",
+ "parameterTypes": []
},
{
- "name": "shardingTotalCount"
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
},
{
- "name": "taskId"
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
}
]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.setup.JobClassNameProviderFactory"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ShardingTotalCountChangedJobListener"
},
- "type":
"org.apache.shardingsphere.elasticjob.spring.core.setup.SpringProxyJobClassNameProvider"
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
+ },
+ {
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingService"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
+ },
+ {
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.settings.JobConfigurationAPIImpl"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
+ },
+ {
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.statistics.JobStatisticsAPIImpl"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
+ },
+ {
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.memory.MemoryRegistryCenter"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
+ },
+ {
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setTracingStorageConfiguration",
+ "parameterTypes": [
+
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingStorageConfiguration"
+ ]
+ },
+ {
+ "name": "setType",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfigurationBeanInfo"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfigurationConverter"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.kernel.tracing.yaml.YamlTracingConfigurationCustomizer"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.exception.RegExceptionHandler"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.reg.etcd.exception.EtcdIgnoredExceptionProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.exception.RegExceptionHandler"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.reg.nacos.exception.NacosIgnoredExceptionProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.exception.RegExceptionHandler"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.reg.zookeeper.exception.ZookeeperCuratorIgnoredExceptionProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.script.executor.ScriptJobExecutor"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.item.JobItemExecutorFactory"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.simple.executor.SimpleJobExecutor"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.script.executor.ScriptJobExecutor"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.spi.executor.item.param.ShardingContext",
+ "fields": [
+ {
+ "name": "jobName"
+ },
+ {
+ "name": "jobParameter"
+ },
+ {
+ "name": "shardingItem"
+ },
+ {
+ "name": "shardingParameter"
+ },
+ {
+ "name": "shardingTotalCount"
+ },
+ {
+ "name": "taskId"
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.spi.tracing.listener.TracingListener"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.setup.JobClassNameProviderFactory"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.spring.core.setup.SpringProxyJobClassNameProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.listener.RDBTracingListener"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.listener.RDBTracingListenerFactory"
},
{
"condition": {
@@ -1668,49 +2186,265 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.DB2TracingStorageDatabaseType"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.GaussDBTracingStorageDatabaseType"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.H2TracingStorageDatabaseType"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.MySQLTracingStorageDatabaseType"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.OracleTracingStorageDatabaseType"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.PostgreSQLTracingStorageDatabaseType"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.SQLServerTracingStorageDatabaseType"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.facade.AbstractJobFacade"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.facade.ShardingJobFacade"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.ConfigurationService"
},
- "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.DB2TracingStorageDatabaseType"
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager"
},
- "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.GaussDBTracingStorageDatabaseType"
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager$FailoverSettingsChangedJobListener"
},
- "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.H2TracingStorageDatabaseType"
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.reconcile.ReconcileService"
},
- "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.MySQLTracingStorageDatabaseType"
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionContextService"
},
- "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.OracleTracingStorageDatabaseType"
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ExecutionService"
},
- "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.PostgreSQLTracingStorageDatabaseType"
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.repository.RDBJobEventRepository"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ListenServersChangedJobListener"
},
- "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.type.impl.SQLServerTracingStorageDatabaseType"
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": []
+ },
+ {
+ "name": "setDataSourceClassName",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProps",
+ "parameterTypes": [
+ "java.util.Map"
+ ]
+ }
+ ]
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.ConfigurationService"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ShardingTotalCountChangedJobListener"
},
"type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
"methods": [
@@ -1734,7 +2468,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.failover.FailoverListenerManager$FailoverSettingsChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingService"
},
"type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
"methods": [
@@ -1758,7 +2492,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.MonitorExecutionListenerManager$MonitorExecutionSettingsChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.settings.JobConfigurationAPIImpl"
},
"type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
"methods": [
@@ -1782,7 +2516,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.sharding.ShardingListenerManager$ShardingTotalCountChangedJobListener"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.statistics.JobStatisticsAPIImpl"
},
"type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
"methods": [
@@ -1806,7 +2540,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.settings.JobConfigurationAPIImpl"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.memory.MemoryRegistryCenter"
},
"type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
"methods": [
@@ -1830,7 +2564,7 @@
},
{
"condition": {
- "typeReached":
"org.apache.shardingsphere.elasticjob.lifecycle.internal.statistics.JobStatisticsAPIImpl"
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter"
},
"type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfiguration",
"methods": [
@@ -1852,14 +2586,104 @@
}
]
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfigurationBeanInfo"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.config.JobConfigurationPOJO"
},
"type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfigurationConverter"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.kernel.internal.schedule.JobTriggerListener"
+ },
+ "type":
"org.apache.shardingsphere.elasticjob.tracing.rdb.yaml.YamlDataSourceConfigurationCustomizer"
}
],
"resources": [
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
+ },
+ "glob": "META-INF/native/libnetty_transport_native_epoll_x86_64.so"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob":
"META-INF/services/com.alibaba.nacos.api.config.filter.IConfigFilter"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob":
"META-INF/services/com.alibaba.nacos.client.address.ServerListProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob":
"META-INF/services/com.alibaba.nacos.common.labels.LabelsCollector"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob":
"META-INF/services/com.alibaba.nacos.common.logging.NacosLoggingAdapterBuilder"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob":
"META-INF/services/com.alibaba.nacos.common.notify.EventPublisher"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob":
"META-INF/services/com.alibaba.nacos.plugin.auth.spi.client.AbstractClientAuthService"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
+ },
+ "glob": "META-INF/services/io.grpc.LoadBalancerProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
+ },
+ "glob": "META-INF/services/io.grpc.NameResolverProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
+ },
+ "glob": "META-INF/services/io.vertx.core.spi.VerticleFactory"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
+ },
+ "glob": "META-INF/services/io.vertx.core.spi.VertxServiceProvider"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.tracing.ElasticJobTracingConfiguration$RDBTracingConfiguration"
+ },
+ "glob": "META-INF/services/java.sql.Driver"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob": "META-INF/services/javax.xml.parsers.SAXParserFactory"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.threadpool.ExecutorServiceReloader"
@@ -1884,6 +2708,12 @@
},
"glob":
"META-INF/services/org.apache.shardingsphere.elasticjob.reg.exception.IgnoredExceptionProvider"
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
+ },
+ "glob":
"META-INF/services/org.apache.shardingsphere.elasticjob.spi.executor.error.handler.JobErrorHandler"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.executor.item.JobItemExecutorFactory"
@@ -1896,6 +2726,12 @@
},
"glob":
"META-INF/services/org.apache.shardingsphere.elasticjob.spi.executor.item.type.TypedJobItemExecutor"
},
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
+ },
+ "glob":
"META-INF/services/org.apache.shardingsphere.elasticjob.spi.tracing.listener.TracingListenerFactory"
+ },
{
"condition": {
"typeReached":
"org.apache.shardingsphere.elasticjob.kernel.tracing.storage.TracingStorageConverterFactory"
@@ -1919,6 +2755,36 @@
"typeReached":
"org.apache.shardingsphere.elasticjob.tracing.rdb.storage.sql.SQLPropertiesFactory"
},
"glob": "META-INF/sql/H2.properties"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob": "nacos-logback14.xml"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.nacos.NacosRegistryCenter"
+ },
+ "glob": "nacos-version.txt"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.tracing.ElasticJobTracingConfiguration$RDBTracingConfiguration"
+ },
+ "glob": "org/h2/util/data.zip"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.spring.boot.job.ElasticJobBootstrapConfiguration"
+ },
+ "glob": "org/quartz/core/quartz-build.properties"
+ },
+ {
+ "condition": {
+ "typeReached":
"org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
+ },
+ "glob": "vertx-default-jul-logging.properties"
}
]
}
\ No newline at end of file
diff --git a/registry-center/provider/nacos/pom.xml
b/registry-center/provider/nacos/pom.xml
index bf98b5f46..be5825c40 100644
--- a/registry-center/provider/nacos/pom.xml
+++ b/registry-center/provider/nacos/pom.xml
@@ -36,6 +36,15 @@
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
+ <classifier>pure</classifier>
+ </dependency>
+ <dependency>
+ <groupId>com.alibaba.nacos</groupId>
+ <artifactId>nacos-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.alibaba.nacos</groupId>
+ <artifactId>nacos-api</artifactId>
</dependency>
</dependencies>
</project>
diff --git a/test/native/native-image-filter/extra-filter.json
b/test/native/native-image-filter/extra-filter.json
index 5e2edc82d..235713dbd 100644
--- a/test/native/native-image-filter/extra-filter.json
+++ b/test/native/native-image-filter/extra-filter.json
@@ -2,9 +2,13 @@
"rules": [
{"includeClasses": "**"},
+ {"excludeClasses": "android.**"},
+ {"excludeClasses": "ch.**"},
{"excludeClasses": "com.**"},
+ {"excludeClasses": "io.**"},
{"excludeClasses": "java.**"},
{"excludeClasses": "javax.**"},
+ {"excludeClasses": "jdk.**"},
{"excludeClasses": "kotlinx.**"},
{"excludeClasses": "org.**"},
{"excludeClasses": "sun.**"},
diff --git a/test/native/pom.xml b/test/native/pom.xml
index 90212de2c..b8aa216f6 100644
--- a/test/native/pom.xml
+++ b/test/native/pom.xml
@@ -127,6 +127,34 @@
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>${native-maven-plugin.version}</version>
+ <configuration>
+ <agent>
+ <enabled>${native.agent.enabled}</enabled>
+ </agent>
+ <buildArgs>
+
<arg>--initialize-at-run-time=io.grpc.netty.shaded.io.netty</arg>
+ </buildArgs>
+ <metadataRepository>
+ <enabled>true</enabled>
+ <dependencies>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-transport</artifactId>
+
<metadataVersion>4.1.115.Final</metadataVersion>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-codec</artifactId>
+ <metadataVersion>4.1.42.Final</metadataVersion>
+ </dependency>
+ </dependencies>
+ </metadataRepository>
+ </configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/dataflow/JavaDataflowJob.java
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/dataflow/JavaDataflowJob.java
index 1b3a69431..55ebed656 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/dataflow/JavaDataflowJob.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/dataflow/JavaDataflowJob.java
@@ -23,8 +23,6 @@ import
org.apache.shardingsphere.elasticjob.test.natived.commons.entity.Foo;
import
org.apache.shardingsphere.elasticjob.test.natived.commons.repository.FooRepository;
import
org.apache.shardingsphere.elasticjob.test.natived.commons.repository.FooRepositoryFactory;
-import java.text.SimpleDateFormat;
-import java.util.Date;
import java.util.List;
public class JavaDataflowJob implements DataflowJob<Foo> {
@@ -33,23 +31,11 @@ public class JavaDataflowJob implements DataflowJob<Foo> {
@Override
public List<Foo> fetchData(final ShardingContext shardingContext) {
- System.out.printf(
- "Item: %s | Time: %s | Thread: %s | %s%n",
- shardingContext.getShardingItem(),
- new SimpleDateFormat("HH:mm:ss").format(new Date()),
- Thread.currentThread().getId(),
- "DATAFLOW FETCH");
return
fooRepository.findUnfinishedData(shardingContext.getShardingParameter(), 10);
}
@Override
public void processData(final ShardingContext shardingContext, final
List<Foo> data) {
- System.out.printf(
- "Item: %s | Time: %s | Thread: %s | %s%n",
- shardingContext.getShardingItem(),
- new SimpleDateFormat("HH:mm:ss").format(new Date()),
- Thread.currentThread().getId(),
- "DATAFLOW PROCESS");
data.stream().mapToLong(Foo::getId).forEach(fooRepository::setCompleted);
}
}
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/simple/JavaSimpleJob.java
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/simple/JavaSimpleJob.java
index 58978416c..ed70adff3 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/simple/JavaSimpleJob.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/commons/job/simple/JavaSimpleJob.java
@@ -23,8 +23,6 @@ import
org.apache.shardingsphere.elasticjob.test.natived.commons.entity.Foo;
import
org.apache.shardingsphere.elasticjob.test.natived.commons.repository.FooRepository;
import
org.apache.shardingsphere.elasticjob.test.natived.commons.repository.FooRepositoryFactory;
-import java.text.SimpleDateFormat;
-import java.util.Date;
import java.util.List;
public class JavaSimpleJob implements SimpleJob {
@@ -33,12 +31,6 @@ public class JavaSimpleJob implements SimpleJob {
@Override
public void execute(final ShardingContext shardingContext) {
- System.out.printf(
- "Item: %s | Time: %s | Thread: %s | %s%n",
- shardingContext.getShardingItem(),
- new SimpleDateFormat("HH:mm:ss").format(new Date()),
- Thread.currentThread().getId(),
- "SIMPLE");
List<Foo> data =
fooRepository.findUnfinishedData(shardingContext.getShardingParameter(), 10);
data.stream().mapToLong(Foo::getId).forEach(fooRepository::setCompleted);
}
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/nacos/NacosJavaTest.java
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/nacos/NacosJavaTest.java
index c317415fc..593f9b7a0 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/nacos/NacosJavaTest.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/nacos/NacosJavaTest.java
@@ -32,9 +32,7 @@ import
org.apache.shardingsphere.elasticjob.script.props.ScriptJobProperties;
import
org.apache.shardingsphere.elasticjob.test.natived.commons.job.dataflow.JavaDataflowJob;
import
org.apache.shardingsphere.elasticjob.test.natived.commons.job.simple.JavaSimpleJob;
import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionTimeoutException;
import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledInNativeImage;
@@ -107,26 +105,18 @@ class NacosJavaTest {
/**
* Wait until the Nacos server actually serves config operations.
*
- * <p>The container is reported started before its gRPC server accepts
connections,
- * so probe with a real write followed by a direct read until it
succeeds.</p>
- *
- * <p>The Nacos client talks to the server over a shaded gRPC transport
that cannot
- * complete the handshake inside a GraalVM native image. Abort instead of
failing,
- * since the transport is provided by the Nacos client, not by this
project.</p>
+ * <p>The container is reported started before its gRPC server accepts
+ * connections, so probe with a real write followed by a direct read until
+ * it succeeds.</p>
*/
private static void awaitNacosReady() {
String probeKey = "/elasticjob-test-native-nacos-java-readiness-probe";
String probeValue = "ready";
- try {
- Awaitility.await().atMost(3L, TimeUnit.MINUTES).until(() -> {
- regCenter.persist(probeKey, probeValue);
- return probeValue.equals(regCenter.getDirectly(probeKey));
- });
- regCenter.remove(probeKey);
- } catch (final ConditionTimeoutException ex) {
- Assumptions.abort("Nacos server did not become ready. "
- + "Its shaded gRPC transport is unusable in this native
image.");
- }
+ Awaitility.await().atMost(3L, TimeUnit.MINUTES).until(() -> {
+ regCenter.persist(probeKey, probeValue);
+ return probeValue.equals(regCenter.getDirectly(probeKey));
+ });
+ regCenter.remove(probeKey);
}
@Test
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/operation/JavaTest.java
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/operation/JavaTest.java
index 939866716..3d898d731 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/operation/JavaTest.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/operation/JavaTest.java
@@ -109,21 +109,6 @@ class JavaTest {
testingServer.close();
}
- /**
- * TODO Executing {@link
JobConfigurationAPI#removeJobConfiguration(String)} will always cause the
listener
- * to throw an exception. This is not acceptable behavior.
- * <pre>
- * <code>
- * Caused by: java.lang.IllegalStateException: Expected state [STARTED]
was [STOPPED]
- * at
org.apache.curator.shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:835)
- * at
org.apache.curator.framework.imps.CuratorFrameworkImpl.checkState(CuratorFrameworkImpl.java:465)
- * at
org.apache.curator.framework.imps.CuratorFrameworkImpl.getData(CuratorFrameworkImpl.java:498)
- * at
org.apache.shardingsphere.elasticjob.reg.zookeeper.ZookeeperRegistryCenter.getDirectly(ZookeeperRegistryCenter.java:179)
- * ... 12 common frames omitted
- * </code>
- * </pre>
- *
- */
@Test
void testJobConfigurationAPI() {
String jobName = "testJobConfigurationAPI";
@@ -290,11 +275,20 @@ class JavaTest {
.build());
job.schedule();
ShardingStatisticsAPI shardingStatisticsAPI = new
ShardingStatisticsAPIImpl(secondRegCenter);
+ List<ShardingInfo> shardingInfos = new ArrayList<>();
Awaitility.await()
.atMost(1L, TimeUnit.MINUTES)
.ignoreExceptions()
- .until(() -> 3 ==
shardingStatisticsAPI.getShardingInfo(jobName).size());
- shardingStatisticsAPI.getShardingInfo(jobName).forEach(shardingInfo ->
{
+ .until(() -> {
+ Collection<ShardingInfo> current =
shardingStatisticsAPI.getShardingInfo(jobName);
+ if (3 != current.size() || current.stream().anyMatch(each
-> null == each.getServerIp())) {
+ return false;
+ }
+ shardingInfos.clear();
+ shardingInfos.addAll(current);
+ return true;
+ });
+ shardingInfos.forEach(shardingInfo -> {
String serverIp = shardingInfo.getServerIp();
assertThat(serverIp, notNullValue());
assertThat(shardingInfo.getInstanceId(), startsWith(serverIp +
"@-@"));
diff --git
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/staticd/SpringBootDTest.java
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/staticd/SpringBootDTest.java
index 53e3bb542..2a29c0cc5 100644
---
a/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/staticd/SpringBootDTest.java
+++
b/test/native/src/test/java/org/apache/shardingsphere/elasticjob/test/natived/it/staticd/SpringBootDTest.java
@@ -129,10 +129,12 @@ class SpringBootDTest {
.failover(true)
.build();
ScheduleJobBootstrap firstJob = new
ScheduleJobBootstrap(zookeeperRegistryCenter,
- (SimpleJob) shardingContext -> System.out.println("test"),
+ (SimpleJob) shardingContext -> {
+ },
jobConfig);
ScheduleJobBootstrap secondJob = new
ScheduleJobBootstrap(zookeeperRegistryCenter,
- (SimpleJob) shardingContext -> System.out.println("test"),
+ (SimpleJob) shardingContext -> {
+ },
jobConfig);
assertDoesNotThrow(() -> {
firstJob.schedule();
diff --git a/test/native/src/test/resources/logback-test.xml
b/test/native/src/test/resources/logback-test.xml
index d49a3aaa2..48a98c486 100644
--- a/test/native/src/test/resources/logback-test.xml
+++ b/test/native/src/test/resources/logback-test.xml
@@ -26,8 +26,10 @@
<logger name="org.apache.shardingsphere.elasticjob" level="warn"
additivity="false">
<appender-ref ref="console" />
</logger>
- <root>
- <level value="error" />
+ <logger
name="org.apache.shardingsphere.elasticjob.reg.etcd.EtcdRegistryCenter"
level="error" additivity="false">
+ <appender-ref ref="console" />
+ </logger>
+ <root level="error">
<appender-ref ref="console" />
</root>
</configuration>