mirror of https://github.com/apache/druid.git
Code refactoring, one place!
This commit is contained in:
parent
8117fff4e2
commit
b5f6dbc32f
|
@ -28,12 +28,8 @@ import io.druid.server.initialization.ExtensionsConfig;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.Produces;
|
import javax.ws.rs.Produces;
|
||||||
import java.io.IOException;
|
import java.util.ArrayList;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
|
@ -43,6 +39,11 @@ public class StatusResource
|
||||||
@GET
|
@GET
|
||||||
@Produces("application/json")
|
@Produces("application/json")
|
||||||
public Status doGet()
|
public Status doGet()
|
||||||
|
{
|
||||||
|
return getStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Status getStatus()
|
||||||
{
|
{
|
||||||
return new Status(
|
return new Status(
|
||||||
Initialization.class.getPackage().getImplementationVersion(),
|
Initialization.class.getPackage().getImplementationVersion(),
|
||||||
|
@ -56,46 +57,55 @@ public class StatusResource
|
||||||
*
|
*
|
||||||
* @return map of extensions loaded with their respective implementation versions.
|
* @return map of extensions loaded with their respective implementation versions.
|
||||||
*/
|
*/
|
||||||
private Map<String, String> getExtensionVersions()
|
private static List<ModuleVersion> getExtensionVersions()
|
||||||
{
|
{
|
||||||
final Injector injector = Initialization.makeStartupInjector();
|
final Injector injector = Initialization.makeStartupInjector();
|
||||||
final ExtensionsConfig config = injector.getInstance(ExtensionsConfig.class);
|
final ExtensionsConfig config = injector.getInstance(ExtensionsConfig.class);
|
||||||
final List<DruidModule> druidModules = Initialization.getFromExtensions(config, DruidModule.class);
|
final List<DruidModule> druidModules = Initialization.getFromExtensions(config, DruidModule.class);
|
||||||
Map<String, String> moduleVersions = new HashMap<>();
|
|
||||||
|
List<ModuleVersion> moduleVersions = new ArrayList<>();
|
||||||
for (DruidModule module : druidModules) {
|
for (DruidModule module : druidModules) {
|
||||||
Package pkg = module.getClass().getPackage();
|
|
||||||
moduleVersions.put(pkg.getImplementationTitle(), pkg.getImplementationVersion());
|
String artifact = module.getClass().getPackage().getImplementationTitle();
|
||||||
|
String version = module.getClass().getPackage().getImplementationVersion();
|
||||||
|
|
||||||
|
ModuleVersion moduleVersion;
|
||||||
|
if (artifact != null) {
|
||||||
|
moduleVersion = new ModuleVersion(module.getClass().getCanonicalName(), artifact, version);
|
||||||
|
} else {
|
||||||
|
moduleVersion = new ModuleVersion(module.getClass().getCanonicalName());
|
||||||
|
}
|
||||||
|
|
||||||
|
moduleVersions.add(moduleVersion);
|
||||||
}
|
}
|
||||||
return moduleVersions;
|
return moduleVersions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Status
|
public static class Status
|
||||||
{
|
{
|
||||||
final String serverVersion;
|
final String version;
|
||||||
final Map<String, String> extensionsVersion;
|
final List<ModuleVersion> modules;
|
||||||
final Memory memory;
|
final Memory memory;
|
||||||
|
|
||||||
public Status(
|
public Status(
|
||||||
String serverVersion,
|
String version, List<ModuleVersion> modules, Memory memory
|
||||||
Map<String, String> extensionsVersion,
|
|
||||||
Memory memory
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
this.serverVersion = serverVersion;
|
this.version = version;
|
||||||
this.extensionsVersion = extensionsVersion;
|
this.modules = modules;
|
||||||
this.memory = memory;
|
this.memory = memory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
public String getServerVersion()
|
public String getVersion()
|
||||||
{
|
{
|
||||||
return serverVersion;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
public Map<String, String> getExtensionsVersion()
|
public List<ModuleVersion> getModules()
|
||||||
{
|
{
|
||||||
return extensionsVersion;
|
return modules;
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
|
@ -103,6 +113,72 @@ public class StatusResource
|
||||||
{
|
{
|
||||||
return memory;
|
return memory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
final String NL = "\n";
|
||||||
|
StringBuilder output = new StringBuilder();
|
||||||
|
output.append(String.format("Druid version - %s", version)).append(NL).append(NL);
|
||||||
|
|
||||||
|
if (modules.size() > 0) {
|
||||||
|
output.append("Registered Druid Modules").append(NL);
|
||||||
|
} else {
|
||||||
|
output.append("No Druid Modules loaded !");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ModuleVersion moduleVersion : modules) {
|
||||||
|
output.append(moduleVersion).append(NL);
|
||||||
|
}
|
||||||
|
return output.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ModuleVersion
|
||||||
|
{
|
||||||
|
final String name;
|
||||||
|
final String artifact;
|
||||||
|
final String version;
|
||||||
|
|
||||||
|
public ModuleVersion(String name)
|
||||||
|
{
|
||||||
|
this(name, "", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
public ModuleVersion(String name, String artifact, String version)
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
this.artifact = artifact;
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
public String getArtifact()
|
||||||
|
{
|
||||||
|
return artifact;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
public String getVersion()
|
||||||
|
{
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
if (artifact.isEmpty()) {
|
||||||
|
return String.format(" - %s ", name);
|
||||||
|
} else {
|
||||||
|
return String.format(" - %s (%s-%s)", name, artifact, version);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Memory
|
public static class Memory
|
||||||
|
@ -143,5 +219,6 @@ public class StatusResource
|
||||||
{
|
{
|
||||||
return usedMemory;
|
return usedMemory;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,12 +45,6 @@ public class Main
|
||||||
.withDefaultCommand(Help.class)
|
.withDefaultCommand(Help.class)
|
||||||
.withCommands(Help.class, Version.class);
|
.withCommands(Help.class, Version.class);
|
||||||
|
|
||||||
Runnable cmd = builder.build().parse(args);
|
|
||||||
if (cmd instanceof Version) {
|
|
||||||
Logger.getRootLogger().setLevel(Level.OFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
builder.withGroup("server")
|
builder.withGroup("server")
|
||||||
.withDescription("Run one of the Druid server types.")
|
.withDescription("Run one of the Druid server types.")
|
||||||
.withDefaultCommand(Help.class)
|
.withDefaultCommand(Help.class)
|
||||||
|
|
|
@ -20,11 +20,7 @@
|
||||||
package io.druid.cli;
|
package io.druid.cli;
|
||||||
|
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
import io.druid.initialization.DruidModule;
|
import io.druid.server.StatusResource;
|
||||||
import io.druid.initialization.Initialization;
|
|
||||||
import io.druid.server.initialization.ExtensionsConfig;
|
|
||||||
|
|
||||||
import java.lang.StringBuilder;
|
|
||||||
|
|
||||||
@Command(
|
@Command(
|
||||||
name = "version",
|
name = "version",
|
||||||
|
@ -32,33 +28,9 @@ import java.lang.StringBuilder;
|
||||||
)
|
)
|
||||||
public class Version implements Runnable
|
public class Version implements Runnable
|
||||||
{
|
{
|
||||||
private static final String NL = "\n";
|
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
StringBuilder output = new StringBuilder();
|
System.out.println(StatusResource.getStatus());
|
||||||
output.append("Druid version ").append(NL);
|
|
||||||
output.append(Initialization.class.getPackage().getImplementationVersion()).append(NL).append(NL);
|
|
||||||
|
|
||||||
ExtensionsConfig config = Initialization.makeStartupInjector().getInstance(ExtensionsConfig.class);
|
|
||||||
|
|
||||||
output.append("Registered Druid Modules").append(NL);
|
|
||||||
|
|
||||||
for (DruidModule module : Initialization.getFromExtensions(config, DruidModule.class)) {
|
|
||||||
String artifact = module.getClass().getPackage().getImplementationTitle();
|
|
||||||
String version = module.getClass().getPackage().getImplementationVersion();
|
|
||||||
|
|
||||||
if (artifact != null) {
|
|
||||||
output.append(
|
|
||||||
String.format(" - %s (%s-%s)", module.getClass().getCanonicalName(), artifact, version)
|
|
||||||
).append(NL);
|
|
||||||
} else {
|
|
||||||
output.append(
|
|
||||||
String.format(" - %s", module.getClass().getCanonicalName())
|
|
||||||
).append(NL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println(output.toString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue