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 2013/10/21 19:36:49 UTC

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

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


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

Branch: refs/heads/master
Commit: 422434240c9862b91a332f5effb8258903faaf49
Parents: 390bfda
Author: Kanak Biscuitwala <ka...@apache.org>
Authored: Mon Oct 21 10:34:03 2013 -0700
Committer: Kanak Biscuitwala <ka...@apache.org>
Committed: Mon Oct 21 10:34:03 2013 -0700

----------------------------------------------------------------------
 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 +++-------
 .../tools/TestHelixAdminScenariosRest.java      | 10 +-
 .../webapp/TestClusterManagementWebapp.java     |  8 +-
 helix-agent/pom.xml                             |  4 +-
 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 +-
 37 files changed, 338 insertions(+), 786 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/helix-admin-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/pom.xml b/helix-admin-webapp/pom.xml
index 544a513..7791f92 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>com.noelios.restlet</groupId>
-      <artifactId>com.noelios.restlet</artifactId>
+      <groupId>org.restlet.jse</groupId>
+      <artifactId>org.restlet</artifactId>
     </dependency>
     <dependency>
       <groupId>com.thoughtworks.xstream</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 ce951cd..0940c39 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,6 +19,8 @@ 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;
@@ -52,13 +54,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.data.Request;
-import org.restlet.data.Response;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.util.Template;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.routing.Router;
+import org.restlet.routing.Template;
 
 public class RestAdminApplication extends Application {
   public static final String HELP = "help";
@@ -67,6 +69,10 @@ 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();
   }
@@ -76,7 +82,7 @@ public class RestAdminApplication extends Application {
   }
 
   @Override
-  public Restlet createRoot() {
+  public Restlet createInboundRoot() {
     Router router = new Router(getContext());
     router.setDefaultMatchingMode(Template.MODE_EQUALS);
     router.attach("/clusters", ClustersResource.class);

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 ccac49a..f227801 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/incubator-helix/blob/42243424/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 91b991d..b22d801 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,57 +20,38 @@ 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.ZNRecord;
 import org.apache.helix.PropertyKey.Builder;
+import org.apache.helix.ZNRecord;
 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.Request;
-import org.restlet.data.Response;
+import org.restlet.data.Method;
 import org.restlet.data.Status;
-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);
+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() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -80,7 +61,6 @@ public class ClusterResource extends Resource {
     catch (Exception e) {
       String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
       presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
       e.printStackTrace();
     }
     return presentation;
@@ -121,7 +101,7 @@ public class ClusterResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -160,10 +140,11 @@ public class ClusterResource extends Resource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
+    return getResponseEntity();
   }
 
   @Override
-  public void removeRepresentations() {
+  public Representation delete() {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -176,5 +157,6 @@ public class ClusterResource extends Resource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 84678ab..4b12054 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,43 +30,25 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ClustersResource extends Resource {
+public class ClustersResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ClustersResource.class);
 
-  public ClustersResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ClustersResource() {
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
+    setNegotiated(false);
     // handle(request,response);
   }
 
   @Override
-  public boolean allowPost() {
-    return true;
-  }
-
-  @Override
-  public boolean allowPut() {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete() {
-    return true;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       presentation = getClustersRepresentation();
@@ -96,7 +78,7 @@ public class ClustersResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       JsonParameters jsonParameters = new JsonParameters(entity);
       String command = jsonParameters.getCommand();
@@ -124,10 +106,11 @@ public class ClustersResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
+    return null;
   }
 
   @Override
-  public void removeRepresentations() {
-
+  public Representation delete() {
+      return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 c19ae9d..3c384d4 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,7 +20,6 @@ package org.apache.helix.webapp.resources;
  */
 
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 
@@ -28,32 +27,29 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ConfigResource extends Resource {
+public class ConfigResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ConfigResource.class);
 
-  public ConfigResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ConfigResource() {
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-    setModifiable(true);
+    setNegotiated(false);
   }
 
   String getValue(String key) {
@@ -122,7 +118,7 @@ public class ConfigResource extends Resource {
   }
 
   @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation representation = null;
 
     String clusterName = getValue("clusterName");
@@ -221,12 +217,13 @@ public class ConfigResource extends Resource {
 
     }
 
-    getResponse().setEntity(represent());
+    getResponse().setEntity(get());
     getResponse().setStatus(Status.SUCCESS_OK);
   }
 
-  @Override
-  public void acceptRepresentation(Representation entity) {
+
+@Override
+  public Representation post(Representation entity) {
     String clusterName = getValue("clusterName");
 
     String scopeStr = getValue("scope").toUpperCase();
@@ -268,5 +265,6 @@ public class ConfigResource extends Resource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
+    return null;
   }
 }

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

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 a6c7c29..ea7be42 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,43 +41,22 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ControllerResource extends Resource {
-
-  public ControllerResource(Context context, Request request, Response response)
+public class ControllerResource extends ServerResource {
 
+  public ControllerResource()
   {
-    super(context, request, response);
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet() {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost() {
-    return true;
-  }
-
-  @Override
-  public boolean allowPut() {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete() {
-    return false;
+    setNegotiated(false);
   }
 
   StringRepresentation getControllerRepresentation(String clusterName)
@@ -112,7 +91,7 @@ public class ControllerResource extends Resource {
   }
 
   @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -126,7 +105,7 @@ public class ControllerResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -156,5 +135,7 @@ public class ControllerResource extends Resource {
           MediaType.APPLICATION_JSON);
       getResponse().setStatus(Status.SUCCESS_OK);
     }
+    
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 d95e581..be96fad 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,46 +28,23 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ControllerStatusUpdateResource extends Resource {
+public class ControllerStatusUpdateResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ControllerStatusUpdateResource.class);
 
-  public ControllerStatusUpdateResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ControllerStatusUpdateResource() {
     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 false;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String zkServer =

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 797b663..6b63cb5 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,46 +28,23 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class CurrentStateResource extends Resource {
+public class CurrentStateResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(CurrentStateResource.class);
 
-  public CurrentStateResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public CurrentStateResource() {
     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 false;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 3b50e0c..84c3aaa 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,41 +27,22 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class CurrentStatesResource extends Resource {
+public class CurrentStatesResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(CurrentStatesResource.class);
 
-  public CurrentStatesResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public CurrentStatesResource() {
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
+    setNegotiated(false);
   }
 
-  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) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 f680e08..9ff7f75 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,46 +28,23 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ErrorResource extends Resource {
+public class ErrorResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ErrorResource.class);
 
-  public ErrorResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ErrorResource() {
     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 false;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 06cf64f..46b5aa1 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,41 +27,22 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ErrorsResource extends Resource {
+public class ErrorsResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ErrorsResource.class);
 
-  public ErrorsResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ErrorsResource() {
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
+    setNegotiated(false);
   }
 
-  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) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -73,6 +54,7 @@ public class ErrorsResource extends Resource {
 
       LOG.error("", e);
     }
+    
     return presentation;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 68587d9..6ec28dc 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,46 +28,23 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ExternalViewResource extends Resource {
+public class ExternalViewResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ExternalViewResource.class);
 
-  public ExternalViewResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ExternalViewResource() {
     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 false;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 87e6cd7..49df073 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.ZNRecord;
 import org.apache.helix.PropertyKey.Builder;
+import org.apache.helix.ZNRecord;
 import org.apache.helix.manager.zk.ZkClient;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.tools.ClusterSetup;
@@ -34,47 +34,24 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class IdealStateResource extends Resource {
+public class IdealStateResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(IdealStateResource.class);
 
-  public IdealStateResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public IdealStateResource() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -107,7 +84,7 @@ public class IdealStateResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String resourceName = (String) getRequest().getAttributes().get("resourceName");
@@ -155,5 +132,6 @@ public class IdealStateResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 8439cfb..e62fe5e 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,47 +31,24 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class InstanceResource extends Resource {
+public class InstanceResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(InstanceResource.class);
 
-  public InstanceResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public InstanceResource() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       presentation = getInstanceRepresentation();
@@ -102,7 +79,7 @@ public class InstanceResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String instanceName = (String) getRequest().getAttributes().get("instanceName");
@@ -179,10 +156,11 @@ public class InstanceResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
+    return null;
   }
 
   @Override
-  public void removeRepresentations() {
+  public Representation delete() {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String instanceName = (String) getRequest().getAttributes().get("instanceName");
@@ -198,5 +176,6 @@ public class InstanceResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in remove", e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 784a3e9..0e98f44 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,46 +36,27 @@ import org.apache.log4j.Logger;
 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class InstancesResource extends Resource {
+public class InstancesResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(InstancesResource.class);
 
-  public InstancesResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public InstancesResource() {
     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;
-  }
 
   @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -128,7 +109,7 @@ public class InstancesResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       JsonParameters jsonParameters = new JsonParameters(entity);
@@ -173,5 +154,6 @@ public class InstancesResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 c8e8fc6..5f405d8 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.resource.Representation;
+import org.restlet.representation.Representation;
 
 public class JsonParameters {
   // json parameter key

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 365b212..055f64a 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,47 +31,24 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ResourceGroupResource extends Resource {
+public class ResourceGroupResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ResourceGroupResource.class);
 
-  public ResourceGroupResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ResourceGroupResource() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -104,7 +81,7 @@ public class ResourceGroupResource extends Resource {
   }
 
   @Override
-  public void removeRepresentations() {
+  public Representation delete() {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String resourceGroupName = (String) getRequest().getAttributes().get("resourceName");
@@ -120,10 +97,11 @@ public class ResourceGroupResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
+    return null;
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String resourceName = (String) getRequest().getAttributes().get("resourceName");
@@ -146,6 +124,7 @@ public class ResourceGroupResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
+    return null;
   }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 f137c07..01ea37a 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
@@ -31,47 +31,24 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ResourceGroupsResource extends Resource {
+public class ResourceGroupsResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ResourceGroupsResource.class);
 
-  public ResourceGroupsResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ResourceGroupsResource() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -106,7 +83,7 @@ public class ResourceGroupsResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
 
@@ -168,5 +145,6 @@ public class ResourceGroupsResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 59d9174..b9083bb 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,55 +41,32 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
 /**
  * This resource can be used to send scheduler tasks to the controller.
  */
-public class SchedulerTasksResource extends Resource {
+public class SchedulerTasksResource extends ServerResource {
   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(Context context, Request request, Response response) {
-    super(context, request, response);
+  public SchedulerTasksResource() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       presentation = getSchedulerTasksRepresentation();
@@ -126,7 +103,7 @@ public class SchedulerTasksResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       Form form = new Form(entity);
@@ -194,5 +171,6 @@ public class SchedulerTasksResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("", e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 9abded8..d8d2ef0 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.ZNRecord;
 import org.apache.helix.PropertyKey.Builder;
+import org.apache.helix.ZNRecord;
 import org.apache.helix.manager.zk.ZkClient;
 import org.apache.helix.model.StateModelDefinition;
 import org.apache.helix.tools.ClusterSetup;
@@ -33,47 +33,24 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class StateModelResource extends Resource {
+public class StateModelResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(StateModelResource.class);
 
-  public StateModelResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public StateModelResource() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
@@ -106,7 +83,7 @@ public class StateModelResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       String modelName = (String) getRequest().getAttributes().get("modelName");
@@ -136,5 +113,6 @@ public class StateModelResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 28e5685..2e744b9 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,47 +32,24 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class StateModelsResource extends Resource {
+public class StateModelsResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(StateModelsResource.class);
 
-  public StateModelsResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public StateModelsResource() {
     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;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       presentation = getStateModelsRepresentation();
@@ -84,6 +61,7 @@ public class StateModelsResource extends Resource {
 
       LOG.error("", e);
     }
+    
     return presentation;
   }
 
@@ -106,7 +84,7 @@ public class StateModelsResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");
       ZkClient zkClient =
@@ -137,5 +115,6 @@ public class StateModelsResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in posting " + entity, e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 852fcfa..8e9f689 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,46 +28,23 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class StatusUpdateResource extends Resource {
+public class StatusUpdateResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(StatusUpdateResource.class);
 
-  public StatusUpdateResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public StatusUpdateResource() {
     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 false;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 22f14d7..fa31188 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,46 +27,23 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class StatusUpdatesResource extends Resource {
+public class StatusUpdatesResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(StatusUpdatesResource.class);
 
-  public StatusUpdatesResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public StatusUpdatesResource() {
     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 false;
-  }
-
-  @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     try {
       String clusterName = (String) getRequest().getAttributes().get("clusterName");

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 7c99a24..6d50ade 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,43 +26,20 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ZkChildResource extends Resource {
+public class ZkChildResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ZkChildResource.class);
 
-  public ZkChildResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ZkChildResource() {
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet() {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost() {
-    return false;
-  }
-
-  @Override
-  public boolean allowPut() {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete() {
-    return true;
+    setNegotiated(false);
   }
 
   private String getZKPath() {
@@ -80,7 +57,7 @@ public class ZkChildResource extends Resource {
   }
 
   @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     String zkPath = getZKPath();
 
@@ -126,7 +103,7 @@ public class ZkChildResource extends Resource {
   }
 
   @Override
-  public void removeRepresentations() {
+  public Representation delete() {
     String zkPath = getZKPath();
     try {
       ZkClient zkClient =
@@ -147,5 +124,6 @@ public class ZkChildResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in delete zkChild: " + zkPath, e);
     }
+    return null;
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 8f03e12..0ab29bb 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,49 +24,24 @@ 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.resource.Representation;
-import org.restlet.resource.Resource;
-import org.restlet.resource.StringRepresentation;
-import org.restlet.resource.Variant;
+import org.restlet.representation.Representation;
+import org.restlet.representation.StringRepresentation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
-public class ZkPathResource extends Resource {
+public class ZkPathResource extends ServerResource {
   private final static Logger LOG = Logger.getLogger(ZkPathResource.class);
 
-  public ZkPathResource(Context context, Request request, Response response) {
-    super(context, request, response);
+  public ZkPathResource() {
     getVariants().add(new Variant(MediaType.TEXT_PLAIN));
     getVariants().add(new Variant(MediaType.APPLICATION_JSON));
-  }
-
-  @Override
-  public boolean allowGet() {
-    return true;
-  }
-
-  @Override
-  public boolean allowPost() {
-    return true;
-  }
-
-  @Override
-  public boolean allowPut() {
-    return false;
-  }
-
-  @Override
-  public boolean allowDelete() {
-    return true;
+    setNegotiated(false);
   }
 
   private String getZKPath() {
@@ -84,7 +59,7 @@ public class ZkPathResource extends Resource {
   }
 
   @Override
-  public void acceptRepresentation(Representation entity) {
+  public Representation post(Representation entity) {
     String zkPath = getZKPath();
 
     try {
@@ -114,10 +89,11 @@ public class ZkPathResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in post zkPath: " + zkPath, e);
     }
+    return null;
   }
 
   @Override
-  public Representation represent(Variant variant) {
+  public Representation get() {
     StringRepresentation presentation = null;
     String zkPath = getZKPath();
 
@@ -166,7 +142,7 @@ public class ZkPathResource extends Resource {
   }
 
   @Override
-  public void removeRepresentations() {
+  public Representation delete() {
     String zkPath = getZKPath();
     try {
       ZkClient zkClient =
@@ -180,6 +156,7 @@ public class ZkPathResource extends Resource {
       getResponse().setStatus(Status.SUCCESS_OK);
       LOG.error("Error in delete zkPath: " + zkPath, e);
     }
+    return null;
   }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/helix-admin-webapp/src/test/java/org/apache/helix/tools/TestHelixAdminScenariosRest.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/test/java/org/apache/helix/tools/TestHelixAdminScenariosRest.java b/helix-admin-webapp/src/test/java/org/apache/helix/tools/TestHelixAdminScenariosRest.java
index 4730e76..04a70d2 100644
--- a/helix-admin-webapp/src/test/java/org/apache/helix/tools/TestHelixAdminScenariosRest.java
+++ b/helix-admin-webapp/src/test/java/org/apache/helix/tools/TestHelixAdminScenariosRest.java
@@ -34,15 +34,13 @@ import java.util.Map;
 
 import org.apache.helix.HelixDataAccessor;
 import org.apache.helix.TestHelper;
-import org.apache.helix.ZNRecord;
 import org.apache.helix.TestHelper.StartCMResult;
+import org.apache.helix.ZNRecord;
 import org.apache.helix.controller.HelixControllerMain;
 import org.apache.helix.manager.zk.ZKUtil;
 import org.apache.helix.model.ExternalView;
 import org.apache.helix.model.IdealState.IdealStateProperty;
 import org.apache.helix.model.LiveInstance;
-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;
@@ -55,14 +53,14 @@ import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.SerializationConfig;
 import org.restlet.Client;
 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.Protocol;
 import org.restlet.data.Reference;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
 import org.restlet.data.Status;
-import org.restlet.resource.Representation;
+import org.restlet.representation.Representation;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/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 236f327..c1251de 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
@@ -30,8 +30,8 @@ import java.util.Map;
 import org.apache.helix.PropertyPathConfig;
 import org.apache.helix.PropertyType;
 import org.apache.helix.ZNRecord;
-import org.apache.helix.model.StateModelDefinition;
 import org.apache.helix.model.InstanceConfig.InstanceConfigProperty;
+import org.apache.helix.model.StateModelDefinition;
 import org.apache.helix.tools.AdminTestBase;
 import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.webapp.resources.ClusterRepresentationUtil;
@@ -41,13 +41,13 @@ 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.Protocol;
 import org.restlet.data.Reference;
-import org.restlet.data.Request;
-import org.restlet.data.Response;
-import org.restlet.resource.Representation;
+import org.restlet.representation.Representation;
 import org.testng.Assert;
 import org.testng.AssertJUnit;
 import org.testng.annotations.Test;

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/helix-agent/pom.xml
----------------------------------------------------------------------
diff --git a/helix-agent/pom.xml b/helix-agent/pom.xml
index 6d690e5..73dd5fc 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>com.noelios.restlet</groupId>
-      <artifactId>com.noelios.restlet</artifactId>
+      <groupId>org.restlet.jse</groupId>
+      <artifactId>org.restlet</artifactId>
     </dependency>
     <dependency>
       <groupId>org.testng</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/helix-core/pom.xml
----------------------------------------------------------------------
diff --git a/helix-core/pom.xml b/helix-core/pom.xml
index 467393c..3a8e02b 100644
--- a/helix-core/pom.xml
+++ b/helix-core/pom.xml
@@ -46,7 +46,7 @@ under the License.
       org.apache.zookeeper*;version="[3.3,4)",
       org.codehaus.jackson*;version="[1.8,2)",
       org.josql*;version="[1.5,2)",
-      org.restlet;version="[1.1,2)",
+      org.restlet;version="[2.1.4,3]",
       *
     </osgi.import>
     <osgi.ignore>
@@ -137,13 +137,9 @@ under the License.
       <version>2.1</version>
     </dependency>
     <dependency>
-      <groupId>com.noelios.restlet</groupId>
-      <artifactId>com.noelios.restlet</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.restlet</groupId>
+      <groupId>org.restlet.jse</groupId>
       <artifactId>org.restlet</artifactId>
-      <version>1.1.10</version>
+      <version>2.1.4</version>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/helix-core/src/main/java/org/apache/helix/controller/restlet/ZKPropertyTransferServer.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/controller/restlet/ZKPropertyTransferServer.java b/helix-core/src/main/java/org/apache/helix/controller/restlet/ZKPropertyTransferServer.java
index 96277cf..e415da9 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/restlet/ZKPropertyTransferServer.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/restlet/ZKPropertyTransferServer.java
@@ -26,6 +26,7 @@ import java.util.Timer;
 import java.util.TimerTask;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.logging.Level;
 
 import org.I0Itec.zkclient.DataUpdater;
 import org.apache.helix.AccessOption;
@@ -73,6 +74,10 @@ public class ZKPropertyTransferServer {
   Component _component = null;
   Timer _timer = null;
 
+  static {
+    org.restlet.engine.Engine.setLogLevel(Level.SEVERE);
+  }
+
   /**
    * Timertask for zookeeper batched writes
    */

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/42243424/helix-core/src/main/java/org/apache/helix/controller/restlet/ZNRecordUpdateResource.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/controller/restlet/ZNRecordUpdateResource.java b/helix-core/src/main/java/org/apache/helix/controller/restlet/ZNRecordUpdateResource.java
index f704f54..33593ae 100644
--- a/helix-core/src/main/java/org/apache/helix/controller/restlet/ZNRecordUpdateResource.java
+++ b/helix-core/src/main/java/org/apache/helix/controller/restlet/ZNRecordUpdateResource.java
@@ -2,19 +2,19 @@ package org.apache.helix.controller.restlet;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * regarding copyright ownership. The ASF licenses this file
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
@@ -29,62 +29,49 @@ import org.codehaus.jackson.type.TypeReference;
 import org.restlet.data.Form;
 import org.restlet.data.MediaType;
 import org.restlet.data.Status;
-import org.restlet.resource.Representation;
-import org.restlet.resource.Resource;
+import org.restlet.representation.Representation;
+import org.restlet.representation.Variant;
+import org.restlet.resource.ServerResource;
 
 /**
  * REST resource for ZkPropertyTransfer server to receive PUT requests
  * that submits ZNRecordUpdates
  */
-public class ZNRecordUpdateResource extends Resource {
-  public static final String UPDATEKEY = "ZNRecordUpdate";
-  private static Logger LOG = Logger.getLogger(ZNRecordUpdateResource.class);
+public class ZNRecordUpdateResource extends ServerResource {
+    public static final String UPDATEKEY = "ZNRecordUpdate";
+    private static Logger LOG = Logger.getLogger(ZNRecordUpdateResource.class);
 
-  @Override
-  public boolean allowGet() {
-    return false;
-  }
-
-  @Override
-  public boolean allowPost() {
-    return false;
-  }
-
-  @Override
-  public boolean allowPut() {
-    return true;
-  }
-
-  @Override
-  public boolean allowDelete() {
-    return false;
-  }
-
-  @Override
-  public void storeRepresentation(Representation entity) {
-    try {
-      ZKPropertyTransferServer server = ZKPropertyTransferServer.getInstance();
+    public ZNRecordUpdateResource() { 
+        getVariants().add(new Variant(MediaType.TEXT_PLAIN));
+        getVariants().add(new Variant(MediaType.APPLICATION_JSON));
+        setNegotiated(false);
+    }
+    
+    @Override
+    public Representation put(Representation entity) {
+        try {
+            ZKPropertyTransferServer server = ZKPropertyTransferServer.getInstance();
 
-      Form form = new Form(entity);
-      String jsonPayload = form.getFirstValue(UPDATEKEY, true);
+            Form form = new Form(entity);
+            String jsonPayload = form.getFirstValue(UPDATEKEY, true);
 
-      // Parse the map from zkPath --> ZNRecordUpdate from the payload
-      StringReader sr = new StringReader(jsonPayload);
-      ObjectMapper mapper = new ObjectMapper();
-      TypeReference<TreeMap<String, ZNRecordUpdate>> typeRef =
-          new TypeReference<TreeMap<String, ZNRecordUpdate>>() {
-          };
-      Map<String, ZNRecordUpdate> holderMap = mapper.readValue(sr, typeRef);
-      // Enqueue the ZNRecordUpdate for sending
-      for (ZNRecordUpdate holder : holderMap.values()) {
-        server.enqueueData(holder);
-        LOG.info("Received " + holder.getPath() + " from "
-            + getRequest().getClientInfo().getAddress());
-      }
-      getResponse().setStatus(Status.SUCCESS_OK);
-    } catch (Exception e) {
-      LOG.error("", e);
-      getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
+            // Parse the map from zkPath --> ZNRecordUpdate from the payload
+            StringReader sr = new StringReader(jsonPayload);
+            ObjectMapper mapper = new ObjectMapper();
+            TypeReference<TreeMap<String, ZNRecordUpdate>> typeRef = new TypeReference<TreeMap<String, ZNRecordUpdate>>() {
+            };
+            Map<String, ZNRecordUpdate> holderMap = mapper.readValue(sr, typeRef);
+            // Enqueue the ZNRecordUpdate for sending
+            for (ZNRecordUpdate holder : holderMap.values()) {
+                server.enqueueData(holder);
+                LOG.info("Received " + holder.getPath() + " from " + getRequest().getClientInfo().getAddress());
+            }
+            getResponse().setStatus(Status.SUCCESS_OK);
+        } catch (Exception e) {
+            LOG.error("", e);
+            getResponse().setStatus(Status.SERVER_ERROR_INTERNAL);
+        }
+        return null;
     }
-  }
+
 }