eagle-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From h..@apache.org
Subject incubator-eagle git commit: [EAGLE-754] Refactor - move ignored test class to corresponding module
Date Wed, 09 Nov 2016 08:46:54 GMT
Repository: incubator-eagle
Updated Branches:
  refs/heads/master 53a74633e -> 327351b92


[EAGLE-754] Refactor - move ignored test class to corresponding module

With this commit, improving code coverage of eagle-entity-base to 51%, code coverage of eagle-query-base
to 54%

Author: chang chen <baibaichen@gmail.com>

Closes #628 from baibaichen/feature/UT.


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

Branch: refs/heads/master
Commit: 327351b92ce2f050d4cfc6a3cd6f3990b22555a5
Parents: 53a7463
Author: chang chen <baibaichen@gmail.com>
Authored: Wed Nov 9 16:46:44 2016 +0800
Committer: Hao Chen <hao@apache.org>
Committed: Wed Nov 9 16:46:44 2016 +0800

----------------------------------------------------------------------
 .../TestGenericEntityIndexStreamReader.java     |   2 -
 .../eagle/log/entity/TestTestLogAPIEntity.java  |   2 -
 eagle-core/eagle-query/eagle-query-base/pom.xml |  13 +
 .../apache/eagle/query/TestHBaseLogReader2.java | 160 ++++++++++++
 .../eagle/query/TestListQueryCompiler.java      | 243 +++++++++++++++++++
 .../service/generic/TestHBaseLogReader2.java    | 164 -------------
 .../service/generic/TestListQueryCompiler.java  | 243 -------------------
 .../service/generic/TestListQueryResource.java  |   1 -
 8 files changed, 416 insertions(+), 412 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestGenericEntityIndexStreamReader.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestGenericEntityIndexStreamReader.java
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestGenericEntityIndexStreamReader.java
index ae07f4e..1e9e6cb 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestGenericEntityIndexStreamReader.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestGenericEntityIndexStreamReader.java
@@ -26,14 +26,12 @@ import org.apache.eagle.log.entity.test.TestLogAPIEntity;
 import org.apache.eagle.query.parser.EagleQueryParser;
 import org.apache.eagle.service.hbase.TestHBaseBase;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-@Ignore
 public class TestGenericEntityIndexStreamReader extends TestHBaseBase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestTestLogAPIEntity.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestTestLogAPIEntity.java
b/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestTestLogAPIEntity.java
index 2c8dbea..1839a99 100755
--- a/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestTestLogAPIEntity.java
+++ b/eagle-core/eagle-query/eagle-entity-base/src/test/java/org/apache/eagle/log/entity/TestTestLogAPIEntity.java
@@ -26,7 +26,6 @@ import org.apache.eagle.log.entity.old.GenericDeleter;
 import org.apache.eagle.log.entity.test.TestLogAPIEntity;
 import org.apache.eagle.service.hbase.TestHBaseBase;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.lang.reflect.InvocationTargetException;
