mirror of https://github.com/apache/druid.git
Merge pull request #343 from metamx/dependency-cleanup
Dependency cleanup & Initialization tests
This commit is contained in:
commit
2205ebf459
|
@ -59,14 +59,6 @@
|
|||
<groupId>org.skife.config</groupId>
|
||||
<artifactId>config-magic</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.curator</groupId>
|
||||
<artifactId>curator-recipes</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.curator</groupId>
|
||||
<artifactId>curator-x-discovery</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
|
@ -75,10 +67,6 @@
|
|||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>it.uniroma3.mat</groupId>
|
||||
<artifactId>extendedset</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
|
@ -127,16 +115,6 @@
|
|||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.18</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mozilla</groupId>
|
||||
<artifactId>rhino</artifactId>
|
||||
<version>1.7R4</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Tests -->
|
||||
<dependency>
|
||||
|
|
|
@ -47,95 +47,10 @@
|
|||
<artifactId>druid-indexing-hadoop</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>emitter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>http-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>java-util</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>server-metrics</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skife.config</groupId>
|
||||
<artifactId>config-magic</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.curator</groupId>
|
||||
<artifactId>curator-framework</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.curator</groupId>
|
||||
<artifactId>curator-recipes</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject</groupId>
|
||||
<artifactId>guice</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject.extensions</groupId>
|
||||
<artifactId>guice-servlet</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
||||
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.inject</groupId>
|
||||
<artifactId>javax.inject</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jdbi</groupId>
|
||||
<artifactId>jdbi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.jersey</groupId>
|
||||
<artifactId>jersey-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.jersey.contribs</groupId>
|
||||
<artifactId>jersey-guice</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-server</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.findbugs</groupId>
|
||||
<artifactId>jsr305</artifactId>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.18</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Tests -->
|
||||
|
|
12
pom.xml
12
pom.xml
|
@ -289,6 +289,16 @@
|
|||
<groupId>com.sun.jersey.contribs</groupId>
|
||||
<artifactId>jersey-guice</artifactId>
|
||||
<version>1.17.1</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.google.inject</groupId>
|
||||
<artifactId>guice</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>com.google.inject.extensions</groupId>
|
||||
<artifactId>guice-servlet</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.jersey</groupId>
|
||||
|
@ -409,7 +419,7 @@
|
|||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.8.1</version>
|
||||
<version>4.11</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
@ -37,10 +37,6 @@
|
|||
<artifactId>druid-common</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>java-util</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>bytebuffer-collections</artifactId>
|
||||
|
@ -49,8 +45,6 @@
|
|||
<groupId>com.metamx</groupId>
|
||||
<artifactId>emitter</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.ning</groupId>
|
||||
<artifactId>compress-lzf</artifactId>
|
||||
|
@ -63,34 +57,6 @@
|
|||
<groupId>it.uniroma3.mat</groupId>
|
||||
<artifactId>extendedset</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject</groupId>
|
||||
<artifactId>guice</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.inject</groupId>
|
||||
<artifactId>javax.inject</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
|
@ -107,6 +73,11 @@
|
|||
<groupId>com.ibm.icu</groupId>
|
||||
<artifactId>icu4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mozilla</groupId>
|
||||
<artifactId>rhino</artifactId>
|
||||
<version>1.7R4</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- Tests -->
|
||||
|
|
|
@ -37,24 +37,14 @@
|
|||
<artifactId>druid-processing</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>emitter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>http-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>java-util</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.metamx</groupId>
|
||||
<artifactId>server-metrics</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-cli</groupId>
|
||||
<artifactId>commons-cli</artifactId>
|
||||
|
@ -64,21 +54,13 @@
|
|||
<artifactId>commons-lang</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<groupId>javax.inject</groupId>
|
||||
<artifactId>javax.inject</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.amazonaws</groupId>
|
||||
<artifactId>aws-java-sdk</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ning</groupId>
|
||||
<artifactId>compress-lzf</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skife.config</groupId>
|
||||
<artifactId>config-magic</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.curator</groupId>
|
||||
<artifactId>curator-framework</artifactId>
|
||||
|
@ -87,42 +69,14 @@
|
|||
<groupId>org.apache.curator</groupId>
|
||||
<artifactId>curator-x-discovery</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>it.uniroma3.mat</groupId>
|
||||
<artifactId>extendedset</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject</groupId>
|
||||
<artifactId>guice</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
||||
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-smile</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.inject</groupId>
|
||||
<artifactId>javax.inject</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jdbi</groupId>
|
||||
<artifactId>jdbi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.jersey</groupId>
|
||||
<artifactId>jersey-server</artifactId>
|
||||
|
@ -131,6 +85,10 @@
|
|||
<groupId>com.sun.jersey</groupId>
|
||||
<artifactId>jersey-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject.extensions</groupId>
|
||||
<artifactId>guice-servlet</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.jersey.contribs</groupId>
|
||||
<artifactId>jersey-guice</artifactId>
|
||||
|
@ -139,22 +97,10 @@
|
|||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-server</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.findbugs</groupId>
|
||||
<artifactId>jsr305</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.tesla.aether</groupId>
|
||||
<artifactId>tesla-aether</artifactId>
|
||||
|
|
|
@ -28,8 +28,8 @@ import javax.ws.rs.GET;
|
|||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
*/
|
||||
|
@ -40,7 +40,7 @@ public class StatusResource
|
|||
@Produces("application/json")
|
||||
public Status doGet()
|
||||
{
|
||||
return new Status();
|
||||
return new Status(Initialization.getLoadedModules(DruidModule.class));
|
||||
}
|
||||
|
||||
public static class Status
|
||||
|
@ -49,13 +49,18 @@ public class StatusResource
|
|||
final List<ModuleVersion> modules;
|
||||
final Memory memory;
|
||||
|
||||
public Status()
|
||||
public Status(Collection<DruidModule> modules)
|
||||
{
|
||||
this.version = Status.class.getPackage().getImplementationVersion();
|
||||
this.modules = getExtensionVersions();
|
||||
this.version = getDruidVersion();
|
||||
this.modules = getExtensionVersions(modules);
|
||||
this.memory = new Memory(Runtime.getRuntime());
|
||||
}
|
||||
|
||||
private String getDruidVersion()
|
||||
{
|
||||
return Status.class.getPackage().getImplementationVersion();
|
||||
}
|
||||
|
||||
@JsonProperty
|
||||
public String getVersion()
|
||||
{
|
||||
|
@ -98,9 +103,8 @@ public class StatusResource
|
|||
*
|
||||
* @return map of extensions loaded with their respective implementation versions.
|
||||
*/
|
||||
private List<ModuleVersion> getExtensionVersions()
|
||||
private List<ModuleVersion> getExtensionVersions(Collection<DruidModule> druidModules)
|
||||
{
|
||||
final Set<DruidModule> druidModules = Initialization.getLoadedModules(DruidModule.class);
|
||||
List<ModuleVersion> moduleVersions = new ArrayList<>();
|
||||
for (DruidModule module : druidModules) {
|
||||
String artifact = module.getClass().getPackage().getImplementationTitle();
|
||||
|
@ -110,7 +114,6 @@ public class StatusResource
|
|||
}
|
||||
return moduleVersions;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
|
|
|
@ -0,0 +1,152 @@
|
|||
/*
|
||||
* Druid - a distributed column store.
|
||||
* Copyright (C) 2012, 2013 Metamarkets Group Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package io.druid.initialization;
|
||||
|
||||
import com.fasterxml.jackson.databind.Module;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.collect.Collections2;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Binder;
|
||||
import com.google.inject.Injector;
|
||||
import io.druid.server.initialization.ExtensionsConfig;
|
||||
import junit.framework.Assert;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.FixMethodOrder;
|
||||
import org.junit.Test;
|
||||
import org.junit.runners.MethodSorters;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||
public class InitializationTest
|
||||
{
|
||||
private String oldService;
|
||||
private String oldHost;
|
||||
private String oldPort;
|
||||
|
||||
@Before
|
||||
public void messWithSystemProperties()
|
||||
{
|
||||
// required to test Initialization.makeInjectorWithModules
|
||||
oldService = System.setProperty("druid.service", "test-service");
|
||||
oldHost = System.setProperty("druid.host", "test-host");
|
||||
oldPort = System.setProperty("druid.port", "8080");
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup()
|
||||
{
|
||||
System.setProperty("druid.service", oldService == null ? "" : oldService);
|
||||
System.setProperty("druid.host", oldHost == null ? "" : oldHost);
|
||||
System.setProperty("druid.port", oldPort == null ? "" : oldPort);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test01InitialModulesEmpty() throws Exception
|
||||
{
|
||||
Assert.assertEquals(
|
||||
"Initial set of loaded modules must be empty",
|
||||
0,
|
||||
Initialization.getLoadedModules(DruidModule.class).size()
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test02MakeStartupInjector() throws Exception
|
||||
{
|
||||
Injector startupInjector = Initialization.makeStartupInjector();
|
||||
Assert.assertNotNull(startupInjector);
|
||||
Assert.assertNotNull(startupInjector.getInstance(ObjectMapper.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test03ClassLoaderExtensionsLoading()
|
||||
{
|
||||
Injector startupInjector = Initialization.makeStartupInjector();
|
||||
|
||||
Function<DruidModule, String> fnClassName = new Function<DruidModule, String>()
|
||||
{
|
||||
@Nullable
|
||||
@Override
|
||||
public String apply(@Nullable DruidModule input)
|
||||
{
|
||||
return input.getClass().getCanonicalName();
|
||||
}
|
||||
};
|
||||
|
||||
Assert.assertFalse(
|
||||
"modules does not contain TestDruidModule",
|
||||
Collections2.transform(Initialization.getLoadedModules(DruidModule.class), fnClassName)
|
||||
.contains("io.druid.initialization.InitializationTest.TestDruidModule")
|
||||
);
|
||||
|
||||
Collection<DruidModule> modules = Initialization.getFromExtensions(
|
||||
startupInjector.getInstance(ExtensionsConfig.class),
|
||||
DruidModule.class
|
||||
);
|
||||
|
||||
Assert.assertTrue(
|
||||
"modules contains TestDruidModule",
|
||||
Collections2.transform(modules, fnClassName)
|
||||
.contains("io.druid.initialization.InitializationTest.TestDruidModule")
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test04MakeInjectorWithModules() throws Exception
|
||||
{
|
||||
Injector startupInjector = Initialization.makeStartupInjector();
|
||||
Injector injector = Initialization.makeInjectorWithModules(startupInjector, ImmutableList.of());
|
||||
Assert.assertNotNull(injector);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetLoadedModules()
|
||||
{
|
||||
|
||||
Set<DruidModule> modules = Initialization.getLoadedModules(DruidModule.class);
|
||||
|
||||
Set<DruidModule> loadedModules = Initialization.getLoadedModules(DruidModule.class);
|
||||
Assert.assertEquals("Set from loaded modules #1 should be same!", modules, loadedModules);
|
||||
|
||||
Set<DruidModule> loadedModules2 = Initialization.getLoadedModules(DruidModule.class);
|
||||
Assert.assertEquals("Set from loaded modules #2 should be same!", modules, loadedModules2);
|
||||
}
|
||||
|
||||
public static class TestDruidModule implements DruidModule
|
||||
{
|
||||
@Override
|
||||
public List<? extends Module> getJacksonModules()
|
||||
{
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(Binder binder)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,19 +19,14 @@
|
|||
|
||||
package io.druid.server;
|
||||
|
||||
import com.fasterxml.jackson.databind.Module;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Binder;
|
||||
import com.google.inject.Injector;
|
||||
import io.druid.initialization.DruidModule;
|
||||
import io.druid.initialization.Initialization;
|
||||
import io.druid.server.initialization.ExtensionsConfig;
|
||||
import io.druid.initialization.InitializationTest;
|
||||
import junit.framework.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static io.druid.server.StatusResource.ModuleVersion;
|
||||
|
||||
|
@ -39,29 +34,14 @@ import static io.druid.server.StatusResource.ModuleVersion;
|
|||
*/
|
||||
public class StatusResourceTest
|
||||
{
|
||||
|
||||
private Collection<DruidModule> loadTestModule()
|
||||
{
|
||||
Injector baseInjector = Initialization.makeStartupInjector();
|
||||
return Initialization.getFromExtensions(baseInjector.getInstance(ExtensionsConfig.class), DruidModule.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadedModules()
|
||||
{
|
||||
final StatusResource resource = new StatusResource();
|
||||
List<ModuleVersion> statusResourceModuleList;
|
||||
|
||||
statusResourceModuleList = resource.doGet().getModules();
|
||||
Assert.assertEquals(
|
||||
"No Modules should be loaded currently! " + statusResourceModuleList,
|
||||
statusResourceModuleList.size(), 0
|
||||
);
|
||||
Collection<DruidModule> modules = ImmutableList.of((DruidModule)new InitializationTest.TestDruidModule());
|
||||
List<ModuleVersion> statusResourceModuleList = new StatusResource.Status(modules).getModules();
|
||||
|
||||
Collection<DruidModule> modules = loadTestModule();
|
||||
statusResourceModuleList = resource.doGet().getModules();
|
||||
|
||||
Assert.assertEquals("Status should have all modules loaded!", statusResourceModuleList.size(), modules.size());
|
||||
Assert.assertEquals("Status should have all modules loaded!", modules.size(), statusResourceModuleList.size());
|
||||
|
||||
for (DruidModule module : modules) {
|
||||
String moduleName = module.getClass().getCanonicalName();
|
||||
|
@ -74,30 +54,6 @@ public class StatusResourceTest
|
|||
}
|
||||
Assert.assertTrue("Status resource should contain module " + moduleName, contains);
|
||||
}
|
||||
|
||||
/*
|
||||
* StatusResource only uses Initialization.getLoadedModules
|
||||
*/
|
||||
for (int i = 0; i < 5; i++) {
|
||||
Set<DruidModule> loadedModules = Initialization.getLoadedModules(DruidModule.class);
|
||||
Assert.assertEquals("Set from loaded module should be same!", loadedModules, modules);
|
||||
}
|
||||
}
|
||||
|
||||
public static class TestDruidModule implements DruidModule
|
||||
{
|
||||
@Override
|
||||
public List<? extends Module> getJacksonModules()
|
||||
{
|
||||
return ImmutableList.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(Binder binder)
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
io.druid.server.StatusResourceTest$TestDruidModule
|
||||
io.druid.initialization.InitializationTest$TestDruidModule
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
package io.druid.cli;
|
||||
|
||||
import io.airlift.command.Command;
|
||||
import io.druid.initialization.DruidModule;
|
||||
import io.druid.initialization.Initialization;
|
||||
import io.druid.server.StatusResource;
|
||||
|
||||
@Command(
|
||||
|
@ -31,6 +33,6 @@ public class Version implements Runnable
|
|||
@Override
|
||||
public void run()
|
||||
{
|
||||
System.out.println(new StatusResource.Status());
|
||||
System.out.println(new StatusResource.Status(Initialization.getLoadedModules(DruidModule.class)));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue