From b50277c9af513619a60a670f29b800546fa2cd5b Mon Sep 17 00:00:00 2001 From: Inderjeet Singh Date: Tue, 2 Nov 2010 21:43:26 +0000 Subject: [PATCH] revised prefix for rest packages to com.google.gson.rest from com.google.gson.webservice.rest --- .../client/RestClient.java | 18 ++++----- .../client/RestRequestSender.java | 7 ++-- .../client/RestResponseReceiver.java | 24 ++++++------ .../gson/rest/client/RestServerConfig.java | 38 +++++++++++++++++++ .../gson/webservice/client/RequestSender.java | 1 + .../webservice/client/ResponseReceiver.java | 3 +- ...ebServiceConfig.java => ServerConfig.java} | 4 +- .../webservice/client/WebServiceClient.java | 11 +++--- .../client/WebServiceClientAsync.java | 4 +- .../utils/ConnectionPreconditions.java} | 20 +++------- .../internal/utils}/Streams.java | 14 +++++-- .../rest => rest/definition}/HasId.java | 2 +- .../rest => rest/definition}/Id.java | 2 +- .../rest => rest/definition}/MetaData.java | 2 +- .../rest => rest/definition}/ResourceMap.java | 2 +- .../rest => rest/definition}/RestCall.java | 2 +- .../definition}/RestCallSpec.java | 26 ++++++++++--- .../rest => rest/definition}/RestRequest.java | 2 +- .../definition}/RestRequestSpec.java | 2 +- .../definition}/RestResource.java | 2 +- .../definition}/RestResponse.java | 2 +- .../definition}/RestResponseSpec.java | 2 +- .../rest => rest/definition}/IdTest.java | 3 +- .../definition}/IdTypeAdapterTest.java | 4 +- .../gson/example/client/ExampleClient.java | 12 +++--- .../server/rest => rest/server}/IdMap.java | 6 +-- .../rest => rest/server}/MetaDataMap.java | 8 ++-- .../rest => rest/server}/Repository.java | 6 +-- .../server}/RepositoryInMemory.java | 8 ++-- .../server}/RestRequestReceiver.java | 8 ++-- .../server}/RestResponseBuilder.java | 12 +++--- .../server}/RestResponseSender.java | 6 +-- .../procedural}/RequestBodySpecProvider.java | 2 +- .../procedural}/RequestSpecProvider.java | 2 +- 34 files changed, 162 insertions(+), 105 deletions(-) rename wsclient/src/main/java/com/google/gson/{webservice => rest}/client/RestClient.java (87%) rename wsclient/src/main/java/com/google/gson/{webservice => rest}/client/RestRequestSender.java (94%) rename wsclient/src/main/java/com/google/gson/{webservice => rest}/client/RestResponseReceiver.java (89%) create mode 100644 wsclient/src/main/java/com/google/gson/rest/client/RestServerConfig.java rename wsclient/src/main/java/com/google/gson/webservice/client/{WebServiceConfig.java => ServerConfig.java} (91%) rename wsclient/src/main/java/com/google/gson/{webservice/client/Preconditions.java => wsclient/internal/utils/ConnectionPreconditions.java} (83%) rename wsclient/src/main/java/com/google/gson/{webservice/client => wsclient/internal/utils}/Streams.java (73%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/HasId.java (94%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/Id.java (96%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/MetaData.java (98%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/ResourceMap.java (93%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/RestCall.java (93%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/RestCallSpec.java (83%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/RestRequest.java (94%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/RestRequestSpec.java (96%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/RestResource.java (93%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/RestResponse.java (94%) rename wsdef/src/main/java/com/google/gson/{webservice/definition/rest => rest/definition}/RestResponseSpec.java (96%) rename wsdef/src/test/java/com/google/gson/{webservice/definition/rest => rest/definition}/IdTest.java (95%) rename wsdef/src/test/java/com/google/gson/{webservice/definition/rest => rest/definition}/IdTypeAdapterTest.java (94%) rename wsf/src/main/java/com/google/gson/{wsf/server/rest => rest/server}/IdMap.java (89%) rename wsf/src/main/java/com/google/gson/{wsf/server/rest => rest/server}/MetaDataMap.java (85%) rename wsf/src/main/java/com/google/gson/{wsf/server/rest => rest/server}/Repository.java (89%) rename wsf/src/main/java/com/google/gson/{wsf/server/rest => rest/server}/RepositoryInMemory.java (92%) rename wsf/src/main/java/com/google/gson/{wsf/server/rest => rest/server}/RestRequestReceiver.java (92%) rename wsf/src/main/java/com/google/gson/{wsf/server/rest => rest/server}/RestResponseBuilder.java (80%) rename wsf/src/main/java/com/google/gson/{wsf/server/rest => rest/server}/RestResponseSender.java (93%) rename wsf/src/main/java/com/google/gson/wsf/inject/{ => server/procedural}/RequestBodySpecProvider.java (95%) rename wsf/src/main/java/com/google/gson/wsf/inject/{ => server/procedural}/RequestSpecProvider.java (95%) diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/RestClient.java b/wsclient/src/main/java/com/google/gson/rest/client/RestClient.java similarity index 87% rename from wsclient/src/main/java/com/google/gson/webservice/client/RestClient.java rename to wsclient/src/main/java/com/google/gson/rest/client/RestClient.java index 54a8d9a3..4996da4f 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/RestClient.java +++ b/wsclient/src/main/java/com/google/gson/rest/client/RestClient.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.client; +package com.google.gson.rest.client; import java.io.IOException; import java.net.HttpURLConnection; @@ -24,11 +24,11 @@ import java.util.logging.Logger; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.rest.definition.RestCallSpec; +import com.google.gson.rest.definition.RestRequest; +import com.google.gson.rest.definition.RestResource; +import com.google.gson.rest.definition.RestResponse; import com.google.gson.webservice.definition.WebServiceSystemException; -import com.google.gson.webservice.definition.rest.RestCallSpec; -import com.google.gson.webservice.definition.rest.RestRequest; -import com.google.gson.webservice.definition.rest.RestResource; -import com.google.gson.webservice.definition.rest.RestResponse; /** * Main class used by clients to access a Gson Web service. @@ -36,15 +36,15 @@ import com.google.gson.webservice.definition.rest.RestResponse; * @author inder */ public class RestClient { - private final WebServiceConfig config; + private final RestServerConfig config; private final Logger logger; private final Level logLevel; - public RestClient(WebServiceConfig serverConfig) { + public RestClient(RestServerConfig serverConfig) { this(serverConfig, null); } - public RestClient(WebServiceConfig serverConfig, Level logLevel) { + public RestClient(RestServerConfig serverConfig, Level logLevel) { this.config = serverConfig; this.logger = logLevel == null ? null : Logger.getLogger(RestClient.class.getName()); this.logLevel = logLevel; @@ -61,7 +61,7 @@ public class RestClient { public > RestResponse getResponse( RestCallSpec callSpec, RestRequest request) { - Gson gson = new GsonBuilder().create(); + Gson gson = new GsonBuilder().setVersion(callSpec.getVersion()).create(); return getResponse(callSpec, request, gson); } diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/RestRequestSender.java b/wsclient/src/main/java/com/google/gson/rest/client/RestRequestSender.java similarity index 94% rename from wsclient/src/main/java/com/google/gson/webservice/client/RestRequestSender.java rename to wsclient/src/main/java/com/google/gson/rest/client/RestRequestSender.java index 3a90272f..9bf6ba69 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/RestRequestSender.java +++ b/wsclient/src/main/java/com/google/gson/rest/client/RestRequestSender.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.client; +package com.google.gson.rest.client; import java.io.IOException; import java.lang.reflect.Type; @@ -23,11 +23,12 @@ import java.util.logging.Level; import java.util.logging.Logger; import com.google.gson.Gson; +import com.google.gson.rest.definition.RestRequest; +import com.google.gson.rest.definition.RestResource; import com.google.gson.webservice.definition.HeaderMap; import com.google.gson.webservice.definition.HeaderMapSpec; import com.google.gson.webservice.definition.WebServiceSystemException; -import com.google.gson.webservice.definition.rest.RestRequest; -import com.google.gson.webservice.definition.rest.RestResource; +import com.google.gson.wsclient.internal.utils.Streams; /** * Class to send Web service requests on a {@link HttpURLConnection}. diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/RestResponseReceiver.java b/wsclient/src/main/java/com/google/gson/rest/client/RestResponseReceiver.java similarity index 89% rename from wsclient/src/main/java/com/google/gson/webservice/client/RestResponseReceiver.java rename to wsclient/src/main/java/com/google/gson/rest/client/RestResponseReceiver.java index a178800e..b5c7c73c 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/RestResponseReceiver.java +++ b/wsclient/src/main/java/com/google/gson/rest/client/RestResponseReceiver.java @@ -13,7 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.client; +package com.google.gson.rest.client; + +import com.google.gson.Gson; +import com.google.gson.rest.definition.RestResource; +import com.google.gson.rest.definition.RestResponse; +import com.google.gson.rest.definition.RestResponseSpec; +import com.google.gson.webservice.definition.ContentBodySpec; +import com.google.gson.webservice.definition.HeaderMap; +import com.google.gson.webservice.definition.HeaderMapSpec; +import com.google.gson.webservice.definition.WebServiceSystemException; +import com.google.gson.wsclient.internal.utils.ConnectionPreconditions; import java.io.BufferedReader; import java.io.IOException; @@ -25,15 +35,6 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import com.google.gson.Gson; -import com.google.gson.webservice.definition.ContentBodySpec; -import com.google.gson.webservice.definition.HeaderMap; -import com.google.gson.webservice.definition.HeaderMapSpec; -import com.google.gson.webservice.definition.WebServiceSystemException; -import com.google.gson.webservice.definition.rest.RestResource; -import com.google.gson.webservice.definition.rest.RestResponse; -import com.google.gson.webservice.definition.rest.RestResponseSpec; - /** * Receives a response coming on an {@link HttpURLConnection}. * @@ -89,7 +90,8 @@ public final class RestResponseReceiver> { private R readResponseBody( HttpURLConnection conn, Type resourceType) throws IOException { String connContentType = conn.getContentType(); - Preconditions.checkArgument(connContentType.contains(ContentBodySpec.JSON_CONTENT_TYPE), conn); + ConnectionPreconditions.checkArgument( + connContentType.contains(ContentBodySpec.JSON_CONTENT_TYPE), conn); Reader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); R body = (R) gson.fromJson(reader, resourceType); return body; diff --git a/wsclient/src/main/java/com/google/gson/rest/client/RestServerConfig.java b/wsclient/src/main/java/com/google/gson/rest/client/RestServerConfig.java new file mode 100644 index 00000000..06a60464 --- /dev/null +++ b/wsclient/src/main/java/com/google/gson/rest/client/RestServerConfig.java @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2008-2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.gson.rest.client; + +/** + * Configuration needed to access a Gson REST service. + * + * @author inder + */ +public final class RestServerConfig { + private final String serviceBaseUrl; + + public RestServerConfig(String serviceBaseUrl) { + this.serviceBaseUrl = serviceBaseUrl; + } + + public String getServiceBaseUrl() { + return serviceBaseUrl; + } + + @Override + public String toString() { + return serviceBaseUrl; + } +} diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/RequestSender.java b/wsclient/src/main/java/com/google/gson/webservice/client/RequestSender.java index 29897c07..9ac72859 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/RequestSender.java +++ b/wsclient/src/main/java/com/google/gson/webservice/client/RequestSender.java @@ -28,6 +28,7 @@ import com.google.gson.webservice.definition.HeaderMapSpec; import com.google.gson.webservice.definition.WebServiceSystemException; import com.google.gson.webservice.definition.procedural.RequestBody; import com.google.gson.webservice.definition.procedural.WebServiceRequest; +import com.google.gson.wsclient.internal.utils.Streams; /** * Class to send Web service requests on a {@link HttpURLConnection}. diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/ResponseReceiver.java b/wsclient/src/main/java/com/google/gson/webservice/client/ResponseReceiver.java index 6450a642..d1b8c445 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/ResponseReceiver.java +++ b/wsclient/src/main/java/com/google/gson/webservice/client/ResponseReceiver.java @@ -33,6 +33,7 @@ import com.google.gson.webservice.definition.procedural.ResponseBody; import com.google.gson.webservice.definition.procedural.ResponseBodySpec; import com.google.gson.webservice.definition.procedural.ResponseSpec; import com.google.gson.webservice.definition.procedural.WebServiceResponse; +import com.google.gson.wsclient.internal.utils.ConnectionPreconditions; /** * Receives a response coming on an {@link HttpURLConnection}. @@ -91,7 +92,7 @@ public final class ResponseReceiver { return new ResponseBody.Builder(bodySpec).build(); } String connContentType = conn.getContentType(); - Preconditions.checkArgument(connContentType.contains(bodySpec.getContentType()), conn); + ConnectionPreconditions.checkArgument(connContentType.contains(bodySpec.getContentType()), conn); Reader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); ResponseBody body = gson.fromJson(reader, ResponseBody.class); return body; diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceConfig.java b/wsclient/src/main/java/com/google/gson/webservice/client/ServerConfig.java similarity index 91% rename from wsclient/src/main/java/com/google/gson/webservice/client/WebServiceConfig.java rename to wsclient/src/main/java/com/google/gson/webservice/client/ServerConfig.java index 6024475f..2e91c0f6 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceConfig.java +++ b/wsclient/src/main/java/com/google/gson/webservice/client/ServerConfig.java @@ -20,10 +20,10 @@ package com.google.gson.webservice.client; * * @author inder */ -public final class WebServiceConfig { +public final class ServerConfig { private final String serviceBaseUrl; - public WebServiceConfig(String serviceBaseUrl) { + public ServerConfig(String serviceBaseUrl) { this.serviceBaseUrl = serviceBaseUrl; } diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClient.java b/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClient.java index db21076b..25c720d2 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClient.java +++ b/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClient.java @@ -37,15 +37,15 @@ import com.google.gson.webservice.definition.procedural.WebServiceResponse; * @author inder */ public class WebServiceClient { - private final WebServiceConfig config; + private final ServerConfig config; private final Logger logger; private final Level logLevel; - public WebServiceClient(WebServiceConfig serverConfig) { + public WebServiceClient(ServerConfig serverConfig) { this(serverConfig, null); } - public WebServiceClient(WebServiceConfig serverConfig, Level logLevel) { + public WebServiceClient(ServerConfig serverConfig, Level logLevel) { this.config = serverConfig; this.logger = logLevel == null ? null : Logger.getLogger(WebServiceClient.class.getName()); this.logLevel = logLevel; @@ -61,8 +61,9 @@ public class WebServiceClient { } public WebServiceResponse getResponse(WebServiceCallSpec callSpec, WebServiceRequest request) { - Gson gson = new GsonBuilder().registerTypeAdapter(ResponseBody.class, - new ResponseBodyGsonConverter(callSpec.getResponseSpec().getBodySpec())) + Gson gson = new GsonBuilder() + .registerTypeAdapter(ResponseBody.class, + new ResponseBodyGsonConverter(callSpec.getResponseSpec().getBodySpec())) .create(); return getResponse(callSpec, request, gson); } diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClientAsync.java b/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClientAsync.java index fabcd050..885304e8 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClientAsync.java +++ b/wsclient/src/main/java/com/google/gson/webservice/client/WebServiceClientAsync.java @@ -36,10 +36,10 @@ public class WebServiceClientAsync { private final boolean threadPerTask; private final TaskExecutor executor; - public WebServiceClientAsync(WebServiceConfig serverConfig) { + public WebServiceClientAsync(ServerConfig serverConfig) { this(serverConfig, null); } - public WebServiceClientAsync(WebServiceConfig serverConfig, Level logLevel) { + public WebServiceClientAsync(ServerConfig serverConfig, Level logLevel) { this(new WebServiceClient(serverConfig, logLevel)); } diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/Preconditions.java b/wsclient/src/main/java/com/google/gson/wsclient/internal/utils/ConnectionPreconditions.java similarity index 83% rename from wsclient/src/main/java/com/google/gson/webservice/client/Preconditions.java rename to wsclient/src/main/java/com/google/gson/wsclient/internal/utils/ConnectionPreconditions.java index 95b3b94b..3f84d4c3 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/Preconditions.java +++ b/wsclient/src/main/java/com/google/gson/wsclient/internal/utils/ConnectionPreconditions.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.client; +package com.google.gson.wsclient.internal.utils; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -23,13 +23,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -final class Preconditions { - - public static void checkArgument(boolean condition) { - if (!condition) { - throw new IllegalArgumentException(); - } - } +public final class ConnectionPreconditions { public static void checkArgument(boolean condition, HttpURLConnection conn) { if (!condition) { @@ -61,12 +55,6 @@ final class Preconditions { } } - public static void checkNotNull(Object obj) { - if (obj == null) { - throw new IllegalArgumentException(); - } - } - private static byte[] readInByteArray(InputStream src) { ByteArrayOutputStream dst = new ByteArrayOutputStream(); try { @@ -76,4 +64,8 @@ final class Preconditions { } return dst.toByteArray(); } + + private ConnectionPreconditions() { + // prevent instantiation + } } diff --git a/wsclient/src/main/java/com/google/gson/webservice/client/Streams.java b/wsclient/src/main/java/com/google/gson/wsclient/internal/utils/Streams.java similarity index 73% rename from wsclient/src/main/java/com/google/gson/webservice/client/Streams.java rename to wsclient/src/main/java/com/google/gson/wsclient/internal/utils/Streams.java index 7cc5ce79..ad3c79ea 100644 --- a/wsclient/src/main/java/com/google/gson/webservice/client/Streams.java +++ b/wsclient/src/main/java/com/google/gson/wsclient/internal/utils/Streams.java @@ -13,23 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.client; +package com.google.gson.wsclient.internal.utils; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -final class Streams { +public final class Streams { - static void copy(String str, OutputStream dst, boolean closeOutput) throws IOException { + public static void copy(String str, OutputStream dst, boolean closeOutput) throws IOException { byte[] bytes = str.getBytes("UTF-8"); copy(new ByteArrayInputStream(bytes), dst, true, closeOutput); } + /** * Copy contents of src to dst. Exhausts src completely, and closes both streams. */ - static void copy(InputStream src, OutputStream dst, boolean closeInput, boolean closeOutput) throws IOException { + public static void copy(InputStream src, OutputStream dst, boolean closeInput, + boolean closeOutput) throws IOException { try { final byte[] buf = new byte[2048]; int count; @@ -41,4 +43,8 @@ final class Streams { if (closeOutput) dst.close(); } } + + private Streams() { + // Prevent instantiation + } } diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/HasId.java b/wsdef/src/main/java/com/google/gson/rest/definition/HasId.java similarity index 94% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/HasId.java rename to wsdef/src/main/java/com/google/gson/rest/definition/HasId.java index 677a2b63..c1118497 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/HasId.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/HasId.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; /** * An interface to indicate that an object has an Id diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/Id.java b/wsdef/src/main/java/com/google/gson/rest/definition/Id.java similarity index 96% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/Id.java rename to wsdef/src/main/java/com/google/gson/rest/definition/Id.java index 72696c10..0081fe21 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/Id.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/Id.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/MetaData.java b/wsdef/src/main/java/com/google/gson/rest/definition/MetaData.java similarity index 98% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/MetaData.java rename to wsdef/src/main/java/com/google/gson/rest/definition/MetaData.java index 4caaef7b..0a764eb9 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/MetaData.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/MetaData.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import java.lang.reflect.Type; import java.util.HashMap; diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/ResourceMap.java b/wsdef/src/main/java/com/google/gson/rest/definition/ResourceMap.java similarity index 93% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/ResourceMap.java rename to wsdef/src/main/java/com/google/gson/rest/definition/ResourceMap.java index c3938e24..f8601d94 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/ResourceMap.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/ResourceMap.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import com.google.gson.webservice.definition.CallPath; import com.google.gson.webservice.definition.internal.utils.Preconditions; diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestCall.java b/wsdef/src/main/java/com/google/gson/rest/definition/RestCall.java similarity index 93% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestCall.java rename to wsdef/src/main/java/com/google/gson/rest/definition/RestCall.java index 6d6b0acd..ebf6b9d4 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestCall.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/RestCall.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; /** * The data associated with a Rest Web service call. This includes http request header parameters diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestCallSpec.java b/wsdef/src/main/java/com/google/gson/rest/definition/RestCallSpec.java similarity index 83% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestCallSpec.java rename to wsdef/src/main/java/com/google/gson/rest/definition/RestCallSpec.java index 29fa7632..0953f70b 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestCallSpec.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/RestCallSpec.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import com.google.gson.webservice.definition.CallPath; import com.google.gson.webservice.definition.HeaderMapSpec; @@ -38,18 +38,25 @@ public final class RestCallSpec { private final HeaderMapSpec.Builder reqParamsSpecBuilder = new HeaderMapSpec.Builder(); private final HeaderMapSpec.Builder resParamsSpecBuilder = new HeaderMapSpec.Builder(); private final Type resourceType; + private double version; public Builder(CallPath callPath, Type resourceType) { this.callPath = callPath; supportedHttpMethods.addAll(HttpMethod.ALL_METHODS); this.resourceType = resourceType; + this.version = -1D; } public Builder disableHttpMethod(HttpMethod httpMethod) { supportedHttpMethods.remove(httpMethod); return this; } - + + public Builder setVersion(double version) { + this.version = version; + return this; + } + public Builder addRequestParam(TypedKey param) { reqParamsSpecBuilder.put(param.getName(), param.getClassOfT()); return this; @@ -69,7 +76,7 @@ public final class RestCallSpec { RestResponseSpec responseSpec = new RestResponseSpec(resParamsSpecBuilder.build(), resourceType); return new RestCallSpec(supportedHttpMethods, callPath, - requestSpec, responseSpec, resourceType); + requestSpec, responseSpec, resourceType, version); } } @@ -78,10 +85,11 @@ public final class RestCallSpec { private final RestRequestSpec requestSpec; private final RestResponseSpec responseSpec; private final Type resourceType; + private final double version; private RestCallSpec(Set supportedHttpMethods, CallPath path, RestRequestSpec requestSpec, RestResponseSpec responseSpec, - Type resourceType) { + Type resourceType, double version) { Preconditions.checkArgument(!supportedHttpMethods.isEmpty()); Preconditions.checkNotNull(path); this.supportedHttpMethods = supportedHttpMethods; @@ -89,6 +97,7 @@ public final class RestCallSpec { this.requestSpec = requestSpec; this.responseSpec = responseSpec; this.resourceType = resourceType; + this.version = version; } public CallPath getPath() { @@ -111,9 +120,14 @@ public final class RestCallSpec { return resourceType; } + public double getVersion() { + return version; + } + @Override public String toString() { - return String.format("path: %s, resourceType: %s, requestSpec: %s, responseSpec: %s", - path, resourceType, requestSpec, responseSpec); + return String.format( + "path: %s, version: %.2f, resourceType: %s, requestSpec: %s, responseSpec: %s", + path, version, resourceType, requestSpec, responseSpec); } } diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestRequest.java b/wsdef/src/main/java/com/google/gson/rest/definition/RestRequest.java similarity index 94% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestRequest.java rename to wsdef/src/main/java/com/google/gson/rest/definition/RestRequest.java index c911daa1..e70397dc 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestRequest.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/RestRequest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import com.google.gson.webservice.definition.HeaderMap; import com.google.gson.webservice.definition.HttpMethod; diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestRequestSpec.java b/wsdef/src/main/java/com/google/gson/rest/definition/RestRequestSpec.java similarity index 96% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestRequestSpec.java rename to wsdef/src/main/java/com/google/gson/rest/definition/RestRequestSpec.java index 9fba1053..c9629909 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestRequestSpec.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/RestRequestSpec.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import java.lang.reflect.Type; diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResource.java b/wsdef/src/main/java/com/google/gson/rest/definition/RestResource.java similarity index 93% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResource.java rename to wsdef/src/main/java/com/google/gson/rest/definition/RestResource.java index 48361e0c..ada04905 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResource.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/RestResource.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; /** * An interface implemented by an object that is intended to be a rest resource diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResponse.java b/wsdef/src/main/java/com/google/gson/rest/definition/RestResponse.java similarity index 94% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResponse.java rename to wsdef/src/main/java/com/google/gson/rest/definition/RestResponse.java index e5d92b73..99c7d12b 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResponse.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/RestResponse.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import java.lang.reflect.Type; diff --git a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResponseSpec.java b/wsdef/src/main/java/com/google/gson/rest/definition/RestResponseSpec.java similarity index 96% rename from wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResponseSpec.java rename to wsdef/src/main/java/com/google/gson/rest/definition/RestResponseSpec.java index 2ce01aea..60d2b9d3 100644 --- a/wsdef/src/main/java/com/google/gson/webservice/definition/rest/RestResponseSpec.java +++ b/wsdef/src/main/java/com/google/gson/rest/definition/RestResponseSpec.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import java.lang.reflect.Type; diff --git a/wsdef/src/test/java/com/google/gson/webservice/definition/rest/IdTest.java b/wsdef/src/test/java/com/google/gson/rest/definition/IdTest.java similarity index 95% rename from wsdef/src/test/java/com/google/gson/webservice/definition/rest/IdTest.java rename to wsdef/src/test/java/com/google/gson/rest/definition/IdTest.java index 1f9ddd38..cb8e07ab 100644 --- a/wsdef/src/test/java/com/google/gson/webservice/definition/rest/IdTest.java +++ b/wsdef/src/test/java/com/google/gson/rest/definition/IdTest.java @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import java.lang.reflect.ParameterizedType; import junit.framework.TestCase; import com.google.gson.reflect.TypeToken; +import com.google.gson.rest.definition.Id; /** * Unit test for {@link Id} diff --git a/wsdef/src/test/java/com/google/gson/webservice/definition/rest/IdTypeAdapterTest.java b/wsdef/src/test/java/com/google/gson/rest/definition/IdTypeAdapterTest.java similarity index 94% rename from wsdef/src/test/java/com/google/gson/webservice/definition/rest/IdTypeAdapterTest.java rename to wsdef/src/test/java/com/google/gson/rest/definition/IdTypeAdapterTest.java index f66e1ca8..ae14f322 100644 --- a/wsdef/src/test/java/com/google/gson/webservice/definition/rest/IdTypeAdapterTest.java +++ b/wsdef/src/test/java/com/google/gson/rest/definition/IdTypeAdapterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.webservice.definition.rest; +package com.google.gson.rest.definition; import java.lang.reflect.Type; import java.util.ArrayList; @@ -25,7 +25,7 @@ import junit.framework.TestCase; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; -import com.google.gson.webservice.definition.rest.Id; +import com.google.gson.rest.definition.Id; /** * Unit tests for {@link IdTypeAdapter} diff --git a/wsexample/client/src/main/java/com/google/gson/example/client/ExampleClient.java b/wsexample/client/src/main/java/com/google/gson/example/client/ExampleClient.java index 2b74baf6..176dc3e7 100644 --- a/wsexample/client/src/main/java/com/google/gson/example/client/ExampleClient.java +++ b/wsexample/client/src/main/java/com/google/gson/example/client/ExampleClient.java @@ -15,17 +15,13 @@ */ package com.google.gson.example.client; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; - import com.google.gson.example.model.Cart; import com.google.gson.example.model.LineItem; import com.google.gson.example.model.Order; import com.google.gson.example.model.TypedKeys; import com.google.gson.example.service.SampleJsonService; +import com.google.gson.webservice.client.ServerConfig; import com.google.gson.webservice.client.WebServiceClient; -import com.google.gson.webservice.client.WebServiceConfig; import com.google.gson.webservice.definition.HeaderMap; import com.google.gson.webservice.definition.HttpMethod; import com.google.gson.webservice.definition.procedural.RequestBody; @@ -33,11 +29,15 @@ import com.google.gson.webservice.definition.procedural.WebServiceCallSpec; import com.google.gson.webservice.definition.procedural.WebServiceRequest; import com.google.gson.webservice.definition.procedural.WebServiceResponse; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; + public class ExampleClient { private final WebServiceClient wsClient; public ExampleClient() { - WebServiceConfig serverConfig = new WebServiceConfig("http://localhost"); + ServerConfig serverConfig = new ServerConfig("http://localhost"); wsClient = new WebServiceClient(serverConfig, Level.INFO); } diff --git a/wsf/src/main/java/com/google/gson/wsf/server/rest/IdMap.java b/wsf/src/main/java/com/google/gson/rest/server/IdMap.java similarity index 89% rename from wsf/src/main/java/com/google/gson/wsf/server/rest/IdMap.java rename to wsf/src/main/java/com/google/gson/rest/server/IdMap.java index 84752f8b..1b7a9381 100644 --- a/wsf/src/main/java/com/google/gson/wsf/server/rest/IdMap.java +++ b/wsf/src/main/java/com/google/gson/rest/server/IdMap.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.server.rest; +package com.google.gson.rest.server; import java.lang.reflect.Type; import java.util.Map; @@ -21,8 +21,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; -import com.google.gson.webservice.definition.rest.HasId; -import com.google.gson.webservice.definition.rest.Id; +import com.google.gson.rest.definition.HasId; +import com.google.gson.rest.definition.Id; /** * This class provides a type-safe map to access values associated with Ids diff --git a/wsf/src/main/java/com/google/gson/wsf/server/rest/MetaDataMap.java b/wsf/src/main/java/com/google/gson/rest/server/MetaDataMap.java similarity index 85% rename from wsf/src/main/java/com/google/gson/wsf/server/rest/MetaDataMap.java rename to wsf/src/main/java/com/google/gson/rest/server/MetaDataMap.java index 645050be..3deadd49 100644 --- a/wsf/src/main/java/com/google/gson/wsf/server/rest/MetaDataMap.java +++ b/wsf/src/main/java/com/google/gson/rest/server/MetaDataMap.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.server.rest; +package com.google.gson.rest.server; import java.util.HashMap; import java.util.Map; -import com.google.gson.webservice.definition.rest.Id; -import com.google.gson.webservice.definition.rest.MetaData; -import com.google.gson.webservice.definition.rest.RestResource; +import com.google.gson.rest.definition.Id; +import com.google.gson.rest.definition.MetaData; +import com.google.gson.rest.definition.RestResource; /** * A map of resources to their MetaData diff --git a/wsf/src/main/java/com/google/gson/wsf/server/rest/Repository.java b/wsf/src/main/java/com/google/gson/rest/server/Repository.java similarity index 89% rename from wsf/src/main/java/com/google/gson/wsf/server/rest/Repository.java rename to wsf/src/main/java/com/google/gson/rest/server/Repository.java index 15951fcd..1c10b9a3 100644 --- a/wsf/src/main/java/com/google/gson/wsf/server/rest/Repository.java +++ b/wsf/src/main/java/com/google/gson/rest/server/Repository.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.server.rest; +package com.google.gson.rest.server; -import com.google.gson.webservice.definition.rest.HasId; -import com.google.gson.webservice.definition.rest.Id; +import com.google.gson.rest.definition.HasId; +import com.google.gson.rest.definition.Id; /** * An interface for a repository of rest resources. Meant for abstracting the server-side diff --git a/wsf/src/main/java/com/google/gson/wsf/server/rest/RepositoryInMemory.java b/wsf/src/main/java/com/google/gson/rest/server/RepositoryInMemory.java similarity index 92% rename from wsf/src/main/java/com/google/gson/wsf/server/rest/RepositoryInMemory.java rename to wsf/src/main/java/com/google/gson/rest/server/RepositoryInMemory.java index b271efff..02612ea4 100644 --- a/wsf/src/main/java/com/google/gson/wsf/server/rest/RepositoryInMemory.java +++ b/wsf/src/main/java/com/google/gson/rest/server/RepositoryInMemory.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.server.rest; +package com.google.gson.rest.server; import com.google.common.base.Preconditions; -import com.google.gson.webservice.definition.rest.Id; -import com.google.gson.webservice.definition.rest.MetaData; -import com.google.gson.webservice.definition.rest.RestResource; +import com.google.gson.rest.definition.Id; +import com.google.gson.rest.definition.MetaData; +import com.google.gson.rest.definition.RestResource; /** * An in-memory map of rest resources diff --git a/wsf/src/main/java/com/google/gson/wsf/server/rest/RestRequestReceiver.java b/wsf/src/main/java/com/google/gson/rest/server/RestRequestReceiver.java similarity index 92% rename from wsf/src/main/java/com/google/gson/wsf/server/rest/RestRequestReceiver.java rename to wsf/src/main/java/com/google/gson/rest/server/RestRequestReceiver.java index d9adcf89..2d08451f 100644 --- a/wsf/src/main/java/com/google/gson/wsf/server/rest/RestRequestReceiver.java +++ b/wsf/src/main/java/com/google/gson/rest/server/RestRequestReceiver.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.server.rest; +package com.google.gson.rest.server; import java.io.BufferedReader; import java.io.IOException; @@ -26,13 +26,13 @@ import javax.servlet.http.HttpServletRequest; import com.google.gson.Gson; import com.google.gson.JsonParseException; +import com.google.gson.rest.definition.RestRequest; +import com.google.gson.rest.definition.RestRequestSpec; +import com.google.gson.rest.definition.RestResource; import com.google.gson.webservice.definition.HeaderMap; import com.google.gson.webservice.definition.HeaderMapSpec; import com.google.gson.webservice.definition.HttpMethod; import com.google.gson.webservice.definition.WebServiceSystemException; -import com.google.gson.webservice.definition.rest.RestRequest; -import com.google.gson.webservice.definition.rest.RestRequestSpec; -import com.google.gson.webservice.definition.rest.RestResource; /** * Receives and parses a request at the server side on a {@link HttpServletRequest}. diff --git a/wsf/src/main/java/com/google/gson/wsf/server/rest/RestResponseBuilder.java b/wsf/src/main/java/com/google/gson/rest/server/RestResponseBuilder.java similarity index 80% rename from wsf/src/main/java/com/google/gson/wsf/server/rest/RestResponseBuilder.java rename to wsf/src/main/java/com/google/gson/rest/server/RestResponseBuilder.java index c8a41306..1c7dd16a 100644 --- a/wsf/src/main/java/com/google/gson/wsf/server/rest/RestResponseBuilder.java +++ b/wsf/src/main/java/com/google/gson/rest/server/RestResponseBuilder.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.server.rest; +package com.google.gson.rest.server; +import com.google.gson.rest.definition.Id; +import com.google.gson.rest.definition.RestCallSpec; +import com.google.gson.rest.definition.RestRequest; +import com.google.gson.rest.definition.RestResource; +import com.google.gson.rest.definition.RestResponse; import com.google.gson.webservice.definition.HttpMethod; -import com.google.gson.webservice.definition.rest.Id; -import com.google.gson.webservice.definition.rest.RestCallSpec; -import com.google.gson.webservice.definition.rest.RestRequest; -import com.google.gson.webservice.definition.rest.RestResource; -import com.google.gson.webservice.definition.rest.RestResponse; public abstract class RestResponseBuilder> { protected final Repository resources; diff --git a/wsf/src/main/java/com/google/gson/wsf/server/rest/RestResponseSender.java b/wsf/src/main/java/com/google/gson/rest/server/RestResponseSender.java similarity index 93% rename from wsf/src/main/java/com/google/gson/wsf/server/rest/RestResponseSender.java rename to wsf/src/main/java/com/google/gson/rest/server/RestResponseSender.java index edfa5f31..26fea71f 100644 --- a/wsf/src/main/java/com/google/gson/wsf/server/rest/RestResponseSender.java +++ b/wsf/src/main/java/com/google/gson/rest/server/RestResponseSender.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.server.rest; +package com.google.gson.rest.server; import java.io.IOException; import java.lang.reflect.Type; @@ -23,11 +23,11 @@ import java.util.logging.Logger; import javax.servlet.http.HttpServletResponse; import com.google.gson.Gson; +import com.google.gson.rest.definition.RestResource; +import com.google.gson.rest.definition.RestResponse; import com.google.gson.webservice.definition.ContentBodySpec; import com.google.gson.webservice.definition.HeaderMap; import com.google.gson.webservice.definition.HeaderMapSpec; -import com.google.gson.webservice.definition.rest.RestResource; -import com.google.gson.webservice.definition.rest.RestResponse; /** * Sends a JSON web service response on {@link HttpServletResponse}. diff --git a/wsf/src/main/java/com/google/gson/wsf/inject/RequestBodySpecProvider.java b/wsf/src/main/java/com/google/gson/wsf/inject/server/procedural/RequestBodySpecProvider.java similarity index 95% rename from wsf/src/main/java/com/google/gson/wsf/inject/RequestBodySpecProvider.java rename to wsf/src/main/java/com/google/gson/wsf/inject/server/procedural/RequestBodySpecProvider.java index b18a5b97..d68393a8 100644 --- a/wsf/src/main/java/com/google/gson/wsf/inject/RequestBodySpecProvider.java +++ b/wsf/src/main/java/com/google/gson/wsf/inject/server/procedural/RequestBodySpecProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.inject; +package com.google.gson.wsf.inject.server.procedural; import com.google.gson.webservice.definition.procedural.RequestBodySpec; import com.google.gson.webservice.definition.procedural.RequestSpec; diff --git a/wsf/src/main/java/com/google/gson/wsf/inject/RequestSpecProvider.java b/wsf/src/main/java/com/google/gson/wsf/inject/server/procedural/RequestSpecProvider.java similarity index 95% rename from wsf/src/main/java/com/google/gson/wsf/inject/RequestSpecProvider.java rename to wsf/src/main/java/com/google/gson/wsf/inject/server/procedural/RequestSpecProvider.java index 0a0182ca..22a87317 100644 --- a/wsf/src/main/java/com/google/gson/wsf/inject/RequestSpecProvider.java +++ b/wsf/src/main/java/com/google/gson/wsf/inject/server/procedural/RequestSpecProvider.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.gson.wsf.inject; +package com.google.gson.wsf.inject.server.procedural; import com.google.gson.webservice.definition.procedural.RequestSpec; import com.google.gson.webservice.definition.procedural.WebServiceCallSpec;