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 -> {

Reply via email to