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(); + } +}