http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ExpressionParser.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ExpressionParser.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ExpressionParser.java
new file mode 100755
index 0000000..4f74715
--- /dev/null
+++ 
b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ExpressionParser.java
@@ -0,0 +1,207 @@
+/*
+ * 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.log.expression;
+
+import org.apache.eagle.log.base.taggedlog.TaggedLogAPIEntity;
+import org.apache.eagle.log.entity.EntityQualifierUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import parsii.eval.Expression;
+import parsii.eval.Parser;
+import parsii.eval.Scope;
+import parsii.eval.Variable;
+import parsii.tokenizer.ParseException;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+/**
+ * <h1>Expression Evaluation</h1>
+ *
+ * Given expression in string and set context variables, return value in double
+ *
+ * <br/>
+ * <br/>
+ * For example:
+ * <code>EXP{(max(a, b)* min(a, b)) / abs(a-b+c-d)} => 600.0</code>
+ *
+ * <br/>
+ * <br/>
+ * <b>NOTE:</b>  Expression variable <b>must</b> be in format: 
<code>fieldName</code> instead of <code>@fieldName</code>
+ *
+ * <br/>
+ * <br/>
+ * <h2>Dependencies:</h2>
+ * <ul>
+ *     <li>
+ *         <a href="https://github.com/scireum/parsii";>scireum/parsii</a>
+ *         <i>Super fast and simple evaluator for mathematical expressions 
written in Java</i>
+ *     </li>
+ * </ul>
+ *
+ */
+public class ExpressionParser{
+       private final static Logger LOG = 
LoggerFactory.getLogger(ExpressionParser.class);
+
+       private String exprStr;
+       private Expression expression;
+       private Scope scope;
+
+       @SuppressWarnings("unused")
+       public Scope getScope() {
+               return scope;
+       }
+
+       private List<String> dependentFields;
+
+       /**
+        * @param exprStr expression string in format like: <code>(max(a, b)* 
min(a, b)) / abs(a-b+c-d)</code>
+        *
+        * @throws ParseException
+        * @throws ParsiiInvalidException
+        */
+       public ExpressionParser(String exprStr) throws ParseException, 
ParsiiInvalidException{
+               this.exprStr = exprStr;
+               scope = Scope.create();
+               expression = Parser.parse(this.exprStr,scope);
+       }
+
+       @SuppressWarnings("unused")
+       public ExpressionParser(String exprStr, Map<String, Double> context) 
throws ParsiiInvalidException, ParseException, ParsiiUnknowVariableException {
+               this(exprStr);
+               setVariables(context);
+       }
+       
+       public ExpressionParser setVariables(Map<String, Double> tuple) throws 
ParsiiUnknowVariableException{
+//             for(String valName : tuple.keySet()) {
+//                     Double value = tuple.get(valName);
+               for(Map.Entry<String,Double> entry : tuple.entrySet()) {
+            String valName = entry.getKey();
+            Double value = entry.getValue();
+                       Variable variable = scope.getVariable(valName);
+                       if(variable!=null && value !=null) {
+                               variable.setValue(value);
+                       }else{
+                               if(LOG.isDebugEnabled()) LOG.warn("Variable for 
"+valName+" is null in scope of expression: "+this.exprStr);
+                       }
+               }
+               return this;
+       }
+
+       @SuppressWarnings("unused")
+       public ExpressionParser setVariable(Entry<String, Double> tuple) throws 
ParsiiUnknowVariableException{
+               if (getDependentFields().contains(tuple.getKey())) {
+                       
scope.getVariable(tuple.getKey()).setValue(tuple.getValue());
+               }
+               else {
+                       throw new ParsiiUnknowVariableException("unknown 
variable: " + tuple.getKey());
+               }
+               return this;
+       }
+       
+       public ExpressionParser setVariable(String key, Double value) throws 
ParsiiUnknowVariableException{
+               scope.getVariable(key).setValue(value);
+               return this;
+       }
+
+       public double eval() throws Exception{
+               return expression.evaluate();
+       }
+
+       /**
+        * Thread safe
+        *
+        * @param tuple
+        * @return
+        * @throws ParsiiUnknowVariableException
+        */
+       public double eval(Map<String, Double> tuple) throws Exception {
+               synchronized (this){
+                       this.setVariables(tuple);
+                       return this.eval();
+               }
+       }
+
+       public List<String> getDependentFields() {
+               if (dependentFields == null) {
+                       dependentFields = new ArrayList<String>();
+                       for (String variable : scope.getNames()) {
+                               if (!variable.equals("pi") && 
!variable.equals("E") && !variable.equals("euler"))
+                                       dependentFields.add(variable);
+                       }
+               }
+               return dependentFields; 
+       }
+
+       private final static Map<String, ExpressionParser> _exprParserCache = 
new HashMap<String, ExpressionParser>();
+
+       /**
+        * Thread safe
+        *
+        * @param expr
+        * @return
+        * @throws ParsiiInvalidException
+        * @throws ParseException
+        */
+       public static ExpressionParser parse(String expr) throws 
ParsiiInvalidException, ParseException {
+               if(expr == null) throw new IllegalStateException("Expression to 
parse is null");
+               synchronized (_exprParserCache) {
+                       ExpressionParser parser = _exprParserCache.get(expr);
+                       if (parser == null) {
+                               parser = new ExpressionParser(expr);
+                               _exprParserCache.put(expr, parser);
+                       }
+                       return parser;
+               }
+       }
+       public static double eval(String expression,Map<String,Double> context) 
throws Exception {
+               ExpressionParser parser = parse(expression);
+               return parser.eval(context);
+       }
+
+       private static final Map<String,Method> _entityMethodCache = new 
HashMap<String, Method>();
+       public static double eval(String expression,TaggedLogAPIEntity entity) 
throws Exception {
+               ExpressionParser parser = parse(expression);
+               List<String> dependencies = parser.getDependentFields();
+               Map<String,Double> context = new HashMap<String,Double>();
+               for(String field:dependencies){
+                       String methodName = "get"+field.substring(0, 
1).toUpperCase() + field.substring(1);
+                       String methodUID = 
entity.getClass().getName()+"."+methodName;
+
+                       Method m;
+                       synchronized (_entityMethodCache) {
+                               m = _entityMethodCache.get(methodUID);
+                               if (m == null) {
+                                       m = 
entity.getClass().getMethod(methodName);
+                                       _entityMethodCache.put(methodUID, m);
+                               }
+                       }
+                       Object obj = m.invoke(entity);
+                       Double doubleValue = 
EntityQualifierUtils.convertObjToDouble(obj);
+                       // if(doubleValue == Double.NaN) throw new 
IllegalArgumentException("Field "+field+": "+obj+" in expression "+expression+" 
is not number");
+                       context.put(field,doubleValue);
+               }
+               return parser.eval(context);
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiInvalidException.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiInvalidException.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiInvalidException.java
new file mode 100755
index 0000000..22301f8
--- /dev/null
+++ 
b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiInvalidException.java
@@ -0,0 +1,57 @@
+/*
+ * 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.log.expression;
+
+/**
+ * @since Nov 7, 2014
+ */
+public class ParsiiInvalidException extends Exception{
+       
+       private static final long serialVersionUID = 1L;
+
+       /**
+        * Default constructor
+        */
+       public ParsiiInvalidException() {
+               super();
+       }
+
+       /**
+        * @param message
+        * @param cause
+        */
+       public ParsiiInvalidException(String message, Throwable cause) {
+               super(message, cause);
+       }
+
+       /**
+        * @param message
+        */
+       public ParsiiInvalidException(String message) {
+               super(message);
+       }
+
+       /**
+        * @param cause
+        */
+       public ParsiiInvalidException(Throwable cause) {
+               super(cause);
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiUnknowVariableException.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiUnknowVariableException.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiUnknowVariableException.java
new file mode 100755
index 0000000..1573a08
--- /dev/null
+++ 
b/eagle-core/eagle-query/eagle-entity-base/src/main/java/org/apache/eagle/log/expression/ParsiiUnknowVariableException.java
@@ -0,0 +1,57 @@
+/*
+ * 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.log.expression;
+
+/**
+ * @since Nov 7, 2014
+ */
+public class ParsiiUnknowVariableException extends Exception{
+       
+       private static final long serialVersionUID = 1L;
+
+       /**
+        * Default constructor
+        */
+       public ParsiiUnknowVariableException() {
+               super();
+       }
+
+       /**
+        * @param message
+        * @param cause
+        */
+       public ParsiiUnknowVariableException(String message, Throwable cause) {
+               super(message, cause);
+       }
+
+       /**
+        * @param message
+        */
+       public ParsiiUnknowVariableException(String message) {
+               super(message);
+       }
+
+       /**
+        * @param cause
+        */
+       public ParsiiUnknowVariableException(Throwable cause) {
+               super(cause);
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/TestGenericServiceAPIResponseEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/TestGenericServiceAPIResponseEntity.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/TestGenericServiceAPIResponseEntity.java
deleted file mode 100644
index 32ee8b0..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/TestGenericServiceAPIResponseEntity.java
+++ /dev/null
@@ -1,92 +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 eagle.log;
-
-import eagle.log.entity.GenericServiceAPIResponseEntity;
-import junit.framework.Assert;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.LinkedList;
-
-/**
- * @since 3/18/15
- */
-public class TestGenericServiceAPIResponseEntity {
-    final static Logger LOG = 
LoggerFactory.getLogger(TestGenericServiceAPIResponseEntity.class);
-
-    ObjectMapper objectMapper;
-
-    @Before
-    public void setUp(){
-        objectMapper = new ObjectMapper();
-    }
-
-    @JsonSerialize
-    public static class Item{
-        public Item(){}
-        public Item(String name,Double value){
-            this.name = name;
-            this.value = value;
-        }
-        private String name;
-        private Double value;
-
-        public String getName() {
-            return name;
-        }
-        public void setName(String name) {
-            this.name = name;
-        }
-        public Double getValue() {
-            return value;
-        }
-        public void setValue(Double value) {
-            this.value = value;
-        }
-    }
-
-    @Test
-    public void testSerDeserialize() throws IOException {
-        // mock up service side to serialize
-        GenericServiceAPIResponseEntity<Item> entity = new 
GenericServiceAPIResponseEntity<Item>(Item.class);
-        entity.setObj(Arrays.asList(new Item("a",1.2),new Item("b",1.3),new 
Item("c",1.4)));
-        entity.setMeta(new HashMap<String, Object>(){{
-            put("tag1","val1");
-            put("tag2","val2");
-        }});
-
-//        entity.setTypeByObj();
-        entity.setSuccess(true);
-        String json = objectMapper.writeValueAsString(entity);
-        LOG.info(json);
-
-        // mock up client side to deserialize
-        GenericServiceAPIResponseEntity deserEntity = 
objectMapper.readValue(json,GenericServiceAPIResponseEntity.class);
-        Assert.assertEquals(json,objectMapper.writeValueAsString(deserEntity));
-        Assert.assertEquals(3, deserEntity.getObj().size());
-        Assert.assertEquals(LinkedList.class,deserEntity.getObj().getClass());
-        Assert.assertEquals(Item.class,deserEntity.getObj().get(0).getClass());
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDouble2DArraySerDeser.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDouble2DArraySerDeser.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDouble2DArraySerDeser.java
deleted file mode 100644
index 6727291..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDouble2DArraySerDeser.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 eagle.log.entity;
-
-import eagle.log.entity.meta.Double2DArraySerDeser;
-import org.junit.Test;
-
-/**
- * @since 7/22/15
- */
-public class TestDouble2DArraySerDeser {
-    private Double2DArraySerDeser double2DArraySerDeser = new 
Double2DArraySerDeser();
-
-    @Test
-    public void testSerDeser(){
-        double[][] data = new double[][]{
-                {0,1,2,4},
-                {4,2,1,0},
-                {4},
-                null,
-                {}
-        };
-
-        byte[] bytes = double2DArraySerDeser.serialize(data);
-        double[][] data2 = double2DArraySerDeser.deserialize(bytes);
-
-        assert  data.length == data2.length;
-        assert data[0].length == data2[0].length;
-        assert data[1].length == data2[1].length;
-        assert data[2].length == data2[2].length;
-        assert data[3] == data2[3] && data2[3] == null;
-        assert data[4].length == data2[4].length;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDoubleSerDeser.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDoubleSerDeser.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDoubleSerDeser.java
deleted file mode 100644
index c2a2f64..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestDoubleSerDeser.java
+++ /dev/null
@@ -1,58 +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 eagle.log.entity;
-
-import eagle.log.entity.meta.DoubleSerDeser;
-import eagle.common.ByteUtil;
-import junit.framework.Assert;
-import org.apache.hadoop.hbase.filter.BinaryComparator;
-import org.junit.Test;
-
-public class TestDoubleSerDeser {
-
-       @Test
-       public void test() {
-               DoubleSerDeser dsd = new DoubleSerDeser();
-               //byte[] t = {'N', 'a', 'N'};
-               byte [] t = dsd.serialize(Double.NaN); 
-       
-               Double d = dsd.deserialize(t);
-               System.out.println(d);
-               //Double d = dsd.deserialize(t);                
-       }
-
-       /**
-        * @link 
http://en.wikipedia.org/wiki/Double-precision_floating-point_format
-        */
-       @Test
-       public void testIEEE754_Binary64_DoublePrecisionFloatingPointFormat(){
-               for(Double last = null,i=Math.pow(-2.0,33);i< 
Math.pow(2.0,33);i+=Math.pow(2.0,10)){
-                       if(last != null){
-                               Assert.assertTrue(i > last);
-                               if(last < 0 && i <0){
-                                       Assert.assertTrue("Negative double 
value and its  serialization Binary array have negative correlation", new 
BinaryComparator(ByteUtil.doubleToBytes(i)).compareTo(ByteUtil.doubleToBytes(last))
 < 0);
-                               }else if(last < 0 && i >=0){
-                                       Assert.assertTrue("Binary array for 
negative double is always greater than any positive doubles' ",new 
BinaryComparator(ByteUtil.doubleToBytes(i)).compareTo(ByteUtil.doubleToBytes(last))
 < 0);
-                               }else if(last >= 0){
-                                       Assert.assertTrue("Positive double 
value and its  serialization Binary array have positive correlation",new 
BinaryComparator(ByteUtil.doubleToBytes(i)).compareTo(ByteUtil.doubleToBytes(last))
 > 0);
-                               }
-                       }
-                       last = i;
-               }
-               Assert.assertTrue("Binary array for negative double is always 
greater than any positive doubles'",new 
BinaryComparator(ByteUtil.doubleToBytes(-1.0)).compareTo(ByteUtil.doubleToBytes(Math.pow(2.0,32)))>0)
 ;
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestGenericEntityIndexStreamReader.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestGenericEntityIndexStreamReader.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestGenericEntityIndexStreamReader.java
deleted file mode 100755
index 4306771..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestGenericEntityIndexStreamReader.java
+++ /dev/null
@@ -1,169 +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 eagle.log.entity;
-
-import eagle.log.entity.index.NonClusteredIndexStreamReader;
-import eagle.log.entity.index.UniqueIndexStreamReader;
-import eagle.log.entity.meta.EntityDefinition;
-import eagle.log.entity.meta.EntityDefinitionManager;
-import eagle.log.entity.meta.IndexDefinition;
-import eagle.log.entity.old.GenericDeleter;
-import eagle.log.entity.test.TestLogAPIEntity;
-import eagle.query.parser.EagleQueryParser;
-import eagle.service.hbase.TestHBaseBase;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public class TestGenericEntityIndexStreamReader extends TestHBaseBase {
-
-       @Test
-       public void testUniqueIndexRead() throws Exception {
-               EntityDefinition entityDefinition = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               hbase.createTable(entityDefinition.getTable(), 
entityDefinition.getColumnFamily());
-
-               EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-               EntityDefinition ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               
-               List<TestLogAPIEntity> list = new ArrayList<TestLogAPIEntity>();
-               TestLogAPIEntity e = new TestLogAPIEntity();
-               e.setField1(1);
-               e.setField2(2);
-               e.setField3(3);
-               e.setField4(4L);
-               e.setField5(5.0);
-               e.setField6(5.0);
-               e.setField7("7");
-               e.setTags(new HashMap<String, String>());
-               e.getTags().put("jobID", "index_test_job_id");
-               e.getTags().put("hostname", "testhost");
-               list.add(e);
-
-               GenericEntityWriter writer = new 
GenericEntityWriter(ed.getService());
-               List<String> result = writer.write(list);
-               Assert.assertNotNull(result);
-               
-               IndexDefinition indexDef = ed.getIndexes()[0];
-               SearchCondition condition = new SearchCondition();
-               condition.setOutputFields(new ArrayList<String>());
-               condition.getOutputFields().add("field1");
-               condition.getOutputFields().add("field2");
-               condition.getOutputFields().add("field3");
-               condition.getOutputFields().add("field4");
-               condition.getOutputFields().add("field5");
-               condition.getOutputFields().add("field6");
-               condition.getOutputFields().add("field7");
-
-               String query = "@field7 = \"7\" AND @jobID = 
\"index_test_job_id\" ";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               condition.setQueryExpression(parser.parse());
-
-               UniqueIndexStreamReader indexReader = new 
UniqueIndexStreamReader(indexDef, condition);
-               GenericEntityBatchReader batchReader = new 
GenericEntityBatchReader(indexReader);
-               List<TestLogAPIEntity> entities =  batchReader.read();
-               Assert.assertNotNull(entities);
-               Assert.assertTrue(entities.size() >= 1);
-               TestLogAPIEntity e1 = entities.get(0);
-               Assert.assertEquals(e.getField1(), e1.getField1());
-               Assert.assertEquals(e.getField2(), e1.getField2());
-               Assert.assertEquals(e.getField3(), e1.getField3());
-               Assert.assertEquals(e.getField4(), e1.getField4());
-               Assert.assertEquals(e.getField5(), e1.getField5(), 0.001);
-               Assert.assertEquals(e.getField6(), e1.getField6());
-               Assert.assertEquals(e.getField7(), e1.getField7());
-               
-               GenericDeleter deleter = new GenericDeleter(ed.getTable(), 
ed.getColumnFamily());
-               deleter.delete(list);
-               
-               indexReader = new UniqueIndexStreamReader(indexDef, condition);
-               batchReader = new GenericEntityBatchReader(indexReader);
-               entities =  batchReader.read();
-               hbase.deleteTable(entityDefinition.getTable());
-               Assert.assertNotNull(entities);
-               Assert.assertTrue(entities.isEmpty());
-       }
-
-       @Test
-       public void testNonClusterIndexRead() throws Exception {
-        EntityDefinition entityDefinition = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-        hbase.createTable(entityDefinition.getTable(), 
entityDefinition.getColumnFamily());
-
-               EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-               EntityDefinition ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               
-               List<TestLogAPIEntity> list = new ArrayList<TestLogAPIEntity>();
-               TestLogAPIEntity e = new TestLogAPIEntity();
-               e.setField1(1);
-               e.setField2(2);
-               e.setField3(3);
-               e.setField4(4L);
-               e.setField5(5.0);
-               e.setField6(5.0);
-               e.setField7("7");
-               e.setTags(new HashMap<String, String>());
-               e.getTags().put("jobID", "index_test_job_id");
-               e.getTags().put("hostname", "testhost");
-               list.add(e);
-
-               GenericEntityWriter writer = new 
GenericEntityWriter(ed.getService());
-               List<String> result = writer.write(list);
-               Assert.assertNotNull(result);
-               
-               IndexDefinition indexDef = ed.getIndexes()[1];
-               SearchCondition condition = new SearchCondition();
-               condition.setOutputFields(new ArrayList<String>());
-               condition.getOutputFields().add("field1");
-               condition.getOutputFields().add("field2");
-               condition.getOutputFields().add("field3");
-               condition.getOutputFields().add("field4");
-               condition.getOutputFields().add("field5");
-               condition.getOutputFields().add("field6");
-               condition.getOutputFields().add("field7");
-
-               String query = "@field7 = \"7\" AND @jobID = 
\"index_test_job_id\" AND @hostname = \"testhost\"";
-               EagleQueryParser parser = new EagleQueryParser(query);
-               condition.setQueryExpression(parser.parse());
-
-               NonClusteredIndexStreamReader indexReader = new 
NonClusteredIndexStreamReader(indexDef, condition);
-               GenericEntityBatchReader batchReader = new 
GenericEntityBatchReader(indexReader);
-               List<TestLogAPIEntity> entities =  batchReader.read();
-               Assert.assertNotNull(entities);
-               Assert.assertTrue(entities.size() >= 1);
-               TestLogAPIEntity e1 = entities.get(0);
-               Assert.assertEquals(e.getField1(), e1.getField1());
-               Assert.assertEquals(e.getField2(), e1.getField2());
-               Assert.assertEquals(e.getField3(), e1.getField3());
-               Assert.assertEquals(e.getField4(), e1.getField4());
-               Assert.assertEquals(e.getField5(), e1.getField5(), 0.001);
-               Assert.assertEquals(e.getField6(), e1.getField6());
-               Assert.assertEquals(e.getField7(), e1.getField7());
-
-
-               GenericDeleter deleter = new GenericDeleter(ed.getTable(), 
ed.getColumnFamily());
-               deleter.delete(list);
-               
-               indexReader = new NonClusteredIndexStreamReader(indexDef, 
condition);
-               batchReader = new GenericEntityBatchReader(indexReader);
-               entities =  batchReader.read();
-               hbase.deleteTable(entityDefinition.getTable());
-               Assert.assertNotNull(entities);
-               Assert.assertTrue(entities.isEmpty());
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseIntegerLogHelper.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseIntegerLogHelper.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseIntegerLogHelper.java
deleted file mode 100755
index 22d50a3..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseIntegerLogHelper.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package eagle.log.entity;
-
-import eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import eagle.log.entity.meta.EntityDefinition;
-import eagle.log.entity.meta.EntityDefinitionManager;
-import eagle.log.entity.test.TestTimeSeriesAPIEntity;
-import eagle.common.ByteUtil;
-import junit.framework.Assert;
-import org.junit.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @since : 11/10/14,2014
- */
-public class TestHBaseIntegerLogHelper {
-       @Test
-       public void testTimeSeriesAPIEntity(){
-               InternalLog internalLog = new InternalLog();
-               Map<String,byte[]> map = new HashMap<String,byte[]>();
-               TestTimeSeriesAPIEntity apiEntity = new 
TestTimeSeriesAPIEntity();
-               EntityDefinition ed = null;
-               try {
-                       ed = 
EntityDefinitionManager.getEntityByServiceName("TestTimeSeriesAPIEntity");
-               } catch (InstantiationException e) {
-                       e.printStackTrace();
-               } catch (IllegalAccessException e) {
-                       e.printStackTrace();
-               }
-               map.put("a", ByteUtil.intToBytes(12));
-               map.put("c", ByteUtil.longToBytes(123432432l));
-               map.put("cluster", new String("cluster4ut").getBytes());
-               map.put("datacenter", new String("datacenter4ut").getBytes());
-
-               internalLog.setQualifierValues(map);
-               internalLog.setTimestamp(System.currentTimeMillis());
-
-               try {
-                       TaggedLogAPIEntity entity = 
HBaseInternalLogHelper.buildEntity(internalLog, ed);
-                       Assert.assertTrue(entity instanceof 
TestTimeSeriesAPIEntity);
-                       TestTimeSeriesAPIEntity tsentity = 
(TestTimeSeriesAPIEntity) entity;
-                       
Assert.assertEquals("cluster4ut",tsentity.getTags().get("cluster"));
-                       
Assert.assertEquals("datacenter4ut",tsentity.getTags().get("datacenter"));
-                       Assert.assertEquals(12,tsentity.getField1());
-                       Assert.assertEquals(123432432l,tsentity.getField3());
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseWriteEntitiesPerformance.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseWriteEntitiesPerformance.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseWriteEntitiesPerformance.java
deleted file mode 100755
index 186853b..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHBaseWriteEntitiesPerformance.java
+++ /dev/null
@@ -1,132 +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 eagle.log.entity;
-
-import eagle.log.entity.meta.EntityDefinition;
-import eagle.log.entity.meta.EntityDefinitionManager;
-import eagle.log.entity.test.TestLogAPIEntity;
-import eagle.service.hbase.TestHBaseBase;
-import junit.framework.Assert;
-import org.apache.commons.lang.time.StopWatch;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-
-public class TestHBaseWriteEntitiesPerformance extends TestHBaseBase {
-       private EntityDefinition ed;
-       private final static Logger LOG = 
LoggerFactory.getLogger(TestHBaseWriteEntitiesPerformance.class);
-
-       @Before
-       public void setUp() throws IllegalAccessException, 
InstantiationException, IOException {
-               EntityDefinition entityDefinition = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               hbase.createTable(entityDefinition.getTable(), 
entityDefinition.getColumnFamily());
-
-               EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-               try {
-                       ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-                       ed.setTimeSeries(true);
-               } catch (InstantiationException | IllegalAccessException e) {
-                       Assert.fail(e.getMessage());
-               }
-    }
-
-       @After
-       public void cleanUp() throws IllegalAccessException, 
InstantiationException, IOException {
-               EntityDefinition entityDefinition = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               hbase.deleteTable(entityDefinition.getTable());
-       }
-
-       private List<String> writeEntities(int count){
-               GenericEntityWriter writer = null;
-               try {
-                       writer = new GenericEntityWriter(ed.getService());
-               } catch (InstantiationException e1) {
-                       Assert.fail(e1.getMessage());
-               } catch (IllegalAccessException e1) {
-                       Assert.fail(e1.getMessage());
-               }
-
-               if(LOG.isDebugEnabled()) LOG.debug("Start to write "+count+" 
entities");
-               int wroteCount = 0;
-               List<String> rowkeys = new ArrayList<String>();
-               List<TestLogAPIEntity> list = new ArrayList<TestLogAPIEntity>();
-               for(int i=0;i<= count;i++){
-                       TestLogAPIEntity e = new TestLogAPIEntity();
-                       e.setTimestamp(new Date().getTime());
-                       e.setField1(i);
-                       e.setField2(i);
-                       e.setField3(i);
-                       e.setField4(new Long(i));
-                       e.setField5(new Double(i));
-                       e.setField6(new Double(i));
-                       e.setField7(String.valueOf(i));
-                       e.setTags(new HashMap<String, String>());
-                       e.getTags().put("jobID", "index_test_job_id");
-                       e.getTags().put("hostname", "testhost");
-                       e.getTags().put("index", String.valueOf(i));
-                       e.getTags().put("class", e.toString());
-                       list.add(e);
-
-                       if(list.size()>=1000){
-                               try {
-                                       StopWatch watch = new StopWatch();
-                                       watch.start();
-                                       rowkeys.addAll(writer.write(list));
-                                       watch.stop();
-                                       wroteCount += list.size();
-                                       if(LOG.isDebugEnabled()) 
LOG.debug("Wrote "+wroteCount+" / "+count+" entities"+" in "+watch.getTime()+" 
ms");
-                                       list.clear();
-                               } catch (Exception e1) {
-                                       Assert.fail(e1.getMessage());
-                               }
-                       }
-               }
-
-               try {
-                       rowkeys.addAll(writer.write(list));
-                       wroteCount += list.size();
-                       if(LOG.isDebugEnabled()) LOG.debug("wrote 
"+wroteCount+" / "+count+" entities");
-               } catch (Exception e) {
-                       Assert.fail(e.getMessage());
-               }
-               if(LOG.isDebugEnabled()) LOG.debug("done "+count+" entities");
-               return rowkeys;
-       }
-
-       @SuppressWarnings("unused")
-       @Test
-       public void testWrite1MLogAPIEntities(){
-               Date startTime = new Date();
-               LOG.info("Start time: " + startTime);
-               StopWatch watch = new StopWatch();
-               watch.start();
-               List<String> rowKeys = writeEntities(10);
-               Assert.assertNotNull(rowKeys);
-               watch.stop();
-               Date endTime = new Date();
-               LOG.info("End time: " + endTime);
-               LOG.info("Totally take " + watch.getTime() * 1.0 / 1000 + " s");
-       }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHbaseWritePerformance.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHbaseWritePerformance.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHbaseWritePerformance.java
deleted file mode 100644
index 0d70b77..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestHbaseWritePerformance.java
+++ /dev/null
@@ -1,100 +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 eagle.log.entity;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import eagle.common.config.EagleConfigFactory;
-import org.apache.hadoop.hbase.client.HTableInterface;
-import org.apache.hadoop.hbase.client.Put;
-import org.junit.Test;
-
-public class TestHbaseWritePerformance {
-
-       public static void main(String[] args) throws IOException {
-               
-               HTableInterface tbl = 
EagleConfigFactory.load().getHTable("unittest");
-
-               int putSize = 1000;
-               List<Put> list = new ArrayList<Put>(putSize);
-               for (int i = 0; i < putSize; ++i) {
-                       byte[] v = Integer.toString(i).getBytes();
-                       Put p = new Put(v);
-                       p.add("f".getBytes(), "a".getBytes(), 100, v);
-                       list.add(p);
-               }
-
-               // Case 1
-               System.out.println("Case 1: autoflush = true, individual put");
-               tbl.setAutoFlush(true);
-               long startTime = System.currentTimeMillis();
-               for (int i = 0; i < 1; ++i) {
-                       for (Put p : list) {
-                               tbl.put(p);
-                       }
-                       tbl.flushCommits();
-               }
-               long endTime = System.currentTimeMillis();
-               System.out.println("Case 1: " + (endTime - startTime) + " ms");
-               
-               
-               // Case 2
-               System.out.println("Case 2: autoflush = true, multi-put");
-               tbl.setAutoFlush(true);
-               startTime = System.currentTimeMillis();
-               for (int i = 0; i < 1; ++i) {
-                       tbl.put(list);
-                       tbl.flushCommits();
-               }
-               endTime = System.currentTimeMillis();
-               System.out.println("Case 2: " + (endTime - startTime) + " ms");
-
-               
-               // Case 3
-               System.out.println("Case 3: autoflush = false, multi-put");
-               tbl.setAutoFlush(false);
-               startTime = System.currentTimeMillis();
-               for (int i = 0; i < 1; ++i) {
-                       tbl.put(list);
-                       tbl.flushCommits();
-               }
-               endTime = System.currentTimeMillis();
-               System.out.println("Case 3: " + (endTime - startTime) + " ms");
-
-               
-               // Case 4
-               System.out.println("Case 4: autoflush = false, individual put");
-               tbl.setAutoFlush(true);
-               startTime = System.currentTimeMillis();
-               for (int i = 0; i < 1; ++i) {
-                       for (Put p : list) {
-                               tbl.put(p);
-                       }
-                       tbl.flushCommits();
-               }
-               endTime = System.currentTimeMillis();
-               System.out.println("Case 4: " + (endTime - startTime) + " ms");
-
-       }
-       
-       @Test
-       public void test() {
-               
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestTestLogAPIEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestTestLogAPIEntity.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestTestLogAPIEntity.java
deleted file mode 100755
index bcbec34..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/TestTestLogAPIEntity.java
+++ /dev/null
@@ -1,405 +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 eagle.log.entity;
-
-import eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import eagle.log.entity.index.UniqueIndexLogReader;
-import eagle.log.entity.meta.EntityConstants;
-import eagle.log.entity.meta.EntityDefinition;
-import eagle.log.entity.meta.EntityDefinitionManager;
-import eagle.log.entity.meta.IndexDefinition;
-import eagle.log.entity.old.GenericDeleter;
-import eagle.log.entity.test.TestLogAPIEntity;
-import eagle.service.hbase.TestHBaseBase;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public class TestTestLogAPIEntity extends TestHBaseBase {
-
-       @Test 
-       public void testGetValue() throws InstantiationException, 
IllegalAccessException, IllegalArgumentException, InvocationTargetException {
-               EntityDefinition ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               if (ed == null) {
-                       
EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-                       ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               }
-
-               Assert.assertNotNull(ed);
-               Assert.assertNotNull(ed.getQualifierGetterMap());
-               TestLogAPIEntity e = new TestLogAPIEntity();
-               e.setField1(1);
-               e.setField2(2);
-               e.setField3(3);
-               e.setField4(4L);
-               e.setField5(5.0);
-               e.setField6(6.0);
-               e.setField7("7");
-               e.setTags(new HashMap<String, String>());
-               e.getTags().put("tag1", "value1");
-
-               Assert.assertNotNull(ed.getQualifierGetterMap().get("field1"));
-               Assert.assertEquals(1, ed.getValue(e, "field1"));
-               Assert.assertEquals(2, ed.getValue(e, "field2"));
-               Assert.assertEquals(3L, ed.getValue(e, "field3"));
-               Assert.assertEquals(4L, ed.getValue(e, "field4"));
-               Assert.assertEquals(5.0, ed.getValue(e, "field5"));
-               Assert.assertEquals(6.0, ed.getValue(e, "field6"));
-               Assert.assertEquals("7", ed.getValue(e, "field7"));
-               Assert.assertEquals("value1", ed.getValue(e, "tag1"));
-       }
-       
-       @Test
-       public void testIndexDefinition() throws InstantiationException, 
IllegalAccessException {
-               
-               EntityDefinition ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               if (ed == null) {
-                       
EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-                       ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               }
-               Assert.assertNotNull(ed);
-               IndexDefinition[] indexDefinitions = ed.getIndexes();
-               Assert.assertNotNull(indexDefinitions);
-               Assert.assertEquals(2, indexDefinitions.length);
-               for (IndexDefinition def : indexDefinitions) {
-                       Assert.assertNotNull(def.getIndexName());
-                       Assert.assertNotNull(def.getIndexColumns());
-                       Assert.assertEquals(1, def.getIndexColumns().length);
-               }
-       }
-       
-       @Test
-       public void testWriteEmptyIndexFieldAndDeleteWithoutPartition() throws 
Exception {
-               EntityDefinition entityDefinition = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               hbase.createTable(entityDefinition.getTable(), 
entityDefinition.getColumnFamily());
-
-               EntityDefinition ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               if (ed == null) {
-                       
EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-                       ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               }
-               String[] partitions = ed.getPartitions();
-               ed.setPartitions(null);
-               
-               try {
-                       List<TestLogAPIEntity> list = new 
ArrayList<TestLogAPIEntity>();
-                       TestLogAPIEntity e = new TestLogAPIEntity();
-                       e.setField1(1);
-                       e.setField2(2);
-                       e.setField3(3);
-                       e.setField4(4L);
-                       e.setField5(5.0);
-                       e.setField6(5.0);
-                       e.setField7("7");
-                       e.setTags(new HashMap<String, String>());
-            e.getTags().put("tag1", "value1");
-                       list.add(e);
-       
-                       GenericEntityWriter writer = new 
GenericEntityWriter(ed.getService());
-                       List<String> result = writer.write(list);
-                       Assert.assertNotNull(result);
-                       
-                       List<byte[]> indexRowkeys = new ArrayList<byte[]>();
-                       IndexDefinition[] indexDefs = ed.getIndexes();
-                       for (IndexDefinition index : indexDefs) {
-                               byte[] indexRowkey = 
index.generateIndexRowkey(e);
-                               indexRowkeys.add(indexRowkey);
-                       }
-                       byte[][] qualifiers = new byte[7][];
-                       qualifiers[0] = "a".getBytes();
-                       qualifiers[1] = "b".getBytes();
-                       qualifiers[2] = "c".getBytes();
-                       qualifiers[3] = "d".getBytes();
-                       qualifiers[4] = "e".getBytes();
-                       qualifiers[5] = "f".getBytes();
-                       qualifiers[6] = "g".getBytes();
-                       
-                       UniqueIndexLogReader reader = new 
UniqueIndexLogReader(indexDefs[0], indexRowkeys, qualifiers, null);
-                       reader.open();
-                       InternalLog log = reader.read();
-                       Assert.assertNotNull(log);
-       
-                       TaggedLogAPIEntity newEntity = 
HBaseInternalLogHelper.buildEntity(log, ed);
-                       Assert.assertEquals(TestLogAPIEntity.class, 
newEntity.getClass());
-                       TestLogAPIEntity e1 = (TestLogAPIEntity)newEntity;
-                       Assert.assertEquals(e.getField1(), e1.getField1());
-                       Assert.assertEquals(e.getField2(), e1.getField2());
-                       Assert.assertEquals(e.getField3(), e1.getField3());
-                       Assert.assertEquals(e.getField4(), e1.getField4());
-                       Assert.assertEquals(e.getField5(), e1.getField5(), 
0.001);
-                       Assert.assertEquals(e.getField6(), e1.getField6());
-                       Assert.assertEquals(e.getField7(), e1.getField7());
-                       
-                       log = reader.read();
-                       Assert.assertNotNull(log);
-                       newEntity = HBaseInternalLogHelper.buildEntity(log, ed);
-                       Assert.assertEquals(TestLogAPIEntity.class, 
newEntity.getClass());
-                       e1 = (TestLogAPIEntity)newEntity;
-                       Assert.assertEquals(e.getField1(), e1.getField1());
-                       Assert.assertEquals(e.getField2(), e1.getField2());
-                       Assert.assertEquals(e.getField3(), e1.getField3());
-                       Assert.assertEquals(e.getField4(), e1.getField4());
-                       Assert.assertEquals(e.getField5(), e1.getField5(), 
0.001);
-                       Assert.assertEquals(e.getField6(), e1.getField6());
-                       Assert.assertEquals(e.getField7(), e1.getField7());
-                       
-                       log = reader.read();
-                       Assert.assertNull(log);
-                       reader.close();
-       
-                       GenericDeleter deleter = new 
GenericDeleter(ed.getTable(), ed.getColumnFamily());
-                       deleter.delete(list);
-                       
-                       reader = new UniqueIndexLogReader(indexDefs[0], 
indexRowkeys, qualifiers, null);
-                       reader.open();
-                       log = reader.read();
-                       Assert.assertNull(log);
-                       reader.close();
-               } finally {
-                       ed.setPartitions(partitions);
-               }
-               hbase.deleteTable(entityDefinition.getTable());
-       }
-       
-
-       /*
-        *  
testWriteEmptyIndexFieldAndDeleteWithPartition(eagle.log.entity.TestTestLogAPIEntity):
 expected:<86400000> but was:<0>
-        */
-       //@Test
-       public void testWriteEmptyIndexFieldAndDeleteWithPartition() throws 
Exception {
-        EntityDefinition entityDefinition = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-        hbase.createTable(entityDefinition.getTable(), 
entityDefinition.getColumnFamily());
-
-               EntityDefinition ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               if (ed == null) {
-                       
EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-                       ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               }
-               String[] partitions = ed.getPartitions();
-               String[] newPart = new String[2];
-               newPart[0] = "cluster";
-               newPart[1] = "datacenter";
-               ed.setPartitions(newPart);
-               
-               try {
-                       List<TestLogAPIEntity> list = new 
ArrayList<TestLogAPIEntity>();
-                       TestLogAPIEntity e = new TestLogAPIEntity();
-                       e.setField1(1);
-                       e.setField2(2);
-                       e.setField3(3);
-                       e.setField4(4L);
-                       e.setField5(5.0);
-                       e.setField6(5.0);
-                       e.setField7("7");
-                       e.setTags(new HashMap<String, String>());
-                       e.getTags().put("cluster", "test4UT");
-                       e.getTags().put("datacenter", "dc1");
-                       list.add(e);
-       
-                       GenericEntityWriter writer = new 
GenericEntityWriter(ed.getService());
-                       List<String> result = writer.write(list);
-                       Assert.assertNotNull(result);
-                       
-                       List<byte[]> indexRowkeys = new ArrayList<byte[]>();
-                       IndexDefinition[] indexDefs = ed.getIndexes();
-                       for (IndexDefinition index : indexDefs) {
-                               byte[] indexRowkey = 
index.generateIndexRowkey(e);
-                               indexRowkeys.add(indexRowkey);
-                       }
-                       byte[][] qualifiers = new byte[9][];
-                       qualifiers[0] = "a".getBytes();
-                       qualifiers[1] = "b".getBytes();
-                       qualifiers[2] = "c".getBytes();
-                       qualifiers[3] = "d".getBytes();
-                       qualifiers[4] = "e".getBytes();
-                       qualifiers[5] = "f".getBytes();
-                       qualifiers[6] = "g".getBytes();
-                       qualifiers[7] = "cluster".getBytes();
-                       qualifiers[8] = "datacenter".getBytes();
-                       
-                       UniqueIndexLogReader reader = new 
UniqueIndexLogReader(indexDefs[0], indexRowkeys, qualifiers, null);
-                       reader.open();
-                       InternalLog log = reader.read();
-                       Assert.assertNotNull(log);
-       
-                       TaggedLogAPIEntity newEntity = 
HBaseInternalLogHelper.buildEntity(log, ed);
-                       Assert.assertEquals(TestLogAPIEntity.class, 
newEntity.getClass());
-                       TestLogAPIEntity e1 = (TestLogAPIEntity)newEntity;
-                       Assert.assertEquals(e.getField1(), e1.getField1());
-                       Assert.assertEquals(e.getField2(), e1.getField2());
-                       Assert.assertEquals(e.getField3(), e1.getField3());
-                       Assert.assertEquals(e.getField4(), e1.getField4());
-                       Assert.assertEquals(e.getField5(), e1.getField5(), 
0.001);
-                       Assert.assertEquals(e.getField6(), e1.getField6());
-                       Assert.assertEquals(e.getField7(), e1.getField7());
-                       Assert.assertEquals("test4UT", 
e1.getTags().get("cluster"));
-                       Assert.assertEquals("dc1", 
e1.getTags().get("datacenter"));
-                       
Assert.assertEquals(EntityConstants.FIXED_WRITE_TIMESTAMP, e1.getTimestamp());
-
-                       log = reader.read();
-                       Assert.assertNotNull(log);
-                       newEntity = HBaseInternalLogHelper.buildEntity(log, ed);
-                       Assert.assertEquals(TestLogAPIEntity.class, 
newEntity.getClass());
-                       e1 = (TestLogAPIEntity)newEntity;
-                       Assert.assertEquals(e.getField1(), e1.getField1());
-                       Assert.assertEquals(e.getField2(), e1.getField2());
-                       Assert.assertEquals(e.getField3(), e1.getField3());
-                       Assert.assertEquals(e.getField4(), e1.getField4());
-                       Assert.assertEquals(e.getField5(), e1.getField5(), 
0.001);
-                       Assert.assertEquals(e.getField6(), e1.getField6());
-                       Assert.assertEquals(e.getField7(), e1.getField7());
-                       Assert.assertEquals("test4UT", 
e1.getTags().get("cluster"));
-                       Assert.assertEquals("dc1", 
e1.getTags().get("datacenter"));
-                       
Assert.assertEquals(EntityConstants.FIXED_WRITE_TIMESTAMP, e1.getTimestamp());
-
-                       log = reader.read();
-                       Assert.assertNull(log);
-                       reader.close();
-
-                       GenericDeleter deleter = new 
GenericDeleter(ed.getTable(), ed.getColumnFamily());
-                       deleter.delete(list);
-                       
-                       reader = new UniqueIndexLogReader(indexDefs[0], 
indexRowkeys, qualifiers, null);
-                       reader.open();
-                       log = reader.read();
-                       Assert.assertNull(log);
-                       reader.close();
-               } finally {
-                       ed.setPartitions(partitions);
-               }
-               hbase.deleteTable(entityDefinition.getTable());
-       }
-
-       /**
-        * 
testWriteEmptyIndexFieldAndDeleteWithPartitionAndTimeSeries(eagle.log.entity.TestTestLogAPIEntity):
 expected:<1434809555569> but was:<0>
-        */
-       
-       //@Test
-       public void 
testWriteEmptyIndexFieldAndDeleteWithPartitionAndTimeSeries() throws Exception {
-        EntityDefinition entityDefinition = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-        hbase.createTable(entityDefinition.getTable(), 
entityDefinition.getColumnFamily());
-
-               EntityDefinition ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               if (ed == null) {
-                       
EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-                       ed = 
EntityDefinitionManager.getEntityDefinitionByEntityClass(TestLogAPIEntity.class);
-               }
-               String[] partitions = ed.getPartitions();
-               String[] newPart = new String[2];
-               newPart[0] = "cluster";
-               newPart[1] = "datacenter";
-               ed.setPartitions(newPart);
-               boolean isTimeSeries = ed.isTimeSeries();
-               ed.setTimeSeries(true);
-               long now = System.currentTimeMillis();
-               
-               try {
-                       List<TestLogAPIEntity> list = new 
ArrayList<TestLogAPIEntity>();
-                       TestLogAPIEntity e = new TestLogAPIEntity();
-                       e.setField1(1);
-                       e.setField2(2);
-                       e.setField3(3);
-                       e.setField4(4L);
-                       e.setField5(5.0);
-                       e.setField6(5.0);
-                       e.setField7("7");
-                       e.setTags(new HashMap<String, String>());
-                       e.getTags().put("cluster", "test4UT");
-                       e.getTags().put("datacenter", "dc1");
-                       e.setTimestamp(now);
-                       list.add(e);
-       
-                       GenericEntityWriter writer = new 
GenericEntityWriter(ed.getService());
-                       List<String> result = writer.write(list);
-                       Assert.assertNotNull(result);
-                       
-                       List<byte[]> indexRowkeys = new ArrayList<byte[]>();
-                       IndexDefinition[] indexDefs = ed.getIndexes();
-                       for (IndexDefinition index : indexDefs) {
-                               byte[] indexRowkey = 
index.generateIndexRowkey(e);
-                               indexRowkeys.add(indexRowkey);
-                       }
-                       byte[][] qualifiers = new byte[9][];
-                       qualifiers[0] = "a".getBytes();
-                       qualifiers[1] = "b".getBytes();
-                       qualifiers[2] = "c".getBytes();
-                       qualifiers[3] = "d".getBytes();
-                       qualifiers[4] = "e".getBytes();
-                       qualifiers[5] = "f".getBytes();
-                       qualifiers[6] = "g".getBytes();
-                       qualifiers[7] = "cluster".getBytes();
-                       qualifiers[8] = "datacenter".getBytes();
-                       
-                       UniqueIndexLogReader reader = new 
UniqueIndexLogReader(indexDefs[0], indexRowkeys, qualifiers, null);
-                       reader.open();
-                       InternalLog log = reader.read();
-                       Assert.assertNotNull(log);
-       
-                       TaggedLogAPIEntity newEntity = 
HBaseInternalLogHelper.buildEntity(log, ed);
-                       Assert.assertEquals(TestLogAPIEntity.class, 
newEntity.getClass());
-                       TestLogAPIEntity e1 = (TestLogAPIEntity)newEntity;
-                       Assert.assertEquals(e.getField1(), e1.getField1());
-                       Assert.assertEquals(e.getField2(), e1.getField2());
-                       Assert.assertEquals(e.getField3(), e1.getField3());
-                       Assert.assertEquals(e.getField4(), e1.getField4());
-                       Assert.assertEquals(e.getField5(), e1.getField5(), 
0.001);
-                       Assert.assertEquals(e.getField6(), e1.getField6());
-                       Assert.assertEquals(e.getField7(), e1.getField7());
-                       Assert.assertEquals("test4UT", 
e1.getTags().get("cluster"));
-                       Assert.assertEquals("dc1", 
e1.getTags().get("datacenter"));
-                       Assert.assertEquals(now, e1.getTimestamp());
-
-                       log = reader.read();
-                       Assert.assertNotNull(log);
-                       newEntity = HBaseInternalLogHelper.buildEntity(log, ed);
-                       Assert.assertEquals(TestLogAPIEntity.class, 
newEntity.getClass());
-                       e1 = (TestLogAPIEntity)newEntity;
-                       Assert.assertEquals(e.getField1(), e1.getField1());
-                       Assert.assertEquals(e.getField2(), e1.getField2());
-                       Assert.assertEquals(e.getField3(), e1.getField3());
-                       Assert.assertEquals(e.getField4(), e1.getField4());
-                       Assert.assertEquals(e.getField5(), e1.getField5(), 
0.001);
-                       Assert.assertEquals(e.getField6(), e1.getField6());
-                       Assert.assertEquals(e.getField7(), e1.getField7());
-                       Assert.assertEquals("test4UT", 
e1.getTags().get("cluster"));
-                       Assert.assertEquals("dc1", 
e1.getTags().get("datacenter"));
-                       Assert.assertEquals(now, e1.getTimestamp());
-
-                       log = reader.read();
-                       Assert.assertNull(log);
-                       reader.close();
-
-                       GenericDeleter deleter = new 
GenericDeleter(ed.getTable(), ed.getColumnFamily());
-                       deleter.delete(list);
-                       
-                       reader = new UniqueIndexLogReader(indexDefs[0], 
indexRowkeys, qualifiers, null);
-                       reader.open();
-                       log = reader.read();
-                       Assert.assertNull(log);
-                       reader.close();
-               } finally {
-                       ed.setPartitions(partitions);
-                       ed.setTimeSeries(isTimeSeries);
-               }
-               hbase.deleteTable(entityDefinition.getTable());
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/base/taggedlog/TestTaggedLogAPIEntity.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/base/taggedlog/TestTaggedLogAPIEntity.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/base/taggedlog/TestTaggedLogAPIEntity.java
deleted file mode 100755
index 1cfe467..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/base/taggedlog/TestTaggedLogAPIEntity.java
+++ /dev/null
@@ -1,91 +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 eagle.log.entity.base.taggedlog;
-
-import java.io.IOException;
-import java.util.HashMap;
-
-import eagle.log.base.taggedlog.TaggedLogAPIEntity;
-import eagle.log.entity.meta.Column;
-import junit.framework.Assert;
-
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.junit.Test;
-
-public class TestTaggedLogAPIEntity {
-    ObjectMapper objectMapper = new ObjectMapper();
-
-    @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-    private class MockSubTaggedLogAPIEntity extends TaggedLogAPIEntity {
-        public double getField1() {
-            return field1;
-        }
-
-        public void setField1(double value) {
-            this.field1 = value;
-            _pcs.firePropertyChange("field1", null, null);
-        }
-
-        @Column("a")
-        private double field1;
-
-        public String getField2() {
-            return field2;
-        }
-
-        public void setField2(String field2) {
-            this.field2 = field2;
-            _pcs.firePropertyChange("field2", null, null);
-        }
-
-        @Column("b")
-        private String field2;
-    }
-
-    @SuppressWarnings("serial")
-       @Test
-    public void testJsonSerializeFilter() throws IOException {
-        MockSubTaggedLogAPIEntity mock = new MockSubTaggedLogAPIEntity();
-        Assert.assertTrue(mock instanceof TaggedLogAPIEntity);
-
-        long timestamp = System.currentTimeMillis();
-        mock.setTimestamp(timestamp);
-        mock.setEncodedRowkey("test_encoded_row_key");
-        mock.setPrefix("mock");
-        mock.setField2("ok");
-        String json = 
objectMapper.filteredWriter(TaggedLogAPIEntity.getFilterProvider()).writeValueAsString(mock);
-        System.out.println(json);
-        Assert.assertTrue(json.contains("field2"));
-        Assert.assertTrue(!json.contains("field1"));
-        mock.setTimestamp(timestamp);
-        mock.setEncodedRowkey("test_encoded_row_key");
-        mock.setPrefix("mock");
-        mock.setField2("ok");
-        mock.setField1(12.345);
-        mock.setTags(new HashMap<String, String>(){{
-            put("tagName", "tagValue");
-        }});
-        mock.setExp(new HashMap<String, Object>() {{
-            put("extra_field", 3.14);
-        }});
-        json = 
objectMapper.filteredWriter(TaggedLogAPIEntity.getFilterProvider()).writeValueAsString(mock);
-        System.out.println(json);
-        Assert.assertTrue(json.contains("field2"));
-        Assert.assertTrue(json.contains("field1"));
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestEntityQualifierHelper.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestEntityQualifierHelper.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestEntityQualifierHelper.java
deleted file mode 100755
index bfa7b36..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestEntityQualifierHelper.java
+++ /dev/null
@@ -1,182 +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 eagle.log.entity.filter;
-
-import eagle.log.entity.EntityQualifierUtils;
-import eagle.log.entity.meta.EntityDefinition;
-import eagle.log.entity.meta.EntityDefinitionManager;
-import eagle.log.entity.test.TestLogAPIEntity;
-import junit.framework.Assert;
-import org.apache.hadoop.hbase.util.Bytes;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.List;
-
-/**
-* @since : 10/15/14 2014
-*/
-public class TestEntityQualifierHelper {
-       private EntityDefinition ed;
-       @Before
-       public void setUp(){
-               try {
-                       
if(EntityDefinitionManager.getEntityByServiceName("TestLogAPIEntity") == null){
-                               
EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-                       }
-                       ed = 
EntityDefinitionManager.getEntityByServiceName("TestLogAPIEntity");
-               } catch (InstantiationException e) {
-                       e.printStackTrace();  //To change body of catch 
statement use File | Settings | File Templates.
-               } catch (IllegalAccessException e) {
-                       e.printStackTrace();  //To change body of catch 
statement use File | Settings | File Templates.
-               }
-       }
-
-       @Test
-       public void testEd(){
-               Assert.assertNotNull(ed);
-               Assert.assertNotNull(ed.getQualifierNameMap().get("a"));
-               Assert.assertNull(ed.getQualifierNameMap().get("notexist"));
-       }
-
-       @Test
-       public void  testIntEntityQualifierHelper(){
-               byte[] value = EntityQualifierUtils.toBytes(ed, "field1", "2");
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes(1)) > 0);
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes(2)) == 
0);
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes(3)) < 0);
-       }
-
-       @Test
-       public void  testStringEntityQualifierHelper(){
-               byte[] value = EntityQualifierUtils.toBytes(ed, "field7", 
"xyz");
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes("xyy")) 
> 0);
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes("xyz")) 
== 0);
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes("xzz")) 
< 0);
-
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes("xy")) > 
0);
-       }
-
-       @Test
-       public void  testDoubleEntityQualifierHelper(){
-               byte[] value = EntityQualifierUtils.toBytes(ed, "field5", 
"1.0");
-               Assert.assertTrue(Bytes.compareTo(value,Bytes.toBytes(0.5)) > 
0);
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes(1.0)) == 
0);
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes(2.2)) < 
0);
-
-//      TODO There is problem with negative double
-//             
Assert.assertTrue(Bytes.compareTo(Bytes.toBytes(-0.6),Bytes.toBytes(-0.5)) < 0);
-       }
-
-       @Test
-       public void  testLongEntityQualifierHelper(){
-               byte[] value = EntityQualifierUtils.toBytes(ed, "field4", 
"100000");
-               
Assert.assertTrue(Bytes.compareTo(value,Bytes.toBytes(100000l-1l )) > 0);
-               Assert.assertTrue(Bytes.compareTo(value, 
Bytes.toBytes(100000l)) == 0);
-               Assert.assertTrue(Bytes.compareTo(value, Bytes.toBytes(100000l 
+ 1l)) < 0);
-       }
-
-       @Test
-       public void  testNegativeLongEntityQualifierHelper(){
-               Exception ex = null;
-               try{
-                       byte[] value = EntityQualifierUtils.toBytes(ed, 
"field4", "-100000");
-               }catch (IllegalArgumentException e){
-                       ex = e;
-               }
-               Assert.assertNull(ex);
-       }
-
-       @Test
-       public void testParseAsList(){
-               List<String> set = 
EntityQualifierUtils.parseList("(\"abc1\",\"abc2\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("abc1",set.toArray()[0]);
-               Assert.assertEquals("abc2",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(1,\"abc2\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("1",set.toArray()[0]);
-               Assert.assertEquals("abc2",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(-1.5,\"abc2\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("-1.5",set.toArray()[0]);
-               Assert.assertEquals("abc2",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(-1.5,\"-1.5,abc\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("-1.5",set.toArray()[0]);
-               Assert.assertEquals("-1.5,abc",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(-1.5,\"\\\"abc\\\"\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("-1.5",set.toArray()[0]);
-               Assert.assertEquals("\"abc\"",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(-1.5,\"-1.5,\\\"abc\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("-1.5",set.toArray()[0]);
-               Assert.assertEquals("-1.5,\"abc",set.toArray()[1]);
-
-               set = 
EntityQualifierUtils.parseList("(\"\\\"-1.5\\\",abc1\",\"-1.5,\\\"abc2\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("\"-1.5\",abc1",set.toArray()[0]);
-               Assert.assertEquals("-1.5,\"abc2",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(-1.5,\"-1.5,\"abc\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("-1.5",set.toArray()[0]);
-               Assert.assertEquals("-1.5,\"abc",set.toArray()[1]);
-
-               set = 
EntityQualifierUtils.parseList("(\"\\\"value1,part1\\\",\\\"value1,part2\\\"\",\"value2\")");
-               Assert.assertEquals(2,set.size());
-               
Assert.assertEquals("\"value1,part1\",\"value1,part2\"",set.toArray()[0]);
-               Assert.assertEquals("value2",set.toArray()[1]);
-
-               ////////////////////////////////
-               // Bad Format
-               ////////////////////////////////
-               set = EntityQualifierUtils.parseList("(\"a,b)");
-               Assert.assertEquals(1,set.size());
-               Assert.assertEquals("a,b",set.toArray()[0]);
-
-               set = EntityQualifierUtils.parseList("(a,b\")");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("a",set.toArray()[0]);
-               Assert.assertEquals("b",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(a\",b)");
-               Assert.assertEquals(1,set.size());
-               Assert.assertEquals("a\",b",set.toArray()[0]);
-
-               set = EntityQualifierUtils.parseList("(abc,def)");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("abc",set.toArray()[0]);
-               Assert.assertEquals("def",set.toArray()[1]);
-
-               set = EntityQualifierUtils.parseList("(1.5,def)");
-               Assert.assertEquals(2,set.size());
-               Assert.assertEquals("1.5",set.toArray()[0]);
-               Assert.assertEquals("def",set.toArray()[1]);
-       }
-
-//     @Test
-//     public void testEscapeRegExp(){
-//             
Assert.assertEquals("abc\\.def",EntityQualifierHelper.escapeRegExp("abc.def"));
-//     }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/afe86834/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestExpressionComparator.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestExpressionComparator.java
 
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestExpressionComparator.java
deleted file mode 100755
index 476ce3a..0000000
--- 
a/eagle-core/eagle-query/eagle-entity-base/src/test/java/eagle/log/entity/filter/TestExpressionComparator.java
+++ /dev/null
@@ -1,195 +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 eagle.log.entity.filter;
-
-import eagle.log.entity.meta.EntityDefinition;
-import eagle.query.parser.ComparisonOperator;
-import eagle.query.parser.TokenType;
-import junit.framework.Assert;
-import org.junit.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class TestExpressionComparator {
-    @Test
-    public void testCompareToForEval(){
-        QualifierFilterEntity entity = new QualifierFilterEntity();
-        // a+b >= a+100.0
-        entity.setKey("a/b");
-        entity.setKeyType(TokenType.EXP);
-        entity.setValue("c");
-        entity.setValueType(TokenType.EXP);
-        entity.setOp(ComparisonOperator.GREATER_OR_EQUAL);
-        EntityDefinition qualifierDisplayNameMap = null;
-        BooleanExpressionComparator comparator = new 
BooleanExpressionComparator(entity,qualifierDisplayNameMap);
-
-        Map<String,Double> context = new HashMap<String,Double>();
-        Assert.assertEquals("Should return 0 because not given enough 
variable",0,comparator.compareTo(context));
-
-        context.put("a", 80.0);
-        context.put("b",20.0);
-        context.put("c",3.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",80.0);
-        context.put("b",20.0);
-        context.put("c",4.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",80.0);
-        context.put("b",20.0);
-        context.put("c",5.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        // Return false once any Double.isInfinite ( 80.0 / 0.0 )
-        Assert.assertTrue(Double.isInfinite( 80.0 / 0.0 ));
-        context.put("a",80.0);
-        context.put("b",0.0);
-        context.put("c", 5.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-    }
-
-    @Test
-    public void testCompareToForOp(){
-        QualifierFilterEntity entity = new QualifierFilterEntity();
-
-        // a+b >= a+100.0
-        entity.setKey("a + b");
-        entity.setValue("a + 100.0");
-        entity.setOp(ComparisonOperator.GREATER_OR_EQUAL);
-        EntityDefinition qualifierDisplayNameMap = new EntityDefinition();
-
-        BooleanExpressionComparator comparator = new 
BooleanExpressionComparator(entity,qualifierDisplayNameMap);
-
-        Map<String,Double> context = new HashMap<String,Double>();
-        context.put("a",100.1);
-        context.put("b",100.1);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",100.1);
-        context.put("b",100.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",100.0);
-        context.put("b",99.9);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",100.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",-100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        // a+b = a+100.0
-        entity.setOp(ComparisonOperator.GREATER);
-        comparator = new 
BooleanExpressionComparator(entity,qualifierDisplayNameMap);
-
-        context.put("a",100.1);
-        context.put("b",100.1);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",100.1);
-        context.put("b",100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",100.0);
-        context.put("b",99.9);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",-100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        // a+b = a+100.0
-        entity.setOp(ComparisonOperator.LESS);
-        comparator = new 
BooleanExpressionComparator(entity,qualifierDisplayNameMap);
-
-        context.put("a",100.1);
-        context.put("b",100.1);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",100.1);
-        context.put("b",100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",100.0);
-        context.put("b",99.9);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",-100.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        // a+b <= a+100.0
-        entity.setOp(ComparisonOperator.LESS_OR_EQUAL);
-        comparator = new 
BooleanExpressionComparator(entity,qualifierDisplayNameMap);
-
-        context.put("a",100.1);
-        context.put("b",100.1);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",100.1);
-        context.put("b",100.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",100.0);
-        context.put("b",99.9);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",100.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",-100.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        entity.setOp(ComparisonOperator.NOT_EQUAL);
-        comparator = new 
BooleanExpressionComparator(entity,qualifierDisplayNameMap);
-
-        context.put("a",100.1);
-        context.put("b",100.1);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",100.1);
-        context.put("b",100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",100.0);
-        context.put("b",99.9);
-        Assert.assertEquals(1,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b",100.0);
-        Assert.assertEquals(0,comparator.compareTo(context));
-
-        context.put("a",-200.0);
-        context.put("b", -100.0);
-        Assert.assertEquals(1,comparator.compareTo(context));
-    }
-}

Reply via email to