usergrid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From snoopd...@apache.org
Subject [43/81] [abbrv] git commit: Rename for Java SDK, also regenerated Javadocs.
Date Thu, 13 Feb 2014 13:21:35 GMT
Rename for Java SDK, also regenerated Javadocs.


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/c984364d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/c984364d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/c984364d

Branch: refs/heads/two-dot-o
Commit: c984364d4c55a6aaab03bb3145424919cb354e52
Parents: b5d399b
Author: Dave Johnson <dmjohnson@apigee.com>
Authored: Fri Feb 7 09:19:34 2014 -0500
Committer: Dave Johnson <dmjohnson@apigee.com>
Committed: Fri Feb 7 09:19:34 2014 -0500

----------------------------------------------------------------------
 .../apache/usergrid/android/client/Client.java  |  590 +++++
 .../client/callbacks/ApiResponseCallback.java   |   10 +
 .../client/callbacks/ClientAsyncTask.java       |   38 +
 .../client/callbacks/ClientCallback.java        |    9 +
 .../callbacks/DeviceRegistrationCallback.java   |    9 +
 .../callbacks/GroupsRetrievedCallback.java      |   13 +
 .../client/callbacks/QueryResultsCallback.java  |    9 +
 .../android/client/utils/DeviceUuidFactory.java |  154 ++
 .../android/client/utils/ObjectUtils.java       |   20 +
 .../org/usergrid/android/client/Client.java     |  590 -----
 .../client/callbacks/ApiResponseCallback.java   |   10 -
 .../client/callbacks/ClientAsyncTask.java       |   38 -
 .../client/callbacks/ClientCallback.java        |    9 -
 .../callbacks/DeviceRegistrationCallback.java   |    9 -
 .../callbacks/GroupsRetrievedCallback.java      |   13 -
 .../client/callbacks/QueryResultsCallback.java  |    9 -
 .../android/client/utils/DeviceUuidFactory.java |  154 --
 .../android/client/utils/ObjectUtils.java       |   20 -
 sdks/java/doc/allclasses-frame.html             |  123 +-
 sdks/java/doc/allclasses-noframe.html           |  123 +-
 sdks/java/doc/constant-values.html              | 1437 ++++++-----
 sdks/java/doc/deprecated-list.html              |  237 +-
 sdks/java/doc/help-doc.html                     |  419 ++-
 sdks/java/doc/index-all.html                    | 1299 ++++++++++
 sdks/java/doc/index-files/index-1.html          |  209 --
 sdks/java/doc/index-files/index-10.html         |  151 --
 sdks/java/doc/index-files/index-11.html         |  154 --
 sdks/java/doc/index-files/index-12.html         |  151 --
 sdks/java/doc/index-files/index-13.html         |  217 --
 sdks/java/doc/index-files/index-14.html         |  268 --
 sdks/java/doc/index-files/index-15.html         |  204 --
 sdks/java/doc/index-files/index-16.html         |  151 --
 sdks/java/doc/index-files/index-17.html         |  466 ----
 sdks/java/doc/index-files/index-18.html         |  184 --
 sdks/java/doc/index-files/index-19.html         |  157 --
 sdks/java/doc/index-files/index-2.html          |  193 --
 sdks/java/doc/index-files/index-20.html         |  239 --
 sdks/java/doc/index-files/index-21.html         |  154 --
 sdks/java/doc/index-files/index-3.html          |  161 --
 sdks/java/doc/index-files/index-4.html          |  166 --
 sdks/java/doc/index-files/index-5.html          |  151 --
 sdks/java/doc/index-files/index-6.html          |  547 ----
 sdks/java/doc/index-files/index-7.html          |  145 --
 sdks/java/doc/index-files/index-8.html          |  160 --
 sdks/java/doc/index-files/index-9.html          |  145 --
 sdks/java/doc/index.html                        |   89 +-
 .../usergrid/java/client/Client.Query.html      |  238 ++
 .../java/client/Client.QueuePosition.html       |  381 +++
 .../org/apache/usergrid/java/client/Client.html | 1652 ++++++++++++
 .../java/client/class-use/Client.Query.html     |  246 ++
 .../client/class-use/Client.QueuePosition.html  |  192 ++
 .../usergrid/java/client/class-use/Client.html  |  175 ++
 .../entities/Activity.ActivityCollection.html   |  408 +++
 .../entities/Activity.ActivityObject.html       |  720 ++++++
 .../client/entities/Activity.MediaLink.html     |  434 ++++
 .../usergrid/java/client/entities/Activity.html | 1449 +++++++++++
 .../usergrid/java/client/entities/Device.html   |  387 +++
 .../usergrid/java/client/entities/Entity.html   |  599 +++++
 .../usergrid/java/client/entities/Group.html    |  427 ++++
 .../usergrid/java/client/entities/Message.html  |  641 +++++
 .../usergrid/java/client/entities/User.html     |  707 ++++++
 .../class-use/Activity.ActivityCollection.html  |  117 +
 .../class-use/Activity.ActivityObject.html      |  231 ++
 .../entities/class-use/Activity.MediaLink.html  |  191 ++
 .../client/entities/class-use/Activity.html     |  203 ++
 .../java/client/entities/class-use/Device.html  |  169 ++
 .../java/client/entities/class-use/Entity.html  |  415 +++
 .../java/client/entities/class-use/Group.html   |  159 ++
 .../java/client/entities/class-use/Message.html |  183 ++
 .../java/client/entities/class-use/User.html    |  248 ++
 .../java/client/entities/package-frame.html     |   28 +
 .../java/client/entities/package-summary.html   |  169 ++
 .../java/client/entities/package-tree.html      |  141 ++
 .../java/client/entities/package-use.html       |  219 ++
 .../java/client/exception/ClientException.html  |  263 ++
 .../exception/class-use/ClientException.html    |  117 +
 .../java/client/exception/package-frame.html    |   20 +
 .../java/client/exception/package-summary.html  |  137 +
 .../java/client/exception/package-tree.html     |  142 ++
 .../java/client/exception/package-use.html      |  117 +
 .../usergrid/java/client/package-frame.html     |   28 +
 .../usergrid/java/client/package-summary.html   |  167 ++
 .../usergrid/java/client/package-tree.html      |  146 ++
 .../usergrid/java/client/package-use.html       |  158 ++
 .../java/client/response/AggregateCounter.html  |  316 +++
 .../client/response/AggregateCounterSet.html    |  444 ++++
 .../java/client/response/ApiResponse.html       | 1148 +++++++++
 .../client/response/ClientCredentialsInfo.html  |  316 +++
 .../java/client/response/QueueInfo.html         |  297 +++
 .../response/class-use/AggregateCounter.html    |  191 ++
 .../response/class-use/AggregateCounterSet.html |  170 ++
 .../client/response/class-use/ApiResponse.html  |  365 +++
 .../class-use/ClientCredentialsInfo.html        |  170 ++
 .../client/response/class-use/QueueInfo.html    |  187 ++
 .../java/client/response/package-frame.html     |   24 +
 .../java/client/response/package-summary.html   |  151 ++
 .../java/client/response/package-tree.html      |  134 +
 .../java/client/response/package-use.html       |  178 ++
 .../usergrid/java/client/utils/JsonUtils.html   |  480 ++++
 .../usergrid/java/client/utils/MapUtils.html    |  260 ++
 .../usergrid/java/client/utils/ObjectUtils.html |  258 ++
 .../usergrid/java/client/utils/UrlUtils.html    |  314 +++
 .../java/client/utils/class-use/JsonUtils.html  |  117 +
 .../java/client/utils/class-use/MapUtils.html   |  117 +
 .../client/utils/class-use/ObjectUtils.html     |  117 +
 .../java/client/utils/class-use/UrlUtils.html   |  117 +
 .../java/client/utils/package-frame.html        |   23 +
 .../java/client/utils/package-summary.html      |  147 ++
 .../java/client/utils/package-tree.html         |  133 +
 .../usergrid/java/client/utils/package-use.html |  117 +
 .../usergrid/android/client/Client.Query.html   |  247 --
 .../android/client/Client.QueuePosition.html    |  398 ---
 .../doc/org/usergrid/android/client/Client.html | 2389 ------------------
 .../client/callbacks/ApiResponseCallback.html   |  221 --
 .../client/callbacks/ClientAsyncTask.html       |  281 --
 .../client/callbacks/ClientCallback.html        |  228 --
 .../callbacks/DeviceRegistrationCallback.html   |  221 --
 .../callbacks/GroupsRetrievedCallback.html      |  221 --
 .../client/callbacks/QueryResultsCallback.html  |  221 --
 .../class-use/ApiResponseCallback.html          |  328 ---
 .../callbacks/class-use/ClientAsyncTask.html    |  144 --
 .../callbacks/class-use/ClientCallback.html     |  218 --
 .../class-use/DeviceRegistrationCallback.html   |  182 --
 .../class-use/GroupsRetrievedCallback.html      |  181 --
 .../class-use/QueryResultsCallback.html         |  266 --
 .../android/client/callbacks/package-frame.html |   51 -
 .../client/callbacks/package-summary.html       |  187 --
 .../android/client/callbacks/package-tree.html  |  162 --
 .../android/client/callbacks/package-use.html   |  207 --
 .../android/client/class-use/Client.Query.html  |  306 ---
 .../client/class-use/Client.QueuePosition.html  |  222 --
 .../android/client/class-use/Client.html        |  204 --
 .../entities/Activity.ActivityCollection.html   |  412 ---
 .../entities/Activity.ActivityObject.html       |  868 -------
 .../client/entities/Activity.MediaLink.html     |  450 ----
 .../android/client/entities/Activity.html       | 1790 -------------
 .../android/client/entities/Device.html         |  402 ---
 .../android/client/entities/Entity.html         |  586 -----
 .../usergrid/android/client/entities/Group.html |  458 ----
 .../android/client/entities/Message.html        |  756 ------
 .../usergrid/android/client/entities/User.html  |  850 -------
 .../class-use/Activity.ActivityCollection.html  |  144 --
 .../class-use/Activity.ActivityObject.html      |  276 --
 .../entities/class-use/Activity.MediaLink.html  |  212 --
 .../client/entities/class-use/Activity.html     |  227 --
 .../client/entities/class-use/Device.html       |  210 --
 .../client/entities/class-use/Entity.html       |  635 -----
 .../client/entities/class-use/Group.html        |  209 --
 .../client/entities/class-use/Message.html      |  212 --
 .../android/client/entities/class-use/User.html |  344 ---
 .../android/client/entities/package-frame.html  |   48 -
 .../client/entities/package-summary.html        |  189 --
 .../android/client/entities/package-tree.html   |  155 --
 .../android/client/entities/package-use.html    |  293 ---
 .../usergrid/android/client/package-frame.html  |   54 -
 .../android/client/package-summary.html         |  185 --
 .../usergrid/android/client/package-tree.html   |  168 --
 .../usergrid/android/client/package-use.html    |  201 --
 .../client/response/AggregateCounter.html       |  333 ---
 .../client/response/AggregateCounterSet.html    |  511 ----
 .../android/client/response/ApiResponse.html    | 1576 ------------
 .../client/response/ClientCredentialsInfo.html  |  333 ---
 .../android/client/response/QueueInfo.html      |  309 ---
 .../response/class-use/AggregateCounter.html    |  223 --
 .../response/class-use/AggregateCounterSet.html |  196 --
 .../client/response/class-use/ApiResponse.html  |  434 ----
 .../class-use/ClientCredentialsInfo.html        |  196 --
 .../client/response/class-use/QueueInfo.html    |  220 --
 .../android/client/response/package-frame.html  |   40 -
 .../client/response/package-summary.html        |  173 --
 .../android/client/response/package-tree.html   |  153 --
 .../android/client/response/package-use.html    |  226 --
 .../android/client/utils/DeviceUuidFactory.html |  285 ---
 .../android/client/utils/JsonUtils.html         |  556 ----
 .../usergrid/android/client/utils/MapUtils.html |  261 --
 .../android/client/utils/ObjectUtils.html       |  252 --
 .../usergrid/android/client/utils/UrlUtils.html |  332 ---
 .../utils/class-use/DeviceUuidFactory.html      |  144 --
 .../client/utils/class-use/JsonUtils.html       |  144 --
 .../client/utils/class-use/MapUtils.html        |  144 --
 .../client/utils/class-use/ObjectUtils.html     |  144 --
 .../client/utils/class-use/UrlUtils.html        |  144 --
 .../android/client/utils/package-frame.html     |   40 -
 .../android/client/utils/package-summary.html   |  174 --
 .../android/client/utils/package-tree.html      |  153 --
 .../android/client/utils/package-use.html       |  144 --
 sdks/java/doc/overview-frame.html               |   73 +-
 sdks/java/doc/overview-summary.html             |  288 +--
 sdks/java/doc/overview-tree.html                |  331 +--
 sdks/java/doc/package-list                      |   10 +-
 sdks/java/doc/resources/background.gif          |  Bin 0 -> 2313 bytes
 sdks/java/doc/resources/inherit.gif             |  Bin 57 -> 0 bytes
 sdks/java/doc/resources/tab.gif                 |  Bin 0 -> 291 bytes
 sdks/java/doc/resources/titlebar.gif            |  Bin 0 -> 10701 bytes
 sdks/java/doc/resources/titlebar_end.gif        |  Bin 0 -> 849 bytes
 sdks/java/doc/serialized-form.html              |  134 +
 sdks/java/doc/stylesheet.css                    |  501 +++-
 sdks/java/pom.xml                               |   21 +-
 .../org/apache/usergrid/java/client/Client.java | 1276 ++++++++++
 .../usergrid/java/client/entities/Activity.java |  627 +++++
 .../usergrid/java/client/entities/Device.java   |   52 +
 .../usergrid/java/client/entities/Entity.java   |  175 ++
 .../usergrid/java/client/entities/Group.java    |   63 +
 .../usergrid/java/client/entities/Message.java  |  132 +
 .../usergrid/java/client/entities/User.java     |  142 ++
 .../java/client/exception/ClientException.java  |   40 +
 .../java/client/response/AggregateCounter.java  |   36 +
 .../client/response/AggregateCounterSet.java    |   95 +
 .../java/client/response/ApiResponse.java       |  405 +++
 .../client/response/ClientCredentialsInfo.java  |   42 +
 .../java/client/response/QueueInfo.java         |   28 +
 .../usergrid/java/client/utils/JsonUtils.java   |  166 ++
 .../usergrid/java/client/utils/MapUtils.java    |   23 +
 .../usergrid/java/client/utils/ObjectUtils.java |   20 +
 .../usergrid/java/client/utils/UrlUtils.java    |  108 +
 .../java/org/usergrid/java/client/Client.java   | 1276 ----------
 .../usergrid/java/client/entities/Activity.java |  627 -----
 .../usergrid/java/client/entities/Device.java   |   52 -
 .../usergrid/java/client/entities/Entity.java   |  175 --
 .../usergrid/java/client/entities/Group.java    |   63 -
 .../usergrid/java/client/entities/Message.java  |  132 -
 .../org/usergrid/java/client/entities/User.java |  142 --
 .../java/client/exception/ClientException.java  |   40 -
 .../java/client/response/AggregateCounter.java  |   36 -
 .../client/response/AggregateCounterSet.java    |   95 -
 .../java/client/response/ApiResponse.java       |  405 ---
 .../client/response/ClientCredentialsInfo.java  |   42 -
 .../java/client/response/QueueInfo.java         |   28 -
 .../usergrid/java/client/utils/JsonUtils.java   |  166 --
 .../usergrid/java/client/utils/MapUtils.java    |   23 -
 .../usergrid/java/client/utils/ObjectUtils.java |   20 -
 .../usergrid/java/client/utils/UrlUtils.java    |  108 -
 232 files changed, 26422 insertions(+), 35574 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/Client.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/Client.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/Client.java