@@ -34,7 +33,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-@Ignore
 public class TestTestLogAPIEntity extends TestHBaseBase {
 
 	@Test 

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-query-base/pom.xml
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-query-base/pom.xml b/eagle-core/eagle-query/eagle-query-base/pom.xml
index f0eda4d..f830c27 100644
--- a/eagle-core/eagle-query/eagle-query-base/pom.xml
+++ b/eagle-core/eagle-query/eagle-query-base/pom.xml
@@ -44,5 +44,18 @@
             <artifactId>commons-lang3</artifactId>
             <version>${commons-lang3.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.eagle</groupId>
+            <artifactId>eagle-embed-hbase</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.eagle</groupId>
+            <artifactId>eagle-embed-hbase</artifactId>
+            <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestHBaseLogReader2.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestHBaseLogReader2.java
b/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestHBaseLogReader2.java
new file mode 100755
index 0000000..e3db5c0
--- /dev/null
+++ b/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestHBaseLogReader2.java
@@ -0,0 +1,160 @@
+/*
+ * 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.query;;
+
+import org.apache.eagle.common.ByteUtil;
+import org.apache.eagle.common.DateTimeUtil;
+import org.apache.eagle.log.entity.GenericEntityBatchReader;
+import org.apache.eagle.log.entity.GenericEntityWriter;
+import org.apache.eagle.log.entity.SearchCondition;
+import org.apache.eagle.log.entity.meta.EntityDefinition;
+import org.apache.eagle.log.entity.meta.EntityDefinitionManager;
+import org.apache.eagle.log.entity.test.TestTimeSeriesAPIEntity;
+import org.apache.eagle.query.ListQueryCompiler;
+import org.apache.eagle.service.hbase.EmbeddedHbase;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+public class TestHBaseLogReader2 {
+	private final static Logger LOG = LoggerFactory.getLogger(TestHBaseLogReader2.class);
+    private static EmbeddedHbase hbase = EmbeddedHbase.getInstance();
+	
+	@SuppressWarnings("serial")
+	@Test
+	public void testStartTimeInclusiveEndTimeExclusive() throws Exception {
+		EntityDefinition entityDefinition = EntityDefinitionManager.getEntityDefinitionByEntityClass(TestTimeSeriesAPIEntity.class);
+		hbase.createTable(entityDefinition.getTable(), entityDefinition.getColumnFamily());
+
+		EntityDefinitionManager.registerEntity(TestTimeSeriesAPIEntity.class);
+
+		final String cluster = "cluster1";
+		final String datacenter = "dc1";
+		String serviceName = "TestTimeSeriesAPIEntity";
+		GenericEntityWriter writer = new GenericEntityWriter(serviceName);
+		List<TestTimeSeriesAPIEntity> entities = new ArrayList<TestTimeSeriesAPIEntity>();
+		TestTimeSeriesAPIEntity entity = new TestTimeSeriesAPIEntity();
+		long timestamp1 = DateTimeUtil.humanDateToSeconds("2014-04-08 03:00:00")*1000;
+		LOG.info("First entity timestamp:" + timestamp1);
+		entity.setTimestamp(timestamp1);
+		entity.setTags(new HashMap<String, String>(){{
+			put("cluster", cluster);
+			put("datacenter", datacenter);
+		}});
+		entity.setField7("field7");
+		entities.add(entity);
+
+		entity = new TestTimeSeriesAPIEntity();
+		long timestamp2 = DateTimeUtil.humanDateToSeconds("2014-05-08 04:00:00")*1000;
+		LOG.info("Second entity timestamp:" + timestamp2);
+		entity.setTimestamp(timestamp2);
+		entity.setTags(new HashMap<String, String>(){{
+			put("cluster", cluster);
+			put("datacenter", datacenter);
+		}});
+		entity.setField7("field7_2");
+		entities.add(entity);
+		writer.write(entities);
+
+		// for timezone difference between UTC & localtime, enlarge the search range
+		long queryStartTimestamp = timestamp1-24*60*60*1000;
+		long queryEndTimestamp = timestamp1+24*60*60*1000;
+		LOG.info("Query start timestamp:" + queryStartTimestamp);
+		LOG.info("Query end  timestamp:" + queryEndTimestamp);
+
+		String format = "%s[@cluster=\"%s\" AND @datacenter=\"%s\"]{%s}";
+		String query = String.format(format, serviceName, cluster, datacenter, "@field7");
+		ListQueryCompiler comp = new ListQueryCompiler(query);
+		SearchCondition condition = new SearchCondition();
+		condition.setFilter(comp.filter());
+		condition.setQueryExpression(comp.getQueryExpression());
+		condition.setOutputFields(comp.outputFields());
+
+		final List<String[]> partitionValues = comp.getQueryPartitionValues();
+		if (partitionValues != null) {
+			condition.setPartitionValues(Arrays.asList(partitionValues.get(0)));
+		}
+
+		condition.setStartRowkey(null);
+		condition.setPageSize(Integer.MAX_VALUE);
+		condition.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(0));
+		condition.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryEndTimestamp));
+
+		GenericEntityBatchReader reader = new GenericEntityBatchReader(serviceName, condition);
+		List<TestTimeSeriesAPIEntity> list = reader.read();
+
+		Assert.assertEquals(1, list.size());
+		Assert.assertEquals(timestamp1, list.get(0).getTimestamp());
+		Assert.assertEquals("field7", list.get(0).getField7());
+
+		// for timezone difference between UTC & localtime, enlarge the search range
+		queryStartTimestamp = timestamp1-24*60*60*1000;
+		queryEndTimestamp = timestamp2+24*60*60*1000;  // eagle timestamp is rounded to seconds
+		condition.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryStartTimestamp));
+		condition.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryEndTimestamp));
+		reader = new GenericEntityBatchReader(serviceName, condition);
+		list = reader.read();
+		Assert.assertEquals(2, list.size());
+
+		queryStartTimestamp = timestamp1;
+		queryEndTimestamp = timestamp1;  // eagle timestamp is rounded to seconds
+		condition.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryStartTimestamp));
+		condition.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryEndTimestamp));
+		reader = new GenericEntityBatchReader(serviceName, condition);
+		list = reader.read();
+		Assert.assertEquals(0, list.size());
+		hbase.deleteTable(entityDefinition.getTable());
+
+	}
+	
+	@Test
+	public void testByteComparison(){
+		byte[] byte1 = new byte[]{-23, 12, 63};
+		byte[] byte2 = ByteUtil.concat(byte1, new byte[]{0});
+		Assert.assertTrue(Bytes.compareTo(byte1, byte2) < 0);
+		byte[] byte3 = ByteUtil.concat(byte1, new byte[]{127});
+		Assert.assertTrue(Bytes.compareTo(byte2, byte3) < 0);
+		byte[] byte4 = ByteUtil.concat(byte1, new byte[]{-128});
+		Assert.assertTrue(Bytes.compareTo(byte4, byte3) > 0);
+	}
+	
+	@Test
+	public void testMaxByteInBytesComparision(){
+		int max = -1000000;
+//		int maxb = -1000000;
+		System.out.println("Byte MaxValue: " + Byte.MAX_VALUE);
+		System.out.println("Byte MaxValue: " + Byte.MIN_VALUE);
+		for(int i=-128; i<128; i++){
+			byte b = (byte)i;
+			int tmp = b & 0xff;
+			max = Math.max(max, tmp);
+		}
+		System.out.println(max);
+		
+		byte b = -1;
+		System.out.println(b & 0xff);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestListQueryCompiler.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestListQueryCompiler.java
b/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestListQueryCompiler.java
new file mode 100755
index 0000000..341c976
--- /dev/null
+++ b/eagle-core/eagle-query/eagle-query-base/src/test/java/org/apache/eagle/query/TestListQueryCompiler.java
@@ -0,0 +1,243 @@
+/*
+ * 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.query;
+
+import org.apache.eagle.log.entity.meta.EntityDefinition;
+import org.apache.eagle.log.entity.meta.EntityDefinitionManager;
+import org.apache.eagle.log.entity.test.TestLogAPIEntity;
+import org.apache.eagle.query.parser.ORExpression;
+import org.apache.eagle.query.aggregate.AggregateFunctionType;
+import org.apache.eagle.query.ListQueryCompiler;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+/**
+ * @since Nov 10, 2014
+ */
+public class TestListQueryCompiler {
+
+	private static final Logger LOG = LoggerFactory.getLogger(TestListQueryCompiler.class);
+	
+	@Before 
+	public void prepare() throws Exception{
+		String[] partitions =  new String[2];
+		partitions[0] = "cluster";
+		partitions[1] = "datacenter";
+		EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
+		EntityDefinition entityDef = EntityDefinitionManager.getEntityByServiceName("TestLogAPIEntity");
+		entityDef.setPartitions(partitions);
+		entityDef.setTimeSeries(true);
+	}
+	
+	 /**************************************************************************************************/
+	 /*********************************** Test Expression In List Query*********************************/
+	 /**************************************************************************************************/
+	
+	@Test
+	public void testListQueryWithoutExpression() throws Exception{	
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
@field5 > 0.05]{@cluster, @field1}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND @field5>0.05)");
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertTrue(aggFields == null);
+		List<String> outputFields = compiler.outputFields();
+		Assert.assertEquals(outputFields.size(), 2);
+		Assert.assertTrue(outputFields.contains("cluster"));
+		Assert.assertTrue(outputFields.contains("field1"));
+	}
+	
+	@Test
+	public void testListQueryWithExpressionEndWithNumberInFilter() throws Exception{	
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@field5 + @field6} > 0.05]{@cluster, @field1}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND field5 + field6>0.05)");
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertTrue(aggFields == null);
+		List<String> outputFields = compiler.outputFields();
+		Assert.assertEquals(outputFields.size(), 2);
+		Assert.assertTrue(outputFields.contains("cluster"));
+		Assert.assertTrue(outputFields.contains("field1"));
+	}
+	
+	@Test
+	public void testListQueryWithExpressionEndWithRPARENInFilter() throws Exception{	
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
(EXP{@field5 + @field6} > 0.05)]{@cluster, @field1}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		LOG.info(filter.toString());
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND field5 + field6>0.05)");
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertTrue(aggFields == null);
+		List<String> outputFields = compiler.outputFields();
+		Assert.assertEquals(outputFields.size(), 2);
+		Assert.assertTrue(outputFields.contains("cluster"));
+		Assert.assertTrue(outputFields.contains("field1"));
+		
+		query = "TestLogAPIEntity[(@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND (EXP{@field5
+ @field6} > 0.05))]{@cluster, @field1}";
+		compiler = new ListQueryCompiler(query, false);
+		filter = compiler.getQueryExpression();
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND field5 + field6>0.05)");
+		aggFields = compiler.aggregateFields();
+		Assert.assertTrue(aggFields == null);
+		outputFields = compiler.outputFields();
+		Assert.assertEquals(outputFields.size(), 2);
+		Assert.assertTrue(outputFields.contains("cluster"));
+		Assert.assertTrue(outputFields.contains("field1"));
+	}
+	
+	@Test
+	public void testListQueryWithExpressionEndWithRBRACEInFilter() throws Exception{			
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{0.05 + @c + @d}]{@cluster, EXP{@a + @b}}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>0.05 + c + d)");
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertTrue(aggFields == null);
+		List<String> outputFields = compiler.outputFields();
+//		Assert.assertEquals(outputFields.size(), 2);
+		Assert.assertTrue(outputFields.contains("cluster"));
+		Assert.assertTrue(outputFields.contains("EXP{a + b}"));
+	}
+	
+	/**************************************************************************************************/
+	/*********************************** Test Expression In Group By Query*********************************/

