You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ka...@apache.org on 2014/04/13 01:26:51 UTC

[2/2] git commit: Revert "[HELIX-257] Upgraded restlet from 1.1.10 to 2.1.4 (merged pull request from mrietveld)"

Revert "[HELIX-257] Upgraded restlet from 1.1.10 to 2.1.4 (merged pull request from mrietveld)"

This reverts commit 96adfbf1555326620ec01b56251ef5a911ce6b8c.


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

Branch: refs/heads/helix-0.6.2-release
Commit: dea0f5be4306c87dd50dc8ab5c8e5258795f6e4d
Parents: 5110f25
Author: Kanak Biscuitwala <ka...@apache.org>
Authored: Sat Apr 12 15:35:43 2014 -0700
Committer: Kanak Biscuitwala <ka...@apache.org>
Committed: Sat Apr 12 16:25:10 2014 -0700

----------------------------------------------------------------------
 ...x-admin-webapp-0.6.3-incubating-SNAPSHOT.ivy |  3 +-
 helix-admin-webapp/pom.xml                      |  4 +-
 .../helix/webapp/RestAdminApplication.java      | 18 ++--
 .../resources/ClusterRepresentationUtil.java    |  2 +-
 .../helix/webapp/resources/ClusterResource.java | 54 +++++++----
 .../webapp/resources/ClustersResource.java      | 41 +++++---
 .../helix/webapp/resources/ConfigResource.java  | 32 ++++---
 .../webapp/resources/ConstraintResource.java    | 28 +++---
 .../webapp/resources/ControllerResource.java    | 45 ++++++---
 .../ControllerStatusUpdateResource.java         | 39 ++++++--
 .../webapp/resources/CurrentStateResource.java  | 39 ++++++--
 .../webapp/resources/CurrentStatesResource.java | 35 +++++--
 .../helix/webapp/resources/ErrorResource.java   | 39 ++++++--
 .../helix/webapp/resources/ErrorsResource.java  | 36 +++++--
 .../webapp/resources/ExternalViewResource.java  | 39 ++++++--
 .../webapp/resources/IdealStateResource.java    | 44 ++++++---
 .../webapp/resources/InstanceResource.java      | 45 ++++++---
 .../webapp/resources/InstancesResource.java     | 42 +++++++--
 .../helix/webapp/resources/JsonParameters.java  |  2 +-
 .../webapp/resources/ResourceGroupResource.java | 45 ++++++---
 .../resources/ResourceGroupsResource.java       | 42 +++++++--
 .../resources/SchedulerTasksResource.java       | 42 +++++++--
 .../webapp/resources/StateModelResource.java    | 44 ++++++---
 .../webapp/resources/StateModelsResource.java   | 43 ++++++---
 .../webapp/resources/StatusUpdateResource.java  | 39 ++++++--
 .../webapp/resources/StatusUpdatesResource.java | 39 ++++++--
 .../helix/webapp/resources/ZkChildResource.java | 42 +++++++--
 .../helix/webapp/resources/ZkPathResource.java  | 47 +++++++---
 .../org/apache/helix/webapp/AdminTestBase.java  |  5 +-
 .../apache/helix/webapp/AdminTestHelper.java    |  2 -
 .../webapp/TestClusterManagementWebapp.java     |  6 +-
 .../webapp/TestHelixAdminScenariosRest.java     | 13 ++-
 helix-agent/pom.xml                             |  4 +-
 .../helix-core-0.6.3-incubating-SNAPSHOT.ivy    |  3 +-
 helix-core/pom.xml                              | 10 +-
 .../restlet/ZKPropertyTransferServer.java       |  5 -
 .../restlet/ZNRecordUpdateResource.java         | 99 +++++++++++---------
 .../restlet/ZkPropertyTransferApplication.java  |  4 +-
 .../restlet/ZkPropertyTransferClient.java       |  9 +-
 .../manager/zk/ZNRecordStreamingSerializer.java |  2 +-
 pom.xml                                         |  6 +-
 41 files changed, 793 insertions(+), 345 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/helix-admin-webapp-0.6.3-incubating-SNAPSHOT.ivy
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/helix-admin-webapp-0.6.3-incubating-SNAPSHOT.ivy b/helix-admin-webapp/helix-admin-webapp-0.6.3-incubating-SNAPSHOT.ivy
index aa76878..c601d69 100644
--- a/helix-admin-webapp/helix-admin-webapp-0.6.3-incubating-SNAPSHOT.ivy
+++ b/helix-admin-webapp/helix-admin-webapp-0.6.3-incubating-SNAPSHOT.ivy
@@ -38,7 +38,8 @@ under the License.
 	</publications>
 	<dependencies>
 		<dependency org="org.apache.helix" name="helix-core" rev="0.6.3-incubating-SNAPSHOT" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
