From f068436b62ea934e26efa85b8b78a78ca64215b0 Mon Sep 17 00:00:00 2001 From: "clark.kang" Date: Fri, 5 Jun 2015 00:39:47 +0900 Subject: [PATCH] change-query-api-address --- .../tajo/ws/rs/resources/QueryResource.java | 37 +++++++------------ .../ws/rs/resources/QueryResultResource.java | 21 +---------- .../ws/rs/resources/TestQueryResource.java | 2 +- .../rs/resources/TestQueryResultResource.java | 2 +- 4 files changed, 17 insertions(+), 45 deletions(-) diff --git a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java index 8f45c7b59f..a662c4d877 100644 --- a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java +++ b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java @@ -44,7 +44,7 @@ import java.util.List; import java.util.Map; -@Path("/databases/{databaseName}/queries") +@Path("/queries") public class QueryResource { private static final Log LOG = LogFactory.getLog(QueryResource.class); @@ -54,15 +54,11 @@ public class QueryResource { @Context Application application; - - @PathParam("databaseName") - String databaseName; - + JerseyResourceDelegateContext context; protected static final String tajoSessionIdHeaderName = "X-Tajo-Session"; - private static final String databaseNameKeyName = "databaseName"; private static final String stateKeyName = "state"; private static final String startTimeKeyName = "startTime"; private static final String endTimeKeyName = "endTime"; @@ -70,7 +66,6 @@ public class QueryResource { private static final String submitQueryRequestKeyName = "submitQueryRequest"; private static final String printTypeKeyName = "printType"; private static final String queryIdKeyName = "queryId"; - private static final String defaultQueryInfoPrintType = "COMPLICATED"; private void initializeContext() { @@ -78,9 +73,6 @@ private void initializeContext() { JerseyResourceDelegateContextKey uriInfoKey = JerseyResourceDelegateContextKey.valueOf(JerseyResourceDelegateUtil.UriInfoKey, UriInfo.class); context.put(uriInfoKey, uriInfo); - JerseyResourceDelegateContextKey databaseNameKey = - JerseyResourceDelegateContextKey.valueOf(databaseNameKeyName, String.class); - context.put(databaseNameKey, databaseName); } @GET @@ -218,9 +210,9 @@ public Response submitQuery(@HeaderParam(tajoSessionIdHeaderName) String session if (LOG.isDebugEnabled()) { LOG.debug("Client sent a submit query request."); } - + Response response = null; - + try { initializeContext(); JerseyResourceDelegateContextKey sessionIdKey = @@ -229,21 +221,22 @@ public Response submitQuery(@HeaderParam(tajoSessionIdHeaderName) String session JerseyResourceDelegateContextKey submitQueryRequestKey = JerseyResourceDelegateContextKey.valueOf(submitQueryRequestKeyName, SubmitQueryRequest.class); context.put(submitQueryRequestKey, request); - + response = JerseyResourceDelegateUtil.runJerseyResourceDelegate( new SubmitQueryDelegate(), application, context, LOG); + } catch (Throwable e) { LOG.error(e.getMessage(), e); - + response = ResourcesUtil.createExceptionResponse(null, e.getMessage()); } - + return response; } - + private static class SubmitQueryDelegate implements JerseyResourceDelegate { @Override @@ -254,20 +247,17 @@ public Response run(JerseyResourceDelegateContext context) { JerseyResourceDelegateContextKey submitQueryRequestKey = JerseyResourceDelegateContextKey.valueOf(submitQueryRequestKeyName, SubmitQueryRequest.class); SubmitQueryRequest request = context.get(submitQueryRequestKey); - JerseyResourceDelegateContextKey databaseNameKey = - JerseyResourceDelegateContextKey.valueOf(databaseNameKeyName, String.class); - String databaseName = context.get(databaseNameKey); JerseyResourceDelegateContextKey masterContextKey = JerseyResourceDelegateContextKey.valueOf(JerseyResourceDelegateUtil.MasterContextKey, MasterContext.class); MasterContext masterContext = context.get(masterContextKey); - + if (sessionId == null || sessionId.isEmpty()) { return ResourcesUtil.createBadRequestResponse(LOG, "Session Id is null or empty string."); } if (request == null || request.getQuery() == null || request.getQuery().isEmpty()) { return ResourcesUtil.createBadRequestResponse(LOG, "query is null or emptry string."); } - + Session session; try { session = masterContext.getSessionManager().getSession(sessionId); @@ -287,7 +277,7 @@ public Response run(JerseyResourceDelegateContext context) { URI queryURI = uriInfo.getBaseUriBuilder() .path(QueryResource.class) .path(QueryResource.class, "getQuery") - .build(databaseName, new QueryId(response.getQueryId()).toString()); + .build(new QueryId(response.getQueryId()).toString()); return Response.created(queryURI).build(); } } @@ -422,13 +412,12 @@ public Response run(JerseyResourceDelegateContext context) { return Response.ok().build(); } } - + @Path("/{queryId}/result") public QueryResultResource getQueryResult(@PathParam("queryId") String queryId) { QueryResultResource queryResultResource = new QueryResultResource(); queryResultResource.setUriInfo(uriInfo); queryResultResource.setApplication(application); - queryResultResource.setDatabaseName(databaseName); queryResultResource.setQueryId(queryId); return queryResultResource; } diff --git a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java index 92b95d24f0..6d110e5c19 100644 --- a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java +++ b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java @@ -58,13 +58,10 @@ public class QueryResultResource { private Application application; - private String databaseName; - private String queryId; private JerseyResourceDelegateContext context; - private static final String databaseNameKeyName = "databaseName"; private static final String queryIdKeyName = "queryId"; private static final String sessionIdKeyName = "sessionId"; private static final String cacheIdKeyName = "cacheId"; @@ -89,14 +86,6 @@ public void setApplication(Application application) { this.application = application; } - public String getDatabaseName() { - return databaseName; - } - - public void setDatabaseName(String databaseName) { - this.databaseName = databaseName; - } - public String getQueryId() { return queryId; } @@ -110,9 +99,6 @@ private void initializeContext() { JerseyResourceDelegateContextKey uriInfoKey = JerseyResourceDelegateContextKey.valueOf(JerseyResourceDelegateUtil.UriInfoKey, UriInfo.class); context.put(uriInfoKey, uriInfo); - JerseyResourceDelegateContextKey databaseNameKey = - JerseyResourceDelegateContextKey.valueOf(databaseNameKeyName, String.class); - context.put(databaseNameKey, databaseName); JerseyResourceDelegateContextKey queryIdKey = JerseyResourceDelegateContextKey.valueOf(queryIdKeyName, String.class); context.put(queryIdKey, queryId); @@ -200,10 +186,7 @@ public Response run(JerseyResourceDelegateContext context) { JerseyResourceDelegateContextKey uriInfoKey = JerseyResourceDelegateContextKey.valueOf(JerseyResourceDelegateUtil.UriInfoKey, UriInfo.class); UriInfo uriInfo = context.get(uriInfoKey); - JerseyResourceDelegateContextKey databaseNameKey = - JerseyResourceDelegateContextKey.valueOf(databaseNameKeyName, String.class); - String databaseName = context.get(databaseNameKey); - + try { masterContext.getSessionManager().touch(sessionId); Session session = masterContext.getSessionManager().getSession(sessionId); @@ -234,7 +217,7 @@ public Response run(JerseyResourceDelegateContext context) { .path(QueryResource.class) .path(QueryResource.class, "getQueryResult") .path(QueryResultResource.class, "getQueryResultSet") - .build(databaseName, queryId, cacheId); + .build(queryId, cacheId); ResultSetInfoResponse resultSetInfoResponse = new ResultSetInfoResponse(); resultSetInfoResponse.setId(cacheId); resultSetInfoResponse.setLink(resultSetCacheUri); diff --git a/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java b/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java index 77c0117864..5d0b150c72 100644 --- a/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java +++ b/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResource.java @@ -65,7 +65,7 @@ public void setUp() throws Exception { int restPort = testBase.getTestingCluster().getConfiguration().getIntVar(ConfVars.REST_SERVICE_PORT); restServiceURI = new URI("http", null, "127.0.0.1", restPort, "/rest", null, null); sessionsURI = new URI(restServiceURI + "/sessions"); - queriesURI = new URI(restServiceURI + "/databases/" + TajoConstants.DEFAULT_DATABASE_NAME + "/queries"); + queriesURI = new URI(restServiceURI + "/queries"); restClient = ClientBuilder.newBuilder() .register(new GsonFeature(RestTestUtils.registerTypeAdapterMap())) .register(LoggingFilter.class) diff --git a/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java b/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java index d83eb6064c..d4f17855f2 100644 --- a/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java +++ b/tajo-core/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java @@ -73,7 +73,7 @@ public void setUp() throws Exception { int restPort = testBase.getTestingCluster().getConfiguration().getIntVar(ConfVars.REST_SERVICE_PORT); restServiceURI = new URI("http", null, "127.0.0.1", restPort, "/rest", null, null); sessionsURI = new URI(restServiceURI + "/sessions"); - queriesURI = new URI(restServiceURI + "/databases/" + TajoConstants.DEFAULT_DATABASE_NAME + "/queries"); + queriesURI = new URI(restServiceURI + "/queries"); restClient = ClientBuilder.newBuilder() .register(new GsonFeature(RestTestUtils.registerTypeAdapterMap())) .register(LoggingFilter.class)