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/06/04 21:01:23 UTC
[bookkeeper] 02/10: Allow bookie to start if failed to load extra
server components
This is an automated email from the ASF dual-hosted git repository.
sijie pushed a commit to branch branch-4.7
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit d869f7ca5b8189382deca1a80f00cde608bcbc1c
Author: Sijie Guo <si...@apache.org>
AuthorDate: Tue May 22 01:43:46 2018 -0700
Allow bookie to start if failed to load extra server components
Descriptions of the changes in this PR:
*Motivation*
`extraServerComponents` provides the flexibility to allow bookie to start with extra server components.
It acts as a plugin mechanism to extend the functionality of bookies. However it is okay to allow bookie
start up when failed to load extra server components.
This is a change for allowing starting table service as extra components in bookies.
*Solution*
Catch the exception and log it when failed to load extra server components.
Author: Sijie Guo <si...@apache.org>
Reviewers: Enrico Olivelli <eo...@gmail.com>, Jia Zhai <None>
This closes #1420 from sijie/allow_start_bookie
---
.../main/java/org/apache/bookkeeper/server/Main.java | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
index 4815fee..1ef56de 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
@@ -48,6 +48,7 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.lang3.StringUtils;
/**
* A bookie server is a server that run bookie and serving rpc requests.
@@ -327,13 +328,18 @@ public class Main {
// 5. build extra services
String[] extraComponents = conf.getServerConf().getExtraServerComponents();
if (null != extraComponents) {
- List<ServerLifecycleComponent> components = loadServerComponents(
- extraComponents,
- conf,
- rootStatsLogger);
- for (ServerLifecycleComponent component : components) {
- serverBuilder.addComponent(component);
- log.info("Load lifecycle component : {}", component.getClass().getName());
+ try {
+ List<ServerLifecycleComponent> components = loadServerComponents(
+ extraComponents,
+ conf,
+ rootStatsLogger);
+ for (ServerLifecycleComponent component : components) {
+ serverBuilder.addComponent(component);
+ log.info("Load lifecycle component : {}", component.getClass().getName());
+ }
+ } catch (Exception e) {
+ log.info("Failed to load extra components '{}' - {}. Continuing without those components.",
+ StringUtils.join(extraComponents), e.getMessage());
}
}
--
To stop receiving notification emails like this one, please contact
sijie@apache.org.