-		<dependency org="org.restlet.jse" name="org.restlet" rev="2.2.0" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+		<dependency org="org.restlet" name="org.restlet" rev="1.1.10" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+		<dependency org="com.noelios.restlet" name="com.noelios.restlet" rev="1.1.10" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
 		<dependency org="org.codehaus.jackson" name="jackson-core-asl" rev="1.8.5" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
 		<dependency org="org.codehaus.jackson" name="jackson-mapper-asl" rev="1.8.5" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
 		<dependency org="commons-cli" name="commons-cli" rev="1.2" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/pom.xml b/helix-admin-webapp/pom.xml
index a404f44..e422062 100644
--- a/helix-admin-webapp/pom.xml
+++ b/helix-admin-webapp/pom.xml
@@ -47,8 +47,8 @@ under the License.
       <artifactId>helix-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.restlet.jse</groupId>
-      <artifactId>org.restlet</artifactId>
+      <groupId>com.noelios.restlet</groupId>
+      <artifactId>com.noelios.restlet</artifactId>
     </dependency>
     <dependency>
       <groupId>com.thoughtworks.xstream</groupId>

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/RestAdminApplication.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/RestAdminApplication.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/RestAdminApplication.java
index 0940c39..ce951cd 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/RestAdminApplication.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/RestAdminApplication.java
@@ -19,8 +19,6 @@ package org.apache.helix.webapp;
  * under the License.
  */
 
-import java.util.logging.Level;
-
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.GnuParser;
@@ -54,13 +52,13 @@ import org.apache.helix.webapp.resources.ZkChildResource;
 import org.apache.helix.webapp.resources.ZkPathResource;
 import org.restlet.Application;
 import org.restlet.Context;
-import org.restlet.Request;
-import org.restlet.Response;
 import org.restlet.Restlet;
+import org.restlet.Router;
 import org.restlet.data.MediaType;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.routing.Router;
