reef-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Boris Shulman (JIRA)" <>
Subject [jira] [Commented] (REEF-1529) Fixing reef-webserver for multi runtime
Date Mon, 15 Aug 2016 22:23:20 GMT


Boris Shulman commented on REEF-1529:

[~juliaw] Do we have a more elegant way to test if an interface has any implementation then
trying to get an instance of it and catch exception?

> Fixing reef-webserver for multi runtime
> ---------------------------------------
>                 Key: REEF-1529
>                 URL:
>             Project: REEF
>          Issue Type: Improvement
>            Reporter: Boris Shulman
>            Assignee: Boris Shulman
> reef-webserver functionality is broken for multiruntime on yarn. The problem is that
the http-server does not exist in the injector that is used for the actual runtime implementation.
> The proposed solution is to check if http server is binded in the original injector and
copy it to the aftual runitme injector:
> Add in RuntimesHost.initializeInjector method:
> org.apache.reef.webserver.HttpServer httpServer = null;
>     try{
>       httpServer = this.originalInjector.getInstance(org.apache.reef
>               .webserver
>               .HttpServer.class);
>     }    catch(org.apache.reef.tang.exceptions.InjectionException e) {
>     }
>     if(httpServer != null){
>       runtimeInjector.bindVolatileInstance(
>               org.apache.reef.webserver.HttpServer.class,
>               httpServer);
>     }
> In addition I need to pass the right TrackingURLProvider to the actual runtime. I propose
to change the default implementation to the HttpTrackingURLProvider and remove the current
DefaultTrackingURLProvider empty implementation. In addition I will need to add default emptyimplementation
for HttpServer in order to be able to instantiate the  TrackingURLProvider  implementation
when no httpserver is bound.

This message was sent by Atlassian JIRA

View raw message