You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2026/08/12 01:20:55 UTC
(skywalking) branch master updated: Drop runtime-rule's retired-IT dependencies and declare server-testing at test scope (#13977)
This is an automated email from the ASF dual-hosted git repository.
wu-sheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 679b5c6e18 Drop runtime-rule's retired-IT dependencies and declare server-testing at test scope (#13977)
679b5c6e18 is described below
commit 679b5c6e189e7a122a53238011d92e83f8954cf2
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Aug 11 18:20:49 2026 -0700
Drop runtime-rule's retired-IT dependencies and declare server-testing at test scope (#13977)
runtime-rule
------------
Six test-scoped dependencies staged the plugin-side ITs (MalApplyRollbackIT,
MalShapeBreakIT, StorageStackHarness, TwoNodeClusterHarness and friends) that
were retired in favour of e2e. The ITs never reached master; the dependencies and
their explanatory comments did, so the POM documented collaborators that do not
exist - a reader following the comments to StorageStackHarness finds nothing.
That coverage is not lost. It lives in test/e2e-v2/cases/runtime-rule/ - MAL over
BanyanDB / PostgreSQL / Elasticsearch, LAL, meter, and the two-node cluster case -
six jobs wired into skywalking.yaml. The changelog says so, so the next reader
does not have to reconstruct it from an unmerged branch.
server-testing scope
--------------------
server-testing ships test scaffolding (ModuleManagerTesting, MockModuleManager,
the MAL/LAL/Hierarchy rule loaders) plus two empty org.junit stubs that let
Testcontainers' GenericContainer hierarchy resolve without JUnit 4. Four modules
declared it at compile scope - including the server-configuration parent, so all
eight configuration-* children inherited it - which put those org.junit stubs on
the runtime classpath that server-starter's copy-dependencies (includeScope
runtime) packages into oap-libs. Shipping empty org.junit types is a hazard for
anything that later puts real JUnit on an OAP classpath.
Modules whose tests need the stubs now declare the dependency themselves instead
of inheriting it transitively: meter-analyzer, library-client,
storage-elasticsearch-plugin and storage-jdbc-hikaricp-plugin. Source greps
cannot find these - a test that builds a Testcontainers GenericContainer forces
javac to resolve TestRule through its superclass chain with no import to match -
so the set was derived from which modules' tests touch org.testcontainers, and
confirmed by a full build.
library-banyandb-client also gains the direct library-util dependency its
BanyanDBClient always needed: it was resolving StringUtil through
server-testing -> library-module -> library-util, i.e. production code reaching a
utility class through a test-support module. Its library-integration-test
dependency moves to test scope as well (zero src/main references, two in
src/test; the only compile-scope declaration of that artifact in the repo).
No production code, no test code, no behaviour change.
---
CLAUDE.md | 3 +-
docs/en/changes/changes.md | 2 +
oap-server/analyzer/meter-analyzer/pom.xml | 6 +++
oap-server/server-admin/runtime-rule/pom.xml | 51 ----------------------
.../configuration-nacos/pom.xml | 1 +
oap-server/server-configuration/pom.xml | 1 +
.../server-library/library-banyandb-client/pom.xml | 7 +++
oap-server/server-library/library-client/pom.xml | 6 +++
.../library-elasticsearch-client/pom.xml | 1 +
.../storage-elasticsearch-plugin/pom.xml | 6 +++
.../storage-jdbc-hikaricp-plugin/pom.xml | 6 +++
11 files changed, 38 insertions(+), 52 deletions(-)
diff --git a/CLAUDE.md b/CLAUDE.md
index 3b738940e3..d582615594 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -275,7 +275,8 @@ Always use `--recurse-submodules` when cloning or update submodules manually.
items). The changelog becomes the GitHub release body, which GitHub renders as GFM where a single
newline continuing a bullet becomes a `<br>`, so prose-wrapped bullets show jagged mid-sentence breaks on
the release page (verified on v10.4.0; the docs website reflows and hides the problem). See
- `guides/How-to-release.md`.
+ `guides/How-to-release.md`. Append a new entry at the **end** of its section, never at the top —
+ the section reads in the order the changes landed.
- `swip/` - SkyWalking Improvement Proposals
### SWIP vs. operator docs
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 6344bf007f..455b12a197 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -254,6 +254,8 @@
`application.yml` overrides referencing `status-query` need to repoint
to `status`. Routes are admin-host only — see the "Status API is
admin-host only" entry above for the public REST retirement.
+* Drop six unused test-scoped dependencies from `runtime-rule` (`library-integration-test`, `library-banyandb-client`, `storage-banyandb-plugin`, `testcontainers`, `testcontainers:junit-jupiter`, `grpc-testing`). They staged the plugin-side ITs that were retired in favour of e2e; that coverage now lives in `test/e2e-v2/cases/runtime-rule/` (MAL over BanyanDB / PostgreSQL / Elasticsearch, LAL, meter, and the two-node cluster case). The module has no ITs today, and JUnit and Mockito are in [...]
+* Declare `server-testing` at `test` scope everywhere. It ships only test scaffolding (`ModuleManagerTesting`, `MockModuleManager`, the MAL/LAL/Hierarchy rule loaders) plus two empty `org.junit` stubs that let Testcontainers' `GenericContainer` hierarchy resolve without JUnit 4, but four modules declared it at compile scope — including the `server-configuration` parent, so all eight `configuration-*` children inherited it — which put those `org.junit` stubs on the runtime classpath that [...]
#### OAP Server
* Fix LAL's `segmentId` and `spanId` extractor statements, which the grammar accepted and the parser never implemented. `LALParser.g4` declares `traceIdStatement`, `segmentIdStatement` and `spanIdStatement`, and the codegen already carried `setSegmentId`/`setSpanId` in its setter table, but `LALScriptParser.visitExtractorStatement` had a branch for only the first of the three. The remaining alternatives fell through to a line that assumed whatever was left had to be an `ifStatement`, so [...]
diff --git a/oap-server/analyzer/meter-analyzer/pom.xml b/oap-server/analyzer/meter-analyzer/pom.xml
index 57d3fd200e..efd19219a1 100644
--- a/oap-server/analyzer/meter-analyzer/pom.xml
+++ b/oap-server/analyzer/meter-analyzer/pom.xml
@@ -50,6 +50,12 @@
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.skywalking</groupId>
+ <artifactId>server-testing</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/oap-server/server-admin/runtime-rule/pom.xml b/oap-server/server-admin/runtime-rule/pom.xml
index ca02c8aac3..1d14b5936e 100644
--- a/oap-server/server-admin/runtime-rule/pom.xml
+++ b/oap-server/server-admin/runtime-rule/pom.xml
@@ -97,57 +97,6 @@
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
- <!--
- IT-only deps. library-integration-test provides BanyanDBTestContainer + ITVersions
- so the runtime-rule ITs share image/port/version constants with every other BanyanDB
- IT in the repo. library-banyandb-client gives MalApplyRollbackIT / MalShapeBreakIT a
- read-side verifyClient to inspect groups and measures independently of the
- storage-plugin write path.
- -->
- <dependency>
- <groupId>org.apache.skywalking</groupId>
- <artifactId>library-integration-test</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.skywalking</groupId>
- <artifactId>library-banyandb-client</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <!--
- storage-banyandb-plugin gives us BanyanDBIndexInstaller, BanyanDBStorageDAO,
- BanyanDBBatchDAO, and BanyanDBRuntimeRuleManagementDAO — the concrete services the
- StorageStackHarness wires into the mocked ModuleManager so MeterSystem.create fires
- real DDL against the Testcontainers BanyanDB.
- -->
- <dependency>
- <groupId>org.apache.skywalking</groupId>
- <artifactId>storage-banyandb-plugin</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.testcontainers</groupId>
- <artifactId>testcontainers</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.testcontainers</groupId>
- <artifactId>junit-jupiter</artifactId>
- <scope>test</scope>
- </dependency>
- <!--
- grpc-testing provides InProcessServerBuilder / InProcessChannelBuilder used by the
- two-node cluster harness. Keeps the in-memory gRPC transport real (deadlines, status
- codes, cancellation) without a TCP loopback.
- -->
- <dependency>
- <groupId>io.grpc</groupId>
- <artifactId>grpc-testing</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
diff --git a/oap-server/server-configuration/configuration-nacos/pom.xml b/oap-server/server-configuration/configuration-nacos/pom.xml
index 69a103faee..8b33d08683 100644
--- a/oap-server/server-configuration/configuration-nacos/pom.xml
+++ b/oap-server/server-configuration/configuration-nacos/pom.xml
@@ -51,6 +51,7 @@
<groupId>org.apache.skywalking</groupId>
<artifactId>server-testing</artifactId>
<version>${project.version}</version>
+ <scope>test</scope>
</dependency>
</dependencies>
</project>
diff --git a/oap-server/server-configuration/pom.xml b/oap-server/server-configuration/pom.xml
index b75c60e32f..e1a1bd907c 100644
--- a/oap-server/server-configuration/pom.xml
+++ b/oap-server/server-configuration/pom.xml
@@ -44,6 +44,7 @@
<groupId>org.apache.skywalking</groupId>
<artifactId>server-testing</artifactId>
<version>${project.version}</version>
+ <scope>test</scope>
</dependency>
</dependencies>
</project>
diff --git a/oap-server/server-library/library-banyandb-client/pom.xml b/oap-server/server-library/library-banyandb-client/pom.xml
index 5d80c319bb..a222671d7f 100644
--- a/oap-server/server-library/library-banyandb-client/pom.xml
+++ b/oap-server/server-library/library-banyandb-client/pom.xml
@@ -71,11 +71,18 @@
<groupId>org.apache.skywalking</groupId>
<artifactId>server-testing</artifactId>
<version>${project.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>library-integration-test</artifactId>
<version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.skywalking</groupId>
+ <artifactId>library-util</artifactId>
+ <version>${project.version}</version>
</dependency>
</dependencies>
<build>
diff --git a/oap-server/server-library/library-client/pom.xml b/oap-server/server-library/library-client/pom.xml
index 91c26d68b7..22368d1b46 100755
--- a/oap-server/server-library/library-client/pom.xml
+++ b/oap-server/server-library/library-client/pom.xml
@@ -91,5 +91,11 @@
<artifactId>elasticsearch</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.skywalking</groupId>
+ <artifactId>server-testing</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
diff --git a/oap-server/server-library/library-elasticsearch-client/pom.xml b/oap-server/server-library/library-elasticsearch-client/pom.xml
index 47c8669982..335cd83459 100644
--- a/oap-server/server-library/library-elasticsearch-client/pom.xml
+++ b/oap-server/server-library/library-elasticsearch-client/pom.xml
@@ -56,6 +56,7 @@
<groupId>org.apache.skywalking</groupId>
<artifactId>server-testing</artifactId>
<version>${project.version}</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml
index d35fd484bb..0e5a15a990 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/pom.xml
@@ -39,5 +39,11 @@
<artifactId>library-client</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.skywalking</groupId>
+ <artifactId>server-testing</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml
index 17d6c7fdb7..7e030b22d0 100644
--- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml
+++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/pom.xml
@@ -54,5 +54,11 @@
<artifactId>postgresql</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.skywalking</groupId>
+ <artifactId>server-testing</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>