-import org.restlet.routing.Template;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.util.Template;
 
 public class RestAdminApplication extends Application {
   public static final String HELP = "help";
@@ -69,10 +67,6 @@ public class RestAdminApplication extends Application {
   public static final String ZKCLIENT = "zkClient";
   public static final int DEFAULT_PORT = 8100;
 
-  static {
-    org.restlet.engine.Engine.setLogLevel(Level.SEVERE);
-  }
-
   public RestAdminApplication() {
     super();
   }
@@ -82,7 +76,7 @@ public class RestAdminApplication extends Application {
   }
 
   @Override
-  public Restlet createInboundRoot() {
+  public Restlet createRoot() {
     Router router = new Router(getContext());
     router.setDefaultMatchingMode(Template.MODE_EQUALS);
     router.attach("/clusters", ClustersResource.class);

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterRepresentationUtil.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterRepresentationUtil.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterRepresentationUtil.java
index f227801..ccac49a 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterRepresentationUtil.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterRepresentationUtil.java
@@ -31,9 +31,9 @@ import java.util.TreeMap;
 import org.apache.helix.HelixDataAccessor;
 import org.apache.helix.HelixProperty;
 import org.apache.helix.PropertyKey;
-import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.PropertyType;
 import org.apache.helix.ZNRecord;
+import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.manager.zk.ZKHelixDataAccessor;
 import org.apache.helix.manager.zk.ZNRecordSerializer;
 import org.apache.helix.manager.zk.ZkBaseDataAccessor;

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterResource.java
index b22d801..91b991d 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClusterResource.java
@@ -20,38 +20,57 @@ package org.apache.helix.webapp.resources;
  */
 
 import java.io.IOException;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 import org.apache.helix.HelixDataAccessor;
 import org.apache.helix.HelixException;
-import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.ZNRecord;
+import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.manager.zk.ZkClient;
 import org.apache.helix.model.LiveInstance;
 import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.webapp.RestAdminApplication;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.data.Method;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
-
-public class ClusterResource extends ServerResource {
-    
-  public ClusterResource() {
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
+
+public class ClusterResource extends Resource {
+  public ClusterResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return true;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -61,6 +80,7 @@ public class ClusterResource extends ServerResource {
     catch (Exception e) {
       String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
       presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
+
       e.printStackTrace();
     }
     return presentation;
@@ -101,7 +121,7 @@ public class ClusterResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -140,11 +160,10 @@ public class ClusterResource extends ServerResource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
-    return getResponseEntity();
   }
 
   @Override
-  public Representation delete() {
+  public void removeRepresentations() {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -157,6 +176,5 @@ public class ClusterResource extends ServerResource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClustersResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClustersResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClustersResource.java
index 4b12054..84678ab 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClustersResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ClustersResource.java
@@ -30,25 +30,43 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ClustersResource extends ServerResource {
+public class ClustersResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ClustersResource.class);
 
-  public ClustersResource() {
+  public ClustersResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
     // handle(request,response);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return true;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       presentation = getClustersRepresentation();
@@ -78,7 +96,7 @@ public class ClustersResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       JsonParameters jsonParameters = new JsonParameters(entity);
       String command = jsonParameters.getCommand();
@@ -106,11 +124,10 @@ public class ClustersResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
-    return null;
   }
 
   @Override
-  public Representation delete() {
-      return null;
+  public void removeRepresentations() {
+
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConfigResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConfigResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConfigResource.java
index 3c384d4..c19ae9d 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConfigResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConfigResource.java
@@ -20,6 +20,7 @@ package org.apache.helix.webapp.resources;
  */
 
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
@@ -27,29 +28,32 @@ import org.apache.helix.HelixAdmin;
 import org.apache.helix.HelixException;
 import org.apache.helix.ZNRecord;
 import org.apache.helix.manager.zk.ZkClient;
+import org.apache.helix.model.ConfigScope;
 import org.apache.helix.model.HelixConfigScope;
 import org.apache.helix.model.HelixConfigScope.ConfigScopeProperty;
+import org.apache.helix.model.builder.ConfigScopeBuilder;
 import org.apache.helix.model.builder.HelixConfigScopeBuilder;
 import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.restlet.Context;
-import org.restlet.Request;
-import org.restlet.Response;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ConfigResource extends ServerResource {
+public class ConfigResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ConfigResource.class);
 
-  public ConfigResource() {
+  public ConfigResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
+    setModifiable(true);
   }
 
   String getValue(String key) {
@@ -118,7 +122,7 @@ public class ConfigResource extends ServerResource {
   }
 
   @Override
-  public Representation get() {
+  public Representation represent(Variant variant) {
     StringRepresentation representation = null;
 
     String clusterName = getValue("clusterName");
@@ -217,13 +221,12 @@ public class ConfigResource extends ServerResource {
 
     }
 
-    getResponse().setEntity(get());
+    getResponse().setEntity(represent());
     getResponse().setStatus(Status.SUCCESS_OK);
   }
 
-
-@Override
-  public Representation post(Representation entity) {
+  @Override
+  public void acceptRepresentation(Representation entity) {
     String clusterName = getValue("clusterName");
 
     String scopeStr = getValue("scope").toUpperCase();
@@ -265,6 +268,5 @@ public class ConfigResource extends ServerResource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConstraintResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConstraintResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConstraintResource.java
index 675d0ec..4cb4a48 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConstraintResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ConstraintResource.java
@@ -30,23 +30,24 @@ import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.restlet.Context;
-import org.restlet.Request;
-import org.restlet.Response;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ConstraintResource extends ServerResource {
+public class ConstraintResource extends Resource {
 
   private final static Logger LOG = Logger.getLogger(ConstraintResource.class);
 
-  public ConstraintResource() {
+  public ConstraintResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
+    setModifiable(true);
   }
 
   // TODO move to a util function
@@ -55,7 +56,7 @@ public class ConstraintResource extends ServerResource {
   }
 
   @Override
-  public Representation get() {
+  public Representation represent(Variant variant) {
     StringRepresentation representation = null;
     String clusterName = getValue("clusterName");
     String constraintTypeStr = getValue("constraintType").toUpperCase();
@@ -103,7 +104,7 @@ public class ConstraintResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     String clusterName = getValue("clusterName");
     String constraintTypeStr = getValue("constraintType").toUpperCase();
     String constraintId = getValue("constraintId");
@@ -123,11 +124,10 @@ public class ConstraintResource extends ServerResource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
-    return null;
   }
 
   @Override
-  public Representation delete() {
+  public void removeRepresentations() {
     String clusterName = getValue("clusterName");
     String constraintTypeStr = getValue("constraintType").toUpperCase();
     String constraintId = getValue("constraintId");
@@ -145,6 +145,6 @@ public class ConstraintResource extends ServerResource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
-    return null;
+
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerResource.java
index ea7be42..a6c7c29 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerResource.java
@@ -41,22 +41,43 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
 import org.restlet.Context;
-import org.restlet.Request;
-import org.restlet.Response;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ControllerResource extends ServerResource {
+public class ControllerResource extends Resource {
+
+  public ControllerResource(Context context, Request request, Response response)
 
-  public ControllerResource()
   {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
+  }
+
+  @Override
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
   }
 
   StringRepresentation getControllerRepresentation(String clusterName)
@@ -91,7 +112,7 @@ public class ControllerResource extends ServerResource {
   }
 
   @Override
-  public Representation get() {
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -105,7 +126,7 @@ public class ControllerResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -135,7 +156,5 @@ public class ControllerResource extends ServerResource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
-    
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerStatusUpdateResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerStatusUpdateResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerStatusUpdateResource.java
index be96fad..d95e581 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerStatusUpdateResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ControllerStatusUpdateResource.java
@@ -28,23 +28,46 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ControllerStatusUpdateResource extends ServerResource {
+public class ControllerStatusUpdateResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ControllerStatusUpdateResource.class);
 
-  public ControllerStatusUpdateResource() {
+  public ControllerStatusUpdateResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return false;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String zkServer =

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStateResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStateResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStateResource.java
index 6b63cb5..797b663 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStateResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStateResource.java
@@ -28,23 +28,46 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class CurrentStateResource extends ServerResource {
+public class CurrentStateResource extends Resource {
   private final static Logger LOG = Logger.getLogger(CurrentStateResource.class);
 
-  public CurrentStateResource() {
+  public CurrentStateResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return false;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStatesResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStatesResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStatesResource.java
index 84c3aaa..3b50e0c 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStatesResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/CurrentStatesResource.java
@@ -27,22 +27,41 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class CurrentStatesResource extends ServerResource {
+public class CurrentStatesResource extends Resource {
   private final static Logger LOG = Logger.getLogger(CurrentStatesResource.class);
 
-  public CurrentStatesResource() {
+  public CurrentStatesResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  public boolean allowPost() {
+    return false;
+  }
+
+  public boolean allowPut() {
+    return false;
+  }
+
+  public boolean allowDelete() {
+    return false;
+  }
+
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorResource.java
index 9ff7f75..f680e08 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorResource.java
@@ -28,23 +28,46 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ErrorResource extends ServerResource {
+public class ErrorResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ErrorResource.class);
 
-  public ErrorResource() {
+  public ErrorResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return false;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorsResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorsResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorsResource.java
index 46b5aa1..06cf64f 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorsResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ErrorsResource.java
@@ -27,22 +27,41 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ErrorsResource extends ServerResource {
+public class ErrorsResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ErrorsResource.class);
 
-  public ErrorsResource() {
+  public ErrorsResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  public boolean allowPost() {
+    return false;
+  }
+
+  public boolean allowPut() {
+    return false;
+  }
+
+  public boolean allowDelete() {
+    return false;
+  }
+
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -54,7 +73,6 @@ public class ErrorsResource extends ServerResource {
 
       LOG.error("", e);
     }
-    
     return presentation;
   }
 

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ExternalViewResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ExternalViewResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ExternalViewResource.java
index 6ec28dc..68587d9 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ExternalViewResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ExternalViewResource.java
@@ -28,23 +28,46 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ExternalViewResource extends ServerResource {
+public class ExternalViewResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ExternalViewResource.class);
 
-  public ExternalViewResource() {
+  public ExternalViewResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return false;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/IdealStateResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/IdealStateResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/IdealStateResource.java
index 49df073..87e6cd7 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/IdealStateResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/IdealStateResource.java
@@ -25,8 +25,8 @@ import java.util.Map;
 import org.apache.helix.HelixDataAccessor;
 import org.apache.helix.HelixException;
 import org.apache.helix.PropertyKey;
-import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.ZNRecord;
+import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.manager.zk.ZkClient;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.tools.ClusterSetup;
@@ -34,24 +34,47 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class IdealStateResource extends ServerResource {
+public class IdealStateResource extends Resource {
   private final static Logger LOG = Logger.getLogger(IdealStateResource.class);
 
-  public IdealStateResource() {
+  public IdealStateResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -84,7 +107,7 @@ public class IdealStateResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String resourceName = (String) getRequest().getAttributes().get("resourceName");
@@ -132,6 +155,5 @@ public class IdealStateResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstanceResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstanceResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstanceResource.java
index e62fe5e..8439cfb 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstanceResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstanceResource.java
@@ -31,24 +31,47 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class InstanceResource extends ServerResource {
+public class InstanceResource extends Resource {
   private final static Logger LOG = Logger.getLogger(InstanceResource.class);
 
-  public InstanceResource() {
+  public InstanceResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return true;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       presentation = getInstanceRepresentation();
@@ -79,7 +102,7 @@ public class InstanceResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String instanceName = (String) getRequest().getAttributes().get("instanceName");
@@ -156,11 +179,10 @@ public class InstanceResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
-    return null;
   }
 
   @Override
-  public Representation delete() {
+  public void removeRepresentations() {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String instanceName = (String) getRequest().getAttributes().get("instanceName");
@@ -176,6 +198,5 @@ public class InstanceResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in remove", e);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstancesResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstancesResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstancesResource.java
index 41c6a15..d103896 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstancesResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/InstancesResource.java
@@ -36,26 +36,49 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
 import com.google.common.collect.Lists;
 
-public class InstancesResource extends ServerResource {
+public class InstancesResource extends Resource {
   private final static Logger LOG = Logger.getLogger(InstancesResource.class);
 
-  public InstancesResource() {
+  public InstancesResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -114,7 +137,7 @@ public class InstancesResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       JsonParameters jsonParameters = new JsonParameters(entity);
@@ -159,7 +182,6 @@ public class InstancesResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
-    return null;
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/JsonParameters.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/JsonParameters.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/JsonParameters.java
index 5f405d8..c8e8fc6 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/JsonParameters.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/JsonParameters.java
@@ -33,7 +33,7 @@ import org.apache.helix.ZNRecord;
 import org.apache.helix.tools.ClusterSetup;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.restlet.data.Form;
-import org.restlet.representation.Representation;
+import org.restlet.resource.Representation;
 
 public class JsonParameters {
   // json parameter key

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupResource.java
index 055f64a..365b212 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupResource.java
@@ -31,24 +31,47 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ResourceGroupResource extends ServerResource {
+public class ResourceGroupResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ResourceGroupResource.class);
 
-  public ResourceGroupResource() {
+  public ResourceGroupResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return true;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -81,7 +104,7 @@ public class ResourceGroupResource extends ServerResource {
   }
 
   @Override
-  public Representation delete() {
+  public void removeRepresentations() {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String resourceGroupName = (String) getRequest().getAttributes().get("resourceName");
@@ -97,11 +120,10 @@ public class ResourceGroupResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
-    return null;
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String resourceName = (String) getRequest().getAttributes().get("resourceName");
@@ -124,7 +146,6 @@ public class ResourceGroupResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
-    return null;
   }
 
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
index ad4e934..0853e3e 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ResourceGroupsResource.java
@@ -35,27 +35,50 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
-public class ResourceGroupsResource extends ServerResource {
+public class ResourceGroupsResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ResourceGroupsResource.class);
 
-  public ResourceGroupsResource() {
+  public ResourceGroupsResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -107,7 +130,7 @@ public class ResourceGroupsResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
 
@@ -169,6 +192,5 @@ public class ResourceGroupsResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/SchedulerTasksResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/SchedulerTasksResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/SchedulerTasksResource.java
index b9083bb..59d9174 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/SchedulerTasksResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/SchedulerTasksResource.java
@@ -41,32 +41,55 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.Form;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
 /**
  * This resource can be used to send scheduler tasks to the controller.
  */
-public class SchedulerTasksResource extends ServerResource {
+public class SchedulerTasksResource extends Resource {
   private final static Logger LOG = Logger.getLogger(SchedulerTasksResource.class);
 
   public static String CRITERIA = "Criteria";
   public static String MESSAGETEMPLATE = "MessageTemplate";
   public static String TASKQUEUENAME = "TaskQueueName";
 
-  public SchedulerTasksResource() {
+  public SchedulerTasksResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       presentation = getSchedulerTasksRepresentation();
@@ -103,7 +126,7 @@ public class SchedulerTasksResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       Form form = new Form(entity);
@@ -171,6 +194,5 @@ public class SchedulerTasksResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelResource.java
index d8d2ef0..9abded8 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelResource.java
@@ -24,8 +24,8 @@ import java.io.IOException;
 import org.apache.helix.HelixDataAccessor;
 import org.apache.helix.HelixException;
 import org.apache.helix.PropertyKey;
-import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.ZNRecord;
+import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.manager.zk.ZkClient;
 import org.apache.helix.model.StateModelDefinition;
 import org.apache.helix.tools.ClusterSetup;
@@ -33,24 +33,47 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class StateModelResource extends ServerResource {
+public class StateModelResource extends Resource {
   private final static Logger LOG = Logger.getLogger(StateModelResource.class);
 
-  public StateModelResource() {
+  public StateModelResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -83,7 +106,7 @@ public class StateModelResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String modelName = (String) getRequest().getAttributes().get("modelName");
@@ -113,6 +136,5 @@ public class StateModelResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelsResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelsResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelsResource.java
index 2e744b9..28e5685 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelsResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StateModelsResource.java
@@ -32,24 +32,47 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class StateModelsResource extends ServerResource {
+public class StateModelsResource extends Resource {
   private final static Logger LOG = Logger.getLogger(StateModelsResource.class);
 
-  public StateModelsResource() {
+  public StateModelsResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       presentation = getStateModelsRepresentation();
@@ -61,7 +84,6 @@ public class StateModelsResource extends ServerResource {
 
       LOG.error("", e);
     }
-    
     return presentation;
   }
 
@@ -84,7 +106,7 @@ public class StateModelsResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -115,6 +137,5 @@ public class StateModelsResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdateResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdateResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdateResource.java
index 8e9f689..852fcfa 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdateResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdateResource.java
@@ -28,23 +28,46 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class StatusUpdateResource extends ServerResource {
+public class StatusUpdateResource extends Resource {
   private final static Logger LOG = Logger.getLogger(StatusUpdateResource.class);
 
-  public StatusUpdateResource() {
+  public StatusUpdateResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return false;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdatesResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdatesResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdatesResource.java
index fa31188..22f14d7 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdatesResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/StatusUpdatesResource.java
@@ -27,23 +27,46 @@ import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.codehaus.jackson.JsonGenerationException;
 import org.codehaus.jackson.map.JsonMappingException;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class StatusUpdatesResource extends ServerResource {
+public class StatusUpdatesResource extends Resource {
   private final static Logger LOG = Logger.getLogger(StatusUpdatesResource.class);
 
-  public StatusUpdatesResource() {
+  public StatusUpdatesResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
   }
 
   @Override
-  public Representation get() {
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return false;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return false;
+  }
+
+  @Override
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkChildResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkChildResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkChildResource.java
index 6d50ade..7c99a24 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkChildResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkChildResource.java
@@ -26,20 +26,43 @@ import org.apache.helix.manager.zk.ZkClient;
 import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.apache.zookeeper.data.Stat;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ZkChildResource extends ServerResource {
+public class ZkChildResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ZkChildResource.class);
 
-  public ZkChildResource() {
+  public ZkChildResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
+  }
+
+  @Override
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return false;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return true;
   }
 
   private String getZKPath() {
@@ -57,7 +80,7 @@ public class ZkChildResource extends ServerResource {
   }
 
   @Override
-  public Representation get() {
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     String zkPath = getZKPath();
 
@@ -103,7 +126,7 @@ public class ZkChildResource extends ServerResource {
   }
 
   @Override
-  public Representation delete() {
+  public void removeRepresentations() {
     String zkPath = getZKPath();
     try {
       ZkClient zkClient =
@@ -124,6 +147,5 @@ public class ZkChildResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in delete zkChild: " + zkPath, e);
     }
-    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkPathResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkPathResource.java b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkPathResource.java
index 0ab29bb..8f03e12 100644
--- a/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkPathResource.java
+++ b/helix-admin-webapp/src/main/java/org/apache/helix/webapp/resources/ZkPathResource.java
@@ -24,24 +24,49 @@ import java.util.List;
 
 import org.apache.helix.HelixException;
 import org.apache.helix.ZNRecord;
+import org.apache.helix.manager.zk.ZkBaseDataAccessor;
 import org.apache.helix.manager.zk.ZkClient;
+import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.log4j.Logger;
 import org.apache.zookeeper.data.Stat;
+import org.restlet.Context;
 import org.restlet.data.MediaType;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
-import org.restlet.representation.StringRepresentation;
-import org.restlet.representation.Variant;
-import org.restlet.resource.ServerResource;
+import org.restlet.resource.Representation;
+import org.restlet.resource.Resource;
+import org.restlet.resource.StringRepresentation;
+import org.restlet.resource.Variant;
 
-public class ZkPathResource extends ServerResource {
+public class ZkPathResource extends Resource {
   private final static Logger LOG = Logger.getLogger(ZkPathResource.class);
 
-  public ZkPathResource() {
+  public ZkPathResource(Context context, Request request, Response response) {
+    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setNegotiated(false);
+  }
+
+  @Override
+  public boolean allowGet() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPost() {
+    return true;
+  }
+
+  @Override
+  public boolean allowPut() {
+    return false;
+  }
+
+  @Override
+  public boolean allowDelete() {
+    return true;
   }
 
   private String getZKPath() {
@@ -59,7 +84,7 @@ public class ZkPathResource extends ServerResource {
   }
 
   @Override
-  public Representation post(Representation entity) {
+  public void acceptRepresentation(Representation entity) {
     String zkPath = getZKPath();
 
     try {
@@ -89,11 +114,10 @@ public class ZkPathResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in post zkPath: " + zkPath, e);
     }
-    return null;
   }
 
   @Override
-  public Representation get() {
+  public Representation represent(Variant variant) {
     StringRepresentation presentation = null;
     String zkPath = getZKPath();
 
@@ -142,7 +166,7 @@ public class ZkPathResource extends ServerResource {
   }
 
   @Override
-  public Representation delete() {
+  public void removeRepresentations() {
     String zkPath = getZKPath();
     try {
       ZkClient zkClient =
@@ -156,7 +180,6 @@ public class ZkPathResource extends ServerResource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in delete zkPath: " + zkPath, e);
     }
-    return null;
   }
 
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestBase.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestBase.java b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestBase.java
index 5b4411b..fbf8e4e 100644
--- a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestBase.java
+++ b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestBase.java
@@ -27,7 +27,6 @@ import org.apache.helix.manager.zk.ZNRecordSerializer;
 import org.apache.helix.manager.zk.ZkClient;
 import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.util.ZKClientPool;
-import org.apache.helix.webapp.AdminTestHelper.AdminThread;
 import org.apache.log4j.Logger;
 import org.restlet.Client;
 import org.restlet.data.Protocol;
@@ -45,7 +44,7 @@ public class AdminTestBase {
   protected static ClusterSetup _gSetupTool;
   protected static Client _gClient;
 
-  static AdminThread _adminThread;
+  static AdminTestHelper.AdminThread _adminThread;
 
   @BeforeSuite
   public void beforeSuite() throws Exception {
@@ -63,7 +62,7 @@ public class AdminTestBase {
     _gSetupTool = new ClusterSetup(ZK_ADDR);
 
     // start admin
-    _adminThread = new AdminThread(ZK_ADDR, ADMIN_PORT);
+    _adminThread = new AdminTestHelper.AdminThread(ZK_ADDR, ADMIN_PORT);
     _adminThread.start();
 
     // create a client

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestHelper.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestHelper.java b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestHelper.java
index 9f6946d..72f8a96 100644
--- a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestHelper.java
+++ b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/AdminTestHelper.java
@@ -21,8 +21,6 @@ package org.apache.helix.webapp;
 
 import java.util.concurrent.CountDownLatch;
 
-import org.apache.helix.webapp.HelixAdminWebApp;
-
 public class AdminTestHelper {
 
   public static class AdminThread {

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestClusterManagementWebapp.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestClusterManagementWebapp.java b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestClusterManagementWebapp.java
index b645dfd..7c41f28 100644
--- a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestClusterManagementWebapp.java
+++ b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestClusterManagementWebapp.java
@@ -39,12 +39,12 @@ import org.codehaus.jackson.map.JsonMappingException;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.type.TypeReference;
 import org.restlet.Client;
-import org.restlet.Request;
-import org.restlet.Response;
 import org.restlet.data.MediaType;
 import org.restlet.data.Method;
 import org.restlet.data.Reference;
-import org.restlet.representation.Representation;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
+import org.restlet.resource.Representation;
 import org.testng.Assert;
 import org.testng.AssertJUnit;
 import org.testng.annotations.Test;

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestHelixAdminScenariosRest.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestHelixAdminScenariosRest.java b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestHelixAdminScenariosRest.java
index 7f44174..6979959 100644
--- a/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestHelixAdminScenariosRest.java
+++ b/helix-admin-webapp/src/test/java/org/apache/helix/webapp/TestHelixAdminScenariosRest.java
@@ -44,7 +44,6 @@ import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.MasterNbInExtViewVerifier;
-import org.apache.helix.webapp.RestAdminApplication;
 import org.apache.helix.webapp.resources.ClusterRepresentationUtil;
 import org.apache.helix.webapp.resources.InstancesResource.ListInstancesWrapper;
 import org.apache.helix.webapp.resources.JsonParameters;
@@ -54,13 +53,13 @@ import org.codehaus.jackson.map.JsonMappingException;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.SerializationConfig;
 import org.restlet.Component;
-import org.restlet.Request;
-import org.restlet.Response;
 import org.restlet.data.MediaType;
 import org.restlet.data.Method;
 import org.restlet.data.Reference;
+import org.restlet.data.Request;
+import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.representation.Representation;
+import org.restlet.resource.Representation;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -1058,7 +1057,7 @@ public class TestHelixAdminScenariosRest extends AdminTestBase {
     Request request = new Request(Method.GET, resourceRef);
     Response response = _gClient.handle(request);
     ZNRecord responseRecord =
-        ClusterRepresentationUtil.JsonToObject(ZNRecord.class, response.getEntityAsText());
+        ClusterRepresentationUtil.JsonToObject(ZNRecord.class, response.getEntity().getText());
 
     // Ensure that the tagged resource has information and the untagged one doesn't
     Assert.assertNotNull(responseRecord.getMapField("ResourceTags"));
@@ -1099,8 +1098,8 @@ public class TestHelixAdminScenariosRest extends AdminTestBase {
     Request request = new Request(Method.GET, resourceRef);
     Response response = _gClient.handle(request);
     ListInstancesWrapper responseWrapper =
-        ClusterRepresentationUtil.JsonToObject(ListInstancesWrapper.class,
-            response.getEntityAsText());
+        ClusterRepresentationUtil.JsonToObject(ListInstancesWrapper.class, response.getEntity()
+            .getText());
     Map<String, List<String>> tagInfo = responseWrapper.tagInfo;
 
     // Ensure tag ownership is reported correctly

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-agent/pom.xml
----------------------------------------------------------------------
diff --git a/helix-agent/pom.xml b/helix-agent/pom.xml
index 9558b15..417a2de 100644
--- a/helix-agent/pom.xml
+++ b/helix-agent/pom.xml
@@ -44,8 +44,8 @@ under the License.
       <artifactId>helix-core</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.restlet.jse</groupId>
-      <artifactId>org.restlet</artifactId>
+      <groupId>com.noelios.restlet</groupId>
+      <artifactId>com.noelios.restlet</artifactId>
     </dependency>
     <dependency>
       <groupId>org.testng</groupId>

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-core/helix-core-0.6.3-incubating-SNAPSHOT.ivy
----------------------------------------------------------------------
diff --git a/helix-core/helix-core-0.6.3-incubating-SNAPSHOT.ivy b/helix-core/helix-core-0.6.3-incubating-SNAPSHOT.ivy
index 8e0e706..f2dd406 100644
--- a/helix-core/helix-core-0.6.3-incubating-SNAPSHOT.ivy
+++ b/helix-core/helix-core-0.6.3-incubating-SNAPSHOT.ivy
@@ -60,7 +60,8 @@ under the License.
     <dependency org="net.sf.josql" name="josql" rev="1.5" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
     <dependency org="org.fusesource.commonman" name="commons-management" rev="1.0" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
     <dependency org="commons-logging" name="commons-logging-api" rev="1.1" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
-    <dependency org="org.restlet.jse" name="org.restlet" rev="2.2.0" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+    <dependency org="org.restlet" name="org.restlet" rev="1.1.10" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+    <dependency org="com.noelios.restlet" name="com.noelios.restlet" rev="1.1.10" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
     <dependency org="net.sf" name="jsqlparser" rev="0.7.0" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
 
 	</dependencies>

http://git-wip-us.apache.org/repos/asf/helix/blob/dea0f5be/helix-core/pom.xml
----------------------------------------------------------------------
diff --git a/helix-core/pom.xml b/helix-core/pom.xml
index 00781df..55a03a0 100644
--- a/helix-core/pom.xml
+++ b/helix-core/pom.xml
@@ -45,7 +45,7 @@ under the License.
       org.apache.zookeeper.txn*;resolution:=optional,
       org.apache.zookeeper*;version="[3.3,4)",
       org.codehaus.jackson*;version="[1.8,2)",
-      org.restlet;version="[2.2.0,3]",
+      org.restlet;version="[1.1,2)",
       *
     </osgi.import>
     <osgi.ignore>
@@ -131,9 +131,13 @@ under the License.
       <version>2.1</version>
     </dependency>
     <dependency>
-      <groupId>org.restlet.jse</groupId>
+      <groupId>com.noelios.restlet</groupId>
+      <artifactId>com.noelios.restlet</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.restlet</groupId>
       <artifactId>org.restlet</artifactId>
-      <version>2.2.0</version>
+      <version>1.1.10</version>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>