Repository: incubator-slider Updated Branches: refs/heads/develop 8c3dddb3a -> 71aef45ba
SLIDER-88 Add class path reporting REST resource Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/71aef45b Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/71aef45b Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/71aef45b Branch: refs/heads/develop Commit: 71aef45ba81065269355d38a60c0e9465ee5867a Parents: 8c3dddb Author: Jon Maron <jma...@hortonworks.com> Authored: Tue Jun 10 15:33:31 2014 -0700 Committer: Jon Maron <jma...@hortonworks.com> Committed: Tue Jun 10 15:33:31 2014 -0700 ---------------------------------------------------------------------- .../slider/server/appmaster/web/rest/RestPaths.java | 2 ++ .../web/rest/publisher/PublisherResource.java | 14 ++++++++++++++ .../rest/publisher/TestPublisherRestResources.groovy | 12 ++++++++++++ 3 files changed, 28 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/71aef45b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java index fed8afe..d55635f 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/RestPaths.java @@ -56,4 +56,6 @@ public class RestPaths { = "[a-z0-9][a-z0-9_.\\+-]*"; public static final String SLIDER_CONFIGSET = "slider"; + + public static final String SLIDER_CLASSPATH = "classpath"; } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/71aef45b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/publisher/PublisherResource.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/publisher/PublisherResource.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/publisher/PublisherResource.java index e6b2664..a439d9b 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/publisher/PublisherResource.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/publisher/PublisherResource.java @@ -38,8 +38,14 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; import java.io.IOException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Map; +import java.util.Set; import static org.apache.slider.server.appmaster.web.rest.RestPaths.*; @@ -100,6 +106,14 @@ public class PublisherResource { } @GET + @Path("/classpath") + @Produces({MediaType.APPLICATION_JSON}) + public Set<URL> getAMClassPath() { + URL[] urls = ((URLClassLoader) getClass().getClassLoader()).getURLs(); + return new LinkedHashSet<>(Arrays.asList(urls)); + } + + @GET @Path("/"+ SET_NAME) @Produces({MediaType.APPLICATION_JSON}) public PublishedConfigSet getPublishedConfiguration( http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/71aef45b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/rest/publisher/TestPublisherRestResources.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/rest/publisher/TestPublisherRestResources.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/rest/publisher/TestPublisherRestResources.groovy index bc7c79a..1309e57 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/rest/publisher/TestPublisherRestResources.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/rest/publisher/TestPublisherRestResources.groovy @@ -130,6 +130,18 @@ class TestPublisherRestResources extends AgentTestBase { response = webResource.type(MediaType.TEXT_PLAIN).get(ClientResponse.class); assert 404 == response.status + String classpathUri = publisher_url +"/"+ RestPaths.SLIDER_CLASSPATH + webResource = client.resource(classpathUri) + Set uris = webResource.type(MediaType.APPLICATION_JSON) + .get(Set.class) + assert uris.size() > 0 + log.info("Classpath URIs: {}", uris) + // check for some expected classpath elements + assert uris.any {it =~ /curator-x-discovery/} + assert uris.any {it =~ /hadoop-yarn-api/} + assert uris.any {it =~ /hadoop-hdfs/} + // and a negative test... + assert !uris.any {it =~ /foo-bar/} } }