From 38e3ef01f3ea6f3ce840333e0692872cb2084304 Mon Sep 17 00:00:00 2001
From: Lico-Tom <583566138@qq.com>
Date: Wed, 15 Mar 2023 15:21:52 +0800
Subject: [PATCH] add configs request.
---
ci/spotbugs/exclude.xml | 4 ++
.../github/protocol/bookkeeper/Configs.java | 12 +++++
.../protocol/bookkeeper/ConfigsImpl.java | 24 ++++++++++
.../protocol/bookkeeper/ConfigsImplTest.java | 48 +++++++++++++++++++
4 files changed, 88 insertions(+)
create mode 100644 src/main/java/io/github/protocol/bookkeeper/Configs.java
create mode 100644 src/main/java/io/github/protocol/bookkeeper/ConfigsImpl.java
create mode 100644 src/test/java/io/github/protocol/bookkeeper/ConfigsImplTest.java
diff --git a/ci/spotbugs/exclude.xml b/ci/spotbugs/exclude.xml
index cd71318..9d17990 100644
--- a/ci/spotbugs/exclude.xml
+++ b/ci/spotbugs/exclude.xml
@@ -7,6 +7,10 @@
+
+
+
+
diff --git a/src/main/java/io/github/protocol/bookkeeper/Configs.java b/src/main/java/io/github/protocol/bookkeeper/Configs.java
new file mode 100644
index 0000000..3f68010
--- /dev/null
+++ b/src/main/java/io/github/protocol/bookkeeper/Configs.java
@@ -0,0 +1,12 @@
+package io.github.protocol.bookkeeper;
+
+
+import java.util.Map;
+
+public interface Configs {
+
+ void putConfig(Map config) throws Exception;
+
+ Map getConfig() throws Exception;
+
+}
diff --git a/src/main/java/io/github/protocol/bookkeeper/ConfigsImpl.java b/src/main/java/io/github/protocol/bookkeeper/ConfigsImpl.java
new file mode 100644
index 0000000..1b2ebae
--- /dev/null
+++ b/src/main/java/io/github/protocol/bookkeeper/ConfigsImpl.java
@@ -0,0 +1,24 @@
+package io.github.protocol.bookkeeper;
+
+
+import java.net.http.HttpResponse;
+import java.util.Map;
+
+public class ConfigsImpl implements Configs {
+
+ private final InnerHttpClient innerHttpClient;
+
+ public ConfigsImpl(InnerHttpClient innerHttpClient) {
+ this.innerHttpClient = innerHttpClient;
+ }
+ @Override
+ public void putConfig(Map config) throws Exception {
+ innerHttpClient.put(UrlConst.CONFIG_SERVER_CONFIG, JacksonService.toJson(config));
+ }
+
+ @Override
+ public Map getConfig() throws Exception {
+ HttpResponse resp = innerHttpClient.get(UrlConst.CONFIG_SERVER_CONFIG);
+ return JacksonService.toObject(resp.body(), Map.class);
+ }
+}
diff --git a/src/test/java/io/github/protocol/bookkeeper/ConfigsImplTest.java b/src/test/java/io/github/protocol/bookkeeper/ConfigsImplTest.java
new file mode 100644
index 0000000..38c273e
--- /dev/null
+++ b/src/test/java/io/github/protocol/bookkeeper/ConfigsImplTest.java
@@ -0,0 +1,48 @@
+package io.github.protocol.bookkeeper;
+
+import io.github.embedded.bookkeeper.core.EmbeddedBookkeeperServer;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ConfigsImplTest {
+
+
+ private static final EmbeddedBookkeeperServer SERVER = new EmbeddedBookkeeperServer();
+
+ private static ConfigsImpl configsImpl = null;
+
+ @BeforeAll
+ public static void setup() throws Exception {
+ SERVER.start();
+ Configuration conf = new Configuration();
+ conf.setHost("localhost");
+ conf.setPort(SERVER.getBkWebPort());
+ configsImpl = new ConfigsImpl(new InnerHttpClient(conf));
+ }
+
+ @Test
+ public void testPutConfig() throws Exception {
+ HashMap config = new HashMap<>();
+ config.put("allowEphemeralPorts", "false");
+ configsImpl.putConfig(config);
+ Map resp = configsImpl.getConfig();
+ Assertions.assertEquals("false", resp.get("allowEphemeralPorts"));
+
+ }
+
+ @Test
+ public void testGetConfig() throws Exception {
+ Map config = configsImpl.getConfig();
+ Assertions.assertTrue(config.size() != 0);
+ }
+
+ @AfterAll
+ public static void teardown() throws Exception {
+ SERVER.close();
+ }
+}