EAGLE-79 Provide aggregation and persistence DSL support

https://issues.apache.org/jira/browse/EAGLE-79

1. Support aggregation api
2. Support persist Api
3. Refactor AlertExecutor to be policy wide.

Author: @RalphSu <suliang...@gmail.com>
Reviewer: @haoch <h...@apache.org>

Closes #52


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

Branch: refs/heads/master
Commit: da8f419c67b5ef42dcc480a19ca7ebce5a9a16b9
Parents: dd26aa4
Author: Hao Chen <h...@apache.org>
Authored: Tue Jan 12 15:45:28 2016 +0800
Committer: Hao Chen <h...@apache.org>
Committed: Tue Jan 12 15:45:28 2016 +0800

----------------------------------------------------------------------
 .gitignore                                      |   4 +
 README.md                                       |   2 +-
 eagle-assembly/src/assembly/eagle-bin.xml       |   8 +
 .../src/main/bin/eagle-create-table.rb          |   2 +
 .../sandbox-hbaseSecurityLog-application.conf   |   2 +-
 .../conf/sandbox-hdfsAuditLog-application.conf  |   2 +-
 .../conf/sandbox-hiveQueryLog-application.conf  |   2 +-
 .../main/conf/sandbox-userprofile-topology.conf |   2 +-
 eagle-core/eagle-alert/eagle-alert-base/pom.xml |   5 +
 .../eagle/alert/common/AlertConstants.java      |  64 ---
 .../eagle/alert/common/AlertEmailSender.java    |   9 +-
 .../eagle/alert/dao/AlertDataSourceDAO.java     |  25 --
 .../eagle/alert/dao/AlertDataSourceDAOImpl.java |  63 ---
 .../eagle/alert/dao/AlertDefinitionDAO.java     |  39 --
 .../eagle/alert/dao/AlertDefinitionDAOImpl.java |  83 ----
 .../eagle/alert/dao/AlertExecutorDAO.java       |  26 --
 .../eagle/alert/dao/AlertExecutorDAOImpl.java   |  86 ----
 .../apache/eagle/alert/dao/AlertStreamDAO.java  |  25 --
 .../eagle/alert/dao/AlertStreamDAOImpl.java     |  62 ---
 .../eagle/alert/dao/AlertStreamSchemaDAO.java   |  25 --
 .../alert/dao/AlertStreamSchemaDAOImpl.java     |  83 ----
 .../eagle/alert/entity/AlertAPIEntity.java      |  84 ----
 .../alert/entity/AlertContextSerDeser.java      |  98 -----
 .../alert/entity/AlertDataSourceEntity.java     |  67 ---
 .../alert/entity/AlertDefinitionAPIEntity.java  | 181 --------
 .../alert/entity/AlertEntityRepository.java     |  32 --
 .../eagle/alert/entity/AlertExecutorEntity.java |  45 --
 .../eagle/alert/entity/AlertStreamEntity.java   |  51 ---
 .../alert/entity/AlertStreamSchemaEntity.java   | 111 -----
 .../alert/config/AbstractPolicyDefinition.java  |  42 --
 .../dedup/AlertDeduplicationExecutorBase.java   |  41 +-
 .../dedup/AlertEmailDeduplicationExecutor.java  |   4 +-
 .../dedup/AlertEntityDeduplicationExecutor.java |   7 +-
 .../eagle/alert/executor/AlertExecutor.java     |  41 ++
 .../executor/AlertExecutorCreationUtils.java    | 109 +++++
 .../alert/notification/AlertEmailGenerator.java |   6 +-
 .../notification/AlertNotificationExecutor.java |  39 +-
 .../eagle/alert/notification/UrlBuilder.java    |  64 ---
 .../alert/policy/DefaultPolicyPartitioner.java  |  32 --
 .../eagle/alert/policy/DynamicPolicyLoader.java | 270 ------------
 .../eagle/alert/policy/PartitionUtils.java      |  30 --
 .../policy/PolicyDistStatsDAOLogReporter.java   |  47 ---
 .../policy/PolicyDistributionReportMethods.java |  27 --
 .../alert/policy/PolicyDistributionStats.java   |  74 ----
 .../policy/PolicyDistributionStatsDAO.java      |  26 --
 .../policy/PolicyDistroStatsLogReporter.java    |  50 ---
 .../eagle/alert/policy/PolicyEvaluator.java     |  47 ---
 .../policy/PolicyEvaluatorServiceProvider.java  |  47 ---
 .../alert/policy/PolicyLifecycleMethods.java    |  27 --
 .../eagle/alert/policy/PolicyManager.java       |  61 ---
 .../eagle/alert/policy/PolicyPartitioner.java   |  26 --
 .../eagle/alert/siddhi/AttributeType.java       |  30 --
 .../eagle/alert/siddhi/EagleAlertContext.java   |  32 --
 .../siddhi/SiddhiAlertAPIEntityRender.java      | 109 +++++
 .../siddhi/SiddhiAlertAPIEntityRendner.java     | 100 -----
 .../eagle/alert/siddhi/SiddhiAlertHandler.java  |  26 --
 .../alert/siddhi/SiddhiPolicyDefinition.java    |  42 --
 .../alert/siddhi/SiddhiPolicyEvaluator.java     | 269 ------------
 ...iddhiPolicyEvaluatorServiceProviderImpl.java |  45 --
 .../alert/siddhi/SiddhiQueryCallbackImpl.java   |  85 ----
 .../alert/siddhi/SiddhiStreamMetadataUtils.java | 119 ------
 .../alert/siddhi/StreamMetadataManager.java     | 128 ------
 .../extension/ContainsIgnoreCaseExtension.java  |  87 ----
 .../extension/EqualsIgnoreCaseExtension.java    |  91 ----
 .../RegexpIgnoreCaseFunctionExtension.java      |  89 ----
 .../apache/eagle/executor/AlertExecutor.java    | 395 ------------------
 .../executor/AlertExecutorCreationUtils.java    | 134 ------
 ....alert.policy.PolicyEvaluatorServiceProvider |  16 -
 ....eagle.policy.PolicyEvaluatorServiceProvider |  16 +
 .../src/main/resources/str.siddhiext            |  35 --
 .../eagle/alert/cep/TestSiddhiEvaluator.java    |  37 +-
 .../alert/dao/TestAlertDefinitionDAOImpl.java   |   8 +-
 .../dao/TestSiddhiStreamMetadataUtils.java      |   7 +-
 .../alert/dao/TestStreamDefinitionDAOImpl.java  |   4 +-
 .../alert/executor/TestPolicyExecutor.java      |  85 ++++
 .../alert/policy/TestDynamicPolicyLoader.java   |  25 +-
 .../alert/policy/TestPolicyDistribution.java    |   1 +
 .../policy/TestPolicyDistributionUpdater.java   |  19 +-
 .../alert/policy/TestPolicyPartitioner.java     |   1 +
 .../alert/siddhi/TestExternalBatchWindow.java   | 307 ++++++++++++++
 .../eagle/alert/siddhi/TestSiddhiEngine.java    |   2 +-
 .../eagle/alert/siddhi/TestSiddhiStream.java    |   3 +-
 .../src/test/resources/str.siddhiext            |   6 +-
 .../src/test/resources/unittest.conf            |   2 +-
 .../SiddhiAlertPolicyValidateProvider.java      |   6 +-
 .../eagle-stream-process-api/pom.xml            |   6 +
 .../impl/aggregate/AggregateExecutor.java       |  46 ++
 .../aggregate/AggregateExecutorFactory.java     | 121 ++++++
 .../impl/aggregate/AggregateResultRender.java   |  45 ++
 .../impl/aggregate/SimpleAggregateExecutor.java | 182 ++++++++
 .../entity/AggregateDefinitionAPIEntity.java    | 121 ++++++
 .../impl/aggregate/entity/AggregateEntity.java  |  43 ++
 .../entity/AggregateEntityRepository.java       |  28 ++
 .../dataproc/impl/persist/IPersistService.java  |  28 ++
 .../dataproc/impl/persist/PersistExecutor.java  |  84 ++++
 .../druid/AggregateEntitySerializer.java        |  66 +++
 .../impl/persist/druid/KafkaPersistService.java | 122 ++++++
 .../JavaStormExecutorForAlertWrapper.java       |   8 +-
 .../eagle/datastream/ExecutionEnvironment.scala | 134 ++++++
 .../datastream/ExecutionEnvironments.scala      | 134 ------
 .../datastream/core/ExecutionEnvironment.scala  |   2 +
 .../core/StreamAggregateExpansion.scala         |  82 ++++
 .../datastream/core/StreamAlertExpansion.scala  |  77 ++--
 .../eagle/datastream/core/StreamProducer.scala  |  31 +-
 .../eagle/datastream/core/StreamProtocol.scala  |  16 +-
 .../datastream/storm/StormBoltFactory.scala     |   6 +
 .../storm/StormExecutorForAlertWrapper.scala    |   7 +-
 .../utils/AlertExecutorConsumerUtils.scala      |   6 +-
 .../eagle/datastream/TestStreamAggregate.java   | 152 +++++++
 .../src/test/resources/application.conf         |  19 +-
 .../org/apache/eagle/ml/MLAnomalyCallback.java  |   4 +-
 .../org/apache/eagle/ml/MLPolicyEvaluator.java  |  25 +-
 .../eagle/ml/impl/MLAnomalyCallbackImpl.java    |  39 +-
 .../MLPolicyEvaluatorServiceProviderImpl.java   |  10 +-
 .../eagle/ml/model/MLPolicyDefinition.java      |   2 +-
 ....alert.policy.PolicyEvaluatorServiceProvider |  16 -
 ....eagle.policy.PolicyEvaluatorServiceProvider |  16 +
 ....alert.policy.PolicyEvaluatorServiceProvider |  16 -
 ....eagle.policy.PolicyEvaluatorServiceProvider |  16 +
 .../src/test/resources/application.conf         |   2 +-
 .../eagle-policy/eagle-policy-base/pom.xml      |  62 +++
 .../entity/AbstractPolicyDefinitionEntity.java  |  27 ++
 .../eagle/alert/entity/AlertAPIEntity.java      |  93 +++++
 .../alert/entity/AlertContextSerDeser.java      |  98 +++++
 .../alert/entity/AlertDataSourceEntity.java     |  67 +++
 .../alert/entity/AlertDefinitionAPIEntity.java  | 179 ++++++++
 .../alert/entity/AlertEntityRepository.java     |  32 ++
 .../eagle/alert/entity/AlertExecutorEntity.java |  45 ++
 .../eagle/alert/entity/AlertStreamEntity.java   |  51 +++
 .../alert/entity/AlertStreamSchemaEntity.java   | 111 +++++
 .../eagle/policy/DefaultPolicyPartitioner.java  |  32 ++
 .../eagle/policy/DynamicPolicyLoader.java       | 268 ++++++++++++
 .../org/apache/eagle/policy/PartitionUtils.java |  31 ++
 .../policy/PolicyDistStatsDAOLogReporter.java   |  47 +++
 .../policy/PolicyDistributionReportMethods.java |  27 ++
 .../eagle/policy/PolicyDistributionStats.java   |  74 ++++
 .../policy/PolicyDistributionStatsDAO.java      |  26 ++
 .../policy/PolicyDistroStatsLogReporter.java    |  50 +++
 .../eagle/policy/PolicyEvaluationContext.java   |  34 ++
 .../apache/eagle/policy/PolicyEvaluator.java    |  51 +++
 .../policy/PolicyEvaluatorServiceProvider.java  |  49 +++
 .../eagle/policy/PolicyLifecycleMethods.java    |  27 ++
 .../org/apache/eagle/policy/PolicyManager.java  |  61 +++
 .../apache/eagle/policy/PolicyPartitioner.java  |  26 ++
 .../org/apache/eagle/policy/ResultRender.java   |  32 ++
 .../apache/eagle/policy/common/Constants.java   |  70 ++++
 .../apache/eagle/policy/common/UrlBuilder.java  |  63 +++
 .../policy/config/AbstractPolicyDefinition.java |  42 ++
 .../eagle/policy/dao/AlertDataSourceDAO.java    |  25 ++
 .../policy/dao/AlertDataSourceDAOImpl.java      |  61 +++
 .../policy/dao/AlertDefinitionDAOImpl.java      |  85 ++++
 .../eagle/policy/dao/AlertExecutorDAO.java      |  26 ++
 .../eagle/policy/dao/AlertExecutorDAOImpl.java  |  88 ++++
 .../apache/eagle/policy/dao/AlertStreamDAO.java |  25 ++
 .../eagle/policy/dao/AlertStreamDAOImpl.java    |  60 +++
 .../eagle/policy/dao/AlertStreamSchemaDAO.java  |  25 ++
 .../policy/dao/AlertStreamSchemaDAOImpl.java    |  84 ++++
 .../eagle/policy/dao/PolicyDefinitionDAO.java   |  42 ++
 .../dao/PolicyDefinitionEntityDAOImpl.java      |  96 +++++
 .../eagle/policy/executor/IPolicyExecutor.java  |  29 ++
 .../policy/executor/PolicyProcessExecutor.java  | 418 +++++++++++++++++++
 .../eagle/policy/siddhi/AttributeType.java      |  30 ++
 .../policy/siddhi/SiddhiEvaluationHandler.java  |  27 ++
 .../policy/siddhi/SiddhiPolicyDefinition.java   |  56 +++
 .../policy/siddhi/SiddhiPolicyEvaluator.java    | 270 ++++++++++++
 ...iddhiPolicyEvaluatorServiceProviderImpl.java |  46 ++
 .../policy/siddhi/SiddhiQueryCallbackImpl.java  |  98 +++++
 .../siddhi/SiddhiStreamMetadataUtils.java       | 119 ++++++
 .../policy/siddhi/StreamMetadataManager.java    | 128 ++++++
 .../extension/ContainsIgnoreCaseExtension.java  |  87 ++++
 .../extension/EqualsIgnoreCaseExtension.java    |  91 ++++
 .../ExternalTimeBatchWindowProcessor.java       | 184 ++++++++
 .../RegexpIgnoreCaseFunctionExtension.java      |  89 ++++
 ....eagle.policy.PolicyEvaluatorServiceProvider |  16 +
 .../src/main/resources/eagle.siddhiext          |   1 +
 .../src/main/resources/str.siddhiext            |  35 ++
 .../apache/eagle/policy/dao/TestSchemaDao.java  |  37 ++
 eagle-core/eagle-policy/pom.xml                 |  37 ++
 .../entity/repo/EntityRepositoryScanner.java    |   2 +-
 .../TestHBaseWriteEntitiesPerformance.java      |   2 +
 eagle-core/pom.xml                              |   1 +
 eagle-samples/eagle-persist-sample/pom.xml      |  70 ++++
 .../assembly/eagle-persist-sample-assembly.xml  |  63 +++
 .../eagle/persist/test/MetricSerializer.java    |  31 ++
 .../eagle/persist/test/PersistTopoTestMain.java | 115 +++++
 .../persist/test/PersistTopoTestMain2.java      |  58 +++
 .../src/main/resources/application.conf         |  86 ++++
 .../src/main/resources/log4j.properties         |  40 ++
 .../main/resources/persist-test-topo-init.sh    | 194 +++++++++
 .../src/main/resources/persit-test-storm.yaml   |  18 +
 eagle-samples/pom.xml                           |  19 +
 .../src/main/resources/application.conf         |   2 +-
 .../HdfsUserCommandPatternByFileImpl.java       |   1 -
 .../auditlog/HdfsUserCommandReassembler.java    |   4 +-
 .../src/main/resources/application.conf         |   2 +-
 .../src/main/resources/application.conf         |   2 +-
 .../UserProfileMLAlgorithmEvaluator.java        |   7 +-
 ....alert.policy.PolicyEvaluatorServiceProvider |  16 -
 ....eagle.policy.PolicyEvaluatorServiceProvider |  16 +
 .../src/main/resources/application-batch.conf   |   2 +-
 .../src/main/resources/application-stream.conf  |   2 +-
 ....alert.policy.PolicyEvaluatorServiceProvider |  16 -
 ....eagle.policy.PolicyEvaluatorServiceProvider |  16 +
 ....alert.policy.PolicyEvaluatorServiceProvider |  17 -
 ....eagle.policy.PolicyEvaluatorServiceProvider |  17 +
 .../src/main/resources/application.conf         |   4 +-
 pom.xml                                         |   1 +
 207 files changed, 7231 insertions(+), 4261 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index fd68dd6..c51d955 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,3 +71,7 @@ logs/
 *.log*
 # Mac files
 .DS_Store
