You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ki...@apache.org on 2012/10/25 00:26:40 UTC

[3/47] git commit: Refactoring from com.linkedin.helix to org.apache.helix

 Refactoring from com.linkedin.helix to org.apache.helix


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

Branch: refs/heads/master
Commit: 3cb7a1c99422960230891bbe709bef5d93580726
Parents: c981fd7
Author: Kishore Gopalakrishna <g....@gmail.com>
Authored: Wed Oct 24 15:24:51 2012 -0700
Committer: Kishore Gopalakrishna <g....@gmail.com>
Committed: Wed Oct 24 15:24:51 2012 -0700

----------------------------------------------------------------------
 build                                              |    2 +-
 helix-admin-webapp/helix-admin-webapp-0.5.28.ivy   |    4 +-
 helix-admin-webapp/pom.xml                         |    2 +-
 .../linkedin/helix/webapp/HelixAdminWebApp.java    |   65 -
 .../helix/webapp/RestAdminApplication.java         |  221 -
 .../resources/ClusterRepresentationUtil.java       |  286 -
 .../helix/webapp/resources/ClusterResource.java    |  210 -
 .../helix/webapp/resources/ClustersResource.java   |  152 -
 .../helix/webapp/resources/ConfigResource.java     |  311 -
 .../helix/webapp/resources/ControllerResource.java |  157 -
 .../resources/ControllerStatusUpdateResource.java  |  117 -
 .../webapp/resources/CurrentStateResource.java     |  123 -
 .../webapp/resources/CurrentStatesResource.java    |   98 -
 .../helix/webapp/resources/ErrorResource.java      |  121 -
 .../helix/webapp/resources/ErrorsResource.java     |   99 -
 .../webapp/resources/ExternalViewResource.java     |  111 -
 .../helix/webapp/resources/IdealStateResource.java |  195 -
 .../helix/webapp/resources/InstanceResource.java   |  230 -
 .../helix/webapp/resources/InstancesResource.java  |  192 -
 .../helix/webapp/resources/JsonParameters.java     |  248 -
 .../webapp/resources/ResourceGroupResource.java    |  173 -
 .../webapp/resources/ResourceGroupsResource.java   |  174 -
 .../webapp/resources/SchedulerTasksResource.java   |  186 -
 .../helix/webapp/resources/StateModelResource.java |  157 -
 .../webapp/resources/StateModelsResource.java      |  150 -
 .../webapp/resources/StatusUpdateResource.java     |  127 -
 .../webapp/resources/StatusUpdatesResource.java    |  103 -
 .../helix/webapp/resources/ZkChildResource.java    |  158 -
 .../helix/webapp/resources/ZkPathResource.java     |  213 -
 helix-admin-webapp/src/test/conf/testng.xml        |    4 +-
 .../com/linkedin/helix/tools/AdminTestBase.java    |   68 -
 .../com/linkedin/helix/tools/AdminTestHelper.java  |   63 -
 .../helix/tools/TestHelixAdminScenariosRest.java   |  739 -
 .../linkedin/helix/tools/TestResetInstance.java    |  117 -
 .../helix/tools/TestResetPartitionState.java       |  211 -
 .../linkedin/helix/tools/TestResetResource.java    |  118 -
 .../helix/webapp/TestClusterManagementWebapp.java  |  649 -
 helix-core/helix-core-0.5.28.ivy                   |    2 +-
 helix-core/pom.xml                                 |   18 +-
 .../main/java/com/linkedin/helix/AccessOption.java |   52 -
 .../java/com/linkedin/helix/BaseDataAccessor.java  |  192 -
 .../linkedin/helix/ClusterMessagingService.java    |  116 -
 .../main/java/com/linkedin/helix/ClusterView.java  |  168 -
 .../java/com/linkedin/helix/ConfigAccessor.java    |  269 -
 .../com/linkedin/helix/ConfigChangeListener.java   |   38 -
 .../main/java/com/linkedin/helix/ConfigScope.java  |  145 -
 .../com/linkedin/helix/ConfigScopeBuilder.java     |  133 -
 .../linkedin/helix/ControllerChangeListener.java   |   27 -
 .../src/main/java/com/linkedin/helix/Criteria.java |  151 -
 .../linkedin/helix/CurrentStateChangeListener.java |   36 -
 .../main/java/com/linkedin/helix/DataAccessor.java |   97 -
 .../linkedin/helix/ExternalViewChangeListener.java |   34 -
 .../main/java/com/linkedin/helix/GroupCommit.java  |  168 -
 .../linkedin/helix/HealthStateChangeListener.java  |   36 -
 .../main/java/com/linkedin/helix/HelixAdmin.java   |  386 -
 .../java/com/linkedin/helix/HelixConstants.java    |   47 -
 .../java/com/linkedin/helix/HelixDataAccessor.java |  161 -
 .../java/com/linkedin/helix/HelixException.java    |   31 -
 .../main/java/com/linkedin/helix/HelixManager.java |  296 -
 .../com/linkedin/helix/HelixManagerFactory.java    |  104 -
 .../java/com/linkedin/helix/HelixProperty.java     |  224 -
 .../java/com/linkedin/helix/HelixTimerTask.java    |   33 -
 .../linkedin/helix/IdealStateChangeListener.java   |   33 -
 .../main/java/com/linkedin/helix/InstanceType.java |   34 -
 .../linkedin/helix/LiveInstanceChangeListener.java |   34 -
 .../java/com/linkedin/helix/MessageListener.java   |   35 -
 .../com/linkedin/helix/NotificationContext.java    |  103 -
 .../com/linkedin/helix/PreConnectCallback.java     |   12 -
 .../main/java/com/linkedin/helix/PropertyKey.java  |  553 -
 .../com/linkedin/helix/PropertyPathConfig.java     |  214 -
 .../main/java/com/linkedin/helix/PropertyType.java |  193 -
 .../src/main/java/com/linkedin/helix/ZNRecord.java |  364 -
 .../java/com/linkedin/helix/ZNRecordAssembler.java |   30 -
 .../com/linkedin/helix/ZNRecordBucketizer.java     |  116 -
 .../java/com/linkedin/helix/ZNRecordDelta.java     |   49 -
 .../java/com/linkedin/helix/ZNRecordUpdater.java   |   24 -
 .../helix/alerts/AccumulateAggregator.java         |   70 -
 .../java/com/linkedin/helix/alerts/Aggregator.java |   38 -
 .../main/java/com/linkedin/helix/alerts/Alert.java |   53 -
 .../com/linkedin/helix/alerts/AlertComparator.java |   27 -
 .../com/linkedin/helix/alerts/AlertParser.java     |  147 -
 .../com/linkedin/helix/alerts/AlertProcessor.java  |  355 -
 .../linkedin/helix/alerts/AlertValueAndStatus.java |   39 -
 .../com/linkedin/helix/alerts/AlertsHolder.java    |  286 -
 .../com/linkedin/helix/alerts/DecayAggregator.java |   78 -
 .../com/linkedin/helix/alerts/DivideOperator.java  |   36 -
 .../com/linkedin/helix/alerts/ExpandOperator.java  |   35 -
 .../helix/alerts/ExpressionOperatorType.java       |   42 -
 .../linkedin/helix/alerts/ExpressionParser.java    |  579 -
 .../helix/alerts/GreaterAlertComparator.java       |   41 -
 .../linkedin/helix/alerts/MultiplyOperator.java    |   59 -
 .../java/com/linkedin/helix/alerts/Operator.java   |  115 -
 .../main/java/com/linkedin/helix/alerts/Stat.java  |   44 -
 .../com/linkedin/helix/alerts/StatsHolder.java     |  358 -
 .../com/linkedin/helix/alerts/SumEachOperator.java |   47 -
 .../com/linkedin/helix/alerts/SumOperator.java     |   56 -
 .../main/java/com/linkedin/helix/alerts/Tuple.java |   94 -
 .../linkedin/helix/alerts/WindowAggregator.java    |   90 -
 .../com/linkedin/helix/alerts/package-info.java    |    4 -
 .../helix/controller/ExternalViewGenerator.java    |  154 -
 .../helix/controller/GenericHelixController.java   |  608 -
 .../helix/controller/HelixControllerMain.java      |  266 -
 .../helix/controller/HierarchicalDataHolder.java   |  168 -
 .../linkedin/helix/controller/package-info.java    |    4 -
 .../controller/pipeline/AbstractBaseStage.java     |   78 -
 .../helix/controller/pipeline/Pipeline.java        |   65 -
 .../controller/pipeline/PipelineRegistry.java      |   54 -
 .../linkedin/helix/controller/pipeline/Stage.java  |   60 -
 .../helix/controller/pipeline/StageContext.java    |   21 -
 .../helix/controller/pipeline/StageException.java  |   29 -
 .../helix/controller/pipeline/package-info.java    |    5 -
 .../restlet/ZKPropertyTransferServer.java          |  262 -
 .../helix/controller/restlet/ZNRecordUpdate.java   |   77 -
 .../controller/restlet/ZNRecordUpdateResource.java |   80 -
 .../restlet/ZkPropertyTransferApplication.java     |   30 -
 .../restlet/ZkPropertyTransferClient.java          |  178 -
 .../helix/controller/restlet/package-info.java     |    5 -
 .../helix/controller/stages/AttributeName.java     |   27 -
 .../stages/BestPossibleStateCalcStage.java         |  609 -
 .../controller/stages/BestPossibleStateOutput.java |   72 -
 .../helix/controller/stages/ClusterDataCache.java  |  266 -
 .../helix/controller/stages/ClusterEvent.java      |   73 -
 .../controller/stages/CompatibilityCheckStage.java |  123 -
 .../stages/CurrentStateComputationStage.java       |  167 -
 .../controller/stages/CurrentStateOutput.java      |  204 -
 .../stages/ExternalViewComputeStage.java           |  122 -
 .../helix/controller/stages/HealthDataCache.java   |  130 -
 .../controller/stages/MessageGenerationOutput.java |   73 -
 .../controller/stages/MessageGenerationPhase.java  |  184 -
 .../controller/stages/MessageSelectionStage.java   |  337 -
 .../stages/MessageSelectionStageOutput.java        |   65 -
 .../controller/stages/MessageThrottleStage.java    |  229 -
 .../stages/MessageThrottleStageOutput.java         |   56 -
 .../controller/stages/ReadClusterDataStage.java    |   78 -
 .../controller/stages/ReadHealthDataStage.java     |   55 -
 .../stages/ResourceComputationStage.java           |  156 -
 .../controller/stages/StatsAggregationStage.java   |  457 -
 .../controller/stages/TaskAssignmentStage.java     |  140 -
 .../helix/controller/stages/package-info.java      |    5 -
 .../linkedin/helix/examples/BootstrapHandler.java  |  111 -
 .../linkedin/helix/examples/BootstrapProcess.java  |  405 -
 .../linkedin/helix/examples/DummyParticipant.java  |  123 -
 .../com/linkedin/helix/examples/ExampleHelper.java |   56 -
 .../linkedin/helix/examples/ExampleProcess.java    |  269 -
 .../linkedin/helix/examples/IdealStateExample.java |  163 -
 .../examples/LeaderStandbyStateModelFactory.java   |   67 -
 .../examples/MasterSlaveStateModelFactory.java     |   99 -
 .../examples/OnlineOfflineStateModelFactory.java   |   74 -
 .../com/linkedin/helix/examples/package-info.java  |    5 -
 .../healthcheck/AccumulateAggregationType.java     |   41 -
 .../helix/healthcheck/AggregationType.java         |   29 -
 .../helix/healthcheck/AggregationTypeFactory.java  |   83 -
 .../helix/healthcheck/DecayAggregationType.java    |   62 -
 .../healthcheck/DefaultHealthReportProvider.java   |   94 -
 .../helix/healthcheck/DefaultPerfCounters.java     |  111 -
 .../helix/healthcheck/HealthReportProvider.java    |   38 -
 .../healthcheck/HealthStatsAggregationTask.java    |  203 -
 .../ParticipantHealthReportCollector.java          |   29 -
 .../ParticipantHealthReportCollectorImpl.java      |  186 -
 .../PerformanceHealthReportProvider.java           |  161 -
 .../java/com/linkedin/helix/healthcheck/Stat.java  |  146 -
 .../healthcheck/StatHealthReportProvider.java      |  175 -
 .../helix/healthcheck/WindowAggregationType.java   |   76 -
 .../linkedin/helix/healthcheck/package-info.java   |    5 -
 .../helix/josql/ClusterJosqlQueryProcessor.java    |  304 -
 .../helix/josql/DataAccessorBasedTupleReader.java  |  171 -
 .../helix/josql/JsqlQueryListProcessor.java        |   57 -
 .../helix/josql/ZNRecordJosqlFunctionHandler.java  |   90 -
 .../helix/josql/ZNRecordQueryProcessor.java        | 1401 --
 .../java/com/linkedin/helix/josql/ZNRecordRow.java |  194 -
 .../com/linkedin/helix/josql/package-info.java     |    5 -
 .../manager/file/DynamicFileHelixManager.java      |  460 -
 .../helix/manager/file/FileCallbackHandler.java    |  293 -
 .../helix/manager/file/FileDataAccessor.java       |  319 -
 .../helix/manager/file/FileHelixAdmin.java         |  486 -
 .../helix/manager/file/FileHelixDataAccessor.java  |  351 -
 .../helix/manager/file/StaticFileHelixManager.java |  569 -
 .../linkedin/helix/manager/file/package-info.java  |    5 -
 .../helix/manager/zk/BasicZkSerializer.java        |   43 -
 .../helix/manager/zk/ByteArraySerializer.java      |   20 -
 .../java/com/linkedin/helix/manager/zk/Cache.java  |  146 -
 .../linkedin/helix/manager/zk/CallbackHandler.java |  399 -
 .../helix/manager/zk/ChainedPathZkSerializer.java  |  131 -
 .../zk/DefaultControllerMessageHandlerFactory.java |   88 -
 ...faultParticipantErrorMessageHandlerFactory.java |  128 -
 .../zk/DefaultSchedulerMessageHandlerFactory.java  |  277 -
 .../helix/manager/zk/HelixGroupCommit.java         |  174 -
 .../helix/manager/zk/PathBasedZkSerializer.java    |   28 -
 .../helix/manager/zk/WriteThroughCache.java        |  114 -
 .../linkedin/helix/manager/zk/ZKDataAccessor.java  |  329 -
 .../helix/manager/zk/ZKExceptionHandler.java       |   49 -
 .../linkedin/helix/manager/zk/ZKHelixAdmin.java    | 1272 --
 .../helix/manager/zk/ZKHelixDataAccessor.java      |  590 -
 .../linkedin/helix/manager/zk/ZKHelixManager.java  | 1098 --
 .../java/com/linkedin/helix/manager/zk/ZKUtil.java |  353 -
 .../helix/manager/zk/ZNRecordSerializer.java       |  133 -
 .../manager/zk/ZNRecordStreamingSerializer.java    |  300 -
 .../helix/manager/zk/ZkAsyncCallbacks.java         |  171 -
 .../helix/manager/zk/ZkBaseDataAccessor.java       | 1243 --
 .../helix/manager/zk/ZkCacheBaseDataAccessor.java  |  984 --
 .../helix/manager/zk/ZkCacheEventThread.java       |   88 -
 .../linkedin/helix/manager/zk/ZkCallbackCache.java |  348 -
 .../com/linkedin/helix/manager/zk/ZkClient.java    |  445 -
 .../helix/manager/zk/ZkStateChangeListener.java    |   93 -
 .../linkedin/helix/manager/zk/package-info.java    |    5 -
 .../linkedin/helix/messaging/AsyncCallback.java    |  168 -
 .../helix/messaging/CriteriaEvaluator.java         |   94 -
 .../helix/messaging/DefaultMessagingService.java   |  392 -
 .../messaging/handling/AsyncCallbackService.java   |  149 -
 .../messaging/handling/GroupMessageHandler.java    |  115 -
 .../handling/HelixStateTransitionHandler.java      |  388 -
 .../helix/messaging/handling/HelixTask.java        |  369 -
 .../messaging/handling/HelixTaskExecutor.java      |  638 -
 .../helix/messaging/handling/HelixTaskResult.java  |   74 -
 .../helix/messaging/handling/MessageHandler.java   |   83 -
 .../messaging/handling/MessageHandlerFactory.java  |   28 -
 .../helix/messaging/handling/package-info.java     |    5 -
 .../com/linkedin/helix/messaging/package-info.java |    5 -
 .../com/linkedin/helix/model/AlertHistory.java     |   22 -
 .../java/com/linkedin/helix/model/AlertStatus.java |   85 -
 .../main/java/com/linkedin/helix/model/Alerts.java |   90 -
 .../linkedin/helix/model/ClusterConstraints.java   |  217 -
 .../com/linkedin/helix/model/CurrentState.java     |  169 -
 .../main/java/com/linkedin/helix/model/Error.java  |   20 -
 .../com/linkedin/helix/model/ExternalView.java     |   76 -
 .../java/com/linkedin/helix/model/HealthStat.java  |  126 -
 .../java/com/linkedin/helix/model/IdealState.java  |  312 -
 .../com/linkedin/helix/model/InstanceConfig.java   |  190 -
 .../com/linkedin/helix/model/LeaderHistory.java    |   64 -
 .../com/linkedin/helix/model/LiveInstance.java     |  115 -
 .../java/com/linkedin/helix/model/Message.java     |  583 -
 .../java/com/linkedin/helix/model/Partition.java   |   57 -
 .../java/com/linkedin/helix/model/PauseSignal.java |   38 -
 .../com/linkedin/helix/model/PersistentStats.java  |   98 -
 .../java/com/linkedin/helix/model/Resource.java    |  123 -
 .../linkedin/helix/model/ResourceAssignment.java   |   21 -
 .../linkedin/helix/model/StateModelDefinition.java |  143 -
 .../com/linkedin/helix/model/StatusUpdate.java     |   36 -
 .../com/linkedin/helix/model/package-info.java     |    5 -
 .../helix/monitoring/ParticipantMonitor.java       |  137 -
 .../helix/monitoring/SensorNameProvider.java       |    6 -
 .../linkedin/helix/monitoring/StatCollector.java   |   90 -
 .../helix/monitoring/StateTransitionContext.java   |   90 -
 .../helix/monitoring/StateTransitionDataPoint.java |   45 -
 .../helix/monitoring/ZKPathDataDumpTask.java       |  163 -
 .../helix/monitoring/mbeans/ClusterAlertItem.java  |   97 -
 .../monitoring/mbeans/ClusterAlertItemMBean.java   |   27 -
 .../mbeans/ClusterAlertMBeanCollection.java        |  333 -
 .../monitoring/mbeans/ClusterMBeanObserver.java    |   98 -
 .../monitoring/mbeans/ClusterStatusMonitor.java    |  283 -
 .../mbeans/ClusterStatusMonitorMBean.java          |   43 -
 .../mbeans/HelixStageLatencyMonitor.java           |  113 -
 .../mbeans/HelixStageLatencyMonitorMBean.java      |   25 -
 .../monitoring/mbeans/MessageQueueMonitor.java     |   51 -
 .../mbeans/MessageQueueMonitorMBean.java           |   19 -
 .../helix/monitoring/mbeans/ResourceMonitor.java   |  141 -
 .../monitoring/mbeans/ResourceMonitorMBean.java    |   29 -
 .../mbeans/StateTransitionStatMonitor.java         |  157 -
 .../mbeans/StateTransitionStatMonitorMBean.java    |   44 -
 .../helix/monitoring/mbeans/package-info.java      |    5 -
 .../linkedin/helix/monitoring/package-info.java    |    5 -
 .../main/java/com/linkedin/helix/package-info.java |   29 -
 .../participant/CustomCodeCallbackHandler.java     |   31 -
 .../helix/participant/CustomCodeInvoker.java       |  122 -
 .../participant/DistClusterControllerElection.java |  199 -
 .../DistClusterControllerStateModel.java           |  149 -
 .../DistClusterControllerStateModelFactory.java    |   36 -
 .../participant/GenericLeaderStandbyModel.java     |   96 -
 .../GenericLeaderStandbyStateModelFactory.java     |   44 -
 .../helix/participant/HelixCustomCodeRunner.java   |  183 -
 .../helix/participant/HelixStateMachineEngine.java |  284 -
 .../helix/participant/StateMachineEngine.java      |   67 -
 .../linkedin/helix/participant/package-info.java   |    5 -
 .../helix/participant/statemachine/StateModel.java |   75 -
 .../statemachine/StateModelFactory.java            |   75 -
 .../participant/statemachine/StateModelInfo.java   |   28 -
 .../participant/statemachine/StateModelParser.java |  148 -
 .../statemachine/StateTransitionError.java         |   43 -
 .../helix/participant/statemachine/Transition.java |   28 -
 .../participant/statemachine/package-info.java     |    5 -
 .../helix/spectator/RoutingTableProvider.java      |  301 -
 .../com/linkedin/helix/spectator/package-info.java |    5 -
 .../helix/store/HelixPropertyListener.java         |   25 -
 .../linkedin/helix/store/HelixPropertyStore.java   |   44 -
 .../helix/store/PropertyChangeListener.java        |   39 -
 .../helix/store/PropertyJsonComparator.java        |   65 -
 .../helix/store/PropertyJsonSerializer.java        |   95 -
 .../linkedin/helix/store/PropertySerializer.java   |   40 -
 .../com/linkedin/helix/store/PropertyStat.java     |   55 -
 .../com/linkedin/helix/store/PropertyStore.java    |  212 -
 .../helix/store/PropertyStoreException.java        |   36 -
 .../linkedin/helix/store/PropertyStoreFactory.java |   63 -
 .../helix/store/ZNRecordJsonSerializer.java        |   40 -
 .../helix/store/file/FileHelixPropertyStore.java   |  293 -
 .../helix/store/file/FilePropertyStore.java        |  942 --
 .../linkedin/helix/store/file/package-info.java    |    5 -
 .../com/linkedin/helix/store/package-info.java     |    5 -
 .../com/linkedin/helix/store/zk/PropertyItem.java  |   45 -
 .../linkedin/helix/store/zk/ZKPropertyStore.java   |  735 -
 .../java/com/linkedin/helix/store/zk/ZNode.java    |  110 -
 .../linkedin/helix/store/zk/ZkCallbackHandler.java |   97 -
 .../helix/store/zk/ZkHelixPropertyStore.java       |   31 -
 .../com/linkedin/helix/store/zk/ZkListener.java    |   10 -
 .../com/linkedin/helix/store/zk/package-info.java  |    5 -
 .../linkedin/helix/tools/CLMLogFileAppender.java   |   83 -
 .../com/linkedin/helix/tools/ClusterSetup.java     | 1853 ---
 .../linkedin/helix/tools/ClusterStateVerifier.java |  909 --
 .../helix/tools/ClusterViewSerializer.java         |  177 -
 .../tools/IdealCalculatorByConsistentHashing.java  |  625 -
 .../helix/tools/IdealStateCalculatorByRush.java    |  325 -
 .../tools/IdealStateCalculatorByShuffling.java     |  118 -
 .../IdealStateCalculatorForEspressoRelay.java      |  100 -
 .../tools/IdealStateCalculatorForStorageNode.java  |  787 --
 .../java/com/linkedin/helix/tools/JmxDumper.java   |  471 -
 .../com/linkedin/helix/tools/LocalZKServer.java    |   75 -
 .../com/linkedin/helix/tools/MessagePoster.java    |  119 -
 .../com/linkedin/helix/tools/PropertiesReader.java |   56 -
 .../java/com/linkedin/helix/tools/RUSHrHash.java   |  352 -
 .../helix/tools/StateModelConfigGenerator.java     |  346 -
 .../java/com/linkedin/helix/tools/TestCommand.java |  106 -
 .../com/linkedin/helix/tools/TestExecutor.java     | 1029 --
 .../java/com/linkedin/helix/tools/TestTrigger.java |  127 -
 .../com/linkedin/helix/tools/YAISCalculator.java   |  202 -
 .../java/com/linkedin/helix/tools/ZKDumper.java    |  274 -
 .../com/linkedin/helix/tools/ZKLogFormatter.java   |  395 -
 .../com/linkedin/helix/tools/ZkLogAnalyzer.java    |  491 -
 .../linkedin/helix/tools/ZkLogCSVFormatter.java    |  444 -
 .../java/com/linkedin/helix/tools/ZnodeOpArg.java  |  180 -
 .../java/com/linkedin/helix/tools/ZnodeValue.java  |   76 -
 .../com/linkedin/helix/tools/package-info.java     |    5 -
 .../java/com/linkedin/helix/util/HelixUtil.java    |  181 -
 .../com/linkedin/helix/util/StatusUpdateUtil.java  |  629 -
 .../com/linkedin/helix/util/StringTemplate.java    |   83 -
 .../java/com/linkedin/helix/util/ZKClientPool.java |   71 -
 .../java/com/linkedin/helix/util/ZNRecordUtil.java |  123 -
 .../java/com/linkedin/helix/util/package-info.java |    5 -
 .../config/cluster-12345-cluster-view.json         |10666 ---------------
 .../integration-test/script/driver_cmd_dict.py     |   12 +-
 helix-core/src/test/conf/testng.xml                |   28 +-
 .../src/test/java/com/linkedin/helix/AppTest.java  |  189 -
 .../com/linkedin/helix/DummyProcessThread.java     |   75 -
 .../java/com/linkedin/helix/ExternalCommand.java   |  389 -
 .../src/test/java/com/linkedin/helix/Mocks.java    |  765 --
 .../java/com/linkedin/helix/ScriptTestHelper.java  |   62 -
 .../linkedin/helix/TestClusterviewSerializer.java  |   73 -
 .../com/linkedin/helix/TestConfigAccessor.java     |  147 -
 .../TestEspressoStorageClusterIdealState.java      |  319 -
 .../java/com/linkedin/helix/TestGetProperty.java   |   48 -
 .../java/com/linkedin/helix/TestGroupCommit.java   |   52 -
 .../com/linkedin/helix/TestHelixTaskExecutor.java  |   87 -
 .../com/linkedin/helix/TestHelixTaskHandler.java   |  127 -
 .../test/java/com/linkedin/helix/TestHelper.java   | 1081 --
 .../linkedin/helix/TestHierarchicalDataStore.java  |   83 -
 .../TestParticipantHealthReportCollectorImpl.java  |   70 -
 .../java/com/linkedin/helix/TestPerfCounters.java  |   73 -
 .../helix/TestPerformanceHealthReportProvider.java |  162 -
 .../com/linkedin/helix/TestPropertyPathConfig.java |   55 -
 .../helix/TestRelayIdealStateCalculator.java       |   70 -
 .../java/com/linkedin/helix/TestRoutingTable.java  |  282 -
 .../test/java/com/linkedin/helix/TestSample.java   |   66 -
 .../com/linkedin/helix/TestShuffledIdealState.java |  266 -
 .../java/com/linkedin/helix/TestZKCallback.java    |  246 -
 .../linkedin/helix/TestZKRoutingInfoProvider.java  |  208 -
 .../test/java/com/linkedin/helix/TestZNRecord.java |  126 -
 .../com/linkedin/helix/TestZNRecordBucketizer.java |   39 -
 .../com/linkedin/helix/TestZkClientWrapper.java    |  120 -
 .../com/linkedin/helix/TestZkConnectionCount.java  |   46 -
 .../java/com/linkedin/helix/TestZnodeModify.java   |  278 -
 .../test/java/com/linkedin/helix/ZkTestHelper.java |  173 -
 .../java/com/linkedin/helix/ZkUnitTestBase.java    |  428 -
 .../com/linkedin/helix/alerts/TestAddAlerts.java   |  119 -
 .../helix/alerts/TestAddPersistentStats.java       |  216 -
 .../linkedin/helix/alerts/TestAlertValidation.java |  165 -
 .../helix/alerts/TestArrivingParticipantStats.java |  485 -
 .../helix/alerts/TestBaseStatsValidation.java      |  181 -
 .../linkedin/helix/alerts/TestEvaluateAlerts.java  |  386 -
 .../com/linkedin/helix/alerts/TestOperators.java   |  289 -
 .../com/linkedin/helix/alerts/TestStatsMatch.java  |  105 -
 .../controller/TestControllerRebalancingTimer.java |  286 -
 .../TestControllerRebalancingTimerPeriod.java      |  157 -
 .../helix/controller/stages/BaseStageTest.java     |  172 -
 .../controller/stages/DummyClusterManager.java     |  268 -
 .../stages/TestBestPossibleStateCalcStage.java     |   69 -
 .../helix/controller/stages/TestClusterEvent.java  |   34 -
 .../stages/TestCompatibilityCheckStage.java        |  168 -
 .../stages/TestCurrentStateComputationStage.java   |  122 -
 .../stages/TestMessageThrottleStage.java           |  358 -
 .../controller/stages/TestMsgSelectionStage.java   |  117 -
 .../controller/stages/TestParseInfoFromAlert.java  |   37 -
 .../controller/stages/TestRebalancePipeline.java   |  417 -
 .../stages/TestResourceComputationStage.java       |  241 -
 .../helix/healthcheck/TestAddDropAlert.java        |  194 -
 .../healthcheck/TestAlertActionTriggering.java     |  188 -
 .../helix/healthcheck/TestAlertFireHistory.java    |  328 -
 .../helix/healthcheck/TestDummyAlerts.java         |  153 -
 .../helix/healthcheck/TestExpandAlert.java         |  195 -
 .../helix/healthcheck/TestSimpleAlert.java         |  207 -
 .../helix/healthcheck/TestSimpleWildcardAlert.java |  256 -
 .../helix/healthcheck/TestStalenessAlert.java      |  192 -
 .../helix/healthcheck/TestWildcardAlert.java       |  301 -
 .../linkedin/helix/integration/FileCMTestBase.java |  208 -
 .../helix/integration/IntegrationTest.java         |   39 -
 .../helix/integration/TestAddClusterV2.java        |  227 -
 .../TestAddNodeAfterControllerStart.java           |  238 -
 .../TestAddStateModelFactoryAfterConnect.java      |  126 -
 .../helix/integration/TestAutoIsWithEmptyMap.java  |   87 -
 .../helix/integration/TestAutoRebalance.java       |  213 -
 .../helix/integration/TestBasicSpectator.java      |   61 -
 .../helix/integration/TestBucketizedResource.java  |   87 -
 .../integration/TestCMWithFailParticipant.java     |   68 -
 .../integration/TestCarryOverBadCurState.java      |   73 -
 .../helix/integration/TestClusterStartsup.java     |  165 -
 .../helix/integration/TestCustomIdealState.java    |  155 -
 .../linkedin/helix/integration/TestDisable.java    |  403 -
 .../helix/integration/TestDisableNode.java         |   46 -
 .../helix/integration/TestDisablePartition.java    |   75 -
 .../helix/integration/TestDistributedCMMain.java   |  179 -
 .../TestDistributedClusterController.java          |  148 -
 .../com/linkedin/helix/integration/TestDriver.java |  519 -
 .../com/linkedin/helix/integration/TestDrop.java   |  200 -
 .../helix/integration/TestDropResource.java        |   91 -
 .../integration/TestDynamicFileClusterManager.java |   59 -
 .../TestEnablePartitionDuringDisable.java          |  159 -
 .../helix/integration/TestErrorPartition.java      |  148 -
 .../helix/integration/TestExpandCluster.java       |   72 -
 .../helix/integration/TestExternalCmd.java         |   36 -
 .../helix/integration/TestExternalViewUpdates.java |   89 -
 .../helix/integration/TestFailOverPerf1kp.java     |   52 -
 .../integration/TestFileBasedHelixManager.java     |   67 -
 .../helix/integration/TestGroupMessage.java        |  194 -
 .../integration/TestHelixCustomCodeRunner.java     |  154 -
 .../integration/TestHelixUsingDifferentParams.java |   74 -
 .../TestMessagePartitionStateMismatch.java         |   78 -
 .../helix/integration/TestMessageThrottle.java     |  144 -
 .../helix/integration/TestMessagingService.java    |  478 -
 .../helix/integration/TestNonOfflineInitState.java |  113 -
 .../helix/integration/TestNullReplica.java         |   78 -
 .../integration/TestParticipantErrorMessage.java   |   76 -
 .../integration/TestParticipantNameCollision.java  |   57 -
 .../helix/integration/TestPauseSignal.java         |  121 -
 .../helix/integration/TestRenamePartition.java     |  140 -
 .../helix/integration/TestResetInstance.java       |  113 -
 .../helix/integration/TestResetPartitionState.java |  224 -
 .../helix/integration/TestResetResource.java       |  112 -
 .../helix/integration/TestRestartParticipant.java  |  115 -
 .../helix/integration/TestSchedulerMessage.java    |  424 -
 .../linkedin/helix/integration/TestSchemataSM.java |   66 -
 .../integration/TestSessionExpiryInTransition.java |  115 -
 .../helix/integration/TestStandAloneCMMain.java    |   57 -
 .../integration/TestStandAloneCMSessionExpiry.java |  136 -
 .../integration/TestStateTransitionTimeout.java    |  210 -
 .../helix/integration/TestStatusUpdate.java        |  103 -
 .../helix/integration/TestSwapInstance.java        |  128 -
 .../TestZNRecordQueryProcessorWithZK.java          |  157 -
 .../helix/integration/ZkIntegrationTestBase.java   |  160 -
 .../helix/integration/ZkStandAloneCMTestBase.java  |  166 -
 ...tandAloneCMTestBaseWithPropertyServerCheck.java |   73 -
 .../josql/TestClusterJosqlQueryProcessor.java      |  102 -
 .../linkedin/helix/josql/TestJosqlProcessor.java   |  227 -
 .../helix/josql/TestZNRecordQueryProcessor.java    |  231 -
 .../com/linkedin/helix/manager/MockListener.java   |  105 -
 .../helix/manager/file/MockFileHelixManager.java   |  274 -
 .../manager/file/TestFileCallbackHandler.java      |  104 -
 .../helix/manager/file/TestFileDataAccessor.java   |   93 -
 .../helix/manager/file/TestStaticFileCM.java       |  148 -
 .../manager/file/UnitTestDynFileClusterMgr.java    |  280 -
 .../zk/TestDefaultControllerMsgHandlerFactory.java |  102 -
 .../helix/manager/zk/TestHandleNewSession.java     |   70 -
 .../helix/manager/zk/TestLiveInstanceBounce.java   |   64 -
 .../manager/zk/TestWtCacheAsyncOpMultiThread.java  |  276 -
 .../manager/zk/TestWtCacheAsyncOpSingleThread.java |  251 -
 .../manager/zk/TestWtCacheSyncOpSingleThread.java  |  194 -
 .../helix/manager/zk/TestZKDataAccessor.java       |  171 -
 .../helix/manager/zk/TestZKDataAccessorCache.java  |  149 -
 .../helix/manager/zk/TestZKLiveInstanceData.java   |  150 -
 .../manager/zk/TestZKPropertyTransferServer.java   |   58 -
 .../com/linkedin/helix/manager/zk/TestZKUtil.java  |  160 -
 .../helix/manager/zk/TestZNRecordSizeLimit.java    |  322 -
 .../helix/manager/zk/TestZkBaseDataAccessor.java   |  315 -
 .../manager/zk/TestZkCacheAsyncOpSingleThread.java |  378 -
 .../manager/zk/TestZkCacheSyncOpSingleThread.java  |  205 -
 .../helix/manager/zk/TestZkClusterManager.java     |  145 -
 .../helix/manager/zk/TestZkHelixAdmin.java         |  196 -
 .../helix/messaging/TestAsyncCallback.java         |  127 -
 .../helix/messaging/TestAsyncCallbackSvc.java      |  128 -
 .../messaging/TestDefaultMessagingService.java     |  243 -
 .../handling/TestConfigThreadpoolSize.java         |  124 -
 .../messaging/handling/TestHelixTaskExecutor.java  |  584 -
 .../handling/TestResourceThreadpoolSize.java       |   50 -
 .../helix/mock/consumer/ConsumerAdapter.java       |  134 -
 .../linkedin/helix/mock/consumer/RelayConfig.java  |   81 -
 .../helix/mock/consumer/RelayConsumer.java         |  108 -
 .../helix/mock/controller/ClusterController.java   |  152 -
 .../helix/mock/controller/MockController.java      |  143 -
 .../mock/controller/MockControllerProcess.java     |   73 -
 .../helix/mock/relay/DummyRelayProcess.java        |  248 -
 .../helix/mock/relay/RelayIdealStateGenerator.java |   47 -
 .../helix/mock/router/MockRouterProcess.java       |  158 -
 .../linkedin/helix/mock/router/RouterAdapter.java  |   21 -
 .../linkedin/helix/mock/storage/DummyProcess.java  |  546 -
 .../helix/mock/storage/HealthCheckStateModel.java  |  247 -
 .../mock/storage/HealthCheckStateModelFactory.java |   50 -
 .../storage/MockEspressoHealthReportProvider.java  |   82 -
 .../mock/storage/MockHealthReportParticipant.java  |  274 -
 .../linkedin/helix/mock/storage/MockJobIntf.java   |   24 -
 .../helix/mock/storage/MockParticipant.java        |  615 -
 .../helix/mock/storage/MockStorageProcess.java     |  171 -
 .../helix/mock/storage/MockTransition.java         |   39 -
 .../helix/mock/storage/StorageAdapter.java         |  206 -
 .../helix/mock/storage/StorageStateModel.java      |  157 -
 .../mock/storage/StorageStateModelFactory.java     |   49 -
 .../com/linkedin/helix/model/TestConstraint.java   |  264 -
 .../com/linkedin/helix/model/TestIdealState.java   |   60 -
 .../helix/monitoring/TestParticipantMonitor.java   |  152 -
 .../helix/monitoring/TestStatCollector.java        |   54 -
 .../TestClusterAlertItemMBeanCollection.java       |  255 -
 .../mbeans/TestClusterStatusMonitor.java           |  128 -
 .../monitoring/mbeans/TestResourceMonitor.java     |  172 -
 .../helix/participant/MockZKHelixManager.java      |  278 -
 .../participant/TestDistControllerElection.java    |  180 -
 .../participant/TestDistControllerStateModel.java  |  134 -
 .../TestDistControllerStateModelFactory.java       |   36 -
 .../linkedin/helix/store/TestJsonComparator.java   |   40 -
 .../com/linkedin/helix/store/TestPropertyStat.java |   35 -
 .../helix/store/TestPropertyStoreException.java    |   37 -
 .../helix/store/TestPropertyStoreFactory.java      |   89 -
 .../helix/store/TestZNRecordJsonSerializer.java    |   75 -
 .../helix/store/file/TestFilePropertyStore.java    |  156 -
 .../helix/store/zk/TestZKPropertyStore.java        |  536 -
 .../store/zk/TestZKPropertyStoreMultiThread.java   |  156 -
 .../helix/store/zk/TestZkHelixPropertyStore.java   |  368 -
 .../store/zk/TestZkPropertyStoreSessionExpiry.java |  106 -
 .../com/linkedin/helix/tools/TestClusterSetup.java |  494 -
 .../helix/tools/TestHelixAdminScenariosCli.java    |  421 -
 .../com/linkedin/helix/util/TestZKClientPool.java  |   71 -
 helix-core/src/test/resources/log4j.properties     |    2 +-
 .../src/test/resources/relay_ideal_state.json      |  178 -
 mockservice/pom.xml                                |    2 +-
 .../main/java/com/linkedin/helix/CMConnector.java  |   42 -
 .../java/com/linkedin/helix/EspressoResource.java  |  214 -
 .../linkedin/helix/EspressoStorageMockNode.java    |  198 -
 .../EspressoStorageMockStateModelFactory.java      |   99 -
 .../java/com/linkedin/helix/FnvHashFunction.java   |  206 -
 .../main/java/com/linkedin/helix/HashFunction.java |   68 -
 .../com/linkedin/helix/MockEspressoService.java    |  269 -
 .../src/main/java/com/linkedin/helix/MockNode.java |   32 -
 .../java/com/linkedin/helix/MockNodeFactory.java   |   37 -
 .../main/java/com/linkedin/helix/MockRunner.java   |   58 -
 .../com/linkedin/helix/StopServiceResource.java    |  141 -
 mockservice/src/test/conf/testng.xml               |    2 +-
 .../src/test/java/com/linkedin/helix/AppTest.java  |   43 -
 .../rabbitmq-consumer-group/bin/send-message.sh    |    4 +-
 .../rabbitmq-consumer-group/bin/setup-cluster.sh   |    4 +-
 .../bin/start-cluster-manager.sh                   |    4 +-
 .../rabbitmq-consumer-group/bin/start-consumer.sh  |    4 +-
 .../lib/helix-core-0.5.28-sources.jar              |  Bin 480433 -> 0 bytes
 .../lib/helix-core-0.5.28.jar                      |  Bin 838805 -> 0 bytes
 recipes/rabbitmq-consumer-group/pom.xml            |    6 +-
 .../linkedin/helix/recipes/rabbitmq/Consumer.java  |  129 -
 .../helix/recipes/rabbitmq/ConsumerStateModel.java |   97 -
 .../rabbitmq/ConsumerStateModelFactory.java        |   21 -
 .../helix/recipes/rabbitmq/ConsumerThread.java     |   76 -
 .../linkedin/helix/recipes/rabbitmq/Emitter.java   |   56 -
 .../recipes/rabbitmq/SetupConsumerCluster.java     |   58 -
 .../recipes/rabbitmq/StartClusterManager.java      |   42 -
 sun_checks.xml                                     |  208 -
 566 files changed, 50 insertions(+), 106674 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/build