+	/**************************************************************************************************/
+	
+	@Test
+	public void testGroupByQueryAggWithoutExpressionInAggFunc() throws Exception{
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d + 0.05}]<@cluster, @datacenter>{sum(@a),
avg(@b)}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		LOG.info(filter.toString());
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d + 0.05)");
+		
+		List<String> groupByFields = compiler.groupbyFields();
+		Assert.assertEquals(groupByFields.size(), 2);		
+		Assert.assertTrue(groupByFields.contains("cluster"));
+		Assert.assertTrue(groupByFields.contains("datacenter"));
+		
+		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
+		Assert.assertEquals(functions.size(), 2);		
+		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
+		Assert.assertTrue(functions.contains(AggregateFunctionType.avg));
+	
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertEquals(aggFields.size(), 2);
+		Assert.assertTrue(aggFields.contains("a"));
+		Assert.assertTrue(aggFields.contains("b"));
+	}
+	
+	@Test
+	public void testGroupByQueryAggWithExpressionInAggFunc() throws Exception{
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d + 0.07}]<@cluster, @datacenter>{sum(EXP{@a+@b+20.0}),
avg(EXP{(@a+@c + 2.5)/@d}), count}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		LOG.info(filter.toString());
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d + 0.07)");
+		
+		List<String> groupByFields = compiler.groupbyFields();
+		Assert.assertEquals(groupByFields.size(), 2);		
+		Assert.assertTrue(groupByFields.contains("cluster"));
+		Assert.assertTrue(groupByFields.contains("datacenter"));
+		
+		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
+		Assert.assertEquals(functions.size(), 3);		
+		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
+		Assert.assertTrue(functions.contains(AggregateFunctionType.avg));
+		Assert.assertTrue(functions.contains(AggregateFunctionType.count));
+				
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertEquals(aggFields.size(), 3);
+		Assert.assertTrue(aggFields.contains("EXP{a+b+20.0}"));
+		Assert.assertTrue(aggFields.contains("EXP{(a+c + 2.5)/d}"));
+		Assert.assertTrue(aggFields.contains("count"));
+	}
+	
+	/**************************************************************************************************/
+	/*********************************** Test Expression In Sort Query*********************************/

