You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2016/09/18 06:59:33 UTC
incubator-eagle git commit: [EAGLE-543] Fix eagle server default
config, fix eagle server deve dependency
Repository: incubator-eagle
Updated Branches:
refs/heads/master 6e7236501 -> 2306c43a5
[EAGLE-543] Fix eagle server default config, fix eagle server deve dependency
# JIRA
https://issues.apache.org/jira/browse/EAGLE-543
# Changes
* Add loaded application providers brief info log.
* Fix ApplicationProviderClass bug
* Remove duplicated dependency
* Add eagle server request log config
Author: Hao Chen <ha...@apache.org>
Closes #436 from haoch/FixServerLoggingConfig.
Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/2306c43a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/2306c43a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/2306c43a
Branch: refs/heads/master
Commit: 2306c43a5d2e9e73feb3d0514f279d193d7cfebd
Parents: 6e72365
Author: Hao Chen <ha...@apache.org>
Authored: Sun Sep 18 14:59:16 2016 +0800
Committer: Hao Chen <ha...@apache.org>
Committed: Sun Sep 18 14:59:16 2016 +0800
----------------------------------------------------------------------
.../impl/ApplicationProviderSPILoader.java | 10 ++-
.../impl/ApplicationProviderServiceImpl.java | 2 +-
.../app/spi/ApplicationXMLDescriptorLoader.java | 2 +-
.../eagle-metadata/eagle-metadata-jdbc/pom.xml | 4 -
eagle-server-assembly/src/main/bin/eagle-env.sh | 2 +
eagle-server-assembly/src/main/conf/server.yml | 15 +++-
eagle-server/pom.xml | 3 +
.../apache/eagle/server/ServerApplication.java | 4 +-
.../eagle/server/module/GuiceBundleLoader.java | 84 +++++++++++++++++++
.../eagle/server/module/GuideBundleLoader.java | 85 --------------------
.../eagle/server/GuiceBundleLoaderTest.java | 28 +++++++
.../eagle/server/GuideBundleLoaderTest.java | 28 -------
12 files changed, 142 insertions(+), 125 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderSPILoader.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderSPILoader.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderSPILoader.java
index 1e0421a..bd96e28 100644
--- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderSPILoader.java
+++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderSPILoader.java
@@ -16,11 +16,11 @@
*/
package org.apache.eagle.app.service.impl;
+import com.typesafe.config.Config;
import org.apache.eagle.app.config.ApplicationProviderConfig;
import org.apache.eagle.app.service.ApplicationProviderLoader;
import org.apache.eagle.app.spi.ApplicationProvider;
import org.apache.eagle.app.utils.DynamicJarPathFinder;
-import com.typesafe.config.Config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -82,9 +82,15 @@ public class ApplicationProviderSPILoader extends ApplicationProviderLoader {
providerConfig.setJarPath(jarFileSupplier.apply(applicationProvider));
applicationProvider.prepare(providerConfig, getConfig());
registerProvider(applicationProvider);
+ LOG.warn("Loaded {}:{} ({}) from {}",
+ applicationProvider.getApplicationDesc().getType(),
+ applicationProvider.getApplicationDesc().getVersion(),
+ applicationProvider.getApplicationDesc().getName(),
+ providerConfig.getJarPath()
+ );
}
} catch (Throwable ex) {
- LOG.warn("Failed to register application provider", ex);
+ LOG.error("Failed to register application provider", ex);
throw new IllegalStateException(ex);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderServiceImpl.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderServiceImpl.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderServiceImpl.java
index d85b6cc..f93a4d4 100644
--- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderServiceImpl.java
+++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/service/impl/ApplicationProviderServiceImpl.java
@@ -117,7 +117,7 @@ public class ApplicationProviderServiceImpl implements ApplicationProviderServic
LOG.warn("Unable to load dependency {} -> {}", applicationDesc.getType(), dependency, ex);
} else {
LOG.error("Failed to load dependency {} -> {}", applicationDesc.getType(), dependency, ex);
- throw new IllegalStateException("Failed to load application providers due to dependency missing", ex);
+ throw new IllegalStateException("Failed to load application providers due to dependency missing " + applicationDesc.getType() + " -> " + dependency, ex);
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/ApplicationXMLDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/ApplicationXMLDescriptorLoader.java b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/ApplicationXMLDescriptorLoader.java
index bdc8a3a..2e8dbc3 100644
--- a/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/ApplicationXMLDescriptorLoader.java
+++ b/eagle-core/eagle-app/eagle-app-base/src/main/java/org/apache/eagle/app/spi/ApplicationXMLDescriptorLoader.java
@@ -48,7 +48,7 @@ class ApplicationXMLDescriptorLoader implements ApplicationDescLoader {
public ApplicationDesc getApplicationDesc() {
String descriptorPath = generateXMLDescriptorPath();
ApplicationDesc applicationDesc = new ApplicationDesc();
- applicationDesc.setProviderClass(this.getClass());
+ applicationDesc.setProviderClass(this.providerClass);
ApplicationProviderDescConfig descWrapperConfig = ApplicationProviderDescConfig.loadFromXML(this.getClass(), descriptorPath);
applicationDesc.setType(descWrapperConfig.getType());
applicationDesc.setVersion(descWrapperConfig.getVersion());
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-core/eagle-metadata/eagle-metadata-jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-metadata/eagle-metadata-jdbc/pom.xml b/eagle-core/eagle-metadata/eagle-metadata-jdbc/pom.xml
index ab1e0bf..940d697 100644
--- a/eagle-core/eagle-metadata/eagle-metadata-jdbc/pom.xml
+++ b/eagle-core/eagle-metadata/eagle-metadata-jdbc/pom.xml
@@ -39,10 +39,6 @@
<artifactId>commons-dbcp</artifactId>
</dependency>
<dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- </dependency>
- <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server-assembly/src/main/bin/eagle-env.sh
----------------------------------------------------------------------
diff --git a/eagle-server-assembly/src/main/bin/eagle-env.sh b/eagle-server-assembly/src/main/bin/eagle-env.sh
index 7c900ad..cbe307b 100644
--- a/eagle-server-assembly/src/main/bin/eagle-env.sh
+++ b/eagle-server-assembly/src/main/bin/eagle-env.sh
@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+export EAGLE_SERVER_JMX_PORT=9999
+
# EAGLE Environment Variables
export EAGLE_HOME=$(dirname $0)/..
export EAGLE_CLASSPATH=$EAGLE_HOME/conf
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server-assembly/src/main/conf/server.yml
----------------------------------------------------------------------
diff --git a/eagle-server-assembly/src/main/conf/server.yml b/eagle-server-assembly/src/main/conf/server.yml
index 8bea2c2..5ea8b31 100644
--- a/eagle-server-assembly/src/main/conf/server.yml
+++ b/eagle-server-assembly/src/main/conf/server.yml
@@ -13,6 +13,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+# Dropwizard Configuration:
+# http://www.dropwizard.io/0.7.1/docs/manual/configuration.html
+
server:
applicationConnectors:
- type: http
@@ -20,6 +23,15 @@ server:
adminConnectors:
- type: http
port: 9091
+ requestLog:
+ appenders:
+ - type: file
+ currentLogFilename: log/eagle-server-access.log
+ threshold: ALL
+ archive: true
+ archivedLogFilenamePattern: log/eagle-server-access-%d.log
+ archivedFileCount: 5
+ timeZone: UTC
logging:
level: INFO
@@ -30,5 +42,4 @@ logging:
archive: true
archivedLogFilenamePattern: log/eagle-server-%d.log
archivedFileCount: 5
- timeZone: UTC
- logFormat: # TODO
\ No newline at end of file
+ timeZone: UTC
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server/pom.xml
----------------------------------------------------------------------
diff --git a/eagle-server/pom.xml b/eagle-server/pom.xml
index 7881b4c..bae8ea2 100644
--- a/eagle-server/pom.xml
+++ b/eagle-server/pom.xml
@@ -152,6 +152,9 @@
<profiles>
<profile>
<id>dev</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
<!-- =========================================================================================================
TODO: Decouple following specific application related dependencies into independent module: eagle-develop
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server/src/main/java/org/apache/eagle/server/ServerApplication.java
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/java/org/apache/eagle/server/ServerApplication.java b/eagle-server/src/main/java/org/apache/eagle/server/ServerApplication.java
index e495e77..c22591f 100644
--- a/eagle-server/src/main/java/org/apache/eagle/server/ServerApplication.java
+++ b/eagle-server/src/main/java/org/apache/eagle/server/ServerApplication.java
@@ -20,7 +20,7 @@ import org.apache.eagle.alert.coordinator.CoordinatorListener;
import org.apache.eagle.alert.resource.SimpleCORSFiler;
import org.apache.eagle.log.base.taggedlog.EntityJsonModule;
import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.server.module.GuideBundleLoader;
+import org.apache.eagle.server.module.GuiceBundleLoader;
import com.sun.jersey.api.core.PackagesResourceConfig;
import io.dropwizard.Application;
@@ -36,7 +36,7 @@ import javax.servlet.DispatcherType;
class ServerApplication extends Application<ServerConfig> {
@Override
public void initialize(Bootstrap<ServerConfig> bootstrap) {
- bootstrap.addBundle(GuideBundleLoader.load());
+ bootstrap.addBundle(GuiceBundleLoader.load());
bootstrap.addBundle(new AssetsBundle("/assets", "/", "index.html", "/"));
}
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server/src/main/java/org/apache/eagle/server/module/GuiceBundleLoader.java
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/java/org/apache/eagle/server/module/GuiceBundleLoader.java b/eagle-server/src/main/java/org/apache/eagle/server/module/GuiceBundleLoader.java
new file mode 100644
index 0000000..a8359f7
--- /dev/null
+++ b/eagle-server/src/main/java/org/apache/eagle/server/module/GuiceBundleLoader.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.eagle.server.module;
+
+import com.google.inject.Module;
+import com.hubspot.dropwizard.guice.GuiceBundle;
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
+import org.apache.eagle.app.module.ApplicationExtensionLoader;
+import org.apache.eagle.app.service.ApplicationProviderService;
+import org.apache.eagle.app.service.impl.ApplicationProviderServiceImpl;
+import org.apache.eagle.common.module.GlobalScope;
+import org.apache.eagle.common.module.ModuleRegistry;
+import org.apache.eagle.metadata.persistence.MetadataStore;
+import org.apache.eagle.metadata.persistence.MetadataStoreModuleFactory;
+import org.apache.eagle.server.ServerConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+public class GuiceBundleLoader {
+ private static final Logger LOGGER = LoggerFactory.getLogger(GuiceBundleLoader.class);
+
+ public static GuiceBundle<ServerConfig> load(List<Module> modules) {
+ /*
+ We use tow injectors, one is Dropwizard injector, the other injector is to instantiate ApplicationProvider and
+ load sub modules from applications
+ so we need make Config and ApplicationProviderServiceImpl to have a global instance across multiple injectors
+ */
+
+ // Eagle server module
+ Config config = ConfigFactory.load();
+ ApplicationProviderService appProviderSvc = new ApplicationProviderServiceImpl(config);
+ ServerModule serveBaseModule = new ServerModule(appProviderSvc);
+
+ // load application specific modules
+ ModuleRegistry registry = ApplicationExtensionLoader.load(serveBaseModule);
+
+ // add application specific modules
+ MetadataStore metadataStoreModule = MetadataStoreModuleFactory.getModule();
+ List<Module> metadataExtensions = metadataStoreModule.getModules(registry);
+ int extensionNum = 0;
+ GuiceBundle.Builder<ServerConfig> builder = GuiceBundle.newBuilder();
+ if (metadataExtensions != null) {
+ extensionNum = metadataExtensions.size();
+ metadataExtensions.forEach(builder::addModule);
+ }
+ LOGGER.warn("Loaded {} modules (scope: metadataStore)", extensionNum);
+
+ List<Module> globalExtensions = registry.getModules(GlobalScope.class);
+ extensionNum = 0;
+ if (globalExtensions != null) {
+ extensionNum = globalExtensions.size();
+ globalExtensions.forEach(builder::addModule);
+ }
+ LOGGER.warn("Loaded {} modules (scope: global)", extensionNum);
+
+ if (modules != null) {
+ modules.forEach(builder::addModule);
+ }
+ return builder.addModule(serveBaseModule)
+ .setConfigClass(ServerConfig.class)
+ .build();
+ }
+
+ public static GuiceBundle<ServerConfig> load() {
+ return load(null);
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server/src/main/java/org/apache/eagle/server/module/GuideBundleLoader.java
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/java/org/apache/eagle/server/module/GuideBundleLoader.java b/eagle-server/src/main/java/org/apache/eagle/server/module/GuideBundleLoader.java
deleted file mode 100644
index 51f23b0..0000000
--- a/eagle-server/src/main/java/org/apache/eagle/server/module/GuideBundleLoader.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.server.module;
-
-import org.apache.eagle.app.module.ApplicationExtensionLoader;
-import org.apache.eagle.app.service.ApplicationProviderService;
-import org.apache.eagle.app.service.impl.ApplicationProviderServiceImpl;
-import org.apache.eagle.common.module.GlobalScope;
-import org.apache.eagle.common.module.ModuleRegistry;
-import org.apache.eagle.metadata.persistence.MetadataStore;
-import org.apache.eagle.metadata.persistence.MetadataStoreModuleFactory;
-import org.apache.eagle.server.ServerConfig;
-
-import com.google.inject.Module;
-import com.hubspot.dropwizard.guice.GuiceBundle;
-import com.typesafe.config.Config;
-import com.typesafe.config.ConfigFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-public class GuideBundleLoader {
- private static final Logger LOGGER = LoggerFactory.getLogger(GuideBundleLoader.class);
-
- public static GuiceBundle<ServerConfig> load(List<Module> modules) {
- /*
- We use tow injectors, one is Dropwizard injector, the other injector is to instantiate ApplicationProvider and
- load sub modules from applications
- so we need make Config and ApplicationProviderServiceImpl to have a global instance across multiple injectors
- */
-
- // Eagle server module
- Config config = ConfigFactory.load();
- ApplicationProviderService appProviderSvc = new ApplicationProviderServiceImpl(config);
- ServerModule serveBaseModule = new ServerModule(appProviderSvc);
-
- // load application specific modules
- ModuleRegistry registry = ApplicationExtensionLoader.load(serveBaseModule);
-
- // add application specific modules
- MetadataStore metadataStoreModule = MetadataStoreModuleFactory.getModule();
- List<Module> metadataExtensions = metadataStoreModule.getModules(registry);
- int extensionNum = 0;
- GuiceBundle.Builder<ServerConfig> builder = GuiceBundle.newBuilder();
- if (metadataExtensions != null) {
- extensionNum = metadataExtensions.size();
- metadataExtensions.forEach(builder::addModule);
- }
- LOGGER.warn("Loaded {} modules (scope: metadataStore)", extensionNum);
-
- List<Module> globalExtensions = registry.getModules(GlobalScope.class);
- extensionNum = 0;
- if (globalExtensions != null) {
- extensionNum = globalExtensions.size();
- globalExtensions.forEach(builder::addModule);
- }
- LOGGER.warn("Loaded {} modules (scope: global)", extensionNum);
-
- if (modules != null) {
- modules.forEach(builder::addModule);
- }
- return builder.addModule(serveBaseModule)
- .setConfigClass(ServerConfig.class)
- .build();
- }
-
- public static GuiceBundle<ServerConfig> load() {
- return load(null);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server/src/test/java/org/apache/eagle/server/GuiceBundleLoaderTest.java
----------------------------------------------------------------------
diff --git a/eagle-server/src/test/java/org/apache/eagle/server/GuiceBundleLoaderTest.java b/eagle-server/src/test/java/org/apache/eagle/server/GuiceBundleLoaderTest.java
new file mode 100644
index 0000000..a5c4933
--- /dev/null
+++ b/eagle-server/src/test/java/org/apache/eagle/server/GuiceBundleLoaderTest.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.eagle.server;
+
+import com.hubspot.dropwizard.guice.GuiceBundle;
+import org.apache.eagle.server.module.GuiceBundleLoader;
+import org.junit.Test;
+
+public class GuiceBundleLoaderTest {
+ @Test
+ public void testLoad() {
+ GuiceBundle<ServerConfig> bundle = GuiceBundleLoader.load();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2306c43a/eagle-server/src/test/java/org/apache/eagle/server/GuideBundleLoaderTest.java
----------------------------------------------------------------------
diff --git a/eagle-server/src/test/java/org/apache/eagle/server/GuideBundleLoaderTest.java b/eagle-server/src/test/java/org/apache/eagle/server/GuideBundleLoaderTest.java
deleted file mode 100644
index b9b6fcf..0000000
--- a/eagle-server/src/test/java/org/apache/eagle/server/GuideBundleLoaderTest.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.server;
-
-import com.hubspot.dropwizard.guice.GuiceBundle;
-import org.apache.eagle.server.module.GuideBundleLoader;
-import org.junit.Test;
-
-public class GuideBundleLoaderTest {
- @Test
- public void testLoad() {
- GuiceBundle<ServerConfig> bundle = GuideBundleLoader.load();
- }
-}