This is an automated email from the ASF dual-hosted git repository.
anmolnar pushed a commit to branch branch-3.9
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/branch-3.9 by this push:
new d4ac55bd73 Revert "ZOOKEEPER-4324: dropwizard-metrics should be
optional"
d4ac55bd73 is described below
commit d4ac55bd73e76d83471ccfca081d8e3ffc905c07
Author: Andor Molnar <[email protected]>
AuthorDate: Thu Sep 17 13:10:53 2026 -0500
Revert "ZOOKEEPER-4324: dropwizard-metrics should be optional"
This reverts commit 12e61503a8cf972d87e5623fa1ced4710efdb8f0.
---
.../org/apache/zookeeper/server/ServerMetrics.java | 8 +++-
.../DropwizardMetricsOptionalArchTest.java | 56 ----------------------
.../test/java/org/apache/zookeeper/ZKTestCase.java | 4 --
.../server/quorum/LearnerHandlerMetricsTest.java | 3 --
.../quorum/SyncRequestProcessorMetricTest.java | 4 --
5 files changed, 7 insertions(+), 68 deletions(-)
diff --git
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java
index 34bf0bd871..e3476ff6dd 100644
---
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java
+++
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java
@@ -25,6 +25,7 @@
import org.apache.zookeeper.metrics.MetricsProvider;
import org.apache.zookeeper.metrics.Summary;
import org.apache.zookeeper.metrics.SummarySet;
+import org.apache.zookeeper.metrics.impl.DefaultMetricsProvider;
import org.apache.zookeeper.metrics.impl.NullMetricsProvider;
import org.apache.zookeeper.server.util.QuotaMetricsUtils;
import org.slf4j.Logger;
@@ -39,11 +40,16 @@ public final class ServerMetrics {
*/
public static final ServerMetrics NULL_METRICS = new
ServerMetrics(NullMetricsProvider.INSTANCE);
+ /**
+ * Dummy instance useful for tests.
+ */
+ public static final ServerMetrics DEFAULT_METRICS_FOR_TESTS = new
ServerMetrics(new DefaultMetricsProvider());
+
/**
* Real instance used for tracking server side metrics. The final value is
* assigned after the {@link MetricsProvider} bootstrap.
*/
- private static volatile ServerMetrics CURRENT = NULL_METRICS;
+ private static volatile ServerMetrics CURRENT = DEFAULT_METRICS_FOR_TESTS;
/**
* Access current ServerMetrics.
diff --git
a/zookeeper-server/src/test/java/org/apache/zookeeper/DropwizardMetricsOptionalArchTest.java
b/zookeeper-server/src/test/java/org/apache/zookeeper/DropwizardMetricsOptionalArchTest.java
deleted file mode 100644
index 486b5a434c..0000000000
---
a/zookeeper-server/src/test/java/org/apache/zookeeper/DropwizardMetricsOptionalArchTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper;
-
-import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses;
-import com.tngtech.archunit.base.DescribedPredicate;
-import com.tngtech.archunit.core.domain.JavaClass;
-import com.tngtech.archunit.core.domain.JavaClasses;
-import com.tngtech.archunit.core.importer.ClassFileImporter;
-import com.tngtech.archunit.core.importer.ImportOption;
-import com.tngtech.archunit.lang.ArchRule;
-import java.util.Collections;
-import org.junit.jupiter.api.Test;
-
-/**
- * Architectural test to enforce that Dropwizard metrics is an optional
dependency.
- *
- * <p>Only {@link
org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter} may depend
- * on {@code com.codahale.metrics} packages. All other ZooKeeper classes must
remain Dropwizard-free so that it can be
- * an optional dependency.
- */
-public class DropwizardMetricsOptionalArchTest {
-
- @Test
- public void onlyAvgMinMaxPercentileCounterShouldDependOnDropwizard() {
- JavaClasses importedClasses =
- new ClassFileImporter(Collections.singletonList(new
ImportOption.DoNotIncludeTests())).importPackages(
- "org.apache.zookeeper").that(new
DescribedPredicate<JavaClass>("ZK non-Dropwizard classes") {
- @Override
- public boolean test(JavaClass javaClass) {
- return
!javaClass.getName().contains("AvgMinMaxPercentileCounter");
- }
- });
-
- ArchRule rule =
noClasses().should().dependOnClassesThat().resideInAnyPackage("com.codahale..");
-
- rule.check(importedClasses);
- }
-
-}
diff --git
a/zookeeper-server/src/test/java/org/apache/zookeeper/ZKTestCase.java
b/zookeeper-server/src/test/java/org/apache/zookeeper/ZKTestCase.java
index 7b2b8e72a5..db24797180 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/ZKTestCase.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/ZKTestCase.java
@@ -24,8 +24,6 @@
import java.time.Instant;
import java.util.concurrent.CompletableFuture;
import org.apache.zookeeper.metrics.MetricsUtils;
-import org.apache.zookeeper.metrics.impl.DefaultMetricsProvider;
-import org.apache.zookeeper.server.ServerMetrics;
import org.apache.zookeeper.util.ServiceUtils;
import org.hamcrest.CustomMatcher;
import org.hamcrest.Description;
@@ -95,8 +93,6 @@ public static void before() {
@BeforeEach
public void starting(TestInfo testInfo) {
- ServerMetrics.metricsProviderInitialized(new DefaultMetricsProvider());
-
// By default, disable starting a JettyAdminServer in tests to avoid
// accidentally attempting to start multiple admin servers on the
// same port.
diff --git
a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerMetricsTest.java
b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerMetricsTest.java
index b084bf2fe9..3b15e0cca3 100644
---
a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerMetricsTest.java
+++
b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/LearnerHandlerMetricsTest.java
@@ -35,7 +35,6 @@
import java.util.concurrent.TimeUnit;
import org.apache.jute.BinaryOutputArchive;
import org.apache.zookeeper.metrics.MetricsUtils;
-import org.apache.zookeeper.metrics.impl.DefaultMetricsProvider;
import org.apache.zookeeper.server.ServerMetrics;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -56,8 +55,6 @@ class MockLearnerHandler extends LearnerHandler {
@BeforeEach
public void setup() throws IOException {
- ServerMetrics.metricsProviderInitialized(new DefaultMetricsProvider());
-
Leader leader = mock(Leader.class);
when(leader.getQuorumAuthServer()).thenReturn(null);
diff --git
a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SyncRequestProcessorMetricTest.java
b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SyncRequestProcessorMetricTest.java
index fa5b9d38d4..17ccdae6ea 100644
---
a/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SyncRequestProcessorMetricTest.java
+++
b/zookeeper-server/src/test/java/org/apache/zookeeper/server/quorum/SyncRequestProcessorMetricTest.java
@@ -31,11 +31,9 @@
import java.util.concurrent.TimeUnit;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.metrics.MetricsUtils;
-import org.apache.zookeeper.metrics.impl.DefaultMetricsProvider;
import org.apache.zookeeper.server.Request;
import org.apache.zookeeper.server.RequestProcessor;
import org.apache.zookeeper.server.RequestRecord;
-import org.apache.zookeeper.server.ServerMetrics;
import org.apache.zookeeper.server.SyncRequestProcessor;
import org.apache.zookeeper.server.ZKDatabase;
import org.apache.zookeeper.server.ZooKeeperServer;
@@ -50,8 +48,6 @@ public class SyncRequestProcessorMetricTest {
@BeforeEach
public void setup() throws Exception {
- ServerMetrics.metricsProviderInitialized(new DefaultMetricsProvider());
-
ZKDatabase db = mock(ZKDatabase.class);
when(db.append(any(Request.class))).thenReturn(true);
doAnswer(invocation -> {