You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/09/02 16:40:37 UTC

[3/4] usergrid git commit: Moving the Java SDK to https://github.com/apache/usergrid-java

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequest.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequest.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequest.java
deleted file mode 100644
index b16783e..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequest.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client;
-
-import okhttp3.HttpUrl;
-import okhttp3.MediaType;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import org.apache.usergrid.java.client.UsergridEnums.UsergridHttpMethod;
-import org.apache.usergrid.java.client.auth.UsergridAuth;
-import org.apache.usergrid.java.client.query.UsergridQuery;
-import org.apache.usergrid.java.client.utils.JsonUtils;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Map;
-
-@SuppressWarnings("unused")
-public class UsergridRequest {
-    @NotNull public static final MediaType APPLICATION_JSON_MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");
-
-    @NotNull private UsergridHttpMethod method;
-    @NotNull private String baseUrl;
-    @NotNull private MediaType contentType;
-
-    @Nullable private UsergridQuery query;
-    @Nullable private Map<String, Object> headers;
-    @Nullable private Map<String, Object> parameters;
-    @Nullable private Object data;
-    @Nullable private UsergridAuth auth;
-    @Nullable private String[] pathSegments;
-
-    @NotNull
-    public UsergridHttpMethod getMethod() { return method; }
-    public void setMethod(@NotNull final UsergridHttpMethod method) { this.method = method; }
-
-    @NotNull
-    public String getBaseUrl() { return baseUrl; }
-    public void setBaseUrl(@NotNull final String baseUrl) { this.baseUrl = baseUrl; }
-
-    @NotNull
-    public MediaType getContentType() { return contentType; }
-    public void setContentType(@NotNull final MediaType contentType) { this.contentType = contentType; }
-
-    @Nullable
-    public UsergridQuery getQuery() { return query; }
-    public void setQuery(@Nullable final UsergridQuery query) { this.query = query; }
-
-    @Nullable
-    public Map<String,Object> getHeaders() { return headers; }
-    public void setHeaders(@Nullable final Map<String,Object> headers) { this.headers = headers; }
-
-    @Nullable
-    public Map<String,Object> getParameters() { return parameters; }
-    public void setParameters(@Nullable final Map<String,Object> parameters) { this.parameters = parameters; }
-
-    @Nullable
-    public Object getData() { return data; }
-    public void setData(@Nullable final Object data) { this.data = data; }
-
-    @Nullable
-    public UsergridAuth getAuth() { return auth; }
-    public void setAuth(@Nullable final UsergridAuth auth) { this.auth = auth; }
-
-    @Nullable
-    public String[] getPathSegments() { return pathSegments; }
-    public void setPathSegments(@Nullable final String[] pathSegments) { this.pathSegments = pathSegments; }
-
-    private UsergridRequest() {}
-
-    public UsergridRequest(@NotNull final UsergridHttpMethod method,
-                           @NotNull final MediaType contentType,
-                           @NotNull final String url,
-                           @Nullable final UsergridQuery query,
-                           @Nullable final UsergridAuth auth,
-                           @Nullable final String... pathSegments) {
-        this.method = method;
-        this.contentType = contentType;
-        this.baseUrl = url;
-        this.query = query;
-        this.auth = auth;
-        this.pathSegments = pathSegments;
-    }
-
-    public UsergridRequest(@NotNull final UsergridHttpMethod method,
-                           @NotNull final MediaType contentType,
-                           @NotNull final String url,
-                           @Nullable final UsergridAuth auth,
-                           @Nullable final String... pathSegments) {
-        this.method = method;
-        this.contentType = contentType;
-        this.baseUrl = url;
-        this.auth = auth;
-        this.pathSegments = pathSegments;
-    }
-
-    public UsergridRequest(@NotNull final UsergridHttpMethod method,
-                           @NotNull final MediaType contentType,
-                           @NotNull final String url,
-                           @Nullable final Map<String, Object> params,
-                           @Nullable final Object data,
-                           @Nullable final UsergridAuth auth,
-                           @Nullable final String... pathSegments) {
-        this.method = method;
-        this.contentType = contentType;
-        this.baseUrl = url;
-        this.parameters = params;
-        this.data = data;
-        this.headers = null;
-        this.query = null;
-        this.auth = auth;
-        this.pathSegments = pathSegments;
-    }
-
-    public UsergridRequest(@NotNull final UsergridHttpMethod method,
-                           @NotNull final MediaType contentType,
-                           @NotNull final String url,
-                           @Nullable final Map<String, Object> params,
-                           @Nullable final Object data,
-                           @Nullable final Map<String, Object> headers,
-                           @Nullable final UsergridQuery query,
-                           @Nullable final UsergridAuth auth,
-                           @Nullable final String... pathSegments) {
-        this.method = method;
-        this.contentType = contentType;
-        this.baseUrl = url;
-        this.parameters = params;
-        this.data = data;
-        this.headers = headers;
-        this.query = query;
-        this.auth = auth;
-        this.pathSegments = pathSegments;
-    }
-
-    @NotNull
-    public Request buildRequest() {
-        Request.Builder requestBuilder = new Request.Builder();
-        requestBuilder.url(this.constructUrl());
-        this.addHeaders(requestBuilder);
-        requestBuilder.method(this.method.toString(),this.constructRequestBody());
-        return requestBuilder.build();
-    }
-
-    @NotNull
-    protected HttpUrl constructUrl() {
-        String url = this.baseUrl;
-        if( this.query != null ) {
-            url += this.query.build(false);
-        }
-        HttpUrl.Builder urlBuilder = HttpUrl.parse(url).newBuilder();
-        if( this.pathSegments != null ) {
-            for( String path : this.pathSegments ) {
-                urlBuilder.addPathSegments(path);
-            }
-        }
-        if( this.parameters != null ) {
-            for (Map.Entry<String, Object> param : this.parameters.entrySet()) {
-                urlBuilder.addQueryParameter(param.getKey(),param.getValue().toString());
-            }
-        }
-        return urlBuilder.build();
-    }
-
-    protected void addHeaders(@NotNull final Request.Builder requestBuilder) {
-        requestBuilder.addHeader("User-Agent", UsergridRequestManager.USERGRID_USER_AGENT);
-        if (this.auth != null ) {
-            String accessToken = this.auth.getAccessToken();
-            if( accessToken != null ) {
-                requestBuilder.addHeader("Authorization", "Bearer " + accessToken);
-            }
-        }
-        if( this.headers != null ) {
-            for( Map.Entry<String,Object> header : this.headers.entrySet() ) {
-                requestBuilder.addHeader(header.getKey(),header.getValue().toString());
-            }
-        }
-    }
-
-    @Nullable
-    protected RequestBody constructRequestBody() {
-        RequestBody requestBody = null;
-        if (method == UsergridHttpMethod.POST || method == UsergridHttpMethod.PUT) {
-            String jsonString = "";
-            if( this.data != null ) {
-                jsonString = JsonUtils.toJsonString(this.data);
-            }
-            requestBody = RequestBody.create(this.contentType,jsonString);
-        }
-        return requestBody;
-    }
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequestManager.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequestManager.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequestManager.java
deleted file mode 100644
index 7099d42..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/UsergridRequestManager.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client;
-
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.Response;
-import org.apache.usergrid.java.client.UsergridEnums.UsergridHttpMethod;
-import org.apache.usergrid.java.client.auth.UsergridAppAuth;
-import org.apache.usergrid.java.client.auth.UsergridAuth;
-import org.apache.usergrid.java.client.model.UsergridUser;
-import org.apache.usergrid.java.client.auth.UsergridUserAuth;
-import org.apache.usergrid.java.client.response.UsergridResponse;
-import org.jetbrains.annotations.NotNull;
-
-import java.io.IOException;
-import java.util.Map;
-
-import static org.apache.usergrid.java.client.utils.ObjectUtils.isEmpty;
-
-public class UsergridRequestManager {
-
-    @NotNull public static String USERGRID_USER_AGENT = "usergrid-java/v" + Usergrid.UsergridSDKVersion;
-
-    @NotNull private final UsergridClient usergridClient;
-    @NotNull private final OkHttpClient httpClient;
-
-    public UsergridRequestManager(@NotNull final UsergridClient usergridClient) {
-        this.usergridClient = usergridClient;
-        this.httpClient = new OkHttpClient();
-    }
-
-    @NotNull
-    public UsergridResponse performRequest(@NotNull final UsergridRequest usergridRequest) {
-        Request request = usergridRequest.buildRequest();
-        UsergridResponse usergridResponse;
-        try {
-            Response response = this.httpClient.newCall(request).execute();
-            usergridResponse = UsergridResponse.fromResponse(this.usergridClient,usergridRequest,response);
-        } catch( IOException exception ) {
-            usergridResponse = UsergridResponse.fromException(this.usergridClient,exception);
-        }
-        return usergridResponse;
-    }
-
-    @NotNull
-    private UsergridResponse authenticate(@NotNull final UsergridAuth auth) {
-        Map<String, String> credentials = auth.credentialsMap();
-        String url = this.usergridClient.clientAppUrl();
-        if ( auth instanceof UsergridUserAuth){
-
-            UsergridUserAuth userAuth = (UsergridUserAuth) auth;
-            if( userAuth.isAdminUser()){
-
-                url = this.usergridClient.managementUrl();
-            }
-
-        }
-
-        UsergridRequest request = new UsergridRequest(UsergridHttpMethod.POST, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, url, null, credentials, this.usergridClient.authForRequests(), "token");
-        UsergridResponse response = performRequest(request);
-        if (!isEmpty(response.getAccessToken()) && !isEmpty(response.getExpires())) {
-            auth.setAccessToken(response.getAccessToken());
-            auth.setExpiry(System.currentTimeMillis() + response.getExpires() - 5000);
-        }
-        return response;
-    }
-
-    @NotNull
-    public UsergridResponse authenticateApp(@NotNull final UsergridAppAuth appAuth) {
-        return this.authenticate(appAuth);
-    }
-
-    @NotNull
-    public UsergridResponse authenticateUser(@NotNull final UsergridUserAuth userAuth) {
-        UsergridResponse response = this.authenticate(userAuth);
-        UsergridUser responseUser = response.user();
-        if ( response.ok() && responseUser != null) {
-            responseUser.setUserAuth(userAuth);
-        }
-        return response;
-    }
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAppAuth.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAppAuth.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAppAuth.java
deleted file mode 100644
index a7ac64d..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAppAuth.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.auth;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.HashMap;
-
-@SuppressWarnings("unused")
-public class UsergridAppAuth extends UsergridAuth {
-
-    @NotNull private String clientId;
-    @NotNull private String clientSecret;
-
-    @NotNull public String getClientId() { return clientId; }
-    public void setClientId(@NotNull final String clientId) { this.clientId = clientId; }
-
-    @NotNull private String getClientSecret() { return clientSecret; }
-    public void setClientSecret(@NotNull final String clientSecret) { this.clientSecret = clientSecret; }
-
-    @NotNull
-    @Override
-    public HashMap<String, String> credentialsMap() {
-        HashMap<String,String> credentials = super.credentialsMap();
-        credentials.put("grant_type", "client_credentials");
-        credentials.put("client_id", this.clientId);
-        credentials.put("client_secret", this.clientSecret);
-        return credentials;
-    }
-
-    public UsergridAppAuth() {
-        this("","");
-    }
-
-    public UsergridAppAuth(@JsonProperty("clientId") @NotNull final String clientId, @JsonProperty("clientSecret") @NotNull final String clientSecret) {
-        super();
-        this.clientId = clientId;
-        this.clientSecret = clientSecret;
-    }
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAuth.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAuth.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAuth.java
deleted file mode 100644
index 1ed61da..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridAuth.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.auth;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.HashMap;
-
-@SuppressWarnings("unused")
-public class UsergridAuth {
-
-    @Nullable private String accessToken = null;
-    @Nullable private Long expiry = null;
-    private boolean usingToken = false;
-    private boolean isAdminUser = false;
-
-    public UsergridAuth() { }
-
-    public UsergridAuth(@JsonProperty("accessToken") @Nullable final String accessToken) {
-        this.usingToken = true;
-        setAccessToken(accessToken);
-    }
-
-    public UsergridAuth(@JsonProperty("accessToken") @Nullable final String accessToken, @JsonProperty("expiry") @Nullable final Long expiry) {
-        this.usingToken = true;
-        setAccessToken(accessToken);
-        setExpiry(expiry);
-    }
-
-    public void destroy() {
-        setAccessToken(null);
-        setExpiry(null);
-    }
-
-    @Nullable public String getAccessToken() { return accessToken; }
-    public void setAccessToken(@Nullable final String accessToken) {
-        this.accessToken = accessToken;
-    }
-
-    @Nullable public Long getExpiry() { return expiry; }
-    public void setExpiry(@Nullable final Long tokenExpiry) { this.expiry = tokenExpiry; }
-
-    public boolean isValidToken() { return (hasToken() && !isExpired()); }
-
-    public boolean hasToken() { return accessToken != null; }
-
-    public boolean isExpired() {
-        if (expiry != null) {
-            Long currentTime = System.currentTimeMillis() / 1000;
-            return ((expiry / 1000) < currentTime);
-        } else {
-            return !this.usingToken;
-        }
-    }
-
-    @NotNull
-    public HashMap<String,String> credentialsMap() {
-        return new HashMap<>();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridUserAuth.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridUserAuth.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridUserAuth.java
deleted file mode 100644
index 7cb42ad..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/auth/UsergridUserAuth.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.auth;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.HashMap;
-
-@SuppressWarnings("unused")
-public class UsergridUserAuth extends UsergridAuth {
-
-    @NotNull private String username;
-    @NotNull private String password;
-    private boolean isAdminUser = false;
-
-    @NotNull public String getUsername() { return username; }
-    public void setUsername(@NotNull final String username) { this.username = username; }
-
-    @NotNull private String getPassword() { return password; }
-    public void setPassword(@NotNull final String password) { this.password = password; }
-
-    public boolean isAdminUser() { return isAdminUser; }
-
-    @NotNull
-    @Override
-    public HashMap<String, String> credentialsMap() {
-        HashMap<String,String> credentials = super.credentialsMap();
-        credentials.put("grant_type", "password");
-        credentials.put("username", this.username);
-        credentials.put("password", this.password);
-        return credentials;
-    }
-
-    public UsergridUserAuth() {
-        this("","");
-    }
-
-    public UsergridUserAuth(@JsonProperty("username") @NotNull final String username,
-                            @JsonProperty("password") @NotNull final String password) {
-        super();
-        this.username = username;
-        this.password = password;
-    }
-
-    public UsergridUserAuth(@JsonProperty("username") @NotNull final String username,
-                            @JsonProperty("password") @NotNull final String password,
-                            @JsonProperty("isAdminUser") final boolean isAdminUser) {
-        super();
-        this.username = username;
-        this.password = password;
-        this.isAdminUser = isAdminUser;
-    }
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/UsergridException.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/UsergridException.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/UsergridException.java
deleted file mode 100644
index ff30a0d..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/exception/UsergridException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.exception;
-
-import org.jetbrains.annotations.NotNull;
-
-@SuppressWarnings("unused")
-public class UsergridException extends RuntimeException {
-
-    private int responseCode;
-
-    public int getResponseCode() {
-        return responseCode;
-    }
-    public void setResponseCode(final int responseCode) { this.responseCode = responseCode; }
-
-    private UsergridException() {}
-
-    public UsergridException(@NotNull final String message) {
-        super(message);
-    }
-
-    public UsergridException(@NotNull final String message, @NotNull final Throwable cause) {
-        super(message, cause);
-    }
-
-    public UsergridException(@NotNull final String message, final int responseCode) {
-        super(message);
-        this.responseCode = responseCode;
-    }
-
-    public UsergridException(@NotNull final String message, @NotNull final Throwable cause, final int responseCode) {
-        super(message, cause);
-        this.responseCode = responseCode;
-    }
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridDevice.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridDevice.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridDevice.java
deleted file mode 100644
index 1833afb..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridDevice.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.apache.usergrid.java.client.model;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.databind.JsonNode;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.Map;
-
-@SuppressWarnings("unused")
-public class UsergridDevice extends UsergridEntity {
-    @NotNull public static String DEVICE_ENTITY_TYPE = "device";
-
-    @Nullable private String model;
-    @Nullable private String platform;
-    @Nullable private String osVersion;
-
-    public UsergridDevice() {
-        super(DEVICE_ENTITY_TYPE);
-    }
-
-    public UsergridDevice(@Nullable final String name) {
-        super(DEVICE_ENTITY_TYPE,name);
-    }
-
-    public UsergridDevice(@NotNull final Map<String, JsonNode> properties) {
-        super(DEVICE_ENTITY_TYPE,null,properties);
-    }
-
-    public UsergridDevice(@Nullable final String name, @NotNull final Map<String, JsonNode> properties) {
-        super(DEVICE_ENTITY_TYPE,name,properties);
-    }
-
-    @Nullable @JsonProperty("deviceModel")
-    public String getModel() {
-        return this.model;
-    }
-    @JsonProperty("deviceModel")
-    public void setModel(@Nullable final String model) {
-        this.model = model;
-    }
-
-    @Nullable @JsonProperty("devicePlatform")
-    public String getPlatform() {
-        return this.platform;
-    }
-    @JsonProperty("devicePlatform")
-    public void setPlatform(@Nullable final String platform) {
-        this.platform = platform;
-    }
-
-    @Nullable @JsonProperty("deviceOSVersion")
-    public String getOsVersion() {
-        return this.osVersion;
-    }
-    @JsonProperty("deviceOSVersion")
-    public void setOsVersion(@Nullable final String osVersion) {
-        this.osVersion = osVersion;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridEntity.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridEntity.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridEntity.java
deleted file mode 100644
index 3444de0..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridEntity.java
+++ /dev/null
@@ -1,487 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.model;
-
-import com.fasterxml.jackson.annotation.*;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectReader;
-import com.fasterxml.jackson.databind.node.*;
-import org.apache.usergrid.java.client.UsergridEnums.*;
-import org.apache.usergrid.java.client.Usergrid;
-import org.apache.usergrid.java.client.UsergridClient;
-import org.apache.usergrid.java.client.response.UsergridResponse;
-import org.apache.usergrid.java.client.utils.JsonUtils;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.io.IOException;
-import java.util.*;
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.*;
-
-@SuppressWarnings("unused")
-public class UsergridEntity {
-
-    @NotNull private static final HashMap<String,Class<? extends UsergridEntity>> subclassMappings = new HashMap<>();
-    @NotNull private static final ObjectMapper entityUpdateMapper = new ObjectMapper();
-    @NotNull private final ObjectReader entityUpdateReader = entityUpdateMapper.readerForUpdating(this);
-
-    static {
-        subclassMappings.put("user",UsergridUser.class);
-        subclassMappings.put("device",UsergridDevice.class);
-    }
-
-    @NotNull private String type;
-    @Nullable private String uuid;
-    @Nullable private String name;
-    @Nullable private Long created;
-    @Nullable private Long modified;
-
-    @NotNull private Map<String, JsonNode> properties = new HashMap<>();
-
-    public UsergridEntity(@JsonProperty("type") @NotNull final String type) {
-        this.type = type;
-    }
-
-    public UsergridEntity(@NotNull final String type, @Nullable final String name) {
-        this(type);
-        if( name != null ) {
-            this.name = name;
-        }
-    }
-
-    public UsergridEntity(@NotNull final String type, @Nullable final String name, @NotNull final Map<String, ?> properties) {
-        this(type,name);
-        this.updatePropertiesWithMap(properties);
-    }
-
-    @Nullable
-    public static Class<? extends UsergridEntity> customSubclassForType(@NotNull final String type) {
-        return UsergridEntity.subclassMappings.get(type);
-    }
-
-    public void copyAllProperties(@NotNull final UsergridEntity fromEntity) {
-        try {
-            this.updatePropertiesWithJsonNode(entityUpdateMapper.valueToTree(fromEntity));
-        } catch( IllegalArgumentException e ) { System.out.print("Usergrid Error: Unable to update properties from entity - " + fromEntity.toString()); }
-    }
-
-    public void updatePropertiesWithMap(@NotNull final Map<String,?> properties) {
-        try {
-            this.updatePropertiesWithJsonNode(entityUpdateMapper.valueToTree(properties));
-        } catch( IllegalArgumentException e ) { System.out.print("Usergrid Error: Unable to update properties from map - " + properties.toString()); }
-    }
-
-    public void updatePropertiesWithJsonNode(@NotNull final JsonNode node) {
-        try {
-            entityUpdateReader.readValue(node);
-        } catch( IOException e ) { System.out.print("Usergrid Error: Unable to update properties from jsonNode - " + node.toString()); }
-    }
-
-    public static void mapCustomSubclassToType(@NotNull final String type, @NotNull final Class<? extends UsergridEntity> subclass) {
-        UsergridEntity.subclassMappings.put(type,subclass);
-    }
-
-    @NotNull @Override public String toString() {
-        return toJsonString(this);
-    }
-    @NotNull public String toPrettyString() { return toPrettyJsonString(this); }
-    @NotNull public JsonNode toJsonObjectValue() {
-        return toJsonNode(this);
-    }
-    @SuppressWarnings("unchecked")
-    @NotNull public Map<String,?> toMapValue() { return toMap(this); }
-
-    @JsonIgnore
-    public boolean isUser() { return (this instanceof UsergridUser || this.getType().equalsIgnoreCase(UsergridUser.USER_ENTITY_TYPE)); }
-
-    @NotNull public String getType() { return this.type; }
-    private void setType(@NotNull final String type) { this.type = type; }
-
-    @Nullable public String getUuid() { return this.uuid; }
-    private void setUuid(@NotNull final String uuid) { this.uuid = uuid; }
-
-    @Nullable public String getName() { return this.name; }
-    protected void setName(@Nullable final String name) { this.name = name; }
-
-    @Nullable public Long getCreated() { return this.created; }
-    private void setCreated(@NotNull final Long created) { this.created = created; }
-
-    @Nullable public Long getModified() { return this.modified; }
-    private void setModified(@NotNull final Long modified) { this.modified = modified; }
-
-    public void setLocation(final double latitude, final double longitude) {
-        ObjectNode rootNode = JsonUtils.createObjectNode();
-        rootNode.put("latitude", latitude);
-        rootNode.put("longitude", longitude);
-        setObjectProperty(this.properties, "location", rootNode);
-    }
-
-    @Nullable
-    public String uuidOrName() {
-        String uuidOrName = this.getUuid();
-        if( uuidOrName == null ) {
-            uuidOrName = this.getName();
-        }
-        return uuidOrName;
-    }
-
-    @NotNull
-    public UsergridResponse reload() {
-        return this.reload(Usergrid.getInstance());
-    }
-
-    @NotNull
-    public UsergridResponse reload(@NotNull final UsergridClient client) {
-        String uuidOrName = this.uuidOrName();
-        if( uuidOrName == null ) {
-            return UsergridResponse.fromError(client,  "No UUID or name found.", "The entity object must have a `uuid` or `name` assigned.");
-        }
-        UsergridResponse response = client.GET(this.getType(), uuidOrName);
-        if( response.ok() ) {
-            UsergridEntity responseEntity = response.first();
-            if( responseEntity != null ) {
-                this.copyAllProperties(responseEntity);
-            }
-        }
-        return response;
-    }
-
-    @NotNull
-    public UsergridResponse save() {
-        return this.save(Usergrid.getInstance());
-    }
-
-    @NotNull
-    public UsergridResponse save(@NotNull final UsergridClient client) {
-        UsergridResponse response;
-        if( this.getUuid() != null ) {
-            response = client.PUT(this);
-        } else {
-            response = client.POST(this);
-        }
-        if( response.ok() ) {
-            UsergridEntity responseEntity = response.first();
-            if( responseEntity != null ) {
-                this.copyAllProperties(responseEntity);
-            }
-        }
-        return response;
-    }
-
-    @NotNull
-    public UsergridResponse remove() {
-        return this.remove(Usergrid.getInstance());
-    }
-
-    @NotNull
-    public UsergridResponse remove(@NotNull final UsergridClient client) {
-        return client.DELETE(this);
-    }
-
-    @NotNull
-    public UsergridResponse connect(@NotNull final String relationship, @NotNull final UsergridEntity toEntity) {
-        return this.connect(Usergrid.getInstance(), relationship, toEntity);
-    }
-
-    @NotNull
-    public UsergridResponse connect(@NotNull final UsergridClient client, @NotNull final String relationship, @NotNull final UsergridEntity toEntity) {
-        return client.connect(this,relationship,toEntity);
-    }
-
-    @NotNull
-    public UsergridResponse disconnect(@NotNull final String relationship, @NotNull final UsergridEntity fromEntity) {
-        return this.disconnect(Usergrid.getInstance(), relationship, fromEntity);
-    }
-
-    @NotNull
-    public UsergridResponse disconnect(@NotNull final UsergridClient client, @NotNull final String relationship, @NotNull final UsergridEntity fromEntity) {
-        return client.disconnect(this,relationship,fromEntity);
-    }
-
-    @NotNull
-    public UsergridResponse getConnections(@NotNull final UsergridDirection direction, @NotNull final String relationship) {
-        return this.getConnections(Usergrid.getInstance(),direction,relationship);
-    }
-
-    @NotNull
-    public UsergridResponse getConnections(@NotNull final UsergridClient client, @NotNull final UsergridDirection direction, @NotNull final String relationship) {
-        return client.getConnections(direction,this,relationship);
-    }
-
-    public void removeProperty(@NotNull final String name) {
-        putProperty(name, NullNode.getInstance());
-    }
-
-    public void removeProperties(@NotNull final List<String> names) {
-        for( String propertyName : names ) {
-            this.removeProperty(propertyName);
-        }
-    }
-
-    public void putProperty(@NotNull final String name, @NotNull final String value) {
-        this.putProperty(name, JsonNodeFactory.instance.textNode(value));
-    }
-    public void putProperty(@NotNull final String name, final boolean value) {
-        this.putProperty(name, JsonNodeFactory.instance.booleanNode(value));
-    }
-    public void putProperty(@NotNull final String name, @NotNull final List value) {
-        this.putProperty(name, JsonNodeFactory.instance.pojoNode(value));
-    }
-    public void putProperty(@NotNull final String name, final int value) {
-        this.putProperty(name, JsonNodeFactory.instance.numberNode(value));
-    }
-    public void putProperty(@NotNull final String name, final long value) {
-        this.putProperty(name, JsonNodeFactory.instance.numberNode(value));
-    }
-    public void putProperty(@NotNull final String name, final float value) {
-        this.putProperty(name, JsonNodeFactory.instance.numberNode(value));
-    }
-    public void putProperty(@NotNull final String name, @Nullable final JsonNode value) {
-        UsergridEntityProperties entityProperty = UsergridEntityProperties.fromString(name);
-        if( entityProperty != null && !entityProperty.isMutableForEntity(this)) {
-            return;
-        }
-
-        JsonNode valueNode = value;
-        if( valueNode == null ) {
-            valueNode = NullNode.getInstance();
-        }
-        this.updatePropertiesWithMap(Collections.singletonMap(name,valueNode));
-    }
-    public void putProperties(@NotNull final String jsonString) {
-        try {
-            JsonNode jsonNode = entityUpdateMapper.readTree(jsonString);
-            this.putProperties(jsonNode);
-        } catch( Exception ignore ) {}
-    }
-    public void putProperties(@NotNull final Map<String, Object> properties) {
-        try {
-            JsonNode jsonNode = entityUpdateMapper.valueToTree(properties);
-            this.putProperties(jsonNode);
-        } catch( Exception ignore ) {}
-    }
-    public void putProperties(@NotNull final JsonNode jsonNode) {
-        HashMap<String,JsonNode> propertiesToUpdate = new HashMap<>();
-        Iterator<Map.Entry<String,JsonNode>> keys = jsonNode.fields();
-        while (keys.hasNext()) {
-            Map.Entry<String,JsonNode> entry = keys.next();
-            String key = entry.getKey();
-            UsergridEntityProperties entityProperty = UsergridEntityProperties.fromString(key);
-            if( entityProperty == null || entityProperty.isMutableForEntity(this) ) {
-                propertiesToUpdate.put(key,entry.getValue());
-            }
-        }
-        if( !propertiesToUpdate.isEmpty() ) {
-            this.updatePropertiesWithMap(propertiesToUpdate);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    public void append(@NotNull final String name, @NotNull final Object value) {
-        this.append(name, (value instanceof List) ? (List<Object>) value : Collections.singletonList(value));
-    }
-
-    public void append(@NotNull final String name, @NotNull final List<Object> value) {
-        this.insert(name, value, Integer.MAX_VALUE);
-    }
-
-    @SuppressWarnings("unchecked")
-    public void insert(@NotNull final String name, @NotNull final Object value) {
-        this.insert(name, (value instanceof List) ? (List<Object>) value : Collections.singletonList(value), 0);
-    }
-
-    @SuppressWarnings("unchecked")
-    public void insert(@NotNull final String name, @NotNull final Object value, final int index) {
-        this.insert(name, (value instanceof List) ? (List<Object>) value : Collections.singletonList(value), index);
-    }
-
-    public void insert(@NotNull final String name, @NotNull final List<Object> value) {
-        this.insert(name,value,0);
-    }
-
-    public void insert(@NotNull final String name, @NotNull final List<Object> value, final int index) {
-        int indexToInsert = index;
-        if (indexToInsert < 0) {
-            indexToInsert = 0;
-        }
-        Object propertyValue = this.getEntityProperty(name);
-        if( propertyValue != null ) {
-            ArrayList<Object> propertyArrayValue = this.convertToList(propertyValue);
-            propertyArrayValue = this.insertIntoArray(propertyArrayValue,value,indexToInsert);
-            this.putProperty(name, propertyArrayValue);
-        } else {
-            this.putProperty(name, value);
-        }
-    }
-
-    public void pop(@NotNull final String name) {
-        ArrayList<Object> arrayToPop = this.getArrayToPopOrShift(name);
-        if( arrayToPop != null && !arrayToPop.isEmpty() ) {
-            arrayToPop.remove(arrayToPop.size() - 1);
-            this.putProperty(name, arrayToPop);
-        }
-    }
-
-    public void shift(@NotNull final String name) {
-        ArrayList<Object> arrayToShift = this.getArrayToPopOrShift(name);
-        if( arrayToShift != null && !arrayToShift.isEmpty() ) {
-            arrayToShift.remove(0);
-            this.putProperty(name, arrayToShift);
-        }
-    }
-
-    @Nullable
-    public <T> T getEntityProperty(@NotNull final String name) {
-        return JsonUtils.getProperty(this.properties, name);
-    }
-
-    @Nullable
-    public JsonNode getJsonNodeProperty(@NotNull final String name) {
-        return this.getProperties().get(name);
-    }
-
-    @Nullable
-    public String getStringProperty(@NotNull final String name) {
-        return JsonUtils.getStringProperty(this.getProperties(), name);
-    }
-
-    @Nullable
-    public Boolean getBooleanProperty(@NotNull final String name) {
-        Boolean booleanValue = null;
-        Object object = JsonUtils.getProperty(this.getProperties(), name);
-        if( object instanceof Boolean ) {
-            booleanValue = (Boolean)object;
-        }
-        return booleanValue;
-    }
-
-    @Nullable
-    public Number getNumberProperty(@NotNull final String name) {
-        Number numberValue = null;
-        Object object = JsonUtils.getProperty(this.getProperties(), name);
-        if( object instanceof Number ) {
-            numberValue = (Number)object;
-        }
-        return numberValue;
-    }
-
-    @Nullable
-    public Integer getIntegerProperty(@NotNull final String name) {
-        Integer integerValue = null;
-        Object object = JsonUtils.getProperty(this.getProperties(), name);
-        if( object instanceof Number ) {
-            integerValue = ((Number)object).intValue();
-        }
-        return integerValue;
-    }
-
-    @Nullable
-    public Float getFloatProperty(@NotNull final String name) {
-        Float floatValue = null;
-        Object object = JsonUtils.getProperty(this.getProperties(), name);
-        if( object instanceof Number ) {
-            floatValue = ((Number)object).floatValue();
-        }
-        return floatValue;
-    }
-
-    @Nullable
-    public Long getLongProperty(@NotNull final String name) {
-        Long longValue = null;
-        Object object = JsonUtils.getProperty(this.getProperties(), name);
-        if( object instanceof Number ) {
-            longValue = ((Number)object).longValue();
-        }
-        return longValue;
-    }
-
-    @JsonAnyGetter @NotNull
-    public Map<String, JsonNode> getProperties() {
-        return this.properties;
-    }
-
-    @JsonAnySetter
-    private void internalPutProperty(@NotNull final String name, @Nullable final JsonNode value) {
-        if (value == null) {
-            properties.put(name, NullNode.instance);
-        } else {
-            properties.put(name, value);
-        }
-    }
-
-    @Nullable
-    @SuppressWarnings("unchecked")
-    private ArrayList<Object> getArrayToPopOrShift(@NotNull final String name) {
-        Object entityProperty = getEntityProperty(name);
-        ArrayList<Object> arrayToPopOrShift = null;
-        if (entityProperty instanceof POJONode) {
-            Object objectValue = ((POJONode) entityProperty).getPojo();
-            if (objectValue instanceof List) {
-                arrayToPopOrShift = new ArrayList<>((List) objectValue);
-            } else {
-                arrayToPopOrShift = new ArrayList<>();
-                arrayToPopOrShift.add(objectValue);
-            }
-        } else if( entityProperty instanceof ArrayNode ) {
-            arrayToPopOrShift = JsonUtils.convertToArrayList((ArrayNode)entityProperty);
-        } else if( entityProperty instanceof List ) {
-            arrayToPopOrShift = new ArrayList<>((List) entityProperty);
-        }
-        return arrayToPopOrShift;
-    }
-
-    @NotNull
-    private ArrayList<Object> convertToList(@NotNull final Object value) {
-        ArrayList<Object> arrayList = new ArrayList<>();
-        if( value instanceof ArrayNode ) {
-            arrayList = JsonUtils.convertToArrayList((ArrayNode)value);
-        } else if (value instanceof POJONode) {
-            Object objectValue = ((POJONode) value).getPojo();
-            if( objectValue instanceof List ) {
-                arrayList.addAll((List)objectValue);
-            } else {
-                arrayList.add(objectValue);
-            }
-        } else if (value instanceof List) {
-            arrayList.addAll((List)value);
-        } else {
-            arrayList.add(value);
-        }
-        return arrayList;
-    }
-
-    @NotNull
-    private ArrayList<Object> insertIntoArray(@NotNull final List<Object> propertyArrayNode, @NotNull final List<Object> arrayToInsert, final int index) {
-        ArrayList<Object> mergedArray = new ArrayList<>();
-        if (propertyArrayNode.size() <= 0 || arrayToInsert.isEmpty()) {
-            mergedArray.addAll(arrayToInsert);
-        }  else if ( index <= 0 ) {
-            mergedArray.addAll(arrayToInsert);
-            mergedArray.addAll(propertyArrayNode);
-        } else if ( index > 0 ) {
-            mergedArray.addAll(propertyArrayNode);
-            if ( index > propertyArrayNode.size() ) {
-                mergedArray.addAll(arrayToInsert);
-            } else {
-                mergedArray.addAll(index,arrayToInsert);
-            }
-        }
-        return mergedArray;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridUser.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridUser.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridUser.java
deleted file mode 100644
index f967e46..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/model/UsergridUser.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.model;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import org.apache.usergrid.java.client.Usergrid;
-import org.apache.usergrid.java.client.UsergridClient;
-import org.apache.usergrid.java.client.UsergridEnums.*;
-import org.apache.usergrid.java.client.auth.UsergridUserAuth;
-import org.apache.usergrid.java.client.query.UsergridQuery;
-import org.apache.usergrid.java.client.response.UsergridResponse;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.HashMap;
-
-@SuppressWarnings("unused")
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class UsergridUser extends UsergridEntity {
-    @NotNull public final static String USER_ENTITY_TYPE = "user";
-
-    @Nullable private UsergridUserAuth userAuth = null;
-
-    @Nullable private String username;
-    @Nullable private String email;
-    @Nullable private String password;
-    @Nullable private String picture;
-
-    private boolean activated = false;
-    private boolean disabled = false;
-
-    public UsergridUser() {
-        super(USER_ENTITY_TYPE);
-    }
-
-    public UsergridUser(@NotNull final String username, @Nullable final String password) {
-        super(USER_ENTITY_TYPE);
-        setUsername(username);
-        setPassword(password);
-    }
-
-    public UsergridUser(@NotNull final String name, @NotNull final HashMap<String, Object> propertyMap) {
-        super(USER_ENTITY_TYPE,name);
-        putProperties(propertyMap);
-    }
-
-    public UsergridUser(@Nullable final String name, @Nullable final String username, @Nullable final String email, @Nullable final String password) {
-        super(USER_ENTITY_TYPE,name);
-        setUsername(username);
-        setEmail(email);
-        setPassword(password);
-    }
-
-    public void setName(@Nullable final String name) { super.setName(name); }
-
-    @Nullable public String getUsername() { return this.username; }
-    public void setUsername(@Nullable final String username) { this.username = username; }
-
-    @Nullable public String getEmail() { return this.email; }
-    public void setEmail(@Nullable final String email) { this.email = email; }
-
-    @Nullable public String getPassword() { return this.password; }
-    public void setPassword(@Nullable final String password) { this.password = password; }
-
-    @Nullable public String getPicture() { return this.picture; }
-    public void setPicture(@Nullable final String picture) { this.picture = picture; }
-
-    public boolean isActivated() { return this.activated; }
-    public void setActivated(final boolean activated) { this.activated = activated; }
-
-    public boolean isDisabled() { return this.disabled; }
-    public void setDisabled(final boolean disabled) { this.disabled = disabled; }
-
-    @JsonIgnore @Nullable public UsergridUserAuth getUserAuth() { return this.userAuth; }
-    @JsonIgnore public void setUserAuth(@Nullable final UsergridUserAuth userAuth) { this.userAuth = userAuth; }
-
-    @Nullable
-    public String uuidOrUsername() {
-        String uuidOrUsername = this.getUuid();
-        if( uuidOrUsername == null ) {
-            uuidOrUsername = this.getUsername();
-        }
-        return uuidOrUsername;
-    }
-
-    @Nullable
-    public String usernameOrEmail() {
-        String usernameOrEmail = this.getUsername();
-        if( usernameOrEmail == null ) {
-            usernameOrEmail = this.getEmail();
-        }
-        return usernameOrEmail;
-    }
-
-    public static boolean checkAvailable(@Nullable final String email, @Nullable final String username) {
-        return UsergridUser.checkAvailable(Usergrid.getInstance(), email, username);
-    }
-
-    public static boolean checkAvailable(@NotNull final UsergridClient client, @Nullable final String email, @Nullable final String username) {
-        if (email == null && username == null) {
-            throw new IllegalArgumentException("email and username both are null ");
-        }
-        UsergridQuery query = new UsergridQuery(USER_ENTITY_TYPE);
-        if (username != null) {
-            query.eq(UsergridUserProperties.USERNAME.toString(), username);
-        }
-        if (email != null) {
-            query.or().eq(UsergridUserProperties.EMAIL.toString(), email);
-        }
-        return client.GET(query).first() != null;
-    }
-
-    @NotNull
-    public UsergridResponse create() {
-        return this.create(Usergrid.getInstance());
-    }
-
-    @NotNull
-    public UsergridResponse create(@NotNull final UsergridClient client) {
-        UsergridResponse response = client.POST(this);
-        UsergridUser createdUser = response.user();
-        if( createdUser != null ) {
-            this.copyAllProperties(createdUser);
-        }
-        return response;
-    }
-
-    @NotNull
-    public UsergridResponse login(@NotNull final String username, @NotNull final String password) {
-        return this.login(Usergrid.getInstance(),username,password);
-    }
-
-    @NotNull
-    public UsergridResponse login(@NotNull final UsergridClient client, @NotNull final String username, @NotNull final String password) {
-        UsergridUserAuth userAuth = new UsergridUserAuth(username,password);
-        UsergridResponse response = client.authenticateUser(userAuth,false);
-        if( response.ok() ) {
-            this.userAuth = userAuth;
-        }
-        return response;
-    }
-
-    @NotNull
-    public UsergridResponse resetPassword(@NotNull final String oldPassword, @NotNull final String newPassword) {
-        return this.resetPassword(Usergrid.getInstance(),oldPassword,newPassword);
-    }
-
-    @NotNull
-    public UsergridResponse resetPassword(@NotNull final UsergridClient client, @NotNull final String oldPassword, @NotNull final String newPassword) {
-        return client.resetPassword(this,oldPassword,newPassword);
-    }
-
-    @NotNull
-    public UsergridResponse reauthenticate() {
-        return this.reauthenticate(Usergrid.getInstance());
-    }
-
-    @NotNull
-    public UsergridResponse reauthenticate(@NotNull final UsergridClient client) {
-        return this.userAuth == null ? UsergridResponse.fromError(client, "Invalid UsergridUserAuth.", "No UsergridUserAuth found on the UsergridUser.") : client.authenticateUser(this.userAuth, false);
-    }
-
-    @NotNull
-    public UsergridResponse logout() {
-        return this.logout(Usergrid.getInstance());
-    }
-
-    @NotNull
-    public UsergridResponse logout(@NotNull final UsergridClient client) {
-        UsergridResponse response;
-        String uuidOrUsername = this.uuidOrUsername();
-        String accessToken = (this.userAuth != null) ? this.userAuth.getAccessToken() : null;
-        if (uuidOrUsername == null || accessToken == null ) {
-            response = UsergridResponse.fromError(client,  "Logout Failed.", "UUID or Access Token not found on UsergridUser object.");
-        } else {
-            response = client.logoutUser(uuidOrUsername, accessToken);
-            if( response.ok() ) {
-                this.userAuth = null;
-            }
-        }
-        return response;
-    }
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/query/UsergridQuery.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/query/UsergridQuery.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/query/UsergridQuery.java
deleted file mode 100644
index e8c78c2..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/query/UsergridQuery.java
+++ /dev/null
@@ -1,431 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.query;
-
-import org.apache.usergrid.java.client.UsergridEnums.UsergridQueryOperator;
-import org.apache.usergrid.java.client.UsergridEnums.UsergridQuerySortOrder;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.net.URLEncoder;
-import java.util.*;
-
-@SuppressWarnings("unused")
-public final class UsergridQuery {
-
-    @NotNull private final ArrayList<String> requirementStrings = new ArrayList<>();
-    @NotNull private final ArrayList<String> urlTerms = new ArrayList<>();
-    @NotNull private final HashMap<String, UsergridQuerySortOrder> orderClauses = new HashMap<>();
-    @NotNull private Integer limit = UsergridQuery.LIMIT_DEFAULT;
-    @Nullable private String cursor = null;
-    @Nullable private String fromStringValue = null;
-    @Nullable private String collectionName = null;
-
-    public UsergridQuery() {
-        this(null);
-    }
-
-    public UsergridQuery(@Nullable final String collectionName) {
-        this.collectionName = collectionName;
-        this.requirementStrings.add(UsergridQuery.EMPTY_STRING);
-    }
-
-    private static boolean isUUID(@NotNull final String string) {
-        try {
-            UUID uuid = UUID.fromString(string);
-            return true;
-        } catch (Exception ex) {
-            return false;
-        }
-    }
-
-    @NotNull
-    private static String encode(@NotNull final String stringValue) {
-        String escapedString;
-        try {
-            escapedString = URLEncoder.encode(stringValue, UTF8);
-        } catch (Exception e) {
-            escapedString = stringValue;
-        }
-        return escapedString;
-    }
-
-    @NotNull
-    public static String strJoin(@NotNull final List<String> array, @NotNull final String separator) {
-        StringBuilder stringBuilder = new StringBuilder();
-        for (int i = 0, il = array.size(); i < il; i++) {
-            if (i > 0) {
-                stringBuilder.append(separator);
-            }
-            stringBuilder.append(array.get(i));
-        }
-        return stringBuilder.toString();
-    }
-
-    @NotNull
-    public UsergridQuery fromString(@NotNull final String stringValue) {
-        this.fromStringValue = stringValue;
-        return this;
-    }
-
-    @Nullable
-    public String getType() {
-        return this.collectionName;
-    }
-
-    @Nullable
-    public String getCollectionName() {
-        return this.collectionName;
-    }
-
-    @Nullable
-    public String getCollection() {
-        return this.collectionName;
-    }
-
-    @NotNull
-    public UsergridQuery type(@Nullable final String type) {
-        this.collectionName = type;
-        return this;
-    }
-
-    @NotNull
-    public UsergridQuery collection(@Nullable final String collectionName) {
-        return this.type(collectionName);
-    }
-
-    @NotNull
-    public UsergridQuery collectionName(@Nullable final String collectionName) {
-        return this.type(collectionName);
-    }
-
-    @NotNull
-    public UsergridQuery cursor(@Nullable final String value) {
-        this.cursor = value;
-        return this;
-    }
-
-    @NotNull
-    public UsergridQuery limit(@NotNull final Integer limit) {
-        this.limit = limit;
-        return this;
-    }
-
-    @NotNull
-    private UsergridQuery addConditionalSeparator(@NotNull final String separator) {
-        if (!this.requirementStrings.get(0).isEmpty()) {
-            this.requirementStrings.add(0, separator);
-            this.requirementStrings.add(0, UsergridQuery.EMPTY_STRING);
-        }
-        return this;
-    }
-
-    @NotNull
-    public UsergridQuery and() {
-        return this.addConditionalSeparator(UsergridQuery.AND);
-    }
-
-    @NotNull
-    public UsergridQuery or() {
-        return this.addConditionalSeparator(UsergridQuery.OR);
-    }
-
-    @NotNull
-    public UsergridQuery not() {
-        return this.addConditionalSeparator(UsergridQuery.NOT);
-    }
-
-    @NotNull
-    public UsergridQuery sort(@NotNull final String term, @NotNull final UsergridQuerySortOrder sortOrder) {
-        this.orderClauses.put(term, sortOrder);
-        return this;
-    }
-
-    @NotNull
-    public UsergridQuery ascending(@NotNull final String term) {
-        return this.asc(term);
-    }
-
-    @NotNull
-    public UsergridQuery asc(@NotNull final String term) {
-        return this.sort(term, UsergridQuerySortOrder.ASC);
-    }
-
-    @NotNull
-    public UsergridQuery descending(@NotNull final String term) {
-        return this.desc(term);
-    }
-
-    @NotNull
-    public UsergridQuery desc(@NotNull final String term) {
-        return this.sort(term, UsergridQuerySortOrder.DESC);
-    }
-
-    @NotNull
-    public UsergridQuery contains(@NotNull final String term, @NotNull final String value) {
-        return this.containsWord(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery containsString(@NotNull final String term, @NotNull final String value) {
-        return this.containsWord(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery containsWord(@NotNull final String term, @NotNull final String value) {
-        return this.addRequirement(term + SPACE + CONTAINS + SPACE + ((UsergridQuery.isUUID(value)) ? EMPTY_STRING : APOSTROPHE) + value + ((UsergridQuery.isUUID(value)) ? EMPTY_STRING : APOSTROPHE));
-    }
-
-    @NotNull
-    public UsergridQuery filter(@NotNull final String term, @NotNull final Object value) {
-        return this.eq(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery equals(@NotNull final String term, @NotNull final Object value) {
-        return this.eq(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery eq(@NotNull final String term, @NotNull final Object value) {
-        return this.addOperationRequirement(term, UsergridQueryOperator.EQUAL, value);
-    }
-
-    @NotNull
-    public UsergridQuery greaterThan(@NotNull final String term, @NotNull final Object value) {
-        return this.gt(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery gt(@NotNull final String term, @NotNull final Object value) {
-        return this.addOperationRequirement(term, UsergridQueryOperator.GREATER_THAN, value);
-    }
-
-    @NotNull
-    public UsergridQuery greaterThanOrEqual(@NotNull final String term, @NotNull final Object value) {
-        return this.gte(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery gte(@NotNull final String term, @NotNull final Object value) {
-        return this.addOperationRequirement(term, UsergridQueryOperator.GREATER_THAN_EQUAL_TO, value);
-    }
-
-    @NotNull
-    public UsergridQuery lessThan(@NotNull final String term, @NotNull final Object value) {
-        return this.lt(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery lt(@NotNull final String term, @NotNull final Object value) {
-        return this.addOperationRequirement(term, UsergridQueryOperator.LESS_THAN, value);
-    }
-
-    @NotNull
-    public UsergridQuery lessThanOrEqual(@NotNull final String term, @NotNull final Object value) {
-        return this.lte(term, value);
-    }
-
-    @NotNull
-    public UsergridQuery lte(@NotNull final String term, @NotNull final Object value) {
-        return this.addOperationRequirement(term, UsergridQueryOperator.LESS_THAN_EQUAL_TO, value);
-    }
-
-    @NotNull
-    public UsergridQuery locationWithin(final double distance, final double latitude, final double longitude) {
-        return this.addRequirement(LOCATION + SPACE + WITHIN + SPACE + distance + SPACE + OF + SPACE + latitude + SPACE + COMMA + longitude);
-    }
-
-    @NotNull
-    public UsergridQuery urlTerm(@NotNull final String term, @NotNull final String equalsValue) {
-        if (term.equalsIgnoreCase(QL)) {
-            this.ql(equalsValue);
-        } else {
-            this.urlTerms.add(UsergridQuery.encode(term) + EQUALS + UsergridQuery.encode(equalsValue));
-        }
-        return this;
-    }
-
-    @NotNull
-    public UsergridQuery ql(final String value) {
-
-        return value != null && !value.isEmpty() ? this.addRequirement(value) : this;
-
-    }
-
-    @NotNull
-    public UsergridQuery addRequirement(@NotNull final String requirement) {
-        String requirementString = this.requirementStrings.remove(0);
-        if (!requirement.isEmpty() && !requirementString.isEmpty()) {
-            requirementString += SPACE + AND + SPACE;
-        }
-        requirementString += requirement;
-        this.requirementStrings.add(0, requirementString);
-        return this;
-    }
-
-    @NotNull
-    public UsergridQuery addOperationRequirement(@NotNull final String term, @NotNull final UsergridQueryOperator operation, final int intValue) {
-        return this.addOperationRequirement(term, operation, Integer.valueOf(intValue));
-    }
-
-    @NotNull
-    public UsergridQuery addOperationRequirement(@NotNull final String term, @NotNull final UsergridQueryOperator operation, @NotNull final Object value) {
-        if (value instanceof String) {
-            String valueString = value.toString();
-            if (!UsergridQuery.isUUID(valueString)) {
-                valueString = APOSTROPHE + value + APOSTROPHE;
-            }
-            return addRequirement(term + SPACE + operation.operatorValue() + SPACE + valueString);
-        } else {
-            return addRequirement(term + SPACE + operation.operatorValue() + SPACE + value.toString());
-        }
-    }
-
-    @NotNull
-    private String constructOrderByString() {
-        String orderByString = EMPTY_STRING;
-        if (!this.orderClauses.isEmpty()) {
-            for (Map.Entry<String, UsergridQuerySortOrder> orderClause : this.orderClauses.entrySet()) {
-                if (!orderByString.isEmpty()) {
-                    orderByString += COMMA;
-                }
-                orderByString += orderClause.getKey() + SPACE + orderClause.getValue().toString();
-            }
-            if (!orderByString.isEmpty()) {
-                orderByString = SPACE + ORDER_BY + SPACE + orderByString;
-            }
-        }
-        return orderByString;
-    }
-
-    @NotNull
-    private String constructURLTermsString() {
-        String urlTermsString = EMPTY_STRING;
-        if (!this.urlTerms.isEmpty()) {
-            urlTermsString = UsergridQuery.strJoin(this.urlTerms, AMPERSAND);
-        }
-        return urlTermsString;
-    }
-
-    @NotNull
-    private String constructRequirementString() {
-        ArrayList<String> requirementStrings = new ArrayList<>(this.requirementStrings);
-        String firstString = requirementStrings.get(0);
-        if (firstString.isEmpty()) {
-            requirementStrings.remove(0);
-        }
-        String requirementsString = EMPTY_STRING;
-        if (!requirementStrings.isEmpty()) {
-            firstString = requirementStrings.get(0);
-            if (firstString.equalsIgnoreCase(OR) || firstString.equalsIgnoreCase(AND) || firstString.equalsIgnoreCase(NOT)) {
-                requirementStrings.remove(0);
-            }
-            if (!requirementStrings.isEmpty()) {
-                Collections.reverse(requirementStrings);
-                requirementsString = UsergridQuery.strJoin(requirementStrings, SPACE);
-            }
-        }
-        return requirementsString;
-    }
-
-    @NotNull
-    private String constructURLAppend() {
-        return this.constructURLAppend(true);
-    }
-
-    @NotNull
-    private String constructURLAppend(final boolean autoURLEncode) {
-        if (this.fromStringValue != null) {
-            String requirementsString = this.fromStringValue;
-            if (autoURLEncode) {
-                requirementsString = UsergridQuery.encode(requirementsString);
-            }
-            return QUESTION_MARK + QL + EQUALS + requirementsString;
-        }
-        String urlAppend = EMPTY_STRING;
-        if (this.limit != LIMIT_DEFAULT) {
-            urlAppend += LIMIT + EQUALS + this.limit.toString();
-        }
-        String urlTermsString = this.constructURLTermsString();
-        if (!urlTermsString.isEmpty()) {
-            if (!urlAppend.isEmpty()) {
-                urlAppend += AMPERSAND;
-            }
-            urlAppend += urlTermsString;
-        }
-        if (this.cursor != null && !this.cursor.isEmpty()) {
-            if (!urlAppend.isEmpty()) {
-                urlAppend += AMPERSAND;
-            }
-            urlAppend += CURSOR + EQUALS + this.cursor;
-        }
-
-        String requirementsString = this.constructRequirementString();
-
-        String orderByString = this.constructOrderByString();
-        if (!orderByString.isEmpty()) {
-            requirementsString += orderByString;
-        }
-        if (!requirementsString.isEmpty()) {
-            if (autoURLEncode) {
-                requirementsString = UsergridQuery.encode(requirementsString);
-            }
-            if (!urlAppend.isEmpty()) {
-                urlAppend += AMPERSAND;
-            }
-            urlAppend += QL + EQUALS + requirementsString;
-        }
-        if (!urlAppend.isEmpty()) {
-            urlAppend = QUESTION_MARK + urlAppend;
-        }
-        return urlAppend;
-    }
-
-    @NotNull
-    public String build() {
-        return this.build(true);
-    }
-
-    @NotNull
-    public String build(final boolean autoURLEncode) {
-        return this.constructURLAppend(autoURLEncode);
-    }
-
-    private static final int LIMIT_DEFAULT = 10;
-    @NotNull private static final String AMPERSAND = "&";
-    @NotNull private static final String AND = "and";
-    @NotNull private static final String APOSTROPHE = "'";
-    @NotNull private static final String COMMA = ",";
-    @NotNull private static final String CONTAINS = "contains";
-    @NotNull private static final String CURSOR = "cursor";
-    @NotNull private static final String EMPTY_STRING = "";
-    @NotNull private static final String EQUALS = "=";
-    @NotNull private static final String LIMIT = "limit";
-    @NotNull private static final String LOCATION = "location";
-    @NotNull private static final String NOT = "not";
-    @NotNull private static final String OF = "of";
-    @NotNull private static final String OR = "or";
-    @NotNull private static final String ORDER_BY = "order by";
-    @NotNull private static final String QL = "ql";
-    @NotNull private static final String QUESTION_MARK = "?";
-    @NotNull private static final String SELECT_ALL = "select *";
-    @NotNull private static final String SPACE = " ";
-    @NotNull private static final String UTF8 = "UTF-8";
-    @NotNull private static final String WHERE = "where";
-    @NotNull private static final String WITHIN = "within";
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponse.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponse.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponse.java
deleted file mode 100644
index ee649c4..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponse.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.response;
-
-import com.fasterxml.jackson.annotation.*;
-import com.fasterxml.jackson.databind.JsonNode;
-import okhttp3.Headers;
-import org.apache.usergrid.java.client.UsergridClient;
-import org.apache.usergrid.java.client.UsergridEnums;
-import org.apache.usergrid.java.client.UsergridRequest;
-import org.apache.usergrid.java.client.model.UsergridEntity;
-import org.apache.usergrid.java.client.model.UsergridUser;
-import org.apache.usergrid.java.client.query.UsergridQuery;
-import org.apache.usergrid.java.client.utils.JsonUtils;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.*;
-
-import static org.apache.usergrid.java.client.utils.JsonUtils.toJsonString;
-
-@SuppressWarnings("unused")
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class UsergridResponse {
-
-    @Nullable private UsergridClient client;
-    @NotNull private Map<String, JsonNode> properties = new HashMap<>();
-
-    private int statusCode = 0;
-    @Nullable private JsonNode responseJson = null;
-    @Nullable private String cursor;
-    @Nullable private List<UsergridEntity> entities;
-    @Nullable private Map<String, String> headers;
-    @Nullable private UsergridQuery query;
-    @Nullable private UsergridResponseError responseError = null;
-
-    @Nullable private String accessToken;
-    @Nullable private Long expires;
-
-    public boolean ok() { return (statusCode > 0 && statusCode < 400); }
-    public int count()  { return (entities == null) ? 0 : entities.size(); }
-    public boolean hasNextPage() { return (cursor != null); }
-    @NotNull @Override public String toString() {
-        return toJsonString(this);
-    }
-
-    @Nullable public UsergridEntity first() { return (entities == null || entities.isEmpty()) ? null : entities.get(0); }
-    @Nullable public UsergridEntity entity() {
-        return first();
-    }
-    @Nullable public UsergridEntity last() { return (entities == null || entities.isEmpty()) ? null : entities.get(entities.size() - 1); }
-
-    @Nullable
-    public UsergridUser user() {
-        UsergridEntity entity = this.first();
-        if( entity != null && entity instanceof UsergridUser ) {
-            return (UsergridUser) entity;
-        }
-        return null;
-    }
-
-    @Nullable
-    public List<UsergridUser> users() {
-        ArrayList<UsergridUser> users = null;
-        if( entities != null && !entities.isEmpty() ) {
-            for( UsergridEntity entity : entities ) {
-                if( entity instanceof UsergridUser ) {
-                    if( users == null )  {
-                        users = new ArrayList<>();
-                    }
-                    users.add((UsergridUser)entity);
-                }
-            }
-        }
-        return users;
-    }
-
-    public int getStatusCode() { return this.statusCode; }
-
-    @Nullable @JsonIgnore
-    public UsergridClient getClient() {
-        return client;
-    }
-    @JsonIgnore public void setClient(@Nullable final UsergridClient client) { this.client = client; }
-
-    @Nullable @JsonIgnore
-    public JsonNode getResponseJson() {
-        return responseJson;
-    }
-    private void setResponseJson(@Nullable final JsonNode responseJson) {this.responseJson = responseJson; }
-
-    @Nullable @JsonIgnore
-    public UsergridQuery getQuery() {
-        return query;
-    }
-    private void setQuery(@Nullable final UsergridQuery query) { this.query = query; }
-
-    @Nullable
-    public UsergridResponseError getResponseError() {
-        return responseError;
-    }
-    private void setResponseError(@Nullable final UsergridResponseError responseError) { this.responseError = responseError; }
-
-    @Nullable
-    public Map<String, String> getHeaders() {
-        return headers;
-    }
-    private void setHeaders(@Nullable final Map<String, String> headers) { this.headers = headers; }
-
-    @Nullable
-    public List<UsergridEntity> getEntities() { return entities; }
-    private void setEntities(@NotNull final List<UsergridEntity> entities) { this.entities = entities; }
-
-    @Nullable @JsonProperty("cursor")
-    public String getCursor() {
-        return cursor;
-    }
-    @JsonProperty("cursor")
-    private void setCursor(@NotNull final String cursor) { this.cursor = cursor; }
-
-    @Nullable @JsonProperty("access_token")
-    public String getAccessToken() { return this.accessToken; }
-    @JsonProperty("access_token")
-    private void setAccessToken(@NotNull final String accessToken) { this.accessToken = accessToken; }
-
-    @Nullable @JsonProperty("expires_in")
-    public Long getExpires() { return this.expires; }
-    @JsonProperty("expires_in")
-    private void setExpires(@NotNull final Long expires) { this.expires = expires; }
-
-    @JsonProperty("user")
-    private void setUser(@NotNull final UsergridUser user) {
-        if( this.entities == null ) {
-            this.entities = new ArrayList<>();
-        }
-        this.entities.add(user);
-    }
-
-    @NotNull @JsonAnyGetter
-    public Map<String, JsonNode> getProperties() {
-        return properties;
-    }
-    @JsonAnySetter
-    private void setProperty(@NotNull final  String key, @NotNull final JsonNode value) {
-        properties.put(key, value);
-    }
-
-    @NotNull
-    public UsergridResponse loadNextPage() {
-        UsergridClient client = this.client;
-        UsergridEntity entity = this.first();
-        if( this.hasNextPage() && client != null && entity != null ) {
-            Map<String, Object> paramsMap = new HashMap<>();
-            paramsMap.put("cursor", getCursor());
-            UsergridRequest request = new UsergridRequest(UsergridEnums.UsergridHttpMethod.GET, UsergridRequest.APPLICATION_JSON_MEDIA_TYPE, client.clientAppUrl(), paramsMap, null, null, this.getQuery(), client.authForRequests() , entity.getType());
-            return client.sendRequest(request);
-        } else {
-            return UsergridResponse.fromError(client,"Error Loading Next Page.","Unable to load next page.");
-        }
-    }
-
-    @NotNull
-    public static UsergridResponse fromError(@Nullable final UsergridClient client, @NotNull final String errorName, @NotNull final String errorDescription) {
-        UsergridResponse response = new UsergridResponse();
-        response.client = client;
-        response.responseError = new UsergridResponseError(errorName,errorDescription);
-        return response;
-    }
-
-    @NotNull
-    public static UsergridResponse fromException(@Nullable final UsergridClient client, @NotNull final Exception ex) {
-        final UsergridResponse response = new UsergridResponse();
-        response.client = client;
-        final UsergridResponseError responseError = new UsergridResponseError();
-        responseError.setErrorDescription(ex.getMessage());
-        if( ex.getClass() != null ) {
-            responseError.setErrorName(ex.getClass().toString());
-        }
-        if( ex.getCause() != null ) {
-            responseError.setErrorException(ex.getCause().toString());
-        }
-        response.responseError = responseError;
-        return response;
-    }
-
-    @NotNull
-    public static UsergridResponse fromResponse(@NotNull final UsergridClient client, @NotNull final UsergridRequest request, @NotNull final okhttp3.Response requestResponse) {
-        UsergridResponse response;
-        JsonNode responseJson;
-        try {
-            String responseJsonString = requestResponse.body().string();
-            responseJson = JsonUtils.mapper.readTree(responseJsonString);
-        } catch ( Exception e ) {
-            return UsergridResponse.fromException(client,e);
-        }
-        if ( responseJson.has("error") )  {
-            response = new UsergridResponse();
-            response.responseError = JsonUtils.fromJsonNode(responseJson,UsergridResponseError.class);
-        } else {
-            response = JsonUtils.fromJsonNode(responseJson,UsergridResponse.class);
-        }
-        response.client = client;
-        response.responseJson = responseJson;
-        response.statusCode = requestResponse.code();
-
-        Headers responseHeaders = requestResponse.headers();
-        HashMap<String,String> headers = new HashMap<>();
-        for (int i = 0; i < responseHeaders.size(); i++) {
-            headers.put(responseHeaders.name(i),responseHeaders.value(i));
-        }
-
-        response.headers = headers;
-        response.query = request.getQuery();
-        return response;
-    }
-}

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2f04b45/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponseError.java
----------------------------------------------------------------------
diff --git a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponseError.java b/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponseError.java
deleted file mode 100644
index 387ae56..0000000
--- a/sdks/java/src/main/java/org/apache/usergrid/java/client/response/UsergridResponseError.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.apache.usergrid.java.client.response;
-
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.databind.JsonNode;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@SuppressWarnings("unused")
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class UsergridResponseError {
-
-    @Nullable private String errorName;
-    @Nullable private String errorDescription;
-    @Nullable private String errorException;
-
-    @NotNull private final Map<String, JsonNode> properties = new HashMap<>();
-
-    public UsergridResponseError() {
-        this(null,null,null);
-    }
-    public UsergridResponseError(@Nullable final String errorName) {
-        this(errorName, null, null);
-    }
-    public UsergridResponseError(@Nullable final String errorName, @Nullable final String errorDescription) {
-        this(errorName,errorDescription,null);
-    }
-    public UsergridResponseError(@Nullable final String errorName, @Nullable final String errorDescription, @Nullable final String errorException) {
-        this.errorName = errorName;
-        this.errorDescription = errorDescription;
-        this.errorException = errorException;
-    }
-
-    @NotNull
-    @JsonAnyGetter
-    public Map<String, JsonNode> getProperties() {
-        return properties;
-    }
-
-    @JsonAnySetter
-    public void setProperty(@NotNull final String key, @NotNull final JsonNode value) {
-        properties.put(key, value);
-    }
-
-    @Nullable
-    @JsonProperty("error")
-    public String getErrorName() {
-        return errorName;
-    }
-
-    @JsonProperty("error")
-    public void setErrorName(@NotNull final String errorName) {
-        this.errorName = errorName;
-    }
-
-    @Nullable
-    @JsonProperty("exception")
-    public String getErrorException() {
-        return errorException;
-    }
-
-    @JsonProperty("exception")
-    public void setErrorException(@NotNull final String errorException) {
-        this.errorException = errorException;
-    }
-
-    @Nullable
-    @JsonProperty("error_description")
-    public String getErrorDescription() {
-        return errorDescription;
-    }
-
-    @JsonProperty("error_description")
-    public void setErrorDescription(@NotNull final String errorDescription) {
-        this.errorDescription = errorDescription;
-    }
-}