package gr.grnet.pithos.web.client;
+import com.google.gwt.http.client.Header;
+import com.google.gwt.http.client.RequestBuilder;
+import com.google.gwt.http.client.Response;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONString;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
/**
* Helper methods.
}
return s.substring(0, index + part.length());
}
+
+ public static void setHeaders(RequestBuilder builder, Map<String, String> headers) {
+ for (String headerName : headers.keySet()) {
+ final String headerValue = headers.get(headerName);
+ builder.setHeader(headerName, headerValue);
+
+ if(Pithos.IsDetailedHTTPLOGEnabled) {
+ Pithos.LOG(" ==> ", headerName, ": ", headerValue);
+ }
+ }
+ }
+
+ public static void LOGResponse(Response response) {
+ if(Pithos.IsDetailedHTTPLOGEnabled) {
+ try {
+ final int statusCode = response.getStatusCode();
+ final String statusText = response.getStatusText();
+ Pithos.LOG(" ", statusCode, " ", statusText);
+ final Header[] headers = response.getHeaders();
+ for(Header header : headers) {
+ final String name = header.getName();
+ final String value = header.getValue();
+ Pithos.LOG(" <== ", name, ": ", value);
+ }
+ }
+ catch(Exception e) {
+ Pithos.LOG("ERROR trying to log response", e);
+ }
+ }
+ }
}
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Pithos implements EntryPoint, ResizeHandler {
-
private static final boolean IsLOGEnabled = true;
+ public static final boolean IsDetailedHTTPLOGEnabled = true;
public static final Configuration config = GWT.create(Configuration.class);
package gr.grnet.pithos.web.client.rest;
+import gr.grnet.pithos.web.client.Helpers;
import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.Resource;
@Override
public void execute() {
- Pithos.LOG("DELETE api = ", api, ", owner = ", owner, ", path = ", path);
- Pithos.LOG(" ==> ", api + owner + path);
+ Pithos.LOG("DELETE ", api + owner + path);
+
RequestBuilder builder = new RequestBuilder(RequestBuilder.DELETE, api + owner + path);
- for (String header : headers.keySet()) {
- builder.setHeader(header, headers.get(header));
- }
+ Helpers.setHeaders(builder, headers);
+
try {
builder.sendRequest("", new RestRequestCallback<Resource>(api + owner + path, Response.SC_NO_CONTENT) {
@Override
package gr.grnet.pithos.web.client.rest;
+import gr.grnet.pithos.web.client.Const;
+import gr.grnet.pithos.web.client.Helpers;
import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.Resource;
@Override
public void execute() {
- if (path.contains("?"))
+ if (path.contains(Const.QUESTION_MARK)) {
path += "&t=" + System.currentTimeMillis();
- else
+ }
+ else {
path += "?t=" + System.currentTimeMillis();
- Pithos.LOG("GET api = ", api, ", owner = ", owner, ", path = ", path);
- Pithos.LOG(" ==> ", api + owner + path);
+ }
+
+ Pithos.LOG("GET ", api + owner + path);
+
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, api + owner + path);
+ Helpers.setHeaders(builder, headers);
- for (String header : headers.keySet()) {
- builder.setHeader(header, headers.get(header));
- }
try {
builder.sendRequest("", new RestRequestCallback<T>(api + owner + path, okCode) {
@Override
package gr.grnet.pithos.web.client.rest;
+import gr.grnet.pithos.web.client.Const;
+import gr.grnet.pithos.web.client.Helpers;
import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.Resource;
@Override
public void execute() {
- if (path.contains("?"))
- path += "&t=" + System.currentTimeMillis();
- else
+ if (path.contains(Const.QUESTION_MARK)) {
+ path += "&t=" + System.currentTimeMillis();
+ }
+ else {
path += "?t=" + System.currentTimeMillis();
- Pithos.LOG("HEAD api = ", api, ", owner = ", owner, ", path = ", path);
- Pithos.LOG(" ==> ", api + owner + path);
- RequestBuilder builder = new RequestBuilder(RequestBuilder.HEAD, api + owner + path);
- for (String header : headers.keySet()) {
- builder.setHeader(header, headers.get(header));
}
+
+ Pithos.LOG("HEAD ", api + owner + path);
+
+ RequestBuilder builder = new RequestBuilder(RequestBuilder.HEAD, api + owner + path);
+ Helpers.setHeaders(builder, headers);
+
try {
builder.sendRequest("", new RestRequestCallback<T>(api + owner + path, okCode) {
@Override
package gr.grnet.pithos.web.client.rest;
+import gr.grnet.pithos.web.client.Helpers;
import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.Resource;
@Override
public void execute() {
+ Pithos.LOG("POST ", api + owner + path);
+
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, api + owner + path);
- Pithos.LOG("POST api = ", api, ", owner = ", owner, ", path = ", path);
- Pithos.LOG(" ==> ", api + owner + path);
- for (String header : headers.keySet()) {
- builder.setHeader(header, headers.get(header));
- }
+ Helpers.setHeaders(builder, headers);
+
try {
builder.sendRequest(data, new RestRequestCallback<Resource>(api + owner + path, Response.SC_ACCEPTED) {
@Override
package gr.grnet.pithos.web.client.rest;
+import gr.grnet.pithos.web.client.Helpers;
import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.Resource;
@Override
public void execute() {
+ Pithos.LOG("PUT ", api + owner + path);
+
RequestBuilder builder = new RequestBuilder(RequestBuilder.PUT, api + owner + path);
- Pithos.LOG("PUT api = ", api, ", owner = ", owner, ", path = ", path);
- Pithos.LOG(" ==> ", api + owner + path);
- for (String header : headers.keySet()) {
- builder.setHeader(header, headers.get(header));
- }
+ Helpers.setHeaders(builder, headers);
+
try {
builder.sendRequest("", new RestRequestCallback<Resource>(api + owner + path, Response.SC_CREATED) {
@Override
package gr.grnet.pithos.web.client.rest;
+import com.google.gwt.http.client.Header;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.Response;
+import gr.grnet.pithos.web.client.Helpers;
import gr.grnet.pithos.web.client.Pithos;
import gr.grnet.pithos.web.client.Resource;
@Override
public void onResponseReceived(Request request, Response response) {
+ Helpers.LOGResponse(response);
+
try {
if (response.getStatusCode() == HTTP_OK || (okcode !=-1 && response.getStatusCode() == okcode))
onSuccess(deserialize(response));