diff --git a/server/src/main/java/org/apache/druid/query/lookup/LookupIntrospectionResource.java b/server/src/main/java/org/apache/druid/query/lookup/LookupIntrospectionResource.java index 03c3e97ba04c..ec319750d5ac 100644 --- a/server/src/main/java/org/apache/druid/query/lookup/LookupIntrospectionResource.java +++ b/server/src/main/java/org/apache/druid/query/lookup/LookupIntrospectionResource.java @@ -20,7 +20,9 @@ package org.apache.druid.query.lookup; import com.google.inject.Inject; +import com.sun.jersey.spi.container.ResourceFilters; import org.apache.druid.java.util.common.logger.Logger; +import org.apache.druid.server.http.security.ConfigResourceFilter; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @@ -28,6 +30,7 @@ import javax.ws.rs.core.Response; @Path("/druid/v1/lookups/introspect") +@ResourceFilters(ConfigResourceFilter.class) public class LookupIntrospectionResource { private static final Logger LOGGER = new Logger(LookupIntrospectionResource.class); diff --git a/server/src/test/java/org/apache/druid/query/lookup/LookupIntrospectionResourceImplTest.java b/server/src/test/java/org/apache/druid/query/lookup/LookupIntrospectionResourceImplTest.java index 3236fffcdea7..4bf5fce70f20 100644 --- a/server/src/test/java/org/apache/druid/query/lookup/LookupIntrospectionResourceImplTest.java +++ b/server/src/test/java/org/apache/druid/query/lookup/LookupIntrospectionResourceImplTest.java @@ -20,33 +20,20 @@ package org.apache.druid.query.lookup; import com.google.common.collect.ImmutableMap; -import com.sun.jersey.api.client.WebResource; -import com.sun.jersey.api.core.ClassNamesResourceConfig; -import com.sun.jersey.spi.container.servlet.WebComponent; -import com.sun.jersey.spi.inject.SingletonTypeInjectableProvider; -import com.sun.jersey.test.framework.JerseyTest; -import com.sun.jersey.test.framework.WebAppDescriptor; -import com.sun.jersey.test.framework.spi.container.TestContainerFactory; -import com.sun.jersey.test.framework.spi.container.grizzly2.GrizzlyTestContainerFactory; import org.easymock.EasyMock; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import javax.ws.rs.core.Context; -import javax.ws.rs.ext.Provider; - -public class LookupIntrospectionResourceImplTest extends JerseyTest +public class LookupIntrospectionResourceImplTest { - static LookupReferencesManager lookupReferencesManager = EasyMock.createMock(LookupReferencesManager.class); - + LookupReferencesManager lookupReferencesManager = EasyMock.createMock(LookupReferencesManager.class); + LookupIntrospectionResource lookupIntrospectionResource = new LookupIntrospectionResource(lookupReferencesManager); - @Override @Before public void setUp() throws Exception { - super.setUp(); EasyMock.reset(lookupReferencesManager); LookupExtractorFactory lookupExtractorFactory1 = new MapLookupExtractorFactory(ImmutableMap.of( "key", @@ -63,63 +50,33 @@ public void setUp() throws Exception EasyMock.replay(lookupReferencesManager); } - @Provider - public static class MockTodoServiceProvider extends - SingletonTypeInjectableProvider - { - public MockTodoServiceProvider() - { - super(LookupReferencesManager.class, lookupReferencesManager); - } - } - - - public LookupIntrospectionResourceImplTest() - { - super(new WebAppDescriptor.Builder().initParam( - WebComponent.RESOURCE_CONFIG_CLASS, - ClassNamesResourceConfig.class.getName() - ) - .initParam( - ClassNamesResourceConfig.PROPERTY_CLASSNAMES, - LookupIntrospectionResource.class.getName() - + ';' - + MockTodoServiceProvider.class.getName() - + ';' - + LookupIntrospectHandler.class.getName() - ) - .build()); - } - - @Override - protected TestContainerFactory getTestContainerFactory() - { - return new GrizzlyTestContainerFactory(); - } - - @Test public void testGetKey() { - - WebResource r = resource().path("/druid/v1/lookups/introspect/lookupId1/keys"); - String s = r.get(String.class); - Assert.assertEquals("[key, key2]", s); + MapLookupExtractorFactory.MapLookupIntrospectionHandler mapLookupIntrospectionHandler = + (MapLookupExtractorFactory.MapLookupIntrospectionHandler) lookupIntrospectionResource + .introspectLookup("lookupId1"); + Assert.assertEquals("[key, key2]", mapLookupIntrospectionHandler.getKeys().getEntity()); } @Test public void testGetValue() { - WebResource r = resource().path("/druid/v1/lookups/introspect/lookupId1/values"); - String s = r.get(String.class); - Assert.assertEquals("[value, value2]", s); + MapLookupExtractorFactory.MapLookupIntrospectionHandler mapLookupIntrospectionHandler = + (MapLookupExtractorFactory.MapLookupIntrospectionHandler) lookupIntrospectionResource + .introspectLookup("lookupId1"); + Assert.assertEquals("[value, value2]", mapLookupIntrospectionHandler.getValues().getEntity()); } @Test public void testGetMap() { - WebResource r = resource().path("/druid/v1/lookups/introspect/lookupId1/"); - String s = r.get(String.class); - Assert.assertEquals("{\"key\":\"value\",\"key2\":\"value2\"}", s); + MapLookupExtractorFactory.MapLookupIntrospectionHandler mapLookupIntrospectionHandler = + (MapLookupExtractorFactory.MapLookupIntrospectionHandler) lookupIntrospectionResource + .introspectLookup("lookupId1"); + Assert.assertEquals( + ImmutableMap.of("key", "value", "key2", "value2"), + mapLookupIntrospectionHandler.getMap().getEntity() + ); } }