http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/alert/entity/SiteDescServiceEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/alert/entity/SiteDescServiceEntity.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/alert/entity/SiteDescServiceEntity.java
deleted file mode 100644
index a8245cf..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/alert/entity/SiteDescServiceEntity.java
+++ /dev/null
@@ -1,48 +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.log.base.taggedlog.TaggedLogAPIEntity;
-import org.apache.eagle.log.entity.meta.*;
-import org.apache.eagle.policy.common.Constants;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-@Table("eagleSiteDesc")
-@ColumnFamily("f")
-@Prefix("eagleSiteDesc")
-@Service(Constants.SITE_DESCRIPTION_SERVICE_ENDPOINT_NAME)
-@JsonIgnoreProperties(ignoreUnknown = true)
-@TimeSeries(false)
-@Tags({"site"})
-public class SiteDescServiceEntity extends TaggedLogAPIEntity {
-    @Column("a")
-    private Boolean enabled;
-
-    public Boolean getEnabled() {
-        return enabled;
-    }
-
-    public void setEnabled(Boolean enabled) {
-        this.enabled = enabled;
-        valueChanged("enabled");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/DynamicPolicyLoader.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/DynamicPolicyLoader.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/DynamicPolicyLoader.java
deleted file mode 100644
index 20da2cf..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/DynamicPolicyLoader.java
+++ /dev/null
@@ -1,268 +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.policy;
-
-import com.netflix.config.*;
-import com.sun.jersey.client.impl.CopyOnWriteHashMap;
-import com.typesafe.config.Config;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.eagle.alert.entity.AbstractPolicyDefinitionEntity;
-import org.apache.eagle.common.config.EagleConfigConstants;
-import org.apache.eagle.policy.dao.PolicyDefinitionDAO;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- *
- * @param <T>
- */
-public class DynamicPolicyLoader<T extends AbstractPolicyDefinitionEntity> {
-       private static final Logger LOG = 
LoggerFactory.getLogger(DynamicPolicyLoader.class);
-       
-       private final int defaultInitialDelayMillis = 30*1000;
-       private final int defaultDelayMillis = 60*1000;
-       private final boolean defaultIgnoreDeleteFromSource = true;
-    /**
-     * one alertExecutor may have multiple instances, that is why there is a 
list of PolicyLifecycleMethods
-     */
-       private volatile CopyOnWriteHashMap<String, 
List<PolicyLifecycleMethods<T>>> policyChangeListeners = new 
CopyOnWriteHashMap<>();
-    private volatile CopyOnWriteHashMap<String, 
List<PolicyDistributionReportMethods>> policyDistributionUpdaters = new 
CopyOnWriteHashMap<>();
-       private static DynamicPolicyLoader instance = new DynamicPolicyLoader();
-       private volatile boolean initialized = false;
-       
-       public void addPolicyChangeListener(String alertExecutorId, 
PolicyLifecycleMethods<T> alertExecutor){
-               synchronized(policyChangeListeners) {
-                       if (policyChangeListeners.get(alertExecutorId) == null) 
{
-                               policyChangeListeners.put(alertExecutorId, new 
ArrayList<PolicyLifecycleMethods<T>>());
-                       }
-                       
policyChangeListeners.get(alertExecutorId).add(alertExecutor);
-               }
-       }
-
-       private static ConcurrentHashMap<Class, DynamicPolicyLoader> maps = new 
ConcurrentHashMap<Class, DynamicPolicyLoader>();
-    public void addPolicyDistributionReporter(String alertExecutorId, 
PolicyDistributionReportMethods policyDistUpdater){
-        synchronized(policyDistributionUpdaters) {
-            if(policyDistributionUpdaters.get(alertExecutorId) == null) {
-                policyDistributionUpdaters.put(alertExecutorId, new 
ArrayList<PolicyDistributionReportMethods>());
-            }
-            
policyDistributionUpdaters.get(alertExecutorId).add(policyDistUpdater);
-        }
-    }
-       
-       @SuppressWarnings("unchecked")
-       public static <K extends AbstractPolicyDefinitionEntity> 
DynamicPolicyLoader<K> getInstanceOf(Class<K> clz) {
-               if (maps.containsKey(clz)) {
-                       return maps.get(clz);
-               } else {
-                       DynamicPolicyLoader<K> loader = new 
DynamicPolicyLoader<K>();
-                       maps.putIfAbsent(clz, loader);
-                       return maps.get(clz);
-               }
-       }
-       
-       /**
-        * singleton with init would be good for unit test as well, and it 
ensures that
-        * initialization happens only once before you use it.  
-        * @param config
-        * @param dao
-        */
-       public void init(Map<String, Map<String, T>> initialAlertDefs, 
-                       PolicyDefinitionDAO<T> dao, Config config){
-               if(!initialized){
-                       synchronized(this){
-                               if(!initialized){
-                                       internalInit(initialAlertDefs, dao, 
config);
-                                       initialized = true;
-                               }
-                       }
-               }
-       }
-       
-       /**
-        * map from alertExecutorId+partitionId to AlertExecutor which 
implements PolicyLifecycleMethods
-        * @param initialAlertDefs
-        * @param dao
-        * @param config
-        */
-       private void internalInit(Map<String, Map<String, T>> initialAlertDefs,
-                       PolicyDefinitionDAO<T> dao, Config config){
-               if(!config.getBoolean("dynamicConfigSource.enabled")) {
-            return;
-        }
-               AbstractPollingScheduler scheduler = new 
FixedDelayPollingScheduler(
-                config.getInt("dynamicConfigSource.initDelayMillis"),
-                config.getInt("dynamicConfigSource.delayMillis"),
-                false
-        );
-
-               scheduler.addPollListener(new PollListener(){
-                       @SuppressWarnings("unchecked")
-                       @Override
-                       public void handleEvent(EventType eventType, PollResult 
lastResult,
-                                       Throwable exception) {
-                               if (lastResult == null) {
-                                       LOG.error("The lastResult is null, 
something must be wrong, probably the eagle service is dead!");
-                                       throw new RuntimeException("The 
lastResult is null, probably the eagle service is dead! ", exception);
-                               }
-                               Map<String, Object> added = 
lastResult.getAdded();
-                               Map<String, Object> changed = 
lastResult.getChanged();
-                               Map<String, Object> deleted = 
lastResult.getDeleted();
-                               for(Map.Entry<String, 
List<PolicyLifecycleMethods<T>>> entry : policyChangeListeners.entrySet()){
-                                       String alertExecutorId = entry.getKey();
-                                       for (PolicyLifecycleMethods<T> 
policyLifecycleMethod : entry.getValue()) {
-                                               Map<String, T> addedPolicies = 
(Map<String, T>)added.get(trimPartitionNum(alertExecutorId));
-                                               if(addedPolicies != null && 
addedPolicies.size() > 0){
-                                                       
policyLifecycleMethod.onPolicyCreated(addedPolicies);
-                                               }
-                                               Map<String, T> changedPolicies 
= (Map<String, T>)changed.get(trimPartitionNum(alertExecutorId));
-                                               if(changedPolicies != null && 
changedPolicies.size() > 0){
-                                                       
policyLifecycleMethod.onPolicyChanged(changedPolicies);
-                                               }
-                                               Map<String, T> deletedPolicies 
= (Map<String, T>)deleted.get(trimPartitionNum(alertExecutorId));
-                                               if(deletedPolicies != null && 
deletedPolicies.size() > 0){
-                                                       
policyLifecycleMethod.onPolicyDeleted(deletedPolicies);
-                                               }
-                                       }
-                               }
-
-                // notify policyDistributionUpdaters
-                for(Map.Entry<String, List<PolicyDistributionReportMethods>> 
entry : policyDistributionUpdaters.entrySet()){
-                    for(PolicyDistributionReportMethods 
policyDistributionUpdateMethod : entry.getValue()){
-                        policyDistributionUpdateMethod.report();
-                    }
-                }
-                       }
-                       private String trimPartitionNum(String alertExecutorId){
-                               int i = alertExecutorId.lastIndexOf('_');
-                               if(i != -1){
-                                       return alertExecutorId.substring(0, i);
-                               }
-                               return alertExecutorId;
-                       }
-               });
-               
-               ConcurrentCompositeConfiguration finalConfig = new 
ConcurrentCompositeConfiguration();
-                     
-               PolledConfigurationSource source = new 
DynamicPolicySource<T>(initialAlertDefs, dao, config);
-
-               try{
-                       DynamicConfiguration dbSourcedConfiguration = new 
DynamicConfiguration(source, scheduler);
-                       finalConfig.addConfiguration(dbSourcedConfiguration);
-               }catch(Exception ex){
-                       LOG.warn("Fail loading from DB, continue without DB 
sourced configuration", ex);
-               }
-       }
-       
-       public static class DynamicPolicySource<M extends 
AbstractPolicyDefinitionEntity> implements PolledConfigurationSource {
-               private static Logger LOG = 
LoggerFactory.getLogger(DynamicPolicySource.class);
-               private Config config;
-               private PolicyDefinitionDAO<M> dao;
-               /**
-                * mapping from alertExecutorId to list of policies 
-                */
-               private Map<String, Map<String, M>> cachedAlertDefs;
-               
-               public DynamicPolicySource(Map<String, Map<String, M>> 
initialAlertDefs, PolicyDefinitionDAO<M> dao, Config config){
-                       this.cachedAlertDefs = initialAlertDefs;
-                       this.dao = dao;
-                       this.config = config;
-               }
-
-               public PollResult poll(boolean initial, Object checkPoint) 
throws Exception {
-                       LOG.info("Poll policy from eagle service " +  
config.getString(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.HOST) +
-                                       ":" + 
config.getString(EagleConfigConstants.EAGLE_PROPS + "." + 
EagleConfigConstants.EAGLE_SERVICE + "." + EagleConfigConstants.PORT) );
-                       Map<String, Map<String, M>> newAlertDefs = 
-                                       
dao.findActivePoliciesGroupbyExecutorId(config.getString("eagleProps.site"),
-                            config.getString("eagleProps.application"));
-                       
-                       // compare runtime alertDefs with cachedAlertDefs and 
figure out what are added/deleted/updated
-                       Map<String, Object> added = new HashMap<String, 
Object>();
-                       Map<String, Object> changed = new HashMap<String, 
Object>();
-                       Map<String, Object> deleted = new HashMap<String, 
Object>();
-                       
-                       Set<String> newAlertExecutorIds = newAlertDefs.keySet();
-                       Set<String> cachedAlertExecutorIds = 
cachedAlertDefs.keySet();
-                       
-                       // dynamically adding new alert executor is not 
supported, because alert executor is pre-built while program starts up
-                       Collection<String> addedAlertExecutorIds = 
CollectionUtils.subtract(newAlertExecutorIds, cachedAlertExecutorIds);
-                       if(addedAlertExecutorIds != null && 
addedAlertExecutorIds.size() > 0){
-                               LOG.warn("New alertExecutorIds are found : " + 
addedAlertExecutorIds);
-                       }
-                       
-                       // if one alert executor is missing, it means all 
policy under that alert executor should be removed
-                       Collection<String> deletedAlertExecutorIds = 
CollectionUtils.subtract(cachedAlertExecutorIds, newAlertExecutorIds);
-                       if(deletedAlertExecutorIds != null && 
deletedAlertExecutorIds.size() > 0){
-                               LOG.warn("Some alertExecutorIds are deleted : " 
+ deletedAlertExecutorIds);
-                               for(String deletedAlertExecutorId : 
deletedAlertExecutorIds){
-                                       deleted.put(deletedAlertExecutorId, 
cachedAlertDefs.get(deletedAlertExecutorId));
-                               }
-                       }
-                       
-                       // we need calculate added/updated/deleted policy for 
all executors which are not deleted
-//                     Collection<String> updatedAlertExecutorIds = 
CollectionUtils.intersection(newAlertExecutorIds, cachedAlertExecutorIds);
-            Collection<String> updatedAlertExecutorIds = newAlertExecutorIds;
-                       for(String updatedAlertExecutorId : 
updatedAlertExecutorIds){
-                               Map<String, M> newPolicies = 
newAlertDefs.get(updatedAlertExecutorId);
-                               Map<String, M> cachedPolicies = 
cachedAlertDefs.get(updatedAlertExecutorId);
-                               
PolicyComparator.compare(updatedAlertExecutorId, newPolicies, cachedPolicies, 
added, changed, deleted);
-                       }
-                       
-                       cachedAlertDefs = newAlertDefs;
-
-                       return PollResult.createIncremental(added, changed, 
deleted, new Date().getTime());
-               }
-       }
-       
-       public static class PolicyComparator {
-               
-               public static <M extends AbstractPolicyDefinitionEntity> void 
compare(String alertExecutorId, Map<String, M> newPolicies, Map<String, M> 
cachedPolicies, 
-                               Map<String, Object> added, Map<String, Object> 
changed, Map<String, Object> deleted){
-                       Set<String> newPolicyIds = newPolicies.keySet();
-            Set<String> cachedPolicyIds = cachedPolicies != null ? 
cachedPolicies.keySet() : new HashSet<String>();
-                       Collection<String> addedPolicyIds = 
CollectionUtils.subtract(newPolicyIds, cachedPolicyIds);
-                       Collection<String> deletedPolicyIds = 
CollectionUtils.subtract(cachedPolicyIds, newPolicyIds);
-                       Collection<String> changedPolicyIds = 
CollectionUtils.intersection(cachedPolicyIds, newPolicyIds);
-                       if(addedPolicyIds != null && addedPolicyIds.size() > 0){
-                               Map<String, M> tmp = new HashMap<String, M>();
-                               for(String addedPolicyId : addedPolicyIds){
-                                       tmp.put(addedPolicyId, 
newPolicies.get(addedPolicyId));
-                               }
-                               added.put(alertExecutorId, tmp);
-                       }
-                       if(deletedPolicyIds != null && deletedPolicyIds.size() 
> 0){
-                               Map<String, M> tmp = new HashMap<String, M>();
-                               for(String deletedPolicyId : deletedPolicyIds){
-                                       tmp.put(deletedPolicyId, 
cachedPolicies.get(deletedPolicyId));
-                               }
-                               deleted.put(alertExecutorId, tmp);
-                       }
-                       if(changedPolicyIds != null && changedPolicyIds.size() 
> 0){
-                               Map<String, M> tmp = new HashMap<String, M>();
-                               for(String changedPolicyId : changedPolicyIds){
-                                       // check if policy is really changed
-                                       
if(!newPolicies.get(changedPolicyId).equals(cachedPolicies.get(changedPolicyId))){
-                                               tmp.put(changedPolicyId, 
newPolicies.get(changedPolicyId));
-                                       }
-                               }
-                               changed.put(alertExecutorId, tmp);
-                       }
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PartitionUtils.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PartitionUtils.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PartitionUtils.java
deleted file mode 100644
index bc9a13f..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PartitionUtils.java
+++ /dev/null
@@ -1,31 +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.policy;
-
-
-import org.apache.eagle.policy.common.Constants;
-import org.apache.eagle.alert.entity.AlertDefinitionAPIEntity;
-
-public class PartitionUtils {
-       
-       public static boolean accept(AlertDefinitionAPIEntity alertDef, 
PolicyPartitioner partitioner, int numPartitions, int partitionSeq){
-               int targetPartitionSeq = partitioner.partition(numPartitions, 
alertDef.getTags().get(Constants.POLICY_TYPE), 
alertDef.getTags().get(Constants.POLICY_ID));
-               if(targetPartitionSeq == partitionSeq)
-                       return true;
-               return false;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistStatsDAOLogReporter.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistStatsDAOLogReporter.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistStatsDAOLogReporter.java
deleted file mode 100644
index 30868f3..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistStatsDAOLogReporter.java
+++ /dev/null
@@ -1,47 +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.policy;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Set;
-
-/**
- * just append log
- */
-public class PolicyDistStatsDAOLogReporter implements 
PolicyDistributionStatsDAO{
-    private static Logger LOG = 
LoggerFactory.getLogger(PolicyDistStatsDAOLogReporter.class);
-
-    @Override
-    public void reportPolicyMembership(String policyGroupId, Set<String> 
policyIds) {
-        if(policyIds != null){
-            StringBuilder sb = new StringBuilder();
-            sb.append("policyDistirbutionStats for " + policyGroupId + "[" + 
"total: " + policyIds.size() + ", ");
-            for(String policyId : policyIds){
-                sb.append(policyId + ",");
-            }
-            sb.append("]");
-            LOG.info(sb.toString());
-        }else{
-            LOG.warn("No policies are assigned to " + policyGroupId);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionReportMethods.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionReportMethods.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionReportMethods.java
deleted file mode 100644
index 7181857..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionReportMethods.java
+++ /dev/null
@@ -1,27 +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.policy;
-
-/**
- * framework will call report method, it is AlertExecutor's responsibility to 
report policy distribution information
- */
-public interface PolicyDistributionReportMethods {
-    void report();
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStats.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStats.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStats.java
deleted file mode 100644
index 7a70c95..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStats.java
+++ /dev/null
@@ -1,74 +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.policy;
-
-/**
- * fields for a policy distribution statistics
- */
-public class PolicyDistributionStats {
-    private String policyGroupId;   // normally groupId is alertExecutorId
-    private String policyId;
-    private boolean markDown;       // true if this policy is marked down, 
false otherwise
-    private double weight;          // comprehensive factors for policy 
overhead
-
-    public String getPolicyId() {
-        return policyId;
-    }
-
-    public void setPolicyId(String policyId) {
-        this.policyId = policyId;
-    }
-
-    public boolean isMarkDown() {
-        return markDown;
-    }
-
-    public void setMarkDown(boolean markDown) {
-        this.markDown = markDown;
-    }
-
-    public double getWeight() {
-        return weight;
-    }
-
-    public void setWeight(double weight) {
-        this.weight = weight;
-    }
-
-    public String getPolicyGroupId() {
-        return policyGroupId;
-    }
-
-    public void setPolicyGroupId(String policyGroupId) {
-        this.policyGroupId = policyGroupId;
-    }
-
-    public String toString(){
-        StringBuilder sb = new StringBuilder();
-        sb.append("policyId:");
-        sb.append(policyId);
-        sb.append(", markDown:");
-        sb.append(markDown);
-        sb.append(", weight:");
-        sb.append(weight);
-
-        return sb.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStatsDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStatsDAO.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStatsDAO.java
deleted file mode 100644
index 12b2b83..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistributionStatsDAO.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.policy;
-
-import java.util.Set;
-
-public interface PolicyDistributionStatsDAO {
-    public void reportPolicyMembership(String policyGroupId, Set<String> 
policyIds);
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistroStatsLogReporter.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistroStatsLogReporter.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistroStatsLogReporter.java
deleted file mode 100644
index c4033f0..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyDistroStatsLogReporter.java
+++ /dev/null
@@ -1,50 +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.policy;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Set;
-
-/**
- * just append log
- */
-public class PolicyDistroStatsLogReporter implements 
PolicyDistributionStatsDAO{
-    private static Logger LOG = 
LoggerFactory.getLogger(PolicyDistroStatsLogReporter.class);
-
-    @Override
-    public void reportPolicyMembership(String policyGroupId, Set<String> 
policyIds) {
-        if(policyIds != null){
-            StringBuilder sb = new StringBuilder();
-            sb.append("policyDistributionStats for " + policyGroupId +", 
total: " + policyIds.size() + ", [");
-            for(String policyId : policyIds){
-                sb.append(policyId + ",");
-            }
-            if(policyIds.size() > 0){
-                sb.deleteCharAt(sb.length()-1);
-            }
-            sb.append("]");
-            LOG.info(sb.toString());
-        }else{
-            LOG.warn("No policies are assigned to " + policyGroupId);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyEvaluatorServiceProvider.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyEvaluatorServiceProvider.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyEvaluatorServiceProvider.java
deleted file mode 100644
index f862883..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyEvaluatorServiceProvider.java
+++ /dev/null
@@ -1,49 +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.policy;
-
-import java.util.List;
-
-import org.apache.eagle.alert.entity.AbstractPolicyDefinitionEntity;
-
-import com.fasterxml.jackson.databind.Module;
-
-/**
- * to provide extensibility, we need a clear differentiation between framework 
job and provider logic
- * policy evaluator framework:
- * - connect to eagle data source
- * - read all policy definitions
- * - compare with cached policy definitions
- * - figure out if policy is created, deleted or updated
- *   - if policy is created, then invoke onPolicyCreated
- *   - if policy is deleted, then invoke onPolicyDeleted
- *   - if policy is updated, then invoke onPolicyUpdated
- * - for policy report, replace old evaluator engine with new evaluator engine 
which is created by policy evaluator provider
- * - specify # of executors for this alert executor id
- * - dynamically balance # of policies evaluated by each alert executor
- *   - use zookeeper to balance. 
eaglePolicies/${alertExecutorId}/${alertExecutorInstanceId} => list of policies
- * 
- * policy evaluator business features:
- * - register mapping between policy type and PolicyEvaluator
- * - create evaluator engine runtime when configuration is changed
- *
- */
-public interface PolicyEvaluatorServiceProvider<T extends 
AbstractPolicyDefinitionEntity> {
-       String getPolicyType();
-       Class<? extends PolicyEvaluator<T>> getPolicyEvaluator();
-       List<Module> getBindingModules();
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyLifecycleMethods.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyLifecycleMethods.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyLifecycleMethods.java
deleted file mode 100644
index ad5d5c9..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyLifecycleMethods.java
+++ /dev/null
@@ -1,27 +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.policy;
-
-import java.util.Map;
-
-import org.apache.eagle.alert.entity.AbstractPolicyDefinitionEntity;
-
-public interface PolicyLifecycleMethods<T extends 
AbstractPolicyDefinitionEntity> {
-       void onPolicyCreated(Map<String, T> added);
-       void onPolicyChanged(Map<String, T> changed);
-       void onPolicyDeleted(Map<String, T> deleted);
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyManager.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyManager.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyManager.java
deleted file mode 100644
index 3f3581d..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/PolicyManager.java
+++ /dev/null
@@ -1,61 +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.policy;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.ServiceLoader;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.databind.Module;
-
-public class PolicyManager {
-       private final static Logger LOG = 
LoggerFactory.getLogger(PolicyManager.class);
-       private static PolicyManager instance = new PolicyManager();
-
-       private ServiceLoader<PolicyEvaluatorServiceProvider> loader;
-       
-       private Map<String, Class<? extends PolicyEvaluator>> policyEvaluators 
= new HashMap<String, Class<? extends PolicyEvaluator>>();
-       private Map<String, List<Module>> policyModules = new HashMap<String, 
List<Module>>();
-       
-       private PolicyManager(){
-               loader = 
ServiceLoader.load(PolicyEvaluatorServiceProvider.class);
-               Iterator<PolicyEvaluatorServiceProvider> iter = 
loader.iterator();
-               while(iter.hasNext()){
-                       PolicyEvaluatorServiceProvider factory = iter.next();
-                       LOG.info("Supported policy type : " + 
factory.getPolicyType());
-                       policyEvaluators.put(factory.getPolicyType(), 
factory.getPolicyEvaluator());
-                       policyModules.put(factory.getPolicyType(), 
factory.getBindingModules());
-               }
-       }
-       
-       public static PolicyManager getInstance(){
-               return instance;
-       }
-       
-       public Class<? extends PolicyEvaluator> getPolicyEvaluator(String 
policyType){
-               return policyEvaluators.get(policyType);
-       }
-       
-       public List<Module> getPolicyModules(String policyType){
-               return policyModules.get(policyType);
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/common/UrlBuilder.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/common/UrlBuilder.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/common/UrlBuilder.java
deleted file mode 100644
index 1267e93..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/common/UrlBuilder.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.policy.common;
-
-import org.apache.eagle.alert.entity.AlertAPIEntity;
-import org.apache.eagle.common.EagleBase64Wrapper;
-import org.apache.eagle.common.config.EagleConfigConstants;
-import org.apache.eagle.log.entity.HBaseInternalLogHelper;
-import org.apache.eagle.log.entity.InternalLog;
-import org.apache.eagle.log.entity.RowkeyBuilder;
-import org.apache.eagle.log.entity.meta.EntityDefinitionManager;
-import org.mortbay.util.UrlEncoded;
-import java.util.Map;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UrlBuilder {
-
-    private static final Logger logger = 
LoggerFactory.getLogger(UrlBuilder.class);
-
-    public static String getEncodedRowkey(AlertAPIEntity entity) throws 
Exception {
-        InternalLog log = HBaseInternalLogHelper.convertToInternalLog(entity, 
EntityDefinitionManager.getEntityDefinitionByEntityClass(entity.getClass()));
-        return 
EagleBase64Wrapper.encodeByteArray2URLSafeString(RowkeyBuilder.buildRowkey(log));
-    }
-
-    public static String buildAlertDetailUrl(String host, int port, 
AlertAPIEntity entity) {
-        String baseUrl = "http://"; + host + ":" + String.valueOf(port) + 
"/eagle-service/ui/#/common/alertDetail/";
-        try {
-            return baseUrl + UrlEncoded.encodeString(getEncodedRowkey(entity));
-        }
-        catch (Exception ex) {
-            logger.error("Fail to populate encodedRowkey for alert Entity" + 
entity.toString());
-            return "N/A";
-        }
-    }
-
-    public static String buiildPolicyDetailUrl(String host, int port, 
Map<String, String> tags) {
-        String baseUrl = "http://"; + host + ":" + String.valueOf(port) + 
"/eagle-service/ui/#/common/policyDetail/?";
-        String format = "policy=%s&site=%s&executor=%s";
-        String policy = tags.get(Constants.POLICY_ID);
-        String site = tags.get(EagleConfigConstants.SITE);
-        String alertExecutorID = tags.get(Constants.ALERT_EXECUTOR_ID);
-        if (policy != null && site != null && alertExecutorID != null) {
-            return baseUrl + String.format(format, policy, site, 
alertExecutorID);
-        }
-        return "N/A";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/config/AbstractPolicyDefinition.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/config/AbstractPolicyDefinition.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/config/AbstractPolicyDefinition.java
deleted file mode 100644
index a0999e6..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/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.policy.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

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertExecutorDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertExecutorDAO.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertExecutorDAO.java
deleted file mode 100644
index 03ede74..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/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.policy.dao;
-
-import org.apache.eagle.alert.entity.AlertExecutorEntity;
-
-import java.util.List;
-
-public interface AlertExecutorDAO {
-    List<AlertExecutorEntity> findAlertExecutorByDataSource(String 
application) throws Exception;
-    List<AlertExecutorEntity> findAlertExecutor(String application, String 
alertExecutorId) throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertExecutorDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertExecutorDAOImpl.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertExecutorDAOImpl.java
deleted file mode 100644
index 0584fe2..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertExecutorDAOImpl.java
+++ /dev/null
@@ -1,88 +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.policy.dao;
-
-import java.util.List;
-
-import org.apache.commons.lang.time.DateUtils;
-import org.apache.eagle.policy.common.Constants;
-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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class AlertExecutorDAOImpl implements AlertExecutorDAO{
-       
-    private static final Logger LOG = 
LoggerFactory.getLogger(AlertExecutorDAOImpl.class);
-    
-    private final EagleServiceConnector connector;
-
-    public AlertExecutorDAOImpl(EagleServiceConnector connector){
-        this.connector = connector;
-    }
-
-    @Override
-    public List<AlertExecutorEntity> findAlertExecutorByDataSource(String 
application) throws Exception{
-        try {
-            IEagleServiceClient client = new EagleServiceClientImpl(connector);
-            String query = Constants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME + 
"[@application=\"" + application + "\"]{*}";
-            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 application, 
String alertExecutorId) throws Exception{
-        try {
-            IEagleServiceClient client = new EagleServiceClientImpl(connector);
-            String query = Constants.ALERT_EXECUTOR_SERVICE_ENDPOINT_NAME + 
"[@application=\"" + application + "\""
-                    + " 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/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamDAO.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamDAO.java
deleted file mode 100644
index fd3dbb9..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/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.policy.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/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamDAOImpl.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamDAOImpl.java
deleted file mode 100644
index c13d8b5..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamDAOImpl.java
+++ /dev/null
@@ -1,60 +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.policy.dao;
-
-import org.apache.eagle.policy.common.Constants;
-import org.apache.eagle.alert.entity.AlertStreamEntity;
-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 
application) throws Exception{
-        try {
-            IEagleServiceClient client = new EagleServiceClientImpl(connector);
-            String query = Constants.ALERT_STREAM_SERVICE_ENDPOINT_NAME + 
"[@application=\"" + application + "\"]{*}";
-            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/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamSchemaDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamSchemaDAO.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamSchemaDAO.java
deleted file mode 100644
index f5740f0..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/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.policy.dao;
-
-import java.util.List;
-
-import org.apache.eagle.alert.entity.AlertStreamSchemaEntity;
-
-public interface AlertStreamSchemaDAO {
-       List<AlertStreamSchemaEntity> findAlertStreamSchemaByApplication(String 
application) throws Exception;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamSchemaDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamSchemaDAOImpl.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamSchemaDAOImpl.java
deleted file mode 100644
index 69c74db..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/AlertStreamSchemaDAOImpl.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.policy.dao;
-
-import java.util.List;
-
-import org.apache.commons.lang.time.DateUtils;
-import org.apache.eagle.policy.common.Constants;
-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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.typesafe.config.Config;
-
-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> 
findAlertStreamSchemaByApplication(String application) throws Exception {
-               try {
-                       IEagleServiceClient client = new 
EagleServiceClientImpl(eagleServiceHost, eagleServicePort, username, password);
-                       String query = 
Constants.ALERT_STREAM_SCHEMA_SERVICE_ENDPOINT_NAME + "[@application=\"" + 
application + "\"]{*}";
-                       
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/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionDAO.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionDAO.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionDAO.java
deleted file mode 100644
index faa81d9..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionDAO.java
+++ /dev/null
@@ -1,47 +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.policy.dao;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.eagle.alert.entity.AbstractPolicyDefinitionEntity;
-
-/**
- * @param <T> - Policy definition type
- */
-public interface PolicyDefinitionDAO<T extends AbstractPolicyDefinitionEntity> 
extends Serializable{
-       /**
-        * find list of active alert definitions for one specific site and 
dataSource
-        * @return
-        */
-       List<T> findActivePolicies(String site, String application) 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, T>> findActivePoliciesGroupbyExecutorId(String 
site, String dataSource) throws Exception;
-
-    /**
-     * Persists alert definition entity updated with markdown columns into 
HBase.
-     */
-    void updatePolicyDetails(T entity);
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/0f11a591/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionEntityDAOImpl.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionEntityDAOImpl.java
 
b/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionEntityDAOImpl.java
deleted file mode 100644
index 2c8616c..0000000
--- 
a/eagle-core/eagle-policy/eagle-policy-base/src/main/java/org/apache/eagle/policy/dao/PolicyDefinitionEntityDAOImpl.java
+++ /dev/null
@@ -1,118 +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.policy.dao;
-
-import org.apache.eagle.alert.entity.AbstractPolicyDefinitionEntity;
-import org.apache.eagle.log.entity.GenericServiceAPIResponseEntity;
-import org.apache.eagle.policy.common.Constants;
-import org.apache.eagle.service.client.EagleServiceClientException;
-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.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @since Dec 17, 2015
- *
- */
-public class PolicyDefinitionEntityDAOImpl<T extends 
AbstractPolicyDefinitionEntity> implements PolicyDefinitionDAO<T> {
-
-       private static final long serialVersionUID = 1L;
-
-       private static final Logger LOG = 
LoggerFactory.getLogger(PolicyDefinitionEntityDAOImpl.class);
-       private final EagleServiceConnector connector;
-       private final String servicePointName;
-
-       public PolicyDefinitionEntityDAOImpl(EagleServiceConnector connector, 
String serviceName){
-               this.connector = connector;
-               this.servicePointName = serviceName;
-       }
-
-    @Override
-       public List<T> findActivePolicies(String site, String application) 
throws Exception {
-               try {
-                       IEagleServiceClient client = new 
EagleServiceClientImpl(connector);
-                       String query = servicePointName + "[@site=\"" + site + 
"\" AND @application=\"" + application + "\" AND @enabled=\"true\"]{*}";
-                       GenericServiceAPIResponseEntity<T> 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<T> list = response.getObj();
-                       List<T> enabledList = new ArrayList<T>();
-                       for (T 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, T>> 
findActivePoliciesGroupbyExecutorId(String site, String application)
-                       throws Exception {
-               List<T> list = findActivePolicies(site, application);
-               Map<String, Map<String, T>> map = new HashMap<String, 
Map<String, T>>();
-               for (T entity : list) {
-                       // support both executorId and legacy alertExecutorId
-                       String executorID = 
entity.getTags().containsKey(Constants.EXECUTOR_ID) ? 
entity.getTags().get(Constants.EXECUTOR_ID)
-                                       : 
entity.getTags().get(Constants.ALERT_EXECUTOR_ID);
-
-                       if (map.get(executorID) == null) {
-                               map.put(executorID, new HashMap<String, T>());
-                       }
-                       
map.get(executorID).put(entity.getTags().get("policyId"), entity);
-               }
-               return map;
-       }
-
-    @Override
-    public void updatePolicyDetails(T entity) {
-        IEagleServiceClient client = new EagleServiceClientImpl(connector);
-
-        List<T> entityList = new ArrayList<>();
-        entityList.add(entity);
-
-        try {
-            client.create(entityList, servicePointName);
-        } catch (IOException | EagleServiceClientException exception) {
-            LOG.error("Exception in updating markdown for policy in HBase ", 
exception);
-        } finally {
-            try {
-                if (null != client)
-                    client.close();
-            } catch (IOException exception) {
-                LOG.error("Unable to close Eagle service client ", exception);
-            }
-        }
-    }
-}

Reply via email to