> implements Colu
+ _column.setNativeType(column.getNativeType());
+ _column.setType(column.getType());
+ _column.setNullable(column.isNullable());
+- _column.setPrimaryKey(column.isPrimaryKey());
+ return getReturnObject();
+ }
+
diff --git a/framework/projects/MetaModel_core/patches/1.test.patch b/framework/projects/MetaModel_core/patches/1.test.patch
new file mode 100755
index 000000000..f7e629c7a
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/1.test.patch
@@ -0,0 +1,51 @@
+diff --git a/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java b/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
+index 1884a413..40815ce3 100644
+--- a/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
++++ b/core/src/test/java/org/apache/metamodel/create/AbstractCreateTableBuilderTest.java
+@@ -56,11 +56,14 @@ public class AbstractCreateTableBuilderTest extends TestCase {
+
+ assertEquals("tablename", table.getName());
+ assertEquals(3, table.getColumnCount());
+- assertEquals("Column[name=foo,columnNumber=0,type=VARCHAR,nullable=true,nativeType=vch,columnSize=1234]",
++ assertEquals(
++ "Column[name=foo,columnNumber=0,type=VARCHAR,nullable=true,nativeType=vch,columnSize=1234]",
+ table.getColumns()[0].toString());
+- assertEquals("Column[name=bar,columnNumber=1,type=null,nullable=null,nativeType=null,columnSize=null]",
++ assertEquals(
++ "Column[name=bar,columnNumber=1,type=null,nullable=null,nativeType=null,columnSize=null]",
+ table.getColumns()[1].toString());
+- assertEquals("Column[name=baz,columnNumber=2,type=null,nullable=false,nativeType=null,columnSize=null]",
++ assertEquals(
++ "Column[name=baz,columnNumber=2,type=null,nullable=false,nativeType=null,columnSize=null]",
+ table.getColumns()[2].toString());
+
+ assertEquals("CREATE TABLE schema.tablename (foo VARCHAR(1234) PRIMARY KEY,bar,baz NOT NULL)", builder.toSql());
+@@ -83,7 +86,7 @@ public class AbstractCreateTableBuilderTest extends TestCase {
+
+ MutableTable likeTable = new MutableTable("blablablabla");
+ likeTable.addColumn(new MutableColumn("foo", ColumnType.VARCHAR, likeTable, 0, 1234, "vch", true, null, false,
+- null).setPrimaryKey(true));
++ null));
+ likeTable.addColumn(new MutableColumn("bar"));
+ likeTable.addColumn(new MutableColumn("baz"));
+
+@@ -94,13 +97,14 @@ public class AbstractCreateTableBuilderTest extends TestCase {
+
+ assertEquals("tablename", table.getName());
+ assertEquals(3, table.getColumnCount());
+- assertEquals("Column[name=foo,columnNumber=0,type=VARCHAR,nullable=true,nativeType=vch,columnSize=1234]",
++ assertEquals(
++ "Column[name=foo,columnNumber=0,type=VARCHAR,nullable=true,nativeType=vch,columnSize=1234]",
+ table.getColumns()[0].toString());
+- assertTrue(table.getColumns()[0].isPrimaryKey());
+-
+- assertEquals("Column[name=bar,columnNumber=1,type=null,nullable=null,nativeType=null,columnSize=null]",
++ assertEquals(
++ "Column[name=bar,columnNumber=1,type=null,nullable=null,nativeType=null,columnSize=null]",
+ table.getColumns()[1].toString());
+- assertEquals("Column[name=baz,columnNumber=2,type=null,nullable=null,nativeType=null,columnSize=null]",
++ assertEquals(
++ "Column[name=baz,columnNumber=2,type=null,nullable=null,nativeType=null,columnSize=null]",
+ table.getColumns()[2].toString());
+ }
+ }
diff --git a/framework/projects/MetaModel_core/patches/2.src.patch b/framework/projects/MetaModel_core/patches/2.src.patch
new file mode 100755
index 000000000..fe263ca39
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/2.src.patch
@@ -0,0 +1,13 @@
+diff --git a/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java b/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
+index 5e91494d..993bd895 100644
+--- a/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
++++ b/core/src/main/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStream.java
+@@ -235,7 +235,7 @@ public class LegacyDeserializationObjectInputStream extends ObjectInputStream {
+ @Override
+ protected Class> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
+ final String className = desc.getName();
+- if (className.startsWith("org.eobjects.metamodel") || className.startsWith("[Lorg.eobjects.metamodel")) {
++ if (className.startsWith("org.apache.metamodel") || className.startsWith("[Lorg.apache.metamodel")) {
+ final String newClassName;
+ if (OLD_CLASS_NAME_COLUMN_TYPE.equals(className)) {
+ // since ColumnType was changed from enum to interface, there's
diff --git a/framework/projects/MetaModel_core/patches/2.test.patch b/framework/projects/MetaModel_core/patches/2.test.patch
new file mode 100755
index 000000000..34e6ba025
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/2.test.patch
@@ -0,0 +1,83 @@
+diff --git a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
+index fffb6795..0557cf93 100644
+--- a/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
++++ b/core/src/test/java/org/apache/metamodel/util/LegacyDeserializationObjectInputStreamTest.java
+@@ -19,45 +19,47 @@
+ package org.apache.metamodel.util;
+
+ import java.io.FileInputStream;
+-
+-import junit.framework.TestCase;
++import java.io.FileOutputStream;
++import java.io.ObjectOutputStream;
+
+ import org.apache.metamodel.query.Query;
+ import org.apache.metamodel.schema.Column;
+ import org.apache.metamodel.schema.Table;
+
++import junit.framework.TestCase;
++
+ public class LegacyDeserializationObjectInputStreamTest extends TestCase {
+
+- /**
+- * Method used to generate the input file (requires org.eobjects.metamodel
+- * available)
+- *
+- *
+- * final org.apache.metamodel.schema.MutableSchema schema = new org.apache.metamodel.schema.MutableSchema("myschema");
+- * final org.apache.metamodel.schema.MutableTable table = new org.apache.metamodel.schema.MutableTable("mytable",
+- * org.apache.metamodel.schema.TableType.TABLE, schema);
+- * schema.addTable(table);
+- *
+- * table.addColumn(new org.apache.metamodel.schema.MutableColumn("mycol1", org.apache.metamodel.schema.ColumnType.INTEGER,
+- * table, 0, 16, "int", false, "my remark 1", false, "\""));
+- * table.addColumn(new org.apache.metamodel.schema.MutableColumn("mycol1", org.apache.metamodel.schema.ColumnType.VARCHAR,
+- * table, 1, 255, "text", true, "my remark 2", true, null));
+- *
+- * final org.apache.metamodel.query.Query q = new org.apache.metamodel.query.Query();
+- * q.from(table);
+- * q.select(table.getColumn(0));
+- * q.where(table.getColumn(1), org.apache.metamodel.query.OperatorType.EQUALS_TO, "foo");
+- *
+- * final FileOutputStream out = new FileOutputStream(filename);
+- * try {
+- * new ObjectOutputStream(out).writeObject(q);
+- * } finally {
+- * out.close();
+- * }
+- *
+- */
+ public void testCreateSerializeAndDeserializeOldSchemaAndQuery() throws Exception {
+- final String filename = "src/test/resources/metamodel-3.4-query-and-schema.ser";
++ final String filename = "target/metamodel-3.4-query-and-schema.ser";
++
++ // create the example serialized object
++ {
++ final org.apache.metamodel.schema.MutableSchema schema = new org.apache.metamodel.schema.MutableSchema(
++ "myschema");
++ final org.apache.metamodel.schema.MutableTable table = new org.apache.metamodel.schema.MutableTable(
++ "mytable", org.apache.metamodel.schema.TableType.TABLE, schema);
++ schema.addTable(table);
++
++ table.addColumn(new org.apache.metamodel.schema.MutableColumn("mycol1",
++ org.apache.metamodel.schema.ColumnType.INTEGER, table, 0, 16, "int", false, "my remark 1", false,
++ "\""));
++ table.addColumn(new org.apache.metamodel.schema.MutableColumn("mycol1",
++ org.apache.metamodel.schema.ColumnType.VARCHAR, table, 1, 255, "text", true, "my remark 2", true,
++ null));
++
++ final org.apache.metamodel.query.Query q = new org.apache.metamodel.query.Query();
++ q.from(table);
++ q.select(table.getColumn(0));
++ q.where(table.getColumn(1), org.apache.metamodel.query.OperatorType.EQUALS_TO, "foo");
++
++ final FileOutputStream out = new FileOutputStream(filename);
++ try {
++ new ObjectOutputStream(out).writeObject(q);
++ } finally {
++ out.close();
++ }
++ }
+
+ final Object obj;
+ {
diff --git a/framework/projects/MetaModel_core/patches/3.src.patch b/framework/projects/MetaModel_core/patches/3.src.patch
new file mode 100755
index 000000000..5120a0907
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/3.src.patch
@@ -0,0 +1,15 @@
+diff --git a/core/src/main/java/org/apache/metamodel/schema/AbstractColumn.java b/core/src/main/java/org/apache/metamodel/schema/AbstractColumn.java
+index 823566fd..8f276f5b 100644
+--- a/core/src/main/java/org/apache/metamodel/schema/AbstractColumn.java
++++ b/core/src/main/java/org/apache/metamodel/schema/AbstractColumn.java
+@@ -77,10 +77,7 @@ public abstract class AbstractColumn implements Column {
+ }
+ if (obj instanceof Column) {
+ Column other = (Column) obj;
+- if (getColumnNumber() != other.getColumnNumber()) {
+- return false;
+- }
+
+ if (!getName().equals(other.getName())) {
+ return false;
+ }
diff --git a/framework/projects/MetaModel_core/patches/3.test.patch b/framework/projects/MetaModel_core/patches/3.test.patch
new file mode 100755
index 000000000..0d7528f32
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/3.test.patch
@@ -0,0 +1,73 @@
+diff --git a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
+index 3fdb7110..3b2be2f3 100644
+--- a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
++++ b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
+@@ -26,10 +26,8 @@ import java.util.List;
+ import javax.swing.table.TableModel;
+
+ import org.apache.metamodel.data.DataSet;
+-import org.apache.metamodel.data.DataSetHeader;
+ import org.apache.metamodel.data.DataSetTableModel;
+ import org.apache.metamodel.data.DefaultRow;
+-import org.apache.metamodel.data.InMemoryDataSet;
+ import org.apache.metamodel.data.Row;
+ import org.apache.metamodel.data.SimpleDataSetHeader;
+ import org.apache.metamodel.query.CompiledQuery;
+@@ -40,9 +38,9 @@ import org.apache.metamodel.query.GroupByItem;
+ import org.apache.metamodel.query.JoinType;
+ import org.apache.metamodel.query.OperatorType;
+ import org.apache.metamodel.query.OrderByItem;
++import org.apache.metamodel.query.QueryParameter;
+ import org.apache.metamodel.query.OrderByItem.Direction;
+ import org.apache.metamodel.query.Query;
+-import org.apache.metamodel.query.QueryParameter;
+ import org.apache.metamodel.query.SelectItem;
+ import org.apache.metamodel.schema.Column;
+ import org.apache.metamodel.schema.MutableColumn;
+@@ -58,46 +56,6 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
+ private final Table table1 = schema.getTableByName(TABLE_CONTRIBUTOR);
+ private final Table table2 = schema.getTableByName(TABLE_ROLE);
+
+- // see issue METAMODEL-100
+- public void testSelectFromColumnsWithSameName() throws Exception {
+- final MutableTable table = new MutableTable("table");
+- table.addColumn(new MutableColumn("foo", table).setColumnNumber(0));
+- table.addColumn(new MutableColumn("foo", table).setColumnNumber(1));
+- table.addColumn(new MutableColumn("bar", table).setColumnNumber(2));
+-
+- final QueryPostprocessDataContext dc = new QueryPostprocessDataContext() {
+- @Override
+- protected DataSet materializeMainSchemaTable(Table table, Column[] columns, int maxRows) {
+- Object[] values = new Object[columns.length];
+- for (int i = 0; i < columns.length; i++) {
+- values[i] = columns[i].getColumnNumber();
+- }
+- DataSetHeader header = new SimpleDataSetHeader(columns);
+- DefaultRow row = new DefaultRow(header, values);
+- return new InMemoryDataSet(row);
+- }
+-
+- @Override
+- protected String getMainSchemaName() throws MetaModelException {
+- return "sch";
+- }
+-
+- @Override
+- protected Schema getMainSchema() throws MetaModelException {
+- MutableSchema schema = new MutableSchema(getMainSchemaName());
+- schema.addTable(table);
+- table.setSchema(schema);
+- return schema;
+- }
+- };
+-
+- DataSet ds = dc.query().from(table).selectAll().execute();
+- assertTrue(ds.next());
+- assertEquals("Row[values=[0, 1, 2]]", ds.getRow().toString());
+- assertFalse(ds.next());
+- ds.close();
+- }
+-
+ public void testAggregateQueryNoWhereClause() throws Exception {
+ MockDataContext dc = new MockDataContext("sch", "tab", "1");
+ Table table = dc.getDefaultSchema().getTables()[0];
diff --git a/framework/projects/MetaModel_core/patches/4.src.patch b/framework/projects/MetaModel_core/patches/4.src.patch
new file mode 100755
index 000000000..a8313c48c
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/4.src.patch
@@ -0,0 +1,13 @@
+diff --git a/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java b/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java
+index 37c59f2f..b2401c0b 100644
+--- a/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java
++++ b/core/src/main/java/org/apache/metamodel/query/parser/SelectItemParser.java
+@@ -62,7 +62,7 @@ public final class SelectItemParser implements QueryPartProcessor {
+ final int indexOfAlias = itemToken.toUpperCase().lastIndexOf(" AS ");
+ if (indexOfAlias != -1) {
+ alias = itemToken.substring(indexOfAlias + " AS ".length());
+- itemToken = itemToken.substring(0, indexOfAlias).trim();
++ itemToken = itemToken.substring(0, indexOfAlias);
+ }
+
+ try {
diff --git a/framework/projects/MetaModel_core/patches/4.test.patch b/framework/projects/MetaModel_core/patches/4.test.patch
new file mode 100755
index 000000000..49f266bca
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/4.test.patch
@@ -0,0 +1,16 @@
+diff --git a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
+index 401dcf71..a6c2e9e4 100644
+--- a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
++++ b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
+@@ -113,11 +113,6 @@ public class QueryParserTest extends TestCase {
+ assertEquals("SELECT MIN(tbl.foo) FROM sch.tbl", q.toSql());
+ }
+
+- public void testSelectEmptySpacesBeforeAs() throws Exception {
+- Query q = MetaModelHelper.parseQuery(dc, "SELECT tbl.foo AS alias FROM sch.tbl");
+- assertEquals("SELECT tbl.foo AS alias FROM sch.tbl", q.toSql());
+- }
+-
+ public void testSelectAvgInLowerCase() throws Exception {
+ Query q = MetaModelHelper.parseQuery(dc, "SELECT avg(tbl.foo) FROM sch.tbl");
+ assertEquals("SELECT AVG(tbl.foo) FROM sch.tbl", q.toSql());
diff --git a/framework/projects/MetaModel_core/patches/5.src.patch b/framework/projects/MetaModel_core/patches/5.src.patch
new file mode 100755
index 000000000..ec098678b
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/5.src.patch
@@ -0,0 +1,14 @@
+diff --git a/core/src/main/java/org/apache/metamodel/query/Query.java b/core/src/main/java/org/apache/metamodel/query/Query.java
+index 1fdb6da6..ae1e530d 100644
+--- a/core/src/main/java/org/apache/metamodel/query/Query.java
++++ b/core/src/main/java/org/apache/metamodel/query/Query.java
+@@ -520,6 +520,9 @@ public final class Query extends BaseObject implements Cloneable, Serializable {
+ public Query setMaxRows(Integer maxRows) {
+ if (maxRows != null) {
+ final int maxRowsValue = maxRows.intValue();
++ if (maxRowsValue == 0) {
++ throw new IllegalArgumentException("Max rows cannot be zero");
++ }
+ if (maxRowsValue < 0) {
+ throw new IllegalArgumentException("Max rows cannot be negative");
+ }
diff --git a/framework/projects/MetaModel_core/patches/5.test.patch b/framework/projects/MetaModel_core/patches/5.test.patch
new file mode 100755
index 000000000..efb06f477
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/5.test.patch
@@ -0,0 +1,87 @@
+diff --git a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
+index d8d046cb..618ff552 100644
+--- a/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
++++ b/core/src/test/java/org/apache/metamodel/QueryPostprocessDataContextTest.java
+@@ -29,7 +29,6 @@ import org.apache.metamodel.data.DataSet;
+ import org.apache.metamodel.data.DataSetHeader;
+ import org.apache.metamodel.data.DataSetTableModel;
+ import org.apache.metamodel.data.DefaultRow;
+-import org.apache.metamodel.data.EmptyDataSet;
+ import org.apache.metamodel.data.InMemoryDataSet;
+ import org.apache.metamodel.data.Row;
+ import org.apache.metamodel.data.SimpleDataSetHeader;
+@@ -59,15 +58,6 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
+ private final Table table1 = schema.getTableByName(TABLE_CONTRIBUTOR);
+ private final Table table2 = schema.getTableByName(TABLE_ROLE);
+
+- public void testQueryMaxRows0() throws Exception {
+- final MockDataContext dc = new MockDataContext("sch", "tab", "1");
+- final Table table = dc.getDefaultSchema().getTables()[0];
+- final DataSet dataSet = dc.query().from(table).selectAll().limit(0).execute();
+- assertTrue(dataSet instanceof EmptyDataSet);
+- assertFalse(dataSet.next());
+- dataSet.close();
+- }
+-
+ // see issue METAMODEL-100
+ public void testSelectFromColumnsWithSameName() throws Exception {
+ final MutableTable table = new MutableTable("table");
+@@ -117,8 +107,8 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
+ public void testAggregateQueryRegularWhereClause() throws Exception {
+ MockDataContext dc = new MockDataContext("sch", "tab", "1");
+ Table table = dc.getDefaultSchema().getTables()[0];
+- assertSingleRowResult("Row[values=[3]]", dc.query().from(table).selectCount().where("baz").eq("world")
+- .execute());
++ assertSingleRowResult("Row[values=[3]]",
++ dc.query().from(table).selectCount().where("baz").eq("world").execute());
+ }
+
+ public void testApplyFunctionToNullValues() throws Exception {
+@@ -232,9 +222,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
+
+ Query query = dc.query().from(table).select("foo").select(FunctionType.TO_NUMBER, "foo").select("bar")
+ .select(FunctionType.TO_STRING, "bar").select(FunctionType.TO_NUMBER, "bar").toQuery();
+- assertEquals(
+- "SELECT tab.foo, TO_NUMBER(tab.foo), tab.bar, TO_STRING(tab.bar), TO_NUMBER(tab.bar) FROM sch.tab",
+- query.toSql());
++ assertEquals("SELECT tab.foo, TO_NUMBER(tab.foo), tab.bar, TO_STRING(tab.bar), TO_NUMBER(tab.bar) FROM sch.tab", query.toSql());
+
+ DataSet ds = dc.executeQuery(query);
+ assertTrue(ds.next());
+@@ -257,7 +245,7 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
+ assertTrue(ds.next());
+ ds.close();
+ }
+-
++
+ public void testScalarFunctionWhere() throws Exception {
+ MockDataContext dc = new MockDataContext("sch", "tab", "1");
+ Table table = dc.getDefaultSchema().getTables()[0];
+@@ -762,8 +750,8 @@ public class QueryPostprocessDataContextTest extends MetaModelTestCase {
+ Query q = new Query();
+ q.from(table1);
+ q.select(table1.getColumns());
+- SelectItem countrySelectItem = q.getSelectClause().getSelectItem(
+- table1.getColumnByName(COLUMN_CONTRIBUTOR_COUNTRY));
++ SelectItem countrySelectItem = q.getSelectClause()
++ .getSelectItem(table1.getColumnByName(COLUMN_CONTRIBUTOR_COUNTRY));
+ q.where(new FilterItem(countrySelectItem, OperatorType.EQUALS_TO, "denmark"));
+
+ DataSet data = dc.executeQuery(q);
+diff --git a/core/src/test/java/org/apache/metamodel/query/QueryTest.java b/core/src/test/java/org/apache/metamodel/query/QueryTest.java
+index 823c4d9c..dd126572 100644
+--- a/core/src/test/java/org/apache/metamodel/query/QueryTest.java
++++ b/core/src/test/java/org/apache/metamodel/query/QueryTest.java
+@@ -157,6 +157,12 @@ public class QueryTest extends MetaModelTestCase {
+
+ public void testSetMaxRows() throws Exception {
+ assertEquals(1, new Query().setMaxRows(1).getMaxRows().intValue());
++ try {
++ new Query().setMaxRows(0);
++ fail("Exception expected");
++ } catch (IllegalArgumentException e) {
++ assertEquals("Max rows cannot be zero", e.getMessage());
++ }
+ try {
+ new Query().setMaxRows(-1);
+ fail("Exception expected");
diff --git a/framework/projects/MetaModel_core/patches/6.src.patch b/framework/projects/MetaModel_core/patches/6.src.patch
new file mode 100755
index 000000000..1ced41cc6
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/6.src.patch
@@ -0,0 +1,30 @@
+diff --git a/core/src/main/java/org/apache/metamodel/query/Query.java b/core/src/main/java/org/apache/metamodel/query/Query.java
+index 209e71fc..1fdb6da6 100644
+--- a/core/src/main/java/org/apache/metamodel/query/Query.java
++++ b/core/src/main/java/org/apache/metamodel/query/Query.java
+@@ -294,7 +294,7 @@ public final class Query extends BaseObject implements Cloneable, Serializable {
+ }
+
+ private FilterItem findFilterItem(String expression) {
+- String upperExpression = expression.toUpperCase();
++ String _upperExpression = expression.toUpperCase();
+
+ final QueryPartCollectionProcessor collectionProcessor = new QueryPartCollectionProcessor();
+ new QueryPartParser(collectionProcessor, expression, " AND ", " OR ").parse();
+@@ -303,7 +303,6 @@ public final class Query extends BaseObject implements Cloneable, Serializable {
+ final List delims = collectionProcessor.getDelims();
+ if (tokens.size() == 1) {
+ expression = tokens.get(0);
+- upperExpression = expression.toUpperCase();
+ } else {
+ final LogicalOperator logicalOperator = LogicalOperator.valueOf(delims.get(1).trim());
+
+@@ -329,7 +328,7 @@ public final class Query extends BaseObject implements Cloneable, Serializable {
+ } else {
+ searchStr = operatorCandidate.toSql();
+ }
+- final int operatorIndex = upperExpression.indexOf(searchStr);
++ final int operatorIndex = _upperExpression.indexOf(searchStr);
+ if (operatorIndex > 0) {
+ operator = operatorCandidate;
+ leftSide = expression.substring(0, operatorIndex).trim();
diff --git a/framework/projects/MetaModel_core/patches/6.test.patch b/framework/projects/MetaModel_core/patches/6.test.patch
new file mode 100755
index 000000000..bc7a5b9c6
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/6.test.patch
@@ -0,0 +1,18 @@
+diff --git a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
+index d1c198f2..f83d4ff4 100644
+--- a/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
++++ b/core/src/test/java/org/apache/metamodel/query/parser/QueryParserTest.java
+@@ -51,13 +51,6 @@ public class QueryParserTest extends TestCase {
+ col.setType(ColumnType.INTEGER);
+ };
+
+- public void testQueryWithParenthesisAnd() throws Exception {
+- Query q = MetaModelHelper.parseQuery(dc,
+- "select foo from sch.tbl where (foo= 1) and (foo=2)");
+- assertEquals("SELECT tbl.foo FROM sch.tbl WHERE tbl.foo = '1' AND tbl.foo = '2'",
+- q.toSql());
+- }
+-
+ public void testQueryInLowerCase() throws Exception {
+ Query q = MetaModelHelper.parseQuery(dc,
+ "select a.foo as f from sch.tbl a inner join sch.tbl b on a.foo=b.foo order by a.foo asc");
diff --git a/framework/projects/MetaModel_core/patches/7.src.patch b/framework/projects/MetaModel_core/patches/7.src.patch
new file mode 100755
index 000000000..8fbe6e21b
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/7.src.patch
@@ -0,0 +1,22 @@
+diff --git a/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java b/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java
+index dbca861a..856321e8 100644
+--- a/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java
++++ b/core/src/main/java/org/apache/metamodel/schema/ColumnTypeImpl.java
+@@ -198,7 +198,7 @@ public class ColumnTypeImpl implements ColumnType {
+
+ final ColumnType type;
+ if (cls == String.class) {
+- type = ColumnType.STRING;
++ type = ColumnType.VARCHAR;
+ } else if (cls == Boolean.class || cls == boolean.class) {
+ type = ColumnType.BOOLEAN;
+ } else if (cls == Character.class || cls == char.class || cls == Character[].class || cls == char[].class) {
+@@ -217,8 +217,6 @@ public class ColumnTypeImpl implements ColumnType {
+ type = ColumnType.DOUBLE;
+ } else if (cls == BigDecimal.class) {
+ type = ColumnType.DECIMAL;
+- } else if (Number.class.isAssignableFrom(cls)) {
+- type = ColumnType.NUMBER;
+ } else if (Map.class.isAssignableFrom(cls)) {
+ type = ColumnType.MAP;
+ } else if (List.class.isAssignableFrom(cls)) {
diff --git a/framework/projects/MetaModel_core/patches/7.test.patch b/framework/projects/MetaModel_core/patches/7.test.patch
new file mode 100755
index 000000000..bd0916375
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/7.test.patch
@@ -0,0 +1,28 @@
+diff --git a/core/src/test/java/org/apache/metamodel/schema/ColumnTypeImplTest.java b/core/src/test/java/org/apache/metamodel/schema/ColumnTypeTest.java
+similarity index 93%
+rename from core/src/test/java/org/apache/metamodel/schema/ColumnTypeImplTest.java
+rename to core/src/test/java/org/apache/metamodel/schema/ColumnTypeTest.java
+index fbff3dcc..58b843ad 100644
+--- a/core/src/test/java/org/apache/metamodel/schema/ColumnTypeImplTest.java
++++ b/core/src/test/java/org/apache/metamodel/schema/ColumnTypeTest.java
+@@ -31,7 +31,7 @@ import java.util.TreeMap;
+
+ import junit.framework.TestCase;
+
+-public class ColumnTypeImplTest extends TestCase {
++public class ColumnTypeTest extends TestCase {
+
+ public void testConvertColumnTypeFromJdbcTypes() throws Exception {
+ ColumnType type = ColumnTypeImpl.convertColumnType(Types.VARCHAR);
+@@ -55,10 +55,7 @@ public class ColumnTypeImplTest extends TestCase {
+
+ public void testConvertColumnTypeFromJavaClass() throws Exception {
+ ColumnType type = ColumnTypeImpl.convertColumnType(String.class);
+- assertEquals(ColumnType.STRING, type);
+-
+- type = ColumnTypeImpl.convertColumnType(Number.class);
+- assertEquals(ColumnType.NUMBER, type);
++ assertEquals(ColumnType.VARCHAR, type);
+
+ type = ColumnTypeImpl.convertColumnType(Time.class);
+ assertEquals(ColumnType.TIME, type);
diff --git a/framework/projects/MetaModel_core/patches/8.src.patch b/framework/projects/MetaModel_core/patches/8.src.patch
new file mode 100755
index 000000000..8190cb322
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/8.src.patch
@@ -0,0 +1,39 @@
+diff --git a/core/src/main/java/org/apache/metamodel/util/WildcardPattern.java b/core/src/main/java/org/apache/metamodel/util/WildcardPattern.java
+index 715e0d2a..648c2cac 100644
+--- a/core/src/main/java/org/apache/metamodel/util/WildcardPattern.java
++++ b/core/src/main/java/org/apache/metamodel/util/WildcardPattern.java
+@@ -32,20 +32,14 @@ import org.apache.metamodel.query.FilterItem;
+ public final class WildcardPattern implements Serializable {
+
+ private static final long serialVersionUID = 857462137797209624L;
+- private final boolean _startsWithDelim;
+- private final boolean _endsWithDelim;
+ private String _pattern;
+ private char _wildcard;
++ private boolean _endsWithDelim;
+
+ public WildcardPattern(String pattern, char wildcard) {
+ _pattern = pattern;
+ _wildcard = wildcard;
+- if(_pattern.isEmpty()){
+- _startsWithDelim = _endsWithDelim = false;
+- } else {
+- _startsWithDelim = _pattern.charAt(0) == _wildcard;
+- _endsWithDelim = _pattern.charAt(pattern.length() - 1) == _wildcard;
+- }
++ _endsWithDelim = (_pattern.charAt(pattern.length() - 1) == _wildcard);
+ }
+
+ public boolean matches(String value) {
+@@ -56,10 +50,9 @@ public final class WildcardPattern implements Serializable {
+ Character.toString(_wildcard));
+ int charIndex = 0;
+ while (st.hasMoreTokens()) {
+- int oldIndex = charIndex;
+ String token = st.nextToken();
+ charIndex = value.indexOf(token, charIndex);
+- if (charIndex == -1 || !_startsWithDelim && oldIndex == 0 && charIndex != 0) {
++ if (charIndex == -1) {
+ return false;
+ }
+ charIndex = charIndex + token.length();
diff --git a/framework/projects/MetaModel_core/patches/8.test.patch b/framework/projects/MetaModel_core/patches/8.test.patch
new file mode 100755
index 000000000..c56626f17
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/8.test.patch
@@ -0,0 +1,22 @@
+diff --git a/core/src/test/java/org/apache/metamodel/util/WildcardPatternTest.java b/core/src/test/java/org/apache/metamodel/util/WildcardPatternTest.java
+index 4bc45f7f..1e075dd0 100644
+--- a/core/src/test/java/org/apache/metamodel/util/WildcardPatternTest.java
++++ b/core/src/test/java/org/apache/metamodel/util/WildcardPatternTest.java
+@@ -41,16 +41,5 @@ public class WildcardPatternTest extends TestCase {
+ assertTrue(pattern.matches("foobarbar"));
+ assertFalse(pattern.matches("w00p"));
+
+- pattern = new WildcardPattern("oba%", '%');
+- assertTrue(pattern.matches("obar"));
+- assertFalse(pattern.matches("foobar"));
+-
+- pattern = new WildcardPattern("bar", '%');
+- assertTrue(pattern.matches("bar"));
+- assertFalse(pattern.matches("foobar"));
+-
+- pattern = new WildcardPattern("", '%');
+- assertTrue(pattern.matches(""));
+- assertFalse(pattern.matches("foo"));
+ }
+ }
+\ No newline at end of file
diff --git a/framework/projects/MetaModel_core/patches/9.src.patch b/framework/projects/MetaModel_core/patches/9.src.patch
new file mode 100755
index 000000000..19af3c8ee
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/9.src.patch
@@ -0,0 +1,40 @@
+diff --git a/core/src/main/java/org/apache/metamodel/util/FormatHelper.java b/core/src/main/java/org/apache/metamodel/util/FormatHelper.java
+index 22efc8e7..6eff30fe 100644
+--- a/core/src/main/java/org/apache/metamodel/util/FormatHelper.java
++++ b/core/src/main/java/org/apache/metamodel/util/FormatHelper.java
+@@ -24,7 +24,6 @@ import java.text.DecimalFormatSymbols;
+ import java.text.NumberFormat;
+ import java.text.ParseException;
+ import java.util.Date;
+-import java.util.regex.Pattern;
+
+ import org.apache.metamodel.query.QueryParameter;
+ import org.apache.metamodel.schema.ColumnType;
+@@ -33,10 +32,7 @@ import org.apache.metamodel.schema.ColumnType;
+ * Helper class for formatting
+ */
+ public final class FormatHelper {
+
+- private static Pattern DATE_PATTERN = Pattern.compile("(?:(?:DATE *['(\"])|(?:['(\"]))?([^')\"]*)[')\"]?");
+- private static Pattern TIME_PATTERN = Pattern.compile("(?:(?:TIME *['(\"])|(?:['(\"]))?([^')\"]*)[')\"]?");
+- private static Pattern TIMESTAMP_PATTERN = Pattern.compile("(?:(?:TIMESTAMP *['(\"])|(?:['(\"]))?([^')\"]*)[')\"]?");
+
+ /**
+ * Creates a uniform number format which is similar to that of eg. Java
+@@ -163,14 +158,11 @@ public final class FormatHelper {
+ final String[] formats;
+ if (columnType.isTimeBased()) {
+ if (columnType == ColumnType.DATE) {
+- value = DATE_PATTERN.matcher(value).replaceFirst("$1");
+ formats = new String[] { "yyyy-MM-dd" };
+ } else if (columnType == ColumnType.TIME) {
+- value = TIME_PATTERN.matcher(value).replaceFirst("$1");
+- formats = new String[] { "HH:mm:ss.SSS", "HH:mm:ss", "HH:mm" };
++ formats = new String[] { "HH:mm:ss", "HH:mm" };
+ } else {
+- value = TIMESTAMP_PATTERN.matcher(value).replaceFirst("$1");
+- formats = new String[] { "yyyy-MM-dd HH:mm:ss.SSS", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd" };
++ formats = new String[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd" };
+ }
+ } else {
+ throw new IllegalArgumentException("Cannot parse time value of type: " + columnType);
diff --git a/framework/projects/MetaModel_core/patches/9.test.patch b/framework/projects/MetaModel_core/patches/9.test.patch
new file mode 100755
index 000000000..ec3150d82
--- /dev/null
+++ b/framework/projects/MetaModel_core/patches/9.test.patch
@@ -0,0 +1,130 @@
+diff --git a/core/src/test/java/org/apache/metamodel/util/FormatHelperTest.java b/core/src/test/java/org/apache/metamodel/util/FormatHelperTest.java
+index 469f42b0..80cb23e8 100644
+--- a/core/src/test/java/org/apache/metamodel/util/FormatHelperTest.java
++++ b/core/src/test/java/org/apache/metamodel/util/FormatHelperTest.java
+@@ -20,10 +20,6 @@ package org.apache.metamodel.util;
+
+ import java.text.NumberFormat;
+ import java.util.Arrays;
+-import java.util.Calendar;
+-import java.util.Date;
+-import java.util.Locale;
+-import java.util.TimeZone;
+
+ import org.apache.metamodel.schema.ColumnType;
+
+@@ -63,113 +59,4 @@ public class FormatHelperTest extends TestCase {
+ FormatHelper.formatSqlValue(null, new Object[] { "foo", 1,
+ "bar", 0.1234 }));
+ }
+-
+- public void testParseTimeSqlValue() throws Exception {
+- final Calendar c = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
+-
+- c.setTimeInMillis(0);
+- c.set(Calendar.YEAR, 2011);
+- c.set(Calendar.MONTH, Month.JULY.getCalendarConstant());
+- c.set(Calendar.DAY_OF_MONTH, 24);
+- c.set(Calendar.HOUR_OF_DAY, 17);
+- c.set(Calendar.MINUTE, 34);
+- c.set(Calendar.SECOND, 56);
+- final Date timestampFullSeconds = c.getTime();
+- c.set(Calendar.MILLISECOND, 413);
+- final Date timestampFullMillis = c.getTime();
+-
+- c.setTimeInMillis(0);
+- c.set(Calendar.YEAR, 2011);
+- c.set(Calendar.MONTH, Month.JULY.getCalendarConstant());
+- c.set(Calendar.DAY_OF_MONTH, 24);
+- c.set(Calendar.HOUR_OF_DAY, 0);
+- c.set(Calendar.MINUTE, 0);
+- c.set(Calendar.SECOND, 0);
+- final Date dateOnly = c.getTime();
+-
+- c.setTimeInMillis(0);
+- c.set(Calendar.YEAR, 1970);
+- c.set(Calendar.MONTH, Calendar.JANUARY);
+- c.set(Calendar.DAY_OF_MONTH, 1);
+- c.set(Calendar.HOUR_OF_DAY, 17);
+- c.set(Calendar.MINUTE, 34);
+- c.set(Calendar.SECOND, 56);
+- final Date timeOnlySeconds = c.getTime();
+- c.set(Calendar.MILLISECOND, 413);
+- final Date timeOnlyMillis = c.getTime();
+-
+- // Test parsing of formatted date/time values
+- final String dateStr = FormatHelper.formatSqlValue(ColumnType.DATE, timestampFullSeconds);
+- final Date parsedOnlyDate = FormatHelper.parseSqlTime(ColumnType.DATE, dateStr);
+- assertEquals(dateOnly, parsedOnlyDate);
+-
+- final String timeStr = FormatHelper.formatSqlValue(ColumnType.TIME, timestampFullSeconds);
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, timeStr));
+-
+- final String timestampStr = FormatHelper.formatSqlValue(ColumnType.TIMESTAMP, timestampFullSeconds);
+- assertEquals(timestampFullSeconds, FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, timestampStr));
+-
+- // Now tests some specific cases
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "DATE '2011-07-24'"));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "DATE'2011-07-24'"));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "DATE \"2011-07-24\""));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "DATE\"2011-07-24\""));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "DATE (2011-07-24)"));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "DATE(2011-07-24)"));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "2011-07-24"));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "'2011-07-24'"));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "\"2011-07-24\""));
+-
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "TIME '17:34:56'"));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "TIME'17:34:56'"));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "TIME \"17:34:56\""));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "TIME\"17:34:56\""));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "TIME (17:34:56)"));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "TIME(17:34:56)"));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "'17:34:56'"));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "\"17:34:56\""));
+- assertEquals(timeOnlySeconds, FormatHelper.parseSqlTime(ColumnType.TIME, "17:34:56"));
+- assertEquals(timeOnlyMillis, FormatHelper.parseSqlTime(ColumnType.TIME, "TIME '17:34:56.413'"));
+-
+- assertEquals(timestampFullSeconds,
+- FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "TIMESTAMP '2011-07-24 17:34:56'"));
+- assertEquals(timestampFullSeconds,
+- FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "TIMESTAMP'2011-07-24 17:34:56'"));
+- assertEquals(timestampFullSeconds,
+- FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "TIMESTAMP \"2011-07-24 17:34:56\""));
+- assertEquals(timestampFullSeconds,
+- FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "TIMESTAMP\"2011-07-24 17:34:56\""));
+- assertEquals(timestampFullSeconds,
+- FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "TIMESTAMP (2011-07-24 17:34:56)"));
+- assertEquals(timestampFullSeconds,
+- FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "TIMESTAMP(2011-07-24 17:34:56)"));
+- assertEquals(timestampFullSeconds, FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "'2011-07-24 17:34:56'"));
+- assertEquals(timestampFullSeconds, FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "\"2011-07-24 17:34:56\""));
+- assertEquals(timestampFullSeconds, FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "2011-07-24 17:34:56"));
+- assertEquals(timestampFullMillis,
+- FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "TIMESTAMP '2011-07-24 17:34:56.413'"));
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.TIMESTAMP, "2011-07-24"));
+-
+- try {
+- FormatHelper.parseSqlTime(ColumnType.DATE, "XXX '2011-07-24'");
+- fail("should fail");
+- } catch (IllegalArgumentException e) {
+- // OK
+- }
+-
+- try {
+- assertEquals(dateOnly, FormatHelper.parseSqlTime(ColumnType.DATE, "TIME '2011-07-24'"));
+- fail("should fail");
+- } catch (IllegalArgumentException e) {
+- // OK
+- }
+-
+- try {
+- assertEquals(timestampFullSeconds,
+- FormatHelper.parseSqlTime(ColumnType.TIME, "TIMESTAMP '2011-07-24 17:34:56'"));
+- fail("should fail");
+- } catch (IllegalArgumentException e) {
+- // OK
+- }
+- }
+ }
+\ No newline at end of file
diff --git a/framework/projects/MetaModel_core/relevant_tests/1 b/framework/projects/MetaModel_core/relevant_tests/1
new file mode 100644
index 000000000..1443f9705
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/1
@@ -0,0 +1 @@
+org.apache.metamodel.create.AbstractCreateTableBuilderTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/2 b/framework/projects/MetaModel_core/relevant_tests/2
new file mode 100644
index 000000000..9da63e18a
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/2
@@ -0,0 +1,2 @@
+org.apache.metamodel.data.DefaultRowTest
+org.apache.metamodel.util.LegacyDeserializationObjectInputStreamTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/3 b/framework/projects/MetaModel_core/relevant_tests/3
new file mode 100644
index 000000000..cea5a1df1
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/3
@@ -0,0 +1,34 @@
+org.apache.metamodel.AbstractDataContextTest
+org.apache.metamodel.CompositeDataContextTest
+org.apache.metamodel.MetaModelHelperTest
+org.apache.metamodel.QueryPostprocessDataContextTest
+org.apache.metamodel.convert.ConvertedDataSetInterceptorTest
+org.apache.metamodel.convert.ConvertedRowInsertionInterceptorTest
+org.apache.metamodel.convert.ConvertersTest
+org.apache.metamodel.create.AbstractCreateTableBuilderTest
+org.apache.metamodel.data.DataSetTableModelTest
+org.apache.metamodel.data.DefaultRowTest
+org.apache.metamodel.data.FirstRowDataSetTest
+org.apache.metamodel.data.RowPublisherDataSetTest
+org.apache.metamodel.data.RowTest
+org.apache.metamodel.delete.AbstractRowDeletionCallbackTest
+org.apache.metamodel.insert.AbstractInsertBuilderTest
+org.apache.metamodel.intercept.InterceptableDataContextTest
+org.apache.metamodel.intercept.InterceptorListTest
+org.apache.metamodel.intercept.InterceptorsTest
+org.apache.metamodel.query.DefaultCompiledQueryTest
+org.apache.metamodel.query.FilterItemTest
+org.apache.metamodel.query.FromClauseTest
+org.apache.metamodel.query.FromItemTest
+org.apache.metamodel.query.QueryTest
+org.apache.metamodel.query.SelectClauseTest
+org.apache.metamodel.query.SelectItemTest
+org.apache.metamodel.query.builder.GroupedQueryBuilderImplTest
+org.apache.metamodel.query.builder.SyntaxExamplesTest
+org.apache.metamodel.query.builder.WhereBuilderImplTest
+org.apache.metamodel.query.parser.QueryParserTest
+org.apache.metamodel.schema.ImmutableSchemaTest
+org.apache.metamodel.schema.MutableColumnTest
+org.apache.metamodel.schema.MutableTableTest
+org.apache.metamodel.schema.SchemaModelTest
+org.apache.metamodel.util.LegacyDeserializationObjectInputStreamTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/4 b/framework/projects/MetaModel_core/relevant_tests/4
new file mode 100644
index 000000000..8c457b4a5
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/4
@@ -0,0 +1,3 @@
+org.apache.metamodel.QueryPostprocessDataContextTest
+org.apache.metamodel.query.FilterItemTest
+org.apache.metamodel.query.parser.QueryParserTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/5 b/framework/projects/MetaModel_core/relevant_tests/5
new file mode 100644
index 000000000..8cc8b79a1
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/5
@@ -0,0 +1,20 @@
+org.apache.metamodel.CompositeDataContextTest
+org.apache.metamodel.MetaModelHelperTest
+org.apache.metamodel.QueryPostprocessDataContextTest
+org.apache.metamodel.convert.ConvertedDataSetInterceptorTest
+org.apache.metamodel.convert.ConvertersTest
+org.apache.metamodel.data.DefaultRowTest
+org.apache.metamodel.delete.AbstractRowDeletionCallbackTest
+org.apache.metamodel.intercept.InterceptableDataContextTest
+org.apache.metamodel.query.DefaultCompiledQueryTest
+org.apache.metamodel.query.FilterItemTest
+org.apache.metamodel.query.FromClauseTest
+org.apache.metamodel.query.FromItemTest
+org.apache.metamodel.query.GroupByItemTest
+org.apache.metamodel.query.QueryTest
+org.apache.metamodel.query.SelectClauseTest
+org.apache.metamodel.query.SelectItemTest
+org.apache.metamodel.query.builder.GroupedQueryBuilderImplTest
+org.apache.metamodel.query.builder.SyntaxExamplesTest
+org.apache.metamodel.query.builder.WhereBuilderImplTest
+org.apache.metamodel.query.parser.QueryParserTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/6 b/framework/projects/MetaModel_core/relevant_tests/6
new file mode 100644
index 000000000..8cc8b79a1
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/6
@@ -0,0 +1,20 @@
+org.apache.metamodel.CompositeDataContextTest
+org.apache.metamodel.MetaModelHelperTest
+org.apache.metamodel.QueryPostprocessDataContextTest
+org.apache.metamodel.convert.ConvertedDataSetInterceptorTest
+org.apache.metamodel.convert.ConvertersTest
+org.apache.metamodel.data.DefaultRowTest
+org.apache.metamodel.delete.AbstractRowDeletionCallbackTest
+org.apache.metamodel.intercept.InterceptableDataContextTest
+org.apache.metamodel.query.DefaultCompiledQueryTest
+org.apache.metamodel.query.FilterItemTest
+org.apache.metamodel.query.FromClauseTest
+org.apache.metamodel.query.FromItemTest
+org.apache.metamodel.query.GroupByItemTest
+org.apache.metamodel.query.QueryTest
+org.apache.metamodel.query.SelectClauseTest
+org.apache.metamodel.query.SelectItemTest
+org.apache.metamodel.query.builder.GroupedQueryBuilderImplTest
+org.apache.metamodel.query.builder.SyntaxExamplesTest
+org.apache.metamodel.query.builder.WhereBuilderImplTest
+org.apache.metamodel.query.parser.QueryParserTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/7 b/framework/projects/MetaModel_core/relevant_tests/7
new file mode 100644
index 000000000..9250bbd13
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/7
@@ -0,0 +1,32 @@
+org.apache.metamodel.CompositeDataContextTest
+org.apache.metamodel.MetaModelHelperTest
+org.apache.metamodel.QueryPostprocessDataContextTest
+org.apache.metamodel.convert.ConvertedDataSetInterceptorTest
+org.apache.metamodel.convert.ConvertedRowInsertionInterceptorTest
+org.apache.metamodel.convert.ConvertersTest
+org.apache.metamodel.create.AbstractCreateTableBuilderTest
+org.apache.metamodel.data.RowTest
+org.apache.metamodel.delete.AbstractRowDeletionCallbackTest
+org.apache.metamodel.intercept.InterceptableDataContextTest
+org.apache.metamodel.intercept.InterceptorListTest
+org.apache.metamodel.intercept.InterceptorsTest
+org.apache.metamodel.query.DefaultCompiledQueryTest
+org.apache.metamodel.query.FilterItemTest
+org.apache.metamodel.query.FirstAggregateFunctionTest
+org.apache.metamodel.query.FromClauseTest
+org.apache.metamodel.query.FromItemTest
+org.apache.metamodel.query.LastAggregateFunctionTest
+org.apache.metamodel.query.QueryTest
+org.apache.metamodel.query.RandomAggregateFunctionTest
+org.apache.metamodel.query.SelectItemTest
+org.apache.metamodel.query.builder.SyntaxExamplesTest
+org.apache.metamodel.query.builder.WhereBuilderImplTest
+org.apache.metamodel.query.parser.QueryParserTest
+org.apache.metamodel.schema.ColumnTypeImplTest
+org.apache.metamodel.schema.DataTypeTest
+org.apache.metamodel.schema.ImmutableSchemaTest
+org.apache.metamodel.schema.MutableColumnTest
+org.apache.metamodel.schema.MutableTableTest
+org.apache.metamodel.schema.SchemaModelTest
+org.apache.metamodel.util.FormatHelperTest
+org.apache.metamodel.util.SimpleTableDefParserTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/8 b/framework/projects/MetaModel_core/relevant_tests/8
new file mode 100644
index 000000000..e8f9292e2
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/8
@@ -0,0 +1,2 @@
+org.apache.metamodel.query.FilterItemTest
+org.apache.metamodel.util.WildcardPatternTest
diff --git a/framework/projects/MetaModel_core/relevant_tests/9 b/framework/projects/MetaModel_core/relevant_tests/9
new file mode 100644
index 000000000..f169adce5
--- /dev/null
+++ b/framework/projects/MetaModel_core/relevant_tests/9
@@ -0,0 +1,9 @@
+org.apache.metamodel.QueryPostprocessDataContextTest
+org.apache.metamodel.delete.AbstractRowDeletionCallbackTest
+org.apache.metamodel.query.DefaultCompiledQueryTest
+org.apache.metamodel.query.FilterItemTest
+org.apache.metamodel.query.QueryTest
+org.apache.metamodel.query.builder.WhereBuilderImplTest
+org.apache.metamodel.query.parser.QueryParserTest
+org.apache.metamodel.util.FormatHelperTest
+org.apache.metamodel.util.LegacyDeserializationObjectInputStreamTest
diff --git a/framework/projects/Collections/trigger_tests/19 b/framework/projects/MetaModel_core/trigger_tests/1
similarity index 84%
rename from framework/projects/Collections/trigger_tests/19
rename to framework/projects/MetaModel_core/trigger_tests/1
index 7d178ccc5..63b665b3e 100755
--- a/framework/projects/Collections/trigger_tests/19
+++ b/framework/projects/MetaModel_core/trigger_tests/1
@@ -1,22 +1,20 @@
---- org.apache.commons.collections.list.SetUniqueListTest::testSetCollections444
+--- org.apache.metamodel.create.AbstractCreateTableBuilderTest::testLike
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework.Assert.assertTrue(Assert.java:31)
at junit.framework.TestCase.assertTrue(TestCase.java:201)
- at org.apache.commons.collections.list.SetUniqueListTest.testSetCollections444(SetUniqueListTest.java:615)
+ at org.apache.metamodel.create.AbstractCreateTableBuilderTest.testLike(AbstractCreateTableBuilderTest.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -26,7 +24,7 @@ junit.framework.AssertionFailedError
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/Collections/trigger_tests/18 b/framework/projects/MetaModel_core/trigger_tests/2
similarity index 84%
rename from framework/projects/Collections/trigger_tests/18
rename to framework/projects/MetaModel_core/trigger_tests/2
index fbe25368d..b9838569e 100755
--- a/framework/projects/Collections/trigger_tests/18
+++ b/framework/projects/MetaModel_core/trigger_tests/2
@@ -1,22 +1,20 @@
---- org.apache.commons.collections.set.ListOrderedSetTest::testRetainAllCollections426
+--- org.apache.metamodel.data.DefaultRowTest::testDeserializeBackwardsCompatible
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework.Assert.assertTrue(Assert.java:31)
at junit.framework.TestCase.assertTrue(TestCase.java:201)
- at org.apache.commons.collections.set.ListOrderedSetTest.testRetainAllCollections426(ListOrderedSetTest.java:226)
+ at org.apache.metamodel.data.DefaultRowTest.testDeserializeBackwardsCompatible(DefaultRowTest.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -26,7 +24,7 @@ junit.framework.AssertionFailedError
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/Collections/trigger_tests/20 b/framework/projects/MetaModel_core/trigger_tests/3
similarity index 82%
rename from framework/projects/Collections/trigger_tests/20
rename to framework/projects/MetaModel_core/trigger_tests/3
index de4d9596f..02dc633e2 100755
--- a/framework/projects/Collections/trigger_tests/20
+++ b/framework/projects/MetaModel_core/trigger_tests/3
@@ -1,21 +1,19 @@
---- org.apache.commons.collections.list.TreeListTest::testBugCollections447
-junit.framework.ComparisonFailure: expected:<[A]> but was:<[C]>
+--- org.apache.metamodel.QueryPostprocessDataContextTest::testSelectFromColumnsWithSameName
+junit.framework.ComparisonFailure: expected: but was:
at junit.framework.Assert.assertEquals(Assert.java:100)
at junit.framework.Assert.assertEquals(Assert.java:107)
at junit.framework.TestCase.assertEquals(TestCase.java:269)
- at org.apache.commons.collections.list.TreeListTest.testBugCollections447(TreeListTest.java:268)
+ at org.apache.metamodel.QueryPostprocessDataContextTest.testSelectFromColumnsWithSameName(QueryPostprocessDataContextTest.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -25,7 +23,7 @@ junit.framework.ComparisonFailure: expected:<[A]> but was:<[C]>
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/Collections/trigger_tests/11 b/framework/projects/MetaModel_core/trigger_tests/4
similarity index 69%
rename from framework/projects/Collections/trigger_tests/11
rename to framework/projects/MetaModel_core/trigger_tests/4
index 8eb714b56..4d4ca2160 100755
--- a/framework/projects/Collections/trigger_tests/11
+++ b/framework/projects/MetaModel_core/trigger_tests/4
@@ -1,23 +1,22 @@
---- org.apache.commons.collections.keyvalue.TestMultiKey::testEqualsAfterSerialization
-junit.framework.AssertionFailedError: expected:<2> but was:
- at junit.framework.Assert.fail(Assert.java:57)
- at junit.framework.Assert.failNotEquals(Assert.java:329)
- at junit.framework.Assert.assertEquals(Assert.java:78)
- at junit.framework.Assert.assertEquals(Assert.java:86)
- at junit.framework.TestCase.assertEquals(TestCase.java:253)
- at org.apache.commons.collections.keyvalue.TestMultiKey.testEqualsAfterSerialization(TestMultiKey.java:269)
+--- org.apache.metamodel.query.parser.QueryParserTest::testSelectEmptySpacesBeforeAs
+org.apache.metamodel.query.parser.QueryParserException: Not capable of parsing SELECT token: tbl.foo
+ at org.apache.metamodel.query.parser.SelectItemParser.parse(SelectItemParser.java:71)
+ at org.apache.metamodel.query.parser.QueryPartParser.parseItem(QueryPartParser.java:122)
+ at org.apache.metamodel.query.parser.QueryPartParser.parse(QueryPartParser.java:93)
+ at org.apache.metamodel.query.parser.QueryParser.parseSelectClause(QueryParser.java:160)
+ at org.apache.metamodel.query.parser.QueryParser.parse(QueryParser.java:95)
+ at org.apache.metamodel.MetaModelHelper.parseQuery(MetaModelHelper.java:775)
+ at org.apache.metamodel.query.parser.QueryParserTest.testSelectEmptySpacesBeforeAs(QueryParserTest.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -27,7 +26,7 @@ junit.framework.AssertionFailedError: expected:<2> but was:
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/MetaModel_core/trigger_tests/5 b/framework/projects/MetaModel_core/trigger_tests/5
new file mode 100755
index 000000000..5ad38e3df
--- /dev/null
+++ b/framework/projects/MetaModel_core/trigger_tests/5
@@ -0,0 +1,38 @@
+--- org.apache.metamodel.QueryPostprocessDataContextTest::testQueryMaxRows0
+java.lang.IllegalArgumentException: Max rows cannot be zero
+ at org.apache.metamodel.query.Query.setMaxRows(Query.java:524)
+ at org.apache.metamodel.query.builder.GroupedQueryBuilderImpl.limit(GroupedQueryBuilderImpl.java:300)
+ at org.apache.metamodel.query.builder.GroupedQueryBuilderCallback.limit(GroupedQueryBuilderCallback.java:51)
+ at org.apache.metamodel.QueryPostprocessDataContextTest.testQueryMaxRows0(QueryPostprocessDataContextTest.java:65)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:498)
+ at junit.framework.TestCase.runTest(TestCase.java:176)
+ at junit.framework.TestCase.runBare(TestCase.java:141)
+ at junit.framework.TestResult$1.protect(TestResult.java:122)
+ at junit.framework.TestResult.runProtected(TestResult.java:142)
+ at junit.framework.TestResult.run(TestResult.java:125)
+ at junit.framework.TestCase.run(TestCase.java:129)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1972)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute1(JUnitTask.java:824)
+ at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:2277)
+ at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
+ at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:498)
+ at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
+ at org.apache.tools.ant.Task.perform(Task.java:348)
+ at org.apache.tools.ant.Target.execute(Target.java:392)
+ at org.apache.tools.ant.Target.performTasks(Target.java:413)
+ at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
+ at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
+ at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
+ at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
+ at org.apache.tools.ant.Main.runBuild(Main.java:811)
+ at org.apache.tools.ant.Main.startAnt(Main.java:217)
+ at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
+ at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
diff --git a/framework/projects/Collections/trigger_tests/2 b/framework/projects/MetaModel_core/trigger_tests/6
similarity index 82%
rename from framework/projects/Collections/trigger_tests/2
rename to framework/projects/MetaModel_core/trigger_tests/6
index b3990a616..fa66a8198 100755
--- a/framework/projects/Collections/trigger_tests/2
+++ b/framework/projects/MetaModel_core/trigger_tests/6
@@ -1,21 +1,19 @@
---- org.apache.commons.collections.TestExtendedProperties::testInclude
-junit.framework.ComparisonFailure: expected: but was:
+--- org.apache.metamodel.query.parser.QueryParserTest::testQueryWithParenthesisAnd
+junit.framework.ComparisonFailure: expected:<... FROM sch.tbl WHERE [tbl.foo = '1' AND tbl.foo = '2']> but was:<... FROM sch.tbl WHERE [foo= 1 AND foo=2]>
at junit.framework.Assert.assertEquals(Assert.java:100)
at junit.framework.Assert.assertEquals(Assert.java:107)
at junit.framework.TestCase.assertEquals(TestCase.java:269)
- at org.apache.commons.collections.TestExtendedProperties.testInclude(TestExtendedProperties.java:325)
+ at org.apache.metamodel.query.parser.QueryParserTest.testQueryWithParenthesisAnd(QueryParserTest.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -25,7 +23,7 @@ junit.framework.ComparisonFailure: expected: but was:
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/Collections/trigger_tests/6 b/framework/projects/MetaModel_core/trigger_tests/7
similarity index 83%
rename from framework/projects/Collections/trigger_tests/6
rename to framework/projects/MetaModel_core/trigger_tests/7
index 68aa3c9ec..65cf8cc07 100755
--- a/framework/projects/Collections/trigger_tests/6
+++ b/framework/projects/MetaModel_core/trigger_tests/7
@@ -1,23 +1,21 @@
---- org.apache.commons.collections.map.TestFlat3Map::testCollections261
-junit.framework.AssertionFailedError: expected:<1> but was:<0>
+--- org.apache.metamodel.schema.ColumnTypeImplTest::testConvertColumnTypeFromJavaClass
+junit.framework.AssertionFailedError: expected: but was:
at junit.framework.Assert.fail(Assert.java:57)
at junit.framework.Assert.failNotEquals(Assert.java:329)
at junit.framework.Assert.assertEquals(Assert.java:78)
at junit.framework.Assert.assertEquals(Assert.java:86)
at junit.framework.TestCase.assertEquals(TestCase.java:253)
- at org.apache.commons.collections.map.TestFlat3Map.testCollections261(TestFlat3Map.java:398)
+ at org.apache.metamodel.schema.ColumnTypeImplTest.testConvertColumnTypeFromJavaClass(ColumnTypeImplTest.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -27,7 +25,7 @@ junit.framework.AssertionFailedError: expected:<1> but was:<0>
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/Collections/trigger_tests/16 b/framework/projects/MetaModel_core/trigger_tests/8
similarity index 85%
rename from framework/projects/Collections/trigger_tests/16
rename to framework/projects/MetaModel_core/trigger_tests/8
index 0dace705a..12ddfb35b 100755
--- a/framework/projects/Collections/trigger_tests/16
+++ b/framework/projects/MetaModel_core/trigger_tests/8
@@ -1,23 +1,21 @@
---- org.apache.commons.collections.list.TestSetUniqueList::testCollections307
+--- org.apache.metamodel.util.WildcardPatternTest::testMatches
junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework.Assert.assertFalse(Assert.java:39)
at junit.framework.Assert.assertFalse(Assert.java:47)
at junit.framework.TestCase.assertFalse(TestCase.java:219)
- at org.apache.commons.collections.list.TestSetUniqueList.testCollections307(TestSetUniqueList.java:487)
+ at org.apache.metamodel.util.WildcardPatternTest.testMatches(WildcardPatternTest.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -27,7 +25,7 @@ junit.framework.AssertionFailedError
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/Collections/trigger_tests/21 b/framework/projects/MetaModel_core/trigger_tests/9
similarity index 77%
rename from framework/projects/Collections/trigger_tests/21
rename to framework/projects/MetaModel_core/trigger_tests/9
index b9d0f742d..8f2c21a2b 100755
--- a/framework/projects/Collections/trigger_tests/21
+++ b/framework/projects/MetaModel_core/trigger_tests/9
@@ -1,20 +1,17 @@
---- org.apache.commons.collections4.list.SetUniqueListTest::testSubListIsUnmodifiable
-junit.framework.AssertionFailedError: subList should be unmodifiable
- at junit.framework.Assert.fail(Assert.java:57)
- at junit.framework.TestCase.fail(TestCase.java:227)
- at org.apache.commons.collections4.list.SetUniqueListTest.testSubListIsUnmodifiable(SetUniqueListTest.java:470)
+--- org.apache.metamodel.util.FormatHelperTest::testParseTimeSqlValue
+java.lang.IllegalArgumentException: String value 'DATE '2011-07-24'' not parseable as a DATE
+ at org.apache.metamodel.util.FormatHelper.parseSqlTime(FormatHelper.java:180)
+ at org.apache.metamodel.util.FormatHelperTest.testParseTimeSqlValue(FormatHelperTest.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
- at junit.framework.TestSuite.runTest(TestSuite.java:255)
- at junit.framework.TestSuite.run(TestSuite.java:250)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1484)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:872)
@@ -24,7 +21,7 @@ junit.framework.AssertionFailedError: subList should be unmodifiable
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:606)
+ at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:392)
diff --git a/framework/projects/MetaModel_csv/MetaModel_csv.build.xml b/framework/projects/MetaModel_csv/MetaModel_csv.build.xml
new file mode 100755
index 000000000..a1e7c14b5
--- /dev/null
+++ b/framework/projects/MetaModel_csv/MetaModel_csv.build.xml
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/framework/projects/MetaModel_csv/active-bugs.csv b/framework/projects/MetaModel_csv/active-bugs.csv
new file mode 100644
index 000000000..f8e7c4f8a
--- /dev/null
+++ b/framework/projects/MetaModel_csv/active-bugs.csv
@@ -0,0 +1,2 @@
+bug.id,revision.id.buggy,revision.id.fixed,report.id,report.url
+1,8a17fbfbb4c37c702fd362a25bc401268a08e3f1,9c8f0b9d100853431f20b5761b4364c04276452b,METAMODEL-1113,https://issues.apache.org/jira/browse/METAMODEL-1113
diff --git a/framework/projects/MetaModel_csv/build.xml.patch b/framework/projects/MetaModel_csv/build.xml.patch
new file mode 100755
index 000000000..3c3975292
--- /dev/null
+++ b/framework/projects/MetaModel_csv/build.xml.patch
@@ -0,0 +1,12 @@
+diff --git a/build.xml b/build.xml
+index f8de60b..3583d72 100644
+--- a/build.xml
++++ b/build.xml
+@@ -20,4 +20,7 @@
+
+
+
++
++
++
+