You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2016/06/02 07:08:00 UTC

[21/46] incubator-eagle git commit: [EAGLE-325] Initialize next-gen alert engine code on branch-0.5

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/ElasticSearchSink.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/ElasticSearchSink.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/ElasticSearchSink.java
deleted file mode 100644
index 7e30b82..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/ElasticSearchSink.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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.metric.sink;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-import org.elasticsearch.metrics.ElasticsearchReporter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.codahale.metrics.MetricRegistry;
-import com.typesafe.config.Config;
-
-public class ElasticSearchSink implements MetricSink {
-    private ElasticsearchReporter reporter = null;
-    private final static Logger LOG = LoggerFactory.getLogger(ElasticSearchSink.class);
-
-    @Override
-    public void prepare(Config config, MetricRegistry registry) {
-        LOG.debug("Preparing elasticsearch-sink");
-        try {
-            ElasticsearchReporter.Builder builder = ElasticsearchReporter.forRegistry(registry);
-            if(config.hasPath("hosts")){
-                List<String> hosts = config.getStringList("hosts");
-                builder.hosts(hosts.toArray(new String[hosts.size()]));
-            }
-            if(config.hasPath("index")){
-                builder.index(config.getString("index"));
-            }
-            builder.indexDateFormat("yyyy-MM-dd");
-            builder.timestampFieldname(config.hasPath("timestampField")?config.getString("timestampField"):"@timestamp");
-
-            if(config.hasPath("tags")) {
-                builder.additionalFields(config.getConfig("tags").root().unwrapped());
-            }
-
-            reporter = builder.build();
-        } catch (IOException e) {
-            LOG.error(e.getMessage(),e);
-        }
-    }
-
-    @Override
-    public void start(long period, TimeUnit unit) {
-        reporter.start(period, TimeUnit.SECONDS);
-    }
-
-    @Override
-    public void stop() {
-        reporter.stop();
-        reporter.close();
-    }
-
-    @Override
-    public void report() {
-        reporter.report();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/JmxSink.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/JmxSink.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/JmxSink.java
deleted file mode 100644
index fddaf19..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/JmxSink.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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.metric.sink;
-
-import java.util.concurrent.TimeUnit;
-
-import com.codahale.metrics.JmxReporter;
-import com.codahale.metrics.MetricRegistry;
-import com.typesafe.config.Config;
-
-public class JmxSink implements MetricSink {
-    private JmxReporter reporter;
-
-    @Override
-    public void prepare(Config config, MetricRegistry registry) {
-        reporter = JmxReporter.forRegistry(registry).build();
-    }
-
-    @Override
-    public void start(long period, TimeUnit unit) {
-        reporter.start();
-    }
-
-    @Override
-    public void stop() {
-        reporter.stop();
-        reporter.close();
-    }
-
-    @Override
-    public void report() {
-        // do nothing
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/KafkaSink.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/KafkaSink.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/KafkaSink.java
deleted file mode 100644
index 6ff000c..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/KafkaSink.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.eagle.alert.metric.sink;
-
-import java.util.concurrent.TimeUnit;
-
-import org.apache.eagle.alert.metric.reporter.KafkaReporter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.codahale.metrics.MetricRegistry;
-import com.typesafe.config.Config;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class KafkaSink implements MetricSink{
-    private KafkaReporter reporter;
-    private final static Logger LOG = LoggerFactory.getLogger(KafkaSink.class);
-    @Override
-    public void prepare(Config config, MetricRegistry registry) {
-        LOG.debug("Preparing kafka-sink");
-        KafkaReporter.Builder builder = KafkaReporter.forRegistry(registry)
-                .topic(config.getString("topic"))
-                .config(config);
-
-        if(config.hasPath("tags")){
-            builder.addFields(config.getConfig("tags").root().unwrapped());
-        }
-
-        reporter = builder.build();
-        LOG.info("Prepared kafka-sink");
-    }
-
-    @Override
-    public void start(long period, TimeUnit unit) {
-        LOG.info("Starting");
-        reporter.start(period,unit);
-    }
-
-    @Override
-    public void stop() {
-        LOG.info("Stopping");
-        reporter.stop();
-
-        LOG.info("Closing");
-        reporter.close();
-    }
-
-    @Override
-    public void report() {
-        reporter.report();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSink.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSink.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSink.java
deleted file mode 100644
index b09eda3..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSink.java
+++ /dev/null
@@ -1,30 +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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.metric.sink;
-
-
-import java.util.concurrent.TimeUnit;
-
-import com.codahale.metrics.MetricRegistry;
-import com.typesafe.config.Config;
-
-public interface MetricSink {
-    void prepare(Config config, MetricRegistry registry);
-    void start(long period,TimeUnit unit);
-    void stop();
-    void report();
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSinkRepository.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSinkRepository.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSinkRepository.java
deleted file mode 100644
index b4126f2..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/MetricSinkRepository.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.apache.eagle.alert.metric.sink;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class MetricSinkRepository {
-    private final static Map<String,Class<? extends MetricSink>> sinkTypeClassMapping = new HashMap<>();
-
-    public static void register(String sinkType,Class<? extends MetricSink> sinkClass){
-        sinkTypeClassMapping.put(sinkType,sinkClass);
-    }
-
-    public static MetricSink createSink(String sinkType){
-        if (!sinkTypeClassMapping.containsKey(sinkType)) {
-            throw new IllegalArgumentException("Unknown sink type: "+sinkType);
-        }
-        try {
-            return sinkTypeClassMapping.get(sinkType).newInstance();
-        } catch (InstantiationException | IllegalAccessException e) {
-            throw new IllegalStateException(e);
-        }
-    }
-
-    static {
-        register("kafka",KafkaSink.class);
-        register("jmx",JmxSink.class);
-        register("elasticsearch",ElasticSearchSink.class);
-        register("stdout",ConsoleSink.class);
-        register("logger",Slf4jSink.class);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/Slf4jSink.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/Slf4jSink.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/Slf4jSink.java
deleted file mode 100644
index ce465fa..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/sink/Slf4jSink.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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.metric.sink;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.slf4j.LoggerFactory;
-
-import com.codahale.metrics.MetricRegistry;
-import com.codahale.metrics.Slf4jReporter;
-import com.typesafe.config.Config;
-
-public class Slf4jSink implements MetricSink {
-    private Slf4jReporter reporter;
-
-    @SuppressWarnings("serial")
-    private final static Map<String,Slf4jReporter.LoggingLevel> LEVEL_MAPPING = new HashMap<String,Slf4jReporter.LoggingLevel>(){{
-        put("INFO",Slf4jReporter.LoggingLevel.INFO);
-        put("DEBUG",Slf4jReporter.LoggingLevel.DEBUG);
-        put("ERROR",Slf4jReporter.LoggingLevel.ERROR);
-        put("TRACE",Slf4jReporter.LoggingLevel.TRACE);
-        put("WARN",Slf4jReporter.LoggingLevel.WARN);
-    }};
-
-    private static Slf4jReporter.LoggingLevel getLoggingLevel(String level){
-        if(LEVEL_MAPPING.containsKey(level.toUpperCase())){
-            return LEVEL_MAPPING.get(level.toUpperCase());
-        } else{
-            throw new IllegalArgumentException("Illegal logging level: "+level);
-        }
-    }
-
-    @Override
-    public void prepare(Config config, MetricRegistry registry) {
-        reporter = Slf4jReporter.forRegistry(registry)
-                .outputTo(LoggerFactory.getLogger("org.apache.eagle.alert.metric"))
-                .withLoggingLevel(config.hasPath("level")? getLoggingLevel(config.getString("level")): Slf4jReporter.LoggingLevel.INFO)
-                .convertRatesTo(TimeUnit.SECONDS)
-                .convertDurationsTo(TimeUnit.MILLISECONDS)
-                .build();
-    }
-
-    @Override
-    public void start(long period,TimeUnit unit) {
-        reporter.start(period,unit);
-    }
-
-    @Override
-    public void stop() {
-        reporter.stop();
-        reporter.close();
-    }
-
-    @Override
-    public void report() {
-        reporter.report();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/JVMMetricSource.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/JVMMetricSource.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/JVMMetricSource.java
deleted file mode 100644
index a5bb5f4..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/JVMMetricSource.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.apache.eagle.alert.metric.source;
-
-import com.codahale.metrics.JvmAttributeGaugeSet;
-import com.codahale.metrics.MetricRegistry;
-import com.codahale.metrics.jvm.MemoryUsageGaugeSet;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class JVMMetricSource implements MetricSource{
-
-    private MetricRegistry registry = new MetricRegistry();
-
-    public JVMMetricSource(){
-        registry.registerAll(new JvmAttributeGaugeSet());
-        registry.registerAll(new MemoryUsageGaugeSet());
-    }
-
-    @Override
-    public String name() {
-        return "jvm";
-    }
-
-    @Override
-    public MetricRegistry registry() {
-        return registry;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSource.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSource.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSource.java
deleted file mode 100644
index 59b7a02..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSource.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.apache.eagle.alert.metric.source;
-
-import com.codahale.metrics.MetricRegistry;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public interface MetricSource {
-    String name();
-    MetricRegistry registry();
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSourceWrapper.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSourceWrapper.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSourceWrapper.java
deleted file mode 100644
index 137fc17..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/metric/source/MetricSourceWrapper.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.apache.eagle.alert.metric.source;
-
-import com.codahale.metrics.MetricRegistry;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class MetricSourceWrapper implements MetricSource {
-    private final MetricRegistry registry;
-    private final String name;
-
-    public MetricSourceWrapper(String name, MetricRegistry registry){
-        this.name = name;
-        this.registry = registry;
-    }
-
-    @Override
-    public String name() {
-        return name;
-    }
-
-    @Override
-    public MetricRegistry registry() {
-        return registry;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/resource/SimpleCORSFiler.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/resource/SimpleCORSFiler.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/resource/SimpleCORSFiler.java
deleted file mode 100644
index addab44..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/resource/SimpleCORSFiler.java
+++ /dev/null
@@ -1,59 +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.resource;
-
-import java.io.IOException;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * A simple allow all CORS filter that works with swagger UI. Tomcat CORS filter
- * doesn't support Origin: null case which is the swagger UI request.
- * 
- * @since Apr 15, 2016
- *
- */
-public class SimpleCORSFiler implements Filter {
-
-    @Override
-    public void init(FilterConfig filterConfig) throws ServletException {
-
-    }
-
-    @Override
-    public void doFilter(ServletRequest request, ServletResponse res, FilterChain chain) throws IOException,
-            ServletException {
-        HttpServletResponse response = (HttpServletResponse) res;
-        response.setHeader("Access-Control-Allow-Origin", "*");
-        response.setHeader("Access-Control-Allow-Methods", "HEAD, POST, GET, OPTIONS, DELETE");
-        response.setHeader("Access-Control-Max-Age", "3600");
-        response.setHeader("Access-Control-Allow-Headers",
-                "Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
-        chain.doFilter(request, response);
-    }
-
-    @Override
-    public void destroy() {
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/IMetadataServiceClient.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/IMetadataServiceClient.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/IMetadataServiceClient.java
deleted file mode 100644
index 3609c0a..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/IMetadataServiceClient.java
+++ /dev/null
@@ -1,69 +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.service;
-
-import java.io.Closeable;
-import java.io.Serializable;
-import java.util.List;
-
-import org.apache.eagle.alert.coordination.model.Kafka2TupleMetadata;
-import org.apache.eagle.alert.coordination.model.ScheduleState;
-import org.apache.eagle.alert.coordination.model.SpoutSpec;
-import org.apache.eagle.alert.coordination.model.internal.Topology;
-import org.apache.eagle.alert.engine.coordinator.PolicyDefinition;
-import org.apache.eagle.alert.engine.coordinator.Publishment;
-import org.apache.eagle.alert.engine.coordinator.StreamDefinition;
-import org.apache.eagle.alert.engine.coordinator.StreamingCluster;
-
-/**
- * service stub to get metadata from remote metadata service
- */
-public interface IMetadataServiceClient extends Closeable, Serializable {
-
-    // user metadta
-    void addStreamingCluster(StreamingCluster cluster);
-    List<StreamingCluster> listClusters();
-    
-    List<Topology> listTopologies();
-    void addTopology(Topology t);
-
-    void addPolicy(PolicyDefinition policy);
-    List<PolicyDefinition> listPolicies();
-
-    void addStreamDefinition(StreamDefinition streamDef);
-    List<StreamDefinition> listStreams();
-
-    void addDataSource(Kafka2TupleMetadata k2t);
-    List<Kafka2TupleMetadata> listDataSources();
-
-    void addPublishment(Publishment pub);
-    List<Publishment> listPublishment();
-
-    // monitor metadata
-    List<SpoutSpec> listSpoutMetadata();
-
-    ScheduleState getVersionedSpec();
-    ScheduleState getVersionedSpec(String version);
-    void addScheduleState(ScheduleState state);
-    
-    void clear();
-    
-    // for topology mgmt
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/MetadataServiceClientImpl.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/MetadataServiceClientImpl.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/MetadataServiceClientImpl.java
deleted file mode 100644
index 3460b77..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/service/MetadataServiceClientImpl.java
+++ /dev/null
@@ -1,235 +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.service;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.ws.rs.core.MediaType;
-
-import org.apache.eagle.alert.coordination.model.Kafka2TupleMetadata;
-import org.apache.eagle.alert.coordination.model.ScheduleState;
-import org.apache.eagle.alert.coordination.model.SpoutSpec;
-import org.apache.eagle.alert.coordination.model.internal.Topology;
-import org.apache.eagle.alert.engine.coordinator.PolicyDefinition;
-import org.apache.eagle.alert.engine.coordinator.Publishment;
-import org.apache.eagle.alert.engine.coordinator.StreamDefinition;
-import org.apache.eagle.alert.engine.coordinator.StreamingCluster;
-import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.GenericType;
-import com.sun.jersey.api.client.WebResource;
-import com.sun.jersey.api.client.config.ClientConfig;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.client.urlconnection.URLConnectionClientHandler;
-import com.typesafe.config.Config;
-
-public class MetadataServiceClientImpl implements IMetadataServiceClient {
-    private static final long serialVersionUID = 3003976065082684128L;
-
-    private static final Logger LOG = LoggerFactory.getLogger(MetadataServiceClientImpl.class);
-
-    private static final String METADATA_SCHEDULESTATES_PATH = "/metadata/schedulestates";
-    private static final String METADATA_PUBLISHMENTS_PATH = "/metadata/publishments";
-    private static final String METADATA_DATASOURCES_PATH = "/metadata/datasources";
-    private static final String METADATA_STREAMS_PATH = "/metadata/streams";
-    private static final String METADATA_POLICIES_PATH = "/metadata/policies";
-    private static final String METADATA_CLUSTERS_PATH = "/metadata/clusters";
-    private static final String METADATA_TOPOLOGY_PATH = "/metadata/topologies";
-    private static final String METADATA_CLEAR_PATH = "/metadata/clear";
-
-    private static final String EAGLE_CORRELATION_CONTEXT = "metadataService.context";
-    private static final String EAGLE_CORRELATION_SERVICE_PORT = "metadataService.port";
-    private static final String EAGLE_CORRELATION_SERVICE_HOST = "metadataService.host";
-
-    protected static final String CONTENT_TYPE = "Content-Type";
-
-    private String host;
-    private int port;
-    private String context;
-    private transient Client client;
-    private String basePath;
-
-    public MetadataServiceClientImpl(Config config) {
-        this(config.getString(EAGLE_CORRELATION_SERVICE_HOST), config.getInt(EAGLE_CORRELATION_SERVICE_PORT), config
-                .getString(EAGLE_CORRELATION_CONTEXT));
-        basePath = buildBasePath();
-    }
-
-    public MetadataServiceClientImpl(String host, int port, String context) {
-        this.host = host;
-        this.port = port;
-        this.context = context;
-        this.basePath = buildBasePath();
-        ClientConfig cc = new DefaultClientConfig();
-        cc.getProperties().put(DefaultClientConfig.PROPERTY_CONNECT_TIMEOUT, 60 * 1000);
-        cc.getProperties().put(DefaultClientConfig.PROPERTY_READ_TIMEOUT, 60 * 1000);
-        cc.getClasses().add(JacksonJsonProvider.class);
-        cc.getProperties().put(URLConnectionClientHandler.PROPERTY_HTTP_URL_CONNECTION_SET_METHOD_WORKAROUND, true);
-        this.client = Client.create(cc);
-        client.addFilter(new com.sun.jersey.api.client.filter.GZIPContentEncodingFilter());
-    }
-
-    private String buildBasePath() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("http://");
-        sb.append(host);
-        sb.append(":");
-        sb.append(port);
-        sb.append(context);
-        return sb.toString();
-    }
-
-    @Override
-    public void close() throws IOException {
-        client.destroy();
-    }
-
-    @Override
-    public List<SpoutSpec> listSpoutMetadata() {
-        ScheduleState state = getVersionedSpec();
-        return new ArrayList<>(state.getSpoutSpecs().values());
-    }
-
-    @Override
-    public List<StreamingCluster> listClusters() {
-        return list(METADATA_CLUSTERS_PATH, new GenericType<List<StreamingCluster>>() {
-        });
-    }
-
-    @Override
-    public List<PolicyDefinition> listPolicies() {
-        return list(METADATA_POLICIES_PATH, new GenericType<List<PolicyDefinition>>() {
-        });
-    }
-
-    @Override
-    public List<StreamDefinition> listStreams() {
-        return list(METADATA_STREAMS_PATH, new GenericType<List<StreamDefinition>>() {
-        });
-    }
-
-    @Override
-    public List<Kafka2TupleMetadata> listDataSources() {
-        return list(METADATA_DATASOURCES_PATH, new GenericType<List<Kafka2TupleMetadata>>() {
-        });
-    }
-
-    private <T> List<T> list(String path, GenericType<List<T>> type) {
-        WebResource r = client.resource(basePath + path);
-        LOG.info("query URL {}", basePath + path);
-        List<T> ret = r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).get(type);
-        return ret;
-    }
-
-    @Override
-    public List<Publishment> listPublishment() {
-        return list(METADATA_PUBLISHMENTS_PATH, new GenericType<List<Publishment>>() {
-        });
-    }
-
-    @Override
-    public ScheduleState getVersionedSpec(String version) {
-        return listOne(METADATA_SCHEDULESTATES_PATH + "/" + version, ScheduleState.class);
-    }
-
-    private <T> T listOne(String path, Class<T> tClz) {
-        LOG.info("query URL {}", basePath + path);
-        WebResource r = client.resource(basePath + path);
-
-        ClientResponse resp = r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON)
-                .get(ClientResponse.class);
-        if (resp.getStatus() < 300) {
-            try {
-                return resp.getEntity(tClz);
-            } catch (Exception e) {
-                LOG.warn(" list one entity failed, ignored and continute, path {}, message {}!", path, e.getMessage());
-            }
-        }else{
-            LOG.warn("fail querying metadata service {} with http status {}", basePath + path, resp.getStatus());
-        }
-        return null;
-    }
-
-    @Override
-    public ScheduleState getVersionedSpec() {
-        return listOne(METADATA_SCHEDULESTATES_PATH, ScheduleState.class);
-    }
-
-    @Override
-    public void addScheduleState(ScheduleState state) {
-        WebResource r = client.resource(basePath + METADATA_SCHEDULESTATES_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post(state);
-    }
-
-    @Override
-    public List<Topology> listTopologies() {
-        return list(METADATA_TOPOLOGY_PATH, new GenericType<List<Topology>>() {
-        });
-    }
-
-    @Override
-    public void addStreamingCluster(StreamingCluster cluster) {
-        WebResource r = client.resource(basePath + METADATA_CLUSTERS_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post(cluster);
-    }
-
-    @Override
-    public void addTopology(Topology t) {
-        WebResource r = client.resource(basePath + METADATA_TOPOLOGY_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post(t);
-    }
-
-    @Override
-    public void addPolicy(PolicyDefinition policy) {
-        WebResource r = client.resource(basePath + METADATA_POLICIES_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post(policy);
-    }
-
-    @Override
-    public void addStreamDefinition(StreamDefinition streamDef) {
-        WebResource r = client.resource(basePath + METADATA_STREAMS_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post(streamDef);
-    }
-
-    @Override
-    public void addDataSource(Kafka2TupleMetadata k2t) {
-        WebResource r = client.resource(basePath + METADATA_DATASOURCES_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post(k2t);
-    }
-
-    @Override
-    public void addPublishment(Publishment pub) {
-        WebResource r = client.resource(basePath + METADATA_PUBLISHMENTS_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post(pub);
-    }
-
-    @Override
-    public void clear() {
-        WebResource r = client.resource(basePath + METADATA_CLEAR_PATH);
-        r.accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON).post();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/AlertConstants.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/AlertConstants.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/AlertConstants.java
deleted file mode 100644
index 8512df2..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/AlertConstants.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.alert.utils;
-
-public class AlertConstants {
-    public final static String FIELD_0 = "f0";
-    public final static String FIELD_1 = "f1";
-    public final static String FIELD_2 = "f2";
-    public final static String FIELD_3 = "f3";
-
-    public final static String DEFAULT_SPOUT_NAME = "alertEngineSpout";
-    public final static String DEFAULT_ROUTERBOLT_NAME = "streamRouterBolt";
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ByteUtils.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ByteUtils.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ByteUtils.java
deleted file mode 100644
index 2e5a8fe..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ByteUtils.java
+++ /dev/null
@@ -1,188 +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.utils;
-
-import java.io.UnsupportedEncodingException;
-
-public class ByteUtils {
-
-	public static double bytesToDouble(byte[] bytes, int offset){
-		return Double.longBitsToDouble(bytesToLong(bytes, offset));
-	}
-	
-	public static double bytesToDouble(byte[] bytes){
-		return Double.longBitsToDouble(bytesToLong(bytes));
-	}
-	
-	public static void doubleToBytes(double v, byte[] bytes){
-		doubleToBytes(v, bytes, 0);
-	}
-	
-	public static void doubleToBytes(double v, byte[] bytes, int offset){
-		longToBytes(Double.doubleToLongBits(v), bytes, offset);
-	}
-	
-	public static byte[] doubleToBytes(double v){
-		return longToBytes(Double.doubleToLongBits(v));
-	}
-	
-	public static long bytesToLong(byte[] bytes){
-		return bytesToLong(bytes, 0);
-	}
-	
-	public static long bytesToLong(byte[] bytes, int offset){
-		long value = 0;
-		for(int i=0; i<8; i++){
-			value <<= 8;
-			value |= (bytes[i+offset] & 0xFF);
-		}
-		return value;
-	}
-	
-	public static void longToBytes(long v, byte[] bytes){
-		longToBytes(v, bytes, 0);
-	}
-	
-	public static void longToBytes(long v, byte[] bytes, int offset){
-		long tmp = v;
-		for(int i=0; i<8; i++){
-			bytes[offset + 7 - i] = (byte)(tmp & 0xFF);
-			tmp >>= 8;
-		}
-	}
-	
-	public static byte[] longToBytes(long v){
-		long tmp = v;
-		byte[] b = new byte[8];
-		for(int i=0; i<8; i++){
-			b[7-i] = (byte)(tmp & 0xFF);
-			tmp >>= 8;
-		}
-		return b;
-	}
-	
-	public static int bytesToInt(byte[] bytes){
-		return bytesToInt(bytes, 0);
-	}
-	
-	public static int bytesToInt(byte[] bytes, int offset){
-		int value = 0;
-		for(int i=0; i<4; i++){
-			value <<= 8;
-			value |= (bytes[i+offset] & 0xFF);
-		}
-		return value;
-	}
-	
-	public static void intToBytes(int v, byte[] bytes){
-		intToBytes(v, bytes, 0);
-	}
-	
-	public static void intToBytes(int v, byte[] bytes, int offset){
-		int tmp = v;
-		for(int i=0; i<4; i++){
-			bytes[offset + 3 - i] = (byte)(tmp & 0xFF);
-			tmp >>= 8;
-		}
-	}
-
-	public static byte[] intToBytes(int v){
-		int tmp = v;
-		byte[] b = new byte[4];
-		for(int i=0; i<4; i++){
-			b[3-i] = (byte)(tmp & 0xFF);
-			tmp >>= 8;
-		}
-		return b;
-	}
-
-	//////
-	
-	public static short bytesToShort(byte[] bytes){
-		return bytesToShort(bytes, 0);
-	}
-	
-	public static short bytesToShort(byte[] bytes, int offset){
-		short value = 0;
-		for(int i=0; i < 2; i++){
-			value <<= 8;
-			value |= (bytes[i+offset] & 0xFF);
-		}
-		return value;
-	}
-	
-	public static void shortToBytes(short v, byte[] bytes){
-		shortToBytes(v, bytes, 0);
-	}
-	
-	public static void shortToBytes(short v, byte[] bytes, int offset){
-		int tmp = v;
-		for(int i=0; i < 2; i++){
-			bytes[offset + 1 - i] = (byte)(tmp & 0xFF);
-			tmp >>= 8;
-		}
-	}
-
-	public static byte[] shortToBytes(short v){
-		int tmp = v;
-		byte[] b = new byte[2];
-		for(int i=0; i<2; i++){
-			b[1-i] = (byte)(tmp & 0xFF);
-			tmp >>= 8;
-		}
-		return b;
-	}
-
-	public static byte[] concat(byte[]... arrays) {
-        int length = 0;
-        for (byte[] array : arrays) {
-            length += array.length;
-        }
-        byte[] result = new byte[length];
-        int pos = 0;
-        for (byte[] array : arrays) {
-            System.arraycopy(array, 0, result, pos, array.length);
-            pos += array.length;
-        }
-        return result;
-    }
-
-	public static byte[] stringToBytes(String str) {
-		try {
-			return str.getBytes("UTF-8");
-		} catch (UnsupportedEncodingException e) {
-			throw new IllegalStateException(e);
-		}
-	}
-
-//    public static void main(String[] args){ 
-//    	int a = "ThreadName".hashCode();
-//    	byte[] b = intToBytes(a);
-//    	byte[] c = intToBytes(1676687583);
-//    	String s = new String(b);
-//    	System.out.println(s);
-    	
-//    	byte[] d = intToBytes(8652353);
-//    	System.out.println(bytesToInt(d));
-    	
-//    	byte[] e = longToBytes(12131513513l);
-//    	System.out.println(bytesToLong(e));
-//    	if(12131513513l == bytesToLong(e)){
-//    		System.out.println("yes");
-//    	}
-//    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ConfigUtils.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ConfigUtils.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ConfigUtils.java
deleted file mode 100644
index fe63fe1..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/ConfigUtils.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.alert.utils;
-
-import java.util.Properties;
-
-import com.typesafe.config.Config;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class ConfigUtils {
-
-    @SuppressWarnings("serial")
-    public static Properties toProperties(Config config){
-        return new Properties(){{
-            putAll(config.root().unwrapped());
-        }};
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/DateTimeUtil.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/DateTimeUtil.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/DateTimeUtil.java
deleted file mode 100644
index d611b95..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/DateTimeUtil.java
+++ /dev/null
@@ -1,141 +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.utils;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.TimeZone;
-
-/**
- * be aware that SimpleDateFormat instantiation is expensive, so if that's under a tight loop, probably we need
- * a thread local SimpleDateFormat object
- */
-public class DateTimeUtil {
-	public static final long ONESECOND = 1L * 1000L;
-	public static final long ONEMINUTE = 1L * 60L * 1000L;
-	public static final long ONEHOUR = 1L * 60L * 60L * 1000L;
-	public static final long ONEDAY = 24L * 60L * 60L * 1000L;
-    private static TimeZone CURRENT_TIME_ZONE = TimeZone.getDefault();
-
-	public static Date humanDateToDate(String date) throws ParseException {
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        sdf.setTimeZone(CURRENT_TIME_ZONE);
-		return sdf.parse(date);
-	}
-
-	public static long getCurrentTimestamp(){
-		return System.currentTimeMillis();
-	}
-	
-	public static String secondsToHumanDate(long seconds){
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        sdf.setTimeZone(CURRENT_TIME_ZONE);
-		Date t = new Date();
-		t.setTime(seconds*1000);
-		return sdf.format(t);
-	}
-	
-	public static String millisecondsToHumanDateWithMilliseconds(long milliseconds){
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
-        sdf.setTimeZone(CURRENT_TIME_ZONE);
-		Date t = new Date();
-		t.setTime(milliseconds);
-		return sdf.format(t);
-	}
-	
-	public static String millisecondsToHumanDateWithSeconds(long milliseconds){
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        sdf.setTimeZone(CURRENT_TIME_ZONE);
-		Date t = new Date();
-		t.setTime(milliseconds);
-		return sdf.format(t);
-	}
-	
-	public static long humanDateToSeconds(String date) throws ParseException {
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        sdf.setTimeZone(CURRENT_TIME_ZONE);
-		Date d = sdf.parse(date);
-		return d.getTime()/1000;
-	}
-	
-	public static long humanDateToMilliseconds(String date) throws ParseException {
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
-        sdf.setTimeZone(CURRENT_TIME_ZONE);
-		Date d = sdf.parse(date);
-		return d.getTime();
-	}
-	
-	
-	public static long humanDateToMillisecondsWithoutException(String date){
-		try{
-			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS");
-            sdf.setTimeZone(CURRENT_TIME_ZONE);
-			Date d = sdf.parse(date);
-			return d.getTime();
-		}catch(ParseException ex){
-			return 0L;
-		}
-	}
-	
-	public static long humanDateToSecondsWithoutException(String date){
-		try{
-			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            sdf.setTimeZone(CURRENT_TIME_ZONE);
-			Date d = sdf.parse(date);
-			return (d.getTime() / 1000);
-		}catch(ParseException ex){
-			return 0L;
-		}
-	}
-	/**
-	 * this could be accurate only when timezone is UTC
-	 * for the timezones other than UTC, there is possibly issue, for example
-	 * assume timezone is GMT+8 in China
-	 * When user time is "2014-07-15 05:00:00", it will be converted to timestamp first, internally it would be  "2014-07-14 21:00:00" in UTC timezone. When rounded down to day, the internal time would 
-	 * be changed to "2014-07-14 00:00:00", and that means the user time is "2014-07-14 08:00:00". But originally user wants to round it to "2014-07-15 00:00:00"
-	 * 
-	 * @param field
-	 * @param timeInMillis the seconds elapsed since 1970-01-01 00:00:00
-	 * @return
-	 */
-	public static long roundDown(int field, long timeInMillis){
-		switch(field){
-			case Calendar.DAY_OF_MONTH:
-			case Calendar.DAY_OF_WEEK:
-			case Calendar.DAY_OF_YEAR:
-				return (timeInMillis - timeInMillis % (24*60*60*1000));
-			case Calendar.HOUR:
-				return (timeInMillis - timeInMillis % (60*60*1000));
-			case Calendar.MINUTE:
-				return (timeInMillis - timeInMillis % (60*1000));
-			case Calendar.SECOND:
-				return (timeInMillis - timeInMillis % (1000));
-			default:
-				return 0L;
-		}
-	}
-
-	public static String format(long milliseconds, String format) {
-		SimpleDateFormat sdf = new SimpleDateFormat(format);
-        sdf.setTimeZone(CURRENT_TIME_ZONE);
-		Date t = new Date();
-		t.setTime(milliseconds);
-		return sdf.format(t);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/HostUtils.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/HostUtils.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/HostUtils.java
deleted file mode 100644
index fb301ac..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/HostUtils.java
+++ /dev/null
@@ -1,85 +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.utils;
-
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.util.Enumeration;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * http://stackoverflow.com/questions/7348711/recommended-way-to-get-hostname-in-java
- */
-public class HostUtils {
-	private static final Logger logger = LoggerFactory
-			.getLogger(HostUtils.class);
-
-	public static String getHostName() {
-		try {
-			String hostName = InetAddress.getLocalHost().getHostName();
-			if (hostName != null && !hostName.isEmpty()) {
-				return hostName;
-			}
-		} catch (UnknownHostException e) {
-			logger.error("get hostName error!", e);
-		}
-
-		String host = System.getenv("COMPUTERNAME");
-		if (host != null)
-			return host;
-		host = System.getenv("HOSTNAME");
-		if (host != null)
-			return host;
-
-		return null;
-	}
-
-	public static String getNotLoopbackAddress() {
-		String hostName = null;
-		Enumeration<NetworkInterface> interfaces;
-		try {
-			interfaces = NetworkInterface.getNetworkInterfaces();
-			while (interfaces.hasMoreElements()) {
-				NetworkInterface nic = interfaces.nextElement();
-				Enumeration<InetAddress> addresses = nic.getInetAddresses();
-				while (hostName == null && addresses.hasMoreElements()) {
-					InetAddress address = addresses.nextElement();
-					if (!address.isLoopbackAddress()) {
-						hostName = address.getHostName();
-					}
-				}
-			}
-		} catch (SocketException e) {
-			logger.error("getNotLoopbackAddress error!", e);
-		}
-		return hostName;
-	}
-
-	public static String getHostAddress() {
-		try {
-			return InetAddress.getLocalHost().getHostAddress();
-		} catch (UnknownHostException e) {
-			logger.error("get hostAddress error!", e);
-		}
-
-		return null;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/JsonUtils.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/JsonUtils.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/JsonUtils.java
deleted file mode 100644
index de0c48b..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/JsonUtils.java
+++ /dev/null
@@ -1,41 +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.utils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * @since May 1, 2016
- *
- */
-public class JsonUtils {
-
-    public static final ObjectMapper mapper = new ObjectMapper();
-    private static final Logger LOG = LoggerFactory.getLogger(JsonUtils.class);
-
-    public static String writeValueAsString(Object o) {
-        try {
-            return mapper.writeValueAsString(o);
-        } catch (Exception e) {
-            LOG.error("write object as string failed {} !", o);
-        }
-        return "";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/StreamIdConversion.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/StreamIdConversion.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/StreamIdConversion.java
deleted file mode 100644
index 9316637..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/StreamIdConversion.java
+++ /dev/null
@@ -1,52 +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.utils;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class StreamIdConversion {
-    private final static String STREAM_ID_TEMPLATE = "stream_%s_to_%s";
-    private final static String STREAM_ID_NUM_TEMPLATE = "stream_%s";
-    public static String generateStreamIdBetween(String sourceId, String targetId){
-        return String.format(STREAM_ID_TEMPLATE,sourceId,targetId);
-    }
-
-    /**
-     * Hard-coded stream format in stream_${partitionNum}
-     *
-     *
-     * @param partitionNum
-     * @return
-     */
-    public static String generateStreamIdByPartition(int partitionNum){
-        return String.format(STREAM_ID_NUM_TEMPLATE,partitionNum);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/TimePeriodUtils.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/TimePeriodUtils.java b/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/TimePeriodUtils.java
deleted file mode 100644
index 782188d..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/java/org/apache/eagle/alert/utils/TimePeriodUtils.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.utils;
-
-import org.joda.time.Period;
-import org.joda.time.Seconds;
-
-import scala.Int;
-
-public class TimePeriodUtils {
-    /**
-     * For example: timestamp stands for time: 1990/01/07 12:45 and period is PT30, then result is 1990/01/07 12:30
-     *
-     * @param seconds
-     * @param period
-     *
-     * @return formatted timestamp
-     */
-    public static long formatSecondsByPeriod(long seconds,Seconds period){
-        return seconds - (seconds % Int.int2long(period.getSeconds()));
-    }
-
-    /**
-     * @param seconds
-     * @param period
-     * @return
-     */
-    public static long formatSecondsByPeriod(long seconds,Period period){
-        return seconds - (seconds % Int.int2long(period.toStandardSeconds().getSeconds()));
-    }
-
-    /**
-     * @param milliseconds
-     * @param period
-     * @return milliseconds
-     */
-    public static long formatMillisecondsByPeriod(long milliseconds,Period period){
-        return formatSecondsByPeriod(milliseconds/1000,period)*1000;
-    }
-
-    public static int getSecondsOfPeriod(Period period){
-        return period.toStandardSeconds().getSeconds();
-    }
-
-    public static int getMillisecondsOfPeriod(Period period){
-        return getSecondsOfPeriod(period) * 1000;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/main/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/main/resources/log4j.properties b/eagle-core/eagle-alert/alert/alert-common/src/main/resources/log4j.properties
deleted file mode 100644
index fb13ad5..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,21 +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.
-
-log4j.rootLogger=DEBUG, stdout
-
-# standard output
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p [%t] %c{2}[%L]: %m%n
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/config/TestConfigBus.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/config/TestConfigBus.java b/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/config/TestConfigBus.java
deleted file mode 100644
index 8123f45..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/config/TestConfigBus.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.eagle.alert.config;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class TestConfigBus {
-
-    @Ignore
-    @Test
-    public void testConfigChange() throws Exception {
-        String topic = "spout";
-        ZKConfig config = new ZKConfig();
-        config.zkQuorum = "localhost:2181";
-        config.zkRoot = "/alert";
-        config.zkRetryInterval = 1000;
-        config.zkRetryTimes = 3;
-        config.connectionTimeoutMs = 3000;
-        config.zkSessionTimeoutMs = 10000;
-        ConfigBusProducer producer = new ConfigBusProducer(config);
-        final AtomicBoolean validate = new AtomicBoolean(false);
-        ConfigBusConsumer consumer = new ConfigBusConsumer(config, topic, value -> {
-            validate.set(true);
-            System.out.println("******** get notified of config " + value);
-        });
-        // first change
-        ConfigValue value = new ConfigValue();
-        value.setValueVersionId(false);
-        value.setValue("testvalue1");
-        producer.send(topic, value);
-
-        Thread.sleep(1000);
-
-        // second change
-        value.setValueVersionId(false);
-        value.setValue("testvalue2");
-        producer.send(topic, value);
-        producer.close();
-        Thread.sleep(1000);
-        consumer.close();
-        Assert.assertTrue(validate.get());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/metric/MetricSystemTest.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/metric/MetricSystemTest.java b/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/metric/MetricSystemTest.java
deleted file mode 100644
index e96ded9..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/metric/MetricSystemTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.apache.eagle.alert.metric;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.eagle.alert.metric.sink.KafkaSink;
-import org.apache.eagle.alert.metric.source.JVMMetricSource;
-import org.apache.eagle.alert.metric.source.MetricSource;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import com.codahale.metrics.Gauge;
-import com.codahale.metrics.JvmAttributeGaugeSet;
-import com.codahale.metrics.MetricRegistry;
-import com.typesafe.config.ConfigFactory;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-public class MetricSystemTest {
-    @Test @Ignore
-    public void testKafkaSink(){
-        KafkaSink sink = new KafkaSink();
-        MetricRegistry registry = new MetricRegistry();
-        registry.registerAll(new JvmAttributeGaugeSet());
-        sink.prepare(ConfigFactory.load().getConfig("metric.sink.kafka"),registry);
-        sink.report();
-        sink.stop();
-    }
-
-    @Test @Ignore
-    public void testMetricSystem() throws InterruptedException {
-        MetricSystem system = MetricSystem.load(ConfigFactory.load());
-        system.register(new JVMMetricSource());
-        system.register(new SampleMetricSource());
-        system.start();
-        system.report();
-        system.stop();
-    }
-
-    private class SampleMetricSource implements MetricSource {
-        private MetricRegistry registry = new MetricRegistry();
-
-        public SampleMetricSource(){
-            registry.register("sample.long", (Gauge<Long>) System::currentTimeMillis);
-            registry.register("sample.map", (Gauge<Map<String, Object>>) () -> new HashMap<String, Object>(){
-                private static final long serialVersionUID = 3948508906655117683L;
-            {
-                put("int",1234);
-                put("str","text");
-                put("bool",true);
-            }});
-        }
-
-        @Override
-        public String name() {
-            return "sampleSource";
-        }
-
-        @Override
-        public MetricRegistry registry() {
-            return registry;
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/service/TestMetadataServiceClientImpl.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/service/TestMetadataServiceClientImpl.java b/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/service/TestMetadataServiceClientImpl.java
deleted file mode 100644
index 4496b8e..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/alert/service/TestMetadataServiceClientImpl.java
+++ /dev/null
@@ -1,40 +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.service;
-
-import java.util.List;
-
-import org.apache.eagle.alert.engine.coordinator.PolicyDefinition;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class TestMetadataServiceClientImpl {
-    @SuppressWarnings("resource")
-    @Ignore
-    @Test
-    public void test() throws Exception{
-        MetadataServiceClientImpl impl = new MetadataServiceClientImpl("localhost", 58080, "/api/metadata/policies");
-        List<PolicyDefinition> policies = impl.listPolicies();
-        ObjectMapper mapper = new ObjectMapper();
-        String ret = mapper.writeValueAsString(policies);
-        System.out.println(ret);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/correlation/meta/JsonTest.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/correlation/meta/JsonTest.java b/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/correlation/meta/JsonTest.java
deleted file mode 100644
index 71cce51..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/test/java/org/apache/eagle/correlation/meta/JsonTest.java
+++ /dev/null
@@ -1,30 +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.correlation.meta;
-
-import org.junit.Test;
-
-/**
- * Created on 3/11/16.
- */
-public class JsonTest {
-
-    @Test
-    public void policyDefTest() {
-        // TODO
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/test/resources/application.conf
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/test/resources/application.conf b/eagle-core/eagle-alert/alert/alert-common/src/test/resources/application.conf
deleted file mode 100644
index 738c844..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/test/resources/application.conf
+++ /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.
-
-{
-	metric {
-		sink {
-			kafka {
-				"topic":"alert_metric_test"
-				"bootstrap.servers": "localhost:9092"
-			}
-			logger {
-				level = "INFO"
-			}
-			elasticsearch {
-        hosts = ["10.64.223.222:9200"]
-        index = "alert_metric_test"
-      }
-		}
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-common/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-common/src/test/resources/log4j.properties b/eagle-core/eagle-alert/alert/alert-common/src/test/resources/log4j.properties
deleted file mode 100644
index fb13ad5..0000000
--- a/eagle-core/eagle-alert/alert/alert-common/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,21 +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.
-
-log4j.rootLogger=DEBUG, stdout
-
-# standard output
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p [%t] %c{2}[%L]: %m%n
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-coordinator/.gitignore
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-coordinator/.gitignore b/eagle-core/eagle-alert/alert/alert-coordinator/.gitignore
deleted file mode 100644
index b83d222..0000000
--- a/eagle-core/eagle-alert/alert/alert-coordinator/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/737e5a2d/eagle-core/eagle-alert/alert/alert-coordinator/pom.xml
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-alert/alert/alert-coordinator/pom.xml b/eagle-core/eagle-alert/alert/alert-coordinator/pom.xml
deleted file mode 100644
index fec8903..0000000
--- a/eagle-core/eagle-alert/alert/alert-coordinator/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ~ 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. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<groupId>io.sherlock</groupId>
-		<artifactId>alert-parent</artifactId>
-		<version>0.0.1-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>alert-coordinator</artifactId>
-	<packaging>war</packaging>
-
-	<name>alert-coordinator</name>
-	<url>http://maven.apache.org</url>
-
-	<dependencies>
-		<dependency>
-			<groupId>io.sherlock</groupId>
-			<artifactId>alert-common</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.sun.jersey</groupId>
-			<artifactId>jersey-server</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.sun.jersey</groupId>
-			<artifactId>jersey-servlet</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.sun.jersey.contribs</groupId>
-			<artifactId>jersey-multipart</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.codehaus.jackson</groupId>
-			<artifactId>jackson-mapper-asl</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.codehaus.jackson</groupId>
-			<artifactId>jackson-jaxrs</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.codehaus.jackson</groupId>
-			<artifactId>jackson-xc</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.typesafe</groupId>
-			<artifactId>config</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.tomcat.embed</groupId>
-			<artifactId>tomcat-embed-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>io.swagger</groupId>
-			<artifactId>swagger-jaxrs</artifactId>
-		</dependency>
-	</dependencies>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.eclipse.jetty</groupId>
-				<artifactId>jetty-maven-plugin</artifactId>
-				<configuration>
-					<scanIntervalSeconds>5</scanIntervalSeconds>
-					<httpConnector>
-						<port>9090</port>
-					</httpConnector>
-				</configuration>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<version>2.6</version>
-				<executions>
-					<execution>
-						<goals>
-							<goal>test-jar</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-</project>