new file mode 100644
index 0000000..b5b2337
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/Client.java
@@ -0,0 +1,590 @@
+package org.apache.usergrid.android.client;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import org.springframework.http.HttpMethod;
+import org.springframework.web.client.RestTemplate;
+import org.apache.usergrid.android.client.callbacks.ApiResponseCallback;
+import org.apache.usergrid.android.client.callbacks.ClientAsyncTask;
+import org.apache.usergrid.android.client.callbacks.DeviceRegistrationCallback;
+import org.apache.usergrid.android.client.callbacks.GroupsRetrievedCallback;
+import org.apache.usergrid.android.client.callbacks.QueryResultsCallback;
+import org.usergrid.java.client.entities.Device;
+import org.usergrid.java.client.entities.Entity;
+import org.usergrid.java.client.entities.Group;
+import org.usergrid.java.client.entities.User;
+import org.usergrid.java.client.response.ApiResponse;
+import org.apache.usergrid.android.client.utils.DeviceUuidFactory;
+
+import android.content.Context;
+import android.location.Location;
+
+/**
+ * The Client class for accessing the Usergrid API. Start by instantiating this
+ * class though the appropriate constructor.
+ * 
+ */
+public class Client extends org.usergrid.java.client.Client {
+
+	private static final String TAG = "UsergridClient";
+
+	public static boolean FORCE_PUBLIC_API = false;
+
+	// Public API
+	public static String PUBLIC_API_URL = "http://api.usergrid.com";
+
+	// Local API of standalone server
+	public static String LOCAL_STANDALONE_API_URL = "http://localhost:8080";
+
+	// Local API of Tomcat server in Eclipse
+	public static String LOCAL_TOMCAT_API_URL = "http://localhost:8080/ROOT";
+
+	// Local API
+	public static String LOCAL_API_URL = LOCAL_STANDALONE_API_URL;
+
+	
+	static RestTemplate restTemplate = new RestTemplate(true);
+
+	/**
+	 * Default constructor for instantiating a client.
+	 */
+	public Client() {
+		init();
+	}
+
+	/**
+	 * Instantiate client for a specific app
+	 * 
+	 * @param applicationId
+	 *            the application id or name
+	 */
+	public Client(String organizationId, String applicationId) {
+		super(organizationId, applicationId);
+	}
+
+
+	/**
+	 * Log the user in and get a valid access token. Executes asynchronously in
+	 * background and the callbacks are called in the UI thread.
+	 * 
+	 * @param email
+	 * @param password
+	 * @param callback
+	 */
+	public void authorizeAppUserAsync(final String email,
+			final String password, final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return authorizeAppUser(email, password);
+			}
+		}).execute();
+	}
+
+	
+
+	/**
+	 * Log the user in with their numeric pin-code and get a valid access token.
+	 * Executes asynchronously in background and the callbacks are called in the
+	 * UI thread.
+	 * 
+	 * @param email
+	 * @param pin
+	 * @param callback
+	 */
+	public void authorizeAppUserViaPinAsync(final String email,
+			final String pin, final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return authorizeAppUserViaPin(email, pin);
+			}
+		}).execute();
+	}
+
+
+	/**
+	 * Log the user in with their numeric pin-code and get a valid access token.
+	 * Executes asynchronously in background and the callbacks are called in the
+	 * UI thread.
+	 * 
+	 * @param email
+	 * @param pin
+	 * @param callback
+	 */
+	public void authorizeAppUserViaFacebookAsync(final String fb_access_token,
+			final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return authorizeAppUserViaFacebook(fb_access_token);
+			}
+		}).execute();
+	}
+
+	
+
+	/**
+	 * Log the app in with it's client id and client secret key. Not recommended
+	 * for production apps. Executes asynchronously in background and the
+	 * callbacks are called in the UI thread.
+	 * 
+	 * @param clientId
+	 * @param clientSecret
+	 * @param callback
+	 */
+	public void authorizeAppClientAsync(final String clientId,
+			final String clientSecret, final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+
+			@Override
+			public ApiResponse doTask() {
+				return authorizeAppClient(clientId, clientSecret);
+			}
+		}).execute();
+	}
+
+	
+	/**
+	 * Registers a device using the device's unique device ID. Executes
+	 * asynchronously in background and the callbacks are called in the UI
+	 * thread.
+	 * 
+	 * @param context
+	 * @param properties
+	 * @param callback
+	 */
+	public void registerDeviceAsync(final Context context,
+			final Map<String, Object> properties,
+			final DeviceRegistrationCallback callback) {
+		(new ClientAsyncTask<Device>(callback) {
+			@Override
+			public Device doTask() {
+			    UUID deviceId = new DeviceUuidFactory(context).getDeviceUuid();
+		        
+				return registerDevice(deviceId, properties);
+			}
+		}).execute();
+	}
+
+
+  /**
+   * Registers a device using the device's unique device ID. Executes
+   * asynchronously in background and the callbacks are called in the UI
+   * thread.
+   *
+   * @param context
+   * @param properties
+   * @param callback
+   */
+  public void registerDeviceForPushAsync(final Context context,
+                                         final String notifier,
+                                         final String token,
+                                         final Map<String, Object> properties,
+                                         final DeviceRegistrationCallback callback) {
+    (new ClientAsyncTask<Device>(callback) {
+      @Override
+      public Device doTask() {
+        UUID deviceId = new DeviceUuidFactory(context).getDeviceUuid();
+
+        return registerDeviceForPush(deviceId, notifier, token, properties);
+      }
+    }).execute();
+  }
+
+
+  /**
+	 * Create a new entity on the server. Executes asynchronously in background
+	 * and the callbacks are called in the UI thread.
+	 * 
+	 * @param entity
+	 * @param callback
+	 */
+	public void createEntityAsync(final Entity entity,
+			final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return createEntity(entity);
+			}
+		}).execute();
+	}
+
+	
+	/**
+	 * Create a new entity on the server from a set of properties. Properties
+	 * must include a "type" property. Executes asynchronously in background and
+	 * the callbacks are called in the UI thread.
+	 * 
+	 * @param properties
+	 * @param callback
+	 */
+	public void createEntityAsync(final Map<String, Object> properties,
+			final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return createEntity(properties);
+			}
+		}).execute();
+	}
+
+
+	/**
+	 * Creates a user. Executes asynchronously in background and the callbacks
+	 * are called in the UI thread.
+	 * 
+	 * @param username
+	 * @param name
+	 * @param email
+	 * @param password
+	 * @param callback
+	 */
+	public void createUserAsync(final String username, final String name,
+			final String email, final String password,
+			final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return createUser(username, name, email, password);
+			}
+		}).execute();
+	}
+
+
+
+	/**
+	 * Get the groups for the user. Executes asynchronously in background and
+	 * the callbacks are called in the UI thread.
+	 * 
+	 * @param userId
+	 * @param callback
+	 */
+	public void getGroupsForUserAsync(final String userId,
+			final GroupsRetrievedCallback callback) {
+		(new ClientAsyncTask<Map<String, Group>>(callback) {
+			@Override
+			public Map<String, Group> doTask() {
+				return getGroupsForUser(userId);
+			}
+		}).execute();
+	}
+
+	/**
+	 * Get a user's activity feed. Returned as a query to ease paging. Executes
+	 * asynchronously in background and the callbacks are called in the UI
+	 * thread.
+	 * 
+	 * 
+	 * @param userId
+	 * @param callback
+	 */
+	public void queryActivityFeedForUserAsync(final String userId, final QueryResultsCallback callback) {
+		(new ClientAsyncTask<Query>(callback) {
+			@Override
+			public Query doTask() {
+				return queryActivityFeedForUser(userId);
+			}
+		}).execute();
+	}
+
+	
+	/**
+	 * Creates and posts an activity to a user. Executes asynchronously in
+	 * background and the callbacks are called in the UI thread.
+	 * 
+	 * @param verb
+	 * @param title
+	 * @param content
+	 * @param category
+	 * @param user
+	 * @param object
+	 * @param objectType
+	 * @param objectName
+	 * @param objectContent
+	 * @param callback
+	 */
+	public void postUserActivityAsync(final String verb, final String title,
+			final String content, final String category, final User user,
+			final Entity object, final String objectType,
+			final String objectName, final String objectContent,
+			final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return postUserActivity(verb, title, content, category, user,
+						object, objectType, objectName, objectContent);
+			}
+		}).execute();
+	}
+
+	
+	/**
+	 * Creates and posts an activity to a group. Executes asynchronously in
+	 * background and the callbacks are called in the UI thread.
+	 * 
+	 * @param groupId
+	 * @param verb
+	 * @param title
+	 * @param content
+	 * @param category
+	 * @param user
+	 * @param object
+	 * @param objectType
+	 * @param objectName
+	 * @param objectContent
+	 * @param callback
+	 */
+	public void postGroupActivityAsync(final String groupId, final String verb, final String title,
+			final String content, final String category, final User user,
+			final Entity object, final String objectType,
+			final String objectName, final String objectContent,
+			final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return postGroupActivity(groupId, verb, title, content, category, user,
+						object, objectType, objectName, objectContent);
+			}
+		}).execute();
+	}
+
+
+	/**
+	 * Get a group's activity feed. Returned as a query to ease paging. Executes
+	 * asynchronously in background and the callbacks are called in the UI
+	 * thread.
+	 * 
+	 * 
+	 * @param userId
+	 * @param callback
+	 */
+	public void queryActivityFeedForGroupAsync(final String groupId,
+			final QueryResultsCallback callback) {
+		(new ClientAsyncTask<Query>(callback) {
+			@Override
+			public Query doTask() {
+				return queryActivityFeedForGroup(groupId);
+			}
+		}).execute();
+	}
+
+
+	/**
+	 * Perform a query request and return a query object. The Query object
+	 * provides a simple way of dealing with result sets that need to be
+	 * iterated or paged through. Executes asynchronously in background and the
+	 * callbacks are called in the UI thread.
+	 * 
+	 * @param callback
+	 * @param method
+	 * @param params
+	 * @param data
+	 * @param segments
+	 */
+	public void queryEntitiesRequestAsync(final QueryResultsCallback callback,
+			final HttpMethod method, final Map<String, Object> params,
+			final Object data, final String... segments) {
+		(new ClientAsyncTask<Query>(callback) {
+			@Override
+			public Query doTask() {
+				return queryEntitiesRequest(method, params, data, segments);
+			}
+		}).execute();
+	}
+
+
+	/**
+	 * Perform a query of the users collection. Executes asynchronously in
+	 * background and the callbacks are called in the UI thread.
+	 * 
+	 * @param callback
+	 */
+	public void queryUsersAsync(QueryResultsCallback callback) {
+		queryEntitiesRequestAsync(callback, HttpMethod.GET, null, null,
+				getApplicationId(), "users");
+	}
+
+	/**
+	 * Perform a query of the users collection using the provided query command.
+	 * For example: "name contains 'ed'". Executes asynchronously in background
+	 * and the callbacks are called in the UI thread.
+	 * 
+	 * @param ql
+	 * @param callback
+	 */
+	public void queryUsersAsync(String ql, QueryResultsCallback callback) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("ql", ql);
+		queryEntitiesRequestAsync(callback, HttpMethod.GET, params, null,
+				getApplicationId(), "users");
+	}
+
+	
+	/**
+	 * Queries the users for the specified group. Executes asynchronously in
+	 * background and the callbacks are called in the UI thread.
+	 * 
+	 * @param groupId
+	 * @param callback
+	 */
+	public void queryUsersForGroupAsync(String groupId,
+			QueryResultsCallback callback) {
+		queryEntitiesRequestAsync(callback, HttpMethod.GET, null, null,
+				getApplicationId(), "groups", groupId, "users");
+	}
+
+	/**
+	 * Adds a user to the specified groups. Executes asynchronously in
+	 * background and the callbacks are called in the UI thread.
+	 * 
+	 * @param userId
+	 * @param groupId
+	 * @param callback
+	 */
+	public void addUserToGroupAsync(final String userId, final String groupId,
+			final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return addUserToGroup(userId, groupId);
+			}
+		}).execute();
+	}
+
+
+	/**
+	 * Creates a group with the specified group path. Group paths can be slash
+	 * ("/") delimited like file paths for hierarchical group relationships.
+	 * Executes asynchronously in background and the callbacks are called in the
+	 * UI thread.
+	 * 
+	 * @param groupPath
+	 * @param callback
+	 */
+	public void createGroupAsync(String groupPath,
+			final ApiResponseCallback callback) {
+		createGroupAsync(groupPath, null);
+	}
+
+	
+
+	/**
+	 * Creates a group with the specified group path and group title. Group
+	 * paths can be slash ("/") deliminted like file paths for hierarchical
+	 * group relationships. Executes asynchronously in background and the
+	 * callbacks are called in the UI thread.
+	 * 
+	 * @param groupPath
+	 * @param groupTitle
+	 * @param callback
+	 */
+	public void createGroupAsync(final String groupPath,
+			final String groupTitle, final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return createGroup(groupPath, groupTitle);
+			}
+		}).execute();
+	}
+
+	
+	/**
+	 * Connect two entities together. Executes asynchronously in background and
+	 * the callbacks are called in the UI thread.
+	 * 
+	 * @param connectingEntityType
+	 * @param connectingEntityId
+	 * @param connectionType
+	 * @param connectedEntityId
+	 * @param callback
+	 */
+	public void connectEntitiesAsync(final String connectingEntityType,
+			final String connectingEntityId, final String connectionType,
+			final String connectedEntityId, final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return connectEntities(connectingEntityType,
+						connectingEntityId, connectionType, connectedEntityId);
+			}
+		}).execute();
+	}
+
+
+
+	/**
+	 * Disconnect two entities. Executes asynchronously in background and the
+	 * callbacks are called in the UI thread.
+	 * 
+	 * @param connectingEntityType
+	 * @param connectingEntityId
+	 * @param connectionType
+	 * @param connectedEntityId
+	 * @param callback
+	 */
+	public void disconnectEntitiesAsync(final String connectingEntityType,
+			final String connectingEntityId, final String connectionType,
+			final String connectedEntityId, final ApiResponseCallback callback) {
+		(new ClientAsyncTask<ApiResponse>(callback) {
+			@Override
+			public ApiResponse doTask() {
+				return connectEntities(connectingEntityType,
+						connectingEntityId, connectionType, connectedEntityId);
+			}
+		}).execute();
+	}
+
+
+
+	/**
+	 * Query the connected entities. Executes asynchronously in background and
+	 * the callbacks are called in the UI thread.
+	 * 
+	 * @param connectingEntityType
+	 * @param connectingEntityId
+	 * @param connectionType
+	 * @param ql
+	 * @param callback
+	 */
+	public void queryEntityConnectionsAsync(String connectingEntityType,
+			String connectingEntityId, String connectionType, String ql,
+			QueryResultsCallback callback) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("ql", ql);
+		queryEntitiesRequestAsync(callback, HttpMethod.GET, params, null,
+				getApplicationId(), connectingEntityType, connectingEntityId,
+				connectionType);
+	}
+
+
+	/**
+	 * Query the connected entities within distance of a specific point. .
+	 * Executes asynchronously in background and the callbacks are called in the
+	 * UI thread.
+	 * 
+	 * @param connectingEntityType
+	 * @param connectingEntityId
+	 * @param connectionType
+	 * @param distance
+	 * @param latitude
+	 * @param longitude
+	 * @param callback
+	 */
+	public void queryEntityConnectionsWithinLocationAsync(
+			String connectingEntityType, String connectingEntityId,
+			String connectionType, float distance, Location location,
+			String ql, QueryResultsCallback callback) {
+		Map<String, Object> params = new HashMap<String, Object>();
+		params.put("ql", makeLocationQL(distance, location.getLatitude(), location.getLongitude(), ql));
+		params.put("ql", ql);
+		queryEntitiesRequestAsync(callback, HttpMethod.GET, params, null,
+				getApplicationId(), connectingEntityType, connectingEntityId,
+				connectionType);
+	}
+
+	
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ApiResponseCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ApiResponseCallback.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ApiResponseCallback.java
new file mode 100644
index 0000000..59d58b6
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ApiResponseCallback.java
@@ -0,0 +1,10 @@
+package org.apache.usergrid.android.client.callbacks;
+
+import org.usergrid.java.client.response.ApiResponse;
+
+
+public interface ApiResponseCallback extends ClientCallback<ApiResponse> {
+
+	public void onResponse(ApiResponse response);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientAsyncTask.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientAsyncTask.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientAsyncTask.java
new file mode 100644
index 0000000..e4d4d82
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientAsyncTask.java
@@ -0,0 +1,38 @@
+package org.apache.usergrid.android.client.callbacks;
+
+import android.os.AsyncTask;
+
+public abstract class ClientAsyncTask<T> extends AsyncTask<Void, Exception, T> {
+
+	ClientCallback<T> callback;
+
+	public ClientAsyncTask(ClientCallback<T> callback) {
+		this.callback = callback;
+	}
+
+	@Override
+	protected T doInBackground(Void... v) {
+		try {
+			return doTask();
+		} catch (Exception e) {
+			this.publishProgress(e);
+		}
+		return null;
+	}
+
+	public abstract T doTask();
+
+	@Override
+	protected void onPostExecute(T response) {
+		if (callback != null) {
+			callback.onResponse(response);
+		}
+	}
+
+	@Override
+	protected void onProgressUpdate(Exception... e) {
+		if ((callback != null) && (e != null) && (e.length > 0)) {
+			callback.onException(e[0]);
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientCallback.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientCallback.java
new file mode 100644
index 0000000..559b3b9
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/ClientCallback.java
@@ -0,0 +1,9 @@
+package org.apache.usergrid.android.client.callbacks;
+
+public interface ClientCallback<T> {
+
+	public void onResponse(T response);
+
+	public void onException(Exception e);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/DeviceRegistrationCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/DeviceRegistrationCallback.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/DeviceRegistrationCallback.java
new file mode 100644
index 0000000..66ded57
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/DeviceRegistrationCallback.java
@@ -0,0 +1,9 @@
+package org.apache.usergrid.android.client.callbacks;
+
+import org.usergrid.java.client.entities.Device;
+
+public interface DeviceRegistrationCallback extends ClientCallback<Device> {
+
+	public void onDeviceRegistration(Device device);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/GroupsRetrievedCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/GroupsRetrievedCallback.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/GroupsRetrievedCallback.java
new file mode 100644
index 0000000..4558cf6
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/GroupsRetrievedCallback.java
@@ -0,0 +1,13 @@
+package org.apache.usergrid.android.client.callbacks;
+
+import java.util.Map;
+
+import org.usergrid.java.client.entities.Group;
+
+
+public interface GroupsRetrievedCallback extends
+		ClientCallback<Map<String, Group>> {
+
+	public void onGroupsRetrieved(Map<String, Group> groups);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/QueryResultsCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/QueryResultsCallback.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/QueryResultsCallback.java
new file mode 100644
index 0000000..13f325e
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/callbacks/QueryResultsCallback.java
@@ -0,0 +1,9 @@
+package org.apache.usergrid.android.client.callbacks;
+
+import org.usergrid.java.client.Client.Query;
+
+public interface QueryResultsCallback extends ClientCallback<Query> {
+
+	public void onQueryResults(Query query);
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/DeviceUuidFactory.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/DeviceUuidFactory.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/DeviceUuidFactory.java
new file mode 100644
index 0000000..1eec3c3
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/DeviceUuidFactory.java
@@ -0,0 +1,154 @@
+package org.apache.usergrid.android.client.utils;
+
+import static org.apache.usergrid.android.client.utils.ObjectUtils.isEmpty;
+
+import java.io.UnsupportedEncodingException;
+import java.util.UUID;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.net.wifi.WifiManager;
+import android.os.Build;
+import android.provider.Settings.Secure;
+import android.telephony.TelephonyManager;
+
+/**
+ * Tries to get the device ID as a UUID and fallsback to a generated UUID value
+ * if it doesn't work.
+ * 
+ * @see http 
+ *      ://stackoverflow.com/questions/2785485/is-there-a-unique-android-device
+ *      -id
+ * 
+ */
+public class DeviceUuidFactory {
+	protected static final String PREFS_FILE = "device_id.xml";
+	protected static final String PREFS_DEVICE_ID = "device_id";
+
+	protected static UUID uuid;
+
+	public DeviceUuidFactory(Context context) {
+
+		if (uuid == null) {
+			synchronized (DeviceUuidFactory.class) {
+				if (uuid == null) {
+					final SharedPreferences prefs = context
+							.getSharedPreferences(PREFS_FILE, 0);
+					final String id = prefs.getString(PREFS_DEVICE_ID, null);
+
+					if (id != null) {
+						// Use the ids previously computed and stored in the
+						// prefs file
+						uuid = UUID.fromString(id);
+
+					} else {
+
+						final String androidId = Secure
+								.getString(context.getContentResolver(),
+										Secure.ANDROID_ID);
+
+						// Use the Android ID unless it's broken, in which case
+						// fallback on deviceId,
+						// unless it's not available, then fallback on a random
+						// number which we store
+						// to a prefs file
+						try {
+							if (!"9774d56d682e549c".equals(androidId)) {
+								uuid = UUID.nameUUIDFromBytes(androidId
+										.getBytes("utf8"));
+							} else {
+								final String deviceId = ((TelephonyManager) context
+										.getSystemService(Context.TELEPHONY_SERVICE))
+										.getDeviceId();
+								uuid = deviceId != null ? UUID
+										.nameUUIDFromBytes(deviceId
+												.getBytes("utf8"))
+										: generateDeviceUuid(context);
+							}
+						} catch (UnsupportedEncodingException e) {
+							throw new RuntimeException(e);
+						}
+
+						// Write the value out to the prefs file
+						prefs.edit()
+								.putString(PREFS_DEVICE_ID, uuid.toString())
+								.commit();
+
+					}
+
+				}
+			}
+		}
+
+	}
+
+	private UUID generateDeviceUuid(Context context) {
+
+		// Get some of the hardware information
+		String buildParams = Build.BOARD + Build.BRAND + Build.CPU_ABI
+				+ Build.DEVICE + Build.DISPLAY + Build.FINGERPRINT + Build.HOST
+				+ Build.ID + Build.MANUFACTURER + Build.MODEL + Build.PRODUCT
+				+ Build.TAGS + Build.TYPE + Build.USER;
+
+		// Requires READ_PHONE_STATE
+		TelephonyManager tm = (TelephonyManager) context
+				.getSystemService(Context.TELEPHONY_SERVICE);
+
+		// gets the imei (GSM) or MEID/ESN (CDMA)
+		String imei = tm.getDeviceId();
+
+		// gets the android-assigned id
+		String androidId = Secure.getString(context.getContentResolver(),
+				Secure.ANDROID_ID);
+
+		// requires ACCESS_WIFI_STATE
+		WifiManager wm = (WifiManager) context
+				.getSystemService(Context.WIFI_SERVICE);
+
+		// gets the MAC address
+		String mac = wm.getConnectionInfo().getMacAddress();
+
+		// if we've got nothing, return a random UUID
+		if (isEmpty(imei) && isEmpty(androidId) && isEmpty(mac)) {
+			return UUID.randomUUID();
+		}
+
+		// concatenate the string
+		String fullHash = buildParams.toString() + imei + androidId + mac;
+
+		return UUID.nameUUIDFromBytes(fullHash.getBytes());
+	}
+
+	/**
+	 * Returns a unique UUID for the current android device. As with all UUIDs,
+	 * this unique ID is "very highly likely" to be unique across all Android
+	 * devices. Much more so than ANDROID_ID is.
+	 * 
+	 * The UUID is generated by using ANDROID_ID as the base key if appropriate,
+	 * falling back on TelephonyManager.getDeviceID() if ANDROID_ID is known to
+	 * be incorrect, and finally falling back on a random UUID that's persisted
+	 * to SharedPreferences if getDeviceID() does not return a usable value.
+	 * 
+	 * In some rare circumstances, this ID may change. In particular, if the
+	 * device is factory reset a new device ID may be generated. In addition, if
+	 * a user upgrades their phone from certain buggy implementations of Android
+	 * 2.2 to a newer, non-buggy version of Android, the device ID may change.
+	 * Or, if a user uninstalls your app on a device that has neither a proper
+	 * Android ID nor a Device ID, this ID may change on reinstallation.
+	 * 
+	 * Note that if the code falls back on using TelephonyManager.getDeviceId(),
+	 * the resulting ID will NOT change after a factory reset. Something to be
+	 * aware of.
+	 * 
+	 * Works around a bug in Android 2.2 for many devices when using ANDROID_ID
+	 * directly.
+	 * 
+	 * @see http://code.google.com/p/android/issues/detail?id=10603
+	 * 
+	 * @return a UUID that may be used to uniquely identify your device for most
+	 *         purposes.
+	 */
+	public UUID getDeviceUuid() {
+		return uuid;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/ObjectUtils.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/ObjectUtils.java b/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/ObjectUtils.java
new file mode 100644
index 0000000..964dd9d
--- /dev/null
+++ b/sdks/android/src/main/java/org/apache/usergrid/android/client/utils/ObjectUtils.java
@@ -0,0 +1,20 @@
+package org.apache.usergrid.android.client.utils;
+
+import java.util.Map;
+
+public class ObjectUtils {
+
+	public static boolean isEmpty(Object s) {
+		if (s == null) {
+			return true;
+		}
+		if ((s instanceof String) && (((String) s).trim().length() == 0)) {
+			return true;
+		}
+		if (s instanceof Map) {
+			return ((Map<?, ?>) s).isEmpty();
+		}
+		return false;
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/Client.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/Client.java b/sdks/android/src/main/java/org/usergrid/android/client/Client.java
deleted file mode 100644
index 3effe73..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/Client.java
+++ /dev/null
@@ -1,590 +0,0 @@
-package org.usergrid.android.client;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-import org.springframework.http.HttpMethod;
-import org.springframework.web.client.RestTemplate;
-import org.usergrid.android.client.callbacks.ApiResponseCallback;
-import org.usergrid.android.client.callbacks.ClientAsyncTask;
-import org.usergrid.android.client.callbacks.DeviceRegistrationCallback;
-import org.usergrid.android.client.callbacks.GroupsRetrievedCallback;
-import org.usergrid.android.client.callbacks.QueryResultsCallback;
-import org.usergrid.java.client.entities.Device;
-import org.usergrid.java.client.entities.Entity;
-import org.usergrid.java.client.entities.Group;
-import org.usergrid.java.client.entities.User;
-import org.usergrid.java.client.response.ApiResponse;
-import org.usergrid.android.client.utils.DeviceUuidFactory;
-
-import android.content.Context;
-import android.location.Location;
-
-/**
- * The Client class for accessing the Usergrid API. Start by instantiating this
- * class though the appropriate constructor.
- * 
- */
-public class Client extends org.usergrid.java.client.Client {
-
-	private static final String TAG = "UsergridClient";
-
-	public static boolean FORCE_PUBLIC_API = false;
-
-	// Public API
-	public static String PUBLIC_API_URL = "http://api.usergrid.com";
-
-	// Local API of standalone server
-	public static String LOCAL_STANDALONE_API_URL = "http://localhost:8080";
-
-	// Local API of Tomcat server in Eclipse
-	public static String LOCAL_TOMCAT_API_URL = "http://localhost:8080/ROOT";
-
-	// Local API
-	public static String LOCAL_API_URL = LOCAL_STANDALONE_API_URL;
-
-	
-	static RestTemplate restTemplate = new RestTemplate(true);
-
-	/**
-	 * Default constructor for instantiating a client.
-	 */
-	public Client() {
-		init();
-	}
-
-	/**
-	 * Instantiate client for a specific app
-	 * 
-	 * @param applicationId
-	 *            the application id or name
-	 */
-	public Client(String organizationId, String applicationId) {
-		super(organizationId, applicationId);
-	}
-
-
-	/**
-	 * Log the user in and get a valid access token. Executes asynchronously in
-	 * background and the callbacks are called in the UI thread.
-	 * 
-	 * @param email
-	 * @param password
-	 * @param callback
-	 */
-	public void authorizeAppUserAsync(final String email,
-			final String password, final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return authorizeAppUser(email, password);
-			}
-		}).execute();
-	}
-
-	
-
-	/**
-	 * Log the user in with their numeric pin-code and get a valid access token.
-	 * Executes asynchronously in background and the callbacks are called in the
-	 * UI thread.
-	 * 
-	 * @param email
-	 * @param pin
-	 * @param callback
-	 */
-	public void authorizeAppUserViaPinAsync(final String email,
-			final String pin, final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return authorizeAppUserViaPin(email, pin);
-			}
-		}).execute();
-	}
-
-
-	/**
-	 * Log the user in with their numeric pin-code and get a valid access token.
-	 * Executes asynchronously in background and the callbacks are called in the
-	 * UI thread.
-	 * 
-	 * @param email
-	 * @param pin
-	 * @param callback
-	 */
-	public void authorizeAppUserViaFacebookAsync(final String fb_access_token,
-			final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return authorizeAppUserViaFacebook(fb_access_token);
-			}
-		}).execute();
-	}
-
-	
-
-	/**
-	 * Log the app in with it's client id and client secret key. Not recommended
-	 * for production apps. Executes asynchronously in background and the
-	 * callbacks are called in the UI thread.
-	 * 
-	 * @param clientId
-	 * @param clientSecret
-	 * @param callback
-	 */
-	public void authorizeAppClientAsync(final String clientId,
-			final String clientSecret, final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-
-			@Override
-			public ApiResponse doTask() {
-				return authorizeAppClient(clientId, clientSecret);
-			}
-		}).execute();
-	}
-
-	
-	/**
-	 * Registers a device using the device's unique device ID. Executes
-	 * asynchronously in background and the callbacks are called in the UI
-	 * thread.
-	 * 
-	 * @param context
-	 * @param properties
-	 * @param callback
-	 */
-	public void registerDeviceAsync(final Context context,
-			final Map<String, Object> properties,
-			final DeviceRegistrationCallback callback) {
-		(new ClientAsyncTask<Device>(callback) {
-			@Override
-			public Device doTask() {
-			    UUID deviceId = new DeviceUuidFactory(context).getDeviceUuid();
-		        
-				return registerDevice(deviceId, properties);
-			}
-		}).execute();
-	}
-
-
-  /**
-   * Registers a device using the device's unique device ID. Executes
-   * asynchronously in background and the callbacks are called in the UI
-   * thread.
-   *
-   * @param context
-   * @param properties
-   * @param callback
-   */
-  public void registerDeviceForPushAsync(final Context context,
-                                         final String notifier,
-                                         final String token,
-                                         final Map<String, Object> properties,
-                                         final DeviceRegistrationCallback callback) {
-    (new ClientAsyncTask<Device>(callback) {
-      @Override
-      public Device doTask() {
-        UUID deviceId = new DeviceUuidFactory(context).getDeviceUuid();
-
-        return registerDeviceForPush(deviceId, notifier, token, properties);
-      }
-    }).execute();
-  }
-
-
-  /**
-	 * Create a new entity on the server. Executes asynchronously in background
-	 * and the callbacks are called in the UI thread.
-	 * 
-	 * @param entity
-	 * @param callback
-	 */
-	public void createEntityAsync(final Entity entity,
-			final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return createEntity(entity);
-			}
-		}).execute();
-	}
-
-	
-	/**
-	 * Create a new entity on the server from a set of properties. Properties
-	 * must include a "type" property. Executes asynchronously in background and
-	 * the callbacks are called in the UI thread.
-	 * 
-	 * @param properties
-	 * @param callback
-	 */
-	public void createEntityAsync(final Map<String, Object> properties,
-			final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return createEntity(properties);
-			}
-		}).execute();
-	}
-
-
-	/**
-	 * Creates a user. Executes asynchronously in background and the callbacks
-	 * are called in the UI thread.
-	 * 
-	 * @param username
-	 * @param name
-	 * @param email
-	 * @param password
-	 * @param callback
-	 */
-	public void createUserAsync(final String username, final String name,
-			final String email, final String password,
-			final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return createUser(username, name, email, password);
-			}
-		}).execute();
-	}
-
-
-
-	/**
-	 * Get the groups for the user. Executes asynchronously in background and
-	 * the callbacks are called in the UI thread.
-	 * 
-	 * @param userId
-	 * @param callback
-	 */
-	public void getGroupsForUserAsync(final String userId,
-			final GroupsRetrievedCallback callback) {
-		(new ClientAsyncTask<Map<String, Group>>(callback) {
-			@Override
-			public Map<String, Group> doTask() {
-				return getGroupsForUser(userId);
-			}
-		}).execute();
-	}
-
-	/**
-	 * Get a user's activity feed. Returned as a query to ease paging. Executes
-	 * asynchronously in background and the callbacks are called in the UI
-	 * thread.
-	 * 
-	 * 
-	 * @param userId
-	 * @param callback
-	 */
-	public void queryActivityFeedForUserAsync(final String userId, final QueryResultsCallback callback) {
-		(new ClientAsyncTask<Query>(callback) {
-			@Override
-			public Query doTask() {
-				return queryActivityFeedForUser(userId);
-			}
-		}).execute();
-	}
-
-	
-	/**
-	 * Creates and posts an activity to a user. Executes asynchronously in
-	 * background and the callbacks are called in the UI thread.
-	 * 
-	 * @param verb
-	 * @param title
-	 * @param content
-	 * @param category
-	 * @param user
-	 * @param object
-	 * @param objectType
-	 * @param objectName
-	 * @param objectContent
-	 * @param callback
-	 */
-	public void postUserActivityAsync(final String verb, final String title,
-			final String content, final String category, final User user,
-			final Entity object, final String objectType,
-			final String objectName, final String objectContent,
-			final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return postUserActivity(verb, title, content, category, user,
-						object, objectType, objectName, objectContent);
-			}
-		}).execute();
-	}
-
-	
-	/**
-	 * Creates and posts an activity to a group. Executes asynchronously in
-	 * background and the callbacks are called in the UI thread.
-	 * 
-	 * @param groupId
-	 * @param verb
-	 * @param title
-	 * @param content
-	 * @param category
-	 * @param user
-	 * @param object
-	 * @param objectType
-	 * @param objectName
-	 * @param objectContent
-	 * @param callback
-	 */
-	public void postGroupActivityAsync(final String groupId, final String verb, final String title,
-			final String content, final String category, final User user,
-			final Entity object, final String objectType,
-			final String objectName, final String objectContent,
-			final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return postGroupActivity(groupId, verb, title, content, category, user,
-						object, objectType, objectName, objectContent);
-			}
-		}).execute();
-	}
-
-
-	/**
-	 * Get a group's activity feed. Returned as a query to ease paging. Executes
-	 * asynchronously in background and the callbacks are called in the UI
-	 * thread.
-	 * 
-	 * 
-	 * @param userId
-	 * @param callback
-	 */
-	public void queryActivityFeedForGroupAsync(final String groupId,
-			final QueryResultsCallback callback) {
-		(new ClientAsyncTask<Query>(callback) {
-			@Override
-			public Query doTask() {
-				return queryActivityFeedForGroup(groupId);
-			}
-		}).execute();
-	}
-
-
-	/**
-	 * Perform a query request and return a query object. The Query object
-	 * provides a simple way of dealing with result sets that need to be
-	 * iterated or paged through. Executes asynchronously in background and the
-	 * callbacks are called in the UI thread.
-	 * 
-	 * @param callback
-	 * @param method
-	 * @param params
-	 * @param data
-	 * @param segments
-	 */
-	public void queryEntitiesRequestAsync(final QueryResultsCallback callback,
-			final HttpMethod method, final Map<String, Object> params,
-			final Object data, final String... segments) {
-		(new ClientAsyncTask<Query>(callback) {
-			@Override
-			public Query doTask() {
-				return queryEntitiesRequest(method, params, data, segments);
-			}
-		}).execute();
-	}
-
-
-	/**
-	 * Perform a query of the users collection. Executes asynchronously in
-	 * background and the callbacks are called in the UI thread.
-	 * 
-	 * @param callback
-	 */
-	public void queryUsersAsync(QueryResultsCallback callback) {
-		queryEntitiesRequestAsync(callback, HttpMethod.GET, null, null,
-				getApplicationId(), "users");
-	}
-
-	/**
-	 * Perform a query of the users collection using the provided query command.
-	 * For example: "name contains 'ed'". Executes asynchronously in background
-	 * and the callbacks are called in the UI thread.
-	 * 
-	 * @param ql
-	 * @param callback
-	 */
-	public void queryUsersAsync(String ql, QueryResultsCallback callback) {
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("ql", ql);
-		queryEntitiesRequestAsync(callback, HttpMethod.GET, params, null,
-				getApplicationId(), "users");
-	}
-
-	
-	/**
-	 * Queries the users for the specified group. Executes asynchronously in
-	 * background and the callbacks are called in the UI thread.
-	 * 
-	 * @param groupId
-	 * @param callback
-	 */
-	public void queryUsersForGroupAsync(String groupId,
-			QueryResultsCallback callback) {
-		queryEntitiesRequestAsync(callback, HttpMethod.GET, null, null,
-				getApplicationId(), "groups", groupId, "users");
-	}
-
-	/**
-	 * Adds a user to the specified groups. Executes asynchronously in
-	 * background and the callbacks are called in the UI thread.
-	 * 
-	 * @param userId
-	 * @param groupId
-	 * @param callback
-	 */
-	public void addUserToGroupAsync(final String userId, final String groupId,
-			final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return addUserToGroup(userId, groupId);
-			}
-		}).execute();
-	}
-
-
-	/**
-	 * Creates a group with the specified group path. Group paths can be slash
-	 * ("/") delimited like file paths for hierarchical group relationships.
-	 * Executes asynchronously in background and the callbacks are called in the
-	 * UI thread.
-	 * 
-	 * @param groupPath
-	 * @param callback
-	 */
-	public void createGroupAsync(String groupPath,
-			final ApiResponseCallback callback) {
-		createGroupAsync(groupPath, null);
-	}
-
-	
-
-	/**
-	 * Creates a group with the specified group path and group title. Group
-	 * paths can be slash ("/") deliminted like file paths for hierarchical
-	 * group relationships. Executes asynchronously in background and the
-	 * callbacks are called in the UI thread.
-	 * 
-	 * @param groupPath
-	 * @param groupTitle
-	 * @param callback
-	 */
-	public void createGroupAsync(final String groupPath,
-			final String groupTitle, final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return createGroup(groupPath, groupTitle);
-			}
-		}).execute();
-	}
-
-	
-	/**
-	 * Connect two entities together. Executes asynchronously in background and
-	 * the callbacks are called in the UI thread.
-	 * 
-	 * @param connectingEntityType
-	 * @param connectingEntityId
-	 * @param connectionType
-	 * @param connectedEntityId
-	 * @param callback
-	 */
-	public void connectEntitiesAsync(final String connectingEntityType,
-			final String connectingEntityId, final String connectionType,
-			final String connectedEntityId, final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return connectEntities(connectingEntityType,
-						connectingEntityId, connectionType, connectedEntityId);
-			}
-		}).execute();
-	}
-
-
-
-	/**
-	 * Disconnect two entities. Executes asynchronously in background and the
-	 * callbacks are called in the UI thread.
-	 * 
-	 * @param connectingEntityType
-	 * @param connectingEntityId
-	 * @param connectionType
-	 * @param connectedEntityId
-	 * @param callback
-	 */
-	public void disconnectEntitiesAsync(final String connectingEntityType,
-			final String connectingEntityId, final String connectionType,
-			final String connectedEntityId, final ApiResponseCallback callback) {
-		(new ClientAsyncTask<ApiResponse>(callback) {
-			@Override
-			public ApiResponse doTask() {
-				return connectEntities(connectingEntityType,
-						connectingEntityId, connectionType, connectedEntityId);
-			}
-		}).execute();
-	}
-
-
-
-	/**
-	 * Query the connected entities. Executes asynchronously in background and
-	 * the callbacks are called in the UI thread.
-	 * 
-	 * @param connectingEntityType
-	 * @param connectingEntityId
-	 * @param connectionType
-	 * @param ql
-	 * @param callback
-	 */
-	public void queryEntityConnectionsAsync(String connectingEntityType,
-			String connectingEntityId, String connectionType, String ql,
-			QueryResultsCallback callback) {
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("ql", ql);
-		queryEntitiesRequestAsync(callback, HttpMethod.GET, params, null,
-				getApplicationId(), connectingEntityType, connectingEntityId,
-				connectionType);
-	}
-
-
-	/**
-	 * Query the connected entities within distance of a specific point. .
-	 * Executes asynchronously in background and the callbacks are called in the
-	 * UI thread.
-	 * 
-	 * @param connectingEntityType
-	 * @param connectingEntityId
-	 * @param connectionType
-	 * @param distance
-	 * @param latitude
-	 * @param longitude
-	 * @param callback
-	 */
-	public void queryEntityConnectionsWithinLocationAsync(
-			String connectingEntityType, String connectingEntityId,
-			String connectionType, float distance, Location location,
-			String ql, QueryResultsCallback callback) {
-		Map<String, Object> params = new HashMap<String, Object>();
-		params.put("ql", makeLocationQL(distance, location.getLatitude(), location.getLongitude(), ql));
-		params.put("ql", ql);
-		queryEntitiesRequestAsync(callback, HttpMethod.GET, params, null,
-				getApplicationId(), connectingEntityType, connectingEntityId,
-				connectionType);
-	}
-
-	
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ApiResponseCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ApiResponseCallback.java b/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ApiResponseCallback.java
deleted file mode 100644
index 6da5040..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ApiResponseCallback.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.usergrid.android.client.callbacks;
-
-import org.usergrid.java.client.response.ApiResponse;
-
-
-public interface ApiResponseCallback extends ClientCallback<ApiResponse> {
-
-	public void onResponse(ApiResponse response);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientAsyncTask.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientAsyncTask.java b/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientAsyncTask.java
deleted file mode 100644
index da2dcaa..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientAsyncTask.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.usergrid.android.client.callbacks;
-
-import android.os.AsyncTask;
-
-public abstract class ClientAsyncTask<T> extends AsyncTask<Void, Exception, T> {
-
-	ClientCallback<T> callback;
-
-	public ClientAsyncTask(ClientCallback<T> callback) {
-		this.callback = callback;
-	}
-
-	@Override
-	protected T doInBackground(Void... v) {
-		try {
-			return doTask();
-		} catch (Exception e) {
-			this.publishProgress(e);
-		}
-		return null;
-	}
-
-	public abstract T doTask();
-
-	@Override
-	protected void onPostExecute(T response) {
-		if (callback != null) {
-			callback.onResponse(response);
-		}
-	}
-
-	@Override
-	protected void onProgressUpdate(Exception... e) {
-		if ((callback != null) && (e != null) && (e.length > 0)) {
-			callback.onException(e[0]);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientCallback.java b/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientCallback.java
deleted file mode 100644
index d84d17b..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/ClientCallback.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.usergrid.android.client.callbacks;
-
-public interface ClientCallback<T> {
-
-	public void onResponse(T response);
-
-	public void onException(Exception e);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/callbacks/DeviceRegistrationCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/DeviceRegistrationCallback.java b/sdks/android/src/main/java/org/usergrid/android/client/callbacks/DeviceRegistrationCallback.java
deleted file mode 100644
index 2ed0ce8..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/DeviceRegistrationCallback.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.usergrid.android.client.callbacks;
-
-import org.usergrid.java.client.entities.Device;
-
-public interface DeviceRegistrationCallback extends ClientCallback<Device> {
-
-	public void onDeviceRegistration(Device device);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/callbacks/GroupsRetrievedCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/GroupsRetrievedCallback.java b/sdks/android/src/main/java/org/usergrid/android/client/callbacks/GroupsRetrievedCallback.java
deleted file mode 100644
index 4586f60..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/GroupsRetrievedCallback.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.usergrid.android.client.callbacks;
-
-import java.util.Map;
-
-import org.usergrid.java.client.entities.Group;
-
-
-public interface GroupsRetrievedCallback extends
-		ClientCallback<Map<String, Group>> {
-
-	public void onGroupsRetrieved(Map<String, Group> groups);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/callbacks/QueryResultsCallback.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/QueryResultsCallback.java b/sdks/android/src/main/java/org/usergrid/android/client/callbacks/QueryResultsCallback.java
deleted file mode 100644
index 9aac648..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/callbacks/QueryResultsCallback.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.usergrid.android.client.callbacks;
-
-import org.usergrid.java.client.Client.Query;
-
-public interface QueryResultsCallback extends ClientCallback<Query> {
-
-	public void onQueryResults(Query query);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/utils/DeviceUuidFactory.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/utils/DeviceUuidFactory.java b/sdks/android/src/main/java/org/usergrid/android/client/utils/DeviceUuidFactory.java
deleted file mode 100644
index d3ac84a..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/utils/DeviceUuidFactory.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package org.usergrid.android.client.utils;
-
-import static org.usergrid.android.client.utils.ObjectUtils.isEmpty;
-
-import java.io.UnsupportedEncodingException;
-import java.util.UUID;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.net.wifi.WifiManager;
-import android.os.Build;
-import android.provider.Settings.Secure;
-import android.telephony.TelephonyManager;
-
-/**
- * Tries to get the device ID as a UUID and fallsback to a generated UUID value
- * if it doesn't work.
- * 
- * @see http 
- *      ://stackoverflow.com/questions/2785485/is-there-a-unique-android-device
- *      -id
- * 
- */
-public class DeviceUuidFactory {
-	protected static final String PREFS_FILE = "device_id.xml";
-	protected static final String PREFS_DEVICE_ID = "device_id";
-
-	protected static UUID uuid;
-
-	public DeviceUuidFactory(Context context) {
-
-		if (uuid == null) {
-			synchronized (DeviceUuidFactory.class) {
-				if (uuid == null) {
-					final SharedPreferences prefs = context
-							.getSharedPreferences(PREFS_FILE, 0);
-					final String id = prefs.getString(PREFS_DEVICE_ID, null);
-
-					if (id != null) {
-						// Use the ids previously computed and stored in the
-						// prefs file
-						uuid = UUID.fromString(id);
-
-					} else {
-
-						final String androidId = Secure
-								.getString(context.getContentResolver(),
-										Secure.ANDROID_ID);
-
-						// Use the Android ID unless it's broken, in which case
-						// fallback on deviceId,
-						// unless it's not available, then fallback on a random
-						// number which we store
-						// to a prefs file
-						try {
-							if (!"9774d56d682e549c".equals(androidId)) {
-								uuid = UUID.nameUUIDFromBytes(androidId
-										.getBytes("utf8"));
-							} else {
-								final String deviceId = ((TelephonyManager) context
-										.getSystemService(Context.TELEPHONY_SERVICE))
-										.getDeviceId();
-								uuid = deviceId != null ? UUID
-										.nameUUIDFromBytes(deviceId
-												.getBytes("utf8"))
-										: generateDeviceUuid(context);
-							}
-						} catch (UnsupportedEncodingException e) {
-							throw new RuntimeException(e);
-						}
-
-						// Write the value out to the prefs file
-						prefs.edit()
-								.putString(PREFS_DEVICE_ID, uuid.toString())
-								.commit();
-
-					}
-
-				}
-			}
-		}
-
-	}
-
-	private UUID generateDeviceUuid(Context context) {
-
-		// Get some of the hardware information
-		String buildParams = Build.BOARD + Build.BRAND + Build.CPU_ABI
-				+ Build.DEVICE + Build.DISPLAY + Build.FINGERPRINT + Build.HOST
-				+ Build.ID + Build.MANUFACTURER + Build.MODEL + Build.PRODUCT
-				+ Build.TAGS + Build.TYPE + Build.USER;
-
-		// Requires READ_PHONE_STATE
-		TelephonyManager tm = (TelephonyManager) context
-				.getSystemService(Context.TELEPHONY_SERVICE);
-
-		// gets the imei (GSM) or MEID/ESN (CDMA)
-		String imei = tm.getDeviceId();
-
-		// gets the android-assigned id
-		String androidId = Secure.getString(context.getContentResolver(),
-				Secure.ANDROID_ID);
-
-		// requires ACCESS_WIFI_STATE
-		WifiManager wm = (WifiManager) context
-				.getSystemService(Context.WIFI_SERVICE);
-
-		// gets the MAC address
-		String mac = wm.getConnectionInfo().getMacAddress();
-
-		// if we've got nothing, return a random UUID
-		if (isEmpty(imei) && isEmpty(androidId) && isEmpty(mac)) {
-			return UUID.randomUUID();
-		}
-
-		// concatenate the string
-		String fullHash = buildParams.toString() + imei + androidId + mac;
-
-		return UUID.nameUUIDFromBytes(fullHash.getBytes());
-	}
-
-	/**
-	 * Returns a unique UUID for the current android device. As with all UUIDs,
-	 * this unique ID is "very highly likely" to be unique across all Android
-	 * devices. Much more so than ANDROID_ID is.
-	 * 
-	 * The UUID is generated by using ANDROID_ID as the base key if appropriate,
-	 * falling back on TelephonyManager.getDeviceID() if ANDROID_ID is known to
-	 * be incorrect, and finally falling back on a random UUID that's persisted
-	 * to SharedPreferences if getDeviceID() does not return a usable value.
-	 * 
-	 * In some rare circumstances, this ID may change. In particular, if the
-	 * device is factory reset a new device ID may be generated. In addition, if
-	 * a user upgrades their phone from certain buggy implementations of Android
-	 * 2.2 to a newer, non-buggy version of Android, the device ID may change.
-	 * Or, if a user uninstalls your app on a device that has neither a proper
-	 * Android ID nor a Device ID, this ID may change on reinstallation.
-	 * 
-	 * Note that if the code falls back on using TelephonyManager.getDeviceId(),
-	 * the resulting ID will NOT change after a factory reset. Something to be
-	 * aware of.
-	 * 
-	 * Works around a bug in Android 2.2 for many devices when using ANDROID_ID
-	 * directly.
-	 * 
-	 * @see http://code.google.com/p/android/issues/detail?id=10603
-	 * 
-	 * @return a UUID that may be used to uniquely identify your device for most
-	 *         purposes.
-	 */
-	public UUID getDeviceUuid() {
-		return uuid;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/android/src/main/java/org/usergrid/android/client/utils/ObjectUtils.java
----------------------------------------------------------------------
diff --git a/sdks/android/src/main/java/org/usergrid/android/client/utils/ObjectUtils.java b/sdks/android/src/main/java/org/usergrid/android/client/utils/ObjectUtils.java
deleted file mode 100644
index a9d5a16..0000000
--- a/sdks/android/src/main/java/org/usergrid/android/client/utils/ObjectUtils.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.usergrid.android.client.utils;
-
-import java.util.Map;
-
-public class ObjectUtils {
-
-	public static boolean isEmpty(Object s) {
-		if (s == null) {
-			return true;
-		}
-		if ((s instanceof String) && (((String) s).trim().length() == 0)) {
-			return true;
-		}
-		if (s instanceof Map) {
-			return ((Map<?, ?>) s).isEmpty();
-		}
-		return false;
-	}
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c984364d/sdks/java/doc/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/sdks/java/doc/allclasses-frame.html b/sdks/java/doc/allclasses-frame.html
index 904fee4..27b9ce8 100644
--- a/sdks/java/doc/allclasses-frame.html
+++ b/sdks/java/doc/allclasses-frame.html
@@ -1,85 +1,40 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_29) on Fri Mar 09 16:00:54 PST 2012 -->
-<TITLE>
-All Classes
-</TITLE>
-
-<META NAME="date" CONTENT="2012-03-09">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B>All Classes</B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/usergrid/android/client/entities/Activity.html" title="class in org.usergrid.android.client.entities" target="classFrame">Activity</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/Activity.ActivityCollection.html" title="class in org.usergrid.android.client.entities" target="classFrame">Activity.ActivityCollection</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/Activity.ActivityObject.html" title="class in org.usergrid.android.client.entities" target="classFrame">Activity.ActivityObject</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/Activity.MediaLink.html" title="class in org.usergrid.android.client.entities" target="classFrame">Activity.MediaLink</A>
-<BR>
-<A HREF="org/usergrid/android/client/response/AggregateCounter.html" title="class in org.usergrid.android.client.response" target="classFrame">AggregateCounter</A>
-<BR>
-<A HREF="org/usergrid/android/client/response/AggregateCounterSet.html" title="class in org.usergrid.android.client.response" target="classFrame">AggregateCounterSet</A>
-<BR>
-<A HREF="org/usergrid/android/client/response/ApiResponse.html" title="class in org.usergrid.android.client.response" target="classFrame">ApiResponse</A>
-<BR>
-<A HREF="org/usergrid/android/client/callbacks/ApiResponseCallback.html" title="interface in org.usergrid.android.client.callbacks" target="classFrame"><I>ApiResponseCallback</I></A>
-<BR>
-<A HREF="org/usergrid/android/client/Client.html" title="class in org.usergrid.android.client" target="classFrame">Client</A>
-<BR>
-<A HREF="org/usergrid/android/client/Client.Query.html" title="interface in org.usergrid.android.client" target="classFrame"><I>Client.Query</I></A>
-<BR>
-<A HREF="org/usergrid/android/client/Client.QueuePosition.html" title="enum in org.usergrid.android.client" target="classFrame">Client.QueuePosition</A>
-<BR>
-<A HREF="org/usergrid/android/client/callbacks/ClientAsyncTask.html" title="class in org.usergrid.android.client.callbacks" target="classFrame">ClientAsyncTask</A>
-<BR>
-<A HREF="org/usergrid/android/client/callbacks/ClientCallback.html" title="interface in org.usergrid.android.client.callbacks" target="classFrame"><I>ClientCallback</I></A>
-<BR>
-<A HREF="org/usergrid/android/client/response/ClientCredentialsInfo.html" title="class in org.usergrid.android.client.response" target="classFrame">ClientCredentialsInfo</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/Device.html" title="class in org.usergrid.android.client.entities" target="classFrame">Device</A>
-<BR>
-<A HREF="org/usergrid/android/client/callbacks/DeviceRegistrationCallback.html" title="interface in org.usergrid.android.client.callbacks" target="classFrame"><I>DeviceRegistrationCallback</I></A>
-<BR>
-<A HREF="org/usergrid/android/client/utils/DeviceUuidFactory.html" title="class in org.usergrid.android.client.utils" target="classFrame">DeviceUuidFactory</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/Entity.html" title="class in org.usergrid.android.client.entities" target="classFrame">Entity</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/Group.html" title="class in org.usergrid.android.client.entities" target="classFrame">Group</A>
-<BR>
-<A HREF="org/usergrid/android/client/callbacks/GroupsRetrievedCallback.html" title="interface in org.usergrid.android.client.callbacks" target="classFrame"><I>GroupsRetrievedCallback</I></A>
-<BR>
-<A HREF="org/usergrid/android/client/utils/JsonUtils.html" title="class in org.usergrid.android.client.utils" target="classFrame">JsonUtils</A>
-<BR>
-<A HREF="org/usergrid/android/client/utils/MapUtils.html" title="class in org.usergrid.android.client.utils" target="classFrame">MapUtils</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/Message.html" title="class in org.usergrid.android.client.entities" target="classFrame">Message</A>
-<BR>
-<A HREF="org/usergrid/android/client/utils/ObjectUtils.html" title="class in org.usergrid.android.client.utils" target="classFrame">ObjectUtils</A>
-<BR>
-<A HREF="org/usergrid/android/client/callbacks/QueryResultsCallback.html" title="interface in org.usergrid.android.client.callbacks" target="classFrame"><I>QueryResultsCallback</I></A>
-<BR>
-<A HREF="org/usergrid/android/client/response/QueueInfo.html" title="class in org.usergrid.android.client.response" target="classFrame">QueueInfo</A>
-<BR>
-<A HREF="org/usergrid/android/client/utils/UrlUtils.html" title="class in org.usergrid.android.client.utils" target="classFrame">UrlUtils</A>
-<BR>
-<A HREF="org/usergrid/android/client/entities/User.html" title="class in org.usergrid.android.client.entities" target="classFrame">User</A>
-<BR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (version 1.7.0_45) on Fri Feb 07 09:14:42 EST 2014 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>All Classes (usergrid-java-client 0.0.9-SNAPSHOT API)</title>
+<meta name="date" content="2014-02-07">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<h1 class="bar">All Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/usergrid/java/client/entities/Activity.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Activity</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/Activity.ActivityCollection.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Activity.ActivityCollection</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/Activity.ActivityObject.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Activity.ActivityObject</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/Activity.MediaLink.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Activity.MediaLink</a></li>
+<li><a href="org/apache/usergrid/java/client/response/AggregateCounter.html" title="class in org.apache.usergrid.java.client.response" target="classFrame">AggregateCounter</a></li>
+<li><a href="org/apache/usergrid/java/client/response/AggregateCounterSet.html" title="class in org.apache.usergrid.java.client.response" target="classFrame">AggregateCounterSet</a></li>
+<li><a href="org/apache/usergrid/java/client/response/ApiResponse.html" title="class in org.apache.usergrid.java.client.response" target="classFrame">ApiResponse</a></li>
+<li><a href="org/apache/usergrid/java/client/Client.html" title="class in org.apache.usergrid.java.client" target="classFrame">Client</a></li>
+<li><a href="org/apache/usergrid/java/client/Client.Query.html" title="interface in org.apache.usergrid.java.client" target="classFrame"><i>Client.Query</i></a></li>
+<li><a href="org/apache/usergrid/java/client/Client.QueuePosition.html" title="enum in org.apache.usergrid.java.client" target="classFrame">Client.QueuePosition</a></li>
+<li><a href="org/apache/usergrid/java/client/response/ClientCredentialsInfo.html" title="class in org.apache.usergrid.java.client.response" target="classFrame">ClientCredentialsInfo</a></li>
+<li><a href="org/apache/usergrid/java/client/exception/ClientException.html" title="class in org.apache.usergrid.java.client.exception" target="classFrame">ClientException</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/Device.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Device</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/Entity.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Entity</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/Group.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Group</a></li>
+<li><a href="org/apache/usergrid/java/client/utils/JsonUtils.html" title="class in org.apache.usergrid.java.client.utils" target="classFrame">JsonUtils</a></li>
+<li><a href="org/apache/usergrid/java/client/utils/MapUtils.html" title="class in org.apache.usergrid.java.client.utils" target="classFrame">MapUtils</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/Message.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">Message</a></li>
+<li><a href="org/apache/usergrid/java/client/utils/ObjectUtils.html" title="class in org.apache.usergrid.java.client.utils" target="classFrame">ObjectUtils</a></li>
+<li><a href="org/apache/usergrid/java/client/response/QueueInfo.html" title="class in org.apache.usergrid.java.client.response" target="classFrame">QueueInfo</a></li>
+<li><a href="org/apache/usergrid/java/client/utils/UrlUtils.html" title="class in org.apache.usergrid.java.client.utils" target="classFrame">UrlUtils</a></li>
+<li><a href="org/apache/usergrid/java/client/entities/User.html" title="class in org.apache.usergrid.java.client.entities" target="classFrame">User</a></li>
+</ul>
+</div>
+</body>
+</html>


Mime
View raw message