+	/**************************************************************************************************/
+	
+	@Test
+	public void testSortQueryWithoutExpressionInSort() throws Exception{
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d}]<@cluster, @datacenter>"
+				+ "{sum(@a), count}.{sum(@a) asc}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		LOG.info(filter.toString());
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d)");
+		
+		List<String> groupByFields = compiler.groupbyFields();
+		Assert.assertEquals(groupByFields.size(), 2);		
+		Assert.assertTrue(groupByFields.contains("cluster"));
+		Assert.assertTrue(groupByFields.contains("datacenter"));
+		
+		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
+		Assert.assertEquals(functions.size(), 2);		
+		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
+		Assert.assertTrue(functions.contains(AggregateFunctionType.count));
+		
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertEquals(aggFields.size(), 2);
+		Assert.assertTrue(aggFields.contains("a"));
+		Assert.assertTrue(aggFields.contains("count"));
+		
+		List<String> sortFields = compiler.sortFields();
+		Assert.assertEquals(sortFields.size(), 1);
+		Assert.assertTrue(sortFields.contains("a"));
+	}
+	
+	@Test
+	public void testSortQuerySortWithExpressionInSort() throws Exception{
+		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d + 0.05}]<@cluster, @datacenter>"
+				+ "{sum(EXP{@a+@b+0.07}), max(EXP{(@a+@c)/@d}), min(EXP{@a+@b})}.{sum(EXP{@a+@b+0.07})
asc}";
+		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
+		ORExpression filter = compiler.getQueryExpression();
+		LOG.info(filter.toString());
+		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d + 0.05)");
+		
+		List<String> groupByFields = compiler.groupbyFields();
+		Assert.assertEquals(groupByFields.size(), 2);		
+		Assert.assertTrue(groupByFields.contains("cluster"));
+		Assert.assertTrue(groupByFields.contains("datacenter"));
+		
+		List<String> aggFields = compiler.aggregateFields();
+		Assert.assertEquals(aggFields.size(), 3);
+		Assert.assertTrue(aggFields.contains("EXP{a+b+0.07}"));
+		Assert.assertTrue(aggFields.contains("EXP{(a+c)/d}"));
+		Assert.assertTrue(aggFields.contains("EXP{a+b}"));
+		
+		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
+		Assert.assertEquals(functions.size(), 3);		
+		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
+		Assert.assertTrue(functions.contains(AggregateFunctionType.max));
+		Assert.assertTrue(functions.contains(AggregateFunctionType.min));
+		
+		List<String> sortFields = compiler.sortFields();
+		Assert.assertEquals(sortFields.size(), 1);
+		Assert.assertTrue(sortFields.contains("EXP{a+b+0.07}"));
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestHBaseLogReader2.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestHBaseLogReader2.java
b/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestHBaseLogReader2.java
deleted file mode 100755
index 701a805..0000000
--- a/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestHBaseLogReader2.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.eagle.service.generic;
-
-import org.apache.eagle.common.ByteUtil;
-import org.apache.eagle.common.DateTimeUtil;
-import org.apache.eagle.log.entity.GenericEntityBatchReader;
-import org.apache.eagle.log.entity.GenericEntityWriter;
-import org.apache.eagle.log.entity.SearchCondition;
-import org.apache.eagle.log.entity.meta.EntityDefinition;
-import org.apache.eagle.log.entity.meta.EntityDefinitionManager;
-import org.apache.eagle.log.entity.test.TestTimeSeriesAPIEntity;
-import org.apache.eagle.query.ListQueryCompiler;
-import org.apache.eagle.service.hbase.EmbeddedHbase;
-import org.apache.hadoop.hbase.util.Bytes;
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-
-@Ignore
-public class TestHBaseLogReader2 {
-	private final static Logger LOG = LoggerFactory.getLogger(TestHBaseLogReader2.class);
-    private static EmbeddedHbase hbase = EmbeddedHbase.getInstance();
-	
-	@SuppressWarnings("serial")
-	@Test
-	public void testStartTimeInclusiveEndTimeExclusive() throws IOException, IllegalAccessException,
InstantiationException {
-		EntityDefinition entityDefinition = EntityDefinitionManager.getEntityDefinitionByEntityClass(TestTimeSeriesAPIEntity.class);
-		hbase.createTable(entityDefinition.getTable(), entityDefinition.getColumnFamily());
-
-		EntityDefinitionManager.registerEntity(TestTimeSeriesAPIEntity.class);
-		try{
-			final String cluster = "cluster1";
-			final String datacenter = "dc1";
-			String serviceName = "TestTimeSeriesAPIEntity";
-			GenericEntityWriter writer = new GenericEntityWriter(serviceName);
-			List<TestTimeSeriesAPIEntity> entities = new ArrayList<TestTimeSeriesAPIEntity>();
-			TestTimeSeriesAPIEntity entity = new TestTimeSeriesAPIEntity();
-			long timestamp1 = DateTimeUtil.humanDateToSeconds("2014-04-08 03:00:00")*1000;
-			LOG.info("First entity timestamp:" + timestamp1);
-			entity.setTimestamp(timestamp1);
-			entity.setTags(new HashMap<String, String>(){{
-				put("cluster", cluster);
-				put("datacenter", datacenter);
-			}});
-			entity.setField7("field7");
-			entities.add(entity);
-			
-			entity = new TestTimeSeriesAPIEntity();
-			long timestamp2 = DateTimeUtil.humanDateToSeconds("2014-05-08 04:00:00")*1000;
-			LOG.info("Second entity timestamp:" + timestamp2);
-			entity.setTimestamp(timestamp2);
-			entity.setTags(new HashMap<String, String>(){{
-				put("cluster", cluster);
-				put("datacenter", datacenter);
-			}});
-			entity.setField7("field7_2");
-			entities.add(entity);
-			writer.write(entities);
-
-			// for timezone difference between UTC & localtime, enlarge the search range
-			long queryStartTimestamp = timestamp1-24*60*60*1000;
-			long queryEndTimestamp = timestamp1+24*60*60*1000;
-			LOG.info("Query start timestamp:" + queryStartTimestamp);
-			LOG.info("Query end  timestamp:" + queryEndTimestamp);
-			
-			String format = "%s[@cluster=\"%s\" AND @datacenter=\"%s\"]{%s}";
-			String query = String.format(format, serviceName, cluster, datacenter, "@field7");
-			ListQueryCompiler comp = new ListQueryCompiler(query);
-			SearchCondition condition = new SearchCondition();
-			condition.setFilter(comp.filter());
-			condition.setQueryExpression(comp.getQueryExpression());
-			condition.setOutputFields(comp.outputFields());
-			
-			final List<String[]> partitionValues = comp.getQueryPartitionValues();
-			if (partitionValues != null) {
-				condition.setPartitionValues(Arrays.asList(partitionValues.get(0)));
-			}
-
-			condition.setStartRowkey(null);
-			condition.setPageSize(Integer.MAX_VALUE);
-			condition.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(0));
-			condition.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryEndTimestamp));
-			
-			GenericEntityBatchReader reader = new GenericEntityBatchReader(serviceName, condition);