----------------------------------------------------------------------
diff --git a/build b/build
index 51f1688..12a843e 100644
--- a/build
+++ b/build
@@ -1 +1 @@
-mvn clean install -Dmaven.test.skip=true
+mvn clean install -Dmaven.test.skip.exec=true

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/helix-admin-webapp-0.5.28.ivy
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/helix-admin-webapp-0.5.28.ivy b/helix-admin-webapp/helix-admin-webapp-0.5.28.ivy
index 0cd54cf..536c360 100644
--- a/helix-admin-webapp/helix-admin-webapp-0.5.28.ivy
+++ b/helix-admin-webapp/helix-admin-webapp-0.5.28.ivy
@@ -1,5 +1,5 @@
 <ivy-module version="1.0">
-	<info organisation="com.linkedin.helix"
+	<info organisation="org.apache.helix"
 		module="helix-admin-webapp"
 		revision="0.5.28"
 		status="integration"
@@ -18,7 +18,7 @@
 		<artifact name="helix-admin-webapp" type="jar" ext="jar" conf="master"/>
 	</publications>
 	<dependencies>
-		<dependency org="com.linkedin.helix" name="helix-core" rev="0.5.28" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>
+		<dependency org="org.apache.helix" name="helix-core" rev="0.5.28" 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="com.thoughtworks.xstream" name="xstream" rev="1.3.1" force="true" conf="compile->compile(*),master(*);runtime->runtime(*)"/>

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/pom.xml b/helix-admin-webapp/pom.xml
index 3a834eb..943b451 100644
--- a/helix-admin-webapp/pom.xml
+++ b/helix-admin-webapp/pom.xml
@@ -85,7 +85,7 @@ under the License.
           </platforms>
           <programs>
             <program>
