This is an automated email from the ASF dual-hosted git repository.
yubiao pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 1ce9cca45e5 [fix][broker] Skip loading broker interceptor when
disableBrokerInterceptors is true (#20422)
1ce9cca45e5 is described below
commit 1ce9cca45e5479aeb5b3d69afb93b8e9c41378a8
Author: Zixuan Liu <[email protected]>
AuthorDate: Tue May 30 17:57:08 2023 +0800
[fix][broker] Skip loading broker interceptor when
disableBrokerInterceptors is true (#20422)
Signed-off-by: Zixuan Liu <[email protected]>
(cherry picked from commit 639c460a585c2f6cbb6133849348c8b92d2f6fbd)
---
.../apache/pulsar/broker/ServiceConfiguration.java | 2 +-
.../broker/intercept/BrokerInterceptors.java | 5 +++++
.../broker/intercept/BrokerInterceptorTest.java | 25 ++++++++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git
a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
index 2c48310f964..8c85b9f28ab 100644
---
a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
+++
b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
@@ -1353,7 +1353,7 @@ public class ServiceConfiguration implements
PulsarConfiguration {
@FieldContext(
category = CATEGORY_SERVER,
- doc = "Enable or disable the broker interceptor, which is only used
for testing for now"
+ doc = "Enable or disable the broker interceptor"
)
private boolean disableBrokerInterceptors = true;
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/intercept/BrokerInterceptors.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/intercept/BrokerInterceptors.java
index cef3f0eb609..4ffd8732db9 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/intercept/BrokerInterceptors.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/intercept/BrokerInterceptors.java
@@ -59,6 +59,11 @@ public class BrokerInterceptors implements BrokerInterceptor
{
* @return the collection of broker event interceptor
*/
public static BrokerInterceptor load(ServiceConfiguration conf) throws
IOException {
+ if (conf.isDisableBrokerInterceptors()) {
+ log.info("Skip loading the broker interceptors when
disableBrokerInterceptors is true");
+ return null;
+ }
+
BrokerInterceptorDefinitions definitions =
BrokerInterceptorUtils.searchForInterceptors(conf.getBrokerInterceptorsDirectory(),
conf.getNarExtractionDirectory());
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java
index d1cf91635f9..c612104f8bf 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/intercept/BrokerInterceptorTest.java
@@ -20,9 +20,12 @@ package org.apache.pulsar.broker.intercept;
import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
@@ -36,6 +39,7 @@ import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
+import org.apache.pulsar.broker.ServiceConfiguration;
import org.apache.pulsar.broker.testcontext.PulsarTestContext;
import org.apache.pulsar.client.admin.PulsarAdminException;
import org.apache.pulsar.client.api.Consumer;
@@ -307,4 +311,25 @@ public class BrokerInterceptorTest extends
ProducerConsumerBase {
}
}
+ @Test
+ public void testLoadWhenDisableBrokerInterceptorsIsTrue() throws
IOException {
+ ServiceConfiguration serviceConfiguration =
spy(ServiceConfiguration.class);
+ serviceConfiguration.setDisableBrokerInterceptors(true);
+ BrokerInterceptor brokerInterceptor =
BrokerInterceptors.load(serviceConfiguration);
+ assertNull(brokerInterceptor);
+
+ verify(serviceConfiguration, times(1)).isDisableBrokerInterceptors();
+ verify(serviceConfiguration,
times(0)).getBrokerInterceptorsDirectory();
+ }
+
+ @Test
+ public void testLoadWhenDisableBrokerInterceptorsIsFalse() throws
IOException {
+ ServiceConfiguration serviceConfiguration =
spy(ServiceConfiguration.class);
+ serviceConfiguration.setDisableBrokerInterceptors(false);
+ BrokerInterceptor brokerInterceptor =
BrokerInterceptors.load(serviceConfiguration);
+ assertNull(brokerInterceptor);
+
+ verify(serviceConfiguration, times(1)).isDisableBrokerInterceptors();
+ verify(serviceConfiguration,
times(1)).getBrokerInterceptorsDirectory();
+ }
}