Repository: incubator-slider Updated Branches: refs/heads/develop 4e8c6ffbb -> aa21ad64d
SLIDER-350: AM not coming up on Windows Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/a5df3975 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/a5df3975 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/a5df3975 Branch: refs/heads/develop Commit: a5df39755bfd044f1d2ee4cc49e8d96f80a855d2 Parents: 4e8c6ff Author: Steve Loughran <ste...@apache.org> Authored: Fri Aug 22 14:32:39 2014 +0100 Committer: Steve Loughran <ste...@apache.org> Committed: Fri Aug 22 14:32:39 2014 +0100 ---------------------------------------------------------------------- .../server/appmaster/SliderAppMaster.java | 2 +- .../server/appmaster/web/AgentService.java | 28 +++++--------------- .../appmaster/web/rest/agent/AgentWebApp.java | 16 ++++++++--- .../LaunchedWorkflowCompositeService.java | 4 +++ .../services/workflow/ClosingService.java | 3 +++ .../web/rest/agent/TestAMAgentWebServices.java | 2 +- .../workflow/TestWorkflowClosingService.java | 4 +-- 7 files changed, 29 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a5df3975/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java index c006d0d..b4515f1 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java @@ -813,7 +813,7 @@ public class SliderAppMaster extends AbstractSliderLaunchedService } private void startAgentWebApp(MapOperations appInformation, - Configuration serviceConf) { + Configuration serviceConf) throws IOException { URL[] urls = ((URLClassLoader) AgentWebApp.class.getClassLoader() ).getURLs(); StringBuilder sb = new StringBuilder("AM classpath:"); for (URL url : urls) { http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a5df3975/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java index 08338e8..f840035 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/AgentService.java @@ -16,38 +16,22 @@ */ package org.apache.slider.server.appmaster.web; -import org.apache.hadoop.service.AbstractService; import org.apache.slider.server.appmaster.web.rest.agent.AgentWebApp; +import org.apache.slider.server.services.workflow.ClosingService; +import org.apache.slider.server.services.workflow.WorkflowCompositeService; /** - * + * agent service gives the agent webapp lifecycle integration */ -public class AgentService extends AbstractService { - private volatile AgentWebApp webApp; +public class AgentService extends ClosingService<AgentWebApp> { + public AgentService(String name) { super(name); } public AgentService(String name, AgentWebApp app) { - super(name); - webApp = app; + super(name, app); } - @Override - protected void serviceStart() throws Exception { - - } - - /** - * Stop operation stops the webapp; sets the reference to null - * @throws Exception - */ - @Override - protected void serviceStop() throws Exception { - if (webApp != null) { - webApp.stop(); - webApp = null; - } - } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a5df3975/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java index 54d2b1f..8aac490 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/agent/AgentWebApp.java @@ -36,13 +36,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ws.rs.ext.Provider; +import java.io.Closeable; import java.io.File; +import java.io.IOException; import java.util.Set; /** * */ -public class AgentWebApp { +public class AgentWebApp implements Closeable { protected static final Logger LOG = LoggerFactory.getLogger(AgentWebApp.class); private int port; private int securedPort; @@ -66,7 +68,7 @@ public class AgentWebApp { return this; } - public AgentWebApp start() { + public AgentWebApp start() throws IOException { if (configsMap == null) { throw new IllegalStateException("No SSL Configuration Available"); } @@ -100,8 +102,12 @@ public class AgentWebApp { try { agentServer.start(); + } catch (IOException e) { + LOG.error("Unable to start agent server", e); + throw e; } catch (Exception e) { LOG.error("Unable to start agent server", e); + throw new IOException("Unable to start agent server: " + e, e); } AgentWebApp webApp = new AgentWebApp(); @@ -191,12 +197,14 @@ public class AgentWebApp { return securedPort; } - public void stop() { + public void close() throws IOException{ //need to stop server and reset injector try { agentServer.stop(); + } catch (IOException e) { + throw e; } catch (Exception e) { - LOG.warn("Unable to stop agent server", e); + throw new IOException(e.toString(), e); } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a5df3975/slider-core/src/main/java/org/apache/slider/server/services/utility/LaunchedWorkflowCompositeService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/services/utility/LaunchedWorkflowCompositeService.java b/slider-core/src/main/java/org/apache/slider/server/services/utility/LaunchedWorkflowCompositeService.java index 0d47c3b..e939c20 100644 --- a/slider-core/src/main/java/org/apache/slider/server/services/utility/LaunchedWorkflowCompositeService.java +++ b/slider-core/src/main/java/org/apache/slider/server/services/utility/LaunchedWorkflowCompositeService.java @@ -28,6 +28,10 @@ import org.apache.slider.server.services.workflow.WorkflowCompositeService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * This is a workflow compositoe service which can be launched from the CLI + * ... catches the arguments and implements a stub runService operation. + */ public class LaunchedWorkflowCompositeService extends WorkflowCompositeService implements RunService { private static final Logger log = LoggerFactory.getLogger( http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a5df3975/slider-core/src/main/java/org/apache/slider/server/services/workflow/ClosingService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/services/workflow/ClosingService.java b/slider-core/src/main/java/org/apache/slider/server/services/workflow/ClosingService.java index 7a475cc..8b711aa 100644 --- a/slider-core/src/main/java/org/apache/slider/server/services/workflow/ClosingService.java +++ b/slider-core/src/main/java/org/apache/slider/server/services/workflow/ClosingService.java @@ -33,6 +33,9 @@ public class ClosingService<C extends Closeable> extends AbstractService { private C closeable; + public ClosingService(String name) { + super(name); + } /** * Construct an instance of the service http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a5df3975/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java ---------------------------------------------------------------------- diff --git a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java index 7e2ab3c..8590cbc 100644 --- a/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java +++ b/slider-core/src/test/java/org/apache/slider/server/appmaster/web/rest/agent/TestAMAgentWebServices.java @@ -152,7 +152,7 @@ public class TestAMAgentWebServices { @After public void tearDown () throws Exception { - webApp.stop(); + webApp.close(); webApp = null; } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a5df3975/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowClosingService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowClosingService.java b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowClosingService.java index 638547f..39516b7 100644 --- a/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowClosingService.java +++ b/slider-core/src/test/java/org/apache/slider/server/services/workflow/TestWorkflowClosingService.java @@ -37,7 +37,7 @@ public class TestWorkflowClosingService extends WorkflowServiceTestBase { @Test public void testNullClose() throws Throwable { - ClosingService<OpenClose> svc = new ClosingService<OpenClose>(null); + ClosingService<OpenClose> svc = new ClosingService<OpenClose>("", null); svc.init(new Configuration()); svc.start(); assertNull(svc.getCloseable()); @@ -81,7 +81,7 @@ public class TestWorkflowClosingService extends WorkflowServiceTestBase { @Test public void testCloseSelf() throws Throwable { ClosingService<ClosingService> svc = - new ClosingService<ClosingService>(null); + new ClosingService<ClosingService>(""); svc.setCloseable(svc); svc.stop(); }