Skip to content

Commit

Permalink
Boot message provides a list of registered extensions for core and RE…
Browse files Browse the repository at this point in the history
…ST API.
  • Loading branch information
mmalohlava committed May 8, 2017
1 parent 575da81 commit 3684a22
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 4 deletions.
5 changes: 5 additions & 0 deletions h2o-algos/src/main/java/hex/api/RegisterAlgos.java
Expand Up @@ -71,4 +71,9 @@ public class RegisterAlgos extends water.api.AbstractRegister {
H2O.register("POST /3/LeaveOneCovarOut", LeaveOneCovarOutHandler.class, "getLoco","loco",
"Conduct Leave One Covariate Out (LOCO) Analysis");
}

@Override
public String getName() {
return "Algos";
}
}
5 changes: 5 additions & 0 deletions h2o-automl/src/main/java/water/automl/RegisterRestApi.java
Expand Up @@ -29,4 +29,9 @@ public class RegisterRestApi extends AbstractRegister {
"GET /99/Leaderboards/{project}", LeaderboardsHandler.class, "fetch",
"Return the AutoML leaderboard for the given project.");
}

@Override
public String getName() {
return "AutoML";
}
}
5 changes: 5 additions & 0 deletions h2o-core/src/main/java/water/AbstractH2OExtension.java
Expand Up @@ -67,4 +67,9 @@ public AbstractBuildVersion getBuildVersion() {
public void printInitialized() {
Log.info(getExtensionName() + " extension initialized");
}

/** Is this extension enabled? */
public boolean isEnabled() {
return true;
}
}
16 changes: 12 additions & 4 deletions h2o-core/src/main/java/water/H2O.java
Expand Up @@ -788,8 +788,10 @@ public static void registerExtensions() {
long before = System.currentTimeMillis();
ServiceLoader<AbstractH2OExtension> extensionsLoader = ServiceLoader.load(AbstractH2OExtension.class);
for (AbstractH2OExtension ext : extensionsLoader) {
ext.init();
addExtension(ext);
if (ext.isEnabled()) {
ext.init();
addExtension(ext);
}
}
extensionsRegistered = true;

Expand Down Expand Up @@ -825,19 +827,24 @@ public static void registerRestApis(String relativeResourcePath) {
}

// Log extension registrations here so the message is grouped in the right spot.
List<String> registeredH2OExts = new ArrayList<>();
for (AbstractH2OExtension e : H2O.getExtensions()) {
e.printInitialized();
registeredH2OExts.add(e.getExtensionName());
}
Log.info("Registered " + H2O.getExtensions().size() + " extensions in: " + registerExtensionsMillis + "ms");
Log.info("Registered H2O extensions: " + Arrays.toString(registeredH2OExts.toArray()));

long before = System.currentTimeMillis();
RequestServer.DummyRestApiContext dummyRestApiContext = new RequestServer.DummyRestApiContext();
ServiceLoader<RegisterRestApi> restApiExtensionLoander = ServiceLoader.load(RegisterRestApi.class);
for (RegisterRestApi r : restApiExtensionLoander) {
ServiceLoader<RegisterRestApi> restApiExtensionLoader = ServiceLoader.load(RegisterRestApi.class);
List<String> registeredRestApiExts = new ArrayList<>();
for (RegisterRestApi r : restApiExtensionLoader) {
try {
r.register(relativeResourcePath);
r.registerEndPoints(dummyRestApiContext);
r.registerSchemas(dummyRestApiContext);
registeredRestApiExts.add(r.getName());
} catch (Exception e) {
Log.info("Cannot register extension: " + r + ". Skipping it...");
}
Expand All @@ -847,6 +854,7 @@ public static void registerRestApis(String relativeResourcePath) {

long registerApisMillis = System.currentTimeMillis() - before;
Log.info("Registered: " + RequestServer.numRoutes() + " REST APIs in: " + registerApisMillis + "ms");
Log.info("Registered REST API extensions: " + Arrays.toString(registeredRestApiExts.toArray()));

// Register all schemas
SchemaServer.registerAllSchemasIfNecessary(dummyRestApiContext.getAllSchemas());
Expand Down
5 changes: 5 additions & 0 deletions h2o-core/src/main/java/water/api/AbstractRegister.java
Expand Up @@ -16,4 +16,9 @@ public void registerSchemas(RestApiContext context) {
context.registerSchema(schema);
}
}

@Override
public String getName() {
return this.getClass().getName();
}
}
3 changes: 3 additions & 0 deletions h2o-core/src/main/java/water/api/RegisterRestApi.java
Expand Up @@ -32,4 +32,7 @@ public interface RegisterRestApi {
* @param context
*/
void registerSchemas(RestApiContext context);

/** Provide name of the REST API extension. */
String getName();
}
5 changes: 5 additions & 0 deletions h2o-core/src/main/java/water/api/RegisterV3Api.java
Expand Up @@ -432,4 +432,9 @@ public void register(String relativeResourcePath) {
"GET /99/Rapids/help", RapidsHandler.class, "genHelp",
"Produce help for Rapids AstRoot language.");
}

@Override
public String getName() {
return "Core V3";
}
}
5 changes: 5 additions & 0 deletions h2o-core/src/main/java/water/api/RegisterV4Api.java
Expand Up @@ -42,4 +42,9 @@ public void register(String relativeResourcePath) {
//------------ Jobs ------------------------------------------------------------------------------------------------
registerEndpoint("GET /4/jobs/{job_id}", JobsHandler.FetchJob.class);
}

@Override
public String getName() {
return "Core V4";
}
}

0 comments on commit 3684a22

Please sign in to comment.