+
+*.cache-tests
+
+*.orig

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index e92104e..c41a3bd 100755
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ Apache Eagle is an open source monitoring solution to 
instantly identify access
 For more details, please visit 
[https://eagle.incubator.apache.org](https://eagle.incubator.apache.org)
 
 ## Documentation
-You can find the latest Eagle documentation on 
[https://eagle.incubator.apache.org](https://eagle.incubator.apache.org/docs). 
This [README](README) file only contains basic setup instructions.
+You can find the latest Eagle documentation on 
[https://eagle.incubator.apache.org](https://eagle.incubator.apache.org/docs). 
This [README](README.md) file only contains basic setup instructions.
 
 ## Getting Started
 The fastest way to get started with Eagle is to run with 
[docker](https://github.com/docker/docker) by one of following options:

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/assembly/eagle-bin.xml
----------------------------------------------------------------------
diff --git a/eagle-assembly/src/assembly/eagle-bin.xml 
b/eagle-assembly/src/assembly/eagle-bin.xml
index af8612c..d03af36 100644
--- a/eagle-assembly/src/assembly/eagle-bin.xml
+++ b/eagle-assembly/src/assembly/eagle-bin.xml
@@ -210,6 +210,14 @@
             </excludes>
         </fileSet>
 
+        <!--<fileSet>-->
+            
<!--<directory>${project.basedir}/../eagle-samples/eagle-persist-sample/target/</directory>-->
+            <!--<outputDirectory>lib/topology</outputDirectory>-->
+            <!--<includes>-->
+                <!--<include>eagle-persist-sample-*-assembly.jar</include>-->
+            <!--</includes>-->
+        <!--</fileSet>-->
+
         <fileSet>
             
<directory>${project.basedir}/../eagle-external/eagle-ambari</directory>
             <outputDirectory>lib/ambari</outputDirectory>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/bin/eagle-create-table.rb
----------------------------------------------------------------------
diff --git a/eagle-assembly/src/main/bin/eagle-create-table.rb 
b/eagle-assembly/src/main/bin/eagle-create-table.rb
index 2b6454b..185deb9 100644
--- a/eagle-assembly/src/main/bin/eagle-create-table.rb
+++ b/eagle-assembly/src/main/bin/eagle-create-table.rb
@@ -21,6 +21,7 @@ import org.apache.hadoop.hbase.client.HBaseAdmin
 
 def createEagleTable(admin, tableName)
     if !admin.tableExists(tableName)
+        # create tableName, {NAME => 'f', VERSIONS => '1', BLOOMFILTER => 
'ROW', COMPRESSION => 'GZ'}
         create tableName, {NAME => 'f', VERSIONS => '1', BLOOMFILTER => 'ROW', 
COMPRESSION => 'SNAPPY'}
        puts "Create Table #{tableName} successfully"
     elsif admin.isTableDisabled(tableName)
@@ -52,5 +53,6 @@ createEagleTable(admin, 'mlmodel')
 createEagleTable(admin, 'userprofile')
 createEagleTable(admin, 'hfdsusercommandpattern')
 createEagleTable(admin, 'serviceAudit')
+createEagleTable(admin, 'aggregatedef')
 
 exit

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf
----------------------------------------------------------------------
diff --git 
a/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf 
b/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf
index 7fe2866..9909d75 100644
--- a/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf
+++ b/eagle-assembly/src/main/conf/sandbox-hbaseSecurityLog-application.conf
@@ -40,7 +40,7 @@
   "alertExecutorConfigs" : {
      "hbaseSecurityLogAlertExecutor" : {
        "parallelism" : 1,
-       "partitioner" : "org.apache.eagle.alert.policy.DefaultPolicyPartitioner"
+       "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner"
        "needValidation" : "true"
      }
   },

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf
----------------------------------------------------------------------
diff --git a/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf 
b/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf
index cffec42..2814890 100644
--- a/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf
+++ b/eagle-assembly/src/main/conf/sandbox-hdfsAuditLog-application.conf
@@ -40,7 +40,7 @@
   "alertExecutorConfigs" : {
      "hdfsAuditLogAlertExecutor" : {
        "parallelism" : 1,
-       "partitioner" : 
"org.apache.eagle.alert.policy.DefaultPolicyPartitioner",
+       "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner",
        "needValidation" : "true"
      }
   },

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf
----------------------------------------------------------------------
diff --git a/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf 
b/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf
index 08aed6f..f5ee0be 100644
--- a/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf
+++ b/eagle-assembly/src/main/conf/sandbox-hiveQueryLog-application.conf
@@ -50,7 +50,7 @@
   "alertExecutorConfigs" : {
     "hiveAccessAlertByRunningJob" : {
       "parallelism" : 1,
-      "partitioner" : "org.apache.eagle.alert.policy.DefaultPolicyPartitioner",
+      "partitioner" : "org.apache.eagle.policy.DefaultPolicyPartitioner",
       "needValidation" : "true"
     }
   },

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf
----------------------------------------------------------------------
diff --git a/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf 
b/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf
index 8b432de..e955f23 100644
--- a/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf
+++ b/eagle-assembly/src/main/conf/sandbox-userprofile-topology.conf
@@ -37,7 +37,7 @@
        "alertExecutorConfigs" : {
                "userProfileAnomalyDetectionExecutor" : {
                        "parallelism" : 1,
-                       "partitioner" : 
"org.apache.eagle.alert.policy.DefaultPolicyPartitioner",
+                       "partitioner" : 
"org.apache.eagle.policy.DefaultPolicyPartitioner",
                        "needValidation":true
                }
        },

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/pom.xml
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/eagle-alert-base/pom.xml 
b/eagle-core/eagle-alert/eagle-alert-base/pom.xml
index e9868a5..ce05d83 100644
--- a/eagle-core/eagle-alert/eagle-alert-base/pom.xml
+++ b/eagle-core/eagle-alert/eagle-alert-base/pom.xml
@@ -42,6 +42,11 @@
                        <artifactId>eagle-client-base</artifactId>
             <version>${project.version}</version>
                </dependency>
+               <dependency>
+                       <groupId>eagle</groupId>
+                       <artifactId>eagle-policy-base</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
        </dependencies>
 </project>
 

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.java
deleted file mode 100644
index 44728ea..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertConstants.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.common;
-
-public class AlertConstants {
-       public final static String ALERT_SERVICE_ENDPOINT_NAME = "AlertService";
-       public final static String ALERT_DEFINITION_SERVICE_ENDPOINT_NAME = 
"AlertDefinitionService";
-       public final static String ALERT_STREAM_SCHEMA_SERVICE_ENDPOINT_NAME = 
"AlertStreamSchemaService";
-       public final static String ALERT_DATA_SOURCE_SERVICE_ENDPOINT_NAME = 
"AlertDataSourceService";
-       public final static String ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME = 
"AlertExecutorService";
-       public final static String ALERT_STREAM_SERVICE_ENDPOINT_NAME = 
"AlertStreamService";
-       public static final String ALERT_EMAIL_ORIGIN_PROPERTY = 
"alertEmailOrigin";
-       public static final String ALERT_TIMESTAMP_PROPERTY = "alertTimestamp";
-
-       public static final String ALERT_EMAIL_TIME_PROPERTY = "timestamp";
-       public static final String ALERT_EMAIL_COUNT_PROPERTY = "count";
-       public static final String ALERT_EMAIL_ALERTLIST_PROPERTY = "alertList";
-
-       public static final String URL = "url";
-       public static final String ALERT_SOURCE = "alertSource";
-       public static final String ALERT_MESSAGE = "alertMessage";
-       public static final String SUBJECT = "subject";
-       public static final String ALERT_EXECUTOR_ID = "alertExecutorId";
-       public static final String POLICY_NAME = "policyName";
-       public static final String POLICY_ID = "policyId";
-    public static final String SOURCE_STREAMS = "sourceStreams";
-    public static final String ALERT_EVENT = "alertEvent";
-       public static final String POLICY_DETAIL_URL = "policyDetailUrl";
-       public static final String ALERT_DETAIL_URL = "alertDetailUrl";
-
-       public static final String POLICY_DEFINITION = "policyDefinition";
-       public static final String POLICY_TYPE = "policyType";
-       public static final String STREAM_NAME = "streamName";
-       public static final String ATTR_NAME = "attrName";
-
-       public static final String ALERT_EXECUTOR_CONFIGS = 
"alertExecutorConfigs";
-       public static final String PARALLELISM = "parallelism";
-       public static final String PARTITIONER = "partitioner";
-       public static final String SOURCE = "source";
-       public static final String PARTITIONSEQ = "partitionSeq";
-
-       public enum policyType {
-               siddhiCEPEngine,
-               MachineLearning;
-
-               policyType() {
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java
index c812f0e..faea5be 100644
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java
+++ 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/common/AlertEmailSender.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.eagle.alert.email.AlertEmailContext;
+import org.apache.eagle.policy.common.Constants;
 import org.apache.velocity.VelocityContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -146,10 +147,10 @@ public class AlertEmailSender implements Runnable {
        }
        
        private void generateCommonContext(VelocityContext context) {
-               context.put(AlertConstants.ALERT_EMAIL_TIME_PROPERTY, 
DateTimeUtil.millisecondsToHumanDateWithSeconds( System.currentTimeMillis() ));
-               context.put(AlertConstants.ALERT_EMAIL_COUNT_PROPERTY, 
alertContexts.size());
-               context.put(AlertConstants.ALERT_EMAIL_ALERTLIST_PROPERTY, 
alertContexts);
-               context.put(AlertConstants.ALERT_EMAIL_ORIGIN_PROPERTY, origin);
+               context.put(Constants.ALERT_EMAIL_TIME_PROPERTY, 
DateTimeUtil.millisecondsToHumanDateWithSeconds( System.currentTimeMillis() ));
+               context.put(Constants.ALERT_EMAIL_COUNT_PROPERTY, 
alertContexts.size());
+               context.put(Constants.ALERT_EMAIL_ALERTLIST_PROPERTY, 
alertContexts);
+               context.put(Constants.ALERT_EMAIL_ORIGIN_PROPERTY, origin);
        }
 
        public boolean sentSuccessfully(){

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.java
deleted file mode 100644
index 4196d7f..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAO.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import org.apache.eagle.alert.entity.AlertDataSourceEntity;
-
-import java.util.List;
-
-public interface AlertDataSourceDAO {
-    List<AlertDataSourceEntity> findAlertDataSourceBySite(String site) throws 
Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java
deleted file mode 100644
index cd125f3..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDataSourceDAOImpl.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import com.typesafe.config.Config;
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.alert.entity.AlertDataSourceEntity;
-import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity;
-import org.apache.eagle.common.config.EagleConfigConstants;
-import org.apache.eagle.service.client.EagleServiceConnector;
-import org.apache.eagle.service.client.IEagleServiceClient;
-import org.apache.eagle.service.client.impl.EagleServiceClientImpl;
-import org.apache.commons.lang.time.DateUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-public class AlertDataSourceDAOImpl implements AlertDataSourceDAO{
-    private final Logger LOG = 
LoggerFactory.getLogger(AlertDataSourceDAOImpl.class);
-    private final EagleServiceConnector connector;
-
-    public AlertDataSourceDAOImpl(EagleServiceConnector connector){
-        this.connector = connector;
-    }
-
-    @Override
-    public List<AlertDataSourceEntity> findAlertDataSourceBySite(String site) 
throws Exception{
-        try {
-            IEagleServiceClient client = new EagleServiceClientImpl(connector);
-            String query = AlertConstants.ALERT_STREAM_SERVICE_ENDPOINT_NAME + 
"[@site=\"" + site + "\"]{*}";
-            GenericServiceAPIResponseEntity<AlertDataSourceEntity> response =  
client.search()
-                    .startTime(0)
-                    .endTime(10 * DateUtils.MILLIS_PER_DAY)
-                    .pageSize(Integer.MAX_VALUE)
-                    .query(query)
-                    .send();
-            client.close();
-            if (response.getException() != null) {
-                throw new Exception("Got an exception when query eagle 
service: " + response.getException());
-            }
-            return response.getObj();
-        }
-        catch (Exception ex) {
-            LOG.error("Got an exception when query stream metadata service ", 
ex);
-            throw new IllegalStateException(ex);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java
deleted file mode 100644
index 44f081a..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAO.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.eagle.alert.entity.AlertDefinitionAPIEntity;
-
-public interface AlertDefinitionDAO extends Serializable{
-       /**
-        * find list of active alert definitions for one specific site and 
dataSource
-        * @return
-        */
-       List<AlertDefinitionAPIEntity> findActiveAlertDefs(String site, String 
dataSource) throws Exception;
-       
-       /**
-        * find map from alertExecutorId to map from policy Id to alert 
definition for one specific site and dataSource
-        * Map from alertExecutorId to map from policyId to policy definition
-       (site,dataSource) => Map[alertExecutorId,Map[policyId,alertDefinition]]
-        * @return
-        */
-       Map<String, Map<String, AlertDefinitionAPIEntity>> 
findActiveAlertDefsGroupbyAlertExecutorId(String site, String dataSource) 
throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java
deleted file mode 100644
index b6f865c..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertDefinitionDAOImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.alert.entity.AlertDefinitionAPIEntity;
-import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity;
-import org.apache.eagle.service.client.EagleServiceConnector;
-import org.apache.eagle.service.client.IEagleServiceClient;
-import org.apache.eagle.service.client.impl.EagleServiceClientImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Utility methods to load alert definitions for a program
- */
-public class AlertDefinitionDAOImpl implements AlertDefinitionDAO {
-       private final Logger LOG = 
LoggerFactory.getLogger(AlertDefinitionDAOImpl.class);
-       private final EagleServiceConnector connector;
-
-       public AlertDefinitionDAOImpl(EagleServiceConnector connector){
-               this.connector = connector;
-       }
-
-    @Override
-       public List<AlertDefinitionAPIEntity> findActiveAlertDefs(String site, 
String dataSource) throws Exception {
-               try {
-                       IEagleServiceClient client = new 
EagleServiceClientImpl(connector);
-                       String query = 
AlertConstants.ALERT_DEFINITION_SERVICE_ENDPOINT_NAME + "[@site=\"" + site + 
"\" AND @dataSource=\"" + dataSource + "\"]{*}";
-                       
GenericServiceAPIResponseEntity<AlertDefinitionAPIEntity> response =  
client.search()
-                                                                               
                                                                                
.pageSize(Integer.MAX_VALUE)
-                                                                               
                                                                                
.query(query)
-                                                                               
                                                                            
.send();
-                       client.close();
-                       if (response.getException() != null) {
-                               throw new Exception("Got an exception when 
query eagle service: " + response.getException()); 
-                       }
-                       List<AlertDefinitionAPIEntity> list = response.getObj();
-                       List<AlertDefinitionAPIEntity> enabledList = new 
ArrayList<AlertDefinitionAPIEntity>();
-                       for (AlertDefinitionAPIEntity entity : list) {
-                               if (entity.isEnabled()) enabledList.add(entity);
-                       }
-                       return enabledList;
-               }
-               catch (Exception ex) {
-                       LOG.error("Got an exception when query alert Def 
service", ex);
-                       throw new IllegalStateException(ex);
-               }                                          
-       }
-
-    @Override
-       public Map<String, Map<String, AlertDefinitionAPIEntity>> 
findActiveAlertDefsGroupbyAlertExecutorId(String site, String dataSource) 
throws Exception {
-               List<AlertDefinitionAPIEntity> list = findActiveAlertDefs(site, 
dataSource);
-               Map<String, Map<String, AlertDefinitionAPIEntity>> map = new 
HashMap<String, Map<String, AlertDefinitionAPIEntity>>();
-                       for (AlertDefinitionAPIEntity entity : list) {
-                               String executorID = 
entity.getTags().get(AlertConstants.ALERT_EXECUTOR_ID);
-                               if (map.get(executorID) == null) {
-                                       map.put(executorID, new HashMap<String, 
AlertDefinitionAPIEntity>());
-                               }
-                               
map.get(executorID).put(entity.getTags().get("policyId"), entity);
-                       }
-               return map;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.java
deleted file mode 100644
index 7fc1469..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAO.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import org.apache.eagle.alert.entity.AlertExecutorEntity;
-
-import java.util.List;
-
-public interface AlertExecutorDAO {
-    List<AlertExecutorEntity> findAlertExecutorByDataSource(String dataSource) 
throws Exception;
-    List<AlertExecutorEntity> findAlertExecutor(String dataSource, String 
alertExecutorId) throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java
deleted file mode 100644
index 590a9db..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertExecutorDAOImpl.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.alert.entity.AlertExecutorEntity;
-import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity;
-import org.apache.eagle.service.client.EagleServiceConnector;
-import org.apache.eagle.service.client.IEagleServiceClient;
-import org.apache.eagle.service.client.impl.EagleServiceClientImpl;
-import org.apache.commons.lang.time.DateUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-public class AlertExecutorDAOImpl implements AlertExecutorDAO{
-    private final Logger LOG = 
LoggerFactory.getLogger(AlertExecutorDAOImpl.class);
-    private final EagleServiceConnector connector;
-
-    public AlertExecutorDAOImpl(EagleServiceConnector connector){
-        this.connector = connector;
-    }
-
-    @Override
-    public List<AlertExecutorEntity> findAlertExecutorByDataSource(String 
dataSource) throws Exception{
-        try {
-            IEagleServiceClient client = new EagleServiceClientImpl(connector);
-            String query = AlertConstants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME 
+ "[@dataSource=\"" + dataSource + "\"]{*}";
-            GenericServiceAPIResponseEntity<AlertExecutorEntity> response =  
client.search()
-                    .startTime(0)
-                    .endTime(10 * DateUtils.MILLIS_PER_DAY)
-                    .pageSize(Integer.MAX_VALUE)
-                    .query(query)
-                    .send();
-            client.close();
-            if (response.getException() != null) {
-                throw new Exception("Got an exception when query eagle 
service: " + response.getException());
-            }
-            return response.getObj();
-        }
-        catch (Exception ex) {
-            LOG.error("Got an exception when query stream metadata service ", 
ex);
-            throw new IllegalStateException(ex);
-        }
-    }
-
-    @Override
-    public List<AlertExecutorEntity> findAlertExecutor(String dataSource, 
String alertExecutorId) throws Exception{
-        try {
-            IEagleServiceClient client = new EagleServiceClientImpl(connector);
-            String query = AlertConstants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME 
+ "[@dataSource=\"" + dataSource + "\""
-                    + " AND @alertExecutorId=\"" + alertExecutorId + "\""
-                    + "]{*}";
-            GenericServiceAPIResponseEntity<AlertExecutorEntity> response =  
client.search()
-                    .startTime(0)
-                    .endTime(10 * DateUtils.MILLIS_PER_DAY)
-                    .pageSize(Integer.MAX_VALUE)
-                    .query(query)
-                    .send();
-            client.close();
-            if (response.getException() != null) {
-                throw new Exception("Got an exception when query eagle 
service: " + response.getException());
-            }
-            return response.getObj();
-        }
-        catch (Exception ex) {
-            LOG.error("Got an exception when query stream metadata service ", 
ex);
-            throw new IllegalStateException(ex);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.java
deleted file mode 100644
index 17bdef0..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAO.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import org.apache.eagle.alert.entity.AlertStreamEntity;
-
-import java.util.List;
-
-public interface AlertStreamDAO {
-    List<AlertStreamEntity> findAlertStreamByDataSource(String dataSource) 
throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.java
deleted file mode 100644
index 95ac2a9..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamDAOImpl.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import com.typesafe.config.Config;
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.alert.entity.AlertStreamEntity;
-import org.apache.eagle.common.config.EagleConfigConstants;
-import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity;
-import org.apache.eagle.service.client.EagleServiceConnector;
-import org.apache.eagle.service.client.IEagleServiceClient;
-import org.apache.eagle.service.client.impl.EagleServiceClientImpl;
-import org.apache.commons.lang.time.DateUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-public class AlertStreamDAOImpl implements AlertStreamDAO{
-    private final Logger LOG = 
LoggerFactory.getLogger(AlertStreamDAOImpl.class);
-    private final EagleServiceConnector connector;
-
-    public AlertStreamDAOImpl(EagleServiceConnector connector){
-        this.connector = connector;
-    }
-
-    public List<AlertStreamEntity> findAlertStreamByDataSource(String 
dataSource) throws Exception{
-        try {
-            IEagleServiceClient client = new EagleServiceClientImpl(connector);
-            String query = AlertConstants.ALERT_STREAM_SERVICE_ENDPOINT_NAME + 
"[@dataSource=\"" + dataSource + "\"]{*}";
-            GenericServiceAPIResponseEntity<AlertStreamEntity> response =  
client.search()
-                    .startTime(0)
-                    .endTime(10 * DateUtils.MILLIS_PER_DAY)
-                    .pageSize(Integer.MAX_VALUE)
-                    .query(query)
-                    .send();
-            client.close();
-            if (response.getException() != null) {
-                throw new Exception("Got an exception when query eagle 
service: " + response.getException());
-            }
-            return response.getObj();
-        }
-        catch (Exception ex) {
-            LOG.error("Got an exception when query stream metadata service ", 
ex);
-            throw new IllegalStateException(ex);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.java
deleted file mode 100644
index 0e69d89..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAO.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import java.util.List;
-
-import org.apache.eagle.alert.entity.AlertStreamSchemaEntity;
-
-public interface AlertStreamSchemaDAO {
-       List<AlertStreamSchemaEntity> findAlertStreamSchemaByDataSource(String 
dataSource) throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java
deleted file mode 100644
index 4c252b7..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/dao/AlertStreamSchemaDAOImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.dao;
-
-import com.typesafe.config.Config;
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.alert.entity.AlertStreamSchemaEntity;
-import org.apache.eagle.common.config.EagleConfigConstants;
-import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity;
-import org.apache.eagle.service.client.IEagleServiceClient;
-import org.apache.eagle.service.client.impl.EagleServiceClientImpl;
-import org.apache.commons.lang.time.DateUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-public class AlertStreamSchemaDAOImpl implements AlertStreamSchemaDAO {
-       private final Logger LOG = 
LoggerFactory.getLogger(AlertStreamSchemaDAOImpl.class);
-       
-       private final String eagleServiceHost;
-       private final Integer eagleServicePort;
-       private String username;
-       private String password;
-
-       public AlertStreamSchemaDAOImpl(String eagleServiceHost, Integer 
eagleServicePort) {
-               this(eagleServiceHost, eagleServicePort, null, null);
-       }
-
-       public AlertStreamSchemaDAOImpl(String eagleServiceHost, Integer 
eagleServicePort, String username, String password) {
-               this.eagleServiceHost = eagleServiceHost;
-               this.eagleServicePort = eagleServicePort;
-               this.username = username;
-               this.password = password;
-       }
-
-       public AlertStreamSchemaDAOImpl(Config config) {
-               this.eagleServiceHost = 
config.getString(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.HOST);
-               this.eagleServicePort = 
config.getInt(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.PORT);
-               if (config.hasPath(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.USERNAME) &&
-                       config.hasPath(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.PASSWORD)) {
-                       this.username = 
config.getString(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.USERNAME);
-                       this.password = 
config.getString(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.PASSWORD);
-               }
-       }
-       
-       @Override
-       public List<AlertStreamSchemaEntity> 
findAlertStreamSchemaByDataSource(String dataSource) throws Exception {
-               try {
-                       IEagleServiceClient client = new 
EagleServiceClientImpl(eagleServiceHost, eagleServicePort, username, password);
-                       String query = 
AlertConstants.ALERT_STREAM_SCHEMA_SERVICE_ENDPOINT_NAME + "[@dataSource=\"" + 
dataSource + "\"]{*}";
-                       
GenericServiceAPIResponseEntity<AlertStreamSchemaEntity> response =  
client.search()
-                                                                               
                                                                                
.startTime(0)
-                                                                               
                                                                                
.endTime(10 * DateUtils.MILLIS_PER_DAY)
-                                                                               
                                                                                
.pageSize(Integer.MAX_VALUE)
-                                                                               
                                                                                
.query(query)
-                                                                               
                                                                            
.send();
-                       client.close();
-                       if (response.getException() != null) {
-                               throw new Exception("Got an exception when 
query eagle service: " + response.getException()); 
-                       }                       
-                       return response.getObj();
-               }
-               catch (Exception ex) {
-                       LOG.error("Got an exception when query stream metadata 
service ", ex);
-                       throw new IllegalStateException(ex);
-               }                                          
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java
deleted file mode 100644
index 7b51f8d..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertAPIEntity.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.common.metric.AlertContext;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.Column;
-import org.apache.eagle.log.entity.meta.ColumnFamily;
-import org.apache.eagle.log.entity.meta.Prefix;
-import org.apache.eagle.log.entity.meta.Service;
-import org.apache.eagle.log.entity.meta.Table;
-import org.apache.eagle.log.entity.meta.TimeSeries;
-
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@Table("alertdetail")
-@ColumnFamily("f")
-@Prefix("hadoop")
-@Service(AlertConstants.ALERT_SERVICE_ENDPOINT_NAME)
-@TimeSeries(true)
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class AlertAPIEntity extends TaggedLogAPIEntity{
-       @Column("description")
-       private String description;
-       @Column("remediationID")
-       private String remediationID;
-       @Column("remediationCallback")
-       private String remediationCallback;
-       @Column("alertContext")
-       private AlertContext alertContext;
-
-       public String getDescription() {
-               return description;
-       }
-
-       public void setDescription(String description) {
-               this.description = description;
-               _pcs.firePropertyChange("description", null, null);
-       }
-
-       public String getRemediationID() {
-               return remediationID;
-       }
-
-       public void setRemediationID(String remediationID) {
-               this.remediationID = remediationID;
-               _pcs.firePropertyChange("remediationID", null, null);
-       }
-
-       public String getRemediationCallback() {
-               return remediationCallback;
-       }
-
-       public void setRemediationCallback(String remediationCallback) {
-               this.remediationCallback = remediationCallback;
-               _pcs.firePropertyChange("remediationCallback", null, null);
-       }
-
-       public AlertContext getAlertContext() {
-               return alertContext;
-       }
-       
-       public void setAlertContext(AlertContext alertContext) {
-               this.alertContext = alertContext;
-               _pcs.firePropertyChange("alertContext", null, null);
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java
deleted file mode 100644
index f001725..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertContextSerDeser.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.eagle.common.metric.AlertContext;
-import org.apache.hadoop.hbase.util.Bytes;
-
-import org.apache.eagle.log.entity.meta.EntitySerDeser;
-
-public class AlertContextSerDeser implements EntitySerDeser<AlertContext> {
-
-       @Override
-       public AlertContext deserialize(byte[] bytes) {
-               AlertContext context = new AlertContext();
-               Map<String, String> properties = new HashMap<String, String>();
-               final int length = bytes.length;
-               if (length < 4) { return context; }
-               int size = Bytes.toInt(bytes, 0, 4);
-               
-               int offset = 4;
-               for (int i = 0; i < size; i++) {
-                       int keySize =  Bytes.toInt(bytes, offset, 4);
-                       offset += 4;
-                       int valueSize =  Bytes.toInt(bytes, offset, 4);
-                       offset += 4;
-                       String key = Bytes.toString(bytes, offset, keySize);
-                       offset += keySize;
-                       String value =Bytes.toString(bytes, offset, valueSize);
-                       offset += valueSize;
-                       properties.put(key, value);
-               }
-               context.addAll(properties);
-               return context;
-       }
-
-       @Override
-       public byte[] serialize(AlertContext context) {
-               
-               final Map<String, String> pair = context.getProperties();
-               int totalSize = 4;
-               for (Entry<String, String> entry : pair.entrySet()) {
-                       String key = entry.getKey();
-                       String value = entry.getValue();
-            int keySize = 0;
-            if(key!=null) keySize = key.getBytes().length;
-                       int valueSize = 0;
-            if(value!=null) valueSize = value.getBytes().length;
-                       totalSize += keySize + valueSize + 8;
-               }
-               byte[] buffer = new byte[totalSize];
-               
-               Bytes.putInt(buffer, 0, pair.size());
-               int offset = 4;
-               for (Entry<String, String> entry : pair.entrySet()) {
-                       String key = entry.getKey();
-                       String value = entry.getValue();
-
-                       int keySize = key !=null ? key.getBytes().length : 0;
-            int valueSize = value != null ? value.getBytes().length:0;
-
-            Bytes.putInt(buffer, offset, keySize);
-                       offset += 4;
-                       Bytes.putInt(buffer, offset, valueSize);
-                       offset += 4;
-
-
-            Bytes.putBytes(buffer, offset, key != null ? key.getBytes() : new 
byte[0], 0, keySize);
-                       offset += keySize;
-                       Bytes.putBytes(buffer, offset, value != null ? 
value.getBytes() : new byte[0], 0, valueSize);
-                       offset += valueSize;
-               }
-               return buffer;
-       }
-
-
-       @Override
-       public Class<AlertContext> type(){
-               return AlertContext.class;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.java
deleted file mode 100644
index ec7d432..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDataSourceEntity.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@Table("alertDataSource")
-@ColumnFamily("f")
-@Prefix("alertDataSource")
-@Service(AlertConstants.ALERT_DATA_SOURCE_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(false)
-@Tags({"site", "dataSource"})
-public class AlertDataSourceEntity extends TaggedLogAPIEntity{
-    @Column("a")
-    private boolean enabled;
-    @Column("b")
-    private String config;
-    @Column("c")
-    private String desc;
-
-    public String getConfig() {
-        return config;
-    }
-
-    public void setConfig(String config) {
-        this.config = config;
-        valueChanged("config");
-    }
-
-    public boolean isEnabled() {
-        return enabled;
-    }
-
-    public void setEnabled(boolean enabled) {
-        this.enabled = enabled;
-        valueChanged("enabled");
-    }
-
-    public String getDesc() {
-        return desc;
-    }
-
-    public void setDesc(String desc) {
-        this.desc = desc;
-        valueChanged("desc");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java
deleted file mode 100644
index 61a5ae2..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertDefinitionAPIEntity.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.Column;
-import org.apache.eagle.log.entity.meta.ColumnFamily;
-import org.apache.eagle.log.entity.meta.Index;
-import org.apache.eagle.log.entity.meta.Indexes;
-import org.apache.eagle.log.entity.meta.Prefix;
-import org.apache.eagle.log.entity.meta.Service;
-import org.apache.eagle.log.entity.meta.Table;
-import org.apache.eagle.log.entity.meta.Tags;
-import org.apache.eagle.log.entity.meta.TimeSeries;
-
-/**
- * site: site name
- * dataSource: data source name
- *
- * alertExecutorId: Group Policy by alertExecutorId, the policy definition 
with the sample ["site", "dataSource", "alertExecutorId"] should run on the 
sample alert executor
- *
- * policyId: policy name, should be unique
- * policyType: policy engine implementation type
- */
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@Table("alertdef")
-@ColumnFamily("f")
-@Prefix("alertdef")
-@Service(AlertConstants.ALERT_DEFINITION_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(false)
-@Tags({"site", "dataSource", "alertExecutorId", "policyId", "policyType"})
-@Indexes({
-       @Index(name="Index_1_alertExecutorId", columns = { "alertExecutorID" }, 
unique = true),
-})
-public class AlertDefinitionAPIEntity extends TaggedLogAPIEntity{
-       @Column("a")
-       private String desc;
-       @Column("b")
-       private String policyDef;
-       @Column("c")
-       private String dedupeDef;
-       @Column("d")
-       private String notificationDef;
-       @Column("e")
-       private String remediationDef;
-       @Column("f")
-       private boolean enabled;
-       @Column("g")
-       private String owner;   
-       @Column("h")
-       private long lastModifiedDate;
-       @Column("i")
-       private long severity;
-       @Column("j")
-       private long createdTime;
-
-       public String getDesc() {
-               return desc;
-       }
-       public void setDesc(String desc) {
-               this.desc = desc;
-               valueChanged("desc");
-       }
-       public String getPolicyDef() {
-               return policyDef;
-       }
-       public void setPolicyDef(String policyDef) {
-               this.policyDef = policyDef;
-               valueChanged("policyDef");
-       }
-       public String getDedupeDef() {
-               return dedupeDef;
-       }
-       public void setDedupeDef(String dedupeDef) {
-               this.dedupeDef = dedupeDef;
-               valueChanged("dedupeDef");
-       }
-       public String getNotificationDef() {
-               return notificationDef;
-       }
-       public void setNotificationDef(String notificationDef) {
-               this.notificationDef = notificationDef;
-               valueChanged("notificationDef");
-       }
-       public String getRemediationDef() {
-               return remediationDef;
-       }
-       public void setRemediationDef(String remediationDef) {
-               this.remediationDef = remediationDef;
-               valueChanged("remediationDef");
-       }
-       public boolean isEnabled() {
-               return enabled;
-       }
-       public void setEnabled(boolean enabled) {
-               this.enabled = enabled;
-               valueChanged("enabled");
-       }
-       public String getOwner() {
-               return owner;
-       }
-       public void setOwner(String owner) {
-               this.owner = owner;
-               valueChanged("owner");
-       }       
-       public long getLastModifiedDate() {
-               return lastModifiedDate;
-       }
-       public void setLastModifiedDate(long lastModifiedDate) {
-               this.lastModifiedDate = lastModifiedDate;
-               valueChanged("lastModifiedDate");
-       }       
-       public long getSeverity() {
-               return severity;
-       }
-       public void setSeverity(long severity) {
-               this.severity = severity;
-               valueChanged("severity");
-       }       
-       public long getCreatedTime() {
-               return createdTime;
-       }
-       public void setCreatedTime(long createdTime) {
-               this.createdTime = createdTime;
-               valueChanged("createdTime");
-       }
-       public boolean equals(Object o){
-               if(o == this)
-                       return true;
-               if(!(o instanceof AlertDefinitionAPIEntity))
-                       return false;
-               AlertDefinitionAPIEntity that = (AlertDefinitionAPIEntity)o;
-               if(that.enabled == this.enabled &&
-                               compare(that.policyDef, this.policyDef) &&
-                               compare(that.dedupeDef, this.dedupeDef) &&
-                               compare(that.notificationDef, 
this.notificationDef) &&
-                               compare(that.remediationDef, 
this.remediationDef))
-                       return true;
-               return false;
-       }
-       
-       private boolean compare(String a, String b){
-               if(a == b)
-                       return true;
-               if(a == null || b == null)
-                       return false;
-               if(a.equals(b))
-                       return true;
-               return false;
-       }
-       
-       public int hashCode(){
-               HashCodeBuilder builder = new HashCodeBuilder();
-               builder.append(enabled);
-               builder.append(policyDef);
-               builder.append(dedupeDef);
-               builder.append(notificationDef);
-               builder.append(remediationDef);
-               return builder.toHashCode();
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java
deleted file mode 100644
index ad518e9..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertEntityRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import org.apache.eagle.common.metric.AlertContext;
-import org.apache.eagle.log.entity.repo.EntityRepository;
-
-public class AlertEntityRepository extends EntityRepository {
-       public AlertEntityRepository() {
-               serDeserMap.put(AlertContext.class, new AlertContextSerDeser());
-               entitySet.add(AlertAPIEntity.class);
-               entitySet.add(AlertDefinitionAPIEntity.class);
-               entitySet.add(AlertStreamSchemaEntity.class);
-               entitySet.add(AlertStreamEntity.class);
-               entitySet.add(AlertDataSourceEntity.class);
-        entitySet.add(AlertExecutorEntity.class);
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.java
deleted file mode 100644
index 60d51c7..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertExecutorEntity.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@Table("alertExecutor")
-@ColumnFamily("f")
-@Prefix("alertExecutor")
-@Service(AlertConstants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(false)
-@Tags({"dataSource", "alertExecutorId", "streamName"})
-public class AlertExecutorEntity extends TaggedLogAPIEntity{
-    @Column("a")
-    private String desc;
-
-    public String getDesc() {
-        return desc;
-    }
-
-    public void setDesc(String desc) {
-        this.desc = desc;
-        valueChanged("desc");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java
deleted file mode 100644
index f0f2c7b..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamEntity.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.Column;
-import org.apache.eagle.log.entity.meta.ColumnFamily;
-import org.apache.eagle.log.entity.meta.Prefix;
-import org.apache.eagle.log.entity.meta.Service;
-import org.apache.eagle.log.entity.meta.Table;
-import org.apache.eagle.log.entity.meta.Tags;
-import org.apache.eagle.log.entity.meta.TimeSeries;
-
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@Table("alertStream")
-@ColumnFamily("f")
-@Prefix("alertStream")
-@Service(AlertConstants.ALERT_STREAM_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(false)
-@Tags({"dataSource", "streamName"})
-public class AlertStreamEntity extends TaggedLogAPIEntity{
-       @Column("a")
-       private String desc;
-
-       public String getDesc() {
-               return desc;
-       }
-       public void setDesc(String desc) {
-               this.desc = desc;
-               valueChanged("desc");
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java
 
b/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java
deleted file mode 100644
index 76b6097..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-base/src/main/java/org/apache/eagle/alert/entity/AlertStreamSchemaEntity.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.entity;
-
-import org.apache.eagle.alert.common.AlertConstants;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.Column;
-import org.apache.eagle.log.entity.meta.ColumnFamily;
-import org.apache.eagle.log.entity.meta.Prefix;
-import org.apache.eagle.log.entity.meta.Service;
-import org.apache.eagle.log.entity.meta.Table;
-import org.apache.eagle.log.entity.meta.Tags;
-import org.apache.eagle.log.entity.meta.TimeSeries;
-
-/**
- * ddl to create streammetadata table
- * 
- * create 'alertStreamSchema', {NAME => 'f', BLOOMFILTER => 'ROW', VERSIONS => 
'1', COMPRESSION => 'SNAPPY'}
- */
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@Table("alertStreamSchema")
-@ColumnFamily("f")
-@Prefix("alertStreamSchema")
-@Service(AlertConstants.ALERT_STREAM_SCHEMA_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(false)
-@Tags({"dataSource", "streamName", "attrName"})
-public class AlertStreamSchemaEntity extends TaggedLogAPIEntity{
-       @Column("a")
-       private String attrType;
-       @Column("b")
-       private String category;
-       @Column("c")
-       private String attrValueResolver;
-       /* all tags form the key for alert de-duplication */
-       @Column("d")
-       private Boolean usedAsTag;
-       @Column("e")
-       private String attrDescription;
-       @Column("f")
-       private String attrDisplayName; 
-       @Column("g")
-       private String defaultValue;
-
-       public String getAttrType() {
-               return attrType;
-       }
-       public void setAttrType(String attrType) {
-               this.attrType = attrType;
-               valueChanged("attrType");
-       }
-       public String getCategory() {
-               return category;
-       }
-       public void setCategory(String category) {
-               this.category = category;
-               valueChanged("category");
-       }
-       public String getAttrValueResolver() {
-               return attrValueResolver;
-       }
-       public void setAttrValueResolver(String attrValueResolver) {
-               this.attrValueResolver = attrValueResolver;
-               valueChanged("attrValueResolver");
-       }
-       public Boolean getUsedAsTag() {
-               return usedAsTag;
-       }
-       public void setUsedAsTag(Boolean usedAsTag) {
-               this.usedAsTag = usedAsTag;
-               valueChanged("usedAsTag");
-       }
-       public String getAttrDescription() {
-               return attrDescription;
-       }
-       public void setAttrDescription(String attrDescription) {
-               this.attrDescription = attrDescription;
-               valueChanged("attrDescription");
-       }
-       public String getAttrDisplayName() {
-               return attrDisplayName;
-       }
-       public void setAttrDisplayName(String attrDisplayName) {
-               this.attrDisplayName = attrDisplayName;
-               valueChanged("attrDisplayName");
-       }
-       public String getDefaultValue() {
-               return defaultValue;
-       }
-       public void setDefaultValue(String defaultValue) {
-               this.defaultValue = defaultValue;
-               valueChanged("defaultValue");
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/da8f419c/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java
 
b/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java
deleted file mode 100644
index 9a9a9e2..0000000
--- 
a/eagle-core/eagle-alert/eagle-alert-process/src/main/java/org/apache/eagle/alert/config/AbstractPolicyDefinition.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.alert.config;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
-
-/**
- * base fields for all policy definition
- */
-@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", visible=true)
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class AbstractPolicyDefinition {
-       private String type;
-    /**
-     * @return type in string
-     */
-       public String getType() {
-               return type;
-       }
-
-    /**
-     * @param type set type value
-     */
-       public void setType(String type) {
-               this.type = type;
-       }
-}
\ No newline at end of file

Reply via email to