-              <mainClass>com.linkedin.helix.webapp.RestAdminApplication</mainClass>
+              <mainClass>org.apache.helix.webapp.RestAdminApplication</mainClass>
               <name>run-rest-admin</name>
             </program>
           </programs>

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/HelixAdminWebApp.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/HelixAdminWebApp.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/HelixAdminWebApp.java
deleted file mode 100644
index 5457d3d..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/HelixAdminWebApp.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.linkedin.helix.webapp;
-
-import org.apache.log4j.Logger;
-import org.restlet.Component;
-import org.restlet.Context;
-import org.restlet.data.Protocol;
-
-import com.linkedin.helix.manager.zk.ZNRecordSerializer;
-import com.linkedin.helix.manager.zk.ZkClient;
-
-public class HelixAdminWebApp
-{
-  public final Logger LOG = Logger.getLogger(HelixAdminWebApp.class);
-  RestAdminApplication _adminApp = null;
-  Component _component = null; 
-  
-  int _helixAdminPort;
-  String _zkServerAddress;
-  ZkClient _zkClient;
-  
-  public HelixAdminWebApp(String zkServerAddress, int adminPort)
-  {
-    _zkServerAddress = zkServerAddress;
-    _helixAdminPort = adminPort;
-  }
-  
-  public synchronized void start() throws Exception
-  {
-    LOG.info("helixAdminWebApp starting");
-    if(_component == null)
-    {
-      _zkClient = new ZkClient(_zkServerAddress,  ZkClient.DEFAULT_SESSION_TIMEOUT, ZkClient.DEFAULT_CONNECTION_TIMEOUT, new ZNRecordSerializer());
-      _component =  new Component();
-      _component.getServers().add(Protocol.HTTP, _helixAdminPort);
-      Context applicationContext = _component.getContext().createChildContext();
-      applicationContext.getAttributes().put(RestAdminApplication.ZKSERVERADDRESS, _zkServerAddress);
-      applicationContext.getAttributes().put(RestAdminApplication.PORT, ""+_helixAdminPort);
-      applicationContext.getAttributes().put(RestAdminApplication.ZKCLIENT, _zkClient);
-      _adminApp = new RestAdminApplication(applicationContext); 
-      // Attach the application to the component and start it
-      _component.getDefaultHost().attach(_adminApp);
-      _component.start();
-    }
-    LOG.info("helixAdminWebApp started on port " + _helixAdminPort);
-  }
-  
-  public synchronized void stop() 
-  {
-    try
-    {
-      _component.stop();
-    }
-    catch(Exception e)
-    {
-      LOG.error("", e);
-    }
-    finally
-    {
-      if(_zkClient != null)
-      {
-        _zkClient.close();
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/RestAdminApplication.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/RestAdminApplication.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/RestAdminApplication.java
deleted file mode 100644
index 9d0785b..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/RestAdminApplication.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.restlet.Application;
-import org.restlet.Context;
-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 com.linkedin.helix.webapp.resources.ClusterResource;
-import com.linkedin.helix.webapp.resources.ClustersResource;
-import com.linkedin.helix.webapp.resources.ConfigResource;
-import com.linkedin.helix.webapp.resources.ControllerResource;
-import com.linkedin.helix.webapp.resources.ControllerStatusUpdateResource;
-import com.linkedin.helix.webapp.resources.CurrentStateResource;
-import com.linkedin.helix.webapp.resources.CurrentStatesResource;
-import com.linkedin.helix.webapp.resources.ErrorResource;
-import com.linkedin.helix.webapp.resources.ErrorsResource;
-import com.linkedin.helix.webapp.resources.ExternalViewResource;
-import com.linkedin.helix.webapp.resources.IdealStateResource;
-import com.linkedin.helix.webapp.resources.InstanceResource;
-import com.linkedin.helix.webapp.resources.InstancesResource;
-import com.linkedin.helix.webapp.resources.ResourceGroupResource;
-import com.linkedin.helix.webapp.resources.ResourceGroupsResource;
-import com.linkedin.helix.webapp.resources.SchedulerTasksResource;
-import com.linkedin.helix.webapp.resources.StateModelResource;
-import com.linkedin.helix.webapp.resources.StateModelsResource;
-import com.linkedin.helix.webapp.resources.StatusUpdateResource;
-import com.linkedin.helix.webapp.resources.StatusUpdatesResource;
-import com.linkedin.helix.webapp.resources.ZkChildResource;
-import com.linkedin.helix.webapp.resources.ZkPathResource;
-
-public class RestAdminApplication extends Application
-{
-  public static final String HELP = "help";
-  public static final String ZKSERVERADDRESS = "zkSvr";
-  public static final String PORT = "port";
-  public static final String ZKCLIENT = "zkClient";
-  public static final int DEFAULT_PORT = 8100;
-  
-
-  public RestAdminApplication()
-  {
-    super();
-  }
-
-  public RestAdminApplication(Context context)
-  {
-    super(context);
-  }
-  
-  @Override
-  public Restlet createRoot()
-  {
-    Router router = new Router(getContext());
-    router.setDefaultMatchingMode(Template.MODE_EQUALS);
-    router.attach("/clusters", ClustersResource.class);
-    router.attach("/clusters/{clusterName}", ClusterResource.class);
-    router.attach("/clusters/{clusterName}/resourceGroups", ResourceGroupsResource.class);
-    router.attach("/clusters/{clusterName}/resourceGroups/{resourceName}", ResourceGroupResource.class);
-    router.attach("/clusters/{clusterName}/instances", InstancesResource.class);
-    router.attach("/clusters/{clusterName}/instances/{instanceName}", InstanceResource.class);
-    router.attach("/clusters/{clusterName}/instances/{instanceName}/currentState/{resourceName}", CurrentStateResource.class);
-    router.attach("/clusters/{clusterName}/instances/{instanceName}/statusUpdate/{resourceName}", StatusUpdateResource.class);
-    router.attach("/clusters/{clusterName}/instances/{instanceName}/errors/{resourceName}", ErrorResource.class);
-    router.attach("/clusters/{clusterName}/instances/{instanceName}/currentState", CurrentStatesResource.class);
-    router.attach("/clusters/{clusterName}/instances/{instanceName}/statusUpdate", StatusUpdatesResource.class);
-    router.attach("/clusters/{clusterName}/instances/{instanceName}/errors", ErrorsResource.class);
-    router.attach("/clusters/{clusterName}/resourceGroups/{resourceName}/idealState", IdealStateResource.class);
-    router.attach("/clusters/{clusterName}/resourceGroups/{resourceName}/externalView", ExternalViewResource.class);
-    router.attach("/clusters/{clusterName}/StateModelDefs/{modelName}", StateModelResource.class);
-    router.attach("/clusters/{clusterName}/StateModelDefs", StateModelsResource.class);
-    router.attach("/clusters/{clusterName}/SchedulerTasks", SchedulerTasksResource.class);
-    router.attach("/clusters/{clusterName}/Controller", ControllerResource.class);
-    router.attach("/clusters/{clusterName}/Controller/statusUpdates/{MessageType}/{MessageId}", ControllerStatusUpdateResource.class);
-    router.attach("/clusters/{clusterName}/configs", ConfigResource.class);
-    router.attach("/clusters/{clusterName}/configs/{scope}", ConfigResource.class);
-    router.attach("/clusters/{clusterName}/configs/{scope}/{scopeKey1}", ConfigResource.class);
-    router.attach("/clusters/{clusterName}/configs/{scope}/{scopeKey1}/{scopeKey2}", ConfigResource.class);
-    router.attach("/zkPath", ZkPathResource.class).setMatchingMode(Template.MODE_STARTS_WITH);
-    router.attach("/zkChild", ZkChildResource.class).setMatchingMode(Template.MODE_STARTS_WITH);
-
-    Restlet mainpage = new Restlet()
-    {
-      @Override
-      public void handle(Request request, Response response)
-      {
-        StringBuilder stringBuilder = new StringBuilder();
-        stringBuilder.append("<html>");
-        stringBuilder
-            .append("<head><title>Restlet Cluster Management page</title></head>");
-        stringBuilder.append("<body bgcolor=white>");
-        stringBuilder.append("<table border=\"0\">");
-        stringBuilder.append("<tr>");
-        stringBuilder.append("<td>");
-        stringBuilder.append("<h1>Rest cluster management interface V1</h1>");
-        stringBuilder.append("</td>");
-        stringBuilder.append("</tr>");
-        stringBuilder.append("</table>");
-        stringBuilder.append("</body>");
-        stringBuilder.append("</html>");
-        response.setEntity(new StringRepresentation(stringBuilder.toString(),
-            MediaType.TEXT_HTML));
-      }
-    };
-    router.attach("", mainpage);
-    return router;
-  }
-
-  public static void printUsage(Options cliOptions)
-  {
-    HelpFormatter helpFormatter = new HelpFormatter();
-    helpFormatter.printHelp("java " + RestAdminApplication.class.getName(), cliOptions);
-  }
-
-  @SuppressWarnings("static-access")
-  private static Options constructCommandLineOptions()
-  {
-    Option helpOption = OptionBuilder.withLongOpt(HELP)
-        .withDescription("Prints command-line options info").create();
-    helpOption.setArgs(0);
-    helpOption.setRequired(false);
-    helpOption.setArgName("print help message");
-
-    Option zkServerOption = OptionBuilder.withLongOpt(ZKSERVERADDRESS)
-        .withDescription("Provide zookeeper address").create();
-    zkServerOption.setArgs(1);
-    zkServerOption.setRequired(true);
-    zkServerOption.setArgName("ZookeeperServerAddress(Required)");
-
-    Option portOption = OptionBuilder.withLongOpt(PORT)
-    .withDescription("Provide web service port").create();
-    portOption.setArgs(1);
-    portOption.setRequired(false);
-    portOption.setArgName("web service port, default: "+ DEFAULT_PORT);
-
-    Options options = new Options();
-    options.addOption(helpOption);
-    options.addOption(zkServerOption);
-    options.addOption(portOption);
-
-    return options;
-  }
-
-  public static void processCommandLineArgs(String[] cliArgs) throws Exception
-  {
-    CommandLineParser cliParser = new GnuParser();
-    Options cliOptions = constructCommandLineOptions();
-    CommandLine cmd = null;
-
-    try
-    {
-      cmd = cliParser.parse(cliOptions, cliArgs);
-    }
-    catch (ParseException pe)
-    {
-      System.err.println("RestAdminApplication: failed to parse command-line options: "
-          + pe.toString());
-      printUsage(cliOptions);
-      System.exit(1);
-    }
-    int port = DEFAULT_PORT;
-    if(cmd.hasOption(HELP))
-    {
-      printUsage(cliOptions);
-      return;
-    }
-    else if(cmd.hasOption(PORT))
-    {
-      port = Integer.parseInt(cmd.getOptionValue(PORT));
-    }
-   
-    HelixAdminWebApp app = new HelixAdminWebApp(cmd.getOptionValue(ZKSERVERADDRESS), port);
-    app.start();
-    try
-    {
-      Thread.currentThread().join();
-    }
-    finally
-    {
-      app.stop();
-    }
-  }
-  
-  /**
-   * @param args
-   * @throws Exception
-   */
-  public static void main(String[] args) throws Exception
-  {
-    processCommandLineArgs(args);
-    
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterRepresentationUtil.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterRepresentationUtil.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterRepresentationUtil.java
deleted file mode 100644
index 214f6f1..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterRepresentationUtil.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.codehaus.jackson.type.TypeReference;
-import org.restlet.data.Form;
-import org.restlet.data.MediaType;
-
-import com.linkedin.helix.HelixDataAccessor;
-import com.linkedin.helix.HelixProperty;
-import com.linkedin.helix.PropertyKey;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.PropertyType;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZKHelixDataAccessor;
-import com.linkedin.helix.manager.zk.ZNRecordSerializer;
-import com.linkedin.helix.manager.zk.ZkBaseDataAccessor;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.LiveInstance.LiveInstanceProperty;
-import com.linkedin.helix.util.HelixUtil;
-
-public class ClusterRepresentationUtil
-{
-  private static final ZNRecord EMPTY_ZNRECORD = new ZNRecord("EMPTY_ZNRECORD");
-
-  public static String getClusterPropertyAsString(ZkClient zkClient,
-                                                  String clusterName,
-                                                  PropertyKey propertyKey,
-                                                  // String key,
-                                                  MediaType mediaType)
-
-  throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    return getClusterPropertyAsString(zkClient, clusterName, mediaType, propertyKey);
-  }
-
-  public static String getClusterPropertyAsString(ZkClient zkClient,
-                                                  String clusterName,
-                                                  MediaType mediaType,
-                                                  PropertyKey propertyKey) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient));
-
-    HelixProperty property = accessor.getProperty(propertyKey);
-    ZNRecord record = property == null ? null : property.getRecord();
-    return ZNRecordToJson(record);
-  }
-
-  public static String getInstancePropertyNameListAsString(ZkClient zkClient,
-                                                           String clusterName,
-                                                           String instanceName,
-                                                           PropertyType instanceProperty,
-                                                           String key,
-                                                           MediaType mediaType) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    String path =
-        HelixUtil.getInstancePropertyPath(clusterName, instanceName, instanceProperty)
-            + "/" + key;
-    if (zkClient.exists(path))
-    {
-      List<String> recordNames = zkClient.getChildren(path);
-      return ObjectToJson(recordNames);
-    }
-
-    return ObjectToJson(new ArrayList<String>());
-  }
-
-  public static String getInstancePropertyAsString(ZkClient zkClient,
-                                                   String clusterName,
-                                                   PropertyKey propertyKey,
-                                                   MediaType mediaType) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient));
-
-    ZNRecord records = accessor.getProperty(propertyKey).getRecord();
-    return ZNRecordToJson(records);
-  }
-
-  public static String getInstancePropertiesAsString(ZkClient zkClient,
-                                                     String clusterName,
-                                                     PropertyKey propertyKey,
-                                                     MediaType mediaType) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    zkClient.setZkSerializer(new ZNRecordSerializer());
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient));
-
-    List<ZNRecord> records =
-        HelixProperty.convertToList(accessor.getChildValues(propertyKey));
-    return ObjectToJson(records);
-  }
-
-  public static String getPropertyAsString(ZkClient zkClient,
-                                           String clusterName,
-                                           PropertyKey propertyKey,
-                                           MediaType mediaType) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient));
-
-    ZNRecord record = EMPTY_ZNRECORD;
-    HelixProperty property = accessor.getProperty(propertyKey);
-    if (property != null)
-    {
-      record = property.getRecord();
-    }
-    return ObjectToJson(record);
-  }
-
-  public static String ZNRecordToJson(ZNRecord record) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    return ObjectToJson(record);
-  }
-
-  public static String ObjectToJson(Object object) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    ObjectMapper mapper = new ObjectMapper();
-    SerializationConfig serializationConfig = mapper.getSerializationConfig();
-    serializationConfig.set(SerializationConfig.Feature.INDENT_OUTPUT, true);
-
-    StringWriter sw = new StringWriter();
-    mapper.writeValue(sw, object);
-
-    return sw.toString();
-  }
-
-  public static HelixDataAccessor getClusterDataAccessor(ZkClient zkClient,
-                                                         String clusterName)
-  {
-    return new ZKHelixDataAccessor(clusterName,
-                                   new ZkBaseDataAccessor<ZNRecord>(zkClient));
-  }
-
-  public static <T extends Object> T JsonToObject(Class<T> clazz, String jsonString) throws JsonParseException,
-      JsonMappingException,
-      IOException
-  {
-    StringReader sr = new StringReader(jsonString);
-    ObjectMapper mapper = new ObjectMapper();
-    return mapper.readValue(sr, clazz);
-
-  }
-
-  public static Map<String, String> JsonToMap(String jsonString) throws JsonParseException,
-      JsonMappingException,
-      IOException
-  {
-    StringReader sr = new StringReader(jsonString);
-    ObjectMapper mapper = new ObjectMapper();
-
-    TypeReference<TreeMap<String, String>> typeRef =
-        new TypeReference<TreeMap<String, String>>()
-        {
-        };
-
-    return mapper.readValue(sr, typeRef);
-  }
-
-  public static Map<String, String> getFormJsonParameters(Form form) throws JsonParseException,
-      JsonMappingException,
-      IOException
-  {
-    String jsonPayload = form.getFirstValue(JsonParameters.JSON_PARAMETERS, true);
-    return ClusterRepresentationUtil.JsonToMap(jsonPayload);
-  }
-
-  public static Map<String, String> getFormJsonParameters(Form form, String key) throws JsonParseException,
-      JsonMappingException,
-      IOException
-  {
-    String jsonPayload = form.getFirstValue(key, true);
-    return ClusterRepresentationUtil.JsonToMap(jsonPayload);
-  }
-
-  public static String getFormJsonParameterString(Form form, String key) throws JsonParseException,
-      JsonMappingException,
-      IOException
-  {
-    return form.getFirstValue(key, true);
-  }
-
-  public static <T extends Object> T getFormJsonParameters(Class<T> clazz,
-                                                           Form form,
-                                                           String key) throws JsonParseException,
-      JsonMappingException,
-      IOException
-  {
-    return JsonToObject(clazz, form.getFirstValue(key, true));
-  }
-
-  public static String getErrorAsJsonStringFromException(Exception e)
-  {
-    StringWriter sw = new StringWriter();
-    PrintWriter pw = new PrintWriter(sw);
-    e.printStackTrace(pw);
-
-    String error = e.getMessage() + '\n' + sw.toString();
-    Map<String, String> result = new TreeMap<String, String>();
-    result.put("ERROR", error);
-    try
-    {
-      return ObjectToJson(result);
-    }
-    catch (Exception e1)
-    {
-      StringWriter sw1 = new StringWriter();
-      PrintWriter pw1 = new PrintWriter(sw1);
-      e.printStackTrace(pw1);
-      return "{\"ERROR\": \"" + sw1.toString() + "\"}";
-    }
-  }
-
-  public static String getInstanceSessionId(ZkClient zkClient,
-                                            String clusterName,
-                                            String instanceName)
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(zkClient));
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord liveInstance =
-        accessor.getProperty(keyBuilder.liveInstance(instanceName)).getRecord();
-
-    return liveInstance.getSimpleField(LiveInstanceProperty.SESSION_ID.toString());
-  }
-
-  public static List<String> getInstancePropertyList(ZkClient zkClient,
-                                                     String clusterName,
-                                                     String instanceName,
-                                                     PropertyType property,
-                                                     String key)
-  {
-    String propertyPath =
-        HelixUtil.getInstancePropertyPath(clusterName, instanceName, property) + "/"
-            + key;
-
-    return zkClient.getChildren(propertyPath);
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterResource.java
deleted file mode 100644
index 26315cc..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClusterResource.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.io.IOException;
-import java.util.List;
-
-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 com.linkedin.helix.HelixDataAccessor;
-import com.linkedin.helix.HelixException;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.LiveInstance;
-import com.linkedin.helix.tools.ClusterSetup;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-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));
-  }
-
-  @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)
-  {
-    StringRepresentation presentation = null;
-    try
-    {
-      String clusterName = (String) getRequest().getAttributes().get("clusterName");
-      presentation = getClusterRepresentation(clusterName);
-    }
-
-    catch (Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      e.printStackTrace();
-    }
-    return presentation;
-  }
-
-  StringRepresentation getClusterRepresentation(String clusterName) throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    ZkClient zkClient =
-        (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-    ClusterSetup setupTool = new ClusterSetup(zkClient);
-    List<String> instances =
-        setupTool.getClusterManagementTool().getInstancesInCluster(clusterName);
-
-    ZNRecord clusterSummayRecord = new ZNRecord("Cluster Summary");
-    clusterSummayRecord.setListField("participants", instances);
-
-    List<String> resources =
-        setupTool.getClusterManagementTool().getResourcesInCluster(clusterName);
-    clusterSummayRecord.setListField("resources", resources);
-
-    List<String> models =
-        setupTool.getClusterManagementTool().getStateModelDefs(clusterName);
-    clusterSummayRecord.setListField("stateModelDefs", models);
-
-    HelixDataAccessor accessor =
-        ClusterRepresentationUtil.getClusterDataAccessor(zkClient, clusterName);
-    Builder keyBuilder = accessor.keyBuilder();
-
-    LiveInstance leader = accessor.getProperty(keyBuilder.controllerLeader());
-    if (leader != null)
-    {
-      clusterSummayRecord.setSimpleField("LEADER", leader.getInstanceName());
-    }
-    else
-    {
-      clusterSummayRecord.setSimpleField("LEADER", "");
-    }
-    StringRepresentation representation =
-        new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(clusterSummayRecord),
-                                 MediaType.APPLICATION_JSON);
-
-    return representation;
-  }
-
-  @Override
-  public void acceptRepresentation(Representation entity)
-  {
-    try
-    {
-      String clusterName = (String) getRequest().getAttributes().get("clusterName");
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-      ClusterSetup setupTool = new ClusterSetup(zkClient);
-
-      JsonParameters jsonParameters = new JsonParameters(entity);
-      String command = jsonParameters.getCommand();
-
-      if (command == null)
-      {
-        throw new HelixException("Could NOT find 'command' in parameterMap: " + jsonParameters._parameterMap);
-      }
-      else if (command.equalsIgnoreCase(ClusterSetup.activateCluster)
-          || JsonParameters.CLUSTERSETUP_COMMAND_ALIASES.get(ClusterSetup.activateCluster)
-                                                        .contains(command))
-      {
-        jsonParameters.verifyCommand(ClusterSetup.activateCluster);
-
-        boolean enabled = true;
-        if (jsonParameters.getParameter(JsonParameters.ENABLED) != null)
-        {
-          enabled =
-              Boolean.parseBoolean(jsonParameters.getParameter(JsonParameters.ENABLED));
-        }
-
-        String grandCluster = jsonParameters.getParameter(JsonParameters.GRAND_CLUSTER);
-
-        setupTool.activateCluster(clusterName, grandCluster, enabled);
-      }
-      else if (command.equalsIgnoreCase(ClusterSetup.expandCluster))
-      {
-        setupTool.expandCluster(clusterName);
-      }
-      else
-      {
-        throw new HelixException("Unsupported command: " + command
-            + ". Should be one of [" + ClusterSetup.activateCluster + ", "
-            + ClusterSetup.expandCluster + "]");
-      }
-      getResponse().setEntity(getClusterRepresentation(clusterName));
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch (Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-  }
-
-  @Override
-  public void removeRepresentations()
-  {
-    try
-    {
-      String clusterName = (String) getRequest().getAttributes().get("clusterName");
-      ZkClient zkClient =
-          (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-      ClusterSetup setupTool = new ClusterSetup(zkClient);
-      setupTool.deleteCluster(clusterName);
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch (Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClustersResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClustersResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClustersResource.java
deleted file mode 100644
index 9b680f0..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ClustersResource.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.io.IOException;
-import java.util.List;
-
-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 com.linkedin.helix.HelixException;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.tools.ClusterSetup;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class ClustersResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(ClustersResource.class);
-
-  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));
-    // 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)
-  {
-    StringRepresentation presentation = null;
-    try
-    {
-      presentation = getClustersRepresentation();
-    }
-    catch (Exception e)
-    {
-      LOG.error("", e);
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      presentation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-
-      e.printStackTrace();
-    }
-    return presentation;
-  }
-
-  StringRepresentation getClustersRepresentation() throws JsonGenerationException,
-      JsonMappingException,
-      IOException
-  {
-    ZkClient zkClient =
-        (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-    ClusterSetup setupTool = new ClusterSetup(zkClient);
-    List<String> clusters = setupTool.getClusterManagementTool().getClusters();
-
-    ZNRecord clustersRecord = new ZNRecord("Clusters Summary");
-    clustersRecord.setListField("clusters", clusters);
-    StringRepresentation representation =
-        new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(clustersRecord),
-                                 MediaType.APPLICATION_JSON);
-
-    return representation;
-  }
-
-  @Override
-  public void acceptRepresentation(Representation entity)
-  {
-    try
-    {
-      JsonParameters jsonParameters = new JsonParameters(entity);
-      String command = jsonParameters.getCommand();
-
-      if (command == null)
-      {
-        throw new HelixException("Could NOT find 'command' in parameterMap: " + jsonParameters._parameterMap);
-      }
-      else if (command.equalsIgnoreCase(ClusterSetup.addCluster))
-      {
-        jsonParameters.verifyCommand(ClusterSetup.addCluster);
-
-        ZkClient zkClient =
-            (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-        ClusterSetup setupTool = new ClusterSetup(zkClient);
-        setupTool.addCluster(jsonParameters.getParameter(JsonParameters.CLUSTER_NAME),
-                             false);
-      }
-      else
-      {
-        throw new HelixException("Unsupported command: " + command
-            + ". Should be one of [" + ClusterSetup.addCluster + "]");
-      }
-
-      getResponse().setEntity(getClustersRepresentation());
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-    catch (Exception e)
-    {
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-      LOG.error("Error in posting " + entity, e);
-    }
-  }
-
-  @Override
-  public void removeRepresentations()
-  {
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ConfigResource.java
----------------------------------------------------------------------
diff --git a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ConfigResource.java b/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ConfigResource.java
deleted file mode 100644
index 5accb91..0000000
--- a/helix-admin-webapp/src/main/java/com/linkedin/helix/webapp/resources/ConfigResource.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.linkedin.helix.webapp.resources;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-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 com.linkedin.helix.ConfigScope;
-import com.linkedin.helix.ConfigScope.ConfigScopeProperty;
-import com.linkedin.helix.ConfigScopeBuilder;
-import com.linkedin.helix.HelixAdmin;
-import com.linkedin.helix.HelixException;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.tools.ClusterSetup;
-import com.linkedin.helix.webapp.RestAdminApplication;
-
-public class ConfigResource extends Resource
-{
-  private final static Logger LOG = Logger.getLogger(ConfigResource.class);
-
-  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));
-    setModifiable(true);
-  }
-
-  String getValue(String key)
-  {
-    return (String) getRequest().getAttributes().get(key);
-  }
-
-  StringRepresentation getConfigScopes() throws Exception
-  {
-    StringRepresentation representation = null;
-    ZNRecord record = new ZNRecord("Config");
-
-    List<String> scopeList =
-        Arrays.asList(ConfigScopeProperty.CLUSTER.toString(),
-                      ConfigScopeProperty.RESOURCE.toString(),
-                      ConfigScopeProperty.PARTICIPANT.toString(),
-                      ConfigScopeProperty.PARTITION.toString());
-    record.setListField("scopes", scopeList);
-
-    representation =
-        new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(record),
-                                 MediaType.APPLICATION_JSON);
-
-    return representation;
-  }
-
-  StringRepresentation getConfigKeys(ConfigScopeProperty scopeProperty, String... keys) throws Exception
-  {
-    StringRepresentation representation = null;
-    String clusterName = getValue("clusterName");
-
-    ZkClient zkClient =
-        (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-    ClusterSetup setupTool = new ClusterSetup(zkClient);
-    HelixAdmin admin = setupTool.getClusterManagementTool();
-    ZNRecord record = new ZNRecord(scopeProperty + " Config");
-
-    List<String> configKeys = admin.getConfigKeys(scopeProperty, clusterName, keys);
-    record.setListField(scopeProperty.toString(), configKeys);
-
-    representation =
-        new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(record),
-                                 MediaType.APPLICATION_JSON);
-
-    return representation;
-  }
-
-  StringRepresentation getConfigs(ConfigScope scope,
-                                  ConfigScopeProperty scopeProperty,
-                                  String... keys) throws Exception
-  {
-    StringRepresentation representation = null;
-    String clusterName = getValue("clusterName");
-
-    ZkClient zkClient =
-        (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-    ClusterSetup setupTool = new ClusterSetup(zkClient);
-    HelixAdmin admin = setupTool.getClusterManagementTool();
-    ZNRecord record = new ZNRecord(scopeProperty + " Config");
-
-    List<String> configKeys = admin.getConfigKeys(scopeProperty, clusterName, keys);
-    Map<String, String> configs = admin.getConfig(scope, new HashSet<String>(configKeys));
-    record.setSimpleFields(configs);
-
-    representation =
-        new StringRepresentation(ClusterRepresentationUtil.ZNRecordToJson(record),
-                                 MediaType.APPLICATION_JSON);
-
-    return representation;
-  }
-
-  @Override
-  public Representation represent(Variant variant)
-  {
-    StringRepresentation representation = null;
-
-    String clusterName = getValue("clusterName");
-    String scopeStr = getValue("scope");
-    try
-    {
-      if (scopeStr == null)
-      {
-        // path is "/clusters/{clusterName}/configs"
-        return getConfigScopes();
-      }
-
-      scopeStr = scopeStr.toUpperCase();
-
-      ConfigScopeProperty scopeProperty = ConfigScopeProperty.valueOf(scopeStr);
-      switch (scopeProperty)
-      {
-      case CLUSTER:
-      case PARTICIPANT:
-      case RESOURCE:
-        String scopeKey1 = getValue("scopeKey1");
-        if (scopeKey1 == null)
-        {
-          // path is "/clusters/{clusterName}/configs/cluster|participant|resource"
-          representation = getConfigKeys(scopeProperty);
-        }
-        else
-        {
-          // path is "/clusters/{clusterName}/configs/cluster|particicpant|resource/
-          // {clusterName}|{participantName}|{resourceName}"
-          ConfigScope scope;
-          if (scopeProperty == ConfigScopeProperty.CLUSTER)
-          {
-            scope = new ConfigScopeBuilder().build(scopeProperty, clusterName);
-          }
-          else
-          {
-            scope = new ConfigScopeBuilder().build(scopeProperty, clusterName, scopeKey1);
-          }
-          representation = getConfigs(scope, scopeProperty, scopeKey1);
-        }
-        break;
-      case PARTITION:
-        scopeKey1 = getValue("scopeKey1");
-        String scopeKey2 = getValue("scopeKey2");
-        if (scopeKey1 == null)
-        {
-          // path is "/clusters/{clusterName}/configs/partition"
-          throw new HelixException("Missing resourceName");
-        }
-        else if (scopeKey2 == null)
-        {
-          // path is "/clusters/{clusterName}/configs/partition/resourceName"
-          representation = getConfigKeys(scopeProperty, scopeKey1);
-        }
-        else
-        {
-          // path is
-          // "/clusters/{clusterName}/configs/partition/resourceName/partitionName"
-          ConfigScope scope =
-              new ConfigScopeBuilder().build(scopeProperty,
-                                             clusterName,
-                                             scopeKey1,
-                                             scopeKey2);
-          representation = getConfigs(scope, scopeProperty, scopeKey1, scopeKey2);
-        }
-        break;
-      default:
-        break;
-      }
-    }
-    catch (Exception e)
-    {
-      String error = ClusterRepresentationUtil.getErrorAsJsonStringFromException(e);
-      representation = new StringRepresentation(error, MediaType.APPLICATION_JSON);
-      LOG.error("", e);
-    }
-
-    return representation;
-  }
-
-  /**
-   * set or remove configs depends on "command" field of jsonParameters in POST body
-   * 
-   * @param entity
-   * @param scopeStr
-   * @throws Exception
-   */
-  void setConfigs(Representation entity, String scopeStr) throws Exception
-  {
-    JsonParameters jsonParameters = new JsonParameters(entity);
-    String command = jsonParameters.getCommand();
-
-    ZkClient zkClient =
-        (ZkClient) getContext().getAttributes().get(RestAdminApplication.ZKCLIENT);
-    ClusterSetup setupTool = new ClusterSetup(zkClient);
-    if (command.equalsIgnoreCase(ClusterSetup.setConfig))
-    {
-      jsonParameters.verifyCommand(ClusterSetup.setConfig);
-      String propertiesStr = jsonParameters.getParameter(JsonParameters.CONFIGS);
-
-      setupTool.setConfig(scopeStr, propertiesStr);
-    }
-    else if (command.equalsIgnoreCase(ClusterSetup.removeConfig))
-    {
-      jsonParameters.verifyCommand(ClusterSetup.removeConfig);
-      String propertiesStr = jsonParameters.getParameter(JsonParameters.CONFIGS);
-
-      setupTool.removeConfig(scopeStr, propertiesStr);
-    }
-    else
-    {
-      throw new HelixException("Unsupported command: " + command + ". Should be one of ["
-          + ClusterSetup.setConfig + ", " + ClusterSetup.removeConfig + "]");
-
-    }
-
-    getResponse().setEntity(represent());
-    getResponse().setStatus(Status.SUCCESS_OK);
-  }
-
-  @Override
-  public void acceptRepresentation(Representation entity)
-  {
-    String clusterName = getValue("clusterName");
-
-    String scopeStr = getValue("scope").toUpperCase();
-    try
-    {
-      ConfigScopeProperty scopeProperty = ConfigScopeProperty.valueOf(scopeStr);
-
-      switch (scopeProperty)
-      {
-      case CLUSTER:
-        String scopeConfigStr =
-            ConfigScopeProperty.CLUSTER.toString() + "=" + clusterName;
-        setConfigs(entity, scopeConfigStr);
-        break;
-      case PARTICIPANT:
-      case RESOURCE:
-        String scopeKey1 = getValue("scopeKey1");
-
-        if (scopeKey1 == null)
-        {
-          throw new HelixException("Missing resourceName|participantName");
-        }
-        else
-        {
-          scopeConfigStr =
-              ConfigScopeProperty.CLUSTER.toString() + "=" + clusterName + ","
-                  + scopeProperty.toString() + "=" + scopeKey1;
-
-          setConfigs(entity, scopeConfigStr);
-        }
-        break;
-      case PARTITION:
-        scopeKey1 = getValue("scopeKey1");
-        String scopeKey2 = getValue("scopeKey2");
-        if (scopeKey1 == null || scopeKey2 == null)
-        {
-          throw new HelixException("Missing resourceName|partitionName");
-        }
-        else
-        {
-          scopeConfigStr =
-              ConfigScopeProperty.CLUSTER.toString() + "=" + clusterName + ","
-                  + ConfigScopeProperty.RESOURCE.toString() + "=" + scopeKey1 + ","
-                  + scopeProperty.toString() + "=" + scopeKey2;
-          setConfigs(entity, scopeConfigStr);
-        }
-        break;
-      default:
-        break;
-      }
-    }
-    catch (Exception e)
-    {
-      LOG.error("Error in posting " + entity, e);
-      getResponse().setEntity(ClusterRepresentationUtil.getErrorAsJsonStringFromException(e),
-                              MediaType.APPLICATION_JSON);
-      getResponse().setStatus(Status.SUCCESS_OK);
-    }
-  }
-}