-			List<TestTimeSeriesAPIEntity> list = reader.read();
-
-			Assert.assertEquals(1, list.size());
-			Assert.assertEquals(timestamp1, list.get(0).getTimestamp());
-			Assert.assertEquals("field7", list.get(0).getField7());
-
-			// for timezone difference between UTC & localtime, enlarge the search range
-			queryStartTimestamp = timestamp1-24*60*60*1000;
-			queryEndTimestamp = timestamp2+24*60*60*1000;  // eagle timestamp is rounded to seconds
-			condition.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryStartTimestamp));
-			condition.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryEndTimestamp));
-			reader = new GenericEntityBatchReader(serviceName, condition); 
-			list = reader.read();
-			Assert.assertEquals(2, list.size());
-			
-			queryStartTimestamp = timestamp1;
-			queryEndTimestamp = timestamp1;  // eagle timestamp is rounded to seconds
-			condition.setStartTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryStartTimestamp));
-			condition.setEndTime(DateTimeUtil.millisecondsToHumanDateWithSeconds(queryEndTimestamp));
-			reader = new GenericEntityBatchReader(serviceName, condition); 
-			list = reader.read();
-			Assert.assertEquals(0, list.size());
-			hbase.deleteTable(entityDefinition.getTable());
-		}catch(Exception ex){
-			LOG.error("error", ex);
-			Assert.fail();
-		}
-	}
-	
-	@Test
-	public void testByteComparison(){
-		byte[] byte1 = new byte[]{-23, 12, 63};
-		byte[] byte2 = ByteUtil.concat(byte1, new byte[]{0});
-		Assert.assertTrue(Bytes.compareTo(byte1, byte2) < 0);
-		byte[] byte3 = ByteUtil.concat(byte1, new byte[]{127});
-		Assert.assertTrue(Bytes.compareTo(byte2, byte3) < 0);
-		byte[] byte4 = ByteUtil.concat(byte1, new byte[]{-128});
-		Assert.assertTrue(Bytes.compareTo(byte4, byte3) > 0);
-	}
-	
-	@Test
-	public void testMaxByteInBytesComparision(){
-		int max = -1000000;
-//		int maxb = -1000000;
-		System.out.println("Byte MaxValue: " + Byte.MAX_VALUE);
-		System.out.println("Byte MaxValue: " + Byte.MIN_VALUE);
-		for(int i=-128; i<128; i++){
-			byte b = (byte)i;
-			int tmp = b & 0xff;
-			max = Math.max(max, tmp);
-		}
-		System.out.println(max);
-		
-		byte b = -1;
-		System.out.println(b & 0xff);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryCompiler.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryCompiler.java
b/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryCompiler.java
deleted file mode 100755
index 9610e54..0000000
--- a/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryCompiler.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * 
- */
-package org.apache.eagle.service.generic;
-
-import org.apache.eagle.log.entity.meta.EntityDefinition;
-import org.apache.eagle.log.entity.meta.EntityDefinitionManager;
-import org.apache.eagle.log.entity.test.TestLogAPIEntity;
-import org.apache.eagle.query.parser.ORExpression;
-import org.apache.eagle.query.aggregate.AggregateFunctionType;
-import org.apache.eagle.query.ListQueryCompiler;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-
-/**
- * @since Nov 10, 2014
- */
-public class TestListQueryCompiler {
-
-	private static final Logger LOG = LoggerFactory.getLogger(TestListQueryCompiler.class);
-	
-	@Before 
-	public void prepare() throws Exception{
-		String[] partitions =  new String[2];
-		partitions[0] = "cluster";
-		partitions[1] = "datacenter";
-		EntityDefinitionManager.registerEntity(TestLogAPIEntity.class);
-		EntityDefinition entityDef = EntityDefinitionManager.getEntityByServiceName("TestLogAPIEntity");
-		entityDef.setPartitions(partitions);
-		entityDef.setTimeSeries(true);
-	}
-	
-	 /**************************************************************************************************/
-	 /*********************************** Test Expression In List Query*********************************/
-	 /**************************************************************************************************/
-	
-	@Test
-	public void testListQueryWithoutExpression() throws Exception{	
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
@field5 > 0.05]{@cluster, @field1}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND @field5>0.05)");
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertTrue(aggFields == null);
-		List<String> outputFields = compiler.outputFields();
-		Assert.assertEquals(outputFields.size(), 2);
-		Assert.assertTrue(outputFields.contains("cluster"));
-		Assert.assertTrue(outputFields.contains("field1"));
-	}
-	
-	@Test
-	public void testListQueryWithExpressionEndWithNumberInFilter() throws Exception{	
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@field5 + @field6} > 0.05]{@cluster, @field1}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND field5 + field6>0.05)");
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertTrue(aggFields == null);
-		List<String> outputFields = compiler.outputFields();
-		Assert.assertEquals(outputFields.size(), 2);
-		Assert.assertTrue(outputFields.contains("cluster"));
-		Assert.assertTrue(outputFields.contains("field1"));
-	}
-	
-	@Test
-	public void testListQueryWithExpressionEndWithRPARENInFilter() throws Exception{	
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
(EXP{@field5 + @field6} > 0.05)]{@cluster, @field1}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		LOG.info(filter.toString());
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND field5 + field6>0.05)");
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertTrue(aggFields == null);
-		List<String> outputFields = compiler.outputFields();
-		Assert.assertEquals(outputFields.size(), 2);
-		Assert.assertTrue(outputFields.contains("cluster"));
-		Assert.assertTrue(outputFields.contains("field1"));
-		
-		query = "TestLogAPIEntity[(@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND (EXP{@field5
+ @field6} > 0.05))]{@cluster, @field1}";
-		compiler = new ListQueryCompiler(query, false);
-		filter = compiler.getQueryExpression();
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND field5 + field6>0.05)");
-		aggFields = compiler.aggregateFields();
-		Assert.assertTrue(aggFields == null);
-		outputFields = compiler.outputFields();
-		Assert.assertEquals(outputFields.size(), 2);
-		Assert.assertTrue(outputFields.contains("cluster"));
-		Assert.assertTrue(outputFields.contains("field1"));
-	}
-	
-	@Test
-	public void testListQueryWithExpressionEndWithRBRACEInFilter() throws Exception{			
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{0.05 + @c + @d}]{@cluster, EXP{@a + @b}}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>0.05 + c + d)");
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertTrue(aggFields == null);
-		List<String> outputFields = compiler.outputFields();
-//		Assert.assertEquals(outputFields.size(), 2);
-		Assert.assertTrue(outputFields.contains("cluster"));
-		Assert.assertTrue(outputFields.contains("EXP{a + b}"));
-	}
-	
-	/**************************************************************************************************/
-	/*********************************** Test Expression In Group By Query*********************************/

-	/**************************************************************************************************/
-	
-	@Test
-	public void testGroupByQueryAggWithoutExpressionInAggFunc() throws Exception{
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d + 0.05}]<@cluster, @datacenter>{sum(@a),
avg(@b)}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		LOG.info(filter.toString());
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d + 0.05)");
-		
-		List<String> groupByFields = compiler.groupbyFields();
-		Assert.assertEquals(groupByFields.size(), 2);		
-		Assert.assertTrue(groupByFields.contains("cluster"));
-		Assert.assertTrue(groupByFields.contains("datacenter"));
-		
-		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
-		Assert.assertEquals(functions.size(), 2);		
-		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
-		Assert.assertTrue(functions.contains(AggregateFunctionType.avg));
-	
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertEquals(aggFields.size(), 2);
-		Assert.assertTrue(aggFields.contains("a"));
-		Assert.assertTrue(aggFields.contains("b"));
-	}
-	
-	@Test
-	public void testGroupByQueryAggWithExpressionInAggFunc() throws Exception{
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d + 0.07}]<@cluster, @datacenter>{sum(EXP{@a+@b+20.0}),
avg(EXP{(@a+@c + 2.5)/@d}), count}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		LOG.info(filter.toString());
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d + 0.07)");
-		
-		List<String> groupByFields = compiler.groupbyFields();
-		Assert.assertEquals(groupByFields.size(), 2);		
-		Assert.assertTrue(groupByFields.contains("cluster"));
-		Assert.assertTrue(groupByFields.contains("datacenter"));
-		
-		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
-		Assert.assertEquals(functions.size(), 3);		
-		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
-		Assert.assertTrue(functions.contains(AggregateFunctionType.avg));
-		Assert.assertTrue(functions.contains(AggregateFunctionType.count));
-				
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertEquals(aggFields.size(), 3);
-		Assert.assertTrue(aggFields.contains("EXP{a+b+20.0}"));
-		Assert.assertTrue(aggFields.contains("EXP{(a+c + 2.5)/d}"));
-		Assert.assertTrue(aggFields.contains("count"));
-	}
-	
-	/**************************************************************************************************/
-	/*********************************** Test Expression In Sort Query*********************************/

-	/**************************************************************************************************/
-	
-	@Test
-	public void testSortQueryWithoutExpressionInSort() throws Exception{
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d}]<@cluster, @datacenter>"
-				+ "{sum(@a), count}.{sum(@a) asc}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		LOG.info(filter.toString());
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d)");
-		
-		List<String> groupByFields = compiler.groupbyFields();
-		Assert.assertEquals(groupByFields.size(), 2);		
-		Assert.assertTrue(groupByFields.contains("cluster"));
-		Assert.assertTrue(groupByFields.contains("datacenter"));
-		
-		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
-		Assert.assertEquals(functions.size(), 2);		
-		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
-		Assert.assertTrue(functions.contains(AggregateFunctionType.count));
-		
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertEquals(aggFields.size(), 2);
-		Assert.assertTrue(aggFields.contains("a"));
-		Assert.assertTrue(aggFields.contains("count"));
-		
-		List<String> sortFields = compiler.sortFields();
-		Assert.assertEquals(sortFields.size(), 1);
-		Assert.assertTrue(sortFields.contains("a"));
-	}
-	
-	@Test
-	public void testSortQuerySortWithExpressionInSort() throws Exception{
-		String query = "TestLogAPIEntity[@cluster=\"cluster\" AND @datacenter=\"datacenter\" AND
EXP{@a + @b} > EXP{@c + @d} AND EXP{@a + @c} < EXP{@b + @d + 0.05}]<@cluster, @datacenter>"
-				+ "{sum(EXP{@a+@b+0.07}), max(EXP{(@a+@c)/@d}), min(EXP{@a+@b})}.{sum(EXP{@a+@b+0.07})
asc}";
-		ListQueryCompiler compiler = new ListQueryCompiler(query, false);
-		ORExpression filter = compiler.getQueryExpression();
-		LOG.info(filter.toString());
-		Assert.assertEquals(filter.toString(), "(@cluster=\"cluster\" AND @datacenter=\"datacenter\"
AND a + b>c + d AND a + c<b + d + 0.05)");
-		
-		List<String> groupByFields = compiler.groupbyFields();
-		Assert.assertEquals(groupByFields.size(), 2);		
-		Assert.assertTrue(groupByFields.contains("cluster"));
-		Assert.assertTrue(groupByFields.contains("datacenter"));
-		
-		List<String> aggFields = compiler.aggregateFields();
-		Assert.assertEquals(aggFields.size(), 3);
-		Assert.assertTrue(aggFields.contains("EXP{a+b+0.07}"));
-		Assert.assertTrue(aggFields.contains("EXP{(a+c)/d}"));
-		Assert.assertTrue(aggFields.contains("EXP{a+b}"));
-		
-		List<AggregateFunctionType> functions = compiler.aggregateFunctionTypes();
-		Assert.assertEquals(functions.size(), 3);		
-		Assert.assertTrue(functions.contains(AggregateFunctionType.sum));
-		Assert.assertTrue(functions.contains(AggregateFunctionType.max));
-		Assert.assertTrue(functions.contains(AggregateFunctionType.min));
-		
-		List<String> sortFields = compiler.sortFields();
-		Assert.assertEquals(sortFields.size(), 1);
-		Assert.assertTrue(sortFields.contains("EXP{a+b+0.07}"));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/327351b9/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryResource.java
----------------------------------------------------------------------
diff --git a/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryResource.java
b/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryResource.java
index 0f5a049..7384c70 100755
--- a/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryResource.java
+++ b/eagle-core/eagle-query/eagle-service-base/src/test/java/org/apache/eagle/service/generic/TestListQueryResource.java
@@ -38,7 +38,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-@Ignore
 public class TestListQueryResource extends TestHBaseBase {
 
 	HTableInterface table;



Mime
View raw message