You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by si...@apache.org on 2018/02/21 09:30:09 UTC
[bookkeeper] branch master updated: Dump config
This is an automated email from the ASF dual-hosted git repository.
sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 1f7bf2d Dump config
1f7bf2d is described below
commit 1f7bf2d5f8338476bfe868953f419bc39dc3052e
Author: cguttapalem <cg...@salesforce.com>
AuthorDate: Wed Feb 21 01:30:00 2018 -0800
Dump config
Descriptions of the changes in this PR:
Dump config
- add utility method to AbstractConfiguration to return config as string and log it
- dump the config during the start of the BookieServer
Author: cguttapalem <cg...@salesforce.com>
Reviewers: Enrico Olivelli <eo...@gmail.com>, Sijie Guo <si...@apache.org>
This closes #1160 from reddycharan/dumpconfig
---
.../bookkeeper/conf/AbstractConfiguration.java | 28 ++++++++++++++++++++++
.../org/apache/bookkeeper/proto/BookieServer.java | 9 +++++++
.../server/http/service/ConfigurationService.java | 17 +------------
3 files changed, 38 insertions(+), 16 deletions(-)
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java
index 04dd6be..526912b 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java
@@ -20,8 +20,11 @@ package org.apache.bookkeeper.conf;
import static org.apache.bookkeeper.conf.ClientConfiguration.CLIENT_AUTH_PROVIDER_FACTORY_CLASS;
import java.net.URL;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+
import javax.net.ssl.SSLEngine;
import org.apache.bookkeeper.feature.Feature;
@@ -30,6 +33,8 @@ import org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory;
import org.apache.bookkeeper.meta.LedgerManagerFactory;
import org.apache.bookkeeper.meta.LongHierarchicalLedgerManagerFactory;
import org.apache.bookkeeper.util.EntryFormatter;
+import org.apache.bookkeeper.util.JsonUtil;
+import org.apache.bookkeeper.util.JsonUtil.ParseJsonException;
import org.apache.bookkeeper.util.LedgerIdFormatter;
import org.apache.bookkeeper.util.ReflectionUtils;
import org.apache.bookkeeper.util.StringEntryFormatter;
@@ -674,4 +679,27 @@ public abstract class AbstractConfiguration<T extends AbstractConfiguration>
* Trickery to allow inheritance with fluent style.
*/
protected abstract T getThis();
+
+ /**
+ * returns the string representation of json format of this config.
+ *
+ * @return
+ * @throws ParseJsonException
+ */
+ public String asJson() throws ParseJsonException {
+ return JsonUtil.toJson(toMap());
+ }
+
+ private Map<String, Object> toMap() {
+ Map<String, Object> configMap = new HashMap<>();
+ Iterator<String> iterator = this.getKeys();
+ while (iterator.hasNext()) {
+ String key = iterator.next().toString();
+ Object property = this.getProperty(key);
+ if (property != null) {
+ configMap.put(key, property.toString());
+ }
+ }
+ return configMap;
+ }
}
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
index a120202..c0214d3 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
@@ -46,6 +46,7 @@ import org.apache.bookkeeper.stats.StatsLogger;
import org.apache.bookkeeper.tls.SecurityException;
import org.apache.bookkeeper.tls.SecurityHandlerFactory;
import org.apache.bookkeeper.tls.SecurityProviderFactoryFactory;
+import org.apache.bookkeeper.util.JsonUtil.ParseJsonException;
import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -81,6 +82,14 @@ public class BookieServer {
BookieException, UnavailableException, CompatibilityException, SecurityException {
this.conf = conf;
validateUser(conf);
+ String configAsString;
+ try {
+ configAsString = conf.asJson();
+ LOG.info(configAsString);
+ } catch (ParseJsonException pe) {
+ LOG.error("Got ParseJsonException while converting Config to JSONString", pe);
+ }
+
this.statsLogger = statsLogger;
this.nettyServer = new BookieNettyServer(this.conf, null);
try {
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ConfigurationService.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ConfigurationService.java
index 983da4a..2ac9e8e 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ConfigurationService.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/http/service/ConfigurationService.java
@@ -21,7 +21,6 @@ package org.apache.bookkeeper.server.http.service;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import org.apache.bookkeeper.conf.ServerConfiguration;
@@ -48,8 +47,7 @@ public class ConfigurationService implements HttpEndpointService {
HttpServiceResponse response = new HttpServiceResponse();
// GET
if (HttpServer.Method.GET == request.getMethod()) {
- Map<String, Object> configMap = toMap(conf);
- String jsonResponse = JsonUtil.toJson(configMap);
+ String jsonResponse = conf.asJson();
response.setBody(jsonResponse);
return response;
} else if (HttpServer.Method.PUT == request.getMethod()) {
@@ -75,17 +73,4 @@ public class ConfigurationService implements HttpEndpointService {
}
}
-
- private Map<String, Object> toMap(ServerConfiguration conf) {
- Map<String, Object> configMap = new HashMap<>();
- Iterator iterator = conf.getKeys();
- while (iterator.hasNext()) {
- String key = iterator.next().toString();
- Object property = conf.getProperty(key);
- if (property != null) {
- configMap.put(key, property.toString());
- }
- }
- return configMap;
- }
}
--
To stop receiving notification emails like this one, please contact
sijie@apache.org.