You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/11/27 08:11:44 UTC

[01/39] cayenne git commit: Implement DBCleaner

Repository: cayenne
Updated Branches:
  refs/heads/CAY-1946_1 67ac9ec0e -> 571a1370a


http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java
new file mode 100644
index 0000000..5daa3a7
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java
@@ -0,0 +1,79 @@
+/*****************************************************************
+ *   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.cayenne.unit.di.server;
+
+public class CayenneProjects {
+
+    // known runtimes... unit tests may reuse these with @UseServerRuntime
+    // annotation or
+    // can define their own on the fly (TODO: how would that work with the
+    // global schema
+    // setup?)
+    public static final String BINARY_PK_PROJECT = "cayenne-binary-pk.xml";
+    public static final String COMPOUND_PROJECT = "cayenne-compound.xml";
+    public static final String DATE_TIME_PROJECT = "cayenne-date-time.xml";
+    public static final String DELETE_RULES_PROJECT = "cayenne-delete-rules.xml";
+    public static final String EMBEDDABLE_PROJECT = "cayenne-embeddable.xml";
+    public static final String EMPTY_PROJECT = "cayenne-empty.xml";
+    public static final String ENUM_PROJECT = "cayenne-enum.xml";
+    public static final String EXTENDED_TYPE_PROJECT = "cayenne-extended-type.xml";
+    public static final String GENERATED_PROJECT = "cayenne-generated.xml";
+    public static final String GENERIC_PROJECT = "cayenne-generic.xml";
+    public static final String INHERITANCE_PROJECT = "cayenne-inheritance.xml";
+    public static final String INHERITANCE_SINGLE_TABLE1_PROJECT = "cayenne-inheritance-single-table1.xml";
+    public static final String INHERITANCE_VERTICAL_PROJECT = "cayenne-inheritance-vertical.xml";
+    public static final String LIFECYCLES_PROJECT = "cayenne-lifecycles.xml";
+    public static final String LOB_PROJECT = "cayenne-lob.xml";
+    public static final String LOCKING_PROJECT = "cayenne-locking.xml";
+    public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml";
+    public static final String MEANINGFUL_PK_PROJECT = "cayenne-meaningful-pk.xml";
+    public static final String MISC_TYPES_PROJECT = "cayenne-misc-types.xml";
+    public static final String MIXED_PERSISTENCE_STRATEGY_PROJECT = "cayenne-mixed-persistence-strategy.xml";
+    public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml";
+    public static final String MULTINODE_PROJECT = "cayenne-multinode.xml";
+    public static final String NO_PK_PROJECT = "cayenne-no-pk.xml";
+    public static final String NUMERIC_TYPES_PROJECT = "cayenne-numeric-types.xml";
+    public static final String ONEWAY_PROJECT = "cayenne-oneway-rels.xml";
+    public static final String PEOPLE_PROJECT = "cayenne-people.xml";
+    public static final String PERSISTENT_PROJECT = "cayenne-persistent.xml";
+    public static final String PRIMITIVE_PROJECT = "cayenne-primitive.xml";
+    public static final String QUALIFIED_PROJECT = "cayenne-qualified.xml";
+    public static final String QUOTED_IDENTIFIERS_PROJECT = "cayenne-quoted-identifiers.xml";
+    public static final String REFLEXIVE_PROJECT = "cayenne-reflexive.xml";
+    public static final String RELATIONSHIPS_PROJECT = "cayenne-relationships.xml";
+    public static final String RELATIONSHIPS_ACTIVITY_PROJECT = "cayenne-relationships-activity.xml";
+    public static final String RELATIONSHIPS_CHILD_MASTER_PROJECT = "cayenne-relationships-child-master.xml";
+    public static final String RELATIONSHIPS_CLOB_PROJECT = "cayenne-relationships-clob.xml";
+    public static final String RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT = "cayenne-relationships-collection-to-many.xml";
+    public static final String RELATIONSHIPS_DELETE_RULES_PROJECT = "cayenne-relationships-delete-rules.xml";
+    public static final String RELATIONSHIPS_FLATTENED_PROJECT = "cayenne-relationships-flattened.xml";
+    public static final String RELATIONSHIPS_SET_TO_MANY_PROJECT = "cayenne-relationships-set-to-many.xml";
+    public static final String RELATIONSHIPS_TO_MANY_FK_PROJECT = "cayenne-relationships-to-many-fk.xml";
+    public static final String RELATIONSHIPS_TO_ONE_FK_PROJECT = "cayenne-relationships-to-one-fk.xml";
+    public static final String RETURN_TYPES_PROJECT = "cayenne-return-types.xml";
+    public static final String SOFT_DELETE_PROJECT = "cayenne-soft-delete.xml";
+    public static final String SUS_PROJECT = "cayenne-sus.xml";
+    public static final String TABLE_PRIMITIVES_PROJECT = "cayenne-table-primitives.xml";
+    public static final String TESTMAP_PROJECT = "cayenne-testmap.xml";
+    public static final String THINGS_PROJECT = "cayenne-things.xml";
+    public static final String TOONE_PROJECT = "cayenne-toone.xml";
+    public static final String UUID_PROJECT = "cayenne-uuid.xml";
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
new file mode 100644
index 0000000..d44ac87
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
@@ -0,0 +1,256 @@
+/*****************************************************************
+ *   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.cayenne.unit.di.server;
+
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.UnitDbAdapter;
+
+import java.sql.SQLException;
+
+public class DBCleaner {
+
+    private FlavoredDBHelper dbHelper;
+    private String location;
+
+    @Inject
+    private UnitDbAdapter accessStackAdapter;
+
+    public DBCleaner(FlavoredDBHelper dbHelper, String location) {
+        this.dbHelper = dbHelper;
+        this.location = location;
+    }
+
+    public void clean() throws SQLException {
+        if (location.equals(CayenneProjects.TESTMAP_PROJECT)) {
+            dbHelper.deleteAll("ARTGROUP");
+            dbHelper.deleteAll("ARTIST");
+            dbHelper.deleteAll("ARTIST_CT");
+            dbHelper.deleteAll("ARTIST_EXHIBIT");
+            dbHelper.deleteAll("ARTIST_GROUP");
+            dbHelper.deleteAll("EXHIBIT");
+            dbHelper.deleteAll("GALLERY");
+            dbHelper.deleteAll("GENERATED_COLUMN");
+            dbHelper.deleteAll("NULL_TEST");
+            dbHelper.deleteAll("PAINTING");
+            dbHelper.deleteAll("PAINTING1");
+            dbHelper.deleteAll("PAINTING_INFO");
+        } else if (location.equals(CayenneProjects.MULTI_TIER_PROJECT)) {
+            dbHelper.deleteAll("MT_JOIN45");
+            dbHelper.deleteAll("MT_TABLE1");
+            dbHelper.deleteAll("MT_TABLE2");
+            dbHelper.deleteAll("MT_TABLE3");
+            dbHelper.deleteAll("MT_TABLE4");
+            dbHelper.deleteAll("MT_TABLE5");
+        } else if (location.equals(CayenneProjects.COMPOUND_PROJECT)) {
+            dbHelper.deleteAll("CHAR_FK_TEST");
+            dbHelper.deleteAll("CHAR_PK_TEST");
+            dbHelper.deleteAll("COMPOUND_FK_TEST");
+            dbHelper.deleteAll("COMPOUND_PK_TEST");
+        } else if (location.equals(CayenneProjects.PEOPLE_PROJECT)) {
+            dbHelper.deleteAll("ADDRESS");
+            dbHelper.deleteAll("CLIENT_COMPANY");
+            dbHelper.deleteAll("DEPARTMENT");
+            dbHelper.deleteAll("PERSON");
+            dbHelper.deleteAll("PERSON_NOTES");
+        } else if(location.equals(CayenneProjects.BINARY_PK_PROJECT)) {
+            dbHelper.deleteAll("BINARY_PK_TEST1");
+            dbHelper.deleteAll("BINARY_PK_TEST2");
+        } else if (location.equals(CayenneProjects.DATE_TIME_PROJECT)) {
+            dbHelper.deleteAll("CALENDAR_TEST");
+            dbHelper.deleteAll("DATE_TEST");
+        } else if (location.equals(CayenneProjects.DELETE_RULES_PROJECT)) {
+            dbHelper.deleteAll("DELETE_CASCADE");
+            dbHelper.deleteAll("DELETE_DENY");
+            dbHelper.deleteAll("DELETE_NULLIFY");
+            dbHelper.deleteAll("DELETE_RULE");
+        } else if (location.equals(CayenneProjects.EMBEDDABLE_PROJECT)) {
+            dbHelper.deleteAll("EMBED_ENTITY1");
+        } else if (location.equals(CayenneProjects.EMPTY_PROJECT)) {
+            return;
+        } else if (location.equals(CayenneProjects.ENUM_PROJECT)) {
+            dbHelper.deleteAll("ENUM_ENTITY");
+        } else if (location.equals(CayenneProjects.EXTENDED_TYPE_PROJECT)) {
+            dbHelper.deleteAll("EXTENDED_TYPE_TEST");
+        } else if (location.equals(CayenneProjects.GENERATED_PROJECT)) {
+            dbHelper.deleteAll("GENERATED_COLUMN_COMP_KEY");
+            dbHelper.deleteAll("GENERATED_COLUMN_COMP_M");
+            dbHelper.deleteAll("GENERATED_COLUMN_DEP");
+            dbHelper.deleteAll("GENERATED_COLUMN_TEST");
+            dbHelper.deleteAll("GENERATED_COLUMN_TEST2");
+            dbHelper.deleteAll("GENERATED_F1");
+            dbHelper.deleteAll("GENERATED_F2");
+            dbHelper.deleteAll("GENERATED_JOIN");
+        } else if (location.equals(CayenneProjects.GENERIC_PROJECT)) {
+            dbHelper.deleteAll("GENERIC1");
+            dbHelper.deleteAll("GENERIC2");
+        } else if (location.equals(CayenneProjects.INHERITANCE_PROJECT)) {
+            dbHelper.deleteAll("BASE_ENTITY");
+            dbHelper.deleteAll("DIRECT_TO_SUB_ENTITY");
+            dbHelper.deleteAll("RELATED_ENTITY");
+        } else if (location.equals(CayenneProjects.INHERITANCE_SINGLE_TABLE1_PROJECT)) {
+            dbHelper.deleteAll("GROUP_MEMBERS");
+            dbHelper.deleteAll("GROUP_PROPERTIES");
+            dbHelper.deleteAll("ROLES");
+            dbHelper.deleteAll("USER_PROPERTIES");
+        } else if (location.equals(CayenneProjects.INHERITANCE_VERTICAL_PROJECT)) {
+            dbHelper.deleteAll("IV1_ROOT");
+            dbHelper.deleteAll("IV1_SUB1");
+            dbHelper.deleteAll("IV2_ROOT");
+            dbHelper.deleteAll("IV2_SUB1");
+            dbHelper.deleteAll("IV2_X");
+            dbHelper.deleteAll("IV_ROOT");
+            dbHelper.deleteAll("IV_SUB1");
+            dbHelper.deleteAll("IV_SUB1_SUB1");
+            dbHelper.deleteAll("IV_SUB2");
+        } else if (location.equals(CayenneProjects.LIFECYCLES_PROJECT)) {
+            dbHelper.deleteAll("LIFECYCLES");
+        } else if (location.equals(CayenneProjects.LOB_PROJECT)) {
+            if (accessStackAdapter.supportsLobs()) {
+                dbHelper.deleteAll("BLOB_TEST");
+                dbHelper.deleteAll("CLOB_TEST");
+            }
+            dbHelper.deleteAll("CLOB_TEST_RELATION");
+            dbHelper.deleteAll("TEST");
+        } else if (location.equals(CayenneProjects.LOCKING_PROJECT)) {
+            dbHelper.deleteAll("LOCKING_HELPER");
+            dbHelper.deleteAll("REL_LOCKING_TEST");
+            dbHelper.deleteAll("SIMPLE_LOCKING_TEST");
+        } else if (location.equals(CayenneProjects.MAP_TO_MANY_PROJECT)) {
+            dbHelper.deleteAll("ID_MAP_TO_MANY");
+            dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
+            dbHelper.deleteAll("MAP_TO_MANY");
+            dbHelper.deleteAll("MAP_TO_MANY_TARGET");
+        } else if (location.equals(CayenneProjects.MEANINGFUL_PK_PROJECT)) {
+            dbHelper.deleteAll("MEANINGFUL_PK");
+            dbHelper.deleteAll("MEANINGFUL_PK_DEP");
+            dbHelper.deleteAll("MEANINGFUL_PK_TEST1");
+        } else if (location.equals(CayenneProjects.MISC_TYPES_PROJECT)) {
+            dbHelper.deleteAll("ARRAYS_ENTITY");
+            dbHelper.deleteAll("CHARACTER_ENTITY");
+            if(accessStackAdapter.supportsLobs()) {
+                dbHelper.deleteAll("SERIALIZABLE_ENTITY");
+            }
+        } else if (location.equals(CayenneProjects.MIXED_PERSISTENCE_STRATEGY_PROJECT)) {
+            dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY");
+            dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY2");
+        } else if (location.equals(CayenneProjects.MULTINODE_PROJECT)) {
+            dbHelper.deleteAll("CROSSDB_M1E1");
+            dbHelper.deleteAll("CROSSDB_M2E1");
+            dbHelper.deleteAll("CROSSDB_M2E2");
+        } else if (location.equals(CayenneProjects.NO_PK_PROJECT)) {
+            dbHelper.deleteAll("NO_PK_TEST");
+        } else if (location.equals(CayenneProjects.NUMERIC_TYPES_PROJECT)) {
+            dbHelper.deleteAll("BIGDECIMAL_ENTITY");
+            dbHelper.deleteAll("BIGINTEGER_ENTITY");
+            dbHelper.deleteAll("BIT_TEST");
+            dbHelper.deleteAll("BOOLEAN_TEST");
+            dbHelper.deleteAll("DECIMAL_PK_TST");
+            dbHelper.deleteAll("FLOAT_TEST");
+            dbHelper.deleteAll("LONG_ENTITY");
+            dbHelper.deleteAll("SMALLINT_TEST");
+            dbHelper.deleteAll("TINYINT_TEST");
+        } else if (location.equals(CayenneProjects.ONEWAY_PROJECT)) {
+            dbHelper.deleteAll("oneway_table1");
+            dbHelper.deleteAll("oneway_table2");
+            dbHelper.deleteAll("oneway_table3");
+            dbHelper.deleteAll("oneway_table4");
+        } else if (location.equals(CayenneProjects.PERSISTENT_PROJECT)) {
+            dbHelper.deleteAll("CONTINENT");
+            dbHelper.deleteAll("COUNTRY");
+        } else if (location.equals(CayenneProjects.PRIMITIVE_PROJECT)) {
+            dbHelper.deleteAll("PRIMITIVES_TEST");
+        } else if (location.equals(CayenneProjects.QUALIFIED_PROJECT)) {
+            dbHelper.deleteAll("TEST_QUALIFIED1");
+            dbHelper.deleteAll("TEST_QUALIFIED2");
+        } else if (location.equals(CayenneProjects.QUOTED_IDENTIFIERS_PROJECT)) {
+            dbHelper.deleteAll("QUOTED_ADDRESS");
+            dbHelper.deleteAll("quote Person");
+        } else if (location.equals(CayenneProjects.REFLEXIVE_PROJECT)) {
+            dbHelper.deleteAll("REFLEXIVE");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_PROJECT)) {
+            dbHelper.deleteAll("FK_OF_DIFFERENT_TYPE");
+            dbHelper.deleteAll("MEANINGFUL_FK");
+            dbHelper.deleteAll("REFLEXIVE_AND_TO_ONE");
+            dbHelper.deleteAll("RELATIONSHIP_HELPER");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_ACTIVITY_PROJECT)) {
+            dbHelper.deleteAll("ACTIVITY");
+            dbHelper.deleteAll("RESULT");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_CHILD_MASTER_PROJECT)) {
+            dbHelper.deleteAll("CHILD");
+            dbHelper.deleteAll("MASTER");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_CLOB_PROJECT)) {
+            dbHelper.deleteAll("CLOB_DETAIL");
+            dbHelper.deleteAll("CLOB_MASTER");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT)) {
+            dbHelper.deleteAll("COLLECTION_TO_MANY");
+            dbHelper.deleteAll("COLLECTION_TO_MANY_TARGET");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_DELETE_RULES_PROJECT)) {
+            dbHelper.deleteAll("DELETE_RULE_FLATA");
+            dbHelper.deleteAll("DELETE_RULE_FLATB");
+            dbHelper.deleteAll("DELETE_RULE_JOIN");
+            dbHelper.deleteAll("DELETE_RULE_TEST1");
+            dbHelper.deleteAll("DELETE_RULE_TEST2");
+            dbHelper.deleteAll("DELETE_RULE_TEST3");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)) {
+            dbHelper.deleteAll("COMPLEX_JOIN");
+            dbHelper.deleteAll("FLATTENED_CIRCULAR");
+            dbHelper.deleteAll("FLATTENED_CIRCULAR_JOIN");
+            dbHelper.deleteAll("FLATTENED_TEST_1");
+            dbHelper.deleteAll("FLATTENED_TEST_2");
+            dbHelper.deleteAll("FLATTENED_TEST_3");
+            dbHelper.deleteAll("FLATTENED_TEST_4");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_SET_TO_MANY_PROJECT)) {
+            dbHelper.deleteAll("SET_TO_MANY");
+            dbHelper.deleteAll("SET_TO_MANY_TARGET");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_TO_MANY_FK_PROJECT)) {
+            dbHelper.deleteAll("TO_MANY_FKDEP");
+            dbHelper.deleteAll("TO_MANY_FKROOT");
+            dbHelper.deleteAll("TO_MANY_ROOT2");
+        } else if (location.equals(CayenneProjects.RELATIONSHIPS_TO_ONE_FK_PROJECT)) {
+            dbHelper.deleteAll("TO_ONE_FK1");
+            dbHelper.deleteAll("TO_ONE_FK2");
+        } else if (location.equals(CayenneProjects.RETURN_TYPES_PROJECT)) {
+            if (accessStackAdapter.supportsLobs()) {
+                dbHelper.deleteAll("TYPES_MAPPING_LOBS_TEST1");
+                dbHelper.deleteAll("TYPES_MAPPING_TEST2");
+            }
+            dbHelper.deleteAll("TYPES_MAPPING_TEST1");
+        } else if (location.equals(CayenneProjects.SOFT_DELETE_PROJECT)) {
+            dbHelper.deleteAll("SOFT_DELETE");
+        } else if (location.equals(CayenneProjects.SUS_PROJECT)) {
+            return;
+        } else if (location.equals(CayenneProjects.TABLE_PRIMITIVES_PROJECT)) {
+            dbHelper.deleteAll("TABLE_PRIMITIVES");
+        } else if (location.equals(CayenneProjects.THINGS_PROJECT)) {
+            dbHelper.deleteAll("BAG");
+            dbHelper.deleteAll("BALL");
+            dbHelper.deleteAll("BOX");
+            dbHelper.deleteAll("BOX_INFO");
+            dbHelper.deleteAll("BOX_THING");
+            dbHelper.deleteAll("THING");
+        } else if (location.equals(CayenneProjects.TOONE_PROJECT)) {
+            dbHelper.deleteAll("TOONE_DEP");
+            dbHelper.deleteAll("TOONE_MASTER");
+        } else if (location.equals(CayenneProjects.UUID_PROJECT)) {
+            dbHelper.deleteAll("UUID_PK_ENTITY");
+            dbHelper.deleteAll("UUID_TEST");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
new file mode 100644
index 0000000..86b5e86
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
@@ -0,0 +1,40 @@
+/*****************************************************************
+ *   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.cayenne.unit.di.server;
+
+import org.apache.cayenne.ConfigurationException;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Provider;
+import org.apache.cayenne.test.jdbc.DBHelper;
+
+public class DBCleanerProvider implements Provider<DBCleaner> {
+
+    @Inject
+    private DBHelper dbHelper;
+
+    @Inject
+    protected Provider<ServerCaseProperties> propertiesProvider;
+
+    @Override
+    public DBCleaner get() throws ConfigurationException {
+        return new DBCleaner((FlavoredDBHelper) dbHelper, propertiesProvider.get().getConfigurationLocation());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
index 1b194ec..a497e0d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
@@ -70,7 +70,7 @@ public class SchemaBuilder {
 
     private static String[] MAPS_REQUIRING_SCHEMA_SETUP = {"testmap.map.xml", "compound.map.xml", "misc-types.map.xml", "things.map.xml", "numeric-types.map.xml", "binary-pk.map.xml", "no-pk.map.xml",
             "lob.map.xml", "date-time.map.xml", "enum.map.xml", "extended-type.map.xml", "generated.map.xml", "mixed-persistence-strategy.map.xml", "people.map.xml", "primitive.map.xml", "inheritance.map.xml",
-            "locking.map.xml", "soft-delete.map.xml", "relationships.map.xml", "relationships-activity.map.xml", "relationships-delete-rules.map.xml",
+            "locking.map.xml", "soft-delete.map.xml", "empty.map.xml", "relationships.map.xml", "relationships-activity.map.xml", "relationships-delete-rules.map.xml",
             "relationships-collection-to-many.map.xml", "relationships-child-master.map.xml", "relationships-clob.map.xml",
             "relationships-flattened.map.xml", "relationships-set-to-many.map.xml", "relationships-to-many-fk.map.xml", "relationships-to-one-fk.map.xml", "return-types.map.xml", "uuid.map.xml",
             "multi-tier.map.xml", "persistent.map.xml", "reflexive.map.xml", "delete-rules.map.xml", "lifecycles.map.xml",

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
index 7ca8a79..d5b5871 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
@@ -19,62 +19,18 @@
 package org.apache.cayenne.unit.di.server;
 
 import org.apache.cayenne.di.DIBootstrap;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.di.spi.DefaultScope;
 import org.apache.cayenne.unit.di.DICase;
 
 public class ServerCase extends DICase {
 
-	// known runtimes... unit tests may reuse these with @UseServerRuntime
-	// annotation or
-	// can define their own on the fly (TODO: how would that work with the
-	// global schema
-	// setup?)
-	public static final String INHERITANCE_SINGLE_TABLE1_PROJECT = "cayenne-inheritance-single-table1.xml";
-	public static final String INHERITANCE_VERTICAL_PROJECT = "cayenne-inheritance-vertical.xml";
-	public static final String INHERITANCE_PROJECT = "cayenne-inheritance.xml";
-	public static final String LOCKING_PROJECT = "cayenne-locking.xml";
-	public static final String SOFT_DELETE_PROJECT = "cayenne-soft-delete.xml";
-	public static final String QUOTED_IDENTIFIERS_PROJECT = "cayenne-quoted-identifiers.xml";
-	public static final String PEOPLE_PROJECT = "cayenne-people.xml";
-	public static final String RELATIONSHIPS_PROJECT = "cayenne-relationships.xml";
-	public static final String RELATIONSHIPS_ACTIVITY_PROJECT = "cayenne-relationships-activity.xml";
-	public static final String RELATIONSHIPS_DELETE_RULES_PROJECT = "cayenne-relationships-delete-rules.xml";
-	public static final String RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT = "cayenne-relationships-collection-to-many.xml";
-	public static final String RELATIONSHIPS_CHILD_MASTER_PROJECT = "cayenne-relationships-child-master.xml";
-	public static final String RELATIONSHIPS_CLOB_PROJECT = "cayenne-relationships-clob.xml";
-	public static final String RELATIONSHIPS_FLATTENED_PROJECT = "cayenne-relationships-flattened.xml";
-	public static final String RELATIONSHIPS_SET_TO_MANY_PROJECT = "cayenne-relationships-set-to-many.xml";
-	public static final String RELATIONSHIPS_TO_MANY_FK_PROJECT = "cayenne-relationships-to-many-fk.xml";
-	public static final String RELATIONSHIPS_TO_ONE_FK_PROJECT = "cayenne-relationships-to-one-fk.xml";
-	public static final String MISC_TYPES_PROJECT = "cayenne-misc-types.xml";
-	public static final String THINGS_PROJECT = "cayenne-things.xml";
-	public static final String NUMERIC_TYPES_PROJECT = "cayenne-numeric-types.xml";
-	public static final String BINARY_PK_PROJECT = "cayenne-binary-pk.xml";
-	public static final String NO_PK_PROJECT = "cayenne-no-pk.xml";
-	public static final String LOB_PROJECT = "cayenne-lob.xml";
-	public static final String DATE_TIME_PROJECT = "cayenne-date-time.xml";
-	public static final String ENUM_PROJECT = "cayenne-enum.xml";
-	public static final String EXTENDED_TYPE_PROJECT = "cayenne-extended-type.xml";
-	public static final String GENERATED_PROJECT = "cayenne-generated.xml";
-	public static final String MEANINGFUL_PK_PROJECT = "cayenne-meaningful-pk.xml";
-	public static final String MIXED_PERSISTENCE_STRATEGY_PROJECT = "cayenne-mixed-persistence-strategy.xml";
-	public static final String PRIMITIVE_PROJECT = "cayenne-primitive.xml";
-	public static final String RETURN_TYPES_PROJECT = "cayenne-return-types.xml";
-	public static final String UUID_PROJECT = "cayenne-uuid.xml";
-	public static final String COMPOUND_PROJECT = "cayenne-compound.xml";
-	public static final String TESTMAP_PROJECT = "cayenne-testmap.xml";
-	public static final String EMBEDDABLE_PROJECT = "cayenne-embeddable.xml";
-	public static final String GENERIC_PROJECT = "cayenne-generic.xml";
-	public static final String QUALIFIED_PROJECT = "cayenne-qualified.xml";
-	public static final String MULTINODE_PROJECT = "cayenne-multinode.xml";
-	public static final String ONEWAY_PROJECT = "cayenne-oneway-rels.xml";
-	public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml";
-    public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml";
-	public static final String SUS_PROJECT = "cayenne-sus.xml";
-
 	private static final Injector injector;
 
+	@Inject
+	private DBCleaner dbCleaner;
+
 	static {
 		DefaultScope testScope = new DefaultScope();
 		injector = DIBootstrap.createInjector(new ServerCaseModule(testScope));
@@ -82,6 +38,11 @@ public class ServerCase extends DICase {
 	}
 
 	@Override
+	protected void setUpAfterInjection() throws Exception {
+		dbCleaner.clean();
+	}
+
+	@Override
 	protected Injector getUnitTestInjector() {
 		return injector;
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
index 65f622e..4bf0bbb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
@@ -18,9 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.unit.di.server;
 
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.access.DataNode;
@@ -102,6 +99,9 @@ import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestLifecycleManager;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
 
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
 public class ServerCaseModule implements Module {
 
     protected DefaultScope testScope;
@@ -229,5 +229,7 @@ public class ServerCaseModule implements Module {
 
         binder.bind(DBHelper.class).toProvider(FlavoredDBHelperProvider.class).in(
                 testScope);
+        binder.bind(DBCleaner.class).toProvider(DBCleanerProvider.class).in(
+                testScope);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
index 64b6bda..993828b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
@@ -28,7 +28,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ServerCaseSelfIT extends ServerCase {
 
     @Inject
@@ -44,7 +44,7 @@ public class ServerCaseSelfIT extends ServerCase {
     public void testSetup_TearDown_Runtime() throws Exception {
 
         assertNotNull(properties);
-        assertEquals(ServerCase.TESTMAP_PROJECT, properties.getConfigurationLocation());
+        assertEquals(CayenneProjects.TESTMAP_PROJECT, properties.getConfigurationLocation());
 
         ServerRuntime local = this.runtime;
         assertNotNull(local);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
index f4d8b3f..2877c3c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships_clob.ClobMaster;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertEquals;
 
 /**
  */
-@UseServerRuntime(ServerCase.RELATIONSHIPS_CLOB_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_CLOB_PROJECT)
 public class CAY_115IT extends ServerCase {
 
     @Inject
@@ -52,12 +54,9 @@ public class CAY_115IT extends ServerCase {
     
     protected TableHelper tClobMaster;
     protected TableHelper tClobDetail;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("CLOB_DETAIL");
-        dbHelper.deleteAll("CLOB_MASTER");
-        
+
+    @Before
+    public void testSetUp() throws Exception {
         tClobMaster = new TableHelper(dbHelper, "CLOB_MASTER");
         tClobMaster.setColumns("CLOB_MASTER_ID", "CLOB_COLUMN", "NAME");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
index 30d7d40..fb31bd2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
@@ -25,16 +25,16 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships.FkOfDifferentType;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
-import java.sql.Types;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT)
 public class CAY_191IT extends ServerCase {
     
     @Inject
@@ -45,14 +45,9 @@ public class CAY_191IT extends ServerCase {
     
     protected TableHelper tRelationshipHelper;
     protected TableHelper tFkOfDifferentType;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("FK_OF_DIFFERENT_TYPE");
-        dbHelper.update("REFLEXIVE_AND_TO_ONE").set("PARENT_ID", null, Types.INTEGER).execute();
-        dbHelper.deleteAll("REFLEXIVE_AND_TO_ONE");
-        dbHelper.deleteAll("RELATIONSHIP_HELPER");
-        
+
+    @Before
+    public void testSetUp() throws Exception {
         tRelationshipHelper = new TableHelper(dbHelper, "RELATIONSHIP_HELPER");
         tRelationshipHelper.setColumns("NAME", "RELATIONSHIP_HELPER_ID");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
index 2fca6b9..dcd6b6a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships.ReflexiveAndToOne;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -42,7 +44,7 @@ import static org.junit.Assert.assertSame;
  */
 // TODO: this is really a qualifier translator general test... need to
 // find an appropriate place in unit tests..
-@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT)
 public class CAY_194IT extends ServerCase {
 
     @Inject
@@ -51,8 +53,8 @@ public class CAY_194IT extends ServerCase {
     @Inject
     private DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         TableHelper tReflexive = new TableHelper(dbHelper, "REFLEXIVE_AND_TO_ONE");
         tReflexive.setColumns("REFLEXIVE_AND_TO_ONE_ID", "PARENT_ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java
index 91d2368..2e86640 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +35,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DeepMergeOperationIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
index bf95dab..4204412 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
@@ -28,6 +28,7 @@ import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -37,7 +38,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.PEOPLE_PROJECT)
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
 public class DeepMergeOperationInheritanceIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java
index 83c4f53..ec9b604 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.DeleteRule;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.merge.MergeCase;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class EntityMergeSupportIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
index b29f0ad..0f7ec48 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
@@ -33,15 +33,17 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ShallowMergeOperationIT extends ServerCase {
 
     @Inject
@@ -58,14 +60,8 @@ public class ShallowMergeOperationIT extends ServerCase {
 
     private TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java
index b8945fe..69461c8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java
@@ -30,8 +30,8 @@ import org.apache.cayenne.log.JdbcEventLogger;
 import org.apache.cayenne.query.CapsStrategy;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -55,7 +55,7 @@ import static org.junit.Assert.assertNull;
 /**
  * Tests BindDirective for passed null parameters and for not passed parameters
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class BindDirectiveIT extends ServerCase {
 
     @Inject
@@ -68,23 +68,11 @@ public class BindDirectiveIT extends ServerCase {
     private ObjectContext context;
 
     @Inject
-    private DBHelper dbHelper;
-
-    @Inject
     private JdbcEventLogger logger;
     
     @Inject
     private DataNode node;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testBindTimestamp() throws Exception {
         Map<String, Object> parameters = new HashMap<String, Object>();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
index 449e33f..1b5fdd0 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
@@ -28,8 +28,8 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.CapsStrategy;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -47,33 +47,18 @@ import static org.junit.Assert.assertNotNull;
  * Test for Result directive to check if we could use ResultDirective
  * optionally.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ResultDirectiveIT extends ServerCase {
 
 	@Inject
 	private ServerRuntime runtime;
 
 	@Inject
-	private DBHelper dbHelper;
-
-	@Inject
 	private JdbcAdapter dbAdapter;
 
 	@Inject
 	private DataNode node;
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
-		dbHelper.deleteAll("PAINTING_INFO");
-		dbHelper.deleteAll("PAINTING");
-		dbHelper.deleteAll("PAINTING1");
-		dbHelper.deleteAll("ARTIST_EXHIBIT");
-		dbHelper.deleteAll("ARTIST_GROUP");
-		dbHelper.deleteAll("ARTIST");
-		dbHelper.deleteAll("EXHIBIT");
-		dbHelper.deleteAll("GALLERY");
-	}
-
     @Test
 	public void testWithoutResultDirective() throws Exception {
 		String sql = "SELECT ARTIST_ID, ARTIST_NAME FROM ARTIST";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/resources/cayenne-empty.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/cayenne-empty.xml b/cayenne-server/src/test/resources/cayenne-empty.xml
new file mode 100644
index 0000000..00778a5
--- /dev/null
+++ b/cayenne-server/src/test/resources/cayenne-empty.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="7">
+    <map name="empty"/>
+</domain>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/resources/empty.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/empty.map.xml b/cayenne-server/src/test/resources/empty.map.xml
new file mode 100644
index 0000000..20ffbc78
--- /dev/null
+++ b/cayenne-server/src/test/resources/empty.map.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
+          project-version="7">
+    <db-entity name="EMPTY">
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+    </db-entity>
+</data-map>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/resources/small-testmap.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/small-testmap.map.xml b/cayenne-server/src/test/resources/small-testmap.map.xml
deleted file mode 100644
index 486256e..0000000
--- a/cayenne-server/src/test/resources/small-testmap.map.xml
+++ /dev/null
@@ -1,225 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap"
-	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd"
-	 project-version="7">
-	<property name="defaultPackage" value="org.apache.cayenne.testdo.testmap"/>
-	<property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
-	<property name="clientSupported" value="true"/>
-	<property name="defaultClientPackage" value="test.client"/>
-	<property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
-	<procedure name="cayenne_tst_out_proc">
-		<procedure-parameter name="in_param" type="INTEGER" direction="in"/>
-		<procedure-parameter name="out_param" type="INTEGER" direction="out"/>
-	</procedure>
-	<procedure name="cayenne_tst_select_proc">
-		<procedure-parameter name="aName" type="VARCHAR" length="254" direction="in"/>
-		<procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/>
-	</procedure>
-	<procedure name="cayenne_tst_upd_proc">
-		<procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/>
-	</procedure>
-	<procedure name="cayenne_tst_upd_proc2">
-	</procedure>
-	<db-entity name="ARRAYS_ENTITY">
-		<db-attribute name="BYTE_ARRAY" type="VARBINARY" length="200"/>
-		<db-attribute name="BYTE_WRAPPER_ARRAY" type="VARBINARY" length="200"/>
-		<db-attribute name="CHAR_ARRAY" type="VARCHAR" length="200"/>
-		<db-attribute name="CHAR_WRAPPER_ARRAY" type="VARCHAR" length="200"/>
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="ARTGROUP">
-		<db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
-		<db-attribute name="PARENT_GROUP_ID" type="INTEGER"/>
-	</db-entity>
-	<db-entity name="ARTIST">
-		<db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/>
-		<db-attribute name="DATE_OF_BIRTH" type="DATE"/>
-	</db-entity>
-	<db-entity name="ARTIST_CT">
-		<db-attribute name="ARTIST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/>
-		<db-attribute name="DATE_OF_BIRTH" type="DATE"/>
-	</db-entity>
-	<db-entity name="ARTIST_EXHIBIT">
-		<db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="ARTIST_GROUP">
-		<db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="CHARACTER_ENTITY">
-		<db-attribute name="CHARACTER_FIELD" type="CHAR" length="1"/>
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="DATE_TEST">
-		<db-attribute name="DATE_COLUMN" type="DATE"/>
-		<db-attribute name="DATE_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/>
-		<db-attribute name="TIME_COLUMN" type="TIME"/>
-	</db-entity>
-	<db-entity name="ENUM_ENTITY">
-		<db-attribute name="ENUM_ATTRIBUTE" type="VARCHAR" length="250"/>
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="EXHIBIT">
-		<db-attribute name="CLOSING_DATE" type="TIMESTAMP" isMandatory="true"/>
-		<db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="GALLERY_ID" type="INTEGER" isMandatory="true"/>
-		<db-attribute name="OPENING_DATE" type="TIMESTAMP" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="FLOAT_TEST">
-		<db-attribute name="FLOAT_COL" type="FLOAT"/>
-		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-	</db-entity>
-	<db-entity name="GALLERY">
-		<db-attribute name="GALLERY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="GALLERY_NAME" type="VARCHAR" isMandatory="true" length="100"/>
-	</db-entity>
-	<db-entity name="PAINTING">
-		<db-attribute name="ARTIST_ID" type="BIGINT"/>
-		<db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/>
-		<db-attribute name="GALLERY_ID" type="INTEGER"/>
-		<db-attribute name="PAINTING_DESCRIPTION" type="VARCHAR" length="255"/>
-		<db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/>
-	</db-entity>
-	<db-entity name="PAINTING1">
-		<db-attribute name="ARTIST_ID" type="BIGINT"/>
-		<db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/>
-		<db-attribute name="GALLERY_ID" type="INTEGER"/>
-		<db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/>
-	</db-entity>
-	<db-entity name="PAINTING_INFO">
-		<db-attribute name="IMAGE_BLOB" type="LONGVARBINARY"/>
-		<db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
-		<db-attribute name="TEXT_REVIEW" type="LONGVARCHAR"/>
-	</db-entity>
-	<obj-entity name="ArraysEntity" className="org.apache.cayenne.testdo.misc_types.ArraysEntity" dbEntityName="ARRAYS_ENTITY">
-		<obj-attribute name="byteArray" type="byte[]" db-attribute-path="BYTE_ARRAY"/>
-		<obj-attribute name="byteWrapperArray" type="java.lang.Byte[]" db-attribute-path="BYTE_WRAPPER_ARRAY"/>
-		<obj-attribute name="charArray" type="char[]" db-attribute-path="CHAR_ARRAY"/>
-		<obj-attribute name="charWrapperArray" type="java.lang.Character[]" db-attribute-path="CHAR_WRAPPER_ARRAY"/>
-	</obj-entity>
-	<obj-entity name="ArtGroup" className="org.apache.cayenne.testdo.testmap.ArtGroup" dbEntityName="ARTGROUP">
-		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
-	</obj-entity>
-	<obj-entity name="Artist" className="org.apache.cayenne.testdo.testmap.Artist" dbEntityName="ARTIST">
-		<obj-attribute name="artistName" type="java.lang.String" db-attribute-path="ARTIST_NAME"/>
-		<obj-attribute name="dateOfBirth" type="java.util.Date" db-attribute-path="DATE_OF_BIRTH"/>
-	</obj-entity>
-	<obj-entity name="ArtistExhibit" className="org.apache.cayenne.testdo.testmap.ArtistExhibit" dbEntityName="ARTIST_EXHIBIT">
-	</obj-entity>
-	<obj-entity name="CharacterEntity" className="org.apache.cayenne.testdo.misc_types.CharacterEntity" dbEntityName="CHARACTER_ENTITY">
-		<obj-attribute name="characterField" type="java.lang.Character" db-attribute-path="CHARACTER_FIELD"/>
-	</obj-entity>
-	<obj-entity name="DateTestEntity" className="org.apache.cayenne.testdo.date_time.DateTestEntity" dbEntityName="DATE_TEST">
-		<obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/>
-		<obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/>
-		<obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/>
-	</obj-entity>
-	<obj-entity name="EnumEntity" className="org.apache.cayenne.testdo.enum_test.EnumEntity" dbEntityName="ENUM_ENTITY">
-		<obj-attribute name="enumAttribute" type="org.apache.cayenne.testdo.enum_test.Enum1" db-attribute-path="ENUM_ATTRIBUTE"/>
-	</obj-entity>
-	<obj-entity name="Exhibit" className="org.apache.cayenne.testdo.testmap.Exhibit" dbEntityName="EXHIBIT">
-		<obj-attribute name="closingDate" type="java.util.Date" db-attribute-path="CLOSING_DATE"/>
-		<obj-attribute name="openingDate" type="java.util.Date" db-attribute-path="OPENING_DATE"/>
-	</obj-entity>
-	<obj-entity name="Gallery" className="org.apache.cayenne.testdo.testmap.Gallery" dbEntityName="GALLERY">
-		<obj-attribute name="galleryName" type="java.lang.String" db-attribute-path="GALLERY_NAME"/>
-	</obj-entity>
-	<obj-entity name="Painting" className="org.apache.cayenne.testdo.testmap.Painting" dbEntityName="PAINTING" superClassName="org.apache.cayenne.testdo.testmap.ArtDataObject">
-		<obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
-		<obj-attribute name="paintingDescription" type="java.lang.String" db-attribute-path="PAINTING_DESCRIPTION"/>
-		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
-	</obj-entity>
-	<obj-entity name="Painting1" className="org.apache.cayenne.testdo.testmap.Painting1" dbEntityName="PAINTING1">
-		<obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
-		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
-	</obj-entity>
-	<obj-entity name="PaintingInfo" className="org.apache.cayenne.testdo.testmap.PaintingInfo" dbEntityName="PAINTING_INFO">
-		<obj-attribute name="imageBlob" type="byte[]" db-attribute-path="IMAGE_BLOB"/>
-		<obj-attribute name="textReview" type="java.lang.String" db-attribute-path="TEXT_REVIEW"/>
-	</obj-entity>
-	<obj-entity name="SubPainting" className="org.apache.cayenne.testdo.testmap.SubPainting" dbEntityName="PAINTING">
-		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
-	</obj-entity>
-	<db-relationship name="artistGroupArray" source="ARTGROUP" target="ARTIST_GROUP" toMany="true">
-		<db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
-	</db-relationship>
-	<db-relationship name="toChildGroups" source="ARTGROUP" target="ARTGROUP" toMany="true">
-		<db-attribute-pair source="GROUP_ID" target="PARENT_GROUP_ID"/>
-	</db-relationship>
-	<db-relationship name="toParentGroup" source="ARTGROUP" target="ARTGROUP" toMany="false">
-		<db-attribute-pair source="PARENT_GROUP_ID" target="GROUP_ID"/>
-	</db-relationship>
-	<db-relationship name="artistExhibitArray" source="ARTIST" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
-		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-	</db-relationship>
-	<db-relationship name="artistGroupArray" source="ARTIST" target="ARTIST_GROUP" toMany="true">
-		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-	</db-relationship>
-	<db-relationship name="paintingArray" source="ARTIST" target="PAINTING" toMany="true">
-		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-	</db-relationship>
-	<db-relationship name="toArtist" source="ARTIST_EXHIBIT" target="ARTIST" toMany="false">
-		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-	</db-relationship>
-	<db-relationship name="toExhibit" source="ARTIST_EXHIBIT" target="EXHIBIT" toMany="false">
-		<db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
-	</db-relationship>
-	<db-relationship name="toArtist" source="ARTIST_GROUP" target="ARTIST" toMany="false">
-		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-	</db-relationship>
-	<db-relationship name="toGroup" source="ARTIST_GROUP" target="ARTGROUP" toMany="false">
-		<db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
-	</db-relationship>
-	<db-relationship name="artistExhibitArray" source="EXHIBIT" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
-		<db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
-	</db-relationship>
-	<db-relationship name="toGallery" source="EXHIBIT" target="GALLERY" toMany="false">
-		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-	</db-relationship>
-	<db-relationship name="exhibitArray" source="GALLERY" target="EXHIBIT" toMany="true">
-		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-	</db-relationship>
-	<db-relationship name="paintingArray" source="GALLERY" target="PAINTING" toMany="true">
-		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-	</db-relationship>
-	<db-relationship name="toArtist" source="PAINTING" target="ARTIST" toMany="false">
-		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-	</db-relationship>
-	<db-relationship name="toGallery" source="PAINTING" target="GALLERY" toMany="false">
-		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
-	</db-relationship>
-	<db-relationship name="toPaintingInfo" source="PAINTING" target="PAINTING_INFO" toDependentPK="true" toMany="false">
-		<db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
-	</db-relationship>
-	<db-relationship name="toArtist" source="PAINTING1" target="ARTIST" toMany="false">
-		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
-	</db-relationship>
-	<db-relationship name="painting" source="PAINTING_INFO" target="PAINTING" toMany="false">
-		<db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
-	</db-relationship>
-	<obj-relationship name="artistArray" source="ArtGroup" target="Artist" deleteRule="Nullify" db-relationship-path="artistGroupArray.toArtist"/>
-	<obj-relationship name="childGroupsArray" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toChildGroups"/>
-	<obj-relationship name="toParentGroup" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentGroup"/>
-	<obj-relationship name="artistExhibitArray" source="Artist" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/>
-	<obj-relationship name="groupArray" source="Artist" target="ArtGroup" deleteRule="Cascade" db-relationship-path="artistGroupArray.toGroup"/>
-	<obj-relationship name="paintingArray" source="Artist" target="Painting" deleteRule="Cascade" db-relationship-path="paintingArray"/>
-	<obj-relationship name="toArtist" source="ArtistExhibit" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
-	<obj-relationship name="toExhibit" source="ArtistExhibit" target="Exhibit" deleteRule="Nullify" db-relationship-path="toExhibit"/>
-	<obj-relationship name="artistExhibitArray" source="Exhibit" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/>
-	<obj-relationship name="toGallery" source="Exhibit" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
-	<obj-relationship name="exhibitArray" source="Gallery" target="Exhibit" deleteRule="Cascade" db-relationship-path="exhibitArray"/>
-	<obj-relationship name="paintingArray" source="Gallery" target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/>
-	<obj-relationship name="toArtist" source="Painting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
-	<obj-relationship name="toGallery" source="Painting" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
-	<obj-relationship name="toPaintingInfo" source="Painting" target="PaintingInfo" deleteRule="Cascade" db-relationship-path="toPaintingInfo"/>
-	<obj-relationship name="toArtist" source="Painting1" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
-	<obj-relationship name="painting" source="PaintingInfo" target="Painting" deleteRule="Nullify" db-relationship-path="painting"/>
-</data-map>


[16/39] cayenne git commit: CAY-1959 ObjectSelect query - a fluent API alternative to SelectQuery

Posted by aa...@apache.org.
CAY-1959 ObjectSelect query - a fluent API alternative to SelectQuery

* renamed the jira to draw attention to the new ObjectSelect query


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/98bd4974
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/98bd4974
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/98bd4974

Branch: refs/heads/CAY-1946_1
Commit: 98bd4974ec11794b992785698ff08a288d792f6b
Parents: d791b51
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:15:11 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 14:15:48 2014 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/RELEASE-NOTES.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/98bd4974/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index 7711b36..851bb14 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -66,7 +66,7 @@ CAY-1952 Undeprecate (actually restore) ObjectContext.deleteObject(..)
 CAY-1953 Redo ResultIteratorCallback to handle single row callback instead of iterator
 CAY-1954 Make Cayenne class constructor protected
 CAY-1958 SelectById - a new full-featured select query to get objects by id
-CAY-1959 Chainable API for SelectQuery
+CAY-1959 ObjectSelect query - a fluent API alternative to SelectQuery
 CAY-1960 ExpressionFactory.exp(..) , and(..), or(..)
 CAY-1962 Implement CayenneTable column resize on double-click on the header separator
 CAY-1965 Change version from 3.2 to 4.0


[03/39] cayenne git commit: Implement DBCleaner

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
index 1f46ecb..33be4b1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
@@ -37,8 +37,10 @@ import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -52,7 +54,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime("cayenne-small-testmap.xml")
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContextWriteIT extends ServerCase {
 
     @Inject
@@ -71,14 +73,8 @@ public class NestedDataContextWriteIT extends ServerCase {
     private TableHelper tPainting;
     private TableHelper tPaintingInfo;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
index c19a875..4796ace 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -35,7 +37,7 @@ import java.util.Random;
 
 import static org.junit.Assert.assertFalse;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContext_DeadlockIT extends ServerCase {
 
     @Inject
@@ -49,14 +51,8 @@ public class NestedDataContext_DeadlockIT extends ServerCase {
 
     protected TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
index c0e30ef..491715e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
@@ -36,8 +36,10 @@ import org.apache.cayenne.testdo.numeric_types.DecimalPKTestEntity;
 import org.apache.cayenne.testdo.numeric_types.LongEntity;
 import org.apache.cayenne.testdo.numeric_types.SmallintTestEntity;
 import org.apache.cayenne.testdo.numeric_types.TinyintTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -51,7 +53,7 @@ import static org.junit.Assert.assertSame;
 
 /**
  */
-@UseServerRuntime(ServerCase.NUMERIC_TYPES_PROJECT)
+@UseServerRuntime(CayenneProjects.NUMERIC_TYPES_PROJECT)
 public class NumericTypesIT extends ServerCase {
 
     @Inject
@@ -69,13 +71,8 @@ public class NumericTypesIT extends ServerCase {
     protected TableHelper tSmallintTest;
     protected TableHelper tTinyintTest;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("BOOLEAN_TEST");
-        dbHelper.deleteAll("SMALLINT_TEST");
-        dbHelper.deleteAll("TINYINT_TEST");
-        dbHelper.deleteAll("DECIMAL_PK_TST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tSmallintTest = new TableHelper(dbHelper, "SMALLINT_TEST");
         tSmallintTest.setColumns("ID", "SMALLINT_COL");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
index cf60725..6017252 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -34,7 +36,7 @@ import java.sql.Types;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ObjectStoreDiffRetainingIT extends ServerCase {
 
     @Inject
@@ -46,14 +48,8 @@ public class ObjectStoreDiffRetainingIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH")
                 .setColumnTypes(Types.BIGINT, Types.CHAR, Types.DATE);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
index d5ccbc6..4a57a6d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
@@ -22,33 +22,21 @@ import org.apache.cayenne.Cayenne;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ObjectStoreGCIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testReleaseUnreferenced() throws Exception {
         context.performGenericQuery(new SQLTemplate(

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java
index 55c5efc..70a726c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java
@@ -28,6 +28,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -40,7 +41,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ObjectStoreIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
index edcf679..1842fec 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.locking.RelLockingTestEntity;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -40,7 +42,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.LOCKING_PROJECT)
+@UseServerRuntime(CayenneProjects.LOCKING_PROJECT)
 public class OptimisticLockingIT extends ServerCase {
 
     @Inject
@@ -53,12 +55,8 @@ public class OptimisticLockingIT extends ServerCase {
     protected TableHelper tRelLockingTest;
     protected TableHelper tLockingHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("LOCKING_HELPER");
-        dbHelper.deleteAll("REL_LOCKING_TEST");
-        dbHelper.deleteAll("SIMPLE_LOCKING_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tSimpleLockingTest = new TableHelper(dbHelper, "SIMPLE_LOCKING_TEST");
         tSimpleLockingTest.setColumns("LOCKING_TEST_ID", "NAME", "DESCRIPTION")
                 .setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.VARCHAR);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java
index 5a4e6fa..f7814fe 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java
@@ -32,6 +32,7 @@ import org.apache.cayenne.reflect.ClassDescriptor;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -47,7 +48,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class PrefetchProcessorTreeBuilderIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java
index a7cef30..5fa1907 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java
@@ -19,26 +19,18 @@
 package org.apache.cayenne.access;
 
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.primitive.PrimitivesTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
-@UseServerRuntime(ServerCase.PRIMITIVE_PROJECT)
+@UseServerRuntime(CayenneProjects.PRIMITIVE_PROJECT)
 public class PrimitiveAttributesIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PRIMITIVES_TEST");
-    }
-
     @Test
     public void testCommit() {
         PrimitivesTestEntity e = context.newObject(PrimitivesTestEntity.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
index b629dbb..b70b590 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
@@ -28,11 +28,12 @@ import org.apache.cayenne.query.ObjectIdQuery;
 import org.apache.cayenne.query.RelationshipQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.UpdateBatchQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.quotemap.QuoteAdress;
 import org.apache.cayenne.testdo.quotemap.Quote_Person;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
@@ -41,19 +42,14 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.QUOTED_IDENTIFIERS_PROJECT)
+@UseServerRuntime(CayenneProjects.QUOTED_IDENTIFIERS_PROJECT)
 public class QuotedIdentifiersIT extends ServerCase {
 
     @Inject
     private ObjectContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("quote Person");
-        dbHelper.deleteAll("QUOTED_ADDRESS");
+    @Before
+    public void testSetUp() throws Exception {
 
         QuoteAdress quoteAdress = context.newObject(QuoteAdress.class);
         quoteAdress.setCity("city");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
index ba5b085..e4b992f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
@@ -22,11 +22,11 @@ import org.apache.cayenne.DataRow;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.NamedQuery;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMap1;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMap2;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMapLobs1;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -44,26 +44,14 @@ import static org.junit.Assert.assertTrue;
 /**
  * Test Types mapping for selected columns
  */
-@UseServerRuntime(ServerCase.RETURN_TYPES_PROJECT)
+@UseServerRuntime(CayenneProjects.RETURN_TYPES_PROJECT)
 public class ReturnTypesMappingIT extends ServerCase {
 
     @Inject
     private DataContext context;
     
     @Inject
-    private DBHelper dbHelper;
-    
-    @Inject
     private UnitDbAdapter unitDbAdapter;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        if (unitDbAdapter.supportsLobs()) {
-            dbHelper.deleteAll("TYPES_MAPPING_LOBS_TEST1");
-            dbHelper.deleteAll("TYPES_MAPPING_TEST2");
-        }
-        dbHelper.deleteAll("TYPES_MAPPING_TEST1");
-    }
 
     /*
      * TODO: olga: We need divided TYPES_MAPPING_TES2 to 2 schemas with lobs columns and not lobs columns 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
index d1d6ee6..d373f30 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Iterator;
@@ -42,7 +44,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests IncrementalFaultList behavior when fetching data rows.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SimpleIdIncrementalFaultListDataRowsIT extends ServerCase {
 
     @Inject
@@ -57,14 +59,8 @@ public class SimpleIdIncrementalFaultListDataRowsIT extends ServerCase {
     private TableHelper tArtist;
     private SimpleIdIncrementalFaultList<?> list;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         createArtistsDataSet();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
index 42dbc25..ae24849 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Iterator;
@@ -43,7 +45,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SimpleIdIncrementalFaultListIT extends ServerCase {
 
     @Inject
@@ -54,14 +56,8 @@ public class SimpleIdIncrementalFaultListIT extends ServerCase {
 
     private TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
index fee6220..def1bb4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
@@ -33,8 +33,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -44,7 +46,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SimpleIdIncrementalFaultListPrefetchIT extends ServerCase {
 
     @Inject
@@ -59,14 +61,8 @@ public class SimpleIdIncrementalFaultListPrefetchIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPaining;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritance1IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritance1IT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritance1IT.java
index c9dd4aa..29fab90 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritance1IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritance1IT.java
@@ -23,10 +23,10 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.inheritance_flat.Group;
 import org.apache.cayenne.testdo.inheritance_flat.Role;
 import org.apache.cayenne.testdo.inheritance_flat.User;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,24 +36,12 @@ import static org.junit.Assert.assertTrue;
 /**
  * Special test cases per CAY-1378, CAY-1379.
  */
-@UseServerRuntime(ServerCase.INHERITANCE_SINGLE_TABLE1_PROJECT)
+@UseServerRuntime(CayenneProjects.INHERITANCE_SINGLE_TABLE1_PROJECT)
 public class SingleTableInheritance1IT extends ServerCase {
 
     @Inject
     private ObjectContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
-        dbHelper.deleteAll("GROUP_MEMBERS");
-        dbHelper.deleteAll("USER_PROPERTIES");
-        dbHelper.deleteAll("GROUP_PROPERTIES");
-        dbHelper.deleteAll("ROLES");
-    }
-
     @Test
     public void testGroupActions() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
index c2ce9c3..d17e15e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
@@ -38,8 +38,10 @@ import org.apache.cayenne.testdo.inheritance_people.Manager;
 import org.apache.cayenne.testdo.inheritance_people.PersonNotes;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -51,7 +53,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.PEOPLE_PROJECT)
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
 public class SingleTableInheritanceIT extends ServerCase {
 
     @Inject
@@ -71,8 +73,8 @@ public class SingleTableInheritanceIT extends ServerCase {
     private TableHelper tClientCompany;
     private TableHelper tDepartment;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         tPerson = new TableHelper(dbHelper, "PERSON");
         tPerson.setColumns(
                 "PERSON_ID",
@@ -99,12 +101,6 @@ public class SingleTableInheritanceIT extends ServerCase {
 
         // manually break circular deps
         tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
-
-        dbHelper.deleteAll("ADDRESS");
-        dbHelper.deleteAll("DEPARTMENT");
-        dbHelper.deleteAll("PERSON_NOTES");
-        dbHelper.deleteAll("PERSON");
-        dbHelper.deleteAll("CLIENT_COMPANY");
     }
 
     private void create2PersonDataSet() throws Exception {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/ToManyListIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ToManyListIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ToManyListIT.java
index 6355ed5..715e7e3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ToManyListIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ToManyListIT.java
@@ -21,9 +21,9 @@ package org.apache.cayenne.access;
 
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.PersistentObjectList;
@@ -37,24 +37,12 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ToManyListIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     private ToManyList createForNewArtist() {
         Artist artist = context.newObject(Artist.class);
         return new ToManyList(artist, Artist.PAINTING_ARRAY_PROPERTY);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/TransactionThreadIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/TransactionThreadIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/TransactionThreadIT.java
index caf6d6a..a19b86c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/TransactionThreadIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/TransactionThreadIT.java
@@ -22,11 +22,11 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.log.JdbcEventLogger;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.tx.BaseTransaction;
 import org.apache.cayenne.tx.CayenneTransaction;
 import org.apache.cayenne.tx.Transaction;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,27 +36,15 @@ import java.sql.Connection;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class TransactionThreadIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
     @Inject
-    protected DBHelper dbHelper;
-
-    @Inject
     private JdbcEventLogger logger;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testThreadConnectionReuseOnSelect() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
index dfea01e..fba1743 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.uuid.UuidPkEntity;
 import org.apache.cayenne.testdo.uuid.UuidTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.UUID;
@@ -35,7 +37,7 @@ import java.util.UUID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.UUID_PROJECT)
+@UseServerRuntime(CayenneProjects.UUID_PROJECT)
 public class UUIDIT extends ServerCase {
 
     @Inject
@@ -46,11 +48,8 @@ public class UUIDIT extends ServerCase {
 
     private TableHelper uuidPkEntity;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("UUID_TEST");
-        dbHelper.deleteAll("UUID_PK_ENTITY");
-
+    @Before
+    public void testSetUp() throws Exception {
         uuidPkEntity = new TableHelper(dbHelper, "UUID_PK_ENTITY", "ID");
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/UserTransactionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/UserTransactionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/UserTransactionIT.java
index d88ae08..55b27d1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/UserTransactionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/UserTransactionIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.tx.BaseTransaction;
 import org.apache.cayenne.tx.CayenneTransaction;
 import org.apache.cayenne.tx.Transaction;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +35,7 @@ import java.sql.Connection;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class UserTransactionIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
index a1669d1..206a24a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/VerticalInheritanceIT.java
@@ -31,6 +31,7 @@ import org.apache.cayenne.testdo.inheritance_vertical.IvRoot;
 import org.apache.cayenne.testdo.inheritance_vertical.IvSub1;
 import org.apache.cayenne.testdo.inheritance_vertical.IvSub1Sub1;
 import org.apache.cayenne.testdo.inheritance_vertical.IvSub2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -46,7 +47,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.INHERITANCE_VERTICAL_PROJECT)
+@UseServerRuntime(CayenneProjects.INHERITANCE_VERTICAL_PROJECT)
 public class VerticalInheritanceIT extends ServerCase {
 
 	@Inject
@@ -55,22 +56,6 @@ public class VerticalInheritanceIT extends ServerCase {
 	@Inject
 	protected DBHelper dbHelper;
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
-
-		dbHelper.deleteAll("IV_SUB1_SUB1");
-		dbHelper.deleteAll("IV_SUB1");
-		dbHelper.deleteAll("IV_SUB2");
-		dbHelper.deleteAll("IV_ROOT");
-
-		dbHelper.deleteAll("IV1_SUB1");
-		dbHelper.deleteAll("IV1_ROOT");
-
-		dbHelper.deleteAll("IV2_SUB1");
-		dbHelper.deleteAll("IV2_ROOT");
-		dbHelper.deleteAll("IV2_X");
-	}
-
     @Test
 	public void testInsert_Root() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
index 3022457..39da5e9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
@@ -18,15 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.access.dbsync;
 
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.access.DataNode;
@@ -36,6 +27,15 @@ import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.unit.di.server.ServerCase;
 
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
 public class SchemaUpdateStrategyBase extends ServerCase {
 
 	@Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyIT.java
index 29ca1ae..78ef23e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyIT.java
@@ -22,7 +22,7 @@ import org.apache.cayenne.access.MockOperationObserver;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -32,7 +32,7 @@ import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.SUS_PROJECT)
+@UseServerRuntime(CayenneProjects.SUS_PROJECT)
 public class SchemaUpdateStrategyIT extends SchemaUpdateStrategyBase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialOrCreateSchemaStrategyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialOrCreateSchemaStrategyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialOrCreateSchemaStrategyIT.java
index f38e524..45dd434 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialOrCreateSchemaStrategyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialOrCreateSchemaStrategyIT.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.access.dbsync;
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.OperationObserver;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -33,7 +33,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.SUS_PROJECT)
+@UseServerRuntime(CayenneProjects.SUS_PROJECT)
 public class ThrowOnPartialOrCreateSchemaStrategyIT extends SchemaUpdateStrategyBase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategyIT.java
index 8738e2f..576f4e8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/ThrowOnPartialSchemaStrategyIT.java
@@ -22,7 +22,7 @@ import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.MockOperationObserver;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -32,7 +32,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.SUS_PROJECT)
+@UseServerRuntime(CayenneProjects.SUS_PROJECT)
 public class ThrowOnPartialSchemaStrategyIT extends SchemaUpdateStrategyBase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionGeneratedIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionGeneratedIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionGeneratedIT.java
index 73723c8..38b6736 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionGeneratedIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionGeneratedIT.java
@@ -28,6 +28,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.query.InsertBatchQuery;
 import org.apache.cayenne.testdo.generated.GeneratedColumnTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +37,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.GENERATED_PROJECT)
+@UseServerRuntime(CayenneProjects.GENERATED_PROJECT)
 public class BatchActionGeneratedIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionIT.java
index 3a72e1e..9fc7410 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionIT.java
@@ -28,6 +28,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.query.InsertBatchQuery;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,7 +36,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertFalse;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class BatchActionIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingIT.java
index 4152e50..d93f7a8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingIT.java
@@ -36,6 +36,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.query.DeleteBatchQuery;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -51,7 +52,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.LOCKING_PROJECT)
+@UseServerRuntime(CayenneProjects.LOCKING_PROJECT)
 public class BatchActionLockingIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
index 58a15ed..18895ba 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
@@ -33,10 +33,12 @@ import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Connection;
@@ -51,7 +53,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SQLTemplateActionIT extends ServerCase {
 
     @Inject
@@ -74,14 +76,8 @@ public class SQLTemplateActionIT extends ServerCase {
 
     protected TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java
index 9786266..b2ca3a4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java
@@ -23,10 +23,10 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.lob.ClobTestEntity;
 import org.apache.cayenne.testdo.lob.ClobTestRelation;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +36,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.LOB_PROJECT)
+@UseServerRuntime(CayenneProjects.LOB_PROJECT)
 public class SelectActionIT extends ServerCase {
 
     @Inject
@@ -45,18 +45,6 @@ public class SelectActionIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("CLOB_TEST_RELATION");
-        
-        if (accessStackAdapter.supportsLobs()) {
-            dbHelper.deleteAll("CLOB_TEST");
-        }
-    }
-
     @Test
     public void testFetchLimit_DistinctResultIterator() throws Exception {
         if (accessStackAdapter.supportsLobs()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
index 8d6ee68..439fb20 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.BatchQueryRow;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -37,7 +38,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DefaultBatchTranslatorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
index c6c2ad6..656cd84 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
@@ -29,6 +29,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.DeleteBatchQuery;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -43,7 +44,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.LOCKING_PROJECT)
+@UseServerRuntime(CayenneProjects.LOCKING_PROJECT)
 public class DeleteBatchTranslatorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
index 5febbae..ce66e95 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.InsertBatchQuery;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +37,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.LOCKING_PROJECT)
+@UseServerRuntime(CayenneProjects.LOCKING_PROJECT)
 public class InsertBatchTranslatorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
index de14c36..a898b2d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
@@ -34,6 +34,7 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.soft_delete.SoftDelete;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -46,7 +47,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.SOFT_DELETE_PROJECT)
+@UseServerRuntime(CayenneProjects.SOFT_DELETE_PROJECT)
 public class SoftDeleteBatchTranslatorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
index 848860a..d1e23bd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
@@ -28,6 +28,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.UpdateBatchQuery;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -42,7 +43,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.LOCKING_PROJECT)
+@UseServerRuntime(CayenneProjects.LOCKING_PROJECT)
 public class UpdateBatchTranslatorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java
index c9c7203..184a259 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.ejbql.EJBQLParser;
 import org.apache.cayenne.ejbql.EJBQLParserFactory;
 import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.query.SQLTemplate;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -37,7 +38,7 @@ import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class EJBQLSelectTranslatorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
index 34ead39..a5ceb73 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
@@ -25,16 +25,19 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Connection;
 
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class OrderingTranslatorIT extends ServerCase {
 
     @Inject
@@ -45,13 +48,13 @@ public class OrderingTranslatorIT extends ServerCase {
 
     private Connection connection;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
index 9417ac4..52ee98f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
@@ -34,9 +34,12 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.MockQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.testmap.Gallery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Connection;
@@ -45,7 +48,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class QualifierTranslatorIT extends ServerCase {
 
     @Inject
@@ -56,13 +59,13 @@ public class QualifierTranslatorIT extends ServerCase {
 
     private Connection connection;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
index 133281b..42bc4de 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
@@ -23,9 +23,12 @@ import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Connection;
@@ -33,7 +36,7 @@ import java.sql.Connection;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class QueryAssemblerIT extends ServerCase {
 
     @Inject
@@ -46,14 +49,14 @@ public class QueryAssemblerIT extends ServerCase {
 
     private TstQueryAssembler qa;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
         this.qa = new TstQueryAssembler(new SelectQuery<Object>(), dataNode, connection);
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
index c872a4b..25d62bd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
@@ -38,9 +38,12 @@ import org.apache.cayenne.testdo.testmap.ArtistExhibit;
 import org.apache.cayenne.testdo.testmap.CompoundPainting;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Connection;
@@ -52,7 +55,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SelectTranslatorIT extends ServerCase {
 
     @Inject
@@ -75,19 +78,13 @@ public class SelectTranslatorIT extends ServerCase {
 
     private Connection connection;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/util/DefaultOperationObserverIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/util/DefaultOperationObserverIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/util/DefaultOperationObserverIT.java
index dafacd6..385759a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/util/DefaultOperationObserverIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/util/DefaultOperationObserverIT.java
@@ -20,6 +20,7 @@
 package org.apache.cayenne.access.util;
 
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -27,7 +28,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DefaultOperationObserverIT extends ServerCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
index 1443c4b..8333b73 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships.ReflexiveAndToOne;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -36,7 +38,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT)
 public class AshwoodEntitySorterIT extends ServerCase {
 
     @Inject
@@ -48,13 +50,8 @@ public class AshwoodEntitySorterIT extends ServerCase {
     protected TableHelper tRelationshipHelper;
     protected TableHelper tReflexiveAndToOne;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("REFLEXIVE_AND_TO_ONE");
-        dbHelper.deleteAll("FK_OF_DIFFERENT_TYPE");
-        dbHelper.deleteAll("MEANINGFUL_FK");
-        dbHelper.deleteAll("RELATIONSHIP_HELPER");
-
+    @Before
+    public void testSetUp() throws Exception {
         tRelationshipHelper = new TableHelper(dbHelper, "RELATIONSHIP_HELPER");
         tRelationshipHelper.setColumns("RELATIONSHIP_HELPER_ID", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/cache/QueryCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/cache/QueryCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/cache/QueryCacheIT.java
index 9536e44..4b19d24 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/cache/QueryCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/cache/QueryCacheIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -31,7 +32,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertNotSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class QueryCacheIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java
index c5e8a75..757aa47 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/JNDIDataSourceFactoryIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.configuration.DataNodeDescriptor;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.unit.JNDISetup;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -33,7 +34,7 @@ import javax.naming.NameNotFoundException;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class JNDIDataSourceFactoryIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java
index 954808e..25c0aa4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java
@@ -24,8 +24,10 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SQLSelect;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import javax.sql.DataSource;
@@ -33,7 +35,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ServerRuntimeBuilder_InAction_IT extends ServerCase {
 
     @Inject
@@ -47,17 +49,8 @@ public class ServerRuntimeBuilder_InAction_IT extends ServerCase {
 
     private DataSource dataSource;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
-        TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
+    @Before
+    public void testSetUp() throws Exception { TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         tArtist.insert(33001, "AA1");
         tArtist.insert(33002, "AA2");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/conn/PoolManagerIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/conn/PoolManagerIT.java b/cayenne-server/src/test/java/org/apache/cayenne/conn/PoolManagerIT.java
index ff0b69f..832470b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/conn/PoolManagerIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/conn/PoolManagerIT.java
@@ -20,6 +20,7 @@
 package org.apache.cayenne.conn;
 
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -28,7 +29,7 @@ import java.sql.Connection;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class PoolManagerIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
index e267277..7140e83 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.di.Provider;
 import org.apache.cayenne.log.NoopJdbcEventLogger;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +37,7 @@ import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class AutoAdapterIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
index 8b0de03..7d2c06e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.qualified.Qualified1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -41,7 +42,7 @@ import java.util.concurrent.TimeUnit;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime("cayenne-qualified.xml")
+@UseServerRuntime(CayenneProjects.QUALIFIED_PROJECT)
 public class ConcurrentPkGeneratorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcAdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcAdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcAdapterIT.java
index b760549..c744b6a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcAdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcAdapterIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbKeyGenerator;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,7 +36,7 @@ import java.sql.Types;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class JdbcAdapterIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
index 8a1c692..e60daac 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
@@ -24,16 +24,19 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.SchemaBuilder;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
 
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class JdbcPkGeneratorIT extends ServerCase {
 
     @Inject
@@ -44,14 +47,14 @@ public class JdbcPkGeneratorIT extends ServerCase {
     
     @Inject
     private SchemaBuilder schemaBuilder;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+
+    @Before
+    public void testSetUp() throws Exception {
         schemaBuilder.dropPKSupport();
     }
     
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
 
         if (JdbcPkGenerator.class.isAssignableFrom(adapter.getPkGenerator().getClass())) {
             // reset PK gen properly before updating PKs in DB

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
index 2d8214b..0ca4283 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
@@ -23,8 +23,10 @@ import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -34,7 +36,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class PkGeneratorIT extends ServerCase {
 
     @Inject
@@ -46,9 +48,8 @@ public class PkGeneratorIT extends ServerCase {
     private PkGenerator pkGenerator;
     private DbEntity paintingEntity;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
+    @Before
+    public void testSetUp() throws Exception {
         pkGenerator = node.getAdapter().getPkGenerator();
         paintingEntity = node.getEntityResolver().getDbEntity("PAINTING");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/TypesMappingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/TypesMappingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/TypesMappingIT.java
index a07de22..0f3b36b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/TypesMappingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/TypesMappingIT.java
@@ -21,8 +21,10 @@ package org.apache.cayenne.dba;
 
 import org.apache.cayenne.MockSerializable;
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import java.math.BigInteger;
@@ -37,6 +39,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+@UseServerRuntime(CayenneProjects.EMPTY_PROJECT)
 public class TypesMappingIT extends ServerCase {
 
     @Inject


[15/39] cayenne git commit: CAY-1959 Chainable API for SelectQuery

Posted by aa...@apache.org.
CAY-1959 Chainable API for SelectQuery

* changing 'exp' to 'where' per discusion on dev


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/d791b519
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/d791b519
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/d791b519

Branch: refs/heads/CAY-1946_1
Commit: d791b51939a77ce3832883917f49d1190d1648e0
Parents: 7e36c93
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:09:26 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 14:09:34 2014 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/query/ObjectSelect.java  | 47 ++++++++--------
 .../apache/cayenne/query/ObjectSelectTest.java  | 56 ++++++++++----------
 .../cayenne/query/ObjectSelect_CompileIT.java   |  2 +-
 .../cayenne/query/ObjectSelect_RunIT.java       |  4 +-
 4 files changed, 56 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/d791b519/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java
index 7618bcc..b6395dc 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectSelect.java
@@ -48,7 +48,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	private Class<?> entityType;
 	private String entityName;
 	private String dbEntityName;
-	private Expression exp;
+	private Expression where;
 	private Collection<Ordering> orderings;
 	private PrefetchTreeNode prefetches;
 	private int limit;
@@ -70,7 +70,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	 * and uses provided expression for its qualifier.
 	 */
 	public static <T> ObjectSelect<T> query(Class<T> entityType, Expression expression) {
-		return new ObjectSelect<T>().entityType(entityType).exp(expression);
+		return new ObjectSelect<T>().entityType(entityType).where(expression);
 	}
 
 	/**
@@ -78,7 +78,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	 * and uses provided expression for its qualifier.
 	 */
 	public static <T> ObjectSelect<T> query(Class<T> entityType, Expression expression, List<Ordering> orderings) {
-		return new ObjectSelect<T>().entityType(entityType).exp(expression).orderBy(orderings);
+		return new ObjectSelect<T>().entityType(entityType).where(expression).orderBy(orderings);
 	}
 
 	/**
@@ -95,7 +95,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	 * qualifier.
 	 */
 	public static ObjectSelect<DataRow> dataRowQuery(Class<?> entityType, Expression expression) {
-		return query(entityType).fetchDataRows().exp(expression);
+		return query(entityType).fetchDataRows().where(expression);
 	}
 
 	/**
@@ -124,7 +124,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	 * @return this object
 	 */
 	public static ObjectSelect<DataRow> dbQuery(String dbEntityName, Expression expression) {
-		return new ObjectSelect<Object>().fetchDataRows().dbEntityName(dbEntityName).exp(expression);
+		return new ObjectSelect<Object>().fetchDataRows().dbEntityName(dbEntityName).where(expression);
 	}
 
 	protected ObjectSelect() {
@@ -163,7 +163,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 		}
 
 		replacement.setFetchingDataRows(fetchingDataRows);
-		replacement.setQualifier(exp);
+		replacement.setQualifier(where);
 		replacement.addOrderings(orderings);
 		replacement.setPrefetchTree(prefetches);
 		replacement.setCacheStrategy(cacheStrategy);
@@ -232,8 +232,8 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	 * 
 	 * @return this object
 	 */
-	public ObjectSelect<T> exp(Expression expression) {
-		this.exp = expression;
+	public ObjectSelect<T> where(Expression expression) {
+		this.where = expression;
 		return this;
 	}
 
@@ -243,13 +243,13 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	 * 
 	 * @return this object
 	 */
-	public ObjectSelect<T> exp(String expressionString, Object... parameters) {
-		this.exp = ExpressionFactory.exp(expressionString, parameters);
+	public ObjectSelect<T> where(String expressionString, Object... parameters) {
+		this.where = ExpressionFactory.exp(expressionString, parameters);
 		return this;
 	}
 
 	/**
-	 * AND's provided expressions to the existing qualifier expression.
+	 * AND's provided expressions to the existing WHERE clause expression.
 	 * 
 	 * @return this object
 	 */
@@ -262,7 +262,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	}
 
 	/**
-	 * AND's provided expressions to the existing qualifier expression.
+	 * AND's provided expressions to the existing WHERE clause expression.
 	 * 
 	 * @return this object
 	 */
@@ -274,20 +274,20 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 
 		Collection<Expression> all;
 
-		if (exp != null) {
+		if (where != null) {
 			all = new ArrayList<Expression>(expressions.size() + 1);
-			all.add(exp);
+			all.add(where);
 			all.addAll(expressions);
 		} else {
 			all = expressions;
 		}
 
-		exp = ExpressionFactory.and(all);
+		where = ExpressionFactory.and(all);
 		return this;
 	}
 
 	/**
-	 * OR's provided expressions to the existing qualifier expression.
+	 * OR's provided expressions to the existing WHERE clause expression.
 	 * 
 	 * @return this object
 	 */
@@ -300,7 +300,7 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 	}
 
 	/**
-	 * OR's provided expressions to the existing qualifier expression.
+	 * OR's provided expressions to the existing WHERE clause expression.
 	 * 
 	 * @return this object
 	 */
@@ -311,15 +311,15 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 
 		Collection<Expression> all;
 
-		if (exp != null) {
+		if (where != null) {
 			all = new ArrayList<Expression>(expressions.size() + 1);
-			all.add(exp);
+			all.add(where);
 			all.addAll(expressions);
 		} else {
 			all = expressions;
 		}
 
-		exp = ExpressionFactory.or(all);
+		where = ExpressionFactory.or(all);
 		return this;
 	}
 
@@ -637,8 +637,11 @@ public class ObjectSelect<T> extends IndirectQuery implements Select<T> {
 		return dbEntityName;
 	}
 
-	public Expression getExp() {
-		return exp;
+	/**
+	 * Returns a WHERE clause Expression of this query.
+	 */
+	public Expression getWhere() {
+		return where;
 	}
 
 	public Collection<Ordering> getOrderings() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/d791b519/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
index e49d38b..9a3056e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
@@ -54,7 +54,7 @@ public class ObjectSelectTest {
 	public void testQuery_RootType() {
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 		assertNotNull(q);
-		assertNull(q.getExp());
+		assertNull(q.getWhere());
 		assertFalse(q.isFetchingDataRows());
 
 		assertEquals(Artist.class, q.getEntityType());
@@ -66,7 +66,7 @@ public class ObjectSelectTest {
 	public void testQuery_RootType_WithQualifier() {
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class, ExpressionFactory.matchExp("a", "A"));
 		assertNotNull(q);
-		assertEquals("a = \"A\"", q.getExp().toString());
+		assertEquals("a = \"A\"", q.getWhere().toString());
 		assertFalse(q.isFetchingDataRows());
 
 		assertEquals(Artist.class, q.getEntityType());
@@ -97,15 +97,15 @@ public class ObjectSelectTest {
 	}
 
 	@Test
-	public void testExp() {
+	public void testWhere() {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
-		q.exp(ExpressionFactory.matchExp("b", 4));
-		assertEquals("b = 4", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("b", 4));
+		assertEquals("b = 4", q.getWhere().toString());
 	}
 
 	@Test
@@ -113,11 +113,11 @@ public class ObjectSelectTest {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
 		q.and(ExpressionFactory.matchExp("b", 4), ExpressionFactory.greaterExp("c", 5));
-		assertEquals("(a = 3) and (b = 4) and (c > 5)", q.getExp().toString());
+		assertEquals("(a = 3) and (b = 4) and (c > 5)", q.getWhere().toString());
 	}
 
 	@Test
@@ -125,14 +125,14 @@ public class ObjectSelectTest {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
 		Collection<Expression> exps = Arrays.asList(ExpressionFactory.matchExp("b", 4),
 				ExpressionFactory.greaterExp("c", 5));
 
 		q.and(exps);
-		assertEquals("(a = 3) and (b = 4) and (c > 5)", q.getExp().toString());
+		assertEquals("(a = 3) and (b = 4) and (c > 5)", q.getWhere().toString());
 	}
 
 	@Test
@@ -140,11 +140,11 @@ public class ObjectSelectTest {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
 		q.and();
-		assertEquals("a = 3", q.getExp().toString());
+		assertEquals("a = 3", q.getWhere().toString());
 	}
 
 	@Test
@@ -152,11 +152,11 @@ public class ObjectSelectTest {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
 		q.and(new Expression[0]);
-		assertEquals("a = 3", q.getExp().toString());
+		assertEquals("a = 3", q.getWhere().toString());
 	}
 
 	@Test
@@ -164,11 +164,11 @@ public class ObjectSelectTest {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
 		q.and(Collections.<Expression> emptyList());
-		assertEquals("a = 3", q.getExp().toString());
+		assertEquals("a = 3", q.getWhere().toString());
 	}
 
 	@Test
@@ -176,11 +176,11 @@ public class ObjectSelectTest {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
 		q.or(ExpressionFactory.matchExp("b", 4), ExpressionFactory.greaterExp("c", 5));
-		assertEquals("(a = 3) or (b = 4) or (c > 5)", q.getExp().toString());
+		assertEquals("(a = 3) or (b = 4) or (c > 5)", q.getWhere().toString());
 	}
 
 	@Test
@@ -188,14 +188,14 @@ public class ObjectSelectTest {
 
 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
 
-		q.exp(ExpressionFactory.matchExp("a", 3));
-		assertEquals("a = 3", q.getExp().toString());
+		q.where(ExpressionFactory.matchExp("a", 3));
+		assertEquals("a = 3", q.getWhere().toString());
 
 		Collection<Expression> exps = Arrays.asList(ExpressionFactory.matchExp("b", 4),
 				ExpressionFactory.greaterExp("c", 5));
 
 		q.or(exps);
-		assertEquals("(a = 3) or (b = 4) or (c > 5)", q.getExp().toString());
+		assertEquals("(a = 3) or (b = 4) or (c > 5)", q.getWhere().toString());
 	}
 
 	@Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/d791b519/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
index 33fba9e..bc29e2e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
@@ -74,7 +74,7 @@ public class ObjectSelect_CompileIT extends ServerCase {
 
 		// add all possible attributes to the query and make sure they got
 		// propagated
-		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class).exp(Artist.ARTIST_NAME.eq("me"))
+		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("me"))
 				.orderBy(Artist.DATE_OF_BIRTH.asc(), Artist.ARTIST_NAME.desc()).prefetch(Artist.PAINTING_ARRAY.joint())
 				.localCache("cg2", "cg1").limit(46).offset(9).pageSize(6).statementFetchSize(789);
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/d791b519/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
index 3f037c8..194b94b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
@@ -65,7 +65,7 @@ public class ObjectSelect_RunIT extends ServerCase {
 		assertEquals(20, result.size());
 		assertThat(result.get(0), instanceOf(Artist.class));
 
-		Artist a = ObjectSelect.query(Artist.class).exp(Artist.ARTIST_NAME.eq("artist14")).selectOne(context);
+		Artist a = ObjectSelect.query(Artist.class).where(Artist.ARTIST_NAME.eq("artist14")).selectOne(context);
 		assertNotNull(a);
 		assertEquals("artist14", a.getArtistName());
 	}
@@ -79,7 +79,7 @@ public class ObjectSelect_RunIT extends ServerCase {
 		assertEquals(20, result.size());
 		assertThat(result.get(0), instanceOf(DataRow.class));
 
-		DataRow a = ObjectSelect.dataRowQuery(Artist.class).exp(Artist.ARTIST_NAME.eq("artist14")).selectOne(context);
+		DataRow a = ObjectSelect.dataRowQuery(Artist.class).where(Artist.ARTIST_NAME.eq("artist14")).selectOne(context);
 		assertNotNull(a);
 		assertEquals("artist14", a.get("ARTIST_NAME"));
 	}


[31/39] cayenne git commit: Merge branch '35'

Posted by aa...@apache.org.
Merge branch '35'


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/ccb180eb
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/ccb180eb
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/ccb180eb

Branch: refs/heads/CAY-1946_1
Commit: ccb180ebd8a013fdb21365bfecf05d0f97305f8b
Parents: 447dce9 dcaea3f
Author: aadamchik <aa...@apache.org>
Authored: Mon Nov 24 20:09:32 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Mon Nov 24 20:09:32 2014 +0300

----------------------------------------------------------------------
 .../CayenneContextClientChannelEventsIT.java    |  2 +-
 .../apache/cayenne/CayenneContextEJBQLIT.java   |  2 +-
 .../cayenne/CayenneContextInheritanceIT.java    |  2 +-
 .../CayenneContextMapRelationshipIT.java        |  2 +-
 .../cayenne/CayenneContextMeaningfulPKIT.java   |  2 +-
 .../CayenneContextNamedQueryCachingIT.java      |  2 +-
 .../CayenneContextPaginatedListCachingIT.java   |  2 +-
 .../cayenne/CayenneContextPrimitiveIT.java      |  2 +-
 .../cayenne/CayenneContextRefreshQueryIT.java   |  2 +-
 .../cayenne/CayenneContextRelationshipsIT.java  |  2 +-
 .../CayenneContextWithDataContextIT.java        |  2 +-
 .../cayenne/PersistentObjectInContextIT.java    |  2 +-
 .../cayenne/access/ClientServerChannelIT.java   |  2 +-
 .../access/ClientServerChannelQueryIT.java      |  2 +-
 .../cayenne/query/ClientExpressionIT.java       |  2 +-
 .../query/ClientSelectQueryExpressionIT.java    |  2 +-
 .../query/SelectQueryAbstractEntityIT.java      |  2 +-
 .../cayenne/remote/RemoteCallbacksIT.java       |  4 +-
 .../cayenne/remote/RemoteCayenneCase.java       |  6 +--
 .../remote/RemoteIncrementalFaultListIT.java    |  2 +-
 .../cayenne/unit/di/client/ClientCase.java      |  5 ++-
 .../unit/di/client/ClientCaseSelfIT.java        |  4 +-
 .../cayenne/util/ObjectDetachOperationIT.java   |  2 +-
 .../util/ShallowMergeOperation_ClientIT.java    |  2 +-
 .../cayenne/CDOCollectionRelationshipIT.java    |  2 +-
 .../java/org/apache/cayenne/CDOMany2OneIT.java  |  2 +-
 .../apache/cayenne/CDOMapRelationshipIT.java    |  2 +-
 .../java/org/apache/cayenne/CDOOne2ManyIT.java  |  2 +-
 .../apache/cayenne/CDOQualifiedEntitiesIT.java  |  2 +-
 .../apache/cayenne/CDOReflexiveRelDeleteIT.java |  2 +-
 .../apache/cayenne/CDOSetRelationshipIT.java    |  2 +-
 .../org/apache/cayenne/CayenneCompoundIT.java   |  2 +-
 .../CayenneDataObjectFlattenedRelIT.java        |  2 +-
 .../cayenne/CayenneDataObjectInContextIT.java   |  2 +-
 .../CayenneDataObjectRelationshipsIT.java       |  2 +-
 .../test/java/org/apache/cayenne/CayenneIT.java |  2 +-
 .../cayenne/DataContextMaxIdQualifierIT.java    |  2 +-
 .../cayenne/FlattenedRelationshipsIT.java       |  2 +-
 .../apache/cayenne/OneWayRelationshipsIT.java   |  2 +-
 .../cayenne/access/DataContextCallbacksIT.java  |  2 +-
 .../cayenne/access/DataContextDelegateIT.java   |  2 +-
 .../DataContextDelegateSharedCacheIT.java       |  2 +-
 .../access/DataContextDeleteRulesIT.java        |  2 +-
 .../DataContextDisjointByIdPrefetchIT.java      |  2 +-
 ...ataContextDisjointByIdPrefetch_ExtrasIT.java |  2 +-
 .../access/DataContextEJBQLArrayResultIT.java   |  2 +-
 .../access/DataContextEJBQLConditionsIT.java    |  2 +-
 .../DataContextEJBQLConditionsPeopleIT.java     | 10 ++---
 .../access/DataContextEJBQLDeleteIT.java        |  2 +-
 .../access/DataContextEJBQLDeletePKIT.java      |  2 +-
 .../access/DataContextEJBQLFetchJoinIT.java     |  2 +-
 ...ataContextEJBQLFlattenedRelationshipsIT.java |  2 +-
 .../access/DataContextEJBQLGroupByHavingIT.java |  2 +-
 .../access/DataContextEJBQLInheritanceIT.java   | 10 ++---
 .../access/DataContextEJBQLIsNullIT.java        |  2 +-
 .../cayenne/access/DataContextEJBQLJoinsIT.java |  2 +-
 .../DataContextEJBQLNumericalFunctionalIT.java  |  2 +-
 .../access/DataContextEJBQLOrderByIT.java       |  2 +-
 .../access/DataContextEJBQLQueryCompoundIT.java |  2 +-
 .../cayenne/access/DataContextEJBQLQueryIT.java |  2 +-
 .../access/DataContextEJBQLSubqueryIT.java      |  2 +-
 .../DataContextEJBQLUpdateCompoundIT.java       |  2 +-
 .../access/DataContextEJBQLUpdateIT.java        |  2 +-
 .../cayenne/access/DataContextExtrasIT.java     |  2 +-
 .../apache/cayenne/access/DataContextIT.java    |  2 +-
 .../access/DataContextJoinAliasesIT.java        |  2 +-
 .../access/DataContextLocalObjectIT.java        |  2 +-
 .../cayenne/access/DataContextNoPkIT.java       |  2 +-
 .../access/DataContextObjectTrackingIT.java     |  2 +-
 .../cayenne/access/DataContextOuterJoinsIT.java |  2 +-
 .../access/DataContextPaginatedQueryIT.java     |  2 +-
 .../access/DataContextPerformQueryAPIIT.java    |  2 +-
 .../access/DataContextPrefetchExtrasIT.java     |  2 +-
 .../cayenne/access/DataContextPrefetchIT.java   |  2 +-
 .../access/DataContextPrefetchMultistepIT.java  |  2 +-
 .../access/DataContextQualifiedEntityIT.java    |  2 +-
 .../DataContextQueryCachingEhCacheIT.java       |  4 +-
 .../access/DataContextQueryCachingIT.java       |  4 +-
 .../DataContextQueryCachingOSCacheIT.java       |  2 +-
 .../access/DataContextRefreshQueryIT.java       |  2 +-
 .../cayenne/access/DataContextRefreshingIT.java |  2 +-
 .../access/DataContextRelationshipQueryIT.java  |  2 +-
 .../DataContextSQLTemplateCompoundIT.java       |  2 +-
 .../access/DataContextSQLTemplateIT.java        |  2 +-
 .../DataContextSelectQuerySplitAliasesIT.java   |  2 +-
 .../access/DataContextSerializationIT.java      |  4 +-
 .../access/DataContextSharedCacheEmpiricIT.java |  2 +-
 .../access/DataContextSharedCacheIT.java        |  2 +-
 .../cayenne/access/DataDomainQueryActionIT.java |  2 +-
 .../cayenne/access/DataNodeQueriesIT.java       |  2 +-
 .../apache/cayenne/access/DataRowUtilsIT.java   |  2 +-
 .../apache/cayenne/access/DbGeneratorIT.java    |  2 +-
 .../org/apache/cayenne/access/DbLoaderIT.java   |  4 +-
 .../cayenne/access/DbLoaderPartialIT.java       |  4 +-
 .../apache/cayenne/access/DeleteObjectIT.java   |  2 +-
 .../org/apache/cayenne/access/EmbeddingIT.java  |  2 +-
 .../cayenne/access/FlattenedPrefetchIT.java     |  2 +-
 .../FlattenedRelationshipInContextIT.java       |  2 +-
 .../cayenne/access/IdentityColumnsIT.java       |  2 +-
 .../apache/cayenne/access/JointPrefetchIT.java  |  2 +-
 .../cayenne/access/NestedDataContextReadIT.java |  2 +-
 .../access/NestedDataContextWriteIT.java        |  2 +-
 .../access/NestedDataContext_DeadlockIT.java    |  2 +-
 .../apache/cayenne/access/NumericTypesIT.java   |  2 +-
 .../access/ObjectStoreDiffRetainingIT.java      |  2 +-
 .../cayenne/access/OptimisticLockingIT.java     |  2 +-
 .../cayenne/access/QuotedIdentifiersIT.java     |  2 +-
 .../SimpleIdIncrementalFaultListDataRowsIT.java |  2 +-
 .../access/SimpleIdIncrementalFaultListIT.java  |  2 +-
 .../SimpleIdIncrementalFaultListPrefetchIT.java |  2 +-
 .../access/SingleTableInheritanceIT.java        | 17 ++++-----
 .../java/org/apache/cayenne/access/UUIDIT.java  |  2 +-
 .../access/dbsync/SchemaUpdateStrategyBase.java |  3 +-
 .../access/jdbc/SQLTemplateActionIT.java        |  2 +-
 .../translator/select/OrderingTranslatorIT.java |  4 +-
 .../select/QualifierTranslatorIT.java           |  4 +-
 .../translator/select/QueryAssemblerIT.java     |  4 +-
 .../translator/select/SelectTranslatorIT.java   |  4 +-
 .../cayenne/ashwood/AshwoodEntitySorterIT.java  |  2 +-
 .../server/ServerRuntimeBuilderIT.java          | 13 +++----
 .../apache/cayenne/dba/JdbcPkGeneratorIT.java   |  4 +-
 .../org/apache/cayenne/dba/PkGeneratorIT.java   |  2 +-
 .../cayenne/dba/oracle/OraclePkGeneratorIT.java |  2 +-
 .../cayenne/exp/ParsedExpQualifierCompatIT.java |  2 +-
 .../parser/ExpressionEvaluateInMemoryIT.java    |  2 +-
 .../apache/cayenne/map/DbRelationshipIT.java    |  2 +-
 .../apache/cayenne/map/ObjRelationshipIT.java   |  2 +-
 .../org/apache/cayenne/merge/MergeCase.java     |  2 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java  |  2 +-
 .../cayenne/query/EJBQLQueryNumericIT.java      |  2 +-
 .../org/apache/cayenne/query/SQLTemplateIT.java |  2 +-
 .../org/apache/cayenne/query/SelectByIdIT.java  |  2 +-
 .../query/SelectQueryFetchLimitOrderingIT.java  |  2 +-
 .../reflect/MixedPersistenceStrategyIT.java     |  2 +-
 .../java/org/apache/cayenne/unit/di/DICase.java | 40 ++------------------
 .../apache/cayenne/unit/di/DICaseSelfIT.java    |  4 +-
 .../cayenne/unit/di/server/DBCleaner.java       |  3 +-
 .../cayenne/unit/di/server/ServerCase.java      |  5 ++-
 .../unit/di/server/ServerCaseSelfIT.java        |  4 +-
 .../org/apache/cayenne/unit/jira/CAY_115IT.java |  2 +-
 .../org/apache/cayenne/unit/jira/CAY_191IT.java |  2 +-
 .../org/apache/cayenne/unit/jira/CAY_194IT.java |  2 +-
 .../util/DeepMergeOperationInheritanceIT.java   | 14 +++++--
 .../cayenne/util/ShallowMergeOperationIT.java   |  2 +-
 144 files changed, 193 insertions(+), 227 deletions(-)
----------------------------------------------------------------------



[11/39] cayenne git commit: improve DBCleaner without filtering

Posted by aa...@apache.org.
improve DBCleaner without filtering


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/a5559d7d
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/a5559d7d
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/a5559d7d

Branch: refs/heads/CAY-1946_1
Commit: a5559d7d4b7e55725e15b64068f2b41596060075
Parents: df3494b
Author: Savva Kolbechev <s....@gmail.com>
Authored: Wed Nov 19 18:03:30 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Wed Nov 19 18:03:30 2014 +0300

----------------------------------------------------------------------
 .../cayenne/unit/di/server/DBCleaner.java       | 225 +++----------------
 .../unit/di/server/DBCleanerProvider.java       |   5 +-
 .../cayenne/unit/di/server/SchemaBuilder.java   |   5 +
 .../unit/di/server/ServerCaseModule.java        |   6 +
 4 files changed, 50 insertions(+), 191 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/a5559d7d/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
index 3bd680c..e28525b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
@@ -19,109 +19,49 @@
 
 package org.apache.cayenne.unit.di.server;
 
+import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.configuration.ConfigurationTree;
+import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.configuration.XMLDataChannelDescriptorLoader;
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Injector;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.resource.URLResource;
 import org.apache.cayenne.unit.UnitDbAdapter;
 
+import java.net.URL;
 import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
 
 public class DBCleaner {
 
     private FlavoredDBHelper dbHelper;
     private String location;
+    private DataDomain domain;
+    private XMLDataChannelDescriptorLoader loader;
 
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    public DBCleaner(FlavoredDBHelper dbHelper, String location) {
+    @Inject
+    private Injector injector;
+
+    public DBCleaner(FlavoredDBHelper dbHelper, DataDomain dataDomain, String location) {
         this.dbHelper = dbHelper;
         this.location = location;
+        this.domain = dataDomain;
     }
 
     public void clean() throws SQLException {
-        if (location.equals(CayenneProjects.TESTMAP_PROJECT)) {
-            dbHelper.deleteAll("PAINTING_INFO");
-            dbHelper.deleteAll("PAINTING");
-            dbHelper.deleteAll("PAINTING1");
-            dbHelper.deleteAll("ARTIST_EXHIBIT");
-            dbHelper.deleteAll("ARTIST_GROUP");
-            dbHelper.deleteAll("ARTIST");
-            dbHelper.deleteAll("ARTGROUP");
-            dbHelper.deleteAll("EXHIBIT");
-            dbHelper.deleteAll("GALLERY");
-            dbHelper.deleteAll("ARTIST_CT");
-            dbHelper.deleteAll("GENERATED_COLUMN");
-            dbHelper.deleteAll("NULL_TEST");
-        } else if (location.equals(CayenneProjects.MULTI_TIER_PROJECT)) {
-            dbHelper.deleteAll("MT_TABLE2");
-            dbHelper.deleteAll("MT_TABLE1");
-            dbHelper.deleteAll("MT_JOIN45");
-            dbHelper.deleteAll("MT_TABLE4");
-            dbHelper.deleteAll("MT_TABLE5");
-        } else if (location.equals(CayenneProjects.COMPOUND_PROJECT)) {
-            dbHelper.deleteAll("CHAR_FK_TEST");
-            dbHelper.deleteAll("CHAR_PK_TEST");
-            dbHelper.deleteAll("COMPOUND_FK_TEST");
-            dbHelper.deleteAll("COMPOUND_PK_TEST");
-        } else if (location.equals(CayenneProjects.PEOPLE_PROJECT)) {
-            dbHelper.deleteAll("ADDRESS");
-            dbHelper.deleteAll("DEPARTMENT");
-            dbHelper.deleteAll("PERSON_NOTES");
-            dbHelper.deleteAll("PERSON");
-            dbHelper.deleteAll("CLIENT_COMPANY");
-        } else if (location.equals(CayenneProjects.BINARY_PK_PROJECT)) {
+        if (location.equals(CayenneProjects.BINARY_PK_PROJECT)) {
             if (accessStackAdapter.supportsBinaryPK()) {
                 dbHelper.deleteAll("BINARY_PK_TEST2");
                 dbHelper.deleteAll("BINARY_PK_TEST1");
             }
-        } else if (location.equals(CayenneProjects.DATE_TIME_PROJECT)) {
-            dbHelper.deleteAll("CALENDAR_TEST");
-            dbHelper.deleteAll("DATE_TEST");
-        } else if (location.equals(CayenneProjects.DELETE_RULES_PROJECT)) {
-            dbHelper.deleteAll("DELETE_CASCADE");
-            dbHelper.deleteAll("DELETE_DENY");
-            dbHelper.deleteAll("DELETE_NULLIFY");
-            dbHelper.deleteAll("DELETE_RULE");
-        } else if (location.equals(CayenneProjects.EMBEDDABLE_PROJECT)) {
-            dbHelper.deleteAll("EMBED_ENTITY1");
         } else if (location.equals(CayenneProjects.EMPTY_PROJECT)) {
             return;
-        } else if (location.equals(CayenneProjects.ENUM_PROJECT)) {
-            dbHelper.deleteAll("ENUM_ENTITY");
-        } else if (location.equals(CayenneProjects.EXTENDED_TYPE_PROJECT)) {
-            dbHelper.deleteAll("EXTENDED_TYPE_TEST");
-        } else if (location.equals(CayenneProjects.GENERATED_PROJECT)) {
-            dbHelper.deleteAll("GENERATED_JOIN");
-            dbHelper.deleteAll("GENERATED_F1");
-            dbHelper.deleteAll("GENERATED_F2");
-            dbHelper.deleteAll("GENERATED_COLUMN_DEP");
-            dbHelper.deleteAll("GENERATED_COLUMN_TEST");
-            dbHelper.deleteAll("GENERATED_COLUMN_TEST2");
-            dbHelper.deleteAll("GENERATED_COLUMN_COMP_KEY");
-            dbHelper.deleteAll("GENERATED_COLUMN_COMP_M");
-        } else if (location.equals(CayenneProjects.GENERIC_PROJECT)) {
-            dbHelper.deleteAll("GENERIC2");
-            dbHelper.deleteAll("GENERIC1");
-        } else if (location.equals(CayenneProjects.INHERITANCE_PROJECT)) {
-            dbHelper.deleteAll("BASE_ENTITY");
-            dbHelper.deleteAll("DIRECT_TO_SUB_ENTITY");
-            dbHelper.deleteAll("RELATED_ENTITY");
-        } else if (location.equals(CayenneProjects.INHERITANCE_SINGLE_TABLE1_PROJECT)) {
-            dbHelper.deleteAll("GROUP_MEMBERS");
-            dbHelper.deleteAll("USER_PROPERTIES");
-            dbHelper.deleteAll("GROUP_PROPERTIES");
-            dbHelper.deleteAll("ROLES");
-        } else if (location.equals(CayenneProjects.INHERITANCE_VERTICAL_PROJECT)) {
-            dbHelper.deleteAll("IV_SUB1_SUB1");
-            dbHelper.deleteAll("IV_SUB1");
-            dbHelper.deleteAll("IV_SUB2");
-            dbHelper.deleteAll("IV_ROOT");
-            dbHelper.deleteAll("IV1_SUB1");
-            dbHelper.deleteAll("IV1_ROOT");
-            dbHelper.deleteAll("IV2_SUB1");
-            dbHelper.deleteAll("IV2_ROOT");
-            dbHelper.deleteAll("IV2_X");
-        } else if (location.equals(CayenneProjects.LIFECYCLES_PROJECT)) {
-            dbHelper.deleteAll("LIFECYCLES");
         } else if (location.equals(CayenneProjects.LOB_PROJECT)) {
             dbHelper.deleteAll("CLOB_TEST_RELATION");
             if (accessStackAdapter.supportsLobs()) {
@@ -129,129 +69,34 @@ public class DBCleaner {
                 dbHelper.deleteAll("CLOB_TEST");
             }
             dbHelper.deleteAll("TEST");
-        } else if (location.equals(CayenneProjects.LOCKING_PROJECT)) {
-            dbHelper.deleteAll("LOCKING_HELPER");
-            dbHelper.deleteAll("REL_LOCKING_TEST");
-            dbHelper.deleteAll("SIMPLE_LOCKING_TEST");
-        } else if (location.equals(CayenneProjects.MAP_TO_MANY_PROJECT)) {
-            dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
-            dbHelper.deleteAll("ID_MAP_TO_MANY");
-            dbHelper.deleteAll("MAP_TO_MANY_TARGET");
-            dbHelper.deleteAll("MAP_TO_MANY");
-        } else if (location.equals(CayenneProjects.MEANINGFUL_PK_PROJECT)) {
-            dbHelper.deleteAll("MEANINGFUL_PK");
-            dbHelper.deleteAll("MEANINGFUL_PK_DEP");
-            dbHelper.deleteAll("MEANINGFUL_PK_TEST1");
         } else if (location.equals(CayenneProjects.MISC_TYPES_PROJECT)) {
             if (accessStackAdapter.supportsLobs()) {
                 dbHelper.deleteAll("SERIALIZABLE_ENTITY");
             }
             dbHelper.deleteAll("ARRAYS_ENTITY");
             dbHelper.deleteAll("CHARACTER_ENTITY");
-        } else if (location.equals(CayenneProjects.MIXED_PERSISTENCE_STRATEGY_PROJECT)) {
-            dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY2");
-            dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY");
-        } else if (location.equals(CayenneProjects.MULTINODE_PROJECT)) {
-            dbHelper.deleteAll("CROSSDB_M1E1");
-            dbHelper.deleteAll("CROSSDB_M2E1");
-            dbHelper.deleteAll("CROSSDB_M2E2");
-        } else if (location.equals(CayenneProjects.NO_PK_PROJECT)) {
-            dbHelper.deleteAll("NO_PK_TEST");
-        } else if (location.equals(CayenneProjects.NUMERIC_TYPES_PROJECT)) {
-            dbHelper.deleteAll("BIGDECIMAL_ENTITY");
-            dbHelper.deleteAll("BIGINTEGER_ENTITY");
-            dbHelper.deleteAll("BOOLEAN_TEST");
-            dbHelper.deleteAll("BIT_TEST");
-            dbHelper.deleteAll("SMALLINT_TEST");
-            dbHelper.deleteAll("TINYINT_TEST");
-            dbHelper.deleteAll("DECIMAL_PK_TST");
-            dbHelper.deleteAll("FLOAT_TEST");
-            dbHelper.deleteAll("LONG_ENTITY");
-        } else if (location.equals(CayenneProjects.ONEWAY_PROJECT)) {
-            dbHelper.deleteAll("oneway_table2");
-            dbHelper.deleteAll("oneway_table1");
-            dbHelper.deleteAll("oneway_table4");
-            dbHelper.deleteAll("oneway_table3");
-        } else if (location.equals(CayenneProjects.PERSISTENT_PROJECT)) {
-            dbHelper.deleteAll("CONTINENT");
-            dbHelper.deleteAll("COUNTRY");
-        } else if (location.equals(CayenneProjects.PRIMITIVE_PROJECT)) {
-            dbHelper.deleteAll("PRIMITIVES_TEST");
-        } else if (location.equals(CayenneProjects.QUALIFIED_PROJECT)) {
-            dbHelper.deleteAll("TEST_QUALIFIED2");
-            dbHelper.deleteAll("TEST_QUALIFIED1");
-        } else if (location.equals(CayenneProjects.QUOTED_IDENTIFIERS_PROJECT)) {
-            dbHelper.deleteAll("quote Person");
-            dbHelper.deleteAll("QUOTED_ADDRESS");
-        } else if (location.equals(CayenneProjects.REFLEXIVE_PROJECT)) {
-            dbHelper.deleteAll("REFLEXIVE");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_PROJECT)) {
-            dbHelper.deleteAll("FK_OF_DIFFERENT_TYPE");
-            dbHelper.deleteAll("REFLEXIVE_AND_TO_ONE");
-            dbHelper.deleteAll("RELATIONSHIP_HELPER");
-            dbHelper.deleteAll("MEANINGFUL_FK");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_ACTIVITY_PROJECT)) {
-            dbHelper.deleteAll("ACTIVITY");
-            dbHelper.deleteAll("RESULT");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_CHILD_MASTER_PROJECT)) {
-            dbHelper.deleteAll("CHILD");
-            dbHelper.deleteAll("MASTER");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_CLOB_PROJECT)) {
-            dbHelper.deleteAll("CLOB_DETAIL");
-            dbHelper.deleteAll("CLOB_MASTER");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT)) {
-            dbHelper.deleteAll("COLLECTION_TO_MANY_TARGET");
-            dbHelper.deleteAll("COLLECTION_TO_MANY");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_DELETE_RULES_PROJECT)) {
-            dbHelper.deleteAll("DELETE_RULE_TEST3");
-            dbHelper.deleteAll("DELETE_RULE_TEST1");
-            dbHelper.deleteAll("DELETE_RULE_TEST2");
-            dbHelper.deleteAll("DELETE_RULE_JOIN");
-            dbHelper.deleteAll("DELETE_RULE_FLATB");
-            dbHelper.deleteAll("DELETE_RULE_FLATA");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)) {
-            dbHelper.deleteAll("COMPLEX_JOIN");
-            dbHelper.deleteAll("FLATTENED_TEST_4");
-            dbHelper.deleteAll("FLATTENED_TEST_3");
-            dbHelper.deleteAll("FLATTENED_TEST_2");
-            dbHelper.deleteAll("FLATTENED_TEST_1");
-            dbHelper.deleteAll("FLATTENED_CIRCULAR_JOIN");
-            dbHelper.deleteAll("FLATTENED_CIRCULAR");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_SET_TO_MANY_PROJECT)) {
-            dbHelper.deleteAll("SET_TO_MANY_TARGET");
-            dbHelper.deleteAll("SET_TO_MANY");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_TO_MANY_FK_PROJECT)) {
-            dbHelper.deleteAll("TO_MANY_FKDEP");
-            dbHelper.deleteAll("TO_MANY_FKROOT");
-            dbHelper.deleteAll("TO_MANY_ROOT2");
-        } else if (location.equals(CayenneProjects.RELATIONSHIPS_TO_ONE_FK_PROJECT)) {
-            dbHelper.deleteAll("TO_ONE_FK1");
-            dbHelper.deleteAll("TO_ONE_FK2");
         } else if (location.equals(CayenneProjects.RETURN_TYPES_PROJECT)) {
             if (accessStackAdapter.supportsLobs()) {
                 dbHelper.deleteAll("TYPES_MAPPING_LOBS_TEST1");
                 dbHelper.deleteAll("TYPES_MAPPING_TEST2");
             }
             dbHelper.deleteAll("TYPES_MAPPING_TEST1");
-        } else if (location.equals(CayenneProjects.SOFT_DELETE_PROJECT)) {
-            dbHelper.deleteAll("SOFT_DELETE");
-        } else if (location.equals(CayenneProjects.SUS_PROJECT)) {
-            return;
-        } else if (location.equals(CayenneProjects.TABLE_PRIMITIVES_PROJECT)) {
-            dbHelper.deleteAll("TABLE_PRIMITIVES");
-        } else if (location.equals(CayenneProjects.THINGS_PROJECT)) {
-            dbHelper.deleteAll("BALL");
-            dbHelper.deleteAll("BOX_THING");
-            dbHelper.deleteAll("THING");
-            dbHelper.deleteAll("BOX_INFO");
-            dbHelper.deleteAll("BOX");
-            dbHelper.deleteAll("BAG");
-        } else if (location.equals(CayenneProjects.TOONE_PROJECT)) {
-            dbHelper.deleteAll("TOONE_DEP");
-            dbHelper.deleteAll("TOONE_MASTER");
-        } else if (location.equals(CayenneProjects.UUID_PROJECT)) {
-            dbHelper.deleteAll("UUID_TEST");
-            dbHelper.deleteAll("UUID_PK_ENTITY");
+        } else {
+            loader = new XMLDataChannelDescriptorLoader();
+            injector.injectMembers(loader);
+
+            URL url = getClass().getClassLoader().getResource(location);
+            ConfigurationTree<DataChannelDescriptor> tree = loader.load(new URLResource(url));
+
+            for (DataMap map : tree.getRootNode().getDataMaps()) {
+                DataMap dataMap = domain.getDataMap(map.getName());
+                List<DbEntity> entities = new ArrayList<DbEntity>(dataMap.getDbEntities());
+                domain.getEntitySorter().sortDbEntities(entities, true);
+
+                for (DbEntity entity : entities) {
+                    dbHelper.deleteAll(entity.getName());
+                }
+            }
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a5559d7d/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
index 86b5e86..ff579b4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
@@ -32,9 +32,12 @@ public class DBCleanerProvider implements Provider<DBCleaner> {
     @Inject
     protected Provider<ServerCaseProperties> propertiesProvider;
 
+    @Inject
+    private SchemaBuilder schemaBuilder;
+
     @Override
     public DBCleaner get() throws ConfigurationException {
-        return new DBCleaner((FlavoredDBHelper) dbHelper, propertiesProvider.get().getConfigurationLocation());
+        return new DBCleaner((FlavoredDBHelper) dbHelper, schemaBuilder.getDomain(), propertiesProvider.get().getConfigurationLocation());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a5559d7d/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
index a497e0d..02bd5fe 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
@@ -366,4 +366,9 @@ public class SchemaBuilder {
 
         return queries;
     }
+
+    protected DataDomain getDomain() {
+        return domain;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a5559d7d/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
index 4bf0bbb..b24aef9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
@@ -42,11 +42,15 @@ import org.apache.cayenne.access.types.TimestampType;
 import org.apache.cayenne.access.types.UUIDType;
 import org.apache.cayenne.access.types.UtilDateType;
 import org.apache.cayenne.access.types.VoidType;
+import org.apache.cayenne.configuration.ConfigurationNameMapper;
 import org.apache.cayenne.configuration.Constants;
+import org.apache.cayenne.configuration.DataMapLoader;
+import org.apache.cayenne.configuration.DefaultConfigurationNameMapper;
 import org.apache.cayenne.configuration.DefaultObjectStoreFactory;
 import org.apache.cayenne.configuration.DefaultRuntimeProperties;
 import org.apache.cayenne.configuration.ObjectStoreFactory;
 import org.apache.cayenne.configuration.RuntimeProperties;
+import org.apache.cayenne.configuration.XMLDataMapLoader;
 import org.apache.cayenne.configuration.server.DataSourceFactory;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.conn.DataSourceInfo;
@@ -208,6 +212,8 @@ public class ServerCaseModule implements Module {
         binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class);
         binder.bind(ResourceLocator.class).to(ClassLoaderResourceLocator.class);
         binder.bind(ObjectStoreFactory.class).to(DefaultObjectStoreFactory.class);
+        binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class);
+        binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class);
 
         // test-scoped objects
         binder.bind(EntityResolver.class).toProvider(


[05/39] cayenne git commit: Implement DBCleaner

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
index 3ae0c34..6cd67d2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
@@ -30,8 +30,10 @@ import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -46,7 +48,7 @@ import static org.junit.Assert.fail;
 // TODO: redefine all test cases in terms of entities in "relationships" map
 // and merge this test case with DeleteRulesTst that inherits
 // from RelationshipTestCase.
-@UseServerRuntime("cayenne-small-testmap.xml")
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextDeleteRulesIT extends ServerCase {
 
     @Inject
@@ -55,17 +57,9 @@ public class DataContextDeleteRulesIT extends ServerCase {
     @Inject
     private DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
+    @Before
+    public void testSetUp() throws Exception {
         dbHelper.update("ARTGROUP").set("PARENT_GROUP_ID", null, Types.INTEGER).execute();
-        dbHelper.deleteAll("ARTGROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
index 272e61f..582eb04 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
@@ -31,8 +31,10 @@ import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -45,7 +47,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextDisjointByIdPrefetchIT extends ServerCase {
 
     @Inject
@@ -61,14 +63,8 @@ public class DataContextDisjointByIdPrefetchIT extends ServerCase {
     private TableHelper tPainting;
     private TableHelper tPaintingInfo;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
index 2d43bf5..ba4b6c2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
@@ -35,8 +35,10 @@ import org.apache.cayenne.testdo.things.BoxInfo;
 import org.apache.cayenne.testdo.things.Thing;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -50,7 +52,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.THINGS_PROJECT)
+@UseServerRuntime(CayenneProjects.THINGS_PROJECT)
 public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
 
     @Inject
@@ -67,15 +69,8 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
 
     protected TableHelper tBoxThing;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("BALL");
-        dbHelper.deleteAll("BOX_THING");
-        dbHelper.deleteAll("THING");
-        dbHelper.deleteAll("BOX_INFO");
-        dbHelper.deleteAll("BOX");
-        dbHelper.deleteAll("BAG");
-
+    @Before
+    public void testSetUp() throws Exception {
         tBoxThing = new TableHelper(dbHelper, "BOX_THING");
         tBoxThing.setColumns("BOX_ID", "THING_WEIGHT", "THING_VOLUME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
index d0955c9..b924325 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
@@ -24,8 +24,10 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -35,7 +37,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLArrayResultIT extends ServerCase {
 
     @Inject
@@ -44,14 +46,8 @@ public class DataContextEJBQLArrayResultIT extends ServerCase {
     @Inject
     protected DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         tArtist.insert(33001, "AA1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
index b283614..360967e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -46,7 +48,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLConditionsIT extends ServerCase {
 
     @Inject
@@ -58,14 +60,8 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
index 2dd5dde..c83399f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.inheritance_people.Address;
 import org.apache.cayenne.testdo.inheritance_people.Department;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -39,7 +41,7 @@ import java.util.Set;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.PEOPLE_PROJECT)
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
 public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
 
     @Inject
@@ -48,8 +50,8 @@ public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
     @Inject
     private ObjectContext context;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
 
         TableHelper tPerson = new TableHelper(dbHelper, "PERSON");
         tPerson.setColumns(
@@ -63,12 +65,6 @@ public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
         // manually break circular deps
         tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
 
-        dbHelper.deleteAll("ADDRESS");
-        dbHelper.deleteAll("DEPARTMENT");
-        dbHelper.deleteAll("PERSON_NOTES");
-        dbHelper.deleteAll("PERSON");
-        dbHelper.deleteAll("CLIENT_COMPANY");
-
         // TODO: use TableHelper to create test data
 
         Department d1 = context.newObject(Department.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
index 03db219..8b0a25a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
@@ -22,8 +22,8 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.date_time.DateTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,20 +34,12 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.DATE_TIME_PROJECT)
+@UseServerRuntime(CayenneProjects.DATE_TIME_PROJECT)
 public class DataContextEJBQLDateTimeFunctionalExpressionsIT extends ServerCase {
 
     @Inject
-    protected DBHelper dbHelper;
-
-    @Inject
     private ObjectContext context;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("DATE_TEST");
-    }
-
     @Test
     public void testCURRENT_DATE() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
index f29f219..fe44df1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -37,7 +39,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLDeleteIT extends ServerCase {
 
     @Inject
@@ -51,14 +53,8 @@ public class DataContextEJBQLDeleteIT extends ServerCase {
 
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tPainting = new TableHelper(dbHelper, "PAINTING");
         tPainting.setColumns(
                 "PAINTING_ID",

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
index 9a950a2..cfe9168 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -34,7 +36,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.MEANINGFUL_PK_PROJECT)
+@UseServerRuntime(CayenneProjects.MEANINGFUL_PK_PROJECT)
 public class DataContextEJBQLDeletePKIT extends ServerCase {
 
     @Inject
@@ -45,11 +47,8 @@ public class DataContextEJBQLDeletePKIT extends ServerCase {
 
     protected TableHelper tMeaningfulPKTest1Table;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MEANINGFUL_PK_DEP");
-        dbHelper.deleteAll("MEANINGFUL_PK_TEST1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMeaningfulPKTest1Table = new TableHelper(dbHelper, "MEANINGFUL_PK_TEST1");
         tMeaningfulPKTest1Table.setColumns("PK_ATTRIBUTE", "DESCR");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
index 1ed6d89..42f81f4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
@@ -32,8 +32,10 @@ import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Date;
@@ -47,7 +49,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLFetchJoinIT extends ServerCase {
 
     @Inject
@@ -65,16 +67,8 @@ public class DataContextEJBQLFetchJoinIT extends ServerCase {
     protected TableHelper tExhibit;
     protected TableHelper tArtistExhibit;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
index bac7b4b..5b2e776 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.HashSet;
@@ -40,7 +42,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_FLATTENED_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)
 public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
 
     @Inject
@@ -54,15 +56,8 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
     protected TableHelper ft3Helper;
     protected TableHelper ft4Helper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
-        dbHelper.deleteAll("COMPLEX_JOIN");
-        dbHelper.deleteAll("FLATTENED_TEST_4");
-        dbHelper.deleteAll("FLATTENED_TEST_3");
-        dbHelper.deleteAll("FLATTENED_TEST_2");
-        dbHelper.deleteAll("FLATTENED_TEST_1");
-
+    @Before
+    public void testSetUp() throws Exception {
         ft1Helper = new TableHelper(dbHelper, "FLATTENED_TEST_1", "FT1_ID", "NAME");
 
         ft2Helper = new TableHelper(dbHelper, "FLATTENED_TEST_2");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
index cd75d76..50c274b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
@@ -24,10 +24,10 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.query.QueryChain;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -38,27 +38,15 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 // TODO: renamed as it fails on DB's like Derby. See CAY-1480. 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLFunctionalExpressionsIT extends ServerCase {
 
     @Inject
-    protected DBHelper dbHelper;
-
-    @Inject
     private ObjectContext context;
 
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testSIZE() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
index 30fc0db..1db11fd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.test.junit.AssertExtras;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -42,7 +44,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLGroupByHavingIT extends ServerCase {
 
     @Inject
@@ -55,16 +57,8 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
     protected TableHelper tPainting;
     protected TableHelper tGallery;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
index ca5f763..3d5b01e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.inheritance_people.CustomerRepresentative;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -35,7 +37,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.PEOPLE_PROJECT)
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
 public class DataContextEJBQLInheritanceIT extends ServerCase {
 
     @Inject
@@ -44,18 +46,11 @@ public class DataContextEJBQLInheritanceIT extends ServerCase {
     @Inject
     protected DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
+    @Before
+    public void testSetUp() throws Exception {
         // manually break circular deps
         dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute();
 
-        dbHelper.deleteAll("ADDRESS");
-        dbHelper.deleteAll("DEPARTMENT");
-        dbHelper.deleteAll("PERSON_NOTES");
-        dbHelper.deleteAll("PERSON");
-        dbHelper.deleteAll("CLIENT_COMPANY");
-
         TableHelper person = new TableHelper(dbHelper, "PERSON");
         person.setColumns("PERSON_ID", "NAME", "PERSON_TYPE", "SALARY").setColumnTypes(Types.INTEGER, Types.VARCHAR,
                 Types.CHAR, Types.FLOAT);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
index 24ca818..5151e53 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -35,7 +37,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLIsNullIT extends ServerCase {
 
     @Inject
@@ -50,14 +52,8 @@ public class DataContextEJBQLIsNullIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
index 4f587de..ef6b884 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -38,7 +40,7 @@ import java.util.Set;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLJoinsIT extends ServerCase {
 
     @Inject
@@ -51,16 +53,8 @@ public class DataContextEJBQLJoinsIT extends ServerCase {
     protected TableHelper tPainting;
     protected TableHelper tGallery;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
index ec876b6..97f7e22 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.numeric_types.BigDecimalEntity;
 import org.apache.cayenne.testdo.numeric_types.BigIntegerEntity;
 import org.apache.cayenne.testdo.numeric_types.BooleanTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -41,7 +43,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.NUMERIC_TYPES_PROJECT)
+@UseServerRuntime(CayenneProjects.NUMERIC_TYPES_PROJECT)
 public class DataContextEJBQLNumericalFunctionalIT extends ServerCase {
 
     @Inject
@@ -52,12 +54,8 @@ public class DataContextEJBQLNumericalFunctionalIT extends ServerCase {
 
     private TableHelper tBigIntegerEntity;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("BIGDECIMAL_ENTITY");
-        dbHelper.deleteAll("BIGINTEGER_ENTITY");
-        dbHelper.deleteAll("BOOLEAN_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tBigIntegerEntity = new TableHelper(dbHelper, "BIGINTEGER_ENTITY");
         tBigIntegerEntity.setColumns("ID", "BIG_INTEGER_FIELD");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
index 133aa10..b4fe558 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -34,7 +36,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLOrderByIT extends ServerCase {
 
     @Inject
@@ -46,14 +48,8 @@ public class DataContextEJBQLOrderByIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
index 3969534..73809ac 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.compound.CompoundFkTestEntity;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -38,7 +40,7 @@ import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class DataContextEJBQLQueryCompoundIT extends ServerCase {
 
     @Inject
@@ -53,11 +55,8 @@ public class DataContextEJBQLQueryCompoundIT extends ServerCase {
     private TableHelper tCompoundPk;
     private TableHelper tCompoundFk;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tCompoundPk = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPk.setColumns("KEY1", "KEY2");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
index a61cf18..cb27ea5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
@@ -31,8 +31,10 @@ import org.apache.cayenne.test.junit.AssertExtras;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -46,7 +48,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLQueryIT extends ServerCase {
 
     @Inject
@@ -61,14 +63,8 @@ public class DataContextEJBQLQueryIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
index 3b4ccbe..e704c44 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -40,7 +42,7 @@ import java.util.Set;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLSubqueryIT extends ServerCase {
 
     @Inject
@@ -55,15 +57,8 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
index 9fe77ed..5e00532 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
 
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class DataContextEJBQLUpdateCompoundIT extends ServerCase {
 
     @Inject
@@ -50,11 +52,8 @@ public class DataContextEJBQLUpdateCompoundIT extends ServerCase {
     private TableHelper tCompoundPk;
     private TableHelper tCompoundFk;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tCompoundPk = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPk.setColumns("KEY1", "KEY2");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
index fad0256..6761132 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -35,7 +37,7 @@ import java.sql.Types;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextEJBQLUpdateIT extends ServerCase {
 
     @Inject
@@ -47,14 +49,8 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKIT.java
index 34be732..0b93031 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEntityWithMeaningfulPKIT.java
@@ -26,9 +26,9 @@ import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.ObjectIdQuery;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKDep;
 import org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKTest1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -41,24 +41,16 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.MEANINGFUL_PK_PROJECT)
+@UseServerRuntime(CayenneProjects.MEANINGFUL_PK_PROJECT)
 public class DataContextEntityWithMeaningfulPKIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
 
     @Inject
     private ServerRuntime runtime;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MEANINGFUL_PK_DEP");
-        dbHelper.deleteAll("MEANINGFUL_PK_TEST1");
-    }
-
     @Test
     public void testInsertWithMeaningfulPK() throws Exception {
         MeaningfulPKTest1 obj = context.newObject(MeaningfulPKTest1.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
index 594ef1f..ee041cf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
@@ -25,9 +25,9 @@ import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.CapsStrategy;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.extended_type.ExtendedTypeEntity;
 import org.apache.cayenne.testdo.extended_type.StringET1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,20 +36,12 @@ import java.util.Arrays;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.EXTENDED_TYPE_PROJECT)
+@UseServerRuntime(CayenneProjects.EXTENDED_TYPE_PROJECT)
 public class DataContextExtendedTypeOperationsIT extends ServerCase {
 
     @Inject
     protected ObjectContext context;
 
-    @Inject
-    protected DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("EXTENDED_TYPE_TEST");
-    }
-
     @Test
     public void testStoreExtendedType() {
         ExtendedTypeEntity e1 = context.newObject(ExtendedTypeEntity.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
index f5f32c4..2acc316 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
@@ -39,8 +39,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -56,7 +58,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextExtrasIT extends ServerCase {
 
     @Inject
@@ -74,15 +76,8 @@ public class DataContextExtrasIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
index 0837d07..4d7f4b7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesIT.java
@@ -32,6 +32,7 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.CompoundPainting;
 import org.apache.cayenne.testdo.testmap.CompoundPaintingLongNames;
 import org.apache.cayenne.testdo.testmap.Gallery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -46,7 +47,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextFlattenedAttributesIT extends ServerCase {
 
     @Inject
@@ -55,17 +56,6 @@ public class DataContextFlattenedAttributesIT extends ServerCase {
     @Inject
     private DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("GALLERY");
-    }
-
     private void createTestDataSet() throws Exception {
         TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
index ee63afa..5434fcb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
@@ -51,9 +51,11 @@ import org.apache.cayenne.testdo.testmap.ROArtist;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -79,7 +81,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextIT extends ServerCase {
 
     @Inject
@@ -102,16 +104,8 @@ public class DataContextIT extends ServerCase {
     protected TableHelper tGallery;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
index 911b42b..bf465c6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Timestamp;
@@ -36,7 +38,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextJoinAliasesIT extends ServerCase {
     
     @Inject
@@ -50,13 +52,8 @@ public class DataContextJoinAliasesIT extends ServerCase {
     protected TableHelper tGallery;
     protected TableHelper tArtistExhibit;
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-        dbHelper.deleteAll("ARTIST");
-        
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
index 4102669..461210e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -39,7 +41,7 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextLocalObjectIT extends ServerCase {
 
     @Inject
@@ -59,16 +61,8 @@ public class DataContextLocalObjectIT extends ServerCase {
 
     private TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
index 0e23a8d..4c4f906 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.no_pk.NoPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.NO_PK_PROJECT)
+@UseServerRuntime(CayenneProjects.NO_PK_PROJECT)
 public class DataContextNoPkIT extends ServerCase {
 
     @Inject
@@ -47,8 +49,8 @@ public class DataContextNoPkIT extends ServerCase {
     @Inject
     protected DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         TableHelper noPkTestTable = new TableHelper(dbHelper, "NO_PK_TEST", "ATTRIBUTE1");
         noPkTestTable.deleteAll();
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java
index cdace4b..5cf05a4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java
@@ -23,8 +23,8 @@ import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.ObjectIdQuery;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,25 +36,12 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextObjectIdQueryIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testRefreshNullifiedValuesNew() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
index 15ea9b7..acc61ed 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -46,7 +48,7 @@ import static org.junit.Assert.assertSame;
  * Tests objects registration in DataContext, transferring objects between contexts and
  * such.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextObjectTrackingIT extends ServerCase {
 
     @Inject
@@ -64,14 +66,8 @@ public class DataContextObjectTrackingIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
index 1134f4d..a66fd16 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOrderingIT.java
@@ -22,9 +22,9 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.SortOrder;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,25 +36,12 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextOrderingIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testMultipleOrdering() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
index a322082..8029f7c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -38,7 +40,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextOuterJoinsIT extends ServerCase {
 
     @Inject
@@ -52,9 +54,8 @@ public class DataContextOuterJoinsIT extends ServerCase {
     protected TableHelper artgroupHelper;
     protected TableHelper artistGroupHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
+    @Before
+    public void testSetUp() throws Exception {
         artistHelper = new TableHelper(dbHelper, "ARTIST", "ARTIST_ID", "ARTIST_NAME");
         paintingHelper = new TableHelper(
                 dbHelper,

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
index 5178517..d86ba38 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
@@ -24,8 +24,10 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -33,7 +35,7 @@ import java.util.List;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextPaginatedQueryIT extends ServerCase {
 
     @Inject
@@ -44,13 +46,8 @@ public class DataContextPaginatedQueryIT extends ServerCase {
 
     protected TableHelper tArtist;
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
index 20f0f58..5304b21 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
@@ -33,8 +33,10 @@ import org.apache.cayenne.tx.Transaction;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -47,7 +49,7 @@ import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextPerformQueryAPIIT extends ServerCase {
 
     @Inject
@@ -71,16 +73,8 @@ public class DataContextPerformQueryAPIIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("GALLERY");
-        dbHelper.deleteAll("EXHIBIT");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1IT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1IT.java
index 9995660..18b74fd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtras1IT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -38,7 +39,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * A test case for CAY-788.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextPrefetchExtras1IT extends ServerCase {
 
     @Inject
@@ -47,15 +48,6 @@ public class DataContextPrefetchExtras1IT extends ServerCase {
     @Inject
     protected DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     protected void createDataSet() throws Exception {
 
         TableHelper tPainting = new TableHelper(dbHelper, "PAINTING");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
index 06cc7bd..9eb59ea 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
@@ -35,8 +35,10 @@ import org.apache.cayenne.testdo.compound.CharFkTestEntity;
 import org.apache.cayenne.testdo.compound.CharPkTestEntity;
 import org.apache.cayenne.testdo.compound.CompoundFkTestEntity;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -50,7 +52,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Test prefetching of various obscure cases.
  */
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class DataContextPrefetchExtrasIT extends ServerCase {
 
     @Inject
@@ -64,14 +66,8 @@ public class DataContextPrefetchExtrasIT extends ServerCase {
     protected TableHelper tCompoundPkTest;
     protected TableHelper tCompoundFkTest;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("CHAR_FK_TEST");
-        dbHelper.deleteAll("CHAR_PK_TEST");
-
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tCharPkTest = new TableHelper(dbHelper, "CHAR_PK_TEST");
         tCharPkTest.setColumns("PK_COL", "OTHER_COL");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
index 315bd8a..0995dfa 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
@@ -41,8 +41,10 @@ import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Timestamp;
@@ -59,7 +61,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextPrefetchIT extends ServerCase {
 
     @Inject
@@ -80,19 +82,8 @@ public class DataContextPrefetchIT extends ServerCase {
     protected TableHelper tArtistGroup;
     protected TableHelper tArtGroup;
 
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTGROUP");
-
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
index 2bcd1d6..fb35989 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
@@ -34,8 +34,10 @@ import org.apache.cayenne.testdo.testmap.ArtistExhibit;
 import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Timestamp;
@@ -50,7 +52,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextPrefetchMultistepIT extends ServerCase {
 
     @Inject
@@ -64,16 +66,8 @@ public class DataContextPrefetchMultistepIT extends ServerCase {
     protected TableHelper tGallery;
     protected TableHelper tArtistExhibit;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchQualifierOverlapIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchQualifierOverlapIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchQualifierOverlapIT.java
index 401af58..bfc0b31 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchQualifierOverlapIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchQualifierOverlapIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +35,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextPrefetchQualifierOverlapIT extends ServerCase {
 
     @Inject
@@ -43,16 +44,6 @@ public class DataContextPrefetchQualifierOverlapIT extends ServerCase {
     @Inject
     private DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     private void createTwoArtistsThreePaintingsDataSet() throws Exception {
         TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
index 8a6267d..423047b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
@@ -27,12 +27,12 @@ import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.query.CapsStrategy;
 import org.apache.cayenne.query.ProcedureQuery;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.tx.BaseTransaction;
 import org.apache.cayenne.tx.ExternalTransaction;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -48,7 +48,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextProcedureQueryIT extends ServerCase {
 
     public static final String UPDATE_STORED_PROCEDURE = "cayenne_test_upd_proc";
@@ -63,24 +63,8 @@ public class DataContextProcedureQueryIT extends ServerCase {
     private UnitDbAdapter accessStackAdapter;
 
     @Inject
-    protected DBHelper dbHelper;
-
-    @Inject
     private JdbcEventLogger jdbcEventLogger;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        if (!accessStackAdapter.supportsStoredProcedures()) {
-            return;
-        }
-
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testUpdate() throws Exception {
         if (!accessStackAdapter.supportsStoredProcedures()) {


[20/39] cayenne git commit: re-categorizing Test vs IT

Posted by aa...@apache.org.
re-categorizing Test vs IT

* some test cases were misplaced
* some no longer require "_InContext" qualifier in the name


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/a0d54aba
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/a0d54aba
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/a0d54aba

Branch: refs/heads/CAY-1946_1
Commit: a0d54aba704c3dee919fb2980db6f7fd0666ccd1
Parents: 7aeba71
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 17:35:06 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 17:36:05 2014 +0300

----------------------------------------------------------------------
 .../apache/cayenne/exp/ExpressionFactoryIT.java | 106 ++++++
 .../cayenne/exp/ExpressionFactoryTest.java      | 250 ++++++++++++-
 .../exp/ExpressionFactory_InContextIT.java      | 354 -------------------
 .../org/apache/cayenne/exp/ExpressionIT.java    | 128 +++++++
 .../cayenne/exp/Expression_InContextIT.java     | 128 -------
 5 files changed, 470 insertions(+), 496 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/a0d54aba/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
new file mode 100644
index 0000000..c03b998
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
@@ -0,0 +1,106 @@
+/*****************************************************************
+ *   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.cayenne.exp;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
+public class ExpressionFactoryIT extends ServerCase {
+
+	@Inject
+	private ObjectContext context;
+
+	// CAY-416
+	@Test
+	public void testCollectionMatch() {
+		Artist artist = context.newObject(Artist.class);
+		artist.setArtistName("artist");
+		Painting p1 = context.newObject(Painting.class), p2 = context.newObject(Painting.class), p3 = context
+				.newObject(Painting.class);
+		p1.setPaintingTitle("p1");
+		p2.setPaintingTitle("p2");
+		p3.setPaintingTitle("p3");
+		artist.addToPaintingArray(p1);
+		artist.addToPaintingArray(p2);
+
+		context.commitChanges();
+
+		assertTrue(ExpressionFactory.matchExp("paintingArray", p1).match(artist));
+		assertFalse(ExpressionFactory.matchExp("paintingArray", p3).match(artist));
+		assertFalse(ExpressionFactory.noMatchExp("paintingArray", p1).match(artist));
+		assertTrue(ExpressionFactory.noMatchExp("paintingArray", p3).match(artist));
+
+		assertTrue(ExpressionFactory.matchExp("paintingArray.paintingTitle", "p1").match(artist));
+		assertFalse(ExpressionFactory.matchExp("paintingArray.paintingTitle", "p3").match(artist));
+		assertFalse(ExpressionFactory.noMatchExp("paintingArray.paintingTitle", "p1").match(artist));
+		assertTrue(ExpressionFactory.noMatchExp("paintingArray.paintingTitle", "p3").match(artist));
+
+		assertTrue(ExpressionFactory.inExp("paintingTitle", "p1").match(p1));
+		assertFalse(ExpressionFactory.notInExp("paintingTitle", "p3").match(p3));
+	}
+
+	@Test
+	public void testIn() {
+		Artist a1 = context.newObject(Artist.class);
+		a1.setArtistName("a1");
+		Painting p1 = context.newObject(Painting.class);
+		p1.setPaintingTitle("p1");
+		Painting p2 = context.newObject(Painting.class);
+		p2.setPaintingTitle("p2");
+		a1.addToPaintingArray(p1);
+		a1.addToPaintingArray(p2);
+
+		Expression in = ExpressionFactory.inExp("paintingArray", p1);
+		assertTrue(in.match(a1));
+	}
+
+	@Test
+	public void testEscapeCharacter() {
+		Artist a1 = context.newObject(Artist.class);
+		a1.setArtistName("A_1");
+		Artist a2 = context.newObject(Artist.class);
+		a2.setArtistName("A_2");
+		context.commitChanges();
+
+		Expression ex1 = ExpressionFactory.likeIgnoreCaseDbExp("ARTIST_NAME", "A*_1", '*');
+		SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class, ex1);
+		List<Artist> artists = context.select(q1);
+		assertEquals(1, artists.size());
+
+		Expression ex2 = ExpressionFactory.likeExp("artistName", "A*_2", '*');
+		SelectQuery<Artist> q2 = new SelectQuery<Artist>(Artist.class, ex2);
+		artists = context.select(q2);
+		assertEquals(1, artists.size());
+	}
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a0d54aba/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryTest.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryTest.java
index d52548c..5c41ff1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryTest.java
@@ -28,8 +28,11 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
+import org.apache.cayenne.exp.parser.ASTLike;
+import org.apache.cayenne.exp.parser.ASTLikeIgnoreCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -42,6 +45,232 @@ public class ExpressionFactoryTest {
 		handler = new TstTraversalHandler();
 	}
 
+	@Test(expected = ExpressionException.class)
+	public void testExpressionOfBadType() throws Exception {
+		// non existing type
+		int badType = -50;
+		ExpressionFactory.expressionOfType(badType);
+	}
+
+	@Test
+	public void testBetweenExp() throws Exception {
+		Object v1 = new Object();
+		Object v2 = new Object();
+		Expression exp = ExpressionFactory.betweenExp("abc", v1, v2);
+		assertEquals(Expression.BETWEEN, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+	}
+
+	@Test
+	public void testBetweenDbExp() throws Exception {
+		Object v1 = new Object();
+		Object v2 = new Object();
+		Expression exp = ExpressionFactory.betweenDbExp("abc", v1, v2);
+		assertEquals(Expression.BETWEEN, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testNotBetweenExp() throws Exception {
+		Object v1 = new Object();
+		Object v2 = new Object();
+		Expression exp = ExpressionFactory.notBetweenExp("abc", v1, v2);
+		assertEquals(Expression.NOT_BETWEEN, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+	}
+
+	@Test
+	public void testNotBetweenDbExp() throws Exception {
+		Object v1 = new Object();
+		Object v2 = new Object();
+		Expression exp = ExpressionFactory.notBetweenDbExp("abc", v1, v2);
+		assertEquals(Expression.NOT_BETWEEN, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testGreaterExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.greaterExp("abc", v);
+		assertEquals(Expression.GREATER_THAN, exp.getType());
+	}
+
+	@Test
+	public void testGreaterDbExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.greaterDbExp("abc", v);
+		assertEquals(Expression.GREATER_THAN, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testGreaterOrEqualExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.greaterOrEqualExp("abc", v);
+		assertEquals(Expression.GREATER_THAN_EQUAL_TO, exp.getType());
+	}
+
+	@Test
+	public void testGreaterOrEqualDbExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.greaterOrEqualDbExp("abc", v);
+		assertEquals(Expression.GREATER_THAN_EQUAL_TO, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testLessExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.lessExp("abc", v);
+		assertEquals(Expression.LESS_THAN, exp.getType());
+	}
+
+	@Test
+	public void testLessDbExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.lessDbExp("abc", v);
+		assertEquals(Expression.LESS_THAN, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testLessOrEqualExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.lessOrEqualExp("abc", v);
+		assertEquals(Expression.LESS_THAN_EQUAL_TO, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+	}
+
+	@Test
+	public void testLessOrEqualDbExp() throws Exception {
+		Object v = new Object();
+		Expression exp = ExpressionFactory.lessOrEqualDbExp("abc", v);
+		assertEquals(Expression.LESS_THAN_EQUAL_TO, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testInExp1() throws Exception {
+		Expression exp = ExpressionFactory.inExp("abc", "a", "b");
+		assertEquals(Expression.IN, exp.getType());
+	}
+
+	@Test
+	public void testInExp2() throws Exception {
+		List<Object> v = new ArrayList<Object>();
+		v.add("a");
+		v.add("b");
+		Expression exp = ExpressionFactory.inExp("abc", v);
+		assertEquals(Expression.IN, exp.getType());
+	}
+
+	@Test
+	public void testInExp3() throws Exception {
+		List<Object> v = new ArrayList<Object>();
+		Expression exp = ExpressionFactory.inExp("abc", v);
+		assertEquals(Expression.FALSE, exp.getType());
+	}
+
+	@Test
+	public void testLikeExp() throws Exception {
+		String v = "abc";
+		Expression exp = ExpressionFactory.likeExp("abc", v);
+		assertEquals(Expression.LIKE, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+	}
+
+	@Test
+	public void testLikeDbExp() throws Exception {
+		String v = "abc";
+		Expression exp = ExpressionFactory.likeDbExp("abc", v);
+		assertEquals(Expression.LIKE, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testLikeExpEscape() throws Exception {
+		String v = "abc";
+		Expression exp = ExpressionFactory.likeExp("=abc", v, '=');
+		assertEquals(Expression.LIKE, exp.getType());
+
+		assertEquals('=', ((ASTLike) exp).getEscapeChar());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+	}
+
+	@Test
+	public void testLikeIgnoreCaseExp() throws Exception {
+		String v = "abc";
+		Expression exp = ExpressionFactory.likeIgnoreCaseExp("abc", v);
+		assertEquals(Expression.LIKE_IGNORE_CASE, exp.getType());
+		assertEquals(0, ((ASTLikeIgnoreCase) exp).getEscapeChar());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+	}
+
+	@Test
+	public void testLikeIgnoreCaseExpEscape() throws Exception {
+		String v = "abc";
+		Expression exp = ExpressionFactory.likeIgnoreCaseExp("=abc", v, '=');
+		assertEquals(Expression.LIKE_IGNORE_CASE, exp.getType());
+		assertEquals('=', ((ASTLikeIgnoreCase) exp).getEscapeChar());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+	}
+
+	@Test
+	public void testLikeIgnoreCaseDbExp() throws Exception {
+		String v = "abc";
+		Expression exp = ExpressionFactory.likeIgnoreCaseDbExp("abc", v);
+		assertEquals(Expression.LIKE_IGNORE_CASE, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.DB_PATH, path.getType());
+	}
+
+	@Test
+	public void testNotLikeIgnoreCaseExp() throws Exception {
+		String v = "abc";
+		Expression exp = ExpressionFactory.notLikeIgnoreCaseExp("abc", v);
+		assertEquals(Expression.NOT_LIKE_IGNORE_CASE, exp.getType());
+	}
+
+	// testing CAY-941 bug
+	@Test
+	public void testLikeExpNull() throws Exception {
+		Expression exp = ExpressionFactory.likeExp("abc", null);
+		assertEquals(Expression.LIKE, exp.getType());
+
+		Expression path = (Expression) exp.getOperand(0);
+		assertEquals(Expression.OBJ_PATH, path.getType());
+		assertNull(exp.getOperand(1));
+	}
+
 	@Test
 	public void testMatchAllExp() throws Exception {
 		// create expressions and check the counts,
@@ -59,16 +288,14 @@ public class ExpressionFactoryTest {
 				map.put("k" + i, "v" + i);
 			}
 
-			Expression exp = ExpressionFactory.matchAllExp(map,
-					Expression.LESS_THAN);
+			Expression exp = ExpressionFactory.matchAllExp(map, Expression.LESS_THAN);
 			assertNotNull(exp);
 			handler.traverseExpression(exp);
 
 			// assert statistics
 			handler.assertConsistency();
 			assertEquals("Failed: " + exp, 2 * n, handler.getLeafs());
-			assertEquals("Failed: " + exp, n < 2 ? 2 * n : 2 * n + 1,
-					handler.getNodeCount());
+			assertEquals("Failed: " + exp, n < 2 ? 2 * n : 2 * n + 1, handler.getNodeCount());
 		}
 	}
 
@@ -95,8 +322,7 @@ public class ExpressionFactoryTest {
 			// assert statistics
 			handler.assertConsistency();
 			assertEquals("Failed: " + exp, 2 * n, handler.getLeafs());
-			assertEquals("Failed: " + exp, n > 1 ? 2 * n + 1 : 2 * n,
-					handler.getNodeCount());
+			assertEquals("Failed: " + exp, n > 1 ? 2 * n + 1 : 2 * n, handler.getNodeCount());
 		}
 	}
 
@@ -125,8 +351,7 @@ public class ExpressionFactoryTest {
 	@Test
 	public void testAnd_Collection_Empty() {
 
-		Expression e = ExpressionFactory.and(Collections
-				.<Expression> emptyList());
+		Expression e = ExpressionFactory.and(Collections.<Expression> emptyList());
 
 		// hmm... is this really a valid return value?
 		assertNull(e);
@@ -211,16 +436,13 @@ public class ExpressionFactoryTest {
 
 	@Test
 	public void testExp_Enum() {
-		Expression e1 = ExpressionFactory
-				.exp("a = enum:org.apache.cayenne.exp.ExpEnum1.ONE");
+		Expression e1 = ExpressionFactory.exp("a = enum:org.apache.cayenne.exp.ExpEnum1.ONE");
 		assertEquals(ExpEnum1.ONE, e1.getOperand(1));
 
-		Expression e2 = ExpressionFactory
-				.exp("a = enum:org.apache.cayenne.exp.ExpEnum1.TWO");
+		Expression e2 = ExpressionFactory.exp("a = enum:org.apache.cayenne.exp.ExpEnum1.TWO");
 		assertEquals(ExpEnum1.TWO, e2.getOperand(1));
 
-		Expression e3 = ExpressionFactory
-				.exp("a = enum:org.apache.cayenne.exp.ExpEnum1.THREE");
+		Expression e3 = ExpressionFactory.exp("a = enum:org.apache.cayenne.exp.ExpEnum1.THREE");
 		assertEquals(ExpEnum1.THREE, e3.getOperand(1));
 	}
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a0d54aba/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java
deleted file mode 100644
index fa39d6d..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java
+++ /dev/null
@@ -1,354 +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.cayenne.exp;
-
-import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.exp.parser.ASTLike;
-import org.apache.cayenne.exp.parser.ASTLikeIgnoreCase;
-import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
-public class ExpressionFactory_InContextIT extends ServerCase {
-
-	@Inject
-	private ObjectContext context;
-
-    @Test
-	public void testExpressionOfBadType() throws Exception {
-
-		// non existing type
-		int badType = -50;
-
-		try {
-			ExpressionFactory.expressionOfType(badType);
-			fail();
-		} catch (ExpressionException ex) {
-			// exception expected
-		}
-	}
-
-    @Test
-	public void testBetweenExp() throws Exception {
-		Object v1 = new Object();
-		Object v2 = new Object();
-		Expression exp = ExpressionFactory.betweenExp("abc", v1, v2);
-		assertEquals(Expression.BETWEEN, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-	}
-
-    @Test
-	public void testBetweenDbExp() throws Exception {
-		Object v1 = new Object();
-		Object v2 = new Object();
-		Expression exp = ExpressionFactory.betweenDbExp("abc", v1, v2);
-		assertEquals(Expression.BETWEEN, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testNotBetweenExp() throws Exception {
-		Object v1 = new Object();
-		Object v2 = new Object();
-		Expression exp = ExpressionFactory.notBetweenExp("abc", v1, v2);
-		assertEquals(Expression.NOT_BETWEEN, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-	}
-
-    @Test
-	public void testNotBetweenDbExp() throws Exception {
-		Object v1 = new Object();
-		Object v2 = new Object();
-		Expression exp = ExpressionFactory.notBetweenDbExp("abc", v1, v2);
-		assertEquals(Expression.NOT_BETWEEN, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testGreaterExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.greaterExp("abc", v);
-		assertEquals(Expression.GREATER_THAN, exp.getType());
-	}
-
-    @Test
-	public void testGreaterDbExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.greaterDbExp("abc", v);
-		assertEquals(Expression.GREATER_THAN, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testGreaterOrEqualExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.greaterOrEqualExp("abc", v);
-		assertEquals(Expression.GREATER_THAN_EQUAL_TO, exp.getType());
-	}
-
-    @Test
-	public void testGreaterOrEqualDbExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.greaterOrEqualDbExp("abc", v);
-		assertEquals(Expression.GREATER_THAN_EQUAL_TO, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testLessExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.lessExp("abc", v);
-		assertEquals(Expression.LESS_THAN, exp.getType());
-	}
-
-    @Test
-	public void testLessDbExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.lessDbExp("abc", v);
-		assertEquals(Expression.LESS_THAN, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testLessOrEqualExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.lessOrEqualExp("abc", v);
-		assertEquals(Expression.LESS_THAN_EQUAL_TO, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-	}
-
-    @Test
-	public void testLessOrEqualDbExp() throws Exception {
-		Object v = new Object();
-		Expression exp = ExpressionFactory.lessOrEqualDbExp("abc", v);
-		assertEquals(Expression.LESS_THAN_EQUAL_TO, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testInExp1() throws Exception {
-		Expression exp = ExpressionFactory.inExp("abc", "a", "b");
-		assertEquals(Expression.IN, exp.getType());
-	}
-
-    @Test
-	public void testInExp2() throws Exception {
-		List<Object> v = new ArrayList<Object>();
-		v.add("a");
-		v.add("b");
-		Expression exp = ExpressionFactory.inExp("abc", v);
-		assertEquals(Expression.IN, exp.getType());
-	}
-
-    @Test
-	public void testInExp3() throws Exception {
-		List<Object> v = new ArrayList<Object>();
-		Expression exp = ExpressionFactory.inExp("abc", v);
-		assertEquals(Expression.FALSE, exp.getType());
-	}
-
-    @Test
-	public void testLikeExp() throws Exception {
-		String v = "abc";
-		Expression exp = ExpressionFactory.likeExp("abc", v);
-		assertEquals(Expression.LIKE, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-	}
-
-    @Test
-	public void testLikeDbExp() throws Exception {
-		String v = "abc";
-		Expression exp = ExpressionFactory.likeDbExp("abc", v);
-		assertEquals(Expression.LIKE, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testLikeExpEscape() throws Exception {
-		String v = "abc";
-		Expression exp = ExpressionFactory.likeExp("=abc", v, '=');
-		assertEquals(Expression.LIKE, exp.getType());
-
-		assertEquals('=', ((ASTLike) exp).getEscapeChar());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-	}
-
-    @Test
-	public void testLikeIgnoreCaseExp() throws Exception {
-		String v = "abc";
-		Expression exp = ExpressionFactory.likeIgnoreCaseExp("abc", v);
-		assertEquals(Expression.LIKE_IGNORE_CASE, exp.getType());
-		assertEquals(0, ((ASTLikeIgnoreCase) exp).getEscapeChar());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-	}
-
-    @Test
-	public void testLikeIgnoreCaseExpEscape() throws Exception {
-		String v = "abc";
-		Expression exp = ExpressionFactory.likeIgnoreCaseExp("=abc", v, '=');
-		assertEquals(Expression.LIKE_IGNORE_CASE, exp.getType());
-		assertEquals('=', ((ASTLikeIgnoreCase) exp).getEscapeChar());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-	}
-
-    @Test
-	public void testLikeIgnoreCaseDbExp() throws Exception {
-		String v = "abc";
-		Expression exp = ExpressionFactory.likeIgnoreCaseDbExp("abc", v);
-		assertEquals(Expression.LIKE_IGNORE_CASE, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.DB_PATH, path.getType());
-	}
-
-    @Test
-	public void testNotLikeIgnoreCaseExp() throws Exception {
-		String v = "abc";
-		Expression exp = ExpressionFactory.notLikeIgnoreCaseExp("abc", v);
-		assertEquals(Expression.NOT_LIKE_IGNORE_CASE, exp.getType());
-	}
-
-	// testing CAY-941 bug
-    @Test
-	public void testLikeExpNull() throws Exception {
-		Expression exp = ExpressionFactory.likeExp("abc", null);
-		assertEquals(Expression.LIKE, exp.getType());
-
-		Expression path = (Expression) exp.getOperand(0);
-		assertEquals(Expression.OBJ_PATH, path.getType());
-		assertNull(exp.getOperand(1));
-	}
-
-	// CAY-416
-    @Test
-	public void testCollectionMatch() {
-		Artist artist = context.newObject(Artist.class);
-		artist.setArtistName("artist");
-		Painting p1 = context.newObject(Painting.class), p2 = context
-				.newObject(Painting.class), p3 = context
-				.newObject(Painting.class);
-		p1.setPaintingTitle("p1");
-		p2.setPaintingTitle("p2");
-		p3.setPaintingTitle("p3");
-		artist.addToPaintingArray(p1);
-		artist.addToPaintingArray(p2);
-
-		context.commitChanges();
-
-		assertTrue(ExpressionFactory.matchExp("paintingArray", p1)
-				.match(artist));
-		assertFalse(ExpressionFactory.matchExp("paintingArray", p3).match(
-				artist));
-		assertFalse(ExpressionFactory.noMatchExp("paintingArray", p1).match(
-				artist));
-		assertTrue(ExpressionFactory.noMatchExp("paintingArray", p3).match(
-				artist));
-
-		assertTrue(ExpressionFactory.matchExp("paintingArray.paintingTitle",
-				"p1").match(artist));
-		assertFalse(ExpressionFactory.matchExp("paintingArray.paintingTitle",
-				"p3").match(artist));
-		assertFalse(ExpressionFactory.noMatchExp("paintingArray.paintingTitle",
-				"p1").match(artist));
-		assertTrue(ExpressionFactory.noMatchExp("paintingArray.paintingTitle",
-				"p3").match(artist));
-
-		assertTrue(ExpressionFactory.inExp("paintingTitle", "p1").match(p1));
-		assertFalse(ExpressionFactory.notInExp("paintingTitle", "p3").match(p3));
-	}
-
-    @Test
-	public void testIn() {
-		Artist a1 = context.newObject(Artist.class);
-		a1.setArtistName("a1");
-		Painting p1 = context.newObject(Painting.class);
-		p1.setPaintingTitle("p1");
-		Painting p2 = context.newObject(Painting.class);
-		p2.setPaintingTitle("p2");
-		a1.addToPaintingArray(p1);
-		a1.addToPaintingArray(p2);
-
-		Expression in = ExpressionFactory.inExp("paintingArray", p1);
-		assertTrue(in.match(a1));
-	}
-
-    @Test
-	public void testEscapeCharacter() {
-		Artist a1 = context.newObject(Artist.class);
-		a1.setArtistName("A_1");
-		Artist a2 = context.newObject(Artist.class);
-		a2.setArtistName("A_2");
-		context.commitChanges();
-
-		Expression ex1 = ExpressionFactory.likeIgnoreCaseDbExp("ARTIST_NAME",
-				"A*_1", '*');
-		SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class, ex1);
-		List<Artist> artists = context.select(q1);
-		assertEquals(1, artists.size());
-
-		Expression ex2 = ExpressionFactory.likeExp("artistName", "A*_2", '*');
-		SelectQuery<Artist> q2 = new SelectQuery<Artist>(Artist.class, ex2);
-		artists = context.select(q2);
-		assertEquals(1, artists.size());
-	}
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a0d54aba/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
new file mode 100644
index 0000000..b2d8749
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
@@ -0,0 +1,128 @@
+/*****************************************************************
+ *   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.cayenne.exp;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.access.DataContext;
+import org.apache.cayenne.configuration.server.ServerRuntime;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
+public class ExpressionIT extends ServerCase {
+
+	@Inject
+	private ObjectContext context;
+
+	@Inject
+	private ServerRuntime runtime;
+
+    @Test
+	public void testMatch() {
+
+		assertTrue(context instanceof DataContext);
+
+		DataContext context2 = (DataContext) runtime.newContext();
+
+		Artist a1 = context.newObject(Artist.class);
+		a1.setArtistName("Equals");
+		Painting p1 = context.newObject(Painting.class);
+		p1.setToArtist(a1);
+		p1.setPaintingTitle("painting1");
+
+		context.commitChanges();
+
+		SelectQuery<Painting> query = new SelectQuery<Painting>(Painting.class);
+		Expression e = Painting.TO_ARTIST.eq(a1);
+		query.setQualifier(e);
+
+		assertNotSame(context2, context);
+
+		List<Painting> objects = context2.select(query);
+		assertEquals(1, objects.size());
+
+		// 2 same objects in different contexts
+		assertTrue(e.match(objects.get(0)));
+
+		// we change one object - so the objects are different now
+		// (PersistenceState different)
+		a1.setArtistName("newName");
+
+		SelectQuery<Painting> q2 = new SelectQuery<Painting>(Painting.class);
+		Expression ex2 = Painting.TO_ARTIST.eq(a1);
+		q2.setQualifier(ex2);
+
+		assertTrue(ex2.match(objects.get(0)));
+
+		Artist a2 = context.newObject(Artist.class);
+		a2.setArtistName("Equals");
+
+		context.commitChanges();
+
+		SelectQuery<Painting> q = new SelectQuery<Painting>(Painting.class);
+		Expression ex = Painting.TO_ARTIST.eq(a2);
+		q.setQualifier(ex);
+
+		// 2 different objects in different contexts
+		assertFalse(ex.match(objects.get(0)));
+	}
+
+    @Test
+	public void testFirst() {
+		List<Painting> paintingList = new ArrayList<Painting>();
+		Painting p1 = context.newObject(Painting.class);
+		p1.setPaintingTitle("x1");
+		paintingList.add(p1);
+
+		Painting p2 = context.newObject(Painting.class);
+		p2.setPaintingTitle("x2");
+		paintingList.add(p2);
+
+		Painting p3 = context.newObject(Painting.class);
+		p3.setPaintingTitle("x3");
+		paintingList.add(p3);
+
+		Expression e1 = ExpressionFactory.likeExp("paintingTitle", "x%");
+		assertSame(p1, e1.first(paintingList));
+
+		Expression e3 = ExpressionFactory.matchExp("paintingTitle", "x3");
+		assertSame(p3, e3.first(paintingList));
+
+		Expression e4 = ExpressionFactory.matchExp("paintingTitle", "x4");
+		assertNull(e4.first(paintingList));
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a0d54aba/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java
deleted file mode 100644
index fc7e0bf..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java
+++ /dev/null
@@ -1,128 +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.cayenne.exp;
-
-import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.access.DataContext;
-import org.apache.cayenne.configuration.server.ServerRuntime;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.junit.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-
-@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
-public class Expression_InContextIT extends ServerCase {
-
-	@Inject
-	private ObjectContext context;
-
-	@Inject
-	private ServerRuntime runtime;
-
-    @Test
-	public void testMatch() {
-
-		assertTrue(context instanceof DataContext);
-
-		DataContext context2 = (DataContext) runtime.newContext();
-
-		Artist a1 = context.newObject(Artist.class);
-		a1.setArtistName("Equals");
-		Painting p1 = context.newObject(Painting.class);
-		p1.setToArtist(a1);
-		p1.setPaintingTitle("painting1");
-
-		context.commitChanges();
-
-		SelectQuery<Painting> query = new SelectQuery<Painting>(Painting.class);
-		Expression e = Painting.TO_ARTIST.eq(a1);
-		query.setQualifier(e);
-
-		assertNotSame(context2, context);
-
-		List<Painting> objects = context2.select(query);
-		assertEquals(1, objects.size());
-
-		// 2 same objects in different contexts
-		assertTrue(e.match(objects.get(0)));
-
-		// we change one object - so the objects are different now
-		// (PersistenceState different)
-		a1.setArtistName("newName");
-
-		SelectQuery<Painting> q2 = new SelectQuery<Painting>(Painting.class);
-		Expression ex2 = Painting.TO_ARTIST.eq(a1);
-		q2.setQualifier(ex2);
-
-		assertTrue(ex2.match(objects.get(0)));
-
-		Artist a2 = context.newObject(Artist.class);
-		a2.setArtistName("Equals");
-
-		context.commitChanges();
-
-		SelectQuery<Painting> q = new SelectQuery<Painting>(Painting.class);
-		Expression ex = Painting.TO_ARTIST.eq(a2);
-		q.setQualifier(ex);
-
-		// 2 different objects in different contexts
-		assertFalse(ex.match(objects.get(0)));
-	}
-
-    @Test
-	public void testFirst() {
-		List<Painting> paintingList = new ArrayList<Painting>();
-		Painting p1 = context.newObject(Painting.class);
-		p1.setPaintingTitle("x1");
-		paintingList.add(p1);
-
-		Painting p2 = context.newObject(Painting.class);
-		p2.setPaintingTitle("x2");
-		paintingList.add(p2);
-
-		Painting p3 = context.newObject(Painting.class);
-		p3.setPaintingTitle("x3");
-		paintingList.add(p3);
-
-		Expression e1 = ExpressionFactory.likeExp("paintingTitle", "x%");
-		assertSame(p1, e1.first(paintingList));
-
-		Expression e3 = ExpressionFactory.matchExp("paintingTitle", "x3");
-		assertSame(p3, e3.first(paintingList));
-
-		Expression e4 = ExpressionFactory.matchExp("paintingTitle", "x4");
-		assertNull(e4.first(paintingList));
-	}
-
-}


[28/39] cayenne git commit: clarifying tx UPGRADE notes

Posted by aa...@apache.org.
clarifying tx UPGRADE notes


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/447dce9d
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/447dce9d
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/447dce9d

Branch: refs/heads/CAY-1946_1
Commit: 447dce9dadedf027aa8257878c5b991093b66856
Parents: fba700d
Author: aadamchik <aa...@apache.org>
Authored: Mon Nov 24 12:11:37 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Mon Nov 24 12:11:37 2014 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/UPGRADE.txt | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/447dce9d/docs/doc/src/main/resources/UPGRADE.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/UPGRADE.txt b/docs/doc/src/main/resources/UPGRADE.txt
index c7ade60..6e95053 100644
--- a/docs/doc/src/main/resources/UPGRADE.txt
+++ b/docs/doc/src/main/resources/UPGRADE.txt
@@ -33,11 +33,14 @@ UPGRADING TO 4.0.M2
 
 * Transaction management was refactored significantly:
 
-* External transactions are no longer configured in the Modeler. Instead they are provided as a DI property
-  defined in Constants.SERVER_EXTERNAL_TX_PROPERTY.
+  * External transactions are no longer configured in the Modeler. Instead they are provided as a DI property
+    defined in Constants.SERVER_EXTERNAL_TX_PROPERTY.
 
-* TransactionDelegate is no longer present. Similar functionality can be achieved by writing a decorator for 
-  Transaction interface and using a custom TransactionFactory to decorate standard transactions.
+  * TransactionDelegate is no longer present. Similar functionality can be achieved by writing a decorator for 
+    Transaction interface and using a custom TransactionFactory to decorate standard transactions.
+
+  * If your code relied on static methods Transaction.externalTransaction() or Transaction.internalTransaction() for
+    manual tx management, use constructors of ExternalTransaction and CayenneTransaction classes instead.
 
 * When switching to ServerRuntimeBuilder, users of multi-config projects may erroneously assume it has the same 
   behavior as 3.1 ServerRuntime in assigning domain name to the resulting merged project. Which is to use the 


[13/39] cayenne git commit: fix procedure names

Posted by aa...@apache.org.
fix procedure names


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/177a25bd
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/177a25bd
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/177a25bd

Branch: refs/heads/CAY-1946_1
Commit: 177a25bd8f6ebb9323fa6918a4c1364f04ba8f35
Parents: 62d137c
Author: Savva Kolbechev <s....@gmail.com>
Authored: Fri Nov 21 14:58:27 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Fri Nov 21 14:58:27 2014 +0300

----------------------------------------------------------------------
 .../cayenne/access/DataContextProcedureQueryIT.java       |  8 ++++----
 .../java/org/apache/cayenne/map/MapLoaderLoadTest.java    |  2 +-
 .../java/org/apache/cayenne/unit/HSQLDBUnitDbAdapter.java |  2 +-
 .../java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java  |  4 ++--
 .../java/org/apache/cayenne/unit/OracleUnitDbAdapter.java |  2 +-
 .../org/apache/cayenne/unit/PostgresUnitDbAdapter.java    |  2 +-
 .../java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java |  4 ++--
 cayenne-server/src/test/resources/testmap.map.xml         | 10 +++++-----
 8 files changed, 17 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
index 423047b..d8e6b0b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
@@ -51,10 +51,10 @@ import static org.junit.Assert.assertTrue;
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextProcedureQueryIT extends ServerCase {
 
-    public static final String UPDATE_STORED_PROCEDURE = "cayenne_test_upd_proc";
-    public static final String UPDATE_STORED_PROCEDURE_NOPARAM = "cayenne_test_upd_proc2";
-    public static final String SELECT_STORED_PROCEDURE = "cayenne_test_select_proc";
-    public static final String OUT_STORED_PROCEDURE = "cayenne_test_out_proc";
+    public static final String UPDATE_STORED_PROCEDURE = "cayenne_tst_upd_proc";
+    public static final String UPDATE_STORED_PROCEDURE_NOPARAM = "cayenne_tst_upd_proc2";
+    public static final String SELECT_STORED_PROCEDURE = "cayenne_tst_select_proc";
+    public static final String OUT_STORED_PROCEDURE = "cayenne_tst_out_proc";
 
     @Inject
     private DataContext context;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/java/org/apache/cayenne/map/MapLoaderLoadTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/MapLoaderLoadTest.java b/cayenne-server/src/test/java/org/apache/cayenne/map/MapLoaderLoadTest.java
index 4e078e6..de5053c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/MapLoaderLoadTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/MapLoaderLoadTest.java
@@ -95,7 +95,7 @@ public class MapLoaderLoadTest {
         assertNotNull(map);
 
         // test procedures
-        Procedure procedure = map.getProcedure("cayenne_test_upd_proc");
+        Procedure procedure = map.getProcedure("cayenne_tst_upd_proc");
         assertNotNull(procedure);
         List<ProcedureParameter> params = procedure.getCallParameters();
         assertNotNull(params);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/java/org/apache/cayenne/unit/HSQLDBUnitDbAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/HSQLDBUnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/HSQLDBUnitDbAdapter.java
index 10ae06c..c78791f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/HSQLDBUnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/HSQLDBUnitDbAdapter.java
@@ -52,7 +52,7 @@ public class HSQLDBUnitDbAdapter extends UnitDbAdapter {
 
     @Override
     public void createdTables(Connection con, DataMap map) throws Exception {
-        if (map.getProcedureMap().containsKey("cayenne_test_select_proc")) {
+        if (map.getProcedureMap().containsKey("cayenne_tst_select_proc")) {
             executeDDL(con, "hsqldb", "create-sp-aliases.sql");
         }
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java
index 61d7cbb..2ada884 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/MySQLUnitDbAdapter.java
@@ -91,7 +91,7 @@ public class MySQLUnitDbAdapter extends UnitDbAdapter {
     @Override
     public void createdTables(Connection con, DataMap map) throws Exception {
 
-        if (map.getProcedureMap().containsKey("cayenne_test_select_proc")) {
+        if (map.getProcedureMap().containsKey("cayenne_tst_select_proc")) {
             executeDDL(con, "mysql", "create-select-sp.sql");
             executeDDL(con, "mysql", "create-update-sp.sql");
             executeDDL(con, "mysql", "create-update-sp2.sql");
@@ -105,7 +105,7 @@ public class MySQLUnitDbAdapter extends UnitDbAdapter {
             DataMap map,
             Collection<String> tablesToDrop) throws Exception {
 
-        Procedure proc = map.getProcedure("cayenne_test_select_proc");
+        Procedure proc = map.getProcedure("cayenne_tst_select_proc");
         if (proc != null && proc.getDataMap() == map) {
             executeDDL(conn, "mysql", "drop-select-sp.sql");
             executeDDL(conn, "mysql", "drop-update-sp.sql");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/java/org/apache/cayenne/unit/OracleUnitDbAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/OracleUnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/OracleUnitDbAdapter.java
index 38dcee2..f0ebb94 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/OracleUnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/OracleUnitDbAdapter.java
@@ -80,7 +80,7 @@ public class OracleUnitDbAdapter extends UnitDbAdapter {
 
     @Override
     public void createdTables(Connection con, DataMap map) throws Exception {
-        if (map.getProcedureMap().containsKey("cayenne_test_select_proc")) {
+        if (map.getProcedureMap().containsKey("cayenne_tst_select_proc")) {
             executeDDL(con, "oracle", "create-types-pkg.sql");
             executeDDL(con, "oracle", "create-select-sp.sql");
             executeDDL(con, "oracle", "create-update-sp.sql");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/java/org/apache/cayenne/unit/PostgresUnitDbAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/PostgresUnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/PostgresUnitDbAdapter.java
index 794f799..4042979 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/PostgresUnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/PostgresUnitDbAdapter.java
@@ -54,7 +54,7 @@ public class PostgresUnitDbAdapter extends UnitDbAdapter {
 
     @Override
     public void createdTables(Connection con, DataMap map) throws Exception {
-        if (map.getProcedureMap().containsKey("cayenne_test_select_proc")) {
+        if (map.getProcedureMap().containsKey("cayenne_tst_select_proc")) {
             executeDDL(con, "postgresql", "create-select-sp.sql");
             executeDDL(con, "postgresql", "create-update-sp.sql");
             executeDDL(con, "postgresql", "create-update-sp2.sql");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
index 0e33821..559ca4d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/SybaseUnitDbAdapter.java
@@ -55,7 +55,7 @@ public class SybaseUnitDbAdapter extends UnitDbAdapter {
 
     @Override
     public void createdTables(Connection con, DataMap map) throws Exception {
-        Procedure proc = map.getProcedure("cayenne_test_select_proc");
+        Procedure proc = map.getProcedure("cayenne_tst_select_proc");
         if (proc != null && proc.getDataMap() == map) {
             executeDDL(con, "sybase", "create-select-sp.sql");
             executeDDL(con, "sybase", "create-update-sp.sql");
@@ -116,7 +116,7 @@ public class SybaseUnitDbAdapter extends UnitDbAdapter {
     }
 
     protected void dropProcedures(Connection con, DataMap map) throws Exception {
-        Procedure proc = map.getProcedure("cayenne_test_select_proc");
+        Procedure proc = map.getProcedure("cayenne_tst_select_proc");
         if (proc != null && proc.getDataMap() == map) {
             executeDDL(con, "sybase", "drop-select-sp.sql");
             executeDDL(con, "sybase", "drop-update-sp.sql");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/177a25bd/cayenne-server/src/test/resources/testmap.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/testmap.map.xml b/cayenne-server/src/test/resources/testmap.map.xml
index 52a8a67..d64eb79 100644
--- a/cayenne-server/src/test/resources/testmap.map.xml
+++ b/cayenne-server/src/test/resources/testmap.map.xml
@@ -8,18 +8,18 @@
 	<property name="clientSupported" value="true"/>
 	<property name="defaultClientPackage" value="test.client"/>
 	<property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
-	<procedure name="cayenne_test_out_proc">
+	<procedure name="cayenne_tst_out_proc">
 		<procedure-parameter name="in_param" type="INTEGER" direction="in"/>
 		<procedure-parameter name="out_param" type="INTEGER" direction="out"/>
 	</procedure>
-	<procedure name="cayenne_test_select_proc">
+	<procedure name="cayenne_tst_select_proc">
 		<procedure-parameter name="aName" type="VARCHAR" length="254" direction="in"/>
 		<procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/>
 	</procedure>
-	<procedure name="cayenne_test_upd_proc">
+	<procedure name="cayenne_tst_upd_proc">
 		<procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/>
 	</procedure>Ï
-	<procedure name="cayenne_test_upd_proc2">
+	<procedure name="cayenne_tst_upd_proc2">
 	</procedure>
 	<db-entity name="ARTGROUP">
 		<db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
@@ -271,7 +271,7 @@ VALUES (#bind($id), #bind($title), #bind($price))]]></sql>
 		<property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/>
 		<qualifier><![CDATA[artistName like $name]]></qualifier>
 	</query>
-	<query name="ProcedureQuery" factory="org.apache.cayenne.map.ProcedureQueryBuilder" root="procedure" root-name="cayenne_test_select_proc" result-entity="Artist">
+	<query name="ProcedureQuery" factory="org.apache.cayenne.map.ProcedureQueryBuilder" root="procedure" root-name="cayenne_tst_select_proc" result-entity="Artist">
 	</query>
 	<query name="QueryWithLocalCache" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Artist">
 		<property name="cayenne.GenericSelectQuery.cacheStrategy" value="LOCAL_CACHE"/>


[14/39] cayenne git commit: CAY-1970 Minor Improvements to EJBQL Coverage in "Cayenne Guide"

Posted by aa...@apache.org.
CAY-1970 Minor Improvements to EJBQL Coverage in "Cayenne Guide"


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/7e36c932
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/7e36c932
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/7e36c932

Branch: refs/heads/CAY-1946_1
Commit: 7e36c932cef7233044af83a5f878c43f9c9f0956
Parents: 177a25b
Author: Andrew Lindesay <ap...@lindesay.co.nz>
Authored: Sun Nov 23 00:01:16 2014 +1300
Committer: Andrew Lindesay <ap...@lindesay.co.nz>
Committed: Sun Nov 23 00:01:16 2014 +1300

----------------------------------------------------------------------
 .../cayenne-guide/src/docbkx/expressions.xml    | 23 +++++++++++++
 .../src/docbkx/performance-tuning.xml           | 36 ++++++++++++++++++++
 .../cayenne-guide/src/docbkx/queries.xml        | 36 ++++++++++++++++++--
 3 files changed, 92 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/7e36c932/docs/docbook/cayenne-guide/src/docbkx/expressions.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/cayenne-guide/src/docbkx/expressions.xml b/docs/docbook/cayenne-guide/src/docbkx/expressions.xml
index 34257f3..7e34f71 100644
--- a/docs/docbook/cayenne-guide/src/docbkx/expressions.xml
+++ b/docs/docbook/cayenne-guide/src/docbkx/expressions.xml
@@ -262,4 +262,27 @@ List&lt;User&gt; filtered = e.filterObjects(unfiltered);</programlisting></para>
             </note>
         </para>
     </section>
+
+    <section xml:id="expressions-to-ejbql">
+        <title>Translating Expressions to EJBQL</title>
+        <para>
+            <link linkend="ejbqlquery">EJBQL</link> is a textual query language that can be used with Cayenne.
+            In some situations, it is convenient to be able to convert Expression instances into EJBQL.
+            Expressions support this conversion.  An example is shown below.
+
+            <programlisting>String serial = ...
+Expression e = ExpressionFactory.matchExp(Pkg.SERIAL_PROPERTY, serial);
+List&lt;Object&gt; params = new ArrayList&lt;Object&gt;();
+EJBQLQuery query = new EJBQLQuery("SELECT p FROM Pkg p WHERE " + e.toEJBQL(params,&quot;p&quot;);
+
+for(int i=0;i&lt;params.size();i++) {
+  query.setParameter(i+1, params.get(i));
+}</programlisting>
+
+            This would be equivalent to the following purely EJBQL querying logic;
+
+            <programlisting>EJBQLQuery query = new EJBQLQuery("SELECT p FROM Pkg p WHERE p.serial = ?1");
+query.setParameter(1,serial);</programlisting>
+        </para>
+    </section>
 </chapter>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7e36c932/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml b/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
index e54c6ff..b331e83 100644
--- a/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
+++ b/docs/docbook/cayenne-guide/src/docbkx/performance-tuning.xml
@@ -112,6 +112,22 @@ query.addPrefetch("paintings").setSemantics(
                 application server and the database, and more data processing that needs to be done
                 on the Cayenne side.</para>
         </section>
+        <section xml:id="prefetching-with-ejbql">
+            <title>Similar Behaviours Using EJBQL</title>
+            <para>It is possible to achieve similar behaviours with
+            <link linkend="ejbqlquery">EJBQLQuery</link> queries by employing the &quot;FETCH&quot;
+                keyword.</para>
+
+            <screen>SELECT a FROM Artist a LEFT JOIN FETCH a.paintings</screen>
+
+            <para>
+                In this case, the Paintings that exist for the Artist will be obtained at the same time
+                as the Artists are fetched.  Refer to third-party query language documentation for further
+                detail on this mechanism.
+            </para>
+
+        </section>
+
     </section>
     <section xml:id="datarows">
         <title>Data Rows</title>
@@ -145,6 +161,26 @@ for(DataRow row : rows) {
     }
 }</programlisting></para>
     </section>
+
+    <section xml:id="specific-attributes-with-ejbql">
+        <title>Specific Attributes and Relationships with EJBQL</title>
+        <para>
+            It is possible to fetch specific attributes and relationships from a model
+            using <link linkend="ejbqlquery">EJBQLQuery</link>.
+            The following example would return a java.util.List of String objects;
+        </para>
+
+        <screen>SELECT a.name FROM Artist a</screen>
+
+        <para>The following will yield a java.util.List containing Object[] instances, each of which
+            would contain the name followed by the dateOfBirth value.</para>
+
+        <screen>SELECT a.name, a.dateOfBirth FROM Artist a</screen>
+
+        <para>Refer to third-party query language documentation for further
+            detail on this mechanism.</para>
+    </section>
+
     <section xml:id="iterated-queries">
         <title>Iterated Queries</title>
         <para>While contemporary hardware may easily allow applications to fetch hundreds of

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7e36c932/docs/docbook/cayenne-guide/src/docbkx/queries.xml
----------------------------------------------------------------------
diff --git a/docs/docbook/cayenne-guide/src/docbkx/queries.xml b/docs/docbook/cayenne-guide/src/docbkx/queries.xml
index dfbad2f..eb1f38b 100644
--- a/docs/docbook/cayenne-guide/src/docbkx/queries.xml
+++ b/docs/docbook/cayenne-guide/src/docbkx/queries.xml
@@ -111,9 +111,38 @@ for(Object[] artistWithCount : result) {
             elements, where each entry in an Object[] is either a DataObject or a scalar, depending
             on the query SELECT clause. A result can also be a list of
             scalars:<programlisting language="java">EJBQLQuery query = new EJBQLQuery("select a.name FROM Artist a");
-List&lt;String> names = context.performQuery(query);</programlisting>While
+List&lt;String> names = context.performQuery(query);</programlisting>
+
+            EJBQLQuery supports an "IN" clause with three different usage-patterns.  The following
+            example would require three individual positional parameters (named
+            parameters could also have been used) to be supplied.
+
+            <screen>select p from Painting p where p.paintingTitle in (?1,?2,?3)</screen>
+
+            The following example requires a single positional parameter to be supplied.  The
+            parameter can be any concrete implementation of the java.util.Collection interface such as
+            java.util.List or java.util.Set.
+
+            <screen>select p from Painting p where p.paintingTitle in ?1</screen>
+
+            The following example is functionally identical to the one prior.
+
+            <screen>select p from Painting p where p.paintingTitle in (?1)</screen>
+
+            <para>
+                It is
+                <link linkend="expressions-to-ejbql">possible to convert</link>
+                an
+                <link linkend="expressions">Expression</link>
+                object used with a
+                <link linkend="selectquery">SelectQuery</link>
+                to EJBQL.  Use the Expression#appendAsEJBQL methods for this purpose.
+            </para>
+
+            While
             Cayenne Expressions discussed previously can be thought of as identical to JPQL WHERE
-            clause, and indeed they are very close, there are a few noteable differences:<itemizedlist>
+            clause, and indeed they are very close, there are a few noteable differences:
+            <itemizedlist>
                 <listitem>
                     <para>Null handling: SelectQuery would translate the expressions matching NULL
                         values to the corresponding "X IS NULL" or "X IS NOT NULL" SQL syntax.
@@ -126,7 +155,8 @@ List&lt;String> names = context.performQuery(query);</programlisting>While
                         (e.g. "$myParam"), while EJBQL uses ":" (e.g. ":myParam"). Also EJBQL
                         supports positional parameters denoted by the question mark: "?3".</para>
                 </listitem>
-            </itemizedlist></para>
+            </itemizedlist>
+        </para>
     </section>
     <section xml:id="sqltemplate">
         <title>SQLTemplate</title>


[38/39] cayenne git commit: CAY-1973 error while generating classes

Posted by aa...@apache.org.
CAY-1973 error while generating classes


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/acf54ba6
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/acf54ba6
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/acf54ba6

Branch: refs/heads/CAY-1946_1
Commit: acf54ba62abdca8bed155373d4379ce85e97ca4e
Parents: 43da4cc
Author: aadamchik <aa...@apache.org>
Authored: Wed Nov 26 21:47:35 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Wed Nov 26 21:47:35 2014 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/acf54ba6/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index ddc6f5c..448e80e 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -103,6 +103,7 @@ CAY-1905 Multi-step prefetching NPE : 1..N..1 with absent N and root with no qua
 CAY-1943 XML file not deleted when a DataMap is deleted from the project
 CAY-1961 Fix RemoveAction for DataMaps in ProjectTree
 CAY-1964 Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java
+CAY-1973 error while generating classes
 
 ----------------------------------
 Release: 3.2M1


[37/39] cayenne git commit: CAY-1973 | fix setSuperclassPackage()

Posted by aa...@apache.org.
CAY-1973 | fix setSuperclassPackage()


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/43da4cc9
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/43da4cc9
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/43da4cc9

Branch: refs/heads/CAY-1946_1
Commit: 43da4cc943b128e16e6f3c764c63b9146445f9f2
Parents: 14b5e14
Author: Savva Kolbachev <s....@gmail.com>
Authored: Wed Nov 26 14:36:03 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Wed Nov 26 14:36:03 2014 +0300

----------------------------------------------------------------------
 .../main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/43da4cc9/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
index 77ad146..881b88f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
@@ -74,7 +74,7 @@ public class DataMapDefaults extends RenamedPreferences {
         }
 
         if (DEFAULT_SUPERCLASS_PACKAGE_SUFFIX.equals(getSuperclassPackage())) {
-            setSuperclassPackage("");
+            setSuperclassPackage(null);
         }
     }
 


[27/39] cayenne git commit: CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

Posted by aa...@apache.org.
CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

redoign some of the crazy naming


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/fba700d3
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/fba700d3
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/fba700d3

Branch: refs/heads/CAY-1946_1
Commit: fba700d3609657c414a34ffdaaf6389f03f12cc8
Parents: 6cdfdbb
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:46:31 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 19:18:11 2014 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/cayenne/exp/Property.java         | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/fba700d3/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
index 1676315..624d352 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
@@ -255,7 +255,7 @@ public class Property<E> {
 	 * Same as {@link #contains(String)}, only using case-insensitive
 	 * comparison.
 	 */
-	public Expression icontains(String value) {
+	public Expression containsIgnoreCase(String value) {
 		return ExpressionFactory.containsIgnoreCaseExp(getName(), value);
 	}
 
@@ -263,7 +263,7 @@ public class Property<E> {
 	 * Same as {@link #startsWith(String)}, only using case-insensitive
 	 * comparison.
 	 */
-	public Expression istartsWith(String value) {
+	public Expression startsWithIgnoreCase(String value) {
 		return ExpressionFactory.startsWithIgnoreCaseExp(getName(), value);
 	}
 
@@ -271,7 +271,7 @@ public class Property<E> {
 	 * Same as {@link #endsWith(String)}, only using case-insensitive
 	 * comparison.
 	 */
-	public Expression iendsWith(String value) {
+	public Expression endsWithIgnoreCase(String value) {
 		return ExpressionFactory.endsWithIgnoreCaseExp(getName(), value);
 	}
 


[25/39] cayenne git commit: CAY-1972 A property to override DataSources of multi-module projects

Posted by aa...@apache.org.
CAY-1972 A property to override DataSources of multi-module projects


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/15297cca
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/15297cca
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/15297cca

Branch: refs/heads/CAY-1946_1
Commit: 15297ccafa761bddb89eac98b35806d777cbbe74
Parents: 3c51a77
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 18:06:09 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 19:03:31 2014 +0300

----------------------------------------------------------------------
 .../apache/cayenne/configuration/Constants.java | 298 ++++++++++---------
 .../server/DataDomainProvider.java              | 241 ++++++++-------
 .../server/ServerRuntimeBuilder.java            |  52 +++-
 .../server/SyntheticNodeDataDomainProvider.java |  27 +-
 .../server/ServerRuntimeBuilderIT.java          | 109 +++++++
 .../server/ServerRuntimeBuilderTest.java        |  53 +++-
 .../ServerRuntimeBuilder_InAction_IT.java       |  88 ------
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |   1 +
 docs/doc/src/main/resources/UPGRADE.txt         |   8 +
 9 files changed, 491 insertions(+), 386 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java
index 12953e6..1b0f887 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java
@@ -26,151 +26,159 @@ package org.apache.cayenne.configuration;
  */
 public interface Constants {
 
-    // DI "collections"
+	// DI "collections"
+
+	/**
+	 * A DI container key for the Map&lt;String, String&gt; storing properties
+	 * used by built-in Cayenne service.
+	 */
+	public static final String PROPERTIES_MAP = "cayenne.properties";
+
+	/**
+	 * A DI container key for the List&lt;DbAdapterDetector&gt; that contains
+	 * objects that can discover the type of current database and install the
+	 * correct DbAdapter in runtime.
+	 */
+	public static final String SERVER_ADAPTER_DETECTORS_LIST = "cayenne.server.adapter_detectors";
 
-    /**
-     * A DI container key for the Map&lt;String, String&gt; storing properties
-     * used by built-in Cayenne service.
-     */
-    public static final String PROPERTIES_MAP = "cayenne.properties";
-
-    /**
-     * A DI container key for the List&lt;DbAdapterDetector&gt; that contains
-     * objects that can discover the type of current database and install the
-     * correct DbAdapter in runtime.
-     */
-    public static final String SERVER_ADAPTER_DETECTORS_LIST = "cayenne.server.adapter_detectors";
-
-    /**
-     * A DI container key for the List&lt;DataChannelFilter&gt; storing
-     * DataDomain filters.
-     */
-    public static final String SERVER_DOMAIN_FILTERS_LIST = "cayenne.server.domain_filters";
-
-    /**
-     * A DI container key for the List&lt;String&gt; storing locations of the
-     * one of more project configuration files.
-     */
-    public static final String SERVER_PROJECT_LOCATIONS_LIST = "cayenne.server.project_locations";
-
-    /**
-     * A DI container key for the List&lt;ExtendedType&gt; storing default
-     * adapter-agnostic ExtendedTypes.
-     */
-    public static final String SERVER_DEFAULT_TYPES_LIST = "cayenne.server.default_types";
-
-    /**
-     * A DI container key for the List&lt;ExtendedType&gt; storing a
-     * user-provided ExtendedTypes.
-     */
-    public static final String SERVER_USER_TYPES_LIST = "cayenne.server.user_types";
-
-    /**
-     * A DI container key for the List&lt;ExtendedTypeFactory&gt; storing
-     * default and user-provided ExtendedTypeFactories.
-     */
-    public static final String SERVER_TYPE_FACTORIES_LIST = "cayenne.server.type_factories";
-
-    /**
-     * A server-side DI container key for the Map&lt;String, String&gt; storing
-     * event bridge properties passed to the ROP client on bootstrap.
-     */
-    public static final String SERVER_ROP_EVENT_BRIDGE_PROPERTIES_MAP = "cayenne.server.rop_event_bridge_properties";
-
-    // Runtime properties
-
-    public static final String JDBC_DRIVER_PROPERTY = "cayenne.jdbc.driver";
-
-    public static final String JDBC_URL_PROPERTY = "cayenne.jdbc.url";
-
-    public static final String JDBC_USERNAME_PROPERTY = "cayenne.jdbc.username";
-
-    public static final String JDBC_PASSWORD_PROPERTY = "cayenne.jdbc.password";
-
-    public static final String JDBC_MIN_CONNECTIONS_PROPERTY = "cayenne.jdbc.min_connections";
-
-    public static final String JDBC_MAX_CONNECTIONS_PROPERTY = "cayenne.jdbc.max_connections";
-
-    /**
-     * An integer property defining the maximum number of entries in the query
-     * cache. Note that not all QueryCache providers may respect this property.
-     * MapQueryCache uses it, but the rest would use alternative configuration
-     * methods.
-     */
-    public static final String QUERY_CACHE_SIZE_PROPERTY = "cayenne.querycache.size";
-
-    /**
-     * A boolean property defining whether cross-contexts synchronization is
-     * enabled. Possible values are "true" or "false".
-     */
-    public static final String SERVER_CONTEXTS_SYNC_PROPERTY = "cayenne.server.contexts_sync_strategy";
-
-    /**
-     * A String property that defines how ObjectContexts should retain cached
-     * committed objects. Possible values are "weak", "soft", "hard".
-     */
-    public static final String SERVER_OBJECT_RETAIN_STRATEGY_PROPERTY = "cayenne.server.object_retain_strategy";
-
-    /**
-     * A boolean property that defines whether runtime should use external
-     * transactions. Possible values are "true" or "false".
-     */
-    public static final String SERVER_EXTERNAL_TX_PROPERTY = "cayenne.server.external_tx";
-
-    public static final String ROP_SERVICE_URL_PROPERTY = "cayenne.rop.service_url";
-
-    public static final String ROP_SERVICE_USERNAME_PROPERTY = "cayenne.rop.service_username";
-
-    public static final String ROP_SERVICE_PASSWORD_PROPERTY = "cayenne.rop.service_password";
-
-    public static final String ROP_SERVICE_SHARED_SESSION_PROPERTY = "cayenne.rop.shared_session_name";
-
-    public static final String ROP_SERVICE_TIMEOUT_PROPERTY = "cayenne.rop.service_timeout";
-
-    public static final String ROP_CHANNEL_EVENTS_PROPERTY = "cayenne.rop.channel_events";
-
-    public static final String ROP_CONTEXT_CHANGE_EVENTS_PROPERTY = "cayenne.rop.context_change_events";
-
-    public static final String ROP_CONTEXT_LIFECYCLE_EVENTS_PROPERTY = "cayenne.rop.context_lifecycle_events";
-
-    /**
-     * The name of the {@link org.apache.cayenne.event.EventBridgeFactory} that
-     * is passed from the ROP server to the client. Client would instantiate the
-     * factory to receive events from the server. Note that this property is
-     * stored in {@link #SERVER_ROP_EVENT_BRIDGE_PROPERTIES_MAP}, not
-     * {@link #PROPERTIES_MAP}.
-     */
-    public static final String SERVER_ROP_EVENT_BRIDGE_FACTORY_PROPERTY = "cayenne.server.rop_event_bridge_factory";
-
-    /**
-     * A property that defines a maximum number of ID qualifiers in where clause
-     * of queries that are generated for example in
-     * {@link org.apache.cayenne.access.IncrementalFaultList} or in
-     * DISJOINT_BY_ID prefetch processing. This is needed to avoid where clause
-     * size limitations and memory usage efficiency.
-     */
-    public static final String SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY = "cayenne.server.max_id_qualifier_size";
-
-    /**
-     * Defines a maximum time in milliseconds that a connection request could
-     * wait in the connection queue. After this period expires, an exception
-     * will be thrown in the calling method. A value of zero will make the
-     * thread wait until a connection is available with no time out. Defaults to
-     * 20 seconds.
-     */
-    public static final String SERVER_MAX_QUEUE_WAIT_TIME = "cayenne.jdbc.max_wait";
-
-    /** Defines if database uses case-insensitive collation */
-    public final static String CI_PROPERTY = "cayenne.runtime.db.collation.assume.ci";
-
-    /**
-     * A integer property that enables logging for just long running queries
-     * (rather than all queries). The value is the minimum number of
-     * milliseconds a query must run before is logged. A value less than or
-     * equal to zero (the default) disables this feature.
-     * 
-     * @since 4.0
-     * */
-    public final static String QUERY_EXECUTION_TIME_LOGGING_THRESHOLD_PROPERTY = "cayenne.server.query_execution_time_logging_threshold";
+	/**
+	 * A DI container key for the List&lt;DataChannelFilter&gt; storing
+	 * DataDomain filters.
+	 */
+	public static final String SERVER_DOMAIN_FILTERS_LIST = "cayenne.server.domain_filters";
+
+	/**
+	 * A DI container key for the List&lt;String&gt; storing locations of the
+	 * one of more project configuration files.
+	 */
+	public static final String SERVER_PROJECT_LOCATIONS_LIST = "cayenne.server.project_locations";
+
+	/**
+	 * A DI container key for the List&lt;ExtendedType&gt; storing default
+	 * adapter-agnostic ExtendedTypes.
+	 */
+	public static final String SERVER_DEFAULT_TYPES_LIST = "cayenne.server.default_types";
+
+	/**
+	 * A DI container key for the List&lt;ExtendedType&gt; storing a
+	 * user-provided ExtendedTypes.
+	 */
+	public static final String SERVER_USER_TYPES_LIST = "cayenne.server.user_types";
+
+	/**
+	 * A DI container key for the List&lt;ExtendedTypeFactory&gt; storing
+	 * default and user-provided ExtendedTypeFactories.
+	 */
+	public static final String SERVER_TYPE_FACTORIES_LIST = "cayenne.server.type_factories";
+
+	/**
+	 * A server-side DI container key for the Map&lt;String, String&gt; storing
+	 * event bridge properties passed to the ROP client on bootstrap.
+	 */
+	public static final String SERVER_ROP_EVENT_BRIDGE_PROPERTIES_MAP = "cayenne.server.rop_event_bridge_properties";
+
+	// Runtime properties
+
+	public static final String JDBC_DRIVER_PROPERTY = "cayenne.jdbc.driver";
+
+	public static final String JDBC_URL_PROPERTY = "cayenne.jdbc.url";
+
+	public static final String JDBC_USERNAME_PROPERTY = "cayenne.jdbc.username";
+
+	public static final String JDBC_PASSWORD_PROPERTY = "cayenne.jdbc.password";
+
+	public static final String JDBC_MIN_CONNECTIONS_PROPERTY = "cayenne.jdbc.min_connections";
+
+	public static final String JDBC_MAX_CONNECTIONS_PROPERTY = "cayenne.jdbc.max_connections";
+
+	/**
+	 * An integer property defining the maximum number of entries in the query
+	 * cache. Note that not all QueryCache providers may respect this property.
+	 * MapQueryCache uses it, but the rest would use alternative configuration
+	 * methods.
+	 */
+	public static final String QUERY_CACHE_SIZE_PROPERTY = "cayenne.querycache.size";
+
+	/**
+	 * An optional name of the runtime DataDomain. If not specified (which is
+	 * normally the case), the name is inferred from the configuration name.
+	 * 
+	 * @since 4.0
+	 */
+	public static final String SERVER_DOMAIN_NAME_PROPERTY = "cayenne.server.domain.name";
+
+	/**
+	 * A boolean property defining whether cross-contexts synchronization is
+	 * enabled. Possible values are "true" or "false".
+	 */
+	public static final String SERVER_CONTEXTS_SYNC_PROPERTY = "cayenne.server.contexts_sync_strategy";
+
+	/**
+	 * A String property that defines how ObjectContexts should retain cached
+	 * committed objects. Possible values are "weak", "soft", "hard".
+	 */
+	public static final String SERVER_OBJECT_RETAIN_STRATEGY_PROPERTY = "cayenne.server.object_retain_strategy";
+
+	/**
+	 * A boolean property that defines whether runtime should use external
+	 * transactions. Possible values are "true" or "false".
+	 */
+	public static final String SERVER_EXTERNAL_TX_PROPERTY = "cayenne.server.external_tx";
+
+	public static final String ROP_SERVICE_URL_PROPERTY = "cayenne.rop.service_url";
+
+	public static final String ROP_SERVICE_USERNAME_PROPERTY = "cayenne.rop.service_username";
+
+	public static final String ROP_SERVICE_PASSWORD_PROPERTY = "cayenne.rop.service_password";
+
+	public static final String ROP_SERVICE_SHARED_SESSION_PROPERTY = "cayenne.rop.shared_session_name";
+
+	public static final String ROP_SERVICE_TIMEOUT_PROPERTY = "cayenne.rop.service_timeout";
+
+	public static final String ROP_CHANNEL_EVENTS_PROPERTY = "cayenne.rop.channel_events";
+
+	public static final String ROP_CONTEXT_CHANGE_EVENTS_PROPERTY = "cayenne.rop.context_change_events";
+
+	public static final String ROP_CONTEXT_LIFECYCLE_EVENTS_PROPERTY = "cayenne.rop.context_lifecycle_events";
+
+	/**
+	 * The name of the {@link org.apache.cayenne.event.EventBridgeFactory} that
+	 * is passed from the ROP server to the client. Client would instantiate the
+	 * factory to receive events from the server. Note that this property is
+	 * stored in {@link #SERVER_ROP_EVENT_BRIDGE_PROPERTIES_MAP}, not
+	 * {@link #PROPERTIES_MAP}.
+	 */
+	public static final String SERVER_ROP_EVENT_BRIDGE_FACTORY_PROPERTY = "cayenne.server.rop_event_bridge_factory";
+
+	/**
+	 * A property that defines a maximum number of ID qualifiers in where clause
+	 * of queries that are generated for example in
+	 * {@link org.apache.cayenne.access.IncrementalFaultList} or in
+	 * DISJOINT_BY_ID prefetch processing. This is needed to avoid where clause
+	 * size limitations and memory usage efficiency.
+	 */
+	public static final String SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY = "cayenne.server.max_id_qualifier_size";
+
+	/**
+	 * Defines a maximum time in milliseconds that a connection request could
+	 * wait in the connection queue. After this period expires, an exception
+	 * will be thrown in the calling method. A value of zero will make the
+	 * thread wait until a connection is available with no time out. Defaults to
+	 * 20 seconds.
+	 */
+	public static final String SERVER_MAX_QUEUE_WAIT_TIME = "cayenne.jdbc.max_wait";
+
+	/** Defines if database uses case-insensitive collation */
+	public final static String CI_PROPERTY = "cayenne.runtime.db.collation.assume.ci";
+
+	/**
+	 * A integer property that enables logging for just long running queries
+	 * (rather than all queries). The value is the minimum number of
+	 * milliseconds a query must run before is logged. A value less than or
+	 * equal to zero (the default) disables this feature.
+	 * 
+	 * @since 4.0
+	 * */
+	public final static String QUERY_EXECUTION_TIME_LOGGING_THRESHOLD_PROPERTY = "cayenne.server.query_execution_time_logging_threshold";
 
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
index f1a8d57..4815fe4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
@@ -55,173 +55,172 @@ import org.apache.commons.logging.LogFactory;
  */
 public class DataDomainProvider implements Provider<DataDomain> {
 
-    /**
-     * @since 4.0
-     */
-    static final String DEFAULT_NAME = "cayenne";
+	private static Log logger = LogFactory.getLog(DataDomainProvider.class);
 
-    private static Log logger = LogFactory.getLog(DataDomainProvider.class);
+	@Inject
+	protected ResourceLocator resourceLocator;
 
-    @Inject
-    protected ResourceLocator resourceLocator;
+	@Inject
+	protected DataChannelDescriptorMerger descriptorMerger;
 
-    @Inject
-    protected DataChannelDescriptorMerger descriptorMerger;
+	@Inject
+	protected DataChannelDescriptorLoader loader;
 
-    @Inject
-    protected DataChannelDescriptorLoader loader;
+	@Inject(Constants.SERVER_DOMAIN_FILTERS_LIST)
+	protected List<DataChannelFilter> filters;
 
-    @Inject(Constants.SERVER_DOMAIN_FILTERS_LIST)
-    protected List<DataChannelFilter> filters;
+	@Inject(Constants.SERVER_PROJECT_LOCATIONS_LIST)
+	protected List<String> locations;
 
-    @Inject(Constants.SERVER_PROJECT_LOCATIONS_LIST)
-    protected List<String> locations;
+	@Inject
+	protected Injector injector;
 
-    @Inject
-    protected Injector injector;
+	@Inject
+	protected QueryCache queryCache;
 
-    @Inject
-    protected QueryCache queryCache;
+	@Inject
+	protected RuntimeProperties runtimeProperties;
 
-    @Inject
-    protected RuntimeProperties runtimeProperties;
+	@Inject
+	protected DataNodeFactory dataNodeFactory;
 
-    @Inject
-    protected DataNodeFactory dataNodeFactory;
+	@Override
+	public DataDomain get() throws ConfigurationException {
 
-    @Override
-    public DataDomain get() throws ConfigurationException {
+		try {
+			return createAndInitDataDomain();
+		} catch (ConfigurationException e) {
+			throw e;
+		} catch (Exception e) {
+			throw new DataDomainLoadException("Error loading DataChannel: '%s'", e, e.getMessage());
+		}
+	}
 
-        try {
-            return createAndInitDataDomain();
-        } catch (ConfigurationException e) {
-            throw e;
-        } catch (Exception e) {
-            throw new DataDomainLoadException("Error loading DataChannel: '%s'", e, e.getMessage());
-        }
-    }
+	protected DataDomain createDataDomain(String name) {
+		return new DataDomain(name);
+	}
 
-    protected DataDomain createDataDomain(String name) {
-        return new DataDomain(name);
-    }
+	protected DataDomain createAndInitDataDomain() throws Exception {
 
-    protected DataDomain createAndInitDataDomain() throws Exception {
+		DataChannelDescriptor descriptor;
 
-        DataChannelDescriptor descriptor;
+		if (locations.isEmpty()) {
+			descriptor = new DataChannelDescriptor();
+		} else {
+			descriptor = descriptorFromConfigs();
+		}
 
-        if (locations.isEmpty()) {
-            descriptor = new DataChannelDescriptor();
-            descriptor.setName(DEFAULT_NAME);
-        } else {
-            descriptor = descriptorFromConfigs();
-        }
+		String nameOverride = runtimeProperties.get(Constants.SERVER_DOMAIN_NAME_PROPERTY);
+		if (nameOverride != null) {
+			descriptor.setName(nameOverride);
+		}
 
-        DataDomain dataDomain = createDataDomain(descriptor.getName());
+		DataDomain dataDomain = createDataDomain(descriptor.getName());
 
-        dataDomain.setMaxIdQualifierSize(runtimeProperties.getInt(Constants.SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY, -1));
+		dataDomain.setMaxIdQualifierSize(runtimeProperties.getInt(Constants.SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY, -1));
 
-        dataDomain.setQueryCache(new NestedQueryCache(queryCache));
-        dataDomain.setEntitySorter(injector.getInstance(EntitySorter.class));
-        dataDomain.setEventManager(injector.getInstance(EventManager.class));
+		dataDomain.setQueryCache(new NestedQueryCache(queryCache));
+		dataDomain.setEntitySorter(injector.getInstance(EntitySorter.class));
+		dataDomain.setEventManager(injector.getInstance(EventManager.class));
 
-        dataDomain.initWithProperties(descriptor.getProperties());
+		dataDomain.initWithProperties(descriptor.getProperties());
 
-        for (DataMap dataMap : descriptor.getDataMaps()) {
-            dataDomain.addDataMap(dataMap);
-        }
+		for (DataMap dataMap : descriptor.getDataMaps()) {
+			dataDomain.addDataMap(dataMap);
+		}
 
-        dataDomain.getEntityResolver().applyDBLayerDefaults();
-        dataDomain.getEntityResolver().applyObjectLayerDefaults();
+		dataDomain.getEntityResolver().applyDBLayerDefaults();
+		dataDomain.getEntityResolver().applyObjectLayerDefaults();
 
-        for (DataNodeDescriptor nodeDescriptor : descriptor.getNodeDescriptors()) {
-            addDataNode(dataDomain, nodeDescriptor);
-        }
+		for (DataNodeDescriptor nodeDescriptor : descriptor.getNodeDescriptors()) {
+			addDataNode(dataDomain, nodeDescriptor);
+		}
 
-        // init default node
-        DataNode defaultNode = null;
+		// init default node
+		DataNode defaultNode = null;
 
-        if (descriptor.getDefaultNodeName() != null) {
-            defaultNode = dataDomain.getDataNode(descriptor.getDefaultNodeName());
-        }
+		if (descriptor.getDefaultNodeName() != null) {
+			defaultNode = dataDomain.getDataNode(descriptor.getDefaultNodeName());
+		}
 
-        if (defaultNode == null) {
-            Collection<DataNode> allNodes = dataDomain.getDataNodes();
-            if (allNodes.size() == 1) {
-                defaultNode = allNodes.iterator().next();
-            }
-        }
+		if (defaultNode == null) {
+			Collection<DataNode> allNodes = dataDomain.getDataNodes();
+			if (allNodes.size() == 1) {
+				defaultNode = allNodes.iterator().next();
+			}
+		}
 
-        if (defaultNode != null) {
-            logger.info("setting DataNode '" + defaultNode.getName() + "' as default, used by all unlinked DataMaps");
+		if (defaultNode != null) {
+			logger.info("setting DataNode '" + defaultNode.getName() + "' as default, used by all unlinked DataMaps");
 
-            dataDomain.setDefaultNode(defaultNode);
-        }
+			dataDomain.setDefaultNode(defaultNode);
+		}
 
-        for (DataChannelFilter filter : filters) {
-            dataDomain.addFilter(filter);
-        }
+		for (DataChannelFilter filter : filters) {
+			dataDomain.addFilter(filter);
+		}
 
-        return dataDomain;
-    }
+		return dataDomain;
+	}
 
-    /**
-     * @since 4.0
-     */
-    protected DataNode addDataNode(DataDomain dataDomain, DataNodeDescriptor nodeDescriptor) throws Exception {
-        DataNode dataNode = dataNodeFactory.createDataNode(nodeDescriptor);
+	/**
+	 * @since 4.0
+	 */
+	protected DataNode addDataNode(DataDomain dataDomain, DataNodeDescriptor nodeDescriptor) throws Exception {
+		DataNode dataNode = dataNodeFactory.createDataNode(nodeDescriptor);
 
-        // DataMaps
-        for (String dataMapName : nodeDescriptor.getDataMapNames()) {
-            dataNode.addDataMap(dataDomain.getDataMap(dataMapName));
-        }
+		// DataMaps
+		for (String dataMapName : nodeDescriptor.getDataMapNames()) {
+			dataNode.addDataMap(dataDomain.getDataMap(dataMapName));
+		}
 
-        dataDomain.addNode(dataNode);
-        return dataNode;
-    }
+		dataDomain.addNode(dataNode);
+		return dataNode;
+	}
 
-    private DataChannelDescriptor descriptorFromConfigs() {
+	private DataChannelDescriptor descriptorFromConfigs() {
 
-        long t0 = System.currentTimeMillis();
+		long t0 = System.currentTimeMillis();
 
-        if (logger.isDebugEnabled()) {
-            logger.debug("starting configuration loading: " + locations);
-        }
+		if (logger.isDebugEnabled()) {
+			logger.debug("starting configuration loading: " + locations);
+		}
 
-        DataChannelDescriptor[] descriptors = new DataChannelDescriptor[locations.size()];
+		DataChannelDescriptor[] descriptors = new DataChannelDescriptor[locations.size()];
 
-        for (int i = 0; i < locations.size(); i++) {
+		for (int i = 0; i < locations.size(); i++) {
 
-            String location = locations.get(i);
+			String location = locations.get(i);
 
-            Collection<Resource> configurations = resourceLocator.findResources(location);
+			Collection<Resource> configurations = resourceLocator.findResources(location);
 
-            if (configurations.isEmpty()) {
-                throw new DataDomainLoadException("Configuration resource \"%s\" is not found.", location);
-            }
+			if (configurations.isEmpty()) {
+				throw new DataDomainLoadException("Configuration resource \"%s\" is not found.", location);
+			}
 
-            Resource configurationResource = configurations.iterator().next();
+			Resource configurationResource = configurations.iterator().next();
 
-            // no support for multiple configs yet, but this is not a hard error
-            if (configurations.size() > 1) {
-                logger.info("found " + configurations.size() + " configurations for " + location
-                        + ", will use the first one: " + configurationResource.getURL());
-            }
+			// no support for multiple configs yet, but this is not a hard error
+			if (configurations.size() > 1) {
+				logger.info("found " + configurations.size() + " configurations for " + location
+						+ ", will use the first one: " + configurationResource.getURL());
+			}
 
-            ConfigurationTree<DataChannelDescriptor> tree = loader.load(configurationResource);
-            if (!tree.getLoadFailures().isEmpty()) {
-                // TODO: andrus 03/10/2010 - log the errors before throwing?
-                throw new DataDomainLoadException(tree, "Error loading DataChannelDescriptor");
-            }
+			ConfigurationTree<DataChannelDescriptor> tree = loader.load(configurationResource);
+			if (!tree.getLoadFailures().isEmpty()) {
+				// TODO: andrus 03/10/2010 - log the errors before throwing?
+				throw new DataDomainLoadException(tree, "Error loading DataChannelDescriptor");
+			}
 
-            descriptors[i] = tree.getRootNode();
-        }
+			descriptors[i] = tree.getRootNode();
+		}
 
-        long t1 = System.currentTimeMillis();
+		long t1 = System.currentTimeMillis();
 
-        if (logger.isDebugEnabled()) {
-            logger.debug("finished configuration loading in " + (t1 - t0) + " ms.");
-        }
+		if (logger.isDebugEnabled()) {
+			logger.debug("finished configuration loading in " + (t1 - t0) + " ms.");
+		}
 
-        return descriptorMerger.merge(descriptors);
-    }
+		return descriptorMerger.merge(descriptors);
+	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
index 01115b7..33dc60e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
@@ -19,6 +19,7 @@
 package org.apache.cayenne.configuration.server;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -40,6 +41,12 @@ import org.apache.cayenne.di.Module;
  */
 public class ServerRuntimeBuilder {
 
+	/**
+	 * @since 4.0
+	 */
+	static final String DEFAULT_NAME = "cayenne";
+
+	private String name;
 	private Collection<String> configs;
 	private List<Module> modules;
 	private DataSourceFactory dataSourceFactory;
@@ -54,17 +61,18 @@ public class ServerRuntimeBuilder {
 	 * Creates an empty builder.
 	 */
 	public ServerRuntimeBuilder() {
-		this.configs = new LinkedHashSet<String>();
-		this.modules = new ArrayList<Module>();
+		this(null);
 	}
 
 	/**
-	 * An equivalent to creating builder with default constructor and calling
-	 * {@link #addConfig(String)}.
+	 * Creates a builder with a fixed name of the DataDomain of the resulting
+	 * ServerRuntime. Specifying explicit name is often needed for consistency
+	 * in runtimes merged from multiple configs, each having its own name.
 	 */
-	public ServerRuntimeBuilder(String configurationLocation) {
-		this();
-		addConfig(configurationLocation);
+	public ServerRuntimeBuilder(String name) {
+		this.configs = new LinkedHashSet<String>();
+		this.modules = new ArrayList<Module>();
+		this.name = name;
 	}
 
 	/**
@@ -134,6 +142,13 @@ public class ServerRuntimeBuilder {
 		return this;
 	}
 
+	public ServerRuntimeBuilder addConfigs(String... configurationLocations) {
+		if (configurationLocations != null) {
+			configs.addAll(Arrays.asList(configurationLocations));
+		}
+		return this;
+	}
+
 	public ServerRuntimeBuilder addConfigs(Collection<String> configurationLocations) {
 		configs.addAll(configurationLocations);
 		return this;
@@ -160,6 +175,28 @@ public class ServerRuntimeBuilder {
 
 	private void buildModules() {
 
+		String nameOverride = name;
+
+		if (nameOverride == null) {
+			// check if we need to force the default name ... we do when no
+			// configs or multiple configs are supplied.
+			if (configs.size() != 1) {
+				nameOverride = DEFAULT_NAME;
+			}
+		}
+
+		if (nameOverride != null) {
+
+			final String finalNameOverride = nameOverride;
+			prepend(new Module() {
+				@Override
+				public void configure(Binder binder) {
+					binder.bindMap(Constants.PROPERTIES_MAP).put(Constants.SERVER_DOMAIN_NAME_PROPERTY,
+							finalNameOverride);
+				}
+			});
+		}
+
 		if (dataSourceFactory != null) {
 
 			prepend(new Module() {
@@ -196,6 +233,7 @@ public class ServerRuntimeBuilder {
 					if (jdbcMaxConnections > 0) {
 						props.put(Constants.JDBC_MAX_CONNECTIONS_PROPERTY, Integer.toString(jdbcMaxConnections));
 					}
+
 				}
 			});
 		}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/SyntheticNodeDataDomainProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/SyntheticNodeDataDomainProvider.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/SyntheticNodeDataDomainProvider.java
index 56751fe..dbd0ec2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/SyntheticNodeDataDomainProvider.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/SyntheticNodeDataDomainProvider.java
@@ -28,24 +28,23 @@ import org.apache.cayenne.configuration.DataNodeDescriptor;
  */
 class SyntheticNodeDataDomainProvider extends DataDomainProvider {
 
-    @Override
-    protected DataDomain createAndInitDataDomain() throws Exception {
+	@Override
+	protected DataDomain createAndInitDataDomain() throws Exception {
 
-        DataDomain dataDomain = super.createAndInitDataDomain();
+		DataDomain dataDomain = super.createAndInitDataDomain();
 
-        // no nodes... add a synthetic node... it will become the default
-        if (dataDomain.getDataNodes().isEmpty()) {
+		// no nodes... add a synthetic node... it will become the default
+		if (dataDomain.getDataNodes().isEmpty()) {
 
-            DataChannelDescriptor channelDescriptor = new DataChannelDescriptor();
-            channelDescriptor.setName(DEFAULT_NAME);
+			DataChannelDescriptor channelDescriptor = new DataChannelDescriptor();
 
-            DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor(DEFAULT_NAME);
-            nodeDescriptor.setDataChannelDescriptor(channelDescriptor);
+			DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor(ServerRuntimeBuilder.DEFAULT_NAME);
+			nodeDescriptor.setDataChannelDescriptor(channelDescriptor);
 
-            DataNode node = addDataNode(dataDomain, nodeDescriptor);
-            dataDomain.setDefaultNode(node);
-        }
-        return dataDomain;
-    }
+			DataNode node = addDataNode(dataDomain, nodeDescriptor);
+			dataDomain.setDefaultNode(node);
+		}
+		return dataDomain;
+	}
 
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java
new file mode 100644
index 0000000..27b64e4
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java
@@ -0,0 +1,109 @@
+/*****************************************************************
+ *   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.cayenne.configuration.server;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import javax.sql.DataSource;
+
+import org.apache.cayenne.DataRow;
+import org.apache.cayenne.conn.DataSourceInfo;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.query.SQLSelect;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
+public class ServerRuntimeBuilderIT extends ServerCase {
+
+	@Inject
+	private DBHelper dbHelper;
+
+	@Inject
+	private ServerRuntime runtime;
+
+	@Inject
+	private DataSourceInfo dsi;
+
+	private ServerRuntime localRuntime;
+	private DataSource dataSource;
+
+	@After
+	public void stopLocalRuntime() {
+
+		// even though we don't supply real configs here, we sometimes access
+		// DataDomain, and this starts EventManager threads that need to be
+		// shutdown
+		if (localRuntime != null) {
+			localRuntime.shutdown();
+		}
+	}
+
+	@Before
+	public void testSetUp() throws Exception {
+		TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
+		tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+		tArtist.insert(33001, "AA1");
+		tArtist.insert(33002, "AA2");
+
+		this.dataSource = runtime.getDataSource("testmap");
+	}
+
+	@Test
+	public void testConfigFree_WithDataSource() {
+
+		localRuntime = new ServerRuntimeBuilder().dataSource(dataSource).build();
+
+		List<DataRow> result = SQLSelect.dataRowQuery("SELECT * FROM ARTIST").select(localRuntime.newContext());
+		assertEquals(2, result.size());
+	}
+
+	@Test
+	public void testConfigFree_WithDBParams() {
+
+		localRuntime = new ServerRuntimeBuilder().jdbcDriver(dsi.getJdbcDriver()).url(dsi.getDataSourceUrl())
+				.password(dsi.getPassword()).user(dsi.getUserName()).minConnections(1).maxConnections(2).build();
+
+		List<DataRow> result = SQLSelect.dataRowQuery("SELECT * FROM ARTIST").select(localRuntime.newContext());
+		assertEquals(2, result.size());
+	}
+
+	@Test
+	public void test_UnnamedDomain_MultiLocation() {
+		localRuntime = new ServerRuntimeBuilder().addConfigs(CayenneProjects.TESTMAP_PROJECT,
+				CayenneProjects.EMBEDDABLE_PROJECT).build();
+
+		assertEquals("cayenne", localRuntime.getDataDomain().getName());
+	}
+
+	@Test
+	public void test_NamedDomain_MultiLocation() {
+		localRuntime = new ServerRuntimeBuilder("myd").addConfigs(CayenneProjects.TESTMAP_PROJECT,
+				CayenneProjects.EMBEDDABLE_PROJECT).build();
+		assertEquals("myd", localRuntime.getDataDomain().getName());
+	}
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderTest.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderTest.java
index 19c9447..9177fac 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderTest.java
@@ -18,8 +18,10 @@
  ****************************************************************/
 package org.apache.cayenne.configuration.server;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
@@ -32,15 +34,29 @@ import org.apache.cayenne.configuration.Constants;
 import org.apache.cayenne.configuration.ModuleCollection;
 import org.apache.cayenne.di.Key;
 import org.apache.cayenne.di.Module;
+import org.junit.After;
 import org.junit.Test;
 
 public class ServerRuntimeBuilderTest {
 
+	private ServerRuntime runtime;
+
+	@After
+	public void stopRuntime() {
+
+		// even though we don't supply real configs here, we sometimes access
+		// DataDomain, and this starts EventManager threads that need to be
+		// shutdown
+		if (runtime != null) {
+			runtime.shutdown();
+		}
+	}
+
 	@Test
 	public void test_NoLocation() {
 
 		// this is meaningless (no DataSource), but should work...
-		ServerRuntime runtime = new ServerRuntimeBuilder().build();
+		runtime = new ServerRuntimeBuilder().build();
 
 		List<?> locations = runtime.getInjector().getInstance(
 				Key.get(List.class, Constants.SERVER_PROJECT_LOCATIONS_LIST));
@@ -49,14 +65,14 @@ public class ServerRuntimeBuilderTest {
 		assertTrue(runtime.getModule() instanceof ModuleCollection);
 
 		Collection<Module> modules = ((ModuleCollection) runtime.getModule()).getModules();
-		assertEquals(1, modules.size());
-		assertTrue(modules.iterator().next() instanceof ServerModule);
+		assertEquals(2, modules.size());
+		assertThat(modules.iterator().next(), instanceOf(ServerModule.class));
 	}
 
 	@Test
 	public void test_SingleLocation() {
 
-		ServerRuntime runtime = new ServerRuntimeBuilder("xxxx").build();
+		runtime = new ServerRuntimeBuilder().addConfig("xxxx").build();
 
 		List<?> locations = runtime.getInjector().getInstance(
 				Key.get(List.class, Constants.SERVER_PROJECT_LOCATIONS_LIST));
@@ -65,14 +81,14 @@ public class ServerRuntimeBuilderTest {
 
 		Collection<Module> modules = ((ModuleCollection) runtime.getModule()).getModules();
 		assertEquals(1, modules.size());
-		assertTrue(modules.iterator().next() instanceof ServerModule);
+		assertThat(modules.iterator().next(), instanceOf(ServerModule.class));
 
 	}
 
 	@Test
 	public void test_MultipleLocations() {
 
-		ServerRuntime runtime = new ServerRuntimeBuilder("xxxx").addConfig("yyyy").build();
+		runtime = new ServerRuntimeBuilder().addConfigs("xxxx", "yyyy").build();
 
 		List<?> locations = runtime.getInjector().getInstance(
 				Key.get(List.class, Constants.SERVER_PROJECT_LOCATIONS_LIST));
@@ -80,8 +96,8 @@ public class ServerRuntimeBuilderTest {
 		assertEquals(Arrays.asList("xxxx", "yyyy"), locations);
 
 		Collection<Module> modules = ((ModuleCollection) runtime.getModule()).getModules();
-		assertEquals(1, modules.size());
-		assertTrue(modules.iterator().next() instanceof ServerModule);
+		assertEquals(2, modules.size());
+		assertThat(modules.iterator().next(), instanceOf(ServerModule.class));
 	}
 
 	@Test
@@ -89,15 +105,30 @@ public class ServerRuntimeBuilderTest {
 
 		Module m = mock(Module.class);
 
-		ServerRuntime runtime = new ServerRuntimeBuilder("xxxx").addModule(m).build();
+		runtime = new ServerRuntimeBuilder().addModule(m).build();
 
 		Collection<Module> modules = ((ModuleCollection) runtime.getModule()).getModules();
-		assertEquals(2, modules.size());
+		assertEquals(3, modules.size());
 
 		Iterator<Module> it = modules.iterator();
 
-		assertTrue(it.next() instanceof ServerModule);
+		assertThat(it.next(), instanceOf(ServerModule.class));
+
+		// rewind - this module is name fix module
+		it.next();
+		
 		assertSame(m, it.next());
 	}
 
+	@Test
+	public void test_UnnamedDomain_NoLocation() {
+		runtime = new ServerRuntimeBuilder().build();
+		assertEquals("cayenne", runtime.getDataDomain().getName());
+	}
+
+	@Test
+	public void test_NamedDomain_NoLocation() {
+		runtime = new ServerRuntimeBuilder("myd").build();
+		assertEquals("myd", runtime.getDataDomain().getName());
+	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java
deleted file mode 100644
index 25c0aa4..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder_InAction_IT.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*****************************************************************
- *   Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- ****************************************************************/
-package org.apache.cayenne.configuration.server;
-
-import org.apache.cayenne.DataRow;
-import org.apache.cayenne.conn.DataSourceInfo;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.query.SQLSelect;
-import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.sql.DataSource;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-
-@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
-public class ServerRuntimeBuilder_InAction_IT extends ServerCase {
-
-    @Inject
-    private DBHelper dbHelper;
-
-    @Inject
-    private ServerRuntime runtime;
-
-    @Inject
-    private DataSourceInfo dsi;
-
-    private DataSource dataSource;
-
-    @Before
-    public void testSetUp() throws Exception { TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
-        tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
-        tArtist.insert(33001, "AA1");
-        tArtist.insert(33002, "AA2");
-
-        this.dataSource = runtime.getDataSource("testmap");
-    }
-
-    @Test
-    public void testConfigFree_WithDataSource() {
-
-        ServerRuntime localRuntime = new ServerRuntimeBuilder().dataSource(dataSource).build();
-
-        try {
-            List<DataRow> result = SQLSelect.dataRowQuery("SELECT * FROM ARTIST").select(localRuntime.newContext());
-            assertEquals(2, result.size());
-        } finally {
-            localRuntime.shutdown();
-        }
-    }
-
-    @Test
-    public void testConfigFree_WithDBParams() {
-
-        ServerRuntime localRuntime = new ServerRuntimeBuilder().jdbcDriver(dsi.getJdbcDriver())
-                .url(dsi.getDataSourceUrl()).password(dsi.getPassword()).user(dsi.getUserName()).minConnections(1)
-                .maxConnections(2).build();
-
-        try {
-            List<DataRow> result = SQLSelect.dataRowQuery("SELECT * FROM ARTIST").select(localRuntime.newContext());
-            assertEquals(2, result.size());
-        } finally {
-            localRuntime.shutdown();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index ec297f8..ddc6f5c 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -74,6 +74,7 @@ CAY-1966 SQLTemplate/SQLSelect positional parameter binding
 CAY-1967 Deprecate SQLTemplate parameter batches
 CAY-1968 SQLSelect cleanup and omissions
 CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)
+CAY-1972 A property to override DataSources of multi-module projects 
 
 Bug Fixes:
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/15297cca/docs/doc/src/main/resources/UPGRADE.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/UPGRADE.txt b/docs/doc/src/main/resources/UPGRADE.txt
index 94f8f72..c7ade60 100644
--- a/docs/doc/src/main/resources/UPGRADE.txt
+++ b/docs/doc/src/main/resources/UPGRADE.txt
@@ -35,9 +35,17 @@ UPGRADING TO 4.0.M2
 
 * External transactions are no longer configured in the Modeler. Instead they are provided as a DI property
   defined in Constants.SERVER_EXTERNAL_TX_PROPERTY.
+
 * TransactionDelegate is no longer present. Similar functionality can be achieved by writing a decorator for 
   Transaction interface and using a custom TransactionFactory to decorate standard transactions.
 
+* When switching to ServerRuntimeBuilder, users of multi-config projects may erroneously assume it has the same 
+  behavior as 3.1 ServerRuntime in assigning domain name to the resulting merged project. Which is to use the 
+  name of the last project config. We are trying to move away from this behavior, so ServerRuntimeBuilder 
+  will only use config name if there's only one config and no override. Otherwise it will use the override, 
+   or if not set - "cayenne" as the default name. Reference Jira: CAY-1972
+
+
 
 UPGRADING TO 3.1B1
 


[12/39] cayenne git commit: improve DBCleaner with filtering

Posted by aa...@apache.org.
improve DBCleaner with filtering


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/62d137cf
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/62d137cf
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/62d137cf

Branch: refs/heads/CAY-1946_1
Commit: 62d137cf71ca740a852007f90a5631618866f81d
Parents: a5559d7
Author: Savva Kolbechev <s....@gmail.com>
Authored: Wed Nov 19 18:44:00 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Wed Nov 19 18:44:00 2014 +0300

----------------------------------------------------------------------
 .../cayenne/unit/di/server/DBCleaner.java       | 55 +++++---------------
 .../unit/di/server/DBCleanerProvider.java       |  5 +-
 .../cayenne/unit/di/server/SchemaBuilder.java   | 24 ++++++---
 3 files changed, 30 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/62d137cf/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
index e28525b..2bd5cc3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
@@ -19,7 +19,6 @@
 
 package org.apache.cayenne.unit.di.server;
 
-import org.apache.cayenne.access.DataDomain;
 import org.apache.cayenne.configuration.ConfigurationTree;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.XMLDataChannelDescriptorLoader;
@@ -32,70 +31,40 @@ import org.apache.cayenne.unit.UnitDbAdapter;
 
 import java.net.URL;
 import java.sql.SQLException;
-import java.util.ArrayList;
 import java.util.List;
 
 public class DBCleaner {
 
     private FlavoredDBHelper dbHelper;
     private String location;
-    private DataDomain domain;
     private XMLDataChannelDescriptorLoader loader;
 
     @Inject
+    private SchemaBuilder schemaBuilder;
+
+    @Inject
     private UnitDbAdapter accessStackAdapter;
 
     @Inject
     private Injector injector;
 
-    public DBCleaner(FlavoredDBHelper dbHelper, DataDomain dataDomain, String location) {
+    public DBCleaner(FlavoredDBHelper dbHelper, String location) {
         this.dbHelper = dbHelper;
         this.location = location;
-        this.domain = dataDomain;
     }
 
     public void clean() throws SQLException {
-        if (location.equals(CayenneProjects.BINARY_PK_PROJECT)) {
-            if (accessStackAdapter.supportsBinaryPK()) {
-                dbHelper.deleteAll("BINARY_PK_TEST2");
-                dbHelper.deleteAll("BINARY_PK_TEST1");
-            }
-        } else if (location.equals(CayenneProjects.EMPTY_PROJECT)) {
-            return;
-        } else if (location.equals(CayenneProjects.LOB_PROJECT)) {
-            dbHelper.deleteAll("CLOB_TEST_RELATION");
-            if (accessStackAdapter.supportsLobs()) {
-                dbHelper.deleteAll("BLOB_TEST");
-                dbHelper.deleteAll("CLOB_TEST");
-            }
-            dbHelper.deleteAll("TEST");
-        } else if (location.equals(CayenneProjects.MISC_TYPES_PROJECT)) {
-            if (accessStackAdapter.supportsLobs()) {
-                dbHelper.deleteAll("SERIALIZABLE_ENTITY");
-            }
-            dbHelper.deleteAll("ARRAYS_ENTITY");
-            dbHelper.deleteAll("CHARACTER_ENTITY");
-        } else if (location.equals(CayenneProjects.RETURN_TYPES_PROJECT)) {
-            if (accessStackAdapter.supportsLobs()) {
-                dbHelper.deleteAll("TYPES_MAPPING_LOBS_TEST1");
-                dbHelper.deleteAll("TYPES_MAPPING_TEST2");
-            }
-            dbHelper.deleteAll("TYPES_MAPPING_TEST1");
-        } else {
-            loader = new XMLDataChannelDescriptorLoader();
-            injector.injectMembers(loader);
+        loader = new XMLDataChannelDescriptorLoader();
+        injector.injectMembers(loader);
 
-            URL url = getClass().getClassLoader().getResource(location);
-            ConfigurationTree<DataChannelDescriptor> tree = loader.load(new URLResource(url));
+        URL url = getClass().getClassLoader().getResource(location);
+        ConfigurationTree<DataChannelDescriptor> tree = loader.load(new URLResource(url));
 
-            for (DataMap map : tree.getRootNode().getDataMaps()) {
-                DataMap dataMap = domain.getDataMap(map.getName());
-                List<DbEntity> entities = new ArrayList<DbEntity>(dataMap.getDbEntities());
-                domain.getEntitySorter().sortDbEntities(entities, true);
+        for (DataMap map : tree.getRootNode().getDataMaps()) {
+            List<DbEntity> entities = schemaBuilder.dbEntitiesInDeleteOrder(map);
 
-                for (DbEntity entity : entities) {
-                    dbHelper.deleteAll(entity.getName());
-                }
+            for (DbEntity entity : entities) {
+                dbHelper.deleteAll(entity.getName());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62d137cf/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
index ff579b4..86b5e86 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java
@@ -32,12 +32,9 @@ public class DBCleanerProvider implements Provider<DBCleaner> {
     @Inject
     protected Provider<ServerCaseProperties> propertiesProvider;
 
-    @Inject
-    private SchemaBuilder schemaBuilder;
-
     @Override
     public DBCleaner get() throws ConfigurationException {
-        return new DBCleaner((FlavoredDBHelper) dbHelper, schemaBuilder.getDomain(), propertiesProvider.get().getConfigurationLocation());
+        return new DBCleaner((FlavoredDBHelper) dbHelper, propertiesProvider.get().getConfigurationLocation());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62d137cf/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
index 02bd5fe..880f697 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
@@ -203,6 +203,23 @@ public class SchemaBuilder {
     private List<DbEntity> dbEntitiesInInsertOrder(DataNode node, DataMap map) {
         List<DbEntity> entities = new ArrayList<DbEntity>(map.getDbEntities());
 
+        dbEntitiesFilter(entities);
+
+        domain.getEntitySorter().sortDbEntities(entities, false);
+        return entities;
+    }
+
+    protected List<DbEntity> dbEntitiesInDeleteOrder(DataMap dataMap) {
+        DataMap map = domain.getDataMap(dataMap.getName());
+        List<DbEntity> entities = new ArrayList<DbEntity>(map.getDbEntities());
+
+        dbEntitiesFilter(entities);
+
+        domain.getEntitySorter().sortDbEntities(entities, true);
+        return entities;
+    }
+
+    private void dbEntitiesFilter(List<DbEntity> entities) {
         // filter various unsupported tests...
 
         // LOBs
@@ -258,9 +275,6 @@ public class SchemaBuilder {
 
             entities = filtered;
         }
-
-        domain.getEntitySorter().sortDbEntities(entities, false);
-        return entities;
     }
 
     private void dropSchema(DataNode node, DataMap map) throws Exception {
@@ -367,8 +381,4 @@ public class SchemaBuilder {
         return queries;
     }
 
-    protected DataDomain getDomain() {
-        return domain;
-    }
-
 }


[26/39] cayenne git commit: fixing some PMD warnings

Posted by aa...@apache.org.
fixing some PMD warnings


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/6cdfdbbc
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/6cdfdbbc
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/6cdfdbbc

Branch: refs/heads/CAY-1946_1
Commit: 6cdfdbbcb94f217b1e486992561f6b8febda5f84
Parents: 15297cc
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 19:05:44 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 19:05:44 2014 +0300

----------------------------------------------------------------------
 .../main/java/org/apache/cayenne/util/Util.java | 1035 +++++++++---------
 1 file changed, 520 insertions(+), 515 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/6cdfdbbc/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java b/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
index 1d5ae49..1700b67 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
@@ -67,519 +67,524 @@ import org.xml.sax.XMLReader;
  */
 public class Util {
 
-    @Deprecated
-    private static DefaultAdhocObjectFactory objectFactory;
-
-    static {
-        objectFactory = new DefaultAdhocObjectFactory(null, new DefaultClassLoaderManager());
-    }
-
-    /**
-     * Converts URL to file. Throws {@link IllegalArgumentException} if the URL
-     * is not a "file://" URL.
-     */
-    public static File toFile(URL url) throws IllegalArgumentException {
-        // must convert spaces to %20, or URL->URI conversion may fail
-        String urlString = url.toExternalForm();
-
-        URI uri;
-        try {
-            uri = new URI(urlString.replace(" ", "%20"));
-        } catch (URISyntaxException e) {
-            throw new IllegalArgumentException("URL " + urlString + " can't be converted to URI", e);
-        }
-        return new File(uri);
-    }
-
-    /**
-     * Reads file contents, returning it as a String, using System default line
-     * separator.
-     */
-    public static String stringFromFile(File file) throws IOException {
-        return stringFromFile(file, System.getProperty("line.separator"));
-    }
-
-    /**
-     * Reads file contents, returning it as a String, joining lines with
-     * provided separator.
-     */
-    public static String stringFromFile(File file, String joinWith) throws IOException {
-        StringBuilder buf = new StringBuilder();
-        BufferedReader in = new BufferedReader(new FileReader(file));
-
-        try {
-            String line = null;
-            while ((line = in.readLine()) != null) {
-                buf.append(line).append(joinWith);
-            }
-        } finally {
-            in.close();
-        }
-        return buf.toString();
-    }
-
-    /**
-     * @param strings
-     *            The list of strings to join.
-     * @param separator
-     *            The separator between the strings.
-     * @return A single string of all the input strings separated by the
-     *         separator.
-     */
-    public static String join(List<String> strings, String separator) {
-        if (strings == null || strings.size() == 0)
-            return "";
-
-        if (separator == null)
-            separator = "";
-
-        StringBuilder builder = new StringBuilder();
-
-        for (String string : strings) {
-            if (builder.length() > 0)
-                builder.append(separator);
-            builder.append(string);
-        }
-
-        return builder.toString();
-    }
-
-    /**
-     * Replaces all backslashes "\" with forward slashes "/". Convenience method
-     * to convert path Strings to URI format.
-     */
-    public static String substBackslashes(String string) {
-        return RegexUtil.substBackslashes(string);
-    }
-
-    /**
-     * Looks up and returns the root cause of an exception. If none is found,
-     * returns supplied Throwable object unchanged. If root is found,
-     * recursively "unwraps" it, and returns the result to the user.
-     */
-    public static Throwable unwindException(Throwable th) {
-        if (th instanceof SAXException) {
-            SAXException sax = (SAXException) th;
-            if (sax.getException() != null) {
-                return unwindException(sax.getException());
-            }
-        } else if (th instanceof SQLException) {
-            SQLException sql = (SQLException) th;
-            if (sql.getNextException() != null) {
-                return unwindException(sql.getNextException());
-            }
-        } else if (th.getCause() != null) {
-            return unwindException(th.getCause());
-        }
-
-        return th;
-    }
-
-    /**
-     * Compares two objects similar to "Object.equals(Object)". Unlike
-     * Object.equals(..), this method doesn't throw an exception if any of the
-     * two objects is null.
-     */
-    public static boolean nullSafeEquals(Object o1, Object o2) {
-
-        if (o1 == null) {
-            return o2 == null;
-        }
-
-        // Arrays must be handled differently since equals() only does
-        // an "==" for an array and ignores equivalence. If an array, use
-        // the Jakarta Commons Language component EqualsBuilder to determine
-        // the types contained in the array and do individual comparisons.
-        if (o1.getClass().isArray()) {
-            EqualsBuilder builder = new EqualsBuilder();
-            builder.append(o1, o2);
-            return builder.isEquals();
-        } else { // It is NOT an array, so use regular equals()
-            return o1.equals(o2);
-        }
-    }
-
-    /**
-     * Compares two objects similar to "Comparable.compareTo(Object)". Unlike
-     * Comparable.compareTo(..), this method doesn't throw an exception if any
-     * of the two objects is null.
-     * 
-     * @since 1.1
-     */
-    public static <T> int nullSafeCompare(boolean nullsFirst, Comparable<T> o1, T o2) {
-        if (o1 == null && o2 == null) {
-            return 0;
-        } else if (o1 == null) {
-            return nullsFirst ? -1 : 1;
-        } else if (o2 == null) {
-            return nullsFirst ? 1 : -1;
-        } else {
-            return o1.compareTo(o2);
-        }
-    }
-
-    /**
-     * Returns true, if the String is null or an empty string.
-     */
-    public static boolean isEmptyString(String string) {
-        return string == null || string.length() == 0;
-    }
-
-    /**
-     * Creates Serializable object copy using serialization/deserialization.
-     */
-    public static <T extends Serializable> T cloneViaSerialization(T object) throws Exception {
-        ByteArrayOutputStream bytes = new ByteArrayOutputStream() {
-
-            @Override
-            public byte[] toByteArray() {
-                return buf;
-            }
-        };
-
-        ObjectOutputStream out = new ObjectOutputStream(bytes);
-        out.writeObject(object);
-        out.close();
-
-        ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes.toByteArray()));
-        T copy = (T) in.readObject();
-
-        // no need to close the stream - we created it and now will be throwing
-        // away...
-        // in.close();
-
-        return copy;
-    }
-
-    /**
-     * Creates an XMLReader with default feature set. Note that all Cayenne
-     * internal XML parsers should probably use XMLReader obtained via this
-     * method for consistency sake, and can customize feature sets as needed.
-     */
-    public static XMLReader createXmlReader() throws SAXException, ParserConfigurationException {
-        SAXParserFactory spf = SAXParserFactory.newInstance();
-
-        // Create a JAXP SAXParser
-        SAXParser saxParser = spf.newSAXParser();
-
-        // Get the encapsulated SAX XMLReader
-        XMLReader reader = saxParser.getXMLReader();
-
-        // set default features
-        reader.setFeature("http://xml.org/sax/features/namespaces", true);
-
-        return reader;
-    }
-
-    /**
-     * Returns package name for the Java class as a path separated with forward
-     * slash ("/"). Method is used to lookup resources that are located in
-     * package subdirectories. For example, a String "a/b/c" will be returned
-     * for class name "a.b.c.ClassName".
-     */
-    public static String getPackagePath(String className) {
-        return RegexUtil.getPackagePath(className);
-    }
-
-    /**
-     * Returns an unqualified class name for the fully qualified name.
-     * 
-     * @since 3.0
-     */
-    public static String stripPackageName(String className) {
-        if (className == null || className.length() == 0)
-            return className;
-
-        int lastDot = className.lastIndexOf('.');
-
-        if ((-1 == lastDot) || ((className.length() - 1) == lastDot))
-            return className;
-
-        return className.substring(lastDot + 1);
-    }
-
-    /**
-     * Creates a mutable map out of two arrays with keys and values.
-     * 
-     * @since 1.2
-     */
-    public static <K, V> Map<K, V> toMap(K[] keys, V[] values) {
-        int keysSize = (keys != null) ? keys.length : 0;
-        int valuesSize = (values != null) ? values.length : 0;
-
-        if (keysSize == 0 && valuesSize == 0) {
-            // return mutable map
-            return new HashMap<K, V>();
-        }
-
-        if (keysSize != valuesSize) {
-            throw new IllegalArgumentException("The number of keys doesn't match the number of values.");
-        }
-
-        Map<K, V> map = new HashMap<K, V>();
-        for (int i = 0; i < keysSize; i++) {
-            map.put(keys[i], values[i]);
-        }
-
-        return map;
-    }
-
-    /**
-     * Extracts extension from the file name. Dot is not included in the
-     * returned string.
-     */
-    public static String extractFileExtension(String fileName) {
-        int dotInd = fileName.lastIndexOf('.');
-
-        // if dot is in the first position,
-        // we are dealing with a hidden file rather than an extension
-        return (dotInd > 0 && dotInd < fileName.length()) ? fileName.substring(dotInd + 1) : null;
-    }
-
-    /**
-     * Strips extension from the file name.
-     */
-    public static String stripFileExtension(String fileName) {
-        int dotInd = fileName.lastIndexOf('.');
-
-        // if dot is in the first position,
-        // we are dealing with a hidden file rather than an extension
-        return (dotInd > 0) ? fileName.substring(0, dotInd) : fileName;
-    }
-
-    /**
-     * Strips "\n", "\r\n", "\r" from the argument string, replacing them with a
-     * provided character.
-     * 
-     * @since 3.1
-     */
-    public static String stripLineBreaks(String string, char replaceWith) {
-
-        if (string == null) {
-            return null;
-        }
-
-        int len = string.length();
-        char[] buffer = new char[len];
-        boolean matched = false;
-
-        int j = 0;
-        for (int i = 0; i < len; i++, j++) {
-            char c = string.charAt(i);
-
-            // skip \n, \r, \r\n
-            if (c == '\n' || c == '\r') {
-
-                matched = true;
-
-                // do lookahead
-                if (i + 1 < len && string.charAt(i + 1) == '\n') {
-                    i++;
-                }
-
-                buffer[j] = replaceWith;
-            } else {
-                buffer[j] = c;
-            }
-        }
-
-        return matched ? new String(buffer, 0, j) : string;
-    }
-
-    /**
-     * Encodes a string so that it can be used as an attribute value in an XML
-     * document. Will do conversion of the greater/less signs, quotes and
-     * ampersands.
-     */
-    public static String encodeXmlAttribute(String string) {
-        if (string == null) {
-            return null;
-        }
-
-        int len = string.length();
-        if (len == 0) {
-            return string;
-        }
-
-        StringBuilder encoded = new StringBuilder();
-        for (int i = 0; i < len; i++) {
-            char c = string.charAt(i);
-            if (c == '<')
-                encoded.append("&lt;");
-            else if (c == '\"')
-                encoded.append("&quot;");
-            else if (c == '>')
-                encoded.append("&gt;");
-            else if (c == '\'')
-                encoded.append("&apos;");
-            else if (c == '&')
-                encoded.append("&amp;");
-            else
-                encoded.append(c);
-        }
-
-        return encoded.toString();
-    }
-
-    /**
-     * Trims long strings substituting middle part with "...".
-     * 
-     * @param str
-     *            String to trim.
-     * @param maxLength
-     *            maximum allowable length. Must be at least 5, or an
-     *            IllegalArgumentException is thrown.
-     * @return String
-     */
-    public static String prettyTrim(String str, int maxLength) {
-        if (maxLength < 5) {
-            throw new IllegalArgumentException("Algorithm for 'prettyTrim' works only with length >= 5. "
-                    + "Supplied length is " + maxLength);
-        }
-
-        if (str == null || str.length() <= maxLength) {
-            return str;
-        }
-
-        // find a section to cut off
-        int len = maxLength - 3;
-        int startLen = len / 2;
-        int endLen = len - startLen;
-
-        return str.substring(0, startLen) + "..." + str.substring(str.length() - endLen);
-    }
-
-    /**
-     * Returns a sorted iterator from an unsorted one. Use this method as a last
-     * resort, since it is much less efficient then just sorting a collection
-     * that backs the original iterator.
-     */
-    public static <T> Iterator<T> sortedIterator(Iterator<T> it, Comparator<T> comparator) {
-        List<T> list = new ArrayList<T>();
-        while (it.hasNext()) {
-            list.add(it.next());
-        }
-
-        Collections.sort(list, comparator);
-        return list.iterator();
-    }
-
-    /**
-     * Builds a hashCode of Collection.
-     */
-    public static int hashCode(Collection<?> c) {
-        HashCodeBuilder builder = new HashCodeBuilder();
-        for (Object o : c) {
-            builder.append(o);
-        }
-        return builder.toHashCode();
-    }
-
-    /**
-     * @since 1.2
-     */
-    public static Pattern sqlPatternToPattern(String pattern, boolean ignoreCase) {
-        String preprocessed = RegexUtil.sqlPatternToRegex(pattern);
-
-        int flag = (ignoreCase) ? Pattern.CASE_INSENSITIVE : 0;
-        return Pattern.compile(preprocessed, flag);
-    }
-
-    /**
-     * Returns true if a Member is accessible via reflection under normal Java
-     * access controls.
-     * 
-     * @since 1.2
-     */
-    public static boolean isAccessible(Member member) {
-        return Modifier.isPublic(member.getModifiers()) && Modifier.isPublic(member.getDeclaringClass().getModifiers());
-    }
-
-    /**
-     * Creates a Java class, handling regular class names as well as
-     * single-dimensional arrays and primitive types.
-     * 
-     * @since 1.2
-     * @deprecated since 4.0 this method based on statically defined class
-     *             loading algorithm is not going to work in environments like
-     *             OSGi. {@link AdhocObjectFactory} should be used as it can
-     *             provide the environment-specific class loading policy.
-     */
-    @Deprecated
-    public static Class<?> getJavaClass(String className) throws ClassNotFoundException {
-        return objectFactory.getJavaClass(className);
-    }
-
-    static void setReverse(final Persistent sourceObject, String propertyName, final Persistent targetObject) {
-
-        ArcProperty property = (ArcProperty) Cayenne.getClassDescriptor(sourceObject).getProperty(propertyName);
-        ArcProperty reverseArc = property.getComplimentaryReverseArc();
-        if (reverseArc != null) {
-            reverseArc.visit(new PropertyVisitor() {
-
-                public boolean visitToMany(ToManyProperty property) {
-                    property.addTargetDirectly(targetObject, sourceObject);
-                    return false;
-                }
-
-                public boolean visitToOne(ToOneProperty property) {
-                    property.setTarget(targetObject, sourceObject, false);
-                    return false;
-                }
-
-                public boolean visitAttribute(AttributeProperty property) {
-                    return false;
-                }
-
-            });
-
-            sourceObject.getObjectContext().getGraphManager()
-                    .arcCreated(targetObject.getObjectId(), sourceObject.getObjectId(), reverseArc.getName());
-
-            markAsDirty(targetObject);
-        }
-    }
-
-    static void unsetReverse(final Persistent sourceObject, String propertyName, final Persistent targetObject) {
-
-        ArcProperty property = (ArcProperty) Cayenne.getClassDescriptor(sourceObject).getProperty(propertyName);
-        ArcProperty reverseArc = property.getComplimentaryReverseArc();
-        if (reverseArc != null) {
-            reverseArc.visit(new PropertyVisitor() {
-
-                public boolean visitToMany(ToManyProperty property) {
-                    property.removeTargetDirectly(targetObject, sourceObject);
-                    return false;
-                }
-
-                public boolean visitToOne(ToOneProperty property) {
-                    property.setTarget(targetObject, null, false);
-                    return false;
-                }
-
-                public boolean visitAttribute(AttributeProperty property) {
-                    return false;
-                }
-
-            });
-
-            sourceObject.getObjectContext().getGraphManager()
-                    .arcDeleted(targetObject.getObjectId(), sourceObject.getObjectId(), reverseArc.getName());
-
-            markAsDirty(targetObject);
-        }
-    }
-
-    /**
-     * Changes object state to MODIFIED if needed, returning true if the change
-     * has occurred, false if not.
-     */
-    static boolean markAsDirty(Persistent object) {
-        if (object.getPersistenceState() == PersistenceState.COMMITTED) {
-            object.setPersistenceState(PersistenceState.MODIFIED);
-            return true;
-        }
-
-        return false;
-    }
+	@Deprecated
+	private static DefaultAdhocObjectFactory objectFactory;
+
+	static {
+		objectFactory = new DefaultAdhocObjectFactory(null, new DefaultClassLoaderManager());
+	}
+
+	/**
+	 * Converts URL to file. Throws {@link IllegalArgumentException} if the URL
+	 * is not a "file://" URL.
+	 */
+	public static File toFile(URL url) throws IllegalArgumentException {
+		// must convert spaces to %20, or URL->URI conversion may fail
+		String urlString = url.toExternalForm();
+
+		URI uri;
+		try {
+			uri = new URI(urlString.replace(" ", "%20"));
+		} catch (URISyntaxException e) {
+			throw new IllegalArgumentException("URL " + urlString + " can't be converted to URI", e);
+		}
+		return new File(uri);
+	}
+
+	/**
+	 * Reads file contents, returning it as a String, using System default line
+	 * separator.
+	 */
+	public static String stringFromFile(File file) throws IOException {
+		return stringFromFile(file, System.getProperty("line.separator"));
+	}
+
+	/**
+	 * Reads file contents, returning it as a String, joining lines with
+	 * provided separator.
+	 */
+	public static String stringFromFile(File file, String joinWith) throws IOException {
+		StringBuilder buf = new StringBuilder();
+		BufferedReader in = new BufferedReader(new FileReader(file));
+
+		try {
+			String line = null;
+			while ((line = in.readLine()) != null) {
+				buf.append(line).append(joinWith);
+			}
+		} finally {
+			in.close();
+		}
+		return buf.toString();
+	}
+
+	/**
+	 * @param strings
+	 *            The list of strings to join.
+	 * @param separator
+	 *            The separator between the strings.
+	 * @return A single string of all the input strings separated by the
+	 *         separator.
+	 */
+	public static String join(List<String> strings, String separator) {
+		if (strings == null || strings.size() == 0) {
+			return "";
+		}
+
+		if (separator == null) {
+			separator = "";
+		}
+
+		StringBuilder builder = new StringBuilder();
+
+		for (String string : strings) {
+			if (builder.length() > 0) {
+				builder.append(separator);
+			}
+
+			builder.append(string);
+		}
+
+		return builder.toString();
+	}
+
+	/**
+	 * Replaces all backslashes "\" with forward slashes "/". Convenience method
+	 * to convert path Strings to URI format.
+	 */
+	public static String substBackslashes(String string) {
+		return RegexUtil.substBackslashes(string);
+	}
+
+	/**
+	 * Looks up and returns the root cause of an exception. If none is found,
+	 * returns supplied Throwable object unchanged. If root is found,
+	 * recursively "unwraps" it, and returns the result to the user.
+	 */
+	public static Throwable unwindException(Throwable th) {
+		if (th instanceof SAXException) {
+			SAXException sax = (SAXException) th;
+			if (sax.getException() != null) {
+				return unwindException(sax.getException());
+			}
+		} else if (th instanceof SQLException) {
+			SQLException sql = (SQLException) th;
+			if (sql.getNextException() != null) {
+				return unwindException(sql.getNextException());
+			}
+		} else if (th.getCause() != null) {
+			return unwindException(th.getCause());
+		}
+
+		return th;
+	}
+
+	/**
+	 * Compares two objects similar to "Object.equals(Object)". Unlike
+	 * Object.equals(..), this method doesn't throw an exception if any of the
+	 * two objects is null.
+	 */
+	public static boolean nullSafeEquals(Object o1, Object o2) {
+
+		if (o1 == null) {
+			return o2 == null;
+		}
+
+		// Arrays must be handled differently since equals() only does
+		// an "==" for an array and ignores equivalence. If an array, use
+		// the Jakarta Commons Language component EqualsBuilder to determine
+		// the types contained in the array and do individual comparisons.
+		if (o1.getClass().isArray()) {
+			EqualsBuilder builder = new EqualsBuilder();
+			builder.append(o1, o2);
+			return builder.isEquals();
+		} else { // It is NOT an array, so use regular equals()
+			return o1.equals(o2);
+		}
+	}
+
+	/**
+	 * Compares two objects similar to "Comparable.compareTo(Object)". Unlike
+	 * Comparable.compareTo(..), this method doesn't throw an exception if any
+	 * of the two objects is null.
+	 * 
+	 * @since 1.1
+	 */
+	public static <T> int nullSafeCompare(boolean nullsFirst, Comparable<T> o1, T o2) {
+		if (o1 == null && o2 == null) {
+			return 0;
+		} else if (o1 == null) {
+			return nullsFirst ? -1 : 1;
+		} else if (o2 == null) {
+			return nullsFirst ? 1 : -1;
+		} else {
+			return o1.compareTo(o2);
+		}
+	}
+
+	/**
+	 * Returns true, if the String is null or an empty string.
+	 */
+	public static boolean isEmptyString(String string) {
+		return string == null || string.length() == 0;
+	}
+
+	/**
+	 * Creates Serializable object copy using serialization/deserialization.
+	 */
+	public static <T extends Serializable> T cloneViaSerialization(T object) throws Exception {
+		ByteArrayOutputStream bytes = new ByteArrayOutputStream() {
+
+			@Override
+			public byte[] toByteArray() {
+				return buf;
+			}
+		};
+
+		ObjectOutputStream out = new ObjectOutputStream(bytes);
+		out.writeObject(object);
+		out.close();
+
+		ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes.toByteArray()));
+		T copy = (T) in.readObject();
+
+		// no need to close the stream - we created it and now will be throwing
+		// away...
+		// in.close();
+
+		return copy;
+	}
+
+	/**
+	 * Creates an XMLReader with default feature set. Note that all Cayenne
+	 * internal XML parsers should probably use XMLReader obtained via this
+	 * method for consistency sake, and can customize feature sets as needed.
+	 */
+	public static XMLReader createXmlReader() throws SAXException, ParserConfigurationException {
+		SAXParserFactory spf = SAXParserFactory.newInstance();
+
+		// Create a JAXP SAXParser
+		SAXParser saxParser = spf.newSAXParser();
+
+		// Get the encapsulated SAX XMLReader
+		XMLReader reader = saxParser.getXMLReader();
+
+		// set default features
+		reader.setFeature("http://xml.org/sax/features/namespaces", true);
+
+		return reader;
+	}
+
+	/**
+	 * Returns package name for the Java class as a path separated with forward
+	 * slash ("/"). Method is used to lookup resources that are located in
+	 * package subdirectories. For example, a String "a/b/c" will be returned
+	 * for class name "a.b.c.ClassName".
+	 */
+	public static String getPackagePath(String className) {
+		return RegexUtil.getPackagePath(className);
+	}
+
+	/**
+	 * Returns an unqualified class name for the fully qualified name.
+	 * 
+	 * @since 3.0
+	 */
+	public static String stripPackageName(String className) {
+		if (className == null || className.length() == 0)
+			return className;
+
+		int lastDot = className.lastIndexOf('.');
+
+		if ((-1 == lastDot) || ((className.length() - 1) == lastDot))
+			return className;
+
+		return className.substring(lastDot + 1);
+	}
+
+	/**
+	 * Creates a mutable map out of two arrays with keys and values.
+	 * 
+	 * @since 1.2
+	 */
+	public static <K, V> Map<K, V> toMap(K[] keys, V[] values) {
+		int keysSize = (keys != null) ? keys.length : 0;
+		int valuesSize = (values != null) ? values.length : 0;
+
+		if (keysSize == 0 && valuesSize == 0) {
+			// return mutable map
+			return new HashMap<K, V>();
+		}
+
+		if (keysSize != valuesSize) {
+			throw new IllegalArgumentException("The number of keys doesn't match the number of values.");
+		}
+
+		Map<K, V> map = new HashMap<K, V>();
+		for (int i = 0; i < keysSize; i++) {
+			map.put(keys[i], values[i]);
+		}
+
+		return map;
+	}
+
+	/**
+	 * Extracts extension from the file name. Dot is not included in the
+	 * returned string.
+	 */
+	public static String extractFileExtension(String fileName) {
+		int dotInd = fileName.lastIndexOf('.');
+
+		// if dot is in the first position,
+		// we are dealing with a hidden file rather than an extension
+		return (dotInd > 0 && dotInd < fileName.length()) ? fileName.substring(dotInd + 1) : null;
+	}
+
+	/**
+	 * Strips extension from the file name.
+	 */
+	public static String stripFileExtension(String fileName) {
+		int dotInd = fileName.lastIndexOf('.');
+
+		// if dot is in the first position,
+		// we are dealing with a hidden file rather than an extension
+		return (dotInd > 0) ? fileName.substring(0, dotInd) : fileName;
+	}
+
+	/**
+	 * Strips "\n", "\r\n", "\r" from the argument string, replacing them with a
+	 * provided character.
+	 * 
+	 * @since 3.1
+	 */
+	public static String stripLineBreaks(String string, char replaceWith) {
+
+		if (string == null) {
+			return null;
+		}
+
+		int len = string.length();
+		char[] buffer = new char[len];
+		boolean matched = false;
+
+		int j = 0;
+		for (int i = 0; i < len; i++, j++) {
+			char c = string.charAt(i);
+
+			// skip \n, \r, \r\n
+			if (c == '\n' || c == '\r') {
+
+				matched = true;
+
+				// do lookahead
+				if (i + 1 < len && string.charAt(i + 1) == '\n') {
+					i++;
+				}
+
+				buffer[j] = replaceWith;
+			} else {
+				buffer[j] = c;
+			}
+		}
+
+		return matched ? new String(buffer, 0, j) : string;
+	}
+
+	/**
+	 * Encodes a string so that it can be used as an attribute value in an XML
+	 * document. Will do conversion of the greater/less signs, quotes and
+	 * ampersands.
+	 */
+	public static String encodeXmlAttribute(String string) {
+		if (string == null) {
+			return null;
+		}
+
+		int len = string.length();
+		if (len == 0) {
+			return string;
+		}
+
+		StringBuilder encoded = new StringBuilder();
+		for (int i = 0; i < len; i++) {
+			char c = string.charAt(i);
+			if (c == '<') {
+				encoded.append("&lt;");
+			} else if (c == '\"') {
+				encoded.append("&quot;");
+			} else if (c == '>') {
+				encoded.append("&gt;");
+			} else if (c == '\'') {
+				encoded.append("&apos;");
+			} else if (c == '&') {
+				encoded.append("&amp;");
+			} else {
+				encoded.append(c);
+			}
+		}
+
+		return encoded.toString();
+	}
+
+	/**
+	 * Trims long strings substituting middle part with "...".
+	 * 
+	 * @param str
+	 *            String to trim.
+	 * @param maxLength
+	 *            maximum allowable length. Must be at least 5, or an
+	 *            IllegalArgumentException is thrown.
+	 * @return String
+	 */
+	public static String prettyTrim(String str, int maxLength) {
+		if (maxLength < 5) {
+			throw new IllegalArgumentException("Algorithm for 'prettyTrim' works only with length >= 5. "
+					+ "Supplied length is " + maxLength);
+		}
+
+		if (str == null || str.length() <= maxLength) {
+			return str;
+		}
+
+		// find a section to cut off
+		int len = maxLength - 3;
+		int startLen = len / 2;
+		int endLen = len - startLen;
+
+		return str.substring(0, startLen) + "..." + str.substring(str.length() - endLen);
+	}
+
+	/**
+	 * Returns a sorted iterator from an unsorted one. Use this method as a last
+	 * resort, since it is much less efficient then just sorting a collection
+	 * that backs the original iterator.
+	 */
+	public static <T> Iterator<T> sortedIterator(Iterator<T> it, Comparator<T> comparator) {
+		List<T> list = new ArrayList<T>();
+		while (it.hasNext()) {
+			list.add(it.next());
+		}
+
+		Collections.sort(list, comparator);
+		return list.iterator();
+	}
+
+	/**
+	 * Builds a hashCode of Collection.
+	 */
+	public static int hashCode(Collection<?> c) {
+		HashCodeBuilder builder = new HashCodeBuilder();
+		for (Object o : c) {
+			builder.append(o);
+		}
+		return builder.toHashCode();
+	}
+
+	/**
+	 * @since 1.2
+	 */
+	public static Pattern sqlPatternToPattern(String pattern, boolean ignoreCase) {
+		String preprocessed = RegexUtil.sqlPatternToRegex(pattern);
+
+		int flag = (ignoreCase) ? Pattern.CASE_INSENSITIVE : 0;
+		return Pattern.compile(preprocessed, flag);
+	}
+
+	/**
+	 * Returns true if a Member is accessible via reflection under normal Java
+	 * access controls.
+	 * 
+	 * @since 1.2
+	 */
+	public static boolean isAccessible(Member member) {
+		return Modifier.isPublic(member.getModifiers()) && Modifier.isPublic(member.getDeclaringClass().getModifiers());
+	}
+
+	/**
+	 * Creates a Java class, handling regular class names as well as
+	 * single-dimensional arrays and primitive types.
+	 * 
+	 * @since 1.2
+	 * @deprecated since 4.0 this method based on statically defined class
+	 *             loading algorithm is not going to work in environments like
+	 *             OSGi. {@link AdhocObjectFactory} should be used as it can
+	 *             provide the environment-specific class loading policy.
+	 */
+	@Deprecated
+	public static Class<?> getJavaClass(String className) throws ClassNotFoundException {
+		return objectFactory.getJavaClass(className);
+	}
+
+	static void setReverse(final Persistent sourceObject, String propertyName, final Persistent targetObject) {
+
+		ArcProperty property = (ArcProperty) Cayenne.getClassDescriptor(sourceObject).getProperty(propertyName);
+		ArcProperty reverseArc = property.getComplimentaryReverseArc();
+		if (reverseArc != null) {
+			reverseArc.visit(new PropertyVisitor() {
+
+				public boolean visitToMany(ToManyProperty property) {
+					property.addTargetDirectly(targetObject, sourceObject);
+					return false;
+				}
+
+				public boolean visitToOne(ToOneProperty property) {
+					property.setTarget(targetObject, sourceObject, false);
+					return false;
+				}
+
+				public boolean visitAttribute(AttributeProperty property) {
+					return false;
+				}
+
+			});
+
+			sourceObject.getObjectContext().getGraphManager()
+					.arcCreated(targetObject.getObjectId(), sourceObject.getObjectId(), reverseArc.getName());
+
+			markAsDirty(targetObject);
+		}
+	}
+
+	static void unsetReverse(final Persistent sourceObject, String propertyName, final Persistent targetObject) {
+
+		ArcProperty property = (ArcProperty) Cayenne.getClassDescriptor(sourceObject).getProperty(propertyName);
+		ArcProperty reverseArc = property.getComplimentaryReverseArc();
+		if (reverseArc != null) {
+			reverseArc.visit(new PropertyVisitor() {
+
+				public boolean visitToMany(ToManyProperty property) {
+					property.removeTargetDirectly(targetObject, sourceObject);
+					return false;
+				}
+
+				public boolean visitToOne(ToOneProperty property) {
+					property.setTarget(targetObject, null, false);
+					return false;
+				}
+
+				public boolean visitAttribute(AttributeProperty property) {
+					return false;
+				}
+
+			});
+
+			sourceObject.getObjectContext().getGraphManager()
+					.arcDeleted(targetObject.getObjectId(), sourceObject.getObjectId(), reverseArc.getName());
+
+			markAsDirty(targetObject);
+		}
+	}
+
+	/**
+	 * Changes object state to MODIFIED if needed, returning true if the change
+	 * has occurred, false if not.
+	 */
+	static boolean markAsDirty(Persistent object) {
+		if (object.getPersistenceState() == PersistenceState.COMMITTED) {
+			object.setPersistenceState(PersistenceState.MODIFIED);
+			return true;
+		}
+
+		return false;
+	}
 }


[08/39] cayenne git commit: Merge remote-tracking branch 'upstream/master' into refactor-tests

Posted by aa...@apache.org.
Merge remote-tracking branch 'upstream/master' into refactor-tests

Conflicts:
	cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/4207ebea
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/4207ebea
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/4207ebea

Branch: refs/heads/CAY-1946_1
Commit: 4207ebea2e6510ffeb1cb123e87ecad35ea9239e
Parents: 368b4ac a0f941a
Author: Savva Kolbechev <s....@gmail.com>
Authored: Mon Nov 17 17:12:58 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Mon Nov 17 17:12:58 2014 +0300

----------------------------------------------------------------------
 .../java/org/apache/cayenne/exp/Property.java   |  19 +-
 .../apache/cayenne/query/BaseQueryMetadata.java |   6 +-
 .../org/apache/cayenne/query/ObjectSelect.java  | 668 ++++++++++++++++++
 .../java/org/apache/cayenne/query/Ordering.java | 696 ++++++++++---------
 .../apache/cayenne/query/PrefetchTreeNode.java  |  15 +
 .../org/apache/cayenne/query/SQLSelect.java     |  31 +-
 .../org/apache/cayenne/query/SelectQuery.java   |  13 +-
 .../cayenne/query/SelectQueryMetadata.java      | 261 +++----
 .../cayenne/remote/IncrementalSelectQuery.java  |   5 +-
 .../apache/cayenne/query/ObjectSelectTest.java  | 482 +++++++++++++
 .../cayenne/query/ObjectSelect_CompileIT.java   | 169 +++++
 .../cayenne/query/ObjectSelect_RunIT.java       |  86 +++
 .../org/apache/cayenne/query/SQLSelectTest.java |  91 +++
 .../org/apache/cayenne/query/SelectByIdIT.java  |  39 +-
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |   2 +
 15 files changed, 2069 insertions(+), 514 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/4207ebea/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
----------------------------------------------------------------------
diff --cc cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
index 0000000,cd69200..e49d38b
mode 000000,100644..100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelectTest.java
@@@ -1,0 -1,482 +1,482 @@@
+ /*****************************************************************
+  *   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.cayenne.query;
+ 
++import org.apache.cayenne.DataRow;
++import org.apache.cayenne.exp.Expression;
++import org.apache.cayenne.exp.ExpressionFactory;
++import org.apache.cayenne.testdo.testmap.Artist;
++import org.junit.Test;
++
++import java.util.Arrays;
++import java.util.Collection;
++import java.util.Collections;
++
+ import static org.junit.Assert.assertArrayEquals;
+ import static org.junit.Assert.assertEquals;
+ import static org.junit.Assert.assertFalse;
+ import static org.junit.Assert.assertNotNull;
+ import static org.junit.Assert.assertNotSame;
+ import static org.junit.Assert.assertNull;
+ import static org.junit.Assert.assertSame;
+ import static org.junit.Assert.assertTrue;
+ 
 -import java.util.Arrays;
 -import java.util.Collection;
 -import java.util.Collections;
 -
 -import org.apache.cayenne.DataRow;
 -import org.apache.cayenne.exp.Expression;
 -import org.apache.cayenne.exp.ExpressionFactory;
 -import org.apache.cayenne.testdo.testmap.Artist;
 -import org.junit.Test;
 -
+ public class ObjectSelectTest {
+ 
+ 	@Test
+ 	public void testDataRowQuery() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dataRowQuery(Artist.class);
+ 		assertNotNull(q);
+ 		assertTrue(q.isFetchingDataRows());
+ 
+ 		assertEquals(Artist.class, q.getEntityType());
+ 		assertNull(q.getEntityName());
+ 		assertNull(q.getDbEntityName());
+ 	}
+ 
+ 	@Test
+ 	public void testQuery_RootType() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 		assertNotNull(q);
+ 		assertNull(q.getExp());
+ 		assertFalse(q.isFetchingDataRows());
+ 
+ 		assertEquals(Artist.class, q.getEntityType());
+ 		assertNull(q.getEntityName());
+ 		assertNull(q.getDbEntityName());
+ 	}
+ 
+ 	@Test
+ 	public void testQuery_RootType_WithQualifier() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class, ExpressionFactory.matchExp("a", "A"));
+ 		assertNotNull(q);
+ 		assertEquals("a = \"A\"", q.getExp().toString());
+ 		assertFalse(q.isFetchingDataRows());
+ 
+ 		assertEquals(Artist.class, q.getEntityType());
+ 		assertNull(q.getEntityName());
+ 		assertNull(q.getDbEntityName());
+ 	}
+ 
+ 	@Test
+ 	public void testQuery_TypeAndEntity() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class, "Painting");
+ 		assertNotNull(q);
+ 		assertFalse(q.isFetchingDataRows());
+ 
+ 		assertNull(q.getEntityType());
+ 		assertEquals("Painting", q.getEntityName());
+ 		assertNull(q.getDbEntityName());
+ 	}
+ 
+ 	@Test
+ 	public void testQuery_TypeAndDbEntity() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dbQuery("PAINTING");
+ 		assertNotNull(q);
+ 		assertTrue(q.isFetchingDataRows());
+ 
+ 		assertNull(q.getEntityType());
+ 		assertNull(q.getEntityName());
+ 		assertEquals("PAINTING", q.getDbEntityName());
+ 	}
+ 
+ 	@Test
+ 	public void testExp() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		q.exp(ExpressionFactory.matchExp("b", 4));
+ 		assertEquals("b = 4", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testAnd_Array() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		q.and(ExpressionFactory.matchExp("b", 4), ExpressionFactory.greaterExp("c", 5));
+ 		assertEquals("(a = 3) and (b = 4) and (c > 5)", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testAnd_Collection() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		Collection<Expression> exps = Arrays.asList(ExpressionFactory.matchExp("b", 4),
+ 				ExpressionFactory.greaterExp("c", 5));
+ 
+ 		q.and(exps);
+ 		assertEquals("(a = 3) and (b = 4) and (c > 5)", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testAnd_ArrayNull() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		q.and();
+ 		assertEquals("a = 3", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testAnd_ArrayEmpty() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		q.and(new Expression[0]);
+ 		assertEquals("a = 3", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testAnd_CollectionEmpty() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		q.and(Collections.<Expression> emptyList());
+ 		assertEquals("a = 3", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testOr_Array() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		q.or(ExpressionFactory.matchExp("b", 4), ExpressionFactory.greaterExp("c", 5));
+ 		assertEquals("(a = 3) or (b = 4) or (c > 5)", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testOr_Collection() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.exp(ExpressionFactory.matchExp("a", 3));
+ 		assertEquals("a = 3", q.getExp().toString());
+ 
+ 		Collection<Expression> exps = Arrays.asList(ExpressionFactory.matchExp("b", 4),
+ 				ExpressionFactory.greaterExp("c", 5));
+ 
+ 		q.or(exps);
+ 		assertEquals("(a = 3) or (b = 4) or (c > 5)", q.getExp().toString());
+ 	}
+ 
+ 	@Test
+ 	public void testOrderBy_Array() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		Ordering o1 = new Ordering("x");
+ 		q.orderBy(o1);
+ 
+ 		Object[] result1 = q.getOrderings().toArray();
+ 		assertEquals(1, result1.length);
+ 		assertSame(o1, result1[0]);
+ 
+ 		Ordering o2 = new Ordering("y");
+ 		q.orderBy(o2);
+ 
+ 		Object[] result2 = q.getOrderings().toArray();
+ 		assertEquals(1, result2.length);
+ 		assertSame(o2, result2[0]);
+ 	}
+ 
+ 	@Test
+ 	public void testAddOrderBy_Array() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		Ordering o1 = new Ordering("x");
+ 		q.orderBy(o1);
+ 
+ 		Object[] result1 = q.getOrderings().toArray();
+ 		assertEquals(1, result1.length);
+ 		assertSame(o1, result1[0]);
+ 
+ 		Ordering o2 = new Ordering("y");
+ 		q.addOrderBy(o2);
+ 
+ 		Object[] result2 = q.getOrderings().toArray();
+ 		assertEquals(2, result2.length);
+ 		assertSame(o1, result2[0]);
+ 		assertSame(o2, result2[1]);
+ 	}
+ 
+ 	@Test
+ 	public void testOrderBy_Collection() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		Ordering o1 = new Ordering("x");
+ 		q.orderBy(Collections.singletonList(o1));
+ 
+ 		Object[] result1 = q.getOrderings().toArray();
+ 		assertEquals(1, result1.length);
+ 		assertSame(o1, result1[0]);
+ 
+ 		Ordering o2 = new Ordering("y");
+ 		q.orderBy(Collections.singletonList(o2));
+ 
+ 		Object[] result2 = q.getOrderings().toArray();
+ 		assertEquals(1, result2.length);
+ 		assertSame(o2, result2[0]);
+ 	}
+ 
+ 	@Test
+ 	public void testAddOrderBy_Collection() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		Ordering o1 = new Ordering("x");
+ 		q.orderBy(Collections.singletonList(o1));
+ 
+ 		Object[] result1 = q.getOrderings().toArray();
+ 		assertEquals(1, result1.length);
+ 		assertSame(o1, result1[0]);
+ 
+ 		Ordering o2 = new Ordering("y");
+ 		q.addOrderBy(Collections.singletonList(o2));
+ 
+ 		Object[] result2 = q.getOrderings().toArray();
+ 		assertEquals(2, result2.length);
+ 		assertSame(o1, result2[0]);
+ 		assertSame(o2, result2[1]);
+ 	}
+ 
+ 	@Test
+ 	public void testOrderBy_Property() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.orderBy("x");
+ 
+ 		Object[] result1 = q.getOrderings().toArray();
+ 		assertEquals(1, result1.length);
+ 		assertEquals(new Ordering("x", SortOrder.ASCENDING), result1[0]);
+ 
+ 		q.orderBy("y");
+ 
+ 		Object[] result2 = q.getOrderings().toArray();
+ 		assertEquals(1, result2.length);
+ 		assertEquals(new Ordering("y", SortOrder.ASCENDING), result2[0]);
+ 	}
+ 
+ 	@Test
+ 	public void testOrderBy_PropertyStrategy() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.orderBy("x", SortOrder.ASCENDING_INSENSITIVE);
+ 
+ 		Object[] result1 = q.getOrderings().toArray();
+ 		assertEquals(1, result1.length);
+ 		assertEquals(new Ordering("x", SortOrder.ASCENDING_INSENSITIVE), result1[0]);
+ 
+ 		q.orderBy("y", SortOrder.DESCENDING);
+ 
+ 		Object[] result2 = q.getOrderings().toArray();
+ 		assertEquals(1, result2.length);
+ 		assertEquals(new Ordering("y", SortOrder.DESCENDING), result2[0]);
+ 	}
+ 
+ 	@Test
+ 	public void testAddOrderBy_Property() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		q.addOrderBy("x");
+ 
+ 		Object[] result1 = q.getOrderings().toArray();
+ 		assertEquals(1, result1.length);
+ 		assertEquals(new Ordering("x", SortOrder.ASCENDING), result1[0]);
+ 
+ 		q.addOrderBy("y");
+ 
+ 		Object[] result2 = q.getOrderings().toArray();
+ 		assertEquals(2, result2.length);
+ 		assertEquals(new Ordering("x", SortOrder.ASCENDING), result2[0]);
+ 		assertEquals(new Ordering("y", SortOrder.ASCENDING), result2[1]);
+ 	}
+ 
+ 	@Test
+ 	public void testPrefetch() {
+ 
+ 		PrefetchTreeNode root = PrefetchTreeNode.withPath("a.b", PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 		q.prefetch(root);
+ 
+ 		assertSame(root, q.getPrefetches());
+ 	}
+ 
+ 	@Test
+ 	public void testPrefetch_Path() {
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 		q.prefetch("a.b", PrefetchTreeNode.DISJOINT_PREFETCH_SEMANTICS);
+ 		PrefetchTreeNode root1 = q.getPrefetches();
+ 
+ 		assertNotNull(root1);
+ 		assertNotNull(root1.getNode("a.b"));
+ 
+ 		q.prefetch("a.c", PrefetchTreeNode.DISJOINT_PREFETCH_SEMANTICS);
+ 		PrefetchTreeNode root2 = q.getPrefetches();
+ 
+ 		assertNotNull(root2);
+ 		assertNotNull(root2.getNode("a.c"));
+ 		assertNull(root2.getNode("a.b"));
+ 		assertNotSame(root1, root2);
+ 	}
+ 
+ 	@Test
+ 	public void testAddPrefetch() {
+ 
+ 		PrefetchTreeNode root = PrefetchTreeNode.withPath("a.b", PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
+ 
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 		q.prefetch(root);
+ 
+ 		assertSame(root, q.getPrefetches());
+ 
+ 		PrefetchTreeNode subRoot = PrefetchTreeNode.withPath("a.b.c", PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
+ 		q.addPrefetch(subRoot);
+ 
+ 		assertSame(root, q.getPrefetches());
+ 
+ 		assertNotNull(root.getNode("a.b.c"));
+ 	}
+ 
+ 	@Test
+ 	public void testLimit() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		assertEquals(0, q.getLimit());
+ 		q.limit(2);
+ 		assertEquals(2, q.getLimit());
+ 
+ 		q.limit(3).limit(5);
+ 		assertEquals(5, q.getLimit());
+ 	}
+ 	
+ 	@Test
+ 	public void testOffset() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		assertEquals(0, q.getOffset());
+ 		q.offset(2);
+ 		assertEquals(2, q.getOffset());
+ 
+ 		q.offset(3).offset(5);
+ 		assertEquals(5, q.getOffset());
+ 	}
+ 	
+ 	@Test
+ 	public void testStatementFetchSize() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		assertEquals(0, q.getStatementFetchSize());
+ 		q.statementFetchSize(2);
+ 		assertEquals(2, q.getStatementFetchSize());
+ 
+ 		q.statementFetchSize(3).statementFetchSize(5);
+ 		assertEquals(5, q.getStatementFetchSize());
+ 	}
+ 	
+ 	
+ 	@Test
+ 	public void testCacheGroups_Collection() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dataRowQuery(Artist.class);
+ 
+ 		assertNull(q.getCacheStrategy());
+ 		assertNull(q.getCacheGroups());
+ 
+ 		q.cacheGroups(Arrays.asList("a", "b"));
+ 		assertNull(q.getCacheStrategy());
+ 		assertArrayEquals(new String[] { "a", "b" }, q.getCacheGroups());
+ 	}
+ 
+ 	@Test
+ 	public void testCacheStrategy() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dataRowQuery(Artist.class);
+ 
+ 		assertNull(q.getCacheStrategy());
+ 		assertNull(q.getCacheGroups());
+ 
+ 		q.cacheStrategy(QueryCacheStrategy.LOCAL_CACHE, "a", "b");
+ 		assertSame(QueryCacheStrategy.LOCAL_CACHE, q.getCacheStrategy());
+ 		assertArrayEquals(new String[] { "a", "b" }, q.getCacheGroups());
+ 
+ 		q.cacheStrategy(QueryCacheStrategy.SHARED_CACHE);
+ 		assertSame(QueryCacheStrategy.SHARED_CACHE, q.getCacheStrategy());
+ 		assertNull(q.getCacheGroups());
+ 	}
+ 	
+ 	@Test
+ 	public void testLocalCache() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dataRowQuery(Artist.class);
+ 
+ 		assertNull(q.getCacheStrategy());
+ 		assertNull(q.getCacheGroups());
+ 
+ 		q.localCache("a", "b");
+ 		assertSame(QueryCacheStrategy.LOCAL_CACHE, q.getCacheStrategy());
+ 		assertArrayEquals(new String[] { "a", "b" }, q.getCacheGroups());
+ 
+ 		q.localCache();
+ 		assertSame(QueryCacheStrategy.LOCAL_CACHE, q.getCacheStrategy());
+ 		assertNull(q.getCacheGroups());
+ 	}
+ 	
+ 	@Test
+ 	public void testSharedCache() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dataRowQuery(Artist.class);
+ 
+ 		assertNull(q.getCacheStrategy());
+ 		assertNull(q.getCacheGroups());
+ 
+ 		q.sharedCache("a", "b");
+ 		assertSame(QueryCacheStrategy.SHARED_CACHE, q.getCacheStrategy());
+ 		assertArrayEquals(new String[] { "a", "b" }, q.getCacheGroups());
+ 
+ 		q.sharedCache();
+ 		assertSame(QueryCacheStrategy.SHARED_CACHE, q.getCacheStrategy());
+ 		assertNull(q.getCacheGroups());
+ 	}
+ }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4207ebea/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
----------------------------------------------------------------------
diff --cc cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
index 0000000,9a7a590..33fba9e
mode 000000,100644..100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_CompileIT.java
@@@ -1,0 -1,168 +1,169 @@@
+ /*****************************************************************
+  *   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.cayenne.query;
+ 
 -import static org.hamcrest.CoreMatchers.instanceOf;
 -import static org.junit.Assert.assertArrayEquals;
 -import static org.junit.Assert.assertEquals;
 -import static org.junit.Assert.assertFalse;
 -import static org.junit.Assert.assertNotNull;
 -import static org.junit.Assert.assertNull;
 -import static org.junit.Assert.assertThat;
 -import static org.junit.Assert.assertTrue;
 -
+ import org.apache.cayenne.CayenneDataObject;
+ import org.apache.cayenne.CayenneRuntimeException;
+ import org.apache.cayenne.DataRow;
+ import org.apache.cayenne.di.Inject;
+ import org.apache.cayenne.map.EntityResolver;
+ import org.apache.cayenne.testdo.testmap.Artist;
++import org.apache.cayenne.unit.di.server.CayenneProjects;
+ import org.apache.cayenne.unit.di.server.ServerCase;
+ import org.apache.cayenne.unit.di.server.UseServerRuntime;
+ import org.junit.Test;
+ 
 -@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
++import static org.hamcrest.CoreMatchers.instanceOf;
++import static org.junit.Assert.assertArrayEquals;
++import static org.junit.Assert.assertEquals;
++import static org.junit.Assert.assertFalse;
++import static org.junit.Assert.assertNotNull;
++import static org.junit.Assert.assertNull;
++import static org.junit.Assert.assertThat;
++import static org.junit.Assert.assertTrue;
++
++@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
+ public class ObjectSelect_CompileIT extends ServerCase {
+ 
+ 	@Inject
+ 	private EntityResolver resolver;
+ 
+ 	@Test
+ 	public void testCreateReplacementQuery_Bare() {
+ 
+ 		// use only a minimal number of attributes, with null/defaults for
+ 		// everything else
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		Query replacement = q.createReplacementQuery(resolver);
+ 		assertThat(replacement, instanceOf(SelectQuery.class));
+ 
+ 		@SuppressWarnings("unchecked")
+ 		SelectQuery<Artist> selectQuery = (SelectQuery<Artist>) replacement;
+ 		assertNull(selectQuery.getQualifier());
+ 		assertEquals(Artist.class, selectQuery.getRoot());
+ 		assertEquals(0, selectQuery.getOrderings().size());
+ 		assertNull(selectQuery.getPrefetchTree());
+ 
+ 		assertEquals(QueryCacheStrategy.NO_CACHE, selectQuery.getCacheStrategy());
+ 		assertNull(selectQuery.getCacheGroups());
+ 		assertEquals(0, selectQuery.getFetchLimit());
+ 		assertEquals(0, selectQuery.getFetchOffset());
+ 		assertEquals(0, selectQuery.getPageSize());
+ 		assertEquals(0, selectQuery.getStatementFetchSize());
+ 	}
+ 
+ 	@Test
+ 	public void testCreateReplacementQuery_Full() {
+ 
+ 		// add all possible attributes to the query and make sure they got
+ 		// propagated
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class).exp(Artist.ARTIST_NAME.eq("me"))
+ 				.orderBy(Artist.DATE_OF_BIRTH.asc(), Artist.ARTIST_NAME.desc()).prefetch(Artist.PAINTING_ARRAY.joint())
+ 				.localCache("cg2", "cg1").limit(46).offset(9).pageSize(6).statementFetchSize(789);
+ 
+ 		Query replacement = q.createReplacementQuery(resolver);
+ 		assertThat(replacement, instanceOf(SelectQuery.class));
+ 
+ 		@SuppressWarnings("unchecked")
+ 		SelectQuery<Artist> selectQuery = (SelectQuery<Artist>) replacement;
+ 		assertEquals("artistName = \"me\"", selectQuery.getQualifier().toString());
+ 
+ 		assertEquals(2, selectQuery.getOrderings().size());
+ 		assertArrayEquals(new Object[] { Artist.DATE_OF_BIRTH.asc(), Artist.ARTIST_NAME.desc() }, selectQuery
+ 				.getOrderings().toArray());
+ 
+ 		PrefetchTreeNode prefetch = selectQuery.getPrefetchTree();
+ 		assertNotNull(prefetch);
+ 		assertEquals(1, prefetch.getChildren().size());
+ 
+ 		PrefetchTreeNode childPrefetch = prefetch.getNode(Artist.PAINTING_ARRAY.getName());
+ 		assertEquals(Artist.PAINTING_ARRAY.getName(), childPrefetch.getName());
+ 		assertEquals(PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS, childPrefetch.getSemantics());
+ 
+ 		assertEquals(QueryCacheStrategy.LOCAL_CACHE, selectQuery.getCacheStrategy());
+ 		assertArrayEquals(new Object[] { "cg2", "cg1" }, selectQuery.getCacheGroups());
+ 
+ 		assertEquals(46, selectQuery.getFetchLimit());
+ 		assertEquals(9, selectQuery.getFetchOffset());
+ 		assertEquals(6, selectQuery.getPageSize());
+ 		assertEquals(789, selectQuery.getStatementFetchSize());
+ 	}
+ 
+ 	@Test
+ 	public void testCreateReplacementQuery_RootClass() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		@SuppressWarnings("rawtypes")
+ 		SelectQuery qr = (SelectQuery) q.createReplacementQuery(resolver);
+ 		assertEquals(Artist.class, qr.getRoot());
+ 		assertFalse(qr.isFetchingDataRows());
+ 	}
+ 
+ 	@Test
+ 	public void testCreateReplacementQuery_RootDataRow() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dataRowQuery(Artist.class);
+ 
+ 		@SuppressWarnings("rawtypes")
+ 		SelectQuery qr = (SelectQuery) q.createReplacementQuery(resolver);
+ 		assertEquals(Artist.class, qr.getRoot());
+ 		assertTrue(qr.isFetchingDataRows());
+ 	}
+ 
+ 	@Test
+ 	public void testCreateReplacementQuery_RootDbEntity() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dbQuery("ARTIST");
+ 
+ 		@SuppressWarnings("rawtypes")
+ 		SelectQuery qr = (SelectQuery) q.createReplacementQuery(resolver);
+ 		assertEquals(resolver.getDbEntity("ARTIST"), qr.getRoot());
+ 		assertTrue(qr.isFetchingDataRows());
+ 	}
+ 
+ 	@Test
+ 	public void testCreateReplacementQuery_RootObjEntity() {
+ 		ObjectSelect<CayenneDataObject> q = ObjectSelect.query(CayenneDataObject.class, "Artist");
+ 
+ 		@SuppressWarnings("rawtypes")
+ 		SelectQuery qr = (SelectQuery) q.createReplacementQuery(resolver);
+ 		assertEquals(resolver.getObjEntity(Artist.class), qr.getRoot());
+ 		assertFalse(qr.isFetchingDataRows());
+ 	}
+ 
+ 	@Test(expected = CayenneRuntimeException.class)
+ 	public void testCreateReplacementQuery_RootAbscent() {
+ 		ObjectSelect<DataRow> q = ObjectSelect.dataRowQuery(Artist.class).entityName(null);
+ 		q.createReplacementQuery(resolver);
+ 	}
+ 
+ 	@Test
+ 	public void testCreateReplacementQuery_DataRows() {
+ 		ObjectSelect<Artist> q = ObjectSelect.query(Artist.class);
+ 
+ 		@SuppressWarnings("rawtypes")
+ 		SelectQuery selectQuery1 = (SelectQuery) q.createReplacementQuery(resolver);
+ 		assertFalse(selectQuery1.isFetchingDataRows());
+ 
+ 		q.fetchDataRows();
+ 
+ 		@SuppressWarnings("rawtypes")
+ 		SelectQuery selectQuery2 = (SelectQuery) q.createReplacementQuery(resolver);
+ 		assertTrue(selectQuery2.isFetchingDataRows());
+ 	}
+ }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4207ebea/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
----------------------------------------------------------------------
diff --cc cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
index 0000000,1b921a4..3f037c8
mode 000000,100644..100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
@@@ -1,0 -1,94 +1,86 @@@
+ /*****************************************************************
+  *   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.cayenne.query;
+ 
 -import static org.hamcrest.CoreMatchers.instanceOf;
 -import static org.junit.Assert.assertEquals;
 -import static org.junit.Assert.assertNotNull;
 -import static org.junit.Assert.assertThat;
 -
 -import java.util.List;
 -
+ import org.apache.cayenne.DataRow;
+ import org.apache.cayenne.access.DataContext;
+ import org.apache.cayenne.di.Inject;
+ import org.apache.cayenne.test.jdbc.DBHelper;
+ import org.apache.cayenne.test.jdbc.TableHelper;
+ import org.apache.cayenne.testdo.testmap.Artist;
++import org.apache.cayenne.unit.di.server.CayenneProjects;
+ import org.apache.cayenne.unit.di.server.ServerCase;
+ import org.apache.cayenne.unit.di.server.UseServerRuntime;
+ import org.junit.Test;
+ 
 -@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
++import java.util.List;
++
++import static org.hamcrest.CoreMatchers.instanceOf;
++import static org.junit.Assert.assertEquals;
++import static org.junit.Assert.assertNotNull;
++import static org.junit.Assert.assertThat;
++
++@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
+ public class ObjectSelect_RunIT extends ServerCase {
+ 
+ 	@Inject
+ 	private DataContext context;
+ 
+ 	@Inject
+ 	private DBHelper dbHelper;
+ 
 -	@Override
 -	protected void setUpAfterInjection() throws Exception {
 -		dbHelper.deleteAll("PAINTING_INFO");
 -		dbHelper.deleteAll("PAINTING");
 -		dbHelper.deleteAll("ARTIST_EXHIBIT");
 -		dbHelper.deleteAll("ARTIST_GROUP");
 -		dbHelper.deleteAll("ARTIST");
 -	}
 -
+ 	protected void createArtistsDataSet() throws Exception {
+ 		TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
+ 		tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");
+ 
+ 		long dateBase = System.currentTimeMillis();
+ 
+ 		for (int i = 1; i <= 20; i++) {
+ 			tArtist.insert(i, "artist" + i, new java.sql.Date(dateBase + 10000 * i));
+ 		}
+ 	}
+ 
+ 	@Test
+ 	public void test_SelectObjects() throws Exception {
+ 
+ 		createArtistsDataSet();
+ 
+ 		List<Artist> result = ObjectSelect.query(Artist.class).select(context);
+ 		assertEquals(20, result.size());
+ 		assertThat(result.get(0), instanceOf(Artist.class));
+ 
+ 		Artist a = ObjectSelect.query(Artist.class).exp(Artist.ARTIST_NAME.eq("artist14")).selectOne(context);
+ 		assertNotNull(a);
+ 		assertEquals("artist14", a.getArtistName());
+ 	}
+ 
+ 	@Test
+ 	public void test_SelectDataRows() throws Exception {
+ 
+ 		createArtistsDataSet();
+ 
+ 		List<DataRow> result = ObjectSelect.dataRowQuery(Artist.class).select(context);
+ 		assertEquals(20, result.size());
+ 		assertThat(result.get(0), instanceOf(DataRow.class));
+ 
+ 		DataRow a = ObjectSelect.dataRowQuery(Artist.class).exp(Artist.ARTIST_NAME.eq("artist14")).selectOne(context);
+ 		assertNotNull(a);
+ 		assertEquals("artist14", a.get("ARTIST_NAME"));
+ 	}
+ }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/4207ebea/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
----------------------------------------------------------------------
diff --cc cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
index 0d27c83,0c9cec7..862b7ac
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
@@@ -54,8 -53,20 +55,11 @@@ public class SelectByIdIT extends Serve
  	@Inject
  	private ObjectContext context;
  
+ 	@Inject
+ 	private EntityResolver resolver;
+ 
 -	@Override
 -	protected void setUpAfterInjection() throws Exception {
 -		dbHelper.deleteAll("PAINTING_INFO");
 -		dbHelper.deleteAll("PAINTING");
 -		dbHelper.deleteAll("ARTIST_EXHIBIT");
 -		dbHelper.deleteAll("ARTIST_GROUP");
 -		dbHelper.deleteAll("ARTIST");
 -		dbHelper.deleteAll("COMPOUND_FK_TEST");
 -		dbHelper.deleteAll("COMPOUND_PK_TEST");
 -		dbHelper.deleteAll("CHAR_PK_TEST");
 -
 +	@Before
 +	public void testSetUp() throws Exception {
  		tArtist = new TableHelper(dbHelper, "ARTIST");
  		tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
  	}


[07/39] cayenne git commit: Implement DBCleaner

Posted by aa...@apache.org.
Implement DBCleaner


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/368b4ac5
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/368b4ac5
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/368b4ac5

Branch: refs/heads/CAY-1946_1
Commit: 368b4ac5d659e6659480a7c4852957b23333f00b
Parents: cfbfb68
Author: Savva Kolbechev <s....@gmail.com>
Authored: Mon Nov 17 17:03:33 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Mon Nov 17 17:03:33 2014 +0300

----------------------------------------------------------------------
 .../apache/cayenne/CayenneContextCayenneIT.java |  13 +-
 .../CayenneContextClientChannelEventsIT.java    |  14 +-
 .../cayenne/CayenneContextDeleteRulesIT.java    |   3 +-
 .../apache/cayenne/CayenneContextEJBQLIT.java   |  11 +-
 .../CayenneContextGraphDiffCompressorIT.java    |   3 +-
 .../org/apache/cayenne/CayenneContextIT.java    |   3 +-
 .../cayenne/CayenneContextInheritanceIT.java    |  11 +-
 .../CayenneContextMapRelationshipIT.java        |  11 +-
 .../cayenne/CayenneContextMeaningfulPKIT.java   |  10 +-
 .../cayenne/CayenneContextMergeHandlerIT.java   |   3 +-
 .../CayenneContextNamedQueryCachingIT.java      |  11 +-
 .../CayenneContextPaginatedListCachingIT.java   |  11 +-
 .../cayenne/CayenneContextPrimitiveIT.java      |  10 +-
 .../cayenne/CayenneContextReflexiveIT.java      |   3 +-
 .../cayenne/CayenneContextRefreshQueryIT.java   |  11 +-
 .../cayenne/CayenneContextRelationshipsIT.java  |  14 +-
 .../cayenne/CayenneContextSQLTemplateIT.java    |  13 +-
 .../cayenne/CayenneContextServerDiffsIT.java    |   3 +-
 .../cayenne/CayenneContextValidationIT.java     |  13 +-
 .../CayenneContextWithDataContextIT.java        |  11 +-
 .../apache/cayenne/NestedCayenneContextIT.java  |  16 +-
 .../cayenne/NestedCayenneContextTooneIT.java    |   4 +-
 .../cayenne/PersistentObjectInContextIT.java    |  11 +-
 .../cayenne/access/ClientServerChannelIT.java   |  12 +-
 .../access/ClientServerChannelQueryIT.java      |  11 +-
 .../cayenne/query/ClientExpressionIT.java       |  13 +-
 .../query/ClientSelectQueryExpressionIT.java    |  11 +-
 .../query/SelectQueryAbstractEntityIT.java      |  13 +-
 .../remote/CayenneContextDeletionIT.java        |   4 +-
 .../remote/ClientChannelServerDiffsIT.java      |   3 +-
 .../cayenne/remote/LightSuperClassIT.java       |  19 +-
 .../remote/NestedObjectContextLocalIT.java      |   4 +-
 .../NestedObjectContextParentEventsIT.java      |  16 +-
 .../remote/NestedObjectContextPeerEventsIT.java |  16 +-
 .../remote/NestedObjectContextRollbackIT.java   |   4 +-
 .../cayenne/remote/ROPPrefetchToManyMapIT.java  |  14 +-
 .../cayenne/remote/RelationshipChangeIT.java    |   4 +-
 .../cayenne/remote/RemoteCallbacksIT.java       |   9 +-
 .../cayenne/remote/RemoteCayenneCase.java       |   5 +
 .../remote/RemoteIncrementalFaultListIT.java    |  11 +-
 .../apache/cayenne/remote/RemoteRollbackIT.java |   4 +-
 .../apache/cayenne/remote/ValueInjectorIT.java  |   4 +-
 .../cayenne/unit/di/client/ClientCase.java      |  20 +-
 .../unit/di/client/ClientCaseSelfIT.java        |   3 +-
 .../cayenne/util/ObjectDetachOperationIT.java   |  11 +-
 .../util/ShallowMergeOperation_ClientIT.java    |  14 +-
 .../cayenne/CDOCollectionRelationshipIT.java    |  11 +-
 .../java/org/apache/cayenne/CDOMany2OneIT.java  |  16 +-
 .../org/apache/cayenne/CDOMany2OneNoRevIT.java  |   3 +-
 .../apache/cayenne/CDOMapRelationshipIT.java    |  14 +-
 .../java/org/apache/cayenne/CDOOne2ManyIT.java  |  17 +-
 .../org/apache/cayenne/CDOOne2OneDepIT.java     |   3 +-
 .../org/apache/cayenne/CDOOneDep2OneIT.java     |   3 +-
 .../org/apache/cayenne/CDOOneToManyFKIT.java    |  14 +-
 .../org/apache/cayenne/CDOOneToOneFKIT.java     |  13 +-
 .../apache/cayenne/CDOQualifiedEntitiesIT.java  |  11 +-
 .../apache/cayenne/CDOReflexiveRelDeleteIT.java |   9 +-
 .../org/apache/cayenne/CDOReflexiveRelIT.java   |   3 +-
 .../apache/cayenne/CDOSetRelationshipIT.java    |  11 +-
 .../org/apache/cayenne/CayenneCompoundIT.java   |  12 +-
 .../org/apache/cayenne/CayenneDOTestBase.java   |  20 +-
 .../CayenneDataObjectFlattenedRelIT.java        |  17 +-
 .../org/apache/cayenne/CayenneDataObjectIT.java |   3 +-
 .../cayenne/CayenneDataObjectInContextIT.java   |  14 +-
 .../CayenneDataObjectRelationshipsIT.java       |  14 +-
 .../cayenne/CayenneDataObjectValidationIT.java  |   3 +-
 .../test/java/org/apache/cayenne/CayenneIT.java |  14 +-
 .../org/apache/cayenne/CompoundPkChangeIT.java  |  13 +-
 .../cayenne/DataContextMaxIdQualifierIT.java    |  14 +-
 .../cayenne/DataObjectSerializationIT.java      |   3 +-
 .../cayenne/FlattenedRelationshipsIT.java       |  16 +-
 .../org/apache/cayenne/GenericMappingIT.java    |  13 +-
 .../org/apache/cayenne/ManyToManyNoJoinIT.java  |  13 +-
 .../java/org/apache/cayenne/MeaningfulFKIT.java |  12 +-
 .../apache/cayenne/OneWayRelationshipsIT.java   |  14 +-
 .../cayenne/PersistenceByReachabilityIT.java    |   3 +-
 .../org/apache/cayenne/PersistentObjectIT.java  |   3 +-
 .../org/apache/cayenne/PregeneratedPKIT.java    |  18 +-
 .../cayenne/access/DataContextBinaryPKIT.java   |  15 +-
 .../cayenne/access/DataContextBlobIT.java       |  14 +-
 .../cayenne/access/DataContextCallbacksIT.java  |  21 +-
 .../cayenne/access/DataContextCharPKIT.java     |  13 +-
 .../cayenne/access/DataContextCharTypeIT.java   |  12 +-
 .../cayenne/access/DataContextClobIT.java       |  14 +-
 .../cayenne/access/DataContextCommitIT.java     |  17 +-
 .../access/DataContextCompoundRelIT.java        |  13 +-
 .../cayenne/access/DataContextCrossDBIT.java    |   3 +-
 .../access/DataContextDataChannelEventsIT.java  |   3 +-
 .../access/DataContextDecoratedStackIT.java     |  16 +-
 .../cayenne/access/DataContextDelegateIT.java   |  21 +-
 .../DataContextDelegateSharedCacheIT.java       |   8 +-
 .../access/DataContextDeleteRulesIT.java        |  16 +-
 .../DataContextDisjointByIdPrefetchIT.java      |  14 +-
 ...ataContextDisjointByIdPrefetch_ExtrasIT.java |  15 +-
 .../access/DataContextEJBQLArrayResultIT.java   |  14 +-
 .../access/DataContextEJBQLConditionsIT.java    |  14 +-
 .../DataContextEJBQLConditionsPeopleIT.java     |  14 +-
 ...extEJBQLDateTimeFunctionalExpressionsIT.java |  12 +-
 .../access/DataContextEJBQLDeleteIT.java        |  14 +-
 .../access/DataContextEJBQLDeletePKIT.java      |  11 +-
 .../access/DataContextEJBQLFetchJoinIT.java     |  16 +-
 ...ataContextEJBQLFlattenedRelationshipsIT.java |  15 +-
 ...DataContextEJBQLFunctionalExpressionsIT.java |  16 +-
 .../access/DataContextEJBQLGroupByHavingIT.java |  16 +-
 .../access/DataContextEJBQLInheritanceIT.java   |  15 +-
 .../access/DataContextEJBQLIsNullIT.java        |  14 +-
 .../cayenne/access/DataContextEJBQLJoinsIT.java |  16 +-
 .../DataContextEJBQLNumericalFunctionalIT.java  |  12 +-
 .../access/DataContextEJBQLOrderByIT.java       |  14 +-
 .../access/DataContextEJBQLQueryCompoundIT.java |  11 +-
 .../cayenne/access/DataContextEJBQLQueryIT.java |  14 +-
 .../access/DataContextEJBQLSubqueryIT.java      |  15 +-
 .../DataContextEJBQLUpdateCompoundIT.java       |  11 +-
 .../access/DataContextEJBQLUpdateIT.java        |  14 +-
 .../DataContextEntityWithMeaningfulPKIT.java    |  12 +-
 .../DataContextExtendedTypeOperationsIT.java    |  12 +-
 .../cayenne/access/DataContextExtrasIT.java     |  15 +-
 .../DataContextFlattenedAttributesIT.java       |  14 +-
 .../apache/cayenne/access/DataContextIT.java    |  16 +-
 .../access/DataContextJoinAliasesIT.java        |  13 +-
 .../access/DataContextLocalObjectIT.java        |  16 +-
 .../cayenne/access/DataContextNoPkIT.java       |   8 +-
 .../access/DataContextObjectIdQueryIT.java      |  17 +-
 .../access/DataContextObjectTrackingIT.java     |  14 +-
 .../cayenne/access/DataContextOrderingIT.java   |  17 +-
 .../cayenne/access/DataContextOuterJoinsIT.java |   9 +-
 .../access/DataContextPaginatedQueryIT.java     |  13 +-
 .../access/DataContextPerformQueryAPIIT.java    |  16 +-
 .../access/DataContextPrefetchExtras1IT.java    |  12 +-
 .../access/DataContextPrefetchExtrasIT.java     |  14 +-
 .../cayenne/access/DataContextPrefetchIT.java   |  19 +-
 .../access/DataContextPrefetchMultistepIT.java  |  16 +-
 .../DataContextPrefetchQualifierOverlapIT.java  |  13 +-
 .../access/DataContextProcedureQueryIT.java     |  20 +-
 .../access/DataContextQualifiedEntityIT.java    |  14 +-
 .../DataContextQueryCachingEhCacheIT.java       |  20 +-
 .../access/DataContextQueryCachingIT.java       |  19 +-
 .../DataContextQueryCachingOSCacheIT.java       |  15 +-
 .../cayenne/access/DataContextQueryChainIT.java |  17 +-
 .../access/DataContextRefreshQueryIT.java       |  14 +-
 .../cayenne/access/DataContextRefreshingIT.java |  14 +-
 .../access/DataContextRelationshipQueryIT.java  |  15 +-
 .../cayenne/access/DataContextRollbackIT.java   |  16 +-
 .../DataContextSQLTemplateCompoundIT.java       |  11 +-
 .../access/DataContextSQLTemplateIT.java        |  14 +-
 .../DataContextSelectQuerySplitAliasesIT.java   |  15 +-
 .../access/DataContextSerializationIT.java      |  19 +-
 .../access/DataContextSharedCacheEmpiricIT.java |  14 +-
 .../access/DataContextSharedCacheIT.java        |  21 +-
 .../cayenne/access/DataContextValidationIT.java |  17 +-
 .../cayenne/access/DataDomainCallbacksIT.java   |  18 +-
 .../cayenne/access/DataDomainFiltersIT.java     |   3 +-
 .../org/apache/cayenne/access/DataDomainIT.java |   3 +-
 .../cayenne/access/DataDomainQueryActionIT.java |  22 +-
 .../org/apache/cayenne/access/DataNodeIT.java   |   3 +-
 .../cayenne/access/DataNodeQueriesIT.java       |  14 +-
 .../apache/cayenne/access/DataRowStoreIT.java   |   3 +-
 .../apache/cayenne/access/DataRowUtilsIT.java   |  14 +-
 .../apache/cayenne/access/DateTimeTypesIT.java  |  13 +-
 .../apache/cayenne/access/DbGeneratorIT.java    |   8 +-
 .../org/apache/cayenne/access/DbLoaderIT.java   |  13 +-
 .../cayenne/access/DbLoaderPartialIT.java       |  13 +-
 .../apache/cayenne/access/DeleteObjectIT.java   |  14 +-
 .../apache/cayenne/access/DeleteRulesIT.java    |  17 +-
 .../org/apache/cayenne/access/EmbeddingIT.java  |  12 +-
 .../cayenne/access/EntityInheritanceIT.java     |   3 +-
 .../java/org/apache/cayenne/access/EnumIT.java  |   9 +-
 .../cayenne/access/FlattenedArcKeyIT.java       |   3 +-
 .../cayenne/access/FlattenedPrefetchIT.java     |  15 +-
 .../FlattenedRelationshipInContextIT.java       |  14 +-
 .../cayenne/access/IdentityColumnsIT.java       |  15 +-
 .../cayenne/access/IncrementalFaultListIT.java  |   3 +-
 .../apache/cayenne/access/JointPrefetchIT.java  |  14 +-
 .../org/apache/cayenne/access/MiscTypesIT.java  |  17 +-
 .../access/NestedDataContextLocalCacheIT.java   |  18 +-
 .../access/NestedDataContextParentEventsIT.java |   3 +-
 .../NestedDataContextParentPeerEventsIT.java    |   3 +-
 .../access/NestedDataContextPeerEventsIT.java   |   3 +-
 .../cayenne/access/NestedDataContextReadIT.java |  14 +-
 .../access/NestedDataContextRollbackIT.java     |   3 +-
 .../access/NestedDataContextValidationIT.java   |  16 +-
 .../access/NestedDataContextWriteIT.java        |  14 +-
 .../access/NestedDataContext_DeadlockIT.java    |  14 +-
 .../apache/cayenne/access/NumericTypesIT.java   |  13 +-
 .../access/ObjectStoreDiffRetainingIT.java      |  14 +-
 .../apache/cayenne/access/ObjectStoreGCIT.java  |  16 +-
 .../apache/cayenne/access/ObjectStoreIT.java    |   3 +-
 .../cayenne/access/OptimisticLockingIT.java     |  12 +-
 .../access/PrefetchProcessorTreeBuilderIT.java  |   3 +-
 .../cayenne/access/PrimitiveAttributesIT.java   |  12 +-
 .../cayenne/access/QuotedIdentifiersIT.java     |  14 +-
 .../cayenne/access/ReturnTypesMappingIT.java    |  16 +-
 .../SimpleIdIncrementalFaultListDataRowsIT.java |  14 +-
 .../access/SimpleIdIncrementalFaultListIT.java  |  14 +-
 .../SimpleIdIncrementalFaultListPrefetchIT.java |  14 +-
 .../access/SingleTableInheritance1IT.java       |  16 +-
 .../access/SingleTableInheritanceIT.java        |  14 +-
 .../org/apache/cayenne/access/ToManyListIT.java |  16 +-
 .../cayenne/access/TransactionThreadIT.java     |  16 +-
 .../java/org/apache/cayenne/access/UUIDIT.java  |  11 +-
 .../cayenne/access/UserTransactionIT.java       |   3 +-
 .../cayenne/access/VerticalInheritanceIT.java   |  19 +-
 .../access/dbsync/SchemaUpdateStrategyBase.java |  18 +-
 .../access/dbsync/SchemaUpdateStrategyIT.java   |   4 +-
 .../ThrowOnPartialOrCreateSchemaStrategyIT.java |   4 +-
 .../dbsync/ThrowOnPartialSchemaStrategyIT.java  |   4 +-
 .../access/jdbc/BatchActionGeneratedIT.java     |   3 +-
 .../cayenne/access/jdbc/BatchActionIT.java      |   3 +-
 .../access/jdbc/BatchActionLockingIT.java       |   3 +-
 .../access/jdbc/SQLTemplateActionIT.java        |  14 +-
 .../cayenne/access/jdbc/SelectActionIT.java     |  16 +-
 .../batch/DefaultBatchTranslatorIT.java         |   3 +-
 .../batch/DeleteBatchTranslatorIT.java          |   3 +-
 .../batch/InsertBatchTranslatorIT.java          |   3 +-
 .../batch/SoftDeleteBatchTranslatorIT.java      |   3 +-
 .../batch/UpdateBatchTranslatorIT.java          |   3 +-
 .../ejbql/EJBQLSelectTranslatorIT.java          |   3 +-
 .../translator/select/OrderingTranslatorIT.java |  13 +-
 .../select/QualifierTranslatorIT.java           |  13 +-
 .../translator/select/QueryAssemblerIT.java     |  13 +-
 .../translator/select/SelectTranslatorIT.java   |  19 +-
 .../access/util/DefaultOperationObserverIT.java |   3 +-
 .../cayenne/ashwood/AshwoodEntitySorterIT.java  |  13 +-
 .../org/apache/cayenne/cache/QueryCacheIT.java  |   3 +-
 .../server/JNDIDataSourceFactoryIT.java         |   3 +-
 .../ServerRuntimeBuilder_InAction_IT.java       |  17 +-
 .../org/apache/cayenne/conn/PoolManagerIT.java  |   3 +-
 .../org/apache/cayenne/dba/AutoAdapterIT.java   |   3 +-
 .../cayenne/dba/ConcurrentPkGeneratorIT.java    |   3 +-
 .../org/apache/cayenne/dba/JdbcAdapterIT.java   |   3 +-
 .../apache/cayenne/dba/JdbcPkGeneratorIT.java   |  15 +-
 .../org/apache/cayenne/dba/PkGeneratorIT.java   |   9 +-
 .../org/apache/cayenne/dba/TypesMappingIT.java  |   3 +
 .../cayenne/dba/hsqldb/HSQLDBAdapterIT.java     |   3 +-
 .../cayenne/dba/mysql/MySQLAdapterIT.java       |   3 +-
 .../cayenne/dba/oracle/Oracle8AdapterIT.java    |   3 +-
 .../cayenne/dba/oracle/OracleAdapterIT.java     |   3 +-
 .../cayenne/dba/oracle/OraclePkGeneratorIT.java |   8 +-
 .../cayenne/dba/postgres/PostgresAdapterIT.java |   3 +-
 .../dba/sqlserver/SQLServerAdapterIT.java       |   3 +-
 .../dba/sqlserver/SQLServerSnifferIT.java       |   3 +-
 .../ejbql/EJBQLCompiledExpressionIT.java        |   3 +-
 .../exp/ExpressionFactory_InContextIT.java      |   3 +-
 .../cayenne/exp/Expression_InContextIT.java     |  18 +-
 .../cayenne/exp/ParsedExpQualifierCompatIT.java |  14 +-
 .../parser/ExpressionEvaluateInMemoryIT.java    |  15 +-
 .../cayenne/map/ClientEntityResolverIT.java     |   3 +-
 .../java/org/apache/cayenne/map/DbEntityIT.java |   3 +-
 .../apache/cayenne/map/DbRelationshipIT.java    |   8 +-
 .../java/org/apache/cayenne/map/EntityIT.java   |   3 +-
 .../map/EntityResolverClassDescriptorIT.java    |   3 +-
 .../map/EntityResolverGenericStackIT.java       |   3 +-
 .../apache/cayenne/map/EntityResolverIT.java    |   3 +-
 .../map/EntityResolverInheritanceIT.java        |   3 +-
 .../org/apache/cayenne/map/ObjEntityIT.java     |  16 +-
 .../apache/cayenne/map/ObjRelationshipIT.java   |   8 +-
 .../cayenne/merge/AddColumnToModelIT.java       |   4 +-
 .../cayenne/merge/CreateTableToModelIT.java     |   4 +-
 .../cayenne/merge/DropColumnToModelIT.java      |   4 +-
 .../merge/DropRelationshipToModelIT.java        |   4 +-
 .../cayenne/merge/DropTableToModelIT.java       |   4 +-
 .../org/apache/cayenne/merge/MergeCase.java     |  14 +-
 .../apache/cayenne/merge/MergerFactoryIT.java   |   4 +-
 .../cayenne/merge/SetAllowNullToDbIT.java       |   4 +-
 .../apache/cayenne/merge/SetNotNullToDbIT.java  |  19 +-
 .../cayenne/merge/SetPrimaryKeyToDbIT.java      |   4 +-
 .../apache/cayenne/merge/ValueForNullIT.java    |   4 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java  |  11 +-
 .../cayenne/query/EJBQLQueryNumericIT.java      |  10 +-
 .../cayenne/query/ProcedureQueryCacheKeyIT.java |   3 +-
 .../org/apache/cayenne/query/QueryChainIT.java  |   3 +-
 .../org/apache/cayenne/query/SQLSelectIT.java   |  12 +-
 .../cayenne/query/SQLTemplateCacheKeyIT.java    |   3 +-
 .../org/apache/cayenne/query/SQLTemplateIT.java |  14 +-
 .../org/apache/cayenne/query/SelectByIdIT.java  |  17 +-
 .../cayenne/query/SelectQueryCacheKeyIT.java    |   3 +-
 .../apache/cayenne/query/SelectQueryClobIT.java |  12 +-
 .../query/SelectQueryFetchLimitOrderingIT.java  |  14 +-
 .../org/apache/cayenne/query/SelectQueryIT.java |  12 +-
 .../SelectQueryPrefetchRouterActionIT.java      |   3 +-
 ...ryPrefetchRouterActionQualifiedEntityIT.java |   3 +-
 .../cayenne/query/SelectQueryReturnTypesIT.java |   8 +-
 .../cayenne/query/StatementFetchSizeIT.java     |   3 +-
 .../reflect/LifecycleCallbackRegistryIT.java    |   3 +-
 ...LifecycleCallbackRegistry_InheritanceIT.java |   3 +-
 .../reflect/MixedPersistenceStrategyIT.java     |  11 +-
 .../generic/DataObjectDescriptorFactoryIT.java  |   3 +-
 ...jectDescriptorFactory_InheritanceMapsIT.java |   3 +-
 .../cayenne/tx/DefaultTransactionManagerIT.java |   3 +-
 .../cayenne/unit/di/server/CayenneProjects.java |  79 ++++++
 .../cayenne/unit/di/server/DBCleaner.java       | 256 +++++++++++++++++++
 .../unit/di/server/DBCleanerProvider.java       |  40 +++
 .../cayenne/unit/di/server/SchemaBuilder.java   |   2 +-
 .../cayenne/unit/di/server/ServerCase.java      |  57 +----
 .../unit/di/server/ServerCaseModule.java        |   8 +-
 .../unit/di/server/ServerCaseSelfIT.java        |   4 +-
 .../org/apache/cayenne/unit/jira/CAY_115IT.java |  13 +-
 .../org/apache/cayenne/unit/jira/CAY_191IT.java |  17 +-
 .../org/apache/cayenne/unit/jira/CAY_194IT.java |   8 +-
 .../cayenne/util/DeepMergeOperationIT.java      |   3 +-
 .../util/DeepMergeOperationInheritanceIT.java   |   3 +-
 .../cayenne/util/EntityMergeSupportIT.java      |   4 +-
 .../cayenne/util/ShallowMergeOperationIT.java   |  14 +-
 .../cayenne/velocity/BindDirectiveIT.java       |  16 +-
 .../cayenne/velocity/ResultDirectiveIT.java     |  19 +-
 .../src/test/resources/cayenne-empty.xml        |   4 +
 cayenne-server/src/test/resources/empty.map.xml |   9 +
 .../src/test/resources/small-testmap.map.xml    | 225 ----------------
 308 files changed, 1457 insertions(+), 2318 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextCayenneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextCayenneIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextCayenneIT.java
index 1063f56..dc89b9f 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextCayenneIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextCayenneIT.java
@@ -20,30 +20,21 @@ package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextCayenneIT extends ClientCase {
 
     @Inject
-    private DBHelper dbHelper;
-
-    @Inject
     private CayenneContext context;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-    }
-
     @Test
     public void testObjectForPK() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
index 71f0114..fd8a569 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
@@ -31,7 +31,9 @@ import org.apache.cayenne.testdo.mt.ClientMtTable4;
 import org.apache.cayenne.testdo.mt.ClientMtTable5;
 import org.apache.cayenne.unit.di.client.ClientCase;
 import org.apache.cayenne.unit.di.client.ClientRuntimeProperty;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -44,7 +46,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests peer context synchronization via ClientChannel events.
  */
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @ClientRuntimeProperty({
         Constants.ROP_CHANNEL_EVENTS_PROPERTY, "true"
 })
@@ -62,14 +64,8 @@ public class CayenneContextClientChannelEventsIT extends ClientCase {
     private TableHelper tMtTable5;
     private TableHelper tMtJoin45;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-        dbHelper.deleteAll("MT_JOIN45");
-        dbHelper.deleteAll("MT_TABLE4");
-        dbHelper.deleteAll("MT_TABLE5");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
index c43bac9..7c35650 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextDeleteRulesIT.java
@@ -25,6 +25,7 @@ import org.apache.cayenne.testdo.deleterules.ClientDeleteDeny;
 import org.apache.cayenne.testdo.deleterules.ClientDeleteNullify;
 import org.apache.cayenne.testdo.deleterules.ClientDeleteRule;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -34,7 +35,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ClientCase.DELETE_RULES_PROJECT)
+@UseServerRuntime(CayenneProjects.DELETE_RULES_PROJECT)
 public class CayenneContextDeleteRulesIT extends ClientCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
index e1e1351..7e1048c 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
@@ -24,7 +24,9 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -32,7 +34,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextEJBQLIT extends ClientCase {
 
     @Inject
@@ -43,11 +45,8 @@ public class CayenneContextEJBQLIT extends ClientCase {
 
     private TableHelper tMtTable1;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextGraphDiffCompressorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextGraphDiffCompressorIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextGraphDiffCompressorIT.java
index 487d03f..590ed85 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextGraphDiffCompressorIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextGraphDiffCompressorIT.java
@@ -25,12 +25,13 @@ import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.DataChannelSyncStats;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextGraphDiffCompressorIT extends ClientCase {
 
     @Inject(ClientCase.ROP_CLIENT_KEY)

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextIT.java
index 268a2cc..cfe37f2 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextIT.java
@@ -37,6 +37,7 @@ import org.apache.cayenne.remote.ClientConnection;
 import org.apache.cayenne.remote.ClientMessage;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.GenericResponse;
 import org.junit.Test;
@@ -59,7 +60,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextIT extends ClientCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
index 55ab00d..8fe01b2 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
@@ -26,7 +26,9 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable1Subclass1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -34,7 +36,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextInheritanceIT extends ClientCase {
 
     @Inject
@@ -45,11 +47,8 @@ public class CayenneContextInheritanceIT extends ClientCase {
 
     private TableHelper tMtTable1;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns(
                 "TABLE1_ID",

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
index 7ae2dee..00c1760 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
@@ -27,7 +27,9 @@ import org.apache.cayenne.testdo.map_to_many.ClientIdMapToMany;
 import org.apache.cayenne.testdo.map_to_many.ClientIdMapToManyTarget;
 import org.apache.cayenne.testdo.map_to_many.IdMapToMany;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Map;
@@ -37,7 +39,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MAP_TO_MANY_PROJECT)
+@UseServerRuntime(CayenneProjects.MAP_TO_MANY_PROJECT)
 public class CayenneContextMapRelationshipIT extends ClientCase {
 
     @Inject
@@ -49,11 +51,8 @@ public class CayenneContextMapRelationshipIT extends ClientCase {
     private TableHelper tMapToMany;
     private TableHelper tMapToManyTarget;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
-        dbHelper.deleteAll("ID_MAP_TO_MANY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMapToMany = new TableHelper(dbHelper, "ID_MAP_TO_MANY");
         tMapToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
index 28927c3..cd11d57 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
@@ -26,14 +26,16 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.meaningful_pk.ClientMeaningfulPk;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MEANINGFUL_PK_PROJECT)
+@UseServerRuntime(CayenneProjects.MEANINGFUL_PK_PROJECT)
 public class CayenneContextMeaningfulPKIT extends ClientCase {
 
     @Inject
@@ -44,10 +46,8 @@ public class CayenneContextMeaningfulPKIT extends ClientCase {
 
     private TableHelper tMeaningfulPK;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MEANINGFUL_PK");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMeaningfulPK = new TableHelper(dbHelper, "MEANINGFUL_PK");
         tMeaningfulPK.setColumns("PK");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMergeHandlerIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMergeHandlerIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMergeHandlerIT.java
index 31b5c80..00ca30e 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMergeHandlerIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMergeHandlerIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.graph.GraphEvent;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -32,7 +33,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextMergeHandlerIT extends ClientCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
index 1aeae13..82178bf 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
@@ -26,7 +26,9 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
@@ -36,7 +38,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextNamedQueryCachingIT extends ClientCase {
 
     @Inject
@@ -50,11 +52,8 @@ public class CayenneContextNamedQueryCachingIT extends ClientCase {
 
     private TableHelper tMtTable1;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
index a0a4efe..ea6ce4e 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
@@ -26,14 +26,16 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextPaginatedListCachingIT extends ClientCase {
 
     @Inject
@@ -44,11 +46,8 @@ public class CayenneContextPaginatedListCachingIT extends ClientCase {
 
     private TableHelper tMtTable1;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
index 0c402d5..ebfdf68 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
@@ -27,7 +27,9 @@ import org.apache.cayenne.testdo.table_primitives.ClientTablePrimitives;
 import org.apache.cayenne.testdo.table_primitives.TablePrimitives;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -37,7 +39,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.TABLE_PRIMITIVES_PROJECT)
+@UseServerRuntime(CayenneProjects.TABLE_PRIMITIVES_PROJECT)
 public class CayenneContextPrimitiveIT extends ClientCase {
 
     @Inject
@@ -51,10 +53,8 @@ public class CayenneContextPrimitiveIT extends ClientCase {
 
     private TableHelper tTablePrimitives;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("TABLE_PRIMITIVES");
-
+    @Before
+    public void testSetUp() throws Exception {
         int bool = accessStackAdapter.supportsBoolean() ? Types.BOOLEAN : Types.INTEGER;
         
         tTablePrimitives = new TableHelper(dbHelper, "TABLE_PRIMITIVES");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java
index eec50ab..35b663d 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextReflexiveIT.java
@@ -25,10 +25,11 @@ import org.apache.cayenne.reflect.LifecycleCallbackRegistry;
 import org.apache.cayenne.testdo.reflexive.ClientReflexive;
 import org.apache.cayenne.testdo.reflexive.Reflexive;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
-@UseServerRuntime(ClientCase.REFLEXIVE_PROJECT)
+@UseServerRuntime(CayenneProjects.REFLEXIVE_PROJECT)
 public class CayenneContextReflexiveIT extends ClientCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
index 2db0812..23d31b4 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
@@ -24,12 +24,14 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextRefreshQueryIT extends ClientCase {
 
     @Inject
@@ -41,11 +43,8 @@ public class CayenneContextRefreshQueryIT extends ClientCase {
     private TableHelper tMtTable1;
     private TableHelper tMtTable2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
index 8ae8850..a028306 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
@@ -27,13 +27,15 @@ import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.testdo.mt.MtTable2;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextRelationshipsIT extends ClientCase {
 
     @Inject
@@ -48,14 +50,8 @@ public class CayenneContextRelationshipsIT extends ClientCase {
     private TableHelper tMtTable1;
     private TableHelper tMtTable2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-        dbHelper.deleteAll("MT_JOIN45");
-        dbHelper.deleteAll("MT_TABLE4");
-        dbHelper.deleteAll("MT_TABLE5");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextSQLTemplateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextSQLTemplateIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextSQLTemplateIT.java
index 555dbce..f58823f 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextSQLTemplateIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextSQLTemplateIT.java
@@ -20,30 +20,21 @@ package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextSQLTemplateIT extends ClientCase {
 
     @Inject
-    private DBHelper dbHelper;
-
-    @Inject
     private CayenneContext context;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-    }
-
     @Test
     public void testObjectRoot() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextServerDiffsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextServerDiffsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextServerDiffsIT.java
index 7031d24..6fc3dc6 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextServerDiffsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextServerDiffsIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -34,7 +35,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextServerDiffsIT extends ClientCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextValidationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextValidationIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextValidationIT.java
index 299adef..c65dfa3 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextValidationIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextValidationIT.java
@@ -20,10 +20,10 @@
 package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.validation.ValidationException;
 import org.junit.Test;
@@ -32,21 +32,12 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextValidationIT extends ClientCase {
 
     @Inject
-    private DBHelper dbHelper;
-
-    @Inject
     private CayenneContext context;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-    }
-
     @Test
     public void testValidate() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
index 69676c7..3efab4d 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
@@ -38,7 +38,9 @@ import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -53,7 +55,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class CayenneContextWithDataContextIT extends ClientCase {
 
     @Inject
@@ -71,11 +73,8 @@ public class CayenneContextWithDataContextIT extends ClientCase {
     private TableHelper tMtTable1;
     private TableHelper tMtTable2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
index 0e489ab..53a3145 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextIT.java
@@ -26,12 +26,11 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.remote.RemoteCayenneCase;
 import org.apache.cayenne.remote.service.LocalConnection;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -52,7 +51,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests nested object contexts
  */
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value = Parameterized.class)
 public class NestedCayenneContextIT extends RemoteCayenneCase {
 
@@ -60,9 +59,6 @@ public class NestedCayenneContextIT extends RemoteCayenneCase {
 	private ClientRuntime runtime;
 
 	@Inject
-	private DBHelper dbHelper;
-
-	@Inject
 	private DataChannelInterceptor queryInterceptor;
 
 	@Parameters
@@ -77,14 +73,6 @@ public class NestedCayenneContextIT extends RemoteCayenneCase {
 		super.serializationPolicy = serializationPolicy;
 	}
 
-	@Override
-	public void setUpAfterInjection() throws Exception {
-		super.setUpAfterInjection();
-
-		dbHelper.deleteAll("MT_TABLE2");
-		dbHelper.deleteAll("MT_TABLE1");
-	}
-
 	@Test
 	public void testChannels() {
 		ObjectContext child = runtime.newContext(clientContext);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java
index ddeebd1..28f9875 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/NestedCayenneContextTooneIT.java
@@ -29,7 +29,7 @@ import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.toone.ClientTooneDep;
 import org.apache.cayenne.testdo.toone.ClientTooneMaster;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -43,7 +43,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ClientCase.TOONE_PROJECT)
+@UseServerRuntime(CayenneProjects.TOONE_PROJECT)
 @RunWith(value = Parameterized.class)
 public class NestedCayenneContextTooneIT extends RemoteCayenneCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
index b903d1c..95806f0 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.testdo.mt.MtTable2;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.PersistentObjectHolder;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -40,7 +42,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class PersistentObjectInContextIT extends ClientCase {
 
     @Inject
@@ -52,11 +54,8 @@ public class PersistentObjectInContextIT extends ClientCase {
     private TableHelper tMtTable1;
     private TableHelper tMtTable2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
index dff353f..3a74163 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
@@ -46,8 +46,10 @@ import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.EqualsBuilder;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -58,7 +60,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ClientServerChannelIT extends ClientCase {
 
     @Inject
@@ -83,12 +85,8 @@ public class ClientServerChannelIT extends ClientCase {
     private TableHelper tMtTable2;
     private TableHelper tMtTable3;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-        dbHelper.deleteAll("MT_TABLE3");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
index 110f39c..cc42dd3 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
@@ -32,9 +32,11 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.PersistentObjectHolder;
 import org.apache.cayenne.util.PersistentObjectList;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
@@ -45,7 +47,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ClientServerChannelQueryIT extends ClientCase {
 
     @Inject(ClientCase.ROP_CLIENT_KEY)
@@ -60,11 +62,8 @@ public class ClientServerChannelQueryIT extends ClientCase {
     private TableHelper tMtTable1;
     private TableHelper tMtTable2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
index ad3874d..b827b04 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
@@ -30,7 +30,9 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -42,7 +44,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ClientExpressionIT extends ClientCase {
     
     @Inject
@@ -53,12 +55,9 @@ public class ClientExpressionIT extends ClientCase {
     
     private TableHelper tMtTable1;
     private TableHelper tMtTable2;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-        
+
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
index b484f34..91b8ba8 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
@@ -26,14 +26,16 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ClientSelectQueryExpressionIT extends ClientCase {
 
     @Inject
@@ -44,11 +46,8 @@ public class ClientSelectQueryExpressionIT extends ClientCase {
 
     private TableHelper tMtTable1;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java b/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
index 7bd8a55..389e9f4 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
@@ -25,16 +25,17 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.testdo.mt.MtTable1Subclass1;
 import org.apache.cayenne.testdo.mt.MtTable1Subclass2;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
 
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class SelectQueryAbstractEntityIT extends ServerCase {
     
     @Inject
@@ -44,11 +45,9 @@ public class SelectQueryAbstractEntityIT extends ServerCase {
     private DBHelper dbHelper;
     
     private TableHelper mtTable;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE1");
-        
+
+    @Before
+    public void testSetUp() throws Exception {
         mtTable = new TableHelper(dbHelper, "MT_TABLE1");
         mtTable.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1", "SUBCLASS_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionIT.java
index 98f89df..22e54b8 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/CayenneContextDeletionIT.java
@@ -20,7 +20,7 @@ package org.apache.cayenne.remote;
 
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -32,7 +32,7 @@ import java.util.Collection;
 
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class CayenneContextDeletionIT extends RemoteCayenneCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/ClientChannelServerDiffsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/ClientChannelServerDiffsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/ClientChannelServerDiffsIT.java
index 805f730..4c3b79b 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/ClientChannelServerDiffsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/ClientChannelServerDiffsIT.java
@@ -32,6 +32,7 @@ import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -44,7 +45,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ClientChannelServerDiffsIT extends ClientCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
index c6e06dc..29818a2 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/LightSuperClassIT.java
@@ -19,14 +19,12 @@
 package org.apache.cayenne.remote;
 
 import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.remote.service.LocalConnection;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.persistent.Continent;
 import org.apache.cayenne.testdo.persistent.Country;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -39,15 +37,12 @@ import java.util.Collection;
 import static org.junit.Assert.assertEquals;
 
 /**
- * Test for entites that are implemented in same class on client and server
+ * Test for entities that are implemented in same class on client and server
  */
-@UseServerRuntime(ClientCase.PERSISTENT_PROJECT)
+@UseServerRuntime(CayenneProjects.PERSISTENT_PROJECT)
 @RunWith(value=Parameterized.class)
 public class LightSuperClassIT extends RemoteCayenneCase {
 
-    @Inject
-    private DBHelper dbHelper;
-
     private boolean server;
 
     @Parameters
@@ -65,14 +60,6 @@ public class LightSuperClassIT extends RemoteCayenneCase {
         this.server = server;
     }
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        super.setUpAfterInjection();
-
-        dbHelper.deleteAll("CONTINENT");
-        dbHelper.deleteAll("COUNTRY");
-    }
-
     private ObjectContext createContext() {
         if (server) {
             return serverContext;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalIT.java
index aae5787..6c7085f 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextLocalIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -39,7 +39,7 @@ import java.util.List;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class NestedObjectContextLocalIT extends RemoteCayenneCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsIT.java
index b9d701b..2ebba83 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextParentEventsIT.java
@@ -23,9 +23,8 @@ import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.configuration.rop.client.ClientRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.remote.service.LocalConnection;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,14 +39,11 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class NestedObjectContextParentEventsIT extends RemoteCayenneCase {
 
     @Inject
-    private DBHelper dbHelper;
-    
-    @Inject
     private ClientRuntime runtime;
 
     @Parameters
@@ -63,14 +59,6 @@ public class NestedObjectContextParentEventsIT extends RemoteCayenneCase {
         super.serializationPolicy = serializationPolicy;
     }
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        super.setUpAfterInjection();
-
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-    }
-
     @Test
     public void testParentUpdatedId() throws Exception {
         ObjectContext child = runtime.newContext(clientContext);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsIT.java
index b6974ba..e571574 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextPeerEventsIT.java
@@ -24,10 +24,9 @@ import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.configuration.rop.client.ClientRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.remote.service.LocalConnection;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -42,16 +41,13 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class NestedObjectContextPeerEventsIT extends RemoteCayenneCase {
 
     @Inject
     private ClientRuntime runtime;
     
-    @Inject
-    private DBHelper dbHelper;
-
     @Parameters
     public static Collection<Object[]> data() {
         return Arrays.asList(new Object[][]{
@@ -65,14 +61,6 @@ public class NestedObjectContextPeerEventsIT extends RemoteCayenneCase {
         super.serializationPolicy = serializationPolicy;
     }
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        super.setUpAfterInjection();
-
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-    }
-
     @Test
     public void testPeerObjectUpdatedTempOID() throws Exception {
         ObjectContext peer1 = runtime.newContext(clientContext);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackIT.java
index 7b35148..5474dcd 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/NestedObjectContextRollbackIT.java
@@ -23,7 +23,7 @@ import org.apache.cayenne.configuration.rop.client.ClientRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -36,7 +36,7 @@ import java.util.Collection;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class NestedObjectContextRollbackIT extends RemoteCayenneCase {
     

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
index 1fa8c40..1f2caeb 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/ROPPrefetchToManyMapIT.java
@@ -24,12 +24,11 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.remote.service.LocalConnection;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.map_to_many.ClientIdMapToMany;
 import org.apache.cayenne.testdo.map_to_many.ClientIdMapToManyTarget;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -41,14 +40,11 @@ import java.util.Collection;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MAP_TO_MANY_PROJECT)
+@UseServerRuntime(CayenneProjects.MAP_TO_MANY_PROJECT)
 @RunWith(value=Parameterized.class)
 public class ROPPrefetchToManyMapIT extends RemoteCayenneCase {
     
     @Inject
-    private DBHelper dbHelper;
-    
-    @Inject
     private DataChannelInterceptor queryInterceptor;
 
     @Parameters
@@ -64,12 +60,6 @@ public class ROPPrefetchToManyMapIT extends RemoteCayenneCase {
         super.serializationPolicy = serializationPolicy;
     }
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
-        dbHelper.deleteAll("ID_MAP_TO_MANY");
-    }
-
     @Test
     public void test() throws Exception {
         ObjectContext context = createROPContext();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/RelationshipChangeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RelationshipChangeIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RelationshipChangeIT.java
index 3fba2bf..a13b5c3 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RelationshipChangeIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RelationshipChangeIT.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.remote;
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -36,7 +36,7 @@ import static org.junit.Assert.assertEquals;
 /**
  * This is a test primarily for CAY-1118
  */
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class RelationshipChangeIT extends RemoteCayenneCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
index afeb9fb..bbf7fdb 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
@@ -22,8 +22,9 @@ import org.apache.cayenne.LifecycleListener;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.lifecycles.ClientLifecycles;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -34,7 +35,7 @@ import java.util.Collection;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.LIFECYCLES_PROJECT)
+@UseServerRuntime(CayenneProjects.LIFECYCLES_PROJECT)
 @RunWith(value=Parameterized.class)
 public class RemoteCallbacksIT extends RemoteCayenneCase implements LifecycleListener {
     private int added, loaded, prePersisted, postPersisted, preRemoved, postRemoved, preUpdated, postUpdated;
@@ -52,8 +53,8 @@ public class RemoteCallbacksIT extends RemoteCayenneCase implements LifecycleLis
         super.serializationPolicy = serializationPolicy;
     }
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         super.setUpAfterInjection();
         
         added = 0;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
index 07cca01..f86b7b1 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
@@ -26,12 +26,16 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.event.DefaultEventManager;
 import org.apache.cayenne.unit.UnitLocalConnection;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.DBCleaner;
 
 public abstract class RemoteCayenneCase extends ClientCase {
 
     protected CayenneContext clientContext;
 
     @Inject
+    private DBCleaner dbCleaner;
+
+    @Inject
     protected DataContext serverContext;
 
     /**
@@ -41,6 +45,7 @@ public abstract class RemoteCayenneCase extends ClientCase {
 
     @Override
     public void setUpAfterInjection() throws Exception {
+        dbCleaner.clean();
         clientContext = createROPContext();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
index be2f520..54859d3 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
@@ -31,7 +31,9 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Iterator;
@@ -44,7 +46,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class RemoteIncrementalFaultListIT extends ClientCase {
 
 	private static final int COUNT = 25;
@@ -59,11 +61,8 @@ public class RemoteIncrementalFaultListIT extends ClientCase {
 
 	private RemoteIncrementalFaultList list;
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
-		dbHelper.deleteAll("MT_TABLE2");
-		dbHelper.deleteAll("MT_TABLE1");
-
+	@Before
+	public void testSetUp() throws Exception {
 		tMTTable = new TableHelper(dbHelper, "MT_TABLE1");
 		tMTTable.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1",
 				"SERVER_ATTRIBUTE1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteRollbackIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteRollbackIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteRollbackIT.java
index 8c90da4..0fda177 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteRollbackIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteRollbackIT.java
@@ -22,7 +22,7 @@ import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.ClientMtTable2;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,7 +38,7 @@ import static org.junit.Assert.fail;
 /**
  * This is a test primarily for CAY-1103
  */
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class RemoteRollbackIT extends RemoteCayenneCase {
 


[18/39] cayenne git commit: CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

Posted by aa...@apache.org.
CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/9587d047
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/9587d047
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/9587d047

Branch: refs/heads/CAY-1946_1
Commit: 9587d0475b3c3f44150fcf8fc50ea772e9ea40ea
Parents: f11fc5c
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:46:31 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 16:25:50 2014 +0300

----------------------------------------------------------------------
 .../apache/cayenne/exp/ExpressionFactory.java   | 179 ++++++++++++-------
 .../cayenne/exp/LikeExpressionHelper.java       |  73 ++++++++
 .../java/org/apache/cayenne/exp/Property.java   |  99 +++++++++-
 .../org/apache/cayenne/exp/PropertyTest.java    |  21 +++
 4 files changed, 298 insertions(+), 74 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/9587d047/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
index dc1d815..cbef42d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
@@ -93,20 +93,14 @@ public class ExpressionFactory {
 
 		// make sure all types are small integers, then we can use
 		// them as indexes in lookup array
-		int[] allTypes = new int[] { Expression.AND, Expression.OR,
-				Expression.NOT, Expression.EQUAL_TO, Expression.NOT_EQUAL_TO,
-				Expression.LESS_THAN, Expression.GREATER_THAN,
-				Expression.LESS_THAN_EQUAL_TO,
-				Expression.GREATER_THAN_EQUAL_TO, Expression.BETWEEN,
-				Expression.IN, Expression.LIKE, Expression.LIKE_IGNORE_CASE,
-				Expression.ADD, Expression.SUBTRACT, Expression.MULTIPLY,
-				Expression.DIVIDE, Expression.NEGATIVE, Expression.OBJ_PATH,
-				Expression.DB_PATH, Expression.LIST, Expression.NOT_BETWEEN,
-				Expression.NOT_IN, Expression.NOT_LIKE,
-				Expression.NOT_LIKE_IGNORE_CASE, Expression.TRUE,
-				Expression.FALSE, Expression.BITWISE_NOT,
-				Expression.BITWISE_AND, Expression.BITWISE_OR,
-				Expression.BITWISE_XOR, Expression.BITWISE_LEFT_SHIFT,
+		int[] allTypes = new int[] { Expression.AND, Expression.OR, Expression.NOT, Expression.EQUAL_TO,
+				Expression.NOT_EQUAL_TO, Expression.LESS_THAN, Expression.GREATER_THAN, Expression.LESS_THAN_EQUAL_TO,
+				Expression.GREATER_THAN_EQUAL_TO, Expression.BETWEEN, Expression.IN, Expression.LIKE,
+				Expression.LIKE_IGNORE_CASE, Expression.ADD, Expression.SUBTRACT, Expression.MULTIPLY,
+				Expression.DIVIDE, Expression.NEGATIVE, Expression.OBJ_PATH, Expression.DB_PATH, Expression.LIST,
+				Expression.NOT_BETWEEN, Expression.NOT_IN, Expression.NOT_LIKE, Expression.NOT_LIKE_IGNORE_CASE,
+				Expression.TRUE, Expression.FALSE, Expression.BITWISE_NOT, Expression.BITWISE_AND,
+				Expression.BITWISE_OR, Expression.BITWISE_XOR, Expression.BITWISE_LEFT_SHIFT,
 				Expression.BITWISE_RIGHT_SHIFT };
 
 		int max = 0;
@@ -322,19 +316,15 @@ public class ExpressionFactory {
 
 			int splitEnd = path.indexOf(Entity.PATH_SEPARATOR, split + 1);
 
-			String beforeSplit = split > 0 ? path.substring(0, split) + "."
-					: "";
-			String afterSplit = splitEnd > 0 ? "."
-					+ path.substring(splitEnd + 1) : "";
+			String beforeSplit = split > 0 ? path.substring(0, split) + "." : "";
+			String afterSplit = splitEnd > 0 ? "." + path.substring(splitEnd + 1) : "";
 			String aliasBase = "split" + autoAliasId++ + "_";
-			String splitChunk = splitEnd > 0 ? path.substring(split + 1,
-					splitEnd) : path.substring(split + 1);
+			String splitChunk = splitEnd > 0 ? path.substring(split + 1, splitEnd) : path.substring(split + 1);
 
 			// fix the path - replace split with dot if it's in the middle, or
 			// strip it if
 			// it's in the beginning
-			path = split == 0 ? path.substring(1) : path.replace(
-					SPLIT_SEPARATOR, '.');
+			path = split == 0 ? path.substring(1) : path.replace(SPLIT_SEPARATOR, '.');
 
 			int i = 0;
 			for (Object value : values) {
@@ -344,8 +334,7 @@ public class ExpressionFactory {
 				i++;
 
 				ASTPath pathExp = new ASTObjPath(aliasedPath);
-				pathExp.setPathAliases(Collections.singletonMap(alias,
-						splitChunk));
+				pathExp.setPathAliases(Collections.singletonMap(alias, splitChunk));
 				matches.add(new ASTEqual(pathExp, value));
 			}
 		} else {
@@ -572,8 +561,7 @@ public class ExpressionFactory {
 	/**
 	 * A convenience shortcut for building BETWEEN expressions.
 	 */
-	public static Expression betweenExp(String pathSpec, Object value1,
-			Object value2) {
+	public static Expression betweenExp(String pathSpec, Object value1, Object value2) {
 		return new ASTBetween(new ASTObjPath(pathSpec), value1, value2);
 	}
 
@@ -582,16 +570,14 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0
 	 */
-	public static Expression betweenDbExp(String pathSpec, Object value1,
-			Object value2) {
+	public static Expression betweenDbExp(String pathSpec, Object value1, Object value2) {
 		return new ASTBetween(new ASTDbPath(pathSpec), value1, value2);
 	}
 
 	/**
 	 * A convenience shortcut for building NOT_BETWEEN expressions.
 	 */
-	public static Expression notBetweenExp(String pathSpec, Object value1,
-			Object value2) {
+	public static Expression notBetweenExp(String pathSpec, Object value1, Object value2) {
 		return new ASTNotBetween(new ASTObjPath(pathSpec), value1, value2);
 	}
 
@@ -600,8 +586,7 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0
 	 */
-	public static Expression notBetweenDbExp(String pathSpec, Object value1,
-			Object value2) {
+	public static Expression notBetweenDbExp(String pathSpec, Object value1, Object value2) {
 		return new ASTNotBetween(new ASTDbPath(pathSpec), value1, value2);
 	}
 
@@ -609,7 +594,7 @@ public class ExpressionFactory {
 	 * A convenience shortcut for building LIKE expression.
 	 */
 	public static Expression likeExp(String pathSpec, Object value) {
-		return new ASTLike(new ASTObjPath(pathSpec), value);
+		return likeExpInternal(pathSpec, value, (char) 0);
 	}
 
 	/**
@@ -624,8 +609,11 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression likeExp(String pathSpec, Object value,
-			char escapeChar) {
+	public static Expression likeExp(String pathSpec, Object value, char escapeChar) {
+		return likeExpInternal(pathSpec, value, escapeChar);
+	}
+
+	static ASTLike likeExpInternal(String pathSpec, Object value, char escapeChar) {
 		return new ASTLike(new ASTObjPath(pathSpec), value, escapeChar);
 	}
 
@@ -650,8 +638,7 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression likeDbExp(String pathSpec, Object value,
-			char escapeChar) {
+	public static Expression likeDbExp(String pathSpec, Object value, char escapeChar) {
 		return new ASTLike(new ASTDbPath(pathSpec), value, escapeChar);
 	}
 
@@ -674,8 +661,7 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression notLikeExp(String pathSpec, Object value,
-			char escapeChar) {
+	public static Expression notLikeExp(String pathSpec, Object value, char escapeChar) {
 		return new ASTNotLike(new ASTObjPath(pathSpec), value, escapeChar);
 	}
 
@@ -700,8 +686,7 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression notLikeDbExp(String pathSpec, Object value,
-			char escapeChar) {
+	public static Expression notLikeDbExp(String pathSpec, Object value, char escapeChar) {
 		return new ASTNotLike(new ASTDbPath(pathSpec), value, escapeChar);
 	}
 
@@ -709,7 +694,7 @@ public class ExpressionFactory {
 	 * A convenience shortcut for building LIKE_IGNORE_CASE expression.
 	 */
 	public static Expression likeIgnoreCaseExp(String pathSpec, Object value) {
-		return new ASTLikeIgnoreCase(new ASTObjPath(pathSpec), value);
+		return likeIgnoreCaseExpInternal(pathSpec, value, (char) 0);
 	}
 
 	/**
@@ -724,10 +709,12 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression likeIgnoreCaseExp(String pathSpec, Object value,
-			char escapeChar) {
-		return new ASTLikeIgnoreCase(new ASTObjPath(pathSpec), value,
-				escapeChar);
+	public static Expression likeIgnoreCaseExp(String pathSpec, Object value, char escapeChar) {
+		return likeIgnoreCaseExpInternal(pathSpec, value, escapeChar);
+	}
+
+	static ASTLikeIgnoreCase likeIgnoreCaseExpInternal(String pathSpec, Object value, char escapeChar) {
+		return new ASTLikeIgnoreCase(new ASTObjPath(pathSpec), value, escapeChar);
 	}
 
 	/**
@@ -751,8 +738,7 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression likeIgnoreCaseDbExp(String pathSpec, Object value,
-			char escapeChar) {
+	public static Expression likeIgnoreCaseDbExp(String pathSpec, Object value, char escapeChar) {
 		return new ASTLikeIgnoreCase(new ASTDbPath(pathSpec), value, escapeChar);
 	}
 
@@ -775,10 +761,8 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression notLikeIgnoreCaseExp(String pathSpec,
-			Object value, char escapeChar) {
-		return new ASTNotLikeIgnoreCase(new ASTObjPath(pathSpec), value,
-				escapeChar);
+	public static Expression notLikeIgnoreCaseExp(String pathSpec, Object value, char escapeChar) {
+		return new ASTNotLikeIgnoreCase(new ASTObjPath(pathSpec), value, escapeChar);
 	}
 
 	/**
@@ -786,8 +770,7 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0
 	 */
-	public static Expression notLikeIgnoreCaseDbExp(String pathSpec,
-			Object value) {
+	public static Expression notLikeIgnoreCaseDbExp(String pathSpec, Object value) {
 		return new ASTNotLikeIgnoreCase(new ASTDbPath(pathSpec), value);
 	}
 
@@ -803,10 +786,77 @@ public class ExpressionFactory {
 	 * 
 	 * @since 3.0.1
 	 */
-	public static Expression notLikeIgnoreCaseDbExp(String pathSpec,
-			Object value, char escapeChar) {
-		return new ASTNotLikeIgnoreCase(new ASTDbPath(pathSpec), value,
-				escapeChar);
+	public static Expression notLikeIgnoreCaseDbExp(String pathSpec, Object value, char escapeChar) {
+		return new ASTNotLikeIgnoreCase(new ASTDbPath(pathSpec), value, escapeChar);
+	}
+
+	/**
+	 * @return An expression for a database "LIKE" query with the value
+	 *         converted to a pattern matching anywhere in the String.
+	 * @since 4.0
+	 */
+	public static Expression containsExp(String pathSpec, String value) {
+		ASTLike like = likeExpInternal(pathSpec, value, (char) 0);
+		LikeExpressionHelper.toContains(like);
+		return like;
+	}
+
+	/**
+	 * @return An expression for a database "LIKE" query with the value
+	 *         converted to a pattern matching the beginning of the String.
+	 * @since 4.0
+	 */
+	public static Expression startsWithExp(String pathSpec, String value) {
+		ASTLike like = likeExpInternal(pathSpec, value, (char) 0);
+		LikeExpressionHelper.toStartsWith(like);
+		return like;
+	}
+
+	/**
+	 * @return An expression for a database "LIKE" query with the value
+	 *         converted to a pattern matching the beginning of the String.
+	 * @since 4.0
+	 */
+	public static Expression endsWithExp(String pathSpec, String value) {
+		ASTLike like = likeExpInternal(pathSpec, value, (char) 0);
+		LikeExpressionHelper.toEndsWith(like);
+		return like;
+	}
+
+	/**
+	 * Same as {@link #containsExp(String, String)} only using case-insensitive
+	 * comparison.
+	 * 
+	 * @since 4.0
+	 */
+	public static Expression containsIgnoreCaseExp(String pathSpec, String value) {
+		ASTLikeIgnoreCase like = likeIgnoreCaseExpInternal(pathSpec, value, (char) 0);
+		LikeExpressionHelper.toContains(like);
+		return like;
+	}
+
+	/**
+	 * Same as {@link #startsWithExp(String, String)} only using
+	 * case-insensitive comparison.
+	 * 
+	 * @since 4.0
+	 */
+	public static Expression startsWithIgnoreCaseExp(String pathSpec, String value) {
+		ASTLikeIgnoreCase like = likeIgnoreCaseExpInternal(pathSpec, value, (char) 0);
+		LikeExpressionHelper.toStartsWith(like);
+		return like;
+	}
+
+	/**
+	 * Same as {@link #endsWithExp(String, String)} only using case-insensitive
+	 * comparison.
+	 * 
+	 * @since 4.0
+	 */
+	public static Expression endsWithIgnoreCaseExp(String pathSpec, String value) {
+		ASTLikeIgnoreCase like = likeIgnoreCaseExpInternal(pathSpec, value, (char) 0);
+		LikeExpressionHelper.toEndsWith(like);
+		return like;
 	}
 
 	/**
@@ -837,8 +887,7 @@ public class ExpressionFactory {
 	 * expression would match any of the expressions.
 	 * </p>
 	 */
-	public static Expression joinExp(int type,
-			Collection<Expression> expressions) {
+	public static Expression joinExp(int type, Collection<Expression> expressions) {
 		int len = expressions.size();
 		if (len == 0) {
 			return null;
@@ -872,8 +921,7 @@ public class ExpressionFactory {
 	 * <code>object</code>.
 	 */
 	public static Expression matchExp(Persistent object) {
-		return matchAllDbExp(object.getObjectId().getIdSnapshot(),
-				Expression.EQUAL_TO);
+		return matchAllDbExp(object.getObjectId().getIdSnapshot(), Expression.EQUAL_TO);
 	}
 
 	/**
@@ -971,12 +1019,11 @@ public class ExpressionFactory {
 		// optimizing parser buffers per CAY-1667...
 		// adding 1 extra char to the buffer size above the String length, as
 		// otherwise resizing still occurs at the end of the stream
-		int bufferSize = expressionString.length() > PARSE_BUFFER_MAX_SIZE ? PARSE_BUFFER_MAX_SIZE
-				: expressionString.length() + 1;
+		int bufferSize = expressionString.length() > PARSE_BUFFER_MAX_SIZE ? PARSE_BUFFER_MAX_SIZE : expressionString
+				.length() + 1;
 		Reader reader = new StringReader(expressionString);
 		JavaCharStream stream = new JavaCharStream(reader, 1, 1, bufferSize);
-		ExpressionParserTokenManager tm = new ExpressionParserTokenManager(
-				stream);
+		ExpressionParserTokenManager tm = new ExpressionParserTokenManager(stream);
 		ExpressionParser parser = new ExpressionParser(tm);
 
 		try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/9587d047/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java
new file mode 100644
index 0000000..7725dc9
--- /dev/null
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java
@@ -0,0 +1,73 @@
+/*****************************************************************
+ *   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.cayenne.exp;
+
+import org.apache.cayenne.exp.parser.PatternMatchNode;
+
+/**
+ * @since 4.0
+ */
+class LikeExpressionHelper {
+
+	// presumably only "?" can't be an escape char
+	private static final char[] ESCAPE_ALPHABET = new char[] { '\\', '|', '/', ' ' };
+
+	private static final String WILDCARD_SEQUENCE = "%";
+	private static final String WILDCARD_ONE = "_";
+
+	static void toContains(PatternMatchNode exp) {
+		escape(exp);
+		wrap(exp, true, true);
+	}
+
+	static void toStartsWith(PatternMatchNode exp) {
+		escape(exp);
+		wrap(exp, false, true);
+	}
+
+	static void toEndsWith(PatternMatchNode exp) {
+		escape(exp);
+		wrap(exp, true, false);
+	}
+
+	static void escape(PatternMatchNode exp) {
+
+	}
+
+	static void wrap(PatternMatchNode exp, boolean start, boolean end) {
+
+		Object pattern = exp.getOperand(1);
+		if (pattern instanceof String) {
+
+			StringBuilder buffer = new StringBuilder();
+			if (start) {
+				buffer.append(WILDCARD_SEQUENCE);
+			}
+
+			buffer.append(pattern);
+
+			if (end) {
+				buffer.append(WILDCARD_SEQUENCE);
+			}
+
+			exp.setOperand(1, buffer.toString());
+		}
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/9587d047/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
index b42e890..1676315 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
@@ -165,34 +165,117 @@ public class Property<E> {
 	}
 
 	/**
-	 * @return An expression for a Database "Like" query.
+	 * @param pattern
+	 *            a pattern matching property value. Pattern may include "_" and
+	 *            "%" wildcard symbols to match any single character or a
+	 *            sequence of characters. To prevent "_" and "%" from being
+	 *            treated as wildcards, they need to be escaped and escape char
+	 *            passed with {@link #like(String, char)} method.
+	 * @return An expression for a Database "LIKE" query.
 	 */
-	public Expression like(E value) {
-		return ExpressionFactory.likeExp(getName(), value);
+	public Expression like(String pattern) {
+		return ExpressionFactory.likeExp(getName(), pattern);
 	}
 
 	/**
-	 * @return An expression for a case insensitive "Like" query.
+	 * @param pattern
+	 *            a properly escaped pattern matching property value. Pattern
+	 *            may include "_" and "%" wildcard symbols to match any single
+	 *            character or a sequence of characters.
+	 * @param escapeChar
+	 *            an escape character used in the pattern to escape "%" and "_".
+	 * 
+	 * @return An expression for a Database "LIKE" query.
+	 */
+	public Expression like(String pattern, char escapeChar) {
+		return ExpressionFactory.likeExp(getName(), pattern, escapeChar);
+	}
+
+	/**
+	 * @return An expression for a case insensitive "LIKE" query.
 	 */
-	public Expression likeInsensitive(E value) {
-		return ExpressionFactory.likeIgnoreCaseExp(getName(), value);
+	public Expression likeInsensitive(String pattern) {
+		return ExpressionFactory.likeIgnoreCaseExp(getName(), pattern);
 	}
 
 	/**
 	 * @return An expression for a Database "NOT LIKE" query.
 	 */
-	public Expression nlike(E value) {
+	public Expression nlike(String value) {
 		return ExpressionFactory.notLikeExp(getName(), value);
 	}
 
 	/**
 	 * @return An expression for a case insensitive "NOT LIKE" query.
 	 */
-	public Expression nlikeInsensitive(E value) {
+	public Expression nlikeInsensitive(String value) {
 		return ExpressionFactory.notLikeIgnoreCaseExp(getName(), value);
 	}
 
 	/**
+	 * Creates an expression for a database "LIKE" query with the value
+	 * converted to a pattern matching anywhere in the String.
+	 * 
+	 * @param substring
+	 *            a String to match against property value. "_" and "%" symbols
+	 *            are NOT treated as wildcards and are escaped when converted to
+	 *            a LIKE expression.
+	 */
+	public Expression contains(String substring) {
+		return ExpressionFactory.containsExp(getName(), substring);
+	}
+
+	/**
+	 * Creates an expression for a database "LIKE" query with the value
+	 * converted to a pattern matching the beginning of a String.
+	 * 
+	 * @param substring
+	 *            a String to match against property value. "_" and "%" symbols
+	 *            are NOT treated as wildcards and are escaped when converted to
+	 *            a LIKE expression.
+	 */
+	public Expression startsWith(String value) {
+		return ExpressionFactory.startsWithExp(getName(), value);
+	}
+
+	/**
+	 * Creates an expression for a database "LIKE" query with the value
+	 * converted to a pattern matching the tail of a String.
+	 * 
+	 * @param substring
+	 *            a String to match against property value. "_" and "%" symbols
+	 *            are NOT treated as wildcards and are escaped when converted to
+	 *            a LIKE expression.
+	 */
+	public Expression endsWith(String value) {
+		return ExpressionFactory.endsWithExp(getName(), value);
+	}
+
+	/**
+	 * Same as {@link #contains(String)}, only using case-insensitive
+	 * comparison.
+	 */
+	public Expression icontains(String value) {
+		return ExpressionFactory.containsIgnoreCaseExp(getName(), value);
+	}
+
+	/**
+	 * Same as {@link #startsWith(String)}, only using case-insensitive
+	 * comparison.
+	 */
+	public Expression istartsWith(String value) {
+		return ExpressionFactory.startsWithIgnoreCaseExp(getName(), value);
+	}
+
+	/**
+	 * Same as {@link #endsWith(String)}, only using case-insensitive
+	 * comparison.
+	 */
+	public Expression iendsWith(String value) {
+		return ExpressionFactory.endsWithIgnoreCaseExp(getName(), value);
+	}
+
+	/**
 	 * @return An expression checking for objects between a lower and upper
 	 *         bound inclusive
 	 * 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/9587d047/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
index 1144449..70fd3ce 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
@@ -192,4 +192,25 @@ public class PropertyTest {
     	Expression e = p.like("ab%c");
     	assertEquals("prop like \"ab%c\"", e.toString());
     }
+    
+    @Test
+    public void testContains() {
+    	Property<String> p = new Property<String>("prop");
+    	Expression e = p.contains("abc");
+    	assertEquals("prop like \"%abc%\"", e.toString());
+    }
+    
+    @Test
+    public void testStartsWith() {
+    	Property<String> p = new Property<String>("prop");
+    	Expression e = p.startsWith("abc");
+    	assertEquals("prop like \"abc%\"", e.toString());
+    }
+    
+    @Test
+    public void testEndsWith() {
+    	Property<String> p = new Property<String>("prop");
+    	Expression e = p.endsWith("abc");
+    	assertEquals("prop like \"%abc\"", e.toString());
+    }
 }


[10/39] cayenne git commit: fix DBCleaner for Derby

Posted by aa...@apache.org.
fix DBCleaner for Derby


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/df3494b6
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/df3494b6
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/df3494b6

Branch: refs/heads/CAY-1946_1
Commit: df3494b6b57adf5c92dd4c061e8c243f0d7c588d
Parents: 583df13
Author: Savva Kolbechev <s....@gmail.com>
Authored: Wed Nov 19 15:44:11 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Wed Nov 19 15:44:11 2014 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/dba/JdbcPkGenerator.java |  30 ++---
 .../DataContextEJBQLConditionsPeopleIT.java     |   9 ++
 .../access/DataContextEJBQLInheritanceIT.java   |  10 ++
 .../access/SingleTableInheritanceIT.java        |   9 ++
 .../cayenne/unit/di/server/DBCleaner.java       | 115 ++++++++++---------
 .../util/DeepMergeOperationInheritanceIT.java   |   4 +
 6 files changed, 106 insertions(+), 71 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/df3494b6/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
index 968b8a1..1866944 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
@@ -19,19 +19,6 @@
 
 package org.apache.cayenne.dba;
 
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentLinkedQueue;
-
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ObjectId;
@@ -45,6 +32,19 @@ import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.util.IDUtil;
 
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
 /**
  * Default primary key generator implementation. Uses a lookup table named
  * "AUTO_PK_SUPPORT" to search and increment primary keys for tables.
@@ -76,7 +76,9 @@ public class JdbcPkGenerator implements PkGenerator {
         }
 
         // delete any existing pk entries
-        runUpdate(node, pkDeleteString(dbEntities));
+        if (!dbEntities.isEmpty()) {
+            runUpdate(node, pkDeleteString(dbEntities));
+        }
 
         // insert all needed entries
         for (DbEntity ent : dbEntities) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/df3494b6/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
index c83399f..73da8a3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.testdo.inheritance_people.Address;
 import org.apache.cayenne.testdo.inheritance_people.Department;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.DBCleaner;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Before;
@@ -50,6 +51,13 @@ public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
     @Inject
     private ObjectContext context;
 
+    @Inject
+    protected DBCleaner dbCleaner;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+    }
+
     @Before
     public void testSetUp() throws Exception {
 
@@ -64,6 +72,7 @@ public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
 
         // manually break circular deps
         tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
+        dbCleaner.clean();
 
         // TODO: use TableHelper to create test data
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/df3494b6/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
index 3d5b01e..e39fe21 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.testdo.inheritance_people.CustomerRepresentative;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.DBCleaner;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Before;
@@ -46,11 +47,20 @@ public class DataContextEJBQLInheritanceIT extends ServerCase {
     @Inject
     protected DBHelper dbHelper;
 
+    @Inject
+    protected DBCleaner dbCleaner;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+    }
+
     @Before
     public void testSetUp() throws Exception {
         // manually break circular deps
         dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute();
 
+        dbCleaner.clean();
+
         TableHelper person = new TableHelper(dbHelper, "PERSON");
         person.setColumns("PERSON_ID", "NAME", "PERSON_TYPE", "SALARY").setColumnTypes(Types.INTEGER, Types.VARCHAR,
                 Types.CHAR, Types.FLOAT);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/df3494b6/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
index d17e15e..41f9446 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
@@ -39,6 +39,7 @@ import org.apache.cayenne.testdo.inheritance_people.PersonNotes;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.DBCleaner;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Before;
@@ -60,6 +61,9 @@ public class SingleTableInheritanceIT extends ServerCase {
     private DBHelper dbHelper;
 
     @Inject
+    private DBCleaner dbCleaner;
+
+    @Inject
     private DataContext context;
 
     @Inject
@@ -73,6 +77,10 @@ public class SingleTableInheritanceIT extends ServerCase {
     private TableHelper tClientCompany;
     private TableHelper tDepartment;
 
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+    }
+
     @Before
     public void testSetUp() throws Exception {
         tPerson = new TableHelper(dbHelper, "PERSON");
@@ -101,6 +109,7 @@ public class SingleTableInheritanceIT extends ServerCase {
 
         // manually break circular deps
         tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
+        dbCleaner.clean();
     }
 
     private void create2PersonDataSet() throws Exception {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/df3494b6/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
index d44ac87..3bd680c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
@@ -39,23 +39,22 @@ public class DBCleaner {
 
     public void clean() throws SQLException {
         if (location.equals(CayenneProjects.TESTMAP_PROJECT)) {
-            dbHelper.deleteAll("ARTGROUP");
-            dbHelper.deleteAll("ARTIST");
-            dbHelper.deleteAll("ARTIST_CT");
+            dbHelper.deleteAll("PAINTING_INFO");
+            dbHelper.deleteAll("PAINTING");
+            dbHelper.deleteAll("PAINTING1");
             dbHelper.deleteAll("ARTIST_EXHIBIT");
             dbHelper.deleteAll("ARTIST_GROUP");
+            dbHelper.deleteAll("ARTIST");
+            dbHelper.deleteAll("ARTGROUP");
             dbHelper.deleteAll("EXHIBIT");
             dbHelper.deleteAll("GALLERY");
+            dbHelper.deleteAll("ARTIST_CT");
             dbHelper.deleteAll("GENERATED_COLUMN");
             dbHelper.deleteAll("NULL_TEST");
-            dbHelper.deleteAll("PAINTING");
-            dbHelper.deleteAll("PAINTING1");
-            dbHelper.deleteAll("PAINTING_INFO");
         } else if (location.equals(CayenneProjects.MULTI_TIER_PROJECT)) {
-            dbHelper.deleteAll("MT_JOIN45");
-            dbHelper.deleteAll("MT_TABLE1");
             dbHelper.deleteAll("MT_TABLE2");
-            dbHelper.deleteAll("MT_TABLE3");
+            dbHelper.deleteAll("MT_TABLE1");
+            dbHelper.deleteAll("MT_JOIN45");
             dbHelper.deleteAll("MT_TABLE4");
             dbHelper.deleteAll("MT_TABLE5");
         } else if (location.equals(CayenneProjects.COMPOUND_PROJECT)) {
@@ -65,13 +64,15 @@ public class DBCleaner {
             dbHelper.deleteAll("COMPOUND_PK_TEST");
         } else if (location.equals(CayenneProjects.PEOPLE_PROJECT)) {
             dbHelper.deleteAll("ADDRESS");
-            dbHelper.deleteAll("CLIENT_COMPANY");
             dbHelper.deleteAll("DEPARTMENT");
-            dbHelper.deleteAll("PERSON");
             dbHelper.deleteAll("PERSON_NOTES");
-        } else if(location.equals(CayenneProjects.BINARY_PK_PROJECT)) {
-            dbHelper.deleteAll("BINARY_PK_TEST1");
-            dbHelper.deleteAll("BINARY_PK_TEST2");
+            dbHelper.deleteAll("PERSON");
+            dbHelper.deleteAll("CLIENT_COMPANY");
+        } else if (location.equals(CayenneProjects.BINARY_PK_PROJECT)) {
+            if (accessStackAdapter.supportsBinaryPK()) {
+                dbHelper.deleteAll("BINARY_PK_TEST2");
+                dbHelper.deleteAll("BINARY_PK_TEST1");
+            }
         } else if (location.equals(CayenneProjects.DATE_TIME_PROJECT)) {
             dbHelper.deleteAll("CALENDAR_TEST");
             dbHelper.deleteAll("DATE_TEST");
@@ -89,67 +90,67 @@ public class DBCleaner {
         } else if (location.equals(CayenneProjects.EXTENDED_TYPE_PROJECT)) {
             dbHelper.deleteAll("EXTENDED_TYPE_TEST");
         } else if (location.equals(CayenneProjects.GENERATED_PROJECT)) {
-            dbHelper.deleteAll("GENERATED_COLUMN_COMP_KEY");
-            dbHelper.deleteAll("GENERATED_COLUMN_COMP_M");
+            dbHelper.deleteAll("GENERATED_JOIN");
+            dbHelper.deleteAll("GENERATED_F1");
+            dbHelper.deleteAll("GENERATED_F2");
             dbHelper.deleteAll("GENERATED_COLUMN_DEP");
             dbHelper.deleteAll("GENERATED_COLUMN_TEST");
             dbHelper.deleteAll("GENERATED_COLUMN_TEST2");
-            dbHelper.deleteAll("GENERATED_F1");
-            dbHelper.deleteAll("GENERATED_F2");
-            dbHelper.deleteAll("GENERATED_JOIN");
+            dbHelper.deleteAll("GENERATED_COLUMN_COMP_KEY");
+            dbHelper.deleteAll("GENERATED_COLUMN_COMP_M");
         } else if (location.equals(CayenneProjects.GENERIC_PROJECT)) {
-            dbHelper.deleteAll("GENERIC1");
             dbHelper.deleteAll("GENERIC2");
+            dbHelper.deleteAll("GENERIC1");
         } else if (location.equals(CayenneProjects.INHERITANCE_PROJECT)) {
             dbHelper.deleteAll("BASE_ENTITY");
             dbHelper.deleteAll("DIRECT_TO_SUB_ENTITY");
             dbHelper.deleteAll("RELATED_ENTITY");
         } else if (location.equals(CayenneProjects.INHERITANCE_SINGLE_TABLE1_PROJECT)) {
             dbHelper.deleteAll("GROUP_MEMBERS");
+            dbHelper.deleteAll("USER_PROPERTIES");
             dbHelper.deleteAll("GROUP_PROPERTIES");
             dbHelper.deleteAll("ROLES");
-            dbHelper.deleteAll("USER_PROPERTIES");
         } else if (location.equals(CayenneProjects.INHERITANCE_VERTICAL_PROJECT)) {
-            dbHelper.deleteAll("IV1_ROOT");
+            dbHelper.deleteAll("IV_SUB1_SUB1");
+            dbHelper.deleteAll("IV_SUB1");
+            dbHelper.deleteAll("IV_SUB2");
+            dbHelper.deleteAll("IV_ROOT");
             dbHelper.deleteAll("IV1_SUB1");
-            dbHelper.deleteAll("IV2_ROOT");
+            dbHelper.deleteAll("IV1_ROOT");
             dbHelper.deleteAll("IV2_SUB1");
+            dbHelper.deleteAll("IV2_ROOT");
             dbHelper.deleteAll("IV2_X");
-            dbHelper.deleteAll("IV_ROOT");
-            dbHelper.deleteAll("IV_SUB1");
-            dbHelper.deleteAll("IV_SUB1_SUB1");
-            dbHelper.deleteAll("IV_SUB2");
         } else if (location.equals(CayenneProjects.LIFECYCLES_PROJECT)) {
             dbHelper.deleteAll("LIFECYCLES");
         } else if (location.equals(CayenneProjects.LOB_PROJECT)) {
+            dbHelper.deleteAll("CLOB_TEST_RELATION");
             if (accessStackAdapter.supportsLobs()) {
                 dbHelper.deleteAll("BLOB_TEST");
                 dbHelper.deleteAll("CLOB_TEST");
             }
-            dbHelper.deleteAll("CLOB_TEST_RELATION");
             dbHelper.deleteAll("TEST");
         } else if (location.equals(CayenneProjects.LOCKING_PROJECT)) {
             dbHelper.deleteAll("LOCKING_HELPER");
             dbHelper.deleteAll("REL_LOCKING_TEST");
             dbHelper.deleteAll("SIMPLE_LOCKING_TEST");
         } else if (location.equals(CayenneProjects.MAP_TO_MANY_PROJECT)) {
-            dbHelper.deleteAll("ID_MAP_TO_MANY");
             dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
-            dbHelper.deleteAll("MAP_TO_MANY");
+            dbHelper.deleteAll("ID_MAP_TO_MANY");
             dbHelper.deleteAll("MAP_TO_MANY_TARGET");
+            dbHelper.deleteAll("MAP_TO_MANY");
         } else if (location.equals(CayenneProjects.MEANINGFUL_PK_PROJECT)) {
             dbHelper.deleteAll("MEANINGFUL_PK");
             dbHelper.deleteAll("MEANINGFUL_PK_DEP");
             dbHelper.deleteAll("MEANINGFUL_PK_TEST1");
         } else if (location.equals(CayenneProjects.MISC_TYPES_PROJECT)) {
-            dbHelper.deleteAll("ARRAYS_ENTITY");
-            dbHelper.deleteAll("CHARACTER_ENTITY");
-            if(accessStackAdapter.supportsLobs()) {
+            if (accessStackAdapter.supportsLobs()) {
                 dbHelper.deleteAll("SERIALIZABLE_ENTITY");
             }
+            dbHelper.deleteAll("ARRAYS_ENTITY");
+            dbHelper.deleteAll("CHARACTER_ENTITY");
         } else if (location.equals(CayenneProjects.MIXED_PERSISTENCE_STRATEGY_PROJECT)) {
-            dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY");
             dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY2");
+            dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY");
         } else if (location.equals(CayenneProjects.MULTINODE_PROJECT)) {
             dbHelper.deleteAll("CROSSDB_M1E1");
             dbHelper.deleteAll("CROSSDB_M2E1");
@@ -159,36 +160,36 @@ public class DBCleaner {
         } else if (location.equals(CayenneProjects.NUMERIC_TYPES_PROJECT)) {
             dbHelper.deleteAll("BIGDECIMAL_ENTITY");
             dbHelper.deleteAll("BIGINTEGER_ENTITY");
-            dbHelper.deleteAll("BIT_TEST");
             dbHelper.deleteAll("BOOLEAN_TEST");
+            dbHelper.deleteAll("BIT_TEST");
+            dbHelper.deleteAll("SMALLINT_TEST");
+            dbHelper.deleteAll("TINYINT_TEST");
             dbHelper.deleteAll("DECIMAL_PK_TST");
             dbHelper.deleteAll("FLOAT_TEST");
             dbHelper.deleteAll("LONG_ENTITY");
-            dbHelper.deleteAll("SMALLINT_TEST");
-            dbHelper.deleteAll("TINYINT_TEST");
         } else if (location.equals(CayenneProjects.ONEWAY_PROJECT)) {
-            dbHelper.deleteAll("oneway_table1");
             dbHelper.deleteAll("oneway_table2");
-            dbHelper.deleteAll("oneway_table3");
+            dbHelper.deleteAll("oneway_table1");
             dbHelper.deleteAll("oneway_table4");
+            dbHelper.deleteAll("oneway_table3");
         } else if (location.equals(CayenneProjects.PERSISTENT_PROJECT)) {
             dbHelper.deleteAll("CONTINENT");
             dbHelper.deleteAll("COUNTRY");
         } else if (location.equals(CayenneProjects.PRIMITIVE_PROJECT)) {
             dbHelper.deleteAll("PRIMITIVES_TEST");
         } else if (location.equals(CayenneProjects.QUALIFIED_PROJECT)) {
-            dbHelper.deleteAll("TEST_QUALIFIED1");
             dbHelper.deleteAll("TEST_QUALIFIED2");
+            dbHelper.deleteAll("TEST_QUALIFIED1");
         } else if (location.equals(CayenneProjects.QUOTED_IDENTIFIERS_PROJECT)) {
-            dbHelper.deleteAll("QUOTED_ADDRESS");
             dbHelper.deleteAll("quote Person");
+            dbHelper.deleteAll("QUOTED_ADDRESS");
         } else if (location.equals(CayenneProjects.REFLEXIVE_PROJECT)) {
             dbHelper.deleteAll("REFLEXIVE");
         } else if (location.equals(CayenneProjects.RELATIONSHIPS_PROJECT)) {
             dbHelper.deleteAll("FK_OF_DIFFERENT_TYPE");
-            dbHelper.deleteAll("MEANINGFUL_FK");
             dbHelper.deleteAll("REFLEXIVE_AND_TO_ONE");
             dbHelper.deleteAll("RELATIONSHIP_HELPER");
+            dbHelper.deleteAll("MEANINGFUL_FK");
         } else if (location.equals(CayenneProjects.RELATIONSHIPS_ACTIVITY_PROJECT)) {
             dbHelper.deleteAll("ACTIVITY");
             dbHelper.deleteAll("RESULT");
@@ -199,26 +200,26 @@ public class DBCleaner {
             dbHelper.deleteAll("CLOB_DETAIL");
             dbHelper.deleteAll("CLOB_MASTER");
         } else if (location.equals(CayenneProjects.RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT)) {
-            dbHelper.deleteAll("COLLECTION_TO_MANY");
             dbHelper.deleteAll("COLLECTION_TO_MANY_TARGET");
+            dbHelper.deleteAll("COLLECTION_TO_MANY");
         } else if (location.equals(CayenneProjects.RELATIONSHIPS_DELETE_RULES_PROJECT)) {
-            dbHelper.deleteAll("DELETE_RULE_FLATA");
-            dbHelper.deleteAll("DELETE_RULE_FLATB");
-            dbHelper.deleteAll("DELETE_RULE_JOIN");
+            dbHelper.deleteAll("DELETE_RULE_TEST3");
             dbHelper.deleteAll("DELETE_RULE_TEST1");
             dbHelper.deleteAll("DELETE_RULE_TEST2");
-            dbHelper.deleteAll("DELETE_RULE_TEST3");
+            dbHelper.deleteAll("DELETE_RULE_JOIN");
+            dbHelper.deleteAll("DELETE_RULE_FLATB");
+            dbHelper.deleteAll("DELETE_RULE_FLATA");
         } else if (location.equals(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)) {
             dbHelper.deleteAll("COMPLEX_JOIN");
-            dbHelper.deleteAll("FLATTENED_CIRCULAR");
-            dbHelper.deleteAll("FLATTENED_CIRCULAR_JOIN");
-            dbHelper.deleteAll("FLATTENED_TEST_1");
-            dbHelper.deleteAll("FLATTENED_TEST_2");
-            dbHelper.deleteAll("FLATTENED_TEST_3");
             dbHelper.deleteAll("FLATTENED_TEST_4");
+            dbHelper.deleteAll("FLATTENED_TEST_3");
+            dbHelper.deleteAll("FLATTENED_TEST_2");
+            dbHelper.deleteAll("FLATTENED_TEST_1");
+            dbHelper.deleteAll("FLATTENED_CIRCULAR_JOIN");
+            dbHelper.deleteAll("FLATTENED_CIRCULAR");
         } else if (location.equals(CayenneProjects.RELATIONSHIPS_SET_TO_MANY_PROJECT)) {
-            dbHelper.deleteAll("SET_TO_MANY");
             dbHelper.deleteAll("SET_TO_MANY_TARGET");
+            dbHelper.deleteAll("SET_TO_MANY");
         } else if (location.equals(CayenneProjects.RELATIONSHIPS_TO_MANY_FK_PROJECT)) {
             dbHelper.deleteAll("TO_MANY_FKDEP");
             dbHelper.deleteAll("TO_MANY_FKROOT");
@@ -239,18 +240,18 @@ public class DBCleaner {
         } else if (location.equals(CayenneProjects.TABLE_PRIMITIVES_PROJECT)) {
             dbHelper.deleteAll("TABLE_PRIMITIVES");
         } else if (location.equals(CayenneProjects.THINGS_PROJECT)) {
-            dbHelper.deleteAll("BAG");
             dbHelper.deleteAll("BALL");
-            dbHelper.deleteAll("BOX");
-            dbHelper.deleteAll("BOX_INFO");
             dbHelper.deleteAll("BOX_THING");
             dbHelper.deleteAll("THING");
+            dbHelper.deleteAll("BOX_INFO");
+            dbHelper.deleteAll("BOX");
+            dbHelper.deleteAll("BAG");
         } else if (location.equals(CayenneProjects.TOONE_PROJECT)) {
             dbHelper.deleteAll("TOONE_DEP");
             dbHelper.deleteAll("TOONE_MASTER");
         } else if (location.equals(CayenneProjects.UUID_PROJECT)) {
-            dbHelper.deleteAll("UUID_PK_ENTITY");
             dbHelper.deleteAll("UUID_TEST");
+            dbHelper.deleteAll("UUID_PK_ENTITY");
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/df3494b6/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
index 4204412..d0e57b9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
@@ -50,6 +50,10 @@ public class DeepMergeOperationInheritanceIT extends ServerCase {
     @Inject
     protected DataChannelInterceptor queryInterceptor;
 
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+    }
+
     @Test
     public void testDeepMergeExistingSubclass() {
 


[21/39] cayenne git commit: CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

Posted by aa...@apache.org.
CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

* integration tests


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/5fe56911
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/5fe56911
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/5fe56911

Branch: refs/heads/CAY-1946_1
Commit: 5fe569112a0fb54b98a4da4c8559efd3d2c85776
Parents: a0d54ab
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:46:31 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 17:39:19 2014 +0300

----------------------------------------------------------------------
 .../apache/cayenne/exp/ExpressionFactoryIT.java  | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/5fe56911/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
index c03b998..33e728d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
@@ -103,4 +103,23 @@ public class ExpressionFactoryIT extends ServerCase {
 		artists = context.select(q2);
 		assertEquals(1, artists.size());
 	}
+	
+	@Test
+	public void testContains_Escape() {
+		Artist a1 = context.newObject(Artist.class);
+		a1.setArtistName("MA_1X");
+		Artist a2 = context.newObject(Artist.class);
+		a2.setArtistName("CA%2Y");
+		context.commitChanges();
+
+		Expression ex1 = ExpressionFactory.containsExp(Artist.ARTIST_NAME.getName(), "A_1");
+		SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class, ex1);
+		List<Artist> artists = context.select(q1);
+		assertEquals(1, artists.size());
+
+		Expression ex2 = ExpressionFactory.containsExp(Artist.ARTIST_NAME.getName(), "A%2");
+		SelectQuery<Artist> q2 = new SelectQuery<Artist>(Artist.class, ex2);
+		artists = context.select(q2);
+		assertEquals(1, artists.size());
+	}
 }


[06/39] cayenne git commit: Implement DBCleaner

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/remote/ValueInjectorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/ValueInjectorIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/ValueInjectorIT.java
index 4b7dc76..85e55a9 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/ValueInjectorIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/ValueInjectorIT.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.remote.service.LocalConnection;
 import org.apache.cayenne.testdo.mt.ClientMtTable1Subclass1;
 import org.apache.cayenne.testdo.mt.MtTable1Subclass1;
-import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -39,7 +39,7 @@ import java.util.Collection;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 @RunWith(value=Parameterized.class)
 public class ValueInjectorIT extends RemoteCayenneCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
index f9bdc55..a8781d2 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
@@ -19,9 +19,11 @@
 package org.apache.cayenne.unit.di.client;
 
 import org.apache.cayenne.di.DIBootstrap;
+import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.di.spi.DefaultScope;
 import org.apache.cayenne.unit.di.DICase;
+import org.apache.cayenne.unit.di.server.DBCleaner;
 import org.apache.cayenne.unit.di.server.SchemaBuilder;
 import org.apache.cayenne.unit.di.server.ServerCaseModule;
 
@@ -29,18 +31,11 @@ public class ClientCase extends DICase {
 
     public static final String ROP_CLIENT_KEY = "client";
 
-    public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml";
-    public static final String PERSISTENT_PROJECT = "cayenne-persistent.xml";
-    public static final String REFLEXIVE_PROJECT = "cayenne-reflexive.xml";
-    public static final String DELETE_RULES_PROJECT = "cayenne-delete-rules.xml";
-    public static final String LIFECYCLES_PROJECT = "cayenne-lifecycles.xml";
-    public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml";
-    public static final String TOONE_PROJECT = "cayenne-toone.xml";
-    public static final String MEANINGFUL_PK_PROJECT = "cayenne-meaningful-pk.xml";
-    public static final String TABLE_PRIMITIVES_PROJECT = "cayenne-table-primitives.xml";
-
     private static final Injector injector;
 
+    @Inject
+    private DBCleaner dbCleaner;
+
     static {
         DefaultScope testScope = new DefaultScope();
         injector = DIBootstrap.createInjector(
@@ -51,6 +46,11 @@ public class ClientCase extends DICase {
     }
 
     @Override
+    protected void setUpAfterInjection() throws Exception {
+        dbCleaner.clean();
+    }
+
+    @Override
     protected Injector getUnitTestInjector() {
         return injector;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
index 32fb280..cc79b35 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.unit.di.client;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Provider;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -28,7 +29,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ClientCaseSelfIT extends ClientCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java b/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
index 236e06a..7537eb9 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
@@ -29,7 +29,9 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ObjectDetachOperationIT extends ClientCase {
 
     @Inject
@@ -49,11 +51,8 @@ public class ObjectDetachOperationIT extends ClientCase {
 
     private TableHelper tMtTable1;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java b/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
index 398467b..2c19a92 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
@@ -33,14 +33,16 @@ import org.apache.cayenne.testdo.mt.ClientMtTable2;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.client.ClientCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ClientCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ShallowMergeOperation_ClientIT extends ClientCase {
 
     @Inject
@@ -57,14 +59,8 @@ public class ShallowMergeOperation_ClientIT extends ClientCase {
 
     private TableHelper tMtTable1;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MT_TABLE2");
-        dbHelper.deleteAll("MT_TABLE1");
-        dbHelper.deleteAll("MT_JOIN45");
-        dbHelper.deleteAll("MT_TABLE4");
-        dbHelper.deleteAll("MT_TABLE5");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
index cdb5ff9..a24f3ce 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToMany;
 import org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToManyTarget;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collection;
@@ -39,7 +41,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT)
 public class CDOCollectionRelationshipIT extends ServerCase {
 
     @Inject
@@ -48,11 +50,8 @@ public class CDOCollectionRelationshipIT extends ServerCase {
     @Inject
     private DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COLLECTION_TO_MANY_TARGET");
-        dbHelper.deleteAll("COLLECTION_TO_MANY");
-
+    @Before
+    public void testSetUp() throws Exception {
         TableHelper tCollectionToMany = new TableHelper(dbHelper, "COLLECTION_TO_MANY");
         tCollectionToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
index fefc3b3..cdfd183 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
@@ -32,8 +32,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.ROPainting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -46,7 +48,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CDOMany2OneIT extends ServerCase {
 
     @Inject
@@ -62,16 +64,8 @@ public class CDOMany2OneIT extends ServerCase {
     protected TableHelper tPainting;
     protected TableHelper tGallery;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneNoRevIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneNoRevIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneNoRevIT.java
index 232e685..3aa3423 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneNoRevIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneNoRevIT.java
@@ -22,6 +22,7 @@ package org.apache.cayenne;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -30,7 +31,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CDOMany2OneNoRevIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
index ada0d70..4c99936 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.map_to_many.IdMapToMany;
 import org.apache.cayenne.testdo.map_to_many.MapToMany;
 import org.apache.cayenne.testdo.map_to_many.MapToManyTarget;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Map;
@@ -40,7 +42,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.MAP_TO_MANY_PROJECT)
+@UseServerRuntime(CayenneProjects.MAP_TO_MANY_PROJECT)
 public class CDOMapRelationshipIT extends ServerCase {
 
     @Inject
@@ -54,14 +56,8 @@ public class CDOMapRelationshipIT extends ServerCase {
     protected TableHelper tIdMapToMany;
     protected TableHelper tIdMapToManyTarget;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MAP_TO_MANY_TARGET");
-        dbHelper.deleteAll("MAP_TO_MANY");
-
-        dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET");
-        dbHelper.deleteAll("ID_MAP_TO_MANY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMapToMany = new TableHelper(dbHelper, "MAP_TO_MANY");
         tMapToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
index b8a09c3..022e8fd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
@@ -31,8 +31,10 @@ import org.apache.cayenne.testdo.testmap.ArtistExhibit;
 import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Date;
@@ -42,7 +44,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CDOOne2ManyIT extends ServerCase {
 
     @Inject
@@ -57,17 +59,8 @@ public class CDOOne2ManyIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2OneDepIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2OneDepIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2OneDepIT.java
index 470d298..fcf94dd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2OneDepIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2OneDepIT.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -33,7 +34,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime("cayenne-small-testmap.xml")
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CDOOne2OneDepIT extends CayenneDOTestBase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOOneDep2OneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneDep2OneIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneDep2OneIT.java
index b93d1cc..3e38dd5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneDep2OneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneDep2OneIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -38,7 +39,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime("cayenne-small-testmap.xml")
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CDOOneDep2OneIT extends CayenneDOTestBase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
index 6d85e10..a442452 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToManyFKIT.java
@@ -21,10 +21,10 @@ package org.apache.cayenne;
 
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkDep;
 import org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkRoot;
 import org.apache.cayenne.testdo.relationships_to_many_fk.ToManyRoot2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,22 +35,12 @@ import static org.junit.Assert.assertSame;
 
 // TODO: this mapping scenario is really unsupported ... this is just an attempt at
 // partial solution
-@UseServerRuntime(ServerCase.RELATIONSHIPS_TO_MANY_FK_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_TO_MANY_FK_PROJECT)
 public class CDOOneToManyFKIT extends ServerCase {
 
     @Inject
     protected DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("TO_MANY_FKDEP");
-        dbHelper.deleteAll("TO_MANY_FKROOT");
-        dbHelper.deleteAll("TO_MANY_ROOT2");
-    }
-
     @Test
     public void testReadRelationship() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToOneFKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToOneFKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToOneFKIT.java
index 371b523..ea21563 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToOneFKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOOneToOneFKIT.java
@@ -22,9 +22,9 @@ package org.apache.cayenne;
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.ObjectIdQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.relationships_to_one_fk.ToOneFK1;
 import org.apache.cayenne.testdo.relationships_to_one_fk.ToOneFK2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -38,7 +38,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests the behavior of one-to-one relationship where to-one is pointing to an FK.
  */
-@UseServerRuntime(ServerCase.RELATIONSHIPS_TO_ONE_FK_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_TO_ONE_FK_PROJECT)
 public class CDOOneToOneFKIT extends ServerCase {
 
     @Inject
@@ -47,15 +47,6 @@ public class CDOOneToOneFKIT extends ServerCase {
     @Inject
     private DataContext context1;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("TO_ONE_FK1");
-        dbHelper.deleteAll("TO_ONE_FK2");
-    }
-
     @Test
     public void testReadRelationship() {
         ToOneFK2 src = context.newObject(ToOneFK2.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
index 74c65df..837d698 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.qualified.Qualified1;
 import org.apache.cayenne.testdo.qualified.Qualified2;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -35,7 +37,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.QUALIFIED_PROJECT)
+@UseServerRuntime(CayenneProjects.QUALIFIED_PROJECT)
 public class CDOQualifiedEntitiesIT extends ServerCase {
 
     @Inject
@@ -50,11 +52,8 @@ public class CDOQualifiedEntitiesIT extends ServerCase {
     private TableHelper tQualified1;
     private TableHelper tQualified2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("TEST_QUALIFIED2");
-        dbHelper.deleteAll("TEST_QUALIFIED1");
-
+    @Before
+    public void testSetUp() throws Exception {
         int bool = accessStackAdapter.supportsBoolean() ? Types.BOOLEAN : Types.INTEGER;
 
         tQualified1 = new TableHelper(dbHelper, "TEST_QUALIFIED1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
index b789135..4911092 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
@@ -21,11 +21,13 @@ package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.ArtGroup;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
-@UseServerRuntime("cayenne-small-testmap.xml")
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CDOReflexiveRelDeleteIT extends ServerCase {
 
     @Inject
@@ -36,9 +38,8 @@ public class CDOReflexiveRelDeleteIT extends ServerCase {
     private ArtGroup childGroup2;
     private ArtGroup childGroup3;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        super.setUpAfterInjection();
+    @Before
+    public void testSetUp() throws Exception {
 
         parentGroup = context.newObject(ArtGroup.class);
         parentGroup.setName("parent");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelIT.java
index 95ea822..56dfd47 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.ArtGroup;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -29,7 +30,7 @@ import org.junit.Test;
  * Some more tests regarding reflexive relationships, especially related to delete rules
  * etc. The implementation is hairy, and so needs a really good workout.
  */
-@UseServerRuntime("cayenne-small-testmap.xml")
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CDOReflexiveRelIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
index 97d643b..0344ed6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships_set_to_many.SetToMany;
 import org.apache.cayenne.testdo.relationships_set_to_many.SetToManyTarget;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Set;
@@ -39,7 +41,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_SET_TO_MANY_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_SET_TO_MANY_PROJECT)
 public class CDOSetRelationshipIT extends ServerCase {
 
     @Inject
@@ -51,11 +53,8 @@ public class CDOSetRelationshipIT extends ServerCase {
     protected TableHelper tSetToMany;
     protected TableHelper tSetToManyTarget;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("SET_TO_MANY_TARGET");
-        dbHelper.deleteAll("SET_TO_MANY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tSetToMany = new TableHelper(dbHelper, "SET_TO_MANY");
         tSetToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
index dec9c1e..fe2aa66 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.compound.CharPkTestEntity;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class CayenneCompoundIT extends ServerCase {
 
     @Inject
@@ -50,12 +52,8 @@ public class CayenneCompoundIT extends ServerCase {
     protected TableHelper tCompoundPKTest;
     protected TableHelper tCharPKTest;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-        dbHelper.deleteAll("CHAR_PK_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tCompoundPKTest = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPKTest.setColumns("KEY1", "KEY2", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneDOTestBase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDOTestBase.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDOTestBase.java
index 8815ca2..eee88e2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDOTestBase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDOTestBase.java
@@ -19,18 +19,16 @@ package org.apache.cayenne;
  *  under the License.
  ****************************************************************/
 
-import java.util.List;
-import java.sql.Types;
-
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
 import org.apache.cayenne.unit.di.server.ServerCase;
 
+import java.util.List;
+
 public abstract class CayenneDOTestBase extends ServerCase {
 
     public static final String artistName = "artist with one painting";
@@ -45,20 +43,6 @@ public abstract class CayenneDOTestBase extends ServerCase {
     @Inject
     protected ObjectContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-    }
-
     protected Artist newArtist() {
         Artist a1 = context.newObject(Artist.class);
         a1.setArtistName(artistName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
index b32f188..5629061 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
@@ -30,11 +30,12 @@ import org.apache.cayenne.testdo.testmap.ArtGroup;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
-import java.sql.Types;
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
@@ -43,7 +44,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CayenneDataObjectFlattenedRelIT extends ServerCase {
 
     @Inject
@@ -64,16 +65,8 @@ public class CayenneDataObjectFlattenedRelIT extends ServerCase {
 
     private TableHelper tArtistGroup;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.update("ARTGROUP").set("PARENT_GROUP_ID", null, Types.INTEGER).execute();
-        dbHelper.deleteAll("ARTGROUP");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java
index 964766c..efe5c52 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java
@@ -25,6 +25,7 @@ import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.ArtistExhibit;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.unit.util.TstBean;
@@ -37,7 +38,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CayenneDataObjectIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
index 752efa7..074ea27 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -41,7 +43,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CayenneDataObjectInContextIT extends ServerCase {
 
     @Inject
@@ -55,14 +57,8 @@ public class CayenneDataObjectInContextIT extends ServerCase {
 
     protected TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
index 725ce81..24a4884 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -43,7 +45,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CayenneDataObjectRelationshipsIT extends ServerCase {
 
     @Inject
@@ -59,14 +61,8 @@ public class CayenneDataObjectRelationshipsIT extends ServerCase {
     private TableHelper tPaintingInfo;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectValidationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectValidationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectValidationIT.java
index d65b3c4..5eebeee 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectValidationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectValidationIT.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.validation.BeanValidationFailure;
@@ -38,7 +39,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CayenneDataObjectValidationIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
index 008bb52..301a5ca 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
@@ -33,8 +33,10 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collection;
@@ -48,7 +50,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CayenneIT extends ServerCase {
 
     @Inject
@@ -60,14 +62,8 @@ public class CayenneIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
index dcdaa83..012edf3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
@@ -21,15 +21,15 @@ package org.apache.cayenne;
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.ObjectIdQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class CompoundPkChangeIT extends ServerCase {
 
     private static final String key1v1 = "-key1-v1-";
@@ -42,15 +42,6 @@ public class CompoundPkChangeIT extends ServerCase {
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-    }
-
     @Test
     public void testCompoundPkChangeSingleElement() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java b/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
index 9e57d0b..0efd037 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.SQLException;
@@ -40,7 +42,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextMaxIdQualifierIT extends ServerCase {
 
     @Inject
@@ -58,14 +60,8 @@ public class DataContextMaxIdQualifierIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/DataObjectSerializationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/DataObjectSerializationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/DataObjectSerializationIT.java
index 2e1c441..7307402 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/DataObjectSerializationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/DataObjectSerializationIT.java
@@ -22,6 +22,7 @@ package org.apache.cayenne;
 import org.apache.cayenne.access.ToManyList;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.Util;
@@ -35,7 +36,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataObjectSerializationIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
index e285420..f716142 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
@@ -31,8 +31,10 @@ import org.apache.cayenne.testdo.relationships_flattened.FlattenedCircular;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest1;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest2;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest3;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -46,7 +48,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Test case for objects with flattened relationships.
  */
-@UseServerRuntime(ServerCase.RELATIONSHIPS_FLATTENED_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)
 public class FlattenedRelationshipsIT extends ServerCase {
 
     @Inject
@@ -65,16 +67,8 @@ public class FlattenedRelationshipsIT extends ServerCase {
     private TableHelper tFlattenedCircular;
     private TableHelper tFlattenedCircularJoin;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPLEX_JOIN");
-        dbHelper.deleteAll("FLATTENED_TEST_4");
-        dbHelper.deleteAll("FLATTENED_TEST_3");
-        dbHelper.deleteAll("FLATTENED_TEST_2");
-        dbHelper.deleteAll("FLATTENED_TEST_1");
-        dbHelper.deleteAll("FLATTENED_CIRCULAR_JOIN");
-        dbHelper.deleteAll("FLATTENED_CIRCULAR");
-
+    @Before
+    public void testSetUp() throws Exception {
         tFlattenedTest1 = new TableHelper(dbHelper, "FLATTENED_TEST_1");
         tFlattenedTest1.setColumns("FT1_ID", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/GenericMappingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/GenericMappingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/GenericMappingIT.java
index 1b111bc..cba5a4f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/GenericMappingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/GenericMappingIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,21 +36,12 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.GENERIC_PROJECT)
+@UseServerRuntime(CayenneProjects.GENERIC_PROJECT)
 public class GenericMappingIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("GENERIC2");
-        dbHelper.deleteAll("GENERIC1");
-    }
-
     @Test
     public void testInsertSingle() {
         DataObject g1 = (DataObject) context.newObject("Generic1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/ManyToManyNoJoinIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/ManyToManyNoJoinIT.java b/cayenne-server/src/test/java/org/apache/cayenne/ManyToManyNoJoinIT.java
index 50e0c3f..2ee4c8f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/ManyToManyNoJoinIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/ManyToManyNoJoinIT.java
@@ -19,30 +19,21 @@
 package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.relationships_activity.Activity;
 import org.apache.cayenne.testdo.relationships_activity.ActivityResult;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import java.sql.Date;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_ACTIVITY_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_ACTIVITY_PROJECT)
 public class ManyToManyNoJoinIT extends ServerCase {
 
     @Inject
     private ObjectContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("ACTIVITY");
-        dbHelper.deleteAll("RESULT");
-    }
-
     @Test
     public void testValidateForSave1() throws Exception {
         ActivityResult result = context.newObject(ActivityResult.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/MeaningfulFKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/MeaningfulFKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/MeaningfulFKIT.java
index 4e31c2c..f11552c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/MeaningfulFKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/MeaningfulFKIT.java
@@ -20,9 +20,9 @@
 package org.apache.cayenne;
 
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.relationships.MeaningfulFK;
 import org.apache.cayenne.testdo.relationships.RelationshipHelper;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.validation.ValidationResult;
@@ -32,20 +32,12 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT)
 public class MeaningfulFKIT extends ServerCase {
 
     @Inject
     private ObjectContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MEANINGFUL_FK");
-    }
-
     @Test
     public void testValidateForSave1() throws Exception {
         MeaningfulFK testObject = context.newObject(MeaningfulFK.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
index 4b99f55..6130b5d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.testdo.oneway.OnewayTable1;
 import org.apache.cayenne.testdo.oneway.OnewayTable2;
 import org.apache.cayenne.testdo.oneway.OnewayTable3;
 import org.apache.cayenne.testdo.oneway.OnewayTable4;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.SQLException;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.ONEWAY_PROJECT)
+@UseServerRuntime(CayenneProjects.ONEWAY_PROJECT)
 public class OneWayRelationshipsIT extends ServerCase {
 
     @Inject
@@ -52,14 +54,8 @@ public class OneWayRelationshipsIT extends ServerCase {
     private TableHelper t3Helper;
     private TableHelper t4Helper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
-        dbHelper.deleteAll("oneway_table2");
-        dbHelper.deleteAll("oneway_table1");
-        dbHelper.deleteAll("oneway_table4");
-        dbHelper.deleteAll("oneway_table3");
-
+    @Before
+    public void testSetUp() throws Exception {
         t1Helper = new TableHelper(dbHelper, "oneway_table1");
         t1Helper.setColumns("ID");
         t2Helper = new TableHelper(dbHelper, "oneway_table2");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/PersistenceByReachabilityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/PersistenceByReachabilityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/PersistenceByReachabilityIT.java
index 65fb933..ad545cb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/PersistenceByReachabilityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/PersistenceByReachabilityIT.java
@@ -22,6 +22,7 @@ package org.apache.cayenne;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -29,7 +30,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class PersistenceByReachabilityIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/PersistentObjectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/PersistentObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/PersistentObjectIT.java
index c6a1146..4b240b3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/PersistentObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/PersistentObjectIT.java
@@ -19,6 +19,7 @@
 
 package org.apache.cayenne;
 
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -28,7 +29,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class PersistentObjectIT extends ServerCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/PregeneratedPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/PregeneratedPKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/PregeneratedPKIT.java
index 4059622..c3ca428 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/PregeneratedPKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/PregeneratedPKIT.java
@@ -23,8 +23,8 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -39,26 +39,12 @@ import static org.junit.Assert.assertNotNull;
 // TODO: 1/16/2006 - the algorithm used to generate the PK may be included in
 // DataObjectUtils to pull the PK on demand. A caveat - we need to analyze DataObject in
 // question to see if a PK is numeric and not propagated.
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class PregeneratedPKIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-    }
-
     @Test
     public void testLongPk() throws Exception {
         Artist a = context.newObject(Artist.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
index 8dd8202..42e24e8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
@@ -22,10 +22,10 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.binary_pk.BinaryPKTest1;
 import org.apache.cayenne.testdo.binary_pk.BinaryPKTest2;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -33,7 +33,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.BINARY_PK_PROJECT)
+@UseServerRuntime(CayenneProjects.BINARY_PK_PROJECT)
 public class DataContextBinaryPKIT extends ServerCase {
 
     @Inject
@@ -45,17 +45,6 @@ public class DataContextBinaryPKIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        if (accessStackAdapter.supportsBinaryPK()) {
-            dbHelper.deleteAll("BINARY_PK_TEST2");
-            dbHelper.deleteAll("BINARY_PK_TEST1");
-        }
-    }
-
     @Test
     public void testInsertBinaryPK() throws Exception {
         if (accessStackAdapter.supportsBinaryPK()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
index c482bd8..8b0c4fa 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
@@ -22,9 +22,9 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.access.types.ByteArrayTypeTest;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.lob.BlobTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +34,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.LOB_PROJECT)
+@UseServerRuntime(CayenneProjects.LOB_PROJECT)
 public class DataContextBlobIT extends ServerCase {
 
     @Inject
@@ -49,16 +49,6 @@ public class DataContextBlobIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
     
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        if (accessStackAdapter.supportsLobs()) {
-            dbHelper.deleteAll("BLOB_TEST");
-        }
-    }
-
     protected boolean skipTests() {
         return !accessStackAdapter.supportsLobs();
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
index 1b89bd2..742b1d9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
@@ -23,11 +23,12 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.LifecycleEvent;
 import org.apache.cayenne.reflect.LifecycleCallbackRegistry;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
 import org.junit.Test;
 
 import static org.junit.Assert.assertFalse;
@@ -36,7 +37,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextCallbacksIT extends ServerCase {
 
     @Inject
@@ -45,20 +46,8 @@ public class DataContextCallbacksIT extends ServerCase {
     @Inject
     private ServerRuntime runtime;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         EntityResolver resolver = runtime.getDataDomain().getEntityResolver();
         resolver.getCallbackRegistry().clear();
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
index 8d37950..a0b97e4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
@@ -22,8 +22,8 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.compound.CharPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -33,21 +33,12 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class DataContextCharPKIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("CHAR_FK_TEST");
-        dbHelper.deleteAll("CHAR_PK_TEST");
-    }
-
     @Test
     public void testInsert() throws Exception {
         CharPkTestEntity object = context.newObject(CharPkTestEntity.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
index 2b35330..cf84989 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
@@ -23,9 +23,9 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMap1;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,23 +34,15 @@ import java.util.List;
 
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RETURN_TYPES_PROJECT)
+@UseServerRuntime(CayenneProjects.RETURN_TYPES_PROJECT)
 public class DataContextCharTypeIT extends ServerCase {
     
     @Inject
     protected ObjectContext context;
     
     @Inject
-    protected DBHelper dbHelper;
-    
-    @Inject
     private UnitDbAdapter unitDbAdapter;
     
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("TYPES_MAPPING_TEST1");
-    }
-
     @Test
     public void testCharTrimming() {
         if (unitDbAdapter.supportsLobs()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
index 68e79bd..60ad7b3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
@@ -21,9 +21,9 @@ package org.apache.cayenne.access;
 
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.lob.ClobTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -33,7 +33,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.LOB_PROJECT)
+@UseServerRuntime(CayenneProjects.LOB_PROJECT)
 public class DataContextClobIT extends ServerCase {
 
     @Inject
@@ -48,16 +48,6 @@ public class DataContextClobIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        if (accessStackAdapter.supportsLobs()) {
-            dbHelper.deleteAll("CLOB_TEST");
-        }
-    }
-
     private boolean skipTests() {
         return !accessStackAdapter.supportsLobs();
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCommitIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCommitIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCommitIT.java
index 2e9a795..a8753fb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCommitIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCommitIT.java
@@ -22,10 +22,10 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.graph.GraphDiff;
 import org.apache.cayenne.graph.MockGraphChangeHandler;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.NullTestEntity;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,25 +36,12 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextCommitIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("NULL_TEST");
-    }
-
     @Test
     public void testFlushToParent_Commit() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
index 9c5932f..be2041f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
@@ -23,9 +23,9 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.compound.CompoundFkTestEntity;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertEquals;
 /**
  * Testing relationships with compound keys.
  */
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class DataContextCompoundRelIT extends ServerCase {
 
     @Inject
@@ -46,15 +46,6 @@ public class DataContextCompoundRelIT extends ServerCase {
     @Inject
     private DataContext context1;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-    }
-
     @Test
     public void testInsert() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java
index 3a3d7ed..8ac4620 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java
@@ -23,11 +23,12 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.db1.CrossdbM1E1;
 import org.apache.cayenne.testdo.db2.CrossdbM2E1;
 import org.apache.cayenne.testdo.db2.CrossdbM2E2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
-@UseServerRuntime(ServerCase.MULTINODE_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTINODE_PROJECT)
 public class DataContextCrossDBIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java
index 6a74e2e..2cff155 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDataChannelEventsIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.graph.GraphEvent;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.EventUtil;
@@ -38,7 +39,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests that DataContext sends DataChannel events.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextDataChannelEventsIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
index 969a54c..92e3d06 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
@@ -31,8 +31,8 @@ import org.apache.cayenne.graph.GraphDiff;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -43,24 +43,12 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextDecoratedStackIT extends ServerCase {
 
     @Inject
     private ServerRuntime runtime;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testCommitDecorated() {
         DataDomain dd = runtime.getDataDomain();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
index 46d1231..f758917 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
@@ -23,11 +23,12 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.MockQuery;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -42,26 +43,14 @@ import static org.junit.Assert.assertTrue;
  * Tests various DataContextDelegate methods invocation and consequences on DataContext
  * behavior.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextDelegateIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         // prepare a single gallery record
         Gallery gallery = (Gallery) context.newObject("Gallery");
         gallery.setGalleryName("version1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
index 18b07e4..2d2c695 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Date;
@@ -37,7 +39,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextDelegateSharedCacheIT extends ServerCase {
 
     @Inject
@@ -48,8 +50,8 @@ public class DataContextDelegateSharedCacheIT extends ServerCase {
 
     private Artist artist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
 
         // prepare a single artist record
         artist = (Artist) context.newObject("Artist");


[19/39] cayenne git commit: CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

Posted by aa...@apache.org.
CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

* implementing escaping


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/7aeba71b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/7aeba71b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/7aeba71b

Branch: refs/heads/CAY-1946_1
Commit: 7aeba71b31bc513fda6b3678d81a4b9393aa772c
Parents: 9587d04
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:46:31 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 17:31:22 2014 +0300

----------------------------------------------------------------------
 .../cayenne/exp/LikeExpressionHelper.java       |  88 ++++-
 .../org/apache/cayenne/exp/PropertyTest.java    | 383 ++++++++++---------
 2 files changed, 285 insertions(+), 186 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/7aeba71b/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java
index 7725dc9..31ec1f2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/LikeExpressionHelper.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.cayenne.exp;
 
+import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.exp.parser.PatternMatchNode;
 
 /**
@@ -25,11 +26,22 @@ import org.apache.cayenne.exp.parser.PatternMatchNode;
  */
 class LikeExpressionHelper {
 
-	// presumably only "?" can't be an escape char
-	private static final char[] ESCAPE_ALPHABET = new char[] { '\\', '|', '/', ' ' };
+	private static final char WILDCARD_SEQUENCE = '%';
+	private static final char WILDCARD_ONE = '_';
+	private static final boolean[] ESCAPE_ALPHABET;
+	private static final int ESCAPE_ALPHABET_START = '!';
 
-	private static final String WILDCARD_SEQUENCE = "%";
-	private static final String WILDCARD_ONE = "_";
+	static {
+
+		ESCAPE_ALPHABET = new boolean[Byte.MAX_VALUE];
+		// exclude certain chars, such as unprintable ones, and ?
+		for (int i = ESCAPE_ALPHABET_START; i < Byte.MAX_VALUE; i++) {
+
+			if (i != '?' && i != '\"' && i != '\'' && i != WILDCARD_SEQUENCE && i != WILDCARD_ONE) {
+				ESCAPE_ALPHABET[i] = true;
+			}
+		}
+	}
 
 	static void toContains(PatternMatchNode exp) {
 		escape(exp);
@@ -47,10 +59,76 @@ class LikeExpressionHelper {
 	}
 
 	static void escape(PatternMatchNode exp) {
+		Object pattern = exp.getOperand(1);
+		if (pattern instanceof String) {
+			// find _ or % and then attempt to escape...
+
+			String pString = pattern.toString();
+
+			int len = pString.length();
+			for (int i = 0; i < len; i++) {
+
+				char c = pString.charAt(i);
+				if (c == WILDCARD_SEQUENCE || c == WILDCARD_ONE) {
+					exp.setOperand(1, escapeFrom(exp, pString, i, len));
+					break;
+				}
+			}
+		}
+	}
+
+	private static String escapeFrom(PatternMatchNode exp, String pattern, int firstWildcard, int len) {
+
+		boolean[] mutableEscapeAlphabet = new boolean[Byte.MAX_VALUE];
+		System.arraycopy(ESCAPE_ALPHABET, ESCAPE_ALPHABET_START, mutableEscapeAlphabet, ESCAPE_ALPHABET_START,
+				Byte.MAX_VALUE - ESCAPE_ALPHABET_START);
+
+		// can't use chars already in the pattern, so exclude the ones already
+		// taken
+		for (int i = 0; i < len; i++) {
+			char c = pattern.charAt(i);
+			if (c < Byte.MAX_VALUE) {
+				mutableEscapeAlphabet[c] = false;
+			}
+		}
+
+		// find the first available char
+		char escapeChar = 0;
+		for (int i = ESCAPE_ALPHABET_START; i < Byte.MAX_VALUE; i++) {
+			if (mutableEscapeAlphabet[i]) {
+				escapeChar = (char) i;
+				break;
+			}
+		}
+
+		if (escapeChar == 0) {
+			// if we start seeing this this error in the wild, I guess we'll
+			// need to extend escape char set beyond ASCII
+			throw new CayenneRuntimeException("Could not properly escape pattern: " + pattern);
+		}
+		
+		exp.setEscapeChar(escapeChar);
+
+		// build escaped pattern
+		StringBuilder buffer = new StringBuilder(len + 1);
+		buffer.append(pattern.substring(0, firstWildcard));
+		buffer.append(escapeChar).append(pattern.charAt(firstWildcard));
+
+		for (int i = firstWildcard + 1; i < len; i++) {
+
+			char c = pattern.charAt(i);
+			if (c == WILDCARD_SEQUENCE || c == WILDCARD_ONE) {
+				buffer.append(escapeChar);
+				break;
+			}
+
+			buffer.append(c);
+		}
 
+		return buffer.toString();
 	}
 
-	static void wrap(PatternMatchNode exp, boolean start, boolean end) {
+	private static void wrap(PatternMatchNode exp, boolean start, boolean end) {
 
 		Object pattern = exp.getOperand(1);
 		if (pattern instanceof String) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/7aeba71b/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
index 70fd3ce..538fc0b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.cayenne.exp;
 
+import org.apache.cayenne.exp.parser.PatternMatchNode;
 import org.apache.cayenne.reflect.TstJavaBean;
 import org.apache.cayenne.reflect.UnresolvablePathException;
 import org.apache.cayenne.util.Util;
@@ -32,185 +33,205 @@ import static org.junit.Assert.fail;
 
 public class PropertyTest {
 
-    @Test
-    public void testIn() {
-        Property<String> p = new Property<String>("x.y");
-
-        Expression e1 = p.in("a");
-        assertEquals("x.y in (\"a\")", e1.toString());
-
-        Expression e2 = p.in("a", "b");
-        assertEquals("x.y in (\"a\", \"b\")", e2.toString());
-
-        Expression e3 = p.in(Arrays.asList("a", "b"));
-        assertEquals("x.y in (\"a\", \"b\")", e3.toString());
-    }
-
-    @Test
-    public void testGetFrom() {
-    	TstJavaBean bean = new TstJavaBean();
-    	bean.setIntField(7);
-    	final Property<Integer> INT_FIELD = new Property<Integer>("intField");
-    	assertEquals(Integer.valueOf(7), INT_FIELD.getFrom(bean));
-    }
-
-    @Test
-    public void testGetFromNestedProperty() {
-    	TstJavaBean bean = new TstJavaBean();
-    	TstJavaBean nestedBean = new TstJavaBean();
-    	nestedBean.setIntField(7);
-    	bean.setObjectField(nestedBean);
-    	final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
-    	assertEquals(Integer.valueOf(7), OBJECT_FIELD_INT_FIELD.getFrom(bean));
-    }
-
-    @Test
-    public void testGetFromNestedNull() {
-    	TstJavaBean bean = new TstJavaBean();
-    	bean.setObjectField(null);
-    	final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
-    	try {
-    		OBJECT_FIELD_INT_FIELD.getFrom(bean);
-    		fail();
-    	} catch (Exception e) {
-    		Throwable rootException = Util.unwindException(e);
-    		if (!(rootException instanceof UnresolvablePathException)) {
-    			fail();
-    		}
-    	}
-    }
-
-    @Test
-    public void testGetFromAll() {
-    	TstJavaBean bean = new TstJavaBean();
-    	bean.setIntField(7);
-    	
-    	TstJavaBean bean2 = new TstJavaBean();
-    	bean2.setIntField(8);
-    	
-    	List<TstJavaBean> beans = Arrays.asList(bean, bean2);
-
-    	final Property<Integer> INT_FIELD = new Property<Integer>("intField");
-    	assertEquals(Arrays.asList(7, 8), INT_FIELD.getFromAll(beans));
-    }
-
-    @Test
-    public void testSetIn() {
-    	TstJavaBean bean = new TstJavaBean();
-    	final Property<Integer> INT_FIELD = new Property<Integer>("intField");
-    	INT_FIELD.setIn(bean, 7);
-    	assertEquals(7, bean.getIntField());
-    }
-
-    @Test
-    public void testSetInNestedProperty() {
-    	TstJavaBean bean = new TstJavaBean();
-    	bean.setObjectField(new TstJavaBean());
-    	
-    	final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
-
-    	OBJECT_FIELD_INT_FIELD.setIn(bean, 7);
-    	assertEquals(7, ((TstJavaBean)bean.getObjectField()).getIntField());
-    }
-
-    @Test
-    public void testSetInNestedNull() {
-    	TstJavaBean bean = new TstJavaBean();
-    	bean.setObjectField(null);
-    	final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
-    	try {
-    		OBJECT_FIELD_INT_FIELD.setIn(bean, 7);
-    		fail();
-    	} catch (Exception e) {
-    		Throwable rootException = Util.unwindException(e);
-    		if (!(rootException instanceof UnresolvablePathException)) {
-    			fail();
-    		}
-    	}
-    }
-
-    @Test
-    public void testSetInAll() {
-    	TstJavaBean bean = new TstJavaBean();
-    	TstJavaBean bean2 = new TstJavaBean();
-    	List<TstJavaBean> beans = Arrays.asList(bean, bean2);
-
-    	final Property<Integer> INT_FIELD = new Property<Integer>("intField");
-    	INT_FIELD.setInAll(beans, 7);
-    	assertEquals(7, bean.getIntField());
-    	assertEquals(7, bean2.getIntField());
-    }
-
-    @Test
-    public void testEquals() {
-    	final Property<Integer> INT_FIELD = new Property<Integer>("intField");
-    	final Property<Integer> INT_FIELD2 = new Property<Integer>("intField");
-
-    	assertTrue(INT_FIELD != INT_FIELD2);
-    	assertTrue(INT_FIELD.equals(INT_FIELD2));
-    }
-
-    @Test
-    public void testHashCode() {
-    	final Property<Integer> INT_FIELD  = new Property<Integer>("intField");
-    	final Property<Integer> INT_FIELD2 = new Property<Integer>("intField");
-    	final Property<Long> LONG_FIELD = new Property<Long>("longField");
-
-    	assertTrue(INT_FIELD.hashCode() == INT_FIELD2.hashCode());
-    	assertTrue(INT_FIELD.hashCode() != LONG_FIELD.hashCode());
-    }
-
-    @Test
-    public void testOuter() {
-        Property<String> inner = new Property<String>("xyz");
-        assertEquals("xyz+", inner.outer().getName());
-        
-        Property<String> inner1 = new Property<String>("xyz.xxx");
-        assertEquals("xyz.xxx+", inner1.outer().getName());
-        
-        Property<String> outer = new Property<String>("xyz+");
-        assertEquals("xyz+", outer.outer().getName());
-    }
-    
-    @Test
-    public void testLike() {
-    	Property<String> p = new Property<String>("prop");
-    	Expression e = p.like("abc");
-    	assertEquals("prop like \"abc\"", e.toString());
-    }
-    
-    @Test
-    public void testLikeIgnoreCase() {
-    	Property<String> p = new Property<String>("prop");
-    	Expression e = p.likeInsensitive("abc");
-    	assertEquals("prop likeIgnoreCase \"abc\"", e.toString());
-    }
-    
-    @Test
-    public void testLike_NoEscape() {
-    	Property<String> p = new Property<String>("prop");
-    	Expression e = p.like("ab%c");
-    	assertEquals("prop like \"ab%c\"", e.toString());
-    }
-    
-    @Test
-    public void testContains() {
-    	Property<String> p = new Property<String>("prop");
-    	Expression e = p.contains("abc");
-    	assertEquals("prop like \"%abc%\"", e.toString());
-    }
-    
-    @Test
-    public void testStartsWith() {
-    	Property<String> p = new Property<String>("prop");
-    	Expression e = p.startsWith("abc");
-    	assertEquals("prop like \"abc%\"", e.toString());
-    }
-    
-    @Test
-    public void testEndsWith() {
-    	Property<String> p = new Property<String>("prop");
-    	Expression e = p.endsWith("abc");
-    	assertEquals("prop like \"%abc\"", e.toString());
-    }
+	@Test
+	public void testIn() {
+		Property<String> p = new Property<String>("x.y");
+
+		Expression e1 = p.in("a");
+		assertEquals("x.y in (\"a\")", e1.toString());
+
+		Expression e2 = p.in("a", "b");
+		assertEquals("x.y in (\"a\", \"b\")", e2.toString());
+
+		Expression e3 = p.in(Arrays.asList("a", "b"));
+		assertEquals("x.y in (\"a\", \"b\")", e3.toString());
+	}
+
+	@Test
+	public void testGetFrom() {
+		TstJavaBean bean = new TstJavaBean();
+		bean.setIntField(7);
+		final Property<Integer> INT_FIELD = new Property<Integer>("intField");
+		assertEquals(Integer.valueOf(7), INT_FIELD.getFrom(bean));
+	}
+
+	@Test
+	public void testGetFromNestedProperty() {
+		TstJavaBean bean = new TstJavaBean();
+		TstJavaBean nestedBean = new TstJavaBean();
+		nestedBean.setIntField(7);
+		bean.setObjectField(nestedBean);
+		final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
+		assertEquals(Integer.valueOf(7), OBJECT_FIELD_INT_FIELD.getFrom(bean));
+	}
+
+	@Test
+	public void testGetFromNestedNull() {
+		TstJavaBean bean = new TstJavaBean();
+		bean.setObjectField(null);
+		final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
+		try {
+			OBJECT_FIELD_INT_FIELD.getFrom(bean);
+			fail();
+		} catch (Exception e) {
+			Throwable rootException = Util.unwindException(e);
+			if (!(rootException instanceof UnresolvablePathException)) {
+				fail();
+			}
+		}
+	}
+
+	@Test
+	public void testGetFromAll() {
+		TstJavaBean bean = new TstJavaBean();
+		bean.setIntField(7);
+
+		TstJavaBean bean2 = new TstJavaBean();
+		bean2.setIntField(8);
+
+		List<TstJavaBean> beans = Arrays.asList(bean, bean2);
+
+		final Property<Integer> INT_FIELD = new Property<Integer>("intField");
+		assertEquals(Arrays.asList(7, 8), INT_FIELD.getFromAll(beans));
+	}
+
+	@Test
+	public void testSetIn() {
+		TstJavaBean bean = new TstJavaBean();
+		final Property<Integer> INT_FIELD = new Property<Integer>("intField");
+		INT_FIELD.setIn(bean, 7);
+		assertEquals(7, bean.getIntField());
+	}
+
+	@Test
+	public void testSetInNestedProperty() {
+		TstJavaBean bean = new TstJavaBean();
+		bean.setObjectField(new TstJavaBean());
+
+		final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
+
+		OBJECT_FIELD_INT_FIELD.setIn(bean, 7);
+		assertEquals(7, ((TstJavaBean) bean.getObjectField()).getIntField());
+	}
+
+	@Test
+	public void testSetInNestedNull() {
+		TstJavaBean bean = new TstJavaBean();
+		bean.setObjectField(null);
+		final Property<Integer> OBJECT_FIELD_INT_FIELD = new Property<Integer>("objectField.intField");
+		try {
+			OBJECT_FIELD_INT_FIELD.setIn(bean, 7);
+			fail();
+		} catch (Exception e) {
+			Throwable rootException = Util.unwindException(e);
+			if (!(rootException instanceof UnresolvablePathException)) {
+				fail();
+			}
+		}
+	}
+
+	@Test
+	public void testSetInAll() {
+		TstJavaBean bean = new TstJavaBean();
+		TstJavaBean bean2 = new TstJavaBean();
+		List<TstJavaBean> beans = Arrays.asList(bean, bean2);
+
+		final Property<Integer> INT_FIELD = new Property<Integer>("intField");
+		INT_FIELD.setInAll(beans, 7);
+		assertEquals(7, bean.getIntField());
+		assertEquals(7, bean2.getIntField());
+	}
+
+	@Test
+	public void testEquals() {
+		final Property<Integer> INT_FIELD = new Property<Integer>("intField");
+		final Property<Integer> INT_FIELD2 = new Property<Integer>("intField");
+
+		assertTrue(INT_FIELD != INT_FIELD2);
+		assertTrue(INT_FIELD.equals(INT_FIELD2));
+	}
+
+	@Test
+	public void testHashCode() {
+		final Property<Integer> INT_FIELD = new Property<Integer>("intField");
+		final Property<Integer> INT_FIELD2 = new Property<Integer>("intField");
+		final Property<Long> LONG_FIELD = new Property<Long>("longField");
+
+		assertTrue(INT_FIELD.hashCode() == INT_FIELD2.hashCode());
+		assertTrue(INT_FIELD.hashCode() != LONG_FIELD.hashCode());
+	}
+
+	@Test
+	public void testOuter() {
+		Property<String> inner = new Property<String>("xyz");
+		assertEquals("xyz+", inner.outer().getName());
+
+		Property<String> inner1 = new Property<String>("xyz.xxx");
+		assertEquals("xyz.xxx+", inner1.outer().getName());
+
+		Property<String> outer = new Property<String>("xyz+");
+		assertEquals("xyz+", outer.outer().getName());
+	}
+
+	@Test
+	public void testLike() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.like("abc");
+		assertEquals("prop like \"abc\"", e.toString());
+	}
+
+	@Test
+	public void testLikeIgnoreCase() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.likeInsensitive("abc");
+		assertEquals("prop likeIgnoreCase \"abc\"", e.toString());
+	}
+
+	@Test
+	public void testLike_NoEscape() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.like("ab%c");
+		assertEquals("prop like \"ab%c\"", e.toString());
+		assertEquals(0, ((PatternMatchNode) e).getEscapeChar());
+	}
+
+	@Test
+	public void testContains() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.contains("abc");
+		assertEquals("prop like \"%abc%\"", e.toString());
+		assertEquals(0, ((PatternMatchNode) e).getEscapeChar());
+	}
+
+	@Test
+	public void testStartsWith() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.startsWith("abc");
+		assertEquals("prop like \"abc%\"", e.toString());
+		assertEquals(0, ((PatternMatchNode) e).getEscapeChar());
+	}
+
+	@Test
+	public void testEndsWith() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.endsWith("abc");
+		assertEquals("prop like \"%abc\"", e.toString());
+		assertEquals(0, ((PatternMatchNode) e).getEscapeChar());
+	}
+	
+	@Test
+	public void testContains_Escape1() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.contains("a%bc");
+		assertEquals("prop like \"%a!%bc%\"", e.toString());
+		assertEquals('!', ((PatternMatchNode) e).getEscapeChar());
+	}
+	
+	@Test
+	public void testContains_Escape2() {
+		Property<String> p = new Property<String>("prop");
+		Expression e = p.contains("a_!bc");
+		assertEquals("prop like \"%a#_!bc%\"", e.toString());
+		assertEquals('#', ((PatternMatchNode) e).getEscapeChar());
+	}
 }


[24/39] cayenne git commit: cleanup, no change

Posted by aa...@apache.org.
cleanup, no change


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3c51a773
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3c51a773
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3c51a773

Branch: refs/heads/CAY-1946_1
Commit: 3c51a773ce64be713295157cf77d8fa72379ab91
Parents: 5ce09a7
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 17:56:11 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 17:58:06 2014 +0300

----------------------------------------------------------------------
 .../configuration/ConfigurationNameMapper.java  |  35 +-
 .../configuration/DataChannelDescriptor.java    | 268 ++++---
 .../DefaultConfigurationNameMapper.java         | 186 +++--
 .../XMLDataChannelDescriptorLoader.java         | 761 +++++++++----------
 4 files changed, 589 insertions(+), 661 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/3c51a773/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNameMapper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNameMapper.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNameMapper.java
index 47982fd..2b7dc51 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNameMapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationNameMapper.java
@@ -25,24 +25,23 @@ import org.apache.cayenne.resource.Resource;
  */
 public interface ConfigurationNameMapper {
 
-    /**
-     * Returns the name of a configuration resource based on a naming convention for a
-     * given node type.
-     */
-    String configurationLocation(ConfigurationNode node);
+	/**
+	 * Returns the name of a configuration resource based on a naming convention
+	 * for a given node type.
+	 */
+	String configurationLocation(ConfigurationNode node);
 
-    /**
-     * Returns the name of a configuration resource based on a naming convention for a
-     * given node type.
-     */
-    String configurationLocation(Class<? extends ConfigurationNode> type, String nodeName);
+	/**
+	 * Returns the name of a configuration resource based on a naming convention
+	 * for a given node type.
+	 */
+	String configurationLocation(Class<? extends ConfigurationNode> type, String nodeName);
 
-    /**
-     * Returns a node name for a given configuration type and a configuration resource.
-     * This operation is the opposite of the {@link #configurationLocation(Class, String)}
-     * . May return null if the resource name is not following the expected naming format.
-     */
-    String configurationNodeName(
-            Class<? extends ConfigurationNode> type,
-            Resource resource);
+	/**
+	 * Returns a node name for a given configuration type and a configuration
+	 * resource. This operation is the opposite of the
+	 * {@link #configurationLocation(Class, String)} . May return null if the
+	 * resource name is not following the expected naming format.
+	 */
+	String configurationNodeName(Class<? extends ConfigurationNode> type, Resource resource);
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3c51a773/cayenne-server/src/main/java/org/apache/cayenne/configuration/DataChannelDescriptor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DataChannelDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DataChannelDescriptor.java
index 34b14b8..a64fb51 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DataChannelDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DataChannelDescriptor.java
@@ -36,139 +36,137 @@ import org.apache.cayenne.util.XMLSerializable;
  * 
  * @since 3.1
  */
-public class DataChannelDescriptor implements ConfigurationNode, Serializable,
-        XMLSerializable {
-
-    protected String name;
-    protected Map<String, String> properties;
-    protected Collection<DataMap> dataMaps;
-    protected Collection<DataNodeDescriptor> nodeDescriptors;
-    protected Resource configurationSource;
-    protected String defaultNodeName;
-
-    public DataChannelDescriptor() {
-        properties = new HashMap<String, String>();
-        dataMaps = new ArrayList<DataMap>(5);
-        nodeDescriptors = new ArrayList<DataNodeDescriptor>(3);
-    }
-
-    public void encodeAsXML(XMLEncoder encoder) {
-
-        encoder.print("<domain");
-        encoder.printProjectVersion();
-        encoder.println(">");
-
-        encoder.indent(1);
-        boolean breakNeeded = false;
-
-        if (!properties.isEmpty()) {
-            breakNeeded = true;
-
-            List<String> keys = new ArrayList<String>(properties.keySet());
-            Collections.sort(keys);
-
-            for (String key : keys) {
-                encoder.printProperty(key, properties.get(key));
-            }
-        }
-
-        if (!dataMaps.isEmpty()) {
-            if (breakNeeded) {
-                encoder.println();
-            }
-            else {
-                breakNeeded = true;
-            }
-
-            List<DataMap> maps = new ArrayList<DataMap>(this.dataMaps);
-            Collections.sort(maps);
-
-            for (DataMap dataMap : maps) {
-
-                encoder.print("<map");
-                encoder.printAttribute("name", dataMap.getName().trim());
-                encoder.println("/>");
-            }
-        }
-
-        if (!nodeDescriptors.isEmpty()) {
-            if (breakNeeded) {
-                encoder.println();
-            }
-            else {
-                breakNeeded = true;
-            }
-
-            List<DataNodeDescriptor> nodes = new ArrayList<DataNodeDescriptor>(
-                    nodeDescriptors);
-            Collections.sort(nodes);
-            encoder.print(nodes);
-        }
-
-        encoder.indent(-1);
-        encoder.println("</domain>");
-    }
-
-    public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor) {
-        return visitor.visitDataChannelDescriptor(this);
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Map<String, String> getProperties() {
-        return properties;
-    }
-
-    public Collection<DataMap> getDataMaps() {
-        return dataMaps;
-    }
-
-    public DataMap getDataMap(String name) {
-        for (DataMap map : dataMaps) {
-            if (name.equals(map.getName())) {
-                return map;
-            }
-        }
-        return null;
-    }
-
-    public Collection<DataNodeDescriptor> getNodeDescriptors() {
-        return nodeDescriptors;
-    }
-
-    public DataNodeDescriptor getNodeDescriptor(String name) {
-        for (DataNodeDescriptor node : nodeDescriptors) {
-            if (name.equals(node.getName())) {
-                return node;
-            }
-        }
-
-        return null;
-    }
-
-    public Resource getConfigurationSource() {
-        return configurationSource;
-    }
-
-    public void setConfigurationSource(Resource configurationSource) {
-        this.configurationSource = configurationSource;
-    }
-
-    /**
-     * Returns the name of the DataNode that should be used as the default if a DataMap is
-     * not explicitly linked to a node.
-     */
-    public String getDefaultNodeName() {
-        return defaultNodeName;
-    }
-
-    public void setDefaultNodeName(String defaultDataNodeName) {
-        this.defaultNodeName = defaultDataNodeName;
-    }
+public class DataChannelDescriptor implements ConfigurationNode, Serializable, XMLSerializable {
+
+	private static final long serialVersionUID = 6567527544207035602L;
+	
+	protected String name;
+	protected Map<String, String> properties;
+	protected Collection<DataMap> dataMaps;
+	protected Collection<DataNodeDescriptor> nodeDescriptors;
+	protected Resource configurationSource;
+	protected String defaultNodeName;
+
+	public DataChannelDescriptor() {
+		properties = new HashMap<String, String>();
+		dataMaps = new ArrayList<DataMap>(5);
+		nodeDescriptors = new ArrayList<DataNodeDescriptor>(3);
+	}
+
+	public void encodeAsXML(XMLEncoder encoder) {
+
+		encoder.print("<domain");
+		encoder.printProjectVersion();
+		encoder.println(">");
+
+		encoder.indent(1);
+		boolean breakNeeded = false;
+
+		if (!properties.isEmpty()) {
+			breakNeeded = true;
+
+			List<String> keys = new ArrayList<String>(properties.keySet());
+			Collections.sort(keys);
+
+			for (String key : keys) {
+				encoder.printProperty(key, properties.get(key));
+			}
+		}
+
+		if (!dataMaps.isEmpty()) {
+			if (breakNeeded) {
+				encoder.println();
+			} else {
+				breakNeeded = true;
+			}
+
+			List<DataMap> maps = new ArrayList<DataMap>(this.dataMaps);
+			Collections.sort(maps);
+
+			for (DataMap dataMap : maps) {
+
+				encoder.print("<map");
+				encoder.printAttribute("name", dataMap.getName().trim());
+				encoder.println("/>");
+			}
+		}
+
+		if (!nodeDescriptors.isEmpty()) {
+			if (breakNeeded) {
+				encoder.println();
+			} else {
+				breakNeeded = true;
+			}
+
+			List<DataNodeDescriptor> nodes = new ArrayList<DataNodeDescriptor>(nodeDescriptors);
+			Collections.sort(nodes);
+			encoder.print(nodes);
+		}
+
+		encoder.indent(-1);
+		encoder.println("</domain>");
+	}
+
+	public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor) {
+		return visitor.visitDataChannelDescriptor(this);
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Map<String, String> getProperties() {
+		return properties;
+	}
+
+	public Collection<DataMap> getDataMaps() {
+		return dataMaps;
+	}
+
+	public DataMap getDataMap(String name) {
+		for (DataMap map : dataMaps) {
+			if (name.equals(map.getName())) {
+				return map;
+			}
+		}
+		return null;
+	}
+
+	public Collection<DataNodeDescriptor> getNodeDescriptors() {
+		return nodeDescriptors;
+	}
+
+	public DataNodeDescriptor getNodeDescriptor(String name) {
+		for (DataNodeDescriptor node : nodeDescriptors) {
+			if (name.equals(node.getName())) {
+				return node;
+			}
+		}
+
+		return null;
+	}
+
+	public Resource getConfigurationSource() {
+		return configurationSource;
+	}
+
+	public void setConfigurationSource(Resource configurationSource) {
+		this.configurationSource = configurationSource;
+	}
+
+	/**
+	 * Returns the name of the DataNode that should be used as the default if a
+	 * DataMap is not explicitly linked to a node.
+	 */
+	public String getDefaultNodeName() {
+		return defaultNodeName;
+	}
+
+	public void setDefaultNodeName(String defaultDataNodeName) {
+		this.defaultNodeName = defaultDataNodeName;
+	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3c51a773/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
index ba7dcd4..ffe2868 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
@@ -26,100 +26,94 @@ import org.apache.cayenne.resource.Resource;
  */
 public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 
-    private static final String CAYENNE_PREFIX = "cayenne-";
-    private static final String CAYENNE_SUFFIX = ".xml";
-
-    private static final String DATA_MAP_SUFFIX = ".map.xml";
-
-    protected ConfigurationNodeVisitor<String> nameMapper;
-
-    public DefaultConfigurationNameMapper() {
-        nameMapper = new NameMapper();
-    }
-
-    public String configurationLocation(ConfigurationNode node) {
-        return node.acceptVisitor(nameMapper);
-    }
-
-    public String configurationLocation(
-            Class<? extends ConfigurationNode> type,
-            String name) {
-        if (DataChannelDescriptor.class.isAssignableFrom(type)) {
-            return getDataChannelName(name);
-        }
-        else if (DataMap.class.isAssignableFrom(type)) {
-            return getDataMapName(name);
-        }
-
-        throw new IllegalArgumentException("Unrecognized configuration type: "
-                + type.getName());
-    }
-
-    public String configurationNodeName(
-            Class<? extends ConfigurationNode> type,
-            Resource resource) {
-
-        String path = resource.getURL().getPath();
-        if (path == null || path.length() == 0) {
-            return null;
-        }
-
-        int lastSlash = path.lastIndexOf('/');
-        if (lastSlash >= 0) {
-
-            if (lastSlash == path.length() - 1) {
-                return null;
-            }
-
-            path = path.substring(lastSlash + 1);
-
-        }
-
-        if (DataChannelDescriptor.class.isAssignableFrom(type)) {
-            if (!path.startsWith(CAYENNE_PREFIX) || !path.endsWith(CAYENNE_SUFFIX)) {
-                return null;
-            }
-
-            return path.substring(CAYENNE_PREFIX.length(), path.length()
-                    - CAYENNE_SUFFIX.length());
-        }
-        else if (DataMap.class.isAssignableFrom(type)) {
-            if (!path.endsWith(DATA_MAP_SUFFIX)) {
-                return null;
-            }
-            return path.substring(0, path.length() - DATA_MAP_SUFFIX.length());
-        }
-
-        throw new IllegalArgumentException("Unrecognized configuration type: "
-                + type.getName());
-    }
-
-    protected String getDataChannelName(String name) {
-        if (name == null) {
-            throw new NullPointerException("Null DataChannelDescriptor name");
-        }
-
-        return CAYENNE_PREFIX + name + CAYENNE_SUFFIX;
-    }
-
-    protected String getDataMapName(String name) {
-        if (name == null) {
-            throw new NullPointerException("Null DataMap name");
-        }
-
-        return name + DATA_MAP_SUFFIX;
-    }
-
-    final class NameMapper extends BaseConfigurationNodeVisitor<String> {
-
-        @Override
-        public String visitDataChannelDescriptor(DataChannelDescriptor descriptor) {
-            return getDataChannelName(descriptor.getName());
-        }
-
-        @Override
-        public String visitDataMap(DataMap dataMap) {
-            return getDataMapName(dataMap.getName());
-        }
-    }
+	private static final String CAYENNE_PREFIX = "cayenne-";
+	private static final String CAYENNE_SUFFIX = ".xml";
+
+	private static final String DATA_MAP_SUFFIX = ".map.xml";
+
+	protected ConfigurationNodeVisitor<String> nameMapper;
+
+	public DefaultConfigurationNameMapper() {
+		nameMapper = new NameMapper();
+	}
+
+	@Override
+	public String configurationLocation(ConfigurationNode node) {
+		return node.acceptVisitor(nameMapper);
+	}
+
+	@Override
+	public String configurationLocation(Class<? extends ConfigurationNode> type, String name) {
+		if (DataChannelDescriptor.class.isAssignableFrom(type)) {
+			return getDataChannelName(name);
+		} else if (DataMap.class.isAssignableFrom(type)) {
+			return getDataMapName(name);
+		}
+
+		throw new IllegalArgumentException("Unrecognized configuration type: " + type.getName());
+	}
+
+	@Override
+	public String configurationNodeName(Class<? extends ConfigurationNode> type, Resource resource) {
+
+		String path = resource.getURL().getPath();
+		if (path == null || path.length() == 0) {
+			return null;
+		}
+
+		int lastSlash = path.lastIndexOf('/');
+		if (lastSlash >= 0) {
+
+			if (lastSlash == path.length() - 1) {
+				return null;
+			}
+
+			path = path.substring(lastSlash + 1);
+
+		}
+
+		if (DataChannelDescriptor.class.isAssignableFrom(type)) {
+			if (!path.startsWith(CAYENNE_PREFIX) || !path.endsWith(CAYENNE_SUFFIX)) {
+				return null;
+			}
+
+			return path.substring(CAYENNE_PREFIX.length(), path.length() - CAYENNE_SUFFIX.length());
+		} else if (DataMap.class.isAssignableFrom(type)) {
+			if (!path.endsWith(DATA_MAP_SUFFIX)) {
+				return null;
+			}
+			return path.substring(0, path.length() - DATA_MAP_SUFFIX.length());
+		}
+
+		throw new IllegalArgumentException("Unrecognized configuration type: " + type.getName());
+	}
+
+	protected String getDataChannelName(String name) {
+		if (name == null) {
+			throw new NullPointerException("Null DataChannelDescriptor name");
+		}
+
+		return CAYENNE_PREFIX + name + CAYENNE_SUFFIX;
+	}
+
+	protected String getDataMapName(String name) {
+		if (name == null) {
+			throw new NullPointerException("Null DataMap name");
+		}
+
+		return name + DATA_MAP_SUFFIX;
+	}
+
+	final class NameMapper extends BaseConfigurationNodeVisitor<String> {
+
+		@Override
+		public String visitDataChannelDescriptor(DataChannelDescriptor descriptor) {
+			return getDataChannelName(descriptor.getName());
+		}
+
+		@Override
+		public String visitDataMap(DataMap dataMap) {
+			return getDataMapName(dataMap.getName());
+		}
+	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3c51a773/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
index 7231dfe..420c43c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/XMLDataChannelDescriptorLoader.java
@@ -44,416 +44,353 @@ import org.xml.sax.XMLReader;
  */
 public class XMLDataChannelDescriptorLoader implements DataChannelDescriptorLoader {
 
-    private static Log logger = LogFactory.getLog(XMLDataChannelDescriptorLoader.class);
-
-    static final String DOMAIN_TAG = "domain";
-    static final String MAP_TAG = "map";
-    static final String NODE_TAG = "node";
-    static final String PROPERTY_TAG = "property";
-    static final String MAP_REF_TAG = "map-ref";
-    static final String DATA_SOURCE_TAG = "data-source";
-
-    /**
-     * @deprecated the caller should use password resolving strategy instead of resolving
-     *             the password on the spot. For one thing this can be used in the Modeler
-     *             and no password may be available.
-     */
-    @Deprecated
-    private static String passwordFromURL(URL url) {
-        InputStream inputStream = null;
-        String password = null;
-
-        try {
-            inputStream = url.openStream();
-            password = passwordFromInputStream(inputStream);
-        }
-        catch (IOException exception) {
-            // Log the error while trying to open the stream. A null
-            // password will be returned as a result.
-            logger.warn(exception);
-        }
-
-        return password;
-    }
-
-    /**
-     * @deprecated the caller should use password resolving strategy instead of resolving
-     *             the password on the spot. For one thing this can be used in the Modeler
-     *             and no password may be available.
-     */
-    @Deprecated
-    private static String passwordFromInputStream(InputStream inputStream) {
-        BufferedReader bufferedReader = null;
-        String password = null;
-
-        try {
-            bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
-            password = bufferedReader.readLine();
-        }
-        catch (IOException exception) {
-            logger.warn(exception);
-        }
-        finally {
-            try {
-                if (bufferedReader != null) {
-                    bufferedReader.close();
-                }
-            }
-            catch (Exception exception) {
-            }
-
-            try {
-                inputStream.close();
-            }
-            catch (IOException exception) {
-            }
-        }
-
-        return password;
-    }
-
-    @Inject
-    protected DataMapLoader dataMapLoader;
-
-    @Inject
-    protected ConfigurationNameMapper nameMapper;
-    
-    @Inject
-    protected AdhocObjectFactory objectFactory;
-
-    public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource)
-            throws ConfigurationException {
-
-        if (configurationResource == null) {
-            throw new NullPointerException("Null configurationResource");
-        }
-
-        URL configurationURL = configurationResource.getURL();
-
-        logger.info("Loading XML configuration resource from " + configurationURL);
-
-        DataChannelDescriptor descriptor = new DataChannelDescriptor();
-        descriptor.setConfigurationSource(configurationResource);
-        descriptor.setName(nameMapper.configurationNodeName(
-                DataChannelDescriptor.class,
-                configurationResource));
-
-        DataChannelHandler rootHandler;
-
-        InputStream in = null;
-
-        try {
-            in = configurationURL.openStream();
-            XMLReader parser = Util.createXmlReader();
-
-            rootHandler = new DataChannelHandler(descriptor, parser);
-            parser.setContentHandler(rootHandler);
-            parser.setErrorHandler(rootHandler);
-            parser.parse(new InputSource(in));
-        }
-        catch (Exception e) {
-            throw new ConfigurationException(
-                    "Error loading configuration from %s",
-                    e,
-                    configurationURL);
-        }
-        finally {
-            try {
-                if (in != null) {
-                    in.close();
-                }
-            }
-            catch (IOException ioex) {
-                logger.info("failure closing input stream for "
-                        + configurationURL
-                        + ", ignoring", ioex);
-            }
-        }
-
-        // TODO: andrus 03/10/2010 - actually provide load failures here...
-        return new ConfigurationTree<DataChannelDescriptor>(descriptor, null);
-    }
-
-    final class DataChannelHandler extends SAXNestedTagHandler {
-
-        private DataChannelDescriptor descriptor;
-
-        DataChannelHandler(DataChannelDescriptor dataChannelDescriptor, XMLReader parser) {
-            super(parser, null);
-            this.descriptor = dataChannelDescriptor;
-        }
-
-        @Override
-        protected ContentHandler createChildTagHandler(
-                String namespaceURI,
-                String localName,
-                String name,
-                Attributes attributes) {
-
-            if (localName.equals(DOMAIN_TAG)) {
-                return new DataChannelChildrenHandler(parser, this);
-            }
-
-            logger.info(unexpectedTagMessage(localName, DOMAIN_TAG));
-            return super.createChildTagHandler(namespaceURI, localName, name, attributes);
-        }
-    }
-
-    final class DataChannelChildrenHandler extends SAXNestedTagHandler {
-
-        private DataChannelDescriptor descriptor;
-
-        DataChannelChildrenHandler(XMLReader parser, DataChannelHandler parentHandler) {
-            super(parser, parentHandler);
-            this.descriptor = parentHandler.descriptor;
-        }
-
-        @Override
-        protected ContentHandler createChildTagHandler(
-                String namespaceURI,
-                String localName,
-                String name,
-                Attributes attributes) {
-
-            if (localName.equals(PROPERTY_TAG)) {
-
-                String key = attributes.getValue("", "name");
-                String value = attributes.getValue("", "value");
-                if (key != null && value != null) {
-                    descriptor.getProperties().put(key, value);
-                }
-            }
-            else if (localName.equals(MAP_TAG)) {
-
-                String dataMapName = attributes.getValue("", "name");
-                Resource baseResource = descriptor.getConfigurationSource();
-
-                String dataMapLocation = nameMapper.configurationLocation(
-                        DataMap.class,
-                        dataMapName);
-
-                Resource dataMapResource = baseResource
-                        .getRelativeResource(dataMapLocation);
-
-                logger.info("Loading XML DataMap resource from " + dataMapResource.getURL());
-
-                DataMap dataMap = dataMapLoader.load(dataMapResource);
-                dataMap.setName(dataMapName);
-                dataMap.setLocation(dataMapLocation);
-                dataMap.setConfigurationSource(dataMapResource);
-                dataMap.setDataChannelDescriptor(descriptor);
-
-                descriptor.getDataMaps().add(dataMap);
-            }
-            else if (localName.equals(NODE_TAG)) {
-
-                String nodeName = attributes.getValue("", "name");
-                if (nodeName == null) {
-                    throw new ConfigurationException("Error: <node> without 'name'.");
-                }
-
-                DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor();
-                nodeDescriptor
-                        .setConfigurationSource(descriptor.getConfigurationSource());
-                descriptor.getNodeDescriptors().add(nodeDescriptor);
-
-                nodeDescriptor.setName(nodeName);
-                nodeDescriptor.setAdapterType(attributes.getValue("", "adapter"));
-
-                String parameters = attributes.getValue("", "parameters");
-                nodeDescriptor.setParameters(parameters);
-
-                String dataSourceFactory = attributes.getValue("", "factory");
-                nodeDescriptor.setDataSourceFactoryType(dataSourceFactory);
-                nodeDescriptor.setSchemaUpdateStrategyType(attributes.getValue(
-                        "",
-                        "schema-update-strategy"));
-                nodeDescriptor.setDataChannelDescriptor(descriptor);
-
-                return new DataNodeChildrenHandler(parser, this, nodeDescriptor);
-            }
-
-            return super.createChildTagHandler(namespaceURI, localName, name, attributes);
-        }
-    }
-
-    final class DataNodeChildrenHandler extends SAXNestedTagHandler {
-
-        private DataNodeDescriptor nodeDescriptor;
-
-        DataNodeChildrenHandler(XMLReader parser, SAXNestedTagHandler parentHandler,
-                DataNodeDescriptor nodeDescriptor) {
-            super(parser, parentHandler);
-            this.nodeDescriptor = nodeDescriptor;
-        }
-
-        @Override
-        protected ContentHandler createChildTagHandler(
-                String namespaceURI,
-                String localName,
-                String name,
-                Attributes attributes) {
-
-            if (localName.equals(MAP_REF_TAG)) {
-
-                String mapName = attributes.getValue("", "name");
-                nodeDescriptor.getDataMapNames().add(mapName);
-            }
-            else if (localName.equals(DATA_SOURCE_TAG)) {
-
-                DataSourceInfo dataSourceDescriptor = new DataSourceInfo();
-                nodeDescriptor.setDataSourceDescriptor(dataSourceDescriptor);
-                return new DataSourceChildrenHandler(parser, this, dataSourceDescriptor);
-            }
-
-            return super.createChildTagHandler(namespaceURI, localName, name, attributes);
-        }
-    }
-
-    class DataSourceChildrenHandler extends SAXNestedTagHandler {
-
-        private DataSourceInfo dataSourceDescriptor;
-
-        DataSourceChildrenHandler(XMLReader parser,
-                DataNodeChildrenHandler parentHandler, DataSourceInfo dataSourceDescriptor) {
-            super(parser, parentHandler);
-            this.dataSourceDescriptor = dataSourceDescriptor;
-        }
-
-        @Override
-        protected ContentHandler createChildTagHandler(
-                String namespaceURI,
-                String localName,
-                String name,
-                Attributes attributes) {
-
-            if (localName.equals("driver")) {
-                String className = attributes.getValue("", "value");
-                dataSourceDescriptor.setJdbcDriver(className);
-            }
-            else if (localName.equals("login")) {
-
-                logger.info("loading user name and password.");
-
-                String encoderClass = attributes.getValue("encoderClass");
-
-                String encoderKey = attributes.getValue("encoderKey");
-                if (encoderKey == null) {
-                    encoderKey = attributes.getValue("encoderSalt");
-                }
-
-                String password = attributes.getValue("password");
-                String passwordLocation = attributes.getValue("passwordLocation");
-                String passwordSource = attributes.getValue("passwordSource");
-                if (passwordSource == null) {
-                    passwordSource = DataSourceInfo.PASSWORD_LOCATION_MODEL;
-                }
-
-                String username = attributes.getValue("userName");
-
-                dataSourceDescriptor.setPasswordEncoderClass(encoderClass);
-                dataSourceDescriptor.setPasswordEncoderKey(encoderKey);
-                dataSourceDescriptor.setPasswordLocation(passwordLocation);
-                dataSourceDescriptor.setPasswordSource(passwordSource);
-                dataSourceDescriptor.setUserName(username);
-
-                // Replace {} in passwordSource with encoderSalt -- useful for EXECUTABLE
-                // & URL options
-                if (encoderKey != null) {
-                    passwordSource = passwordSource.replaceAll("\\{\\}", encoderKey);
-                }
-
-                String encoderType = dataSourceDescriptor.getPasswordEncoderClass();
-                PasswordEncoding passwordEncoder = null;
-                if (encoderType != null) {
-                    passwordEncoder = objectFactory.newInstance(PasswordEncoding.class, encoderType);
-                }
-
-                if (passwordLocation != null) {
-                    if (passwordLocation
-                            .equals(DataSourceInfo.PASSWORD_LOCATION_CLASSPATH)) {
-
-                        ClassLoader classLoader = Thread
-                                .currentThread()
-                                .getContextClassLoader();
-                        URL url = classLoader.getResource(username);
-                        if (url != null) {
-                            password = passwordFromURL(url);
-                        }
-                        else {
-                            logger.error("Could not find resource in CLASSPATH: "
-                                    + passwordSource);
-                        }
-                    }
-                    else if (passwordLocation
-                            .equals(DataSourceInfo.PASSWORD_LOCATION_URL)) {
-                        try {
-                            password = passwordFromURL(new URL(passwordSource));
-                        }
-                        catch (MalformedURLException exception) {
-                            logger.warn(exception);
-                        }
-                    }
-                    else if (passwordLocation
-                            .equals(DataSourceInfo.PASSWORD_LOCATION_EXECUTABLE)) {
-                        if (passwordSource != null) {
-                            try {
-                                Process process = Runtime.getRuntime().exec(
-                                        passwordSource);
-                                password = passwordFromInputStream(process
-                                        .getInputStream());
-                                process.waitFor();
-                            }
-                            catch (IOException exception) {
-                                logger.warn(exception);
-                            }
-                            catch (InterruptedException exception) {
-                                logger.warn(exception);
-                            }
-                        }
-                    }
-                }
-
-                if (password != null && passwordEncoder != null) {
-                    dataSourceDescriptor.setPassword(passwordEncoder.decodePassword(
-                            password,
-                            encoderKey));
-                }
-            }
-            else if (localName.equals("url")) {
-                dataSourceDescriptor.setDataSourceUrl(attributes.getValue("value"));
-            }
-            else if (localName.equals("connectionPool")) {
-                String min = attributes.getValue("min");
-                if (min != null) {
-                    try {
-                        dataSourceDescriptor.setMinConnections(Integer.parseInt(min));
-                    }
-                    catch (NumberFormatException nfex) {
-                        logger.info("Non-numeric 'min' attribute", nfex);
-                        throw new ConfigurationException(
-                                "Non-numeric 'min' attribute '%s'",
-                                nfex,
-                                min);
-                    }
-                }
-
-                String max = attributes.getValue("max");
-                if (max != null) {
-                    try {
-                        dataSourceDescriptor.setMaxConnections(Integer.parseInt(max));
-                    }
-                    catch (NumberFormatException nfex) {
-                        logger.info("Non-numeric 'max' attribute", nfex);
-                        throw new ConfigurationException(
-                                "Non-numeric 'max' attribute '%s'",
-                                nfex,
-                                max);
-                    }
-                }
-            }
-
-            return super.createChildTagHandler(namespaceURI, localName, name, attributes);
-        }
-    }
+	private static Log logger = LogFactory.getLog(XMLDataChannelDescriptorLoader.class);
+
+	static final String DOMAIN_TAG = "domain";
+	static final String MAP_TAG = "map";
+	static final String NODE_TAG = "node";
+	static final String PROPERTY_TAG = "property";
+	static final String MAP_REF_TAG = "map-ref";
+	static final String DATA_SOURCE_TAG = "data-source";
+
+	/**
+	 * @deprecated the caller should use password resolving strategy instead of
+	 *             resolving the password on the spot. For one thing this can be
+	 *             used in the Modeler and no password may be available.
+	 */
+	@Deprecated
+	private static String passwordFromURL(URL url) {
+		InputStream inputStream = null;
+		String password = null;
+
+		try {
+			inputStream = url.openStream();
+			password = passwordFromInputStream(inputStream);
+		} catch (IOException exception) {
+			// Log the error while trying to open the stream. A null
+			// password will be returned as a result.
+			logger.warn(exception);
+		}
+
+		return password;
+	}
+
+	/**
+	 * @deprecated the caller should use password resolving strategy instead of
+	 *             resolving the password on the spot. For one thing this can be
+	 *             used in the Modeler and no password may be available.
+	 */
+	@Deprecated
+	private static String passwordFromInputStream(InputStream inputStream) {
+		BufferedReader bufferedReader = null;
+		String password = null;
+
+		try {
+			bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+			password = bufferedReader.readLine();
+		} catch (IOException exception) {
+			logger.warn(exception);
+		} finally {
+			try {
+				if (bufferedReader != null) {
+					bufferedReader.close();
+				}
+			} catch (Exception exception) {
+			}
+
+			try {
+				inputStream.close();
+			} catch (IOException exception) {
+			}
+		}
+
+		return password;
+	}
+
+	@Inject
+	protected DataMapLoader dataMapLoader;
+
+	@Inject
+	protected ConfigurationNameMapper nameMapper;
+
+	@Inject
+	protected AdhocObjectFactory objectFactory;
+
+	@Override
+	public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource) throws ConfigurationException {
+
+		if (configurationResource == null) {
+			throw new NullPointerException("Null configurationResource");
+		}
+
+		URL configurationURL = configurationResource.getURL();
+
+		logger.info("Loading XML configuration resource from " + configurationURL);
+
+		DataChannelDescriptor descriptor = new DataChannelDescriptor();
+		descriptor.setConfigurationSource(configurationResource);
+		descriptor.setName(nameMapper.configurationNodeName(DataChannelDescriptor.class, configurationResource));
+
+		DataChannelHandler rootHandler;
+
+		InputStream in = null;
+
+		try {
+			in = configurationURL.openStream();
+			XMLReader parser = Util.createXmlReader();
+
+			rootHandler = new DataChannelHandler(descriptor, parser);
+			parser.setContentHandler(rootHandler);
+			parser.setErrorHandler(rootHandler);
+			parser.parse(new InputSource(in));
+		} catch (Exception e) {
+			throw new ConfigurationException("Error loading configuration from %s", e, configurationURL);
+		} finally {
+			try {
+				if (in != null) {
+					in.close();
+				}
+			} catch (IOException ioex) {
+				logger.info("failure closing input stream for " + configurationURL + ", ignoring", ioex);
+			}
+		}
+
+		// TODO: andrus 03/10/2010 - actually provide load failures here...
+		return new ConfigurationTree<DataChannelDescriptor>(descriptor, null);
+	}
+
+	final class DataChannelHandler extends SAXNestedTagHandler {
+
+		private DataChannelDescriptor descriptor;
+
+		DataChannelHandler(DataChannelDescriptor dataChannelDescriptor, XMLReader parser) {
+			super(parser, null);
+			this.descriptor = dataChannelDescriptor;
+		}
+
+		@Override
+		protected ContentHandler createChildTagHandler(String namespaceURI, String localName, String name,
+				Attributes attributes) {
+
+			if (localName.equals(DOMAIN_TAG)) {
+				return new DataChannelChildrenHandler(parser, this);
+			}
+
+			logger.info(unexpectedTagMessage(localName, DOMAIN_TAG));
+			return super.createChildTagHandler(namespaceURI, localName, name, attributes);
+		}
+	}
+
+	final class DataChannelChildrenHandler extends SAXNestedTagHandler {
+
+		private DataChannelDescriptor descriptor;
+
+		DataChannelChildrenHandler(XMLReader parser, DataChannelHandler parentHandler) {
+			super(parser, parentHandler);
+			this.descriptor = parentHandler.descriptor;
+		}
+
+		@Override
+		protected ContentHandler createChildTagHandler(String namespaceURI, String localName, String name,
+				Attributes attributes) {
+
+			if (localName.equals(PROPERTY_TAG)) {
+
+				String key = attributes.getValue("", "name");
+				String value = attributes.getValue("", "value");
+				if (key != null && value != null) {
+					descriptor.getProperties().put(key, value);
+				}
+			} else if (localName.equals(MAP_TAG)) {
+
+				String dataMapName = attributes.getValue("", "name");
+				Resource baseResource = descriptor.getConfigurationSource();
+
+				String dataMapLocation = nameMapper.configurationLocation(DataMap.class, dataMapName);
+
+				Resource dataMapResource = baseResource.getRelativeResource(dataMapLocation);
+
+				logger.info("Loading XML DataMap resource from " + dataMapResource.getURL());
+
+				DataMap dataMap = dataMapLoader.load(dataMapResource);
+				dataMap.setName(dataMapName);
+				dataMap.setLocation(dataMapLocation);
+				dataMap.setConfigurationSource(dataMapResource);
+				dataMap.setDataChannelDescriptor(descriptor);
+
+				descriptor.getDataMaps().add(dataMap);
+			} else if (localName.equals(NODE_TAG)) {
+
+				String nodeName = attributes.getValue("", "name");
+				if (nodeName == null) {
+					throw new ConfigurationException("Error: <node> without 'name'.");
+				}
+
+				DataNodeDescriptor nodeDescriptor = new DataNodeDescriptor();
+				nodeDescriptor.setConfigurationSource(descriptor.getConfigurationSource());
+				descriptor.getNodeDescriptors().add(nodeDescriptor);
+
+				nodeDescriptor.setName(nodeName);
+				nodeDescriptor.setAdapterType(attributes.getValue("", "adapter"));
+
+				String parameters = attributes.getValue("", "parameters");
+				nodeDescriptor.setParameters(parameters);
+
+				String dataSourceFactory = attributes.getValue("", "factory");
+				nodeDescriptor.setDataSourceFactoryType(dataSourceFactory);
+				nodeDescriptor.setSchemaUpdateStrategyType(attributes.getValue("", "schema-update-strategy"));
+				nodeDescriptor.setDataChannelDescriptor(descriptor);
+
+				return new DataNodeChildrenHandler(parser, this, nodeDescriptor);
+			}
+
+			return super.createChildTagHandler(namespaceURI, localName, name, attributes);
+		}
+	}
+
+	final class DataNodeChildrenHandler extends SAXNestedTagHandler {
+
+		private DataNodeDescriptor nodeDescriptor;
+
+		DataNodeChildrenHandler(XMLReader parser, SAXNestedTagHandler parentHandler, DataNodeDescriptor nodeDescriptor) {
+			super(parser, parentHandler);
+			this.nodeDescriptor = nodeDescriptor;
+		}
+
+		@Override
+		protected ContentHandler createChildTagHandler(String namespaceURI, String localName, String name,
+				Attributes attributes) {
+
+			if (localName.equals(MAP_REF_TAG)) {
+
+				String mapName = attributes.getValue("", "name");
+				nodeDescriptor.getDataMapNames().add(mapName);
+			} else if (localName.equals(DATA_SOURCE_TAG)) {
+
+				DataSourceInfo dataSourceDescriptor = new DataSourceInfo();
+				nodeDescriptor.setDataSourceDescriptor(dataSourceDescriptor);
+				return new DataSourceChildrenHandler(parser, this, dataSourceDescriptor);
+			}
+
+			return super.createChildTagHandler(namespaceURI, localName, name, attributes);
+		}
+	}
+
+	class DataSourceChildrenHandler extends SAXNestedTagHandler {
+
+		private DataSourceInfo dataSourceDescriptor;
+
+		DataSourceChildrenHandler(XMLReader parser, DataNodeChildrenHandler parentHandler,
+				DataSourceInfo dataSourceDescriptor) {
+			super(parser, parentHandler);
+			this.dataSourceDescriptor = dataSourceDescriptor;
+		}
+
+		@Override
+		protected ContentHandler createChildTagHandler(String namespaceURI, String localName, String name,
+				Attributes attributes) {
+
+			if (localName.equals("driver")) {
+				String className = attributes.getValue("", "value");
+				dataSourceDescriptor.setJdbcDriver(className);
+			} else if (localName.equals("login")) {
+
+				logger.info("loading user name and password.");
+
+				String encoderClass = attributes.getValue("encoderClass");
+
+				String encoderKey = attributes.getValue("encoderKey");
+				if (encoderKey == null) {
+					encoderKey = attributes.getValue("encoderSalt");
+				}
+
+				String password = attributes.getValue("password");
+				String passwordLocation = attributes.getValue("passwordLocation");
+				String passwordSource = attributes.getValue("passwordSource");
+				if (passwordSource == null) {
+					passwordSource = DataSourceInfo.PASSWORD_LOCATION_MODEL;
+				}
+
+				String username = attributes.getValue("userName");
+
+				dataSourceDescriptor.setPasswordEncoderClass(encoderClass);
+				dataSourceDescriptor.setPasswordEncoderKey(encoderKey);
+				dataSourceDescriptor.setPasswordLocation(passwordLocation);
+				dataSourceDescriptor.setPasswordSource(passwordSource);
+				dataSourceDescriptor.setUserName(username);
+
+				// Replace {} in passwordSource with encoderSalt -- useful for
+				// EXECUTABLE
+				// & URL options
+				if (encoderKey != null) {
+					passwordSource = passwordSource.replaceAll("\\{\\}", encoderKey);
+				}
+
+				String encoderType = dataSourceDescriptor.getPasswordEncoderClass();
+				PasswordEncoding passwordEncoder = null;
+				if (encoderType != null) {
+					passwordEncoder = objectFactory.newInstance(PasswordEncoding.class, encoderType);
+				}
+
+				if (passwordLocation != null) {
+					if (passwordLocation.equals(DataSourceInfo.PASSWORD_LOCATION_CLASSPATH)) {
+
+						ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+						URL url = classLoader.getResource(username);
+						if (url != null) {
+							password = passwordFromURL(url);
+						} else {
+							logger.error("Could not find resource in CLASSPATH: " + passwordSource);
+						}
+					} else if (passwordLocation.equals(DataSourceInfo.PASSWORD_LOCATION_URL)) {
+						try {
+							password = passwordFromURL(new URL(passwordSource));
+						} catch (MalformedURLException exception) {
+							logger.warn(exception);
+						}
+					} else if (passwordLocation.equals(DataSourceInfo.PASSWORD_LOCATION_EXECUTABLE)) {
+						if (passwordSource != null) {
+							try {
+								Process process = Runtime.getRuntime().exec(passwordSource);
+								password = passwordFromInputStream(process.getInputStream());
+								process.waitFor();
+							} catch (IOException exception) {
+								logger.warn(exception);
+							} catch (InterruptedException exception) {
+								logger.warn(exception);
+							}
+						}
+					}
+				}
+
+				if (password != null && passwordEncoder != null) {
+					dataSourceDescriptor.setPassword(passwordEncoder.decodePassword(password, encoderKey));
+				}
+			} else if (localName.equals("url")) {
+				dataSourceDescriptor.setDataSourceUrl(attributes.getValue("value"));
+			} else if (localName.equals("connectionPool")) {
+				String min = attributes.getValue("min");
+				if (min != null) {
+					try {
+						dataSourceDescriptor.setMinConnections(Integer.parseInt(min));
+					} catch (NumberFormatException nfex) {
+						logger.info("Non-numeric 'min' attribute", nfex);
+						throw new ConfigurationException("Non-numeric 'min' attribute '%s'", nfex, min);
+					}
+				}
+
+				String max = attributes.getValue("max");
+				if (max != null) {
+					try {
+						dataSourceDescriptor.setMaxConnections(Integer.parseInt(max));
+					} catch (NumberFormatException nfex) {
+						logger.info("Non-numeric 'max' attribute", nfex);
+						throw new ConfigurationException("Non-numeric 'max' attribute '%s'", nfex, max);
+					}
+				}
+			}
+
+			return super.createChildTagHandler(namespaceURI, localName, name, attributes);
+		}
+	}
 }


[02/39] cayenne git commit: Implement DBCleaner

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapterIT.java
index d7c3ccb..505ea98 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapterIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -32,7 +33,7 @@ import java.sql.Types;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class HSQLDBAdapterIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/mysql/MySQLAdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/mysql/MySQLAdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/mysql/MySQLAdapterIT.java
index 754667d..fc0d517 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/mysql/MySQLAdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/mysql/MySQLAdapterIT.java
@@ -23,13 +23,14 @@ import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class MySQLAdapterIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/Oracle8AdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/Oracle8AdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/Oracle8AdapterIT.java
index 808c8a2..c8b3ab2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/Oracle8AdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/Oracle8AdapterIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.dba.oracle;
 
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -32,7 +33,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class Oracle8AdapterIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterIT.java
index 73425bf..166e80d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OracleAdapterIT.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.query.InsertBatchQuery;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,7 +36,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.LOB_PROJECT)
+@UseServerRuntime(CayenneProjects.LOB_PROJECT)
 public class OracleAdapterIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
index d8494af..7bab993 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
@@ -24,13 +24,15 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.log.JdbcEventLogger;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbKeyGenerator;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class OraclePkGeneratorIT extends ServerCase {
     
     @Inject
@@ -41,8 +43,8 @@ public class OraclePkGeneratorIT extends ServerCase {
 
     private OraclePkGenerator pkGenerator;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         OracleAdapter adapter = objectFactory.newInstance(OracleAdapter.class, OracleAdapter.class.getName());
         pkGenerator = new OraclePkGenerator(adapter);
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/postgres/PostgresAdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/postgres/PostgresAdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/postgres/PostgresAdapterIT.java
index a5ea63d..914ddb6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/postgres/PostgresAdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/postgres/PostgresAdapterIT.java
@@ -22,6 +22,7 @@ import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -31,7 +32,7 @@ import java.sql.Types;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class PostgresAdapterIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapterIT.java
index 41a6ab9..08ec900 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapterIT.java
@@ -22,6 +22,7 @@ import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -31,7 +32,7 @@ import java.sql.Types;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SQLServerAdapterIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
index ffb848a..78b1c31 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.unit.SQLServerUnitDbAdapter;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -35,7 +36,7 @@ import java.sql.SQLException;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SQLServerSnifferIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/ejbql/EJBQLCompiledExpressionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/ejbql/EJBQLCompiledExpressionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/ejbql/EJBQLCompiledExpressionIT.java
index 6cf63ec..1c85c60 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/ejbql/EJBQLCompiledExpressionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/ejbql/EJBQLCompiledExpressionIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.ejbql;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.EntityResolver;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -29,7 +30,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class EJBQLCompiledExpressionIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java
index 85fd501..fa39d6d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionFactory_InContextIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.exp.parser.ASTLikeIgnoreCase;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -39,7 +40,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ExpressionFactory_InContextIT extends ServerCase {
 
 	@Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java
index 13cf36f..fc7e0bf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/Expression_InContextIT.java
@@ -24,9 +24,9 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -41,29 +41,15 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class Expression_InContextIT extends ServerCase {
 
 	@Inject
-	private DBHelper dbHelper;
-
-	@Inject
 	private ObjectContext context;
 
 	@Inject
 	private ServerRuntime runtime;
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
-		dbHelper.deleteAll("PAINTING_INFO");
-		dbHelper.deleteAll("PAINTING");
-		dbHelper.deleteAll("ARTIST_EXHIBIT");
-		dbHelper.deleteAll("ARTIST_GROUP");
-		dbHelper.deleteAll("ARTIST");
-		dbHelper.deleteAll("EXHIBIT");
-		dbHelper.deleteAll("GALLERY");
-	}
-
     @Test
 	public void testMatch() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
index ff1a88f..59dfacd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
@@ -26,8 +26,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -36,7 +38,7 @@ import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ParsedExpQualifierCompatIT extends ServerCase {
 
     @Inject
@@ -48,14 +50,8 @@ public class ParsedExpQualifierCompatIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
index 8360807..a1e1f1e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
@@ -32,9 +32,11 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.unit.util.TstBean;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.math.BigDecimal;
@@ -44,7 +46,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ExpressionEvaluateInMemoryIT extends ServerCase {
 
     @Inject
@@ -59,15 +61,8 @@ public class ExpressionEvaluateInMemoryIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java
index 5c4025f..c78dfce 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/ClientEntityResolverIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.mt.ClientMtTable1;
 import org.apache.cayenne.testdo.mt.MtTable1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,7 +36,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class ClientEntityResolverIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/DbEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/DbEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/DbEntityIT.java
index 7c4cedc..ab63608 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/DbEntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/DbEntityIT.java
@@ -22,6 +22,7 @@ package org.apache.cayenne.map;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.Util;
@@ -36,7 +37,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DbEntityIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
index 947d9b0..926f2bf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
@@ -21,8 +21,10 @@ package org.apache.cayenne.map;
 
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -33,7 +35,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DbRelationshipIT extends ServerCase {
 
     @Inject
@@ -43,8 +45,8 @@ public class DbRelationshipIT extends ServerCase {
     protected DbEntity paintingEnt;
     protected DbEntity galleryEnt;
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         artistEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("ARTIST");
         paintingEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("PAINTING");
         galleryEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("GALLERY");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/EntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityIT.java
index fbc6947..7d4f461 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.CayenneMapEntry;
@@ -40,7 +41,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class EntityIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverClassDescriptorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverClassDescriptorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverClassDescriptorIT.java
index 2a32c5e..bdb5fa4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverClassDescriptorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverClassDescriptorIT.java
@@ -28,6 +28,7 @@ import org.apache.cayenne.reflect.LazyClassDescriptorDecorator;
 import org.apache.cayenne.reflect.PropertyDescriptor;
 import org.apache.cayenne.testdo.mt.MtTable1;
 import org.apache.cayenne.testdo.mt.MtTable2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -40,7 +41,7 @@ import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-@UseServerRuntime(ServerCase.MULTI_TIER_PROJECT)
+@UseServerRuntime(CayenneProjects.MULTI_TIER_PROJECT)
 public class EntityResolverClassDescriptorIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverGenericStackIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverGenericStackIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverGenericStackIT.java
index 6764c1d..98cfffd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverGenericStackIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverGenericStackIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.map;
 import org.apache.cayenne.CayenneDataObject;
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -32,7 +33,7 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.GENERIC_PROJECT)
+@UseServerRuntime(CayenneProjects.GENERIC_PROJECT)
 public class EntityResolverGenericStackIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverIT.java
index bf7a64e..c81d88e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.MockQuery;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -41,7 +42,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class EntityResolverIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
index 5858164..770a57a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
@@ -20,6 +20,7 @@
 package org.apache.cayenne.map;
 
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -29,7 +30,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.PEOPLE_PROJECT)
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
 public class EntityResolverInheritanceIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/ObjEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/ObjEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/ObjEntityIT.java
index 14fe42f..d6ac1a1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/ObjEntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/ObjEntityIT.java
@@ -27,8 +27,8 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.exp.parser.ASTObjPath;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.Util;
@@ -46,7 +46,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ObjEntityIT extends ServerCase {
 
     @Inject
@@ -55,18 +55,6 @@ public class ObjEntityIT extends ServerCase {
     @Inject
     private ServerRuntime runtime;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testGetAttributeWithOverrides() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
index 354de81..77aba09 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
@@ -26,10 +26,12 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionException;
 import org.apache.cayenne.resource.URLResource;
 import org.apache.cayenne.testdo.inheritance_vertical.Iv2Sub1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.Util;
 import org.apache.cayenne.util.XMLEncoder;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.io.PrintWriter;
@@ -46,7 +48,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ObjRelationshipIT extends ServerCase {
 
     @Inject
@@ -58,8 +60,8 @@ public class ObjRelationshipIT extends ServerCase {
     private DbEntity paintingDbEntity;
     private DbEntity galleryDBEntity;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         EntityResolver resolver = runtime.getDataDomain().getEntityResolver();
 
         artistDBEntity = resolver.getDbEntity("ARTIST");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/AddColumnToModelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/AddColumnToModelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/AddColumnToModelIT.java
index 6e3296f..583fd3a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/AddColumnToModelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/AddColumnToModelIT.java
@@ -22,7 +22,7 @@ import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -34,7 +34,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class AddColumnToModelIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/CreateTableToModelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/CreateTableToModelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/CreateTableToModelIT.java
index 2067b46..7a5723a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/CreateTableToModelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/CreateTableToModelIT.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.merge;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -34,7 +34,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class CreateTableToModelIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/DropColumnToModelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/DropColumnToModelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/DropColumnToModelIT.java
index 9dd44e5..8fb2814 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/DropColumnToModelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/DropColumnToModelIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -39,7 +39,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DropColumnToModelIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelIT.java
index c160193..8799850 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/DropRelationshipToModelIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -38,7 +38,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DropRelationshipToModelIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/DropTableToModelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/DropTableToModelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/DropTableToModelIT.java
index bcfc34d..a0f4e3e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/DropTableToModelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/DropTableToModelIT.java
@@ -22,7 +22,7 @@ import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -34,7 +34,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DropTableToModelIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
index d8fac76..77affa8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
@@ -32,6 +32,7 @@ import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.junit.Before;
 
 import java.sql.Connection;
 import java.sql.Statement;
@@ -69,18 +70,9 @@ public abstract class MergeCase extends ServerCase {
     private static List<String> TABLE_NAMES = Arrays.asList("ARTIST",
             "PAINTING", "NEW_TABLE", "NEW_TABLE2");
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
-        dbHelper.deleteAll("ARTIST_GROUP");
+    @Before
+    public void testSetUp() throws Exception {
         dbHelper.update("ARTGROUP").set("PARENT_GROUP_ID", null, Types.INTEGER).execute();
-        dbHelper.deleteAll("ARTGROUP");
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
 
         // this map can't be safely modified in this test, as it is reset by DI
         // container

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/MergerFactoryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergerFactoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergerFactoryIT.java
index c0a3198..fb1a368 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergerFactoryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergerFactoryIT.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.map.DbJoin;
 import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class MergerFactoryIT extends MergeCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbIT.java
index 536f706..775be1f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/SetAllowNullToDbIT.java
@@ -20,7 +20,7 @@ package org.apache.cayenne.merge;
 
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -28,7 +28,7 @@ import java.sql.Types;
 
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SetAllowNullToDbIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/SetNotNullToDbIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/SetNotNullToDbIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/SetNotNullToDbIT.java
index ff6d0d6..e4a7707 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/SetNotNullToDbIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/SetNotNullToDbIT.java
@@ -18,11 +18,9 @@
  ****************************************************************/
 package org.apache.cayenne.merge;
 
-import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -30,22 +28,9 @@ import java.sql.Types;
 
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SetNotNullToDbIT extends MergeCase {
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        super.setUpAfterInjection();
-
-        // must cleanup the tables as changing NULL column to NOT NULL may require that no
-        // nullable data is stored in the column
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-    }
-
     @Test
     public void test() throws Exception {
         DbEntity dbEntity = map.getDbEntity("PAINTING");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbIT.java
index a4a4e25..927bb9f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/SetPrimaryKeyToDbIT.java
@@ -20,13 +20,13 @@ package org.apache.cayenne.merge;
 
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import java.sql.Types;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SetPrimaryKeyToDbIT extends MergeCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/merge/ValueForNullIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/ValueForNullIT.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/ValueForNullIT.java
index 3761035..d87d7c1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/ValueForNullIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/ValueForNullIT.java
@@ -31,7 +31,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
@@ -42,7 +42,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ValueForNullIT extends MergeCase {
 
     private static final String DEFAULT_VALUE_STRING = "DEFSTRING";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
index c4f010b..fcc78f5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
@@ -32,9 +32,11 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.XMLEncoder;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.io.PrintWriter;
@@ -49,7 +51,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class EJBQLQueryIT extends ServerCase {
 
     @Inject
@@ -67,11 +69,8 @@ public class EJBQLQueryIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
index 66f1f86..9dcbeef 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
@@ -24,15 +24,17 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.numeric_types.BigIntegerEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.NUMERIC_TYPES_PROJECT)
+@UseServerRuntime(CayenneProjects.NUMERIC_TYPES_PROJECT)
 public class EJBQLQueryNumericIT extends ServerCase {
 
     @Inject
@@ -43,10 +45,8 @@ public class EJBQLQueryNumericIT extends ServerCase {
 
     private TableHelper tBigIntegerEntity;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("BIGINTEGER_ENTITY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tBigIntegerEntity = new TableHelper(dbHelper, "BIGINTEGER_ENTITY");
         tBigIntegerEntity.setColumns("ID", "BIG_INTEGER_FIELD");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/ProcedureQueryCacheKeyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/ProcedureQueryCacheKeyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/ProcedureQueryCacheKeyIT.java
index bab22f8..eb9ec49 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/ProcedureQueryCacheKeyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/ProcedureQueryCacheKeyIT.java
@@ -22,6 +22,7 @@ import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -30,7 +31,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ProcedureQueryCacheKeyIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/QueryChainIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/QueryChainIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/QueryChainIT.java
index 1567aea..0e70559 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/QueryChainIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/QueryChainIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.query;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -29,7 +30,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class QueryChainIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
index 56d31b1..b16c846 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLSelectIT.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +35,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SQLSelectIT extends ServerCase {
 
 	@Inject
@@ -43,15 +44,6 @@ public class SQLSelectIT extends ServerCase {
 	@Inject
 	private DBHelper dbHelper;
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
-		dbHelper.deleteAll("PAINTING_INFO");
-		dbHelper.deleteAll("PAINTING");
-		dbHelper.deleteAll("ARTIST_EXHIBIT");
-		dbHelper.deleteAll("ARTIST_GROUP");
-		dbHelper.deleteAll("ARTIST");
-	}
-
 	protected void createArtistsDataSet() throws Exception {
 		TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
 		tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateCacheKeyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateCacheKeyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateCacheKeyIT.java
index 781d969..b87db01 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateCacheKeyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateCacheKeyIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.query;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -30,7 +31,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SQLTemplateCacheKeyIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
index d4696ac..5b2ed32 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.SQLException;
@@ -39,7 +41,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SQLTemplateIT extends ServerCase {
 
 	@Inject
@@ -50,14 +52,8 @@ public class SQLTemplateIT extends ServerCase {
 
 	private TableHelper tPainting;
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
-		dbHelper.deleteAll("PAINTING_INFO");
-		dbHelper.deleteAll("PAINTING");
-		dbHelper.deleteAll("ARTIST_EXHIBIT");
-		dbHelper.deleteAll("ARTIST_GROUP");
-		dbHelper.deleteAll("ARTIST");
-
+	@Before
+	public void testSetUp() throws Exception {
 		tPainting = new TableHelper(dbHelper, "PAINTING");
 		tPainting.setColumns("PAINTING_ID", "ARTIST_ID", "PAINTING_TITLE", "ESTIMATED_PRICE").setColumnTypes(
 				Types.INTEGER, Types.BIGINT, Types.VARCHAR, Types.DECIMAL);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
index f4e8ef8..0d27c83 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static java.util.Collections.singletonMap;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SelectByIdIT extends ServerCase {
 
 	@Inject
@@ -52,17 +54,8 @@ public class SelectByIdIT extends ServerCase {
 	@Inject
 	private ObjectContext context;
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
-		dbHelper.deleteAll("PAINTING_INFO");
-		dbHelper.deleteAll("PAINTING");
-		dbHelper.deleteAll("ARTIST_EXHIBIT");
-		dbHelper.deleteAll("ARTIST_GROUP");
-		dbHelper.deleteAll("ARTIST");
-		dbHelper.deleteAll("COMPOUND_FK_TEST");
-		dbHelper.deleteAll("COMPOUND_PK_TEST");
-		dbHelper.deleteAll("CHAR_PK_TEST");
-
+	@Before
+	public void testSetUp() throws Exception {
 		tArtist = new TableHelper(dbHelper, "ARTIST");
 		tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryCacheKeyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryCacheKeyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryCacheKeyIT.java
index 7917c54..60cdc16 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryCacheKeyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryCacheKeyIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -32,7 +33,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SelectQueryCacheKeyIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
index 6559db1..232378f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
@@ -28,6 +28,7 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.lob.ClobTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +37,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.LOB_PROJECT)
+@UseServerRuntime(CayenneProjects.LOB_PROJECT)
 public class SelectQueryClobIT extends ServerCase {
 
     @Inject
@@ -48,15 +49,6 @@ public class SelectQueryClobIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("CLOB_TEST_RELATION");
-
-        if (accessStackAdapter.supportsLobs()) {
-            dbHelper.deleteAll("CLOB_TEST");
-        }
-    }
-
     protected void createClobDataSet() throws Exception {
         TableHelper tClobTest = new TableHelper(dbHelper, "CLOB_TEST");
         tClobTest.setColumns("CLOB_TEST_ID", "CLOB_COL");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
index b701a42..56300c3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
@@ -24,15 +24,17 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SelectQueryFetchLimitOrderingIT extends ServerCase {
 
     @Inject
@@ -43,14 +45,8 @@ public class SelectQueryFetchLimitOrderingIT extends ServerCase {
 
     protected TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
index 02e1a8b..f8c9a1e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryIT.java
@@ -37,6 +37,7 @@ import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -52,7 +53,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SelectQueryIT extends ServerCase {
 
     @Inject
@@ -64,15 +65,6 @@ public class SelectQueryIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     protected void createArtistsDataSet() throws Exception {
         TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionIT.java
index e050928..f02efe3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +35,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SelectQueryPrefetchRouterActionIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
index 09a9c83..2222404 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.testdo.inheritance_people.Department;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,7 +35,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.PEOPLE_PROJECT)
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
 public class SelectQueryPrefetchRouterActionQualifiedEntityIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
index c4d59d9..2bb20c5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
@@ -34,6 +34,7 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMap1;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -42,7 +43,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.RETURN_TYPES_PROJECT)
+@UseServerRuntime(CayenneProjects.RETURN_TYPES_PROJECT)
 public class SelectQueryReturnTypesIT extends ServerCase {
 
     @Inject
@@ -54,11 +55,6 @@ public class SelectQueryReturnTypesIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("TYPES_MAPPING_TEST1");
-    }
-
     protected void createNumericsDataSet() throws Exception {
         TableHelper tNumerics = new TableHelper(dbHelper, "TYPES_MAPPING_TEST1");
         tNumerics.setColumns("AAAID", "INTEGER_COLUMN");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/query/StatementFetchSizeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/StatementFetchSizeIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/StatementFetchSizeIT.java
index 4961111..0002a7f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/StatementFetchSizeIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/StatementFetchSizeIT.java
@@ -22,13 +22,14 @@ import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class StatementFetchSizeIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistryIT.java
index 089b959..9e1b781 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistryIT.java
@@ -28,13 +28,14 @@ import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.annotations.Tag1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class LifecycleCallbackRegistryIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry_InheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry_InheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry_InheritanceIT.java
index b4f4792..cf1a0d6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry_InheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry_InheritanceIT.java
@@ -28,13 +28,14 @@ import org.apache.cayenne.testdo.inheritance_flat.Role;
 import org.apache.cayenne.testdo.inheritance_flat.User;
 import org.apache.cayenne.testdo.inheritance_flat.UserProperties;
 import org.apache.cayenne.testdo.testmap.annotations.Tag2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.INHERITANCE_SINGLE_TABLE1_PROJECT)
+@UseServerRuntime(CayenneProjects.INHERITANCE_SINGLE_TABLE1_PROJECT)
 public class LifecycleCallbackRegistry_InheritanceIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
index 31a53f0..e580f88 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy;
 import org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -37,7 +39,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests conflicts between field and map-based persistence.
  */
-@UseServerRuntime(ServerCase.MIXED_PERSISTENCE_STRATEGY_PROJECT)
+@UseServerRuntime(CayenneProjects.MIXED_PERSISTENCE_STRATEGY_PROJECT)
 public class MixedPersistenceStrategyIT extends ServerCase {
 
     @Inject
@@ -49,11 +51,8 @@ public class MixedPersistenceStrategyIT extends ServerCase {
     protected TableHelper tMixedPersistenceStrategy;
     protected TableHelper tMixedPersistenceStrategy2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY2");
-        dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tMixedPersistenceStrategy = new TableHelper(
                 dbHelper,
                 "MIXED_PERSISTENCE_STRATEGY");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactoryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactoryIT.java
index 97b3ec6..97e15b5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactoryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactoryIT.java
@@ -29,6 +29,7 @@ import org.apache.cayenne.reflect.PropertyVisitor;
 import org.apache.cayenne.reflect.SingletonFaultFactory;
 import org.apache.cayenne.reflect.ToManyProperty;
 import org.apache.cayenne.reflect.ToOneProperty;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +37,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataObjectDescriptorFactoryIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactory_InheritanceMapsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactory_InheritanceMapsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactory_InheritanceMapsIT.java
index f30511f..caca93f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactory_InheritanceMapsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/generic/DataObjectDescriptorFactory_InheritanceMapsIT.java
@@ -28,11 +28,12 @@ import org.apache.cayenne.reflect.PropertyVisitor;
 import org.apache.cayenne.reflect.SingletonFaultFactory;
 import org.apache.cayenne.reflect.ToManyProperty;
 import org.apache.cayenne.reflect.ToOneProperty;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
-@UseServerRuntime(ServerCase.INHERITANCE_SINGLE_TABLE1_PROJECT)
+@UseServerRuntime(CayenneProjects.INHERITANCE_SINGLE_TABLE1_PROJECT)
 public class DataObjectDescriptorFactory_InheritanceMapsIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/tx/DefaultTransactionManagerIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/tx/DefaultTransactionManagerIT.java b/cayenne-server/src/test/java/org/apache/cayenne/tx/DefaultTransactionManagerIT.java
index 56d6f40..3da3af4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/tx/DefaultTransactionManagerIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/tx/DefaultTransactionManagerIT.java
@@ -19,6 +19,7 @@
 package org.apache.cayenne.tx;
 
 import org.apache.cayenne.log.JdbcEventLogger;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -28,7 +29,7 @@ import static org.junit.Assert.assertSame;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DefaultTransactionManagerIT extends ServerCase {
 
     @Test


[36/39] cayenne git commit: CAY-1973 | error while generating classes

Posted by aa...@apache.org.
CAY-1973 | error while generating classes


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/14b5e145
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/14b5e145
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/14b5e145

Branch: refs/heads/CAY-1946_1
Commit: 14b5e145cdaeea9aeddc06597bba155fc82ed354
Parents: 09c924c
Author: Savva Kolbachev <s....@gmail.com>
Authored: Wed Nov 26 13:27:30 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Wed Nov 26 13:27:30 2014 +0300

----------------------------------------------------------------------
 .../cayenne/modeler/pref/DataMapDefaults.java   | 23 ++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/14b5e145/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
index ccbb399..77ad146 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DataMapDefaults.java
@@ -18,12 +18,12 @@
  ****************************************************************/
 package org.apache.cayenne.modeler.pref;
 
-import java.util.prefs.Preferences;
-
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.pref.RenamedPreferences;
 import org.apache.cayenne.util.Util;
 
+import java.util.prefs.Preferences;
+
 public class DataMapDefaults extends RenamedPreferences {
 
     private boolean generatePairs;
@@ -47,7 +47,7 @@ public class DataMapDefaults extends RenamedPreferences {
     }
 
     /**
-     * Returns a superlcass package tailored for a given DataMap.
+     * Returns a superclass package tailored for a given DataMap.
      */
     public void updateSuperclassPackage(DataMap dataMap, boolean isClient) {
 
@@ -74,7 +74,7 @@ public class DataMapDefaults extends RenamedPreferences {
         }
 
         if (DEFAULT_SUPERCLASS_PACKAGE_SUFFIX.equals(getSuperclassPackage())) {
-            setSuperclassPackage(null);
+            setSuperclassPackage("");
         }
     }
 
@@ -135,6 +135,9 @@ public class DataMapDefaults extends RenamedPreferences {
     public void setOutputPath(String outputPath) {
         if (getCurrentPreference() != null) {
             this.outputPath = outputPath;
+            if(outputPath == null) {
+                outputPath = "";
+            }
             getCurrentPreference().put(OUTPUT_PATH_PROPERTY, outputPath);
         }
     }
@@ -151,6 +154,9 @@ public class DataMapDefaults extends RenamedPreferences {
     public void setSubclassTemplate(String subclassTemplate) {
         if (getCurrentPreference() != null) {
             this.subclassTemplate = subclassTemplate;
+            if(subclassTemplate == null) {
+                subclassTemplate = "";
+            }
             getCurrentPreference().put(SUBCLASS_TEMPLATE_PROPERTY, subclassTemplate);
         }
     }
@@ -167,6 +173,9 @@ public class DataMapDefaults extends RenamedPreferences {
     public void setSuperclassPackage(String superclassPackage) {
         if (getCurrentPreference() != null) {
             this.superclassPackage = superclassPackage;
+            if(superclassPackage == null) {
+                superclassPackage = "";
+            }
             getCurrentPreference().put(SUPERCLASS_PACKAGE_PROPERTY, superclassPackage);
         }
     }
@@ -183,6 +192,9 @@ public class DataMapDefaults extends RenamedPreferences {
     public void setSuperclassTemplate(String superclassTemplate) {
         if (getCurrentPreference() != null) {
             this.superclassTemplate = superclassTemplate;
+            if(superclassTemplate == null) {
+                superclassTemplate = "";
+            }
             getCurrentPreference().put(SUPERCLASS_TEMPLATE_PROPERTY, superclassTemplate);
         }
     }
@@ -196,6 +208,9 @@ public class DataMapDefaults extends RenamedPreferences {
 
     public void setProperty(String property, String value) {
         if (getCurrentPreference() != null) {
+            if(value == null) {
+                value = "";
+            }
             getCurrentPreference().put(property, value);
         }
     }


[09/39] cayenne git commit: [CAY-1969] Malformed EJBQL Yields NPE

Posted by aa...@apache.org.
[CAY-1969] Malformed EJBQL Yields NPE


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/583df135
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/583df135
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/583df135

Branch: refs/heads/CAY-1946_1
Commit: 583df135b3ee0c3a758a586678252979852ae3f3
Parents: 4207ebe
Author: Andrew Lindesay <ap...@lindesay.co.nz>
Authored: Wed Nov 19 07:27:29 2014 +1300
Committer: Andrew Lindesay <ap...@lindesay.co.nz>
Committed: Wed Nov 19 07:27:29 2014 +1300

----------------------------------------------------------------------
 .../apache/cayenne/ejbql/parser/Compiler.java   |  3 +++
 .../org/apache/cayenne/query/EJBQLQueryIT.java  | 25 ++++++++++++++++++++
 2 files changed, 28 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/583df135/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java b/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
index e4829e7..b90acf6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ejbql/parser/Compiler.java
@@ -308,6 +308,9 @@ class Compiler {
         if (descriptor == null) {
             descriptor = descriptorsById.get(expression.getText());
         }
+        if(descriptor == null) {
+            throw new EJBQLException("the entity variable '" + id +"' does not refer to any entity in the FROM clause");
+        }
         final EntityResult entityResult = new EntityResult(descriptor.getObjectClass());
         final String prefix = "ec" + position + "_";
         final int[] index = {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/583df135/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
index fcc78f5..5ed52a6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.ejbql.EJBQLCompiledExpression;
+import org.apache.cayenne.ejbql.EJBQLException;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.map.EntityResolver;
@@ -50,6 +51,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class EJBQLQueryIT extends ServerCase {
@@ -190,6 +192,29 @@ public class EJBQLQueryIT extends ServerCase {
         assertEquals(ejbql, parsed.getSource());
     }
 
+    /**
+     * <p>If an expression has an 'entity variable' used in the SELECT clause then there should be a
+     * corresponding definition for the 'entity variable' in the FROM clause.  This did, at some
+     * point throw an NPE.</p>
+     */
+
+    @Test
+    public void testMissingEntityBeanVariable() {
+       String ejbql = "SELECT b FROM Artist a";
+        EJBQLQuery query = new EJBQLQuery(ejbql);
+
+        try {
+            context.performQuery(query);
+            fail("expected an instance of " + EJBQLException.class.getSimpleName() + " to have been thrown.");
+        }
+        catch(EJBQLException e) {
+            assertEquals("the entity variable 'b' does not refer to any entity in the FROM clause", e.getUnlabeledMessage());
+        }
+        catch(Throwable th) {
+            fail("expected an instance of " + EJBQLException.class.getSimpleName() + " to have been thrown.");
+        }
+    }
+
     @Test
     public void testGetName() {
         String ejbql = "select a FROM Artist a";


[35/39] cayenne git commit: fix javadoc doclint param

Posted by aa...@apache.org.
fix javadoc doclint param


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/09c924cf
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/09c924cf
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/09c924cf

Branch: refs/heads/CAY-1946_1
Commit: 09c924cff91e0cef1ddeff6085a12e100e896d45
Parents: 3c166f9
Author: Savva Kolbachev <s....@gmail.com>
Authored: Tue Nov 25 12:20:03 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Tue Nov 25 12:20:03 2014 +0300

----------------------------------------------------------------------
 pom.xml | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/09c924cf/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5ff6b3a..f543fc2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -793,8 +793,8 @@
 					<version>2.9.1</version>
 					<configuration>
 						<!-- Java 8 is too strict about Javadoc omissions --> 
-       					<additionalparam>-Xdoclint:none</additionalparam>
-      				</configuration>
+						<additionalparam>${javadoc.doclint.none}</additionalparam>
+					</configuration>
 				</plugin>
 				<plugin>
 					<groupId>org.codehaus.mojo</groupId>
@@ -1367,6 +1367,15 @@
 				</dependency>
 			</dependencies>
 		</profile>
+		<profile>
+			<id>java8-disable-strict-javadoc</id>
+			<activation>
+				<jdk>[1.8,)</jdk>
+			</activation>
+			<properties>
+				<javadoc.doclint.none>-Xdoclint:none</javadoc.doclint.none>
+			</properties>
+		</profile>
 	</profiles>
 
     <reporting>


[29/39] cayenne git commit: fixing tests

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
index 357b7f4..103f8c5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
@@ -49,7 +49,7 @@ public class DataContextRelationshipQueryIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         tPainting = new TableHelper(dbHelper, "PAINTING");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
index 76adc85..4ff8002 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
@@ -53,7 +53,7 @@ public class DataContextSQLTemplateCompoundIT extends ServerCase {
     protected TableHelper tCompoundFkTest;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tCompoundPkTest = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPkTest.setColumns("KEY1", "KEY2");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
index b7748b2..dd7f582 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
@@ -69,7 +69,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
index 1c2a489..46f7a80 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
@@ -47,7 +47,7 @@ public class DataContextSelectQuerySplitAliasesIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
index d7e27fe..5ac9f0c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
@@ -67,7 +67,7 @@ public class DataContextSerializationIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         CayenneRuntime.bindThreadInjector(runtime.getInjector());
 
         tArtist = new TableHelper(dbHelper, "ARTIST");
@@ -79,7 +79,7 @@ public class DataContextSerializationIT extends ServerCase {
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         CayenneRuntime.bindThreadInjector(null);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
index 3c3f2f1..91c1ed1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
@@ -60,7 +60,7 @@ public class DataContextSharedCacheEmpiricIT extends ServerCase {
     private DataContext c2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         DataRowStore cache = new DataRowStore(
                 "cacheTest",
                 Collections.EMPTY_MAP,

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
index 271611a..03fd0c0 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
@@ -70,7 +70,7 @@ public class DataContextSharedCacheIT extends ServerCase {
     private Artist artist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         // prepare a single artist record
         artist = (Artist) context.newObject("Artist");
         artist.setArtistName("version1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
index 55016e7..cd1e103 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
@@ -49,7 +49,7 @@ public class DataDomainQueryActionIT extends ServerCase {
     private ServerRuntime runtime;
 
     @After
-    public void testTearDown() {
+    public void tearDown() {
         runtime.getDataDomain().resetProperties();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
index 02f4ff6..67f6f43 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
@@ -57,7 +57,7 @@ public class DataNodeQueriesIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
index 3632acc..c27f1a0 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
@@ -56,7 +56,7 @@ public class DataRowUtilsIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
index e7fac36..d5bf4bd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
@@ -51,7 +51,7 @@ public class DbGeneratorIT extends ServerCase {
     private DbGenerator generator;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         generator = new DbGenerator(adapter, runtime
                 .getDataDomain()
                 .getDataMap("testmap"), logger);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
index 3294b19..8ef7ef9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
@@ -66,12 +66,12 @@ public class DbLoaderIT extends ServerCase {
     private DbLoader loader;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         loader = new DbLoader(dataSourceFactory.getSharedDataSource().getConnection(), adapter, null);
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         loader.getConnection().close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
index 343f80c..9a3aba7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
@@ -49,7 +49,7 @@ public class DbLoaderPartialIT extends ServerCase {
     private DbLoader loader;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         loader = new DbLoader(
                 dataSourceFactory.getSharedDataSource().getConnection(),
                 adapter,
@@ -63,7 +63,7 @@ public class DbLoaderPartialIT extends ServerCase {
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         loader.getConnection().close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
index fa33e47..68e1944 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
@@ -55,7 +55,7 @@ public class DeleteObjectIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
index 7d50b47..58ddaf4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
@@ -52,7 +52,7 @@ public class EmbeddingIT extends ServerCase {
     protected TableHelper tEmbedEntity1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tEmbedEntity1 = new TableHelper(dbHelper, "EMBED_ENTITY1");
         tEmbedEntity1.setColumns("ID", "NAME", "EMBEDDED10", "EMBEDDED20", "EMBEDDED30", "EMBEDDED40");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
index b7cd2c5..f896877 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
@@ -66,7 +66,7 @@ public class FlattenedPrefetchIT extends ServerCase {
     protected TableHelper tArtistGroup;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         dbHelper.update("ARTGROUP").set("PARENT_GROUP_ID", null, Types.INTEGER).execute();
 
         tArtist = new TableHelper(dbHelper, "ARTIST");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
index 960fd97..690e318 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
@@ -54,7 +54,7 @@ public class FlattenedRelationshipInContextIT extends ServerCase {
     private TableHelper tFlattenedTest3;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tFlattenedTest1 = new TableHelper(dbHelper, "FLATTENED_TEST_1");
         tFlattenedTest1.setColumns("FT1_ID", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
index dad1db3..c072c62 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
@@ -68,7 +68,7 @@ public class IdentityColumnsIT extends ServerCase {
     protected TableHelper joinTable;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         joinTable = new TableHelper(dbHelper, "GENERATED_JOIN");
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
index 62cc1fa..2f2e702 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
@@ -85,7 +85,7 @@ public class JointPrefetchIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
index ad9dd99..558c64e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
@@ -75,7 +75,7 @@ public class NestedDataContextReadIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
index 33be4b1..9c27d5a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextWriteIT.java
@@ -74,7 +74,7 @@ public class NestedDataContextWriteIT extends ServerCase {
     private TableHelper tPaintingInfo;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
index 4796ace..6d7a21a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContext_DeadlockIT.java
@@ -52,7 +52,7 @@ public class NestedDataContext_DeadlockIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
index 491715e..6ad368d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NumericTypesIT.java
@@ -72,7 +72,7 @@ public class NumericTypesIT extends ServerCase {
     protected TableHelper tTinyintTest;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tSmallintTest = new TableHelper(dbHelper, "SMALLINT_TEST");
         tSmallintTest.setColumns("ID", "SMALLINT_COL");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
index 6017252..260781f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreDiffRetainingIT.java
@@ -49,7 +49,7 @@ public class ObjectStoreDiffRetainingIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH")
                 .setColumnTypes(Types.BIGINT, Types.CHAR, Types.DATE);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
index 1842fec..cd5e430 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/OptimisticLockingIT.java
@@ -56,7 +56,7 @@ public class OptimisticLockingIT extends ServerCase {
     protected TableHelper tLockingHelper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tSimpleLockingTest = new TableHelper(dbHelper, "SIMPLE_LOCKING_TEST");
         tSimpleLockingTest.setColumns("LOCKING_TEST_ID", "NAME", "DESCRIPTION")
                 .setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.VARCHAR);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
index b70b590..2f46cfe 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
@@ -49,7 +49,7 @@ public class QuotedIdentifiersIT extends ServerCase {
     private ObjectContext context;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
 
         QuoteAdress quoteAdress = context.newObject(QuoteAdress.class);
         quoteAdress.setCity("city");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
index d373f30..ee4b26d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListDataRowsIT.java
@@ -60,7 +60,7 @@ public class SimpleIdIncrementalFaultListDataRowsIT extends ServerCase {
     private SimpleIdIncrementalFaultList<?> list;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         createArtistsDataSet();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
index ae24849..d4e62bd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListIT.java
@@ -57,7 +57,7 @@ public class SimpleIdIncrementalFaultListIT extends ServerCase {
     private TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
index def1bb4..6e87b09 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SimpleIdIncrementalFaultListPrefetchIT.java
@@ -62,7 +62,7 @@ public class SimpleIdIncrementalFaultListPrefetchIT extends ServerCase {
     protected TableHelper tPaining;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
index 41f9446..fd0d9dc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
@@ -78,11 +78,7 @@ public class SingleTableInheritanceIT extends ServerCase {
     private TableHelper tDepartment;
 
     @Override
-    protected void setUpAfterInjection() throws Exception {
-    }
-
-    @Before
-    public void testSetUp() throws Exception {
+    public void cleanUpDB() throws Exception {
         tPerson = new TableHelper(dbHelper, "PERSON");
         tPerson.setColumns(
                 "PERSON_ID",
@@ -98,6 +94,13 @@ public class SingleTableInheritanceIT extends ServerCase {
                 Types.INTEGER,
                 Types.INTEGER);
 
+        // manually break circular deps
+        tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
+        dbCleaner.clean();
+    }
+
+    @Before
+    public void setUp() {
         tAddress = new TableHelper(dbHelper, "ADDRESS");
         tAddress.setColumns("ADDRESS_ID", "CITY", "PERSON_ID");
 
@@ -106,10 +109,6 @@ public class SingleTableInheritanceIT extends ServerCase {
 
         tDepartment = new TableHelper(dbHelper, "DEPARTMENT");
         tDepartment.setColumns("DEPARTMENT_ID", "NAME");
-
-        // manually break circular deps
-        tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
-        dbCleaner.clean();
     }
 
     private void create2PersonDataSet() throws Exception {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
index fba1743..1b0dcba 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/UUIDIT.java
@@ -49,7 +49,7 @@ public class UUIDIT extends ServerCase {
     private TableHelper uuidPkEntity;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         uuidPkEntity = new TableHelper(dbHelper, "UUID_PK_ENTITY", "ID");
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
index 39da5e9..59b5b73 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
@@ -48,8 +48,7 @@ public class SchemaUpdateStrategyBase extends ServerCase {
 	protected DbAdapter adapter;
 
 	@Override
-	protected void setUpAfterInjection() throws Exception {
-
+	public void cleanUpDB() throws Exception {
 		DataMap map = node.getEntityResolver().getDataMap("sus-map");
 		for (String name : existingTables()) {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
index 18895ba..7b24e4e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
@@ -77,7 +77,7 @@ public class SQLTemplateActionIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME", "DATE_OF_BIRTH");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
index a5ceb73..c051637 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/OrderingTranslatorIT.java
@@ -49,12 +49,12 @@ public class OrderingTranslatorIT extends ServerCase {
     private Connection connection;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
index 52ee98f..e4ff4ef 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QualifierTranslatorIT.java
@@ -60,12 +60,12 @@ public class QualifierTranslatorIT extends ServerCase {
     private Connection connection;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
index 42bc4de..006e73c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/QueryAssemblerIT.java
@@ -50,13 +50,13 @@ public class QueryAssemblerIT extends ServerCase {
     private TstQueryAssembler qa;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
         this.qa = new TstQueryAssembler(new SelectQuery<Object>(), dataNode, connection);
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
index 25d62bd..b0ff3f8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/select/SelectTranslatorIT.java
@@ -79,12 +79,12 @@ public class SelectTranslatorIT extends ServerCase {
     private Connection connection;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         this.connection = dataSourceFactory.getSharedDataSource().getConnection();
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         connection.close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
index 8333b73..f90cc54 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/ashwood/AshwoodEntitySorterIT.java
@@ -51,7 +51,7 @@ public class AshwoodEntitySorterIT extends ServerCase {
     protected TableHelper tReflexiveAndToOne;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tRelationshipHelper = new TableHelper(dbHelper, "RELATIONSHIP_HELPER");
         tRelationshipHelper.setColumns("RELATIONSHIP_HELPER_ID", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java
index 27b64e4..1ad342d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilderIT.java
@@ -18,12 +18,6 @@
  ****************************************************************/
 package org.apache.cayenne.configuration.server;
 
-import static org.junit.Assert.assertEquals;
-
-import java.util.List;
-
-import javax.sql.DataSource;
-
 import org.apache.cayenne.DataRow;
 import org.apache.cayenne.conn.DataSourceInfo;
 import org.apache.cayenne.di.Inject;
@@ -37,6 +31,11 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import javax.sql.DataSource;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ServerRuntimeBuilderIT extends ServerCase {
 
@@ -64,7 +63,7 @@ public class ServerRuntimeBuilderIT extends ServerCase {
 	}
 
 	@Before
-	public void testSetUp() throws Exception {
+	public void setUp() throws Exception {
 		TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
 		tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 		tArtist.insert(33001, "AA1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
index e60daac..25774df 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
@@ -49,12 +49,12 @@ public class JdbcPkGeneratorIT extends ServerCase {
     private SchemaBuilder schemaBuilder;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         schemaBuilder.dropPKSupport();
     }
     
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
 
         if (JdbcPkGenerator.class.isAssignableFrom(adapter.getPkGenerator().getClass())) {
             // reset PK gen properly before updating PKs in DB

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
index 0ca4283..4a2ea0e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
@@ -49,7 +49,7 @@ public class PkGeneratorIT extends ServerCase {
     private DbEntity paintingEntity;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         pkGenerator = node.getAdapter().getPkGenerator();
         paintingEntity = node.getEntityResolver().getDbEntity("PAINTING");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
index 7bab993..aebc5cc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/oracle/OraclePkGeneratorIT.java
@@ -44,7 +44,7 @@ public class OraclePkGeneratorIT extends ServerCase {
     private OraclePkGenerator pkGenerator;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         OracleAdapter adapter = objectFactory.newInstance(OracleAdapter.class, OracleAdapter.class.getName());
         pkGenerator = new OraclePkGenerator(adapter);
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
index 59dfacd..87afc1f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ParsedExpQualifierCompatIT.java
@@ -51,7 +51,7 @@ public class ParsedExpQualifierCompatIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
index a1e1f1e..4d7eea2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/parser/ExpressionEvaluateInMemoryIT.java
@@ -62,7 +62,7 @@ public class ExpressionEvaluateInMemoryIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
index 926f2bf..c8d442a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
@@ -46,7 +46,7 @@ public class DbRelationshipIT extends ServerCase {
     protected DbEntity galleryEnt;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         artistEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("ARTIST");
         paintingEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("PAINTING");
         galleryEnt = runtime.getDataDomain().getEntityResolver().getDbEntity("GALLERY");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
index 77aba09..bf9f9e1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/ObjRelationshipIT.java
@@ -61,7 +61,7 @@ public class ObjRelationshipIT extends ServerCase {
     private DbEntity galleryDBEntity;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         EntityResolver resolver = runtime.getDataDomain().getEntityResolver();
 
         artistDBEntity = resolver.getDbEntity("ARTIST");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
index 77affa8..658ebe4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
@@ -71,7 +71,7 @@ public abstract class MergeCase extends ServerCase {
             "PAINTING", "NEW_TABLE", "NEW_TABLE2");
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         dbHelper.update("ARTGROUP").set("PARENT_GROUP_ID", null, Types.INTEGER).execute();
 
         // this map can't be safely modified in this test, as it is reset by DI

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
index 5ed52a6..fe1f085 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
@@ -72,7 +72,7 @@ public class EJBQLQueryIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
index 9dcbeef..746c561 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
@@ -46,7 +46,7 @@ public class EJBQLQueryNumericIT extends ServerCase {
     private TableHelper tBigIntegerEntity;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tBigIntegerEntity = new TableHelper(dbHelper, "BIGINTEGER_ENTITY");
         tBigIntegerEntity.setColumns("ID", "BIG_INTEGER_FIELD");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
index 5b2ed32..d152765 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
@@ -53,7 +53,7 @@ public class SQLTemplateIT extends ServerCase {
 	private TableHelper tPainting;
 
 	@Before
-	public void testSetUp() throws Exception {
+	public void setUp() throws Exception {
 		tPainting = new TableHelper(dbHelper, "PAINTING");
 		tPainting.setColumns("PAINTING_ID", "ARTIST_ID", "PAINTING_TITLE", "ESTIMATED_PRICE").setColumnTypes(
 				Types.INTEGER, Types.BIGINT, Types.VARCHAR, Types.DECIMAL);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
index 862b7ac..bc18f5d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectByIdIT.java
@@ -59,7 +59,7 @@ public class SelectByIdIT extends ServerCase {
 	private EntityResolver resolver;
 
 	@Before
-	public void testSetUp() throws Exception {
+	public void setUp() throws Exception {
 		tArtist = new TableHelper(dbHelper, "ARTIST");
 		tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
index 56300c3..5ded018 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryFetchLimitOrderingIT.java
@@ -46,7 +46,7 @@ public class SelectQueryFetchLimitOrderingIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
index e580f88..6a54256 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/MixedPersistenceStrategyIT.java
@@ -52,7 +52,7 @@ public class MixedPersistenceStrategyIT extends ServerCase {
     protected TableHelper tMixedPersistenceStrategy2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMixedPersistenceStrategy = new TableHelper(
                 dbHelper,
                 "MIXED_PERSISTENCE_STRATEGY");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICase.java
index 74fdd75..811e9f7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICase.java
@@ -31,47 +31,13 @@ public abstract class DICase {
     protected abstract Injector getUnitTestInjector();
 
     @Before
-    public final void setUp() throws Exception {
+    public final void setUpLifecycleManager() throws Exception {
         getUnitTestInjector().getInstance(UnitTestLifecycleManager.class).setUp(this);
-        try {
-            setUpAfterInjection();
-        }
-        catch (Exception e) {
-
-            // must stop the lifecycle manager (do the same thing we'd normally do in
-            // 'tearDown' ), otherwise following tests will end up in
-            // a bad state
-
-            try {
-                getUnitTestInjector()
-                        .getInstance(UnitTestLifecycleManager.class)
-                        .tearDown(this);
-            }
-            catch (Exception x) {
-                // swallow...
-            }
-
-            throw e;
-        }
     }
 
     @After
-    public final void tearDown() throws Exception {
-
-        try {
-            tearDownBeforeInjection();
-        }
-        finally {
-            getUnitTestInjector().getInstance(UnitTestLifecycleManager.class).tearDown(
-                    this);
-        }
+    public final void tearDownLifecycleManager() throws Exception {
+        getUnitTestInjector().getInstance(UnitTestLifecycleManager.class).tearDown(this);
     }
 
-    protected void setUpAfterInjection() throws Exception {
-        // noop
-    }
-
-    protected void tearDownBeforeInjection() throws Exception {
-        // noop
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICaseSelfIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICaseSelfIT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICaseSelfIT.java
index 5381f85..2bcf064 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICaseSelfIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/DICaseSelfIT.java
@@ -76,8 +76,8 @@ public class DICaseSelfIT extends DICase {
         Object singletonScoped = this.singletonScoped;
         assertNotNull(singletonScoped);
 
-        tearDown();
-        setUp();
+        tearDownLifecycleManager();
+        setUpLifecycleManager();
 
         assertNotSame(testScoped, this.testScoped);
         assertNotNull(this.testScoped);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
index 2bd5cc3..af12a3d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java
@@ -37,7 +37,6 @@ public class DBCleaner {
 
     private FlavoredDBHelper dbHelper;
     private String location;
-    private XMLDataChannelDescriptorLoader loader;
 
     @Inject
     private SchemaBuilder schemaBuilder;
@@ -54,7 +53,7 @@ public class DBCleaner {
     }
 
     public void clean() throws SQLException {
-        loader = new XMLDataChannelDescriptorLoader();
+        XMLDataChannelDescriptorLoader loader = new XMLDataChannelDescriptorLoader();
         injector.injectMembers(loader);
 
         URL url = getClass().getClassLoader().getResource(location);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
index d5b5871..0f5181e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.di.spi.DefaultScope;
 import org.apache.cayenne.unit.di.DICase;
+import org.junit.Before;
 
 public class ServerCase extends DICase {
 
@@ -37,8 +38,8 @@ public class ServerCase extends DICase {
 		injector.getInstance(SchemaBuilder.class).rebuildSchema();
 	}
 
-	@Override
-	protected void setUpAfterInjection() throws Exception {
+	@Before
+	public void cleanUpDB() throws Exception {
 		dbCleaner.clean();
 	}
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
index 993828b..8bde32c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java
@@ -50,9 +50,9 @@ public class ServerCaseSelfIT extends ServerCase {
         assertNotNull(local);
         assertSame(local, runtimeProvider.get());
 
-        tearDown();
+        tearDownLifecycleManager();
 
-        setUp();
+        setUpLifecycleManager();
         assertNotSame(local, this.runtime);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
index 2877c3c..a126ceb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
@@ -56,7 +56,7 @@ public class CAY_115IT extends ServerCase {
     protected TableHelper tClobDetail;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tClobMaster = new TableHelper(dbHelper, "CLOB_MASTER");
         tClobMaster.setColumns("CLOB_MASTER_ID", "CLOB_COLUMN", "NAME");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
index fb31bd2..e0aad02 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java
@@ -47,7 +47,7 @@ public class CAY_191IT extends ServerCase {
     protected TableHelper tFkOfDifferentType;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tRelationshipHelper = new TableHelper(dbHelper, "RELATIONSHIP_HELPER");
         tRelationshipHelper.setColumns("NAME", "RELATIONSHIP_HELPER_ID");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
index dcd6b6a..704a435 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java
@@ -54,7 +54,7 @@ public class CAY_194IT extends ServerCase {
     private DBHelper dbHelper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         TableHelper tReflexive = new TableHelper(dbHelper, "REFLEXIVE_AND_TO_ONE");
         tReflexive.setColumns("REFLEXIVE_AND_TO_ONE_ID", "PARENT_ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
index d0e57b9..d79fe8d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.inheritance_people.Department;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
@@ -31,8 +32,11 @@ import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
 import org.junit.Test;
 
+import java.sql.SQLException;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -50,8 +54,12 @@ public class DeepMergeOperationInheritanceIT extends ServerCase {
     @Inject
     protected DataChannelInterceptor queryInterceptor;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Inject
+    private DBHelper dbHelper;
+
+    @After
+    public void tearDown() throws SQLException {
+        dbHelper.deleteAll("PERSON");
     }
 
     @Test
@@ -106,7 +114,7 @@ public class DeepMergeOperationInheritanceIT extends ServerCase {
     }
 
     @Test
-    public void testDeepMergeNonExistentSubclass() {
+    public void testDeepMergeNonExistentSubclass() throws SQLException {
 
         final Department d1 = context.newObject(Department.class);
         d1.setName("D1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
index 0f7ec48..111caee 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java
@@ -61,7 +61,7 @@ public class ShallowMergeOperationIT extends ServerCase {
     private TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 


[17/39] cayenne git commit: CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

Posted by aa...@apache.org.
CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

unit tests for existing methods


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/f11fc5ca
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/f11fc5ca
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/f11fc5ca

Branch: refs/heads/CAY-1946_1
Commit: f11fc5ca384e891bdc248c3a040c5fea9b6be95a
Parents: 98bd497
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:46:31 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 14:46:31 2014 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/exp/PropertyTest.java    | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/f11fc5ca/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
index 7e262f9..1144449 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/PropertyTest.java
@@ -172,4 +172,24 @@ public class PropertyTest {
         assertEquals("xyz+", outer.outer().getName());
     }
     
+    @Test
+    public void testLike() {
+    	Property<String> p = new Property<String>("prop");
+    	Expression e = p.like("abc");
+    	assertEquals("prop like \"abc\"", e.toString());
+    }
+    
+    @Test
+    public void testLikeIgnoreCase() {
+    	Property<String> p = new Property<String>("prop");
+    	Expression e = p.likeInsensitive("abc");
+    	assertEquals("prop likeIgnoreCase \"abc\"", e.toString());
+    }
+    
+    @Test
+    public void testLike_NoEscape() {
+    	Property<String> p = new Property<String>("prop");
+    	Expression e = p.like("ab%c");
+    	assertEquals("prop like \"ab%c\"", e.toString());
+    }
 }


[34/39] cayenne git commit: attempt to fix Jenkins failure

Posted by aa...@apache.org.
attempt to fix Jenkins failure


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3c166f9b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3c166f9b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3c166f9b

Branch: refs/heads/CAY-1946_1
Commit: 3c166f9bf597c7943fe73c9831b008c52365941d
Parents: 511c9a4
Author: aadamchik <aa...@apache.org>
Authored: Tue Nov 25 09:41:03 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Tue Nov 25 09:41:03 2014 +0300

----------------------------------------------------------------------
 .../apache/cayenne/tools/DbImporterMojoTest.java  | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/3c166f9b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index a255a9c..83bb0d2 100644
--- a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -18,10 +18,13 @@
  ****************************************************************/
 package org.apache.cayenne.tools;
 
+import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
+
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 import java.net.URISyntaxException;
+import java.net.URL;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
@@ -34,9 +37,6 @@ import org.codehaus.plexus.util.FileUtils;
 import org.custommonkey.xmlunit.XMLUnit;
 import org.xml.sax.SAXException;
 
-import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
-import static org.junit.Assert.assertNotNull;
-
 public class DbImporterMojoTest extends AbstractMojoTestCase {
 
     static {
@@ -136,14 +136,14 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
         // Get a connection
         Statement stmt = DriverManager.getConnection(dbImportConfiguration.getUrl()).createStatement();
 
-        for (String sql : FileUtils.fileRead(getPackagePath() + "/dbimport/" + sqlFile + ".sql").split(";")) {
+        for (String sql : FileUtils.fileRead(sqlFile(sqlFile + ".sql")).split(";")) {
             stmt.execute(sql);
         }
     }
 
-    private String getPackagePath() {
-        return getClass().getClassLoader().getResource(getClass().getPackage().getName().replace('.', '/')).getPath();
-    }
-
-
+	private File sqlFile(String name) throws URISyntaxException {
+		URL url = DbImporterMojoTest.class.getResource("dbimport/" + name);
+		assertNotNull("Can't find resource: " + name);
+		return new File(url.toURI());
+	}
 }


[33/39] cayenne git commit: relaxing Java 8 javadoc policies

Posted by aa...@apache.org.
relaxing Java 8 javadoc policies


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/511c9a45
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/511c9a45
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/511c9a45

Branch: refs/heads/CAY-1946_1
Commit: 511c9a456fa8e01ef060bc74e872ad834cd8586d
Parents: 3d82647
Author: aadamchik <aa...@apache.org>
Authored: Mon Nov 24 22:22:08 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Mon Nov 24 22:32:12 2014 +0300

----------------------------------------------------------------------
 pom.xml | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/511c9a45/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index d5c1f76..5ff6b3a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -791,6 +791,10 @@
 				<plugin>
 					<artifactId>maven-javadoc-plugin</artifactId>
 					<version>2.9.1</version>
+					<configuration>
+						<!-- Java 8 is too strict about Javadoc omissions --> 
+       					<additionalparam>-Xdoclint:none</additionalparam>
+      				</configuration>
 				</plugin>
 				<plugin>
 					<groupId>org.codehaus.mojo</groupId>


[23/39] cayenne git commit: javadocs

Posted by aa...@apache.org.
javadocs


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/5ce09a7b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/5ce09a7b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/5ce09a7b

Branch: refs/heads/CAY-1946_1
Commit: 5ce09a7b7b708a6310e96ae4b18a887fea8baa02
Parents: 84b7514
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 17:45:50 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 17:47:13 2014 +0300

----------------------------------------------------------------------
 .../server/ServerRuntimeBuilder.java            | 310 ++++++++++---------
 1 file changed, 166 insertions(+), 144 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/5ce09a7b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
index 8b0263d..01115b7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntimeBuilder.java
@@ -40,148 +40,170 @@ import org.apache.cayenne.di.Module;
  */
 public class ServerRuntimeBuilder {
 
-    private Collection<String> configs;
-    private List<Module> modules;
-    private DataSourceFactory dataSourceFactory;
-    private String jdbcUrl;
-    private String jdbcDriver;
-    private String jdbcUser;
-    private String jdbcPassword;
-    private int jdbcMinConnections;
-    private int jdbcMaxConnections;
-
-    public ServerRuntimeBuilder() {
-        this.configs = new LinkedHashSet<String>();
-        this.modules = new ArrayList<Module>();
-    }
-
-    public ServerRuntimeBuilder(String configurationLocation) {
-        this();
-        addConfig(configurationLocation);
-    }
-
-    /**
-     * Sets a DataSource that will override any DataSources found in the
-     * mapping. Moreover if the mapping contains no DataNodes, and the
-     * DataSource is set with this method, the builder would create a single
-     * default DataNode.
-     */
-    public ServerRuntimeBuilder dataSource(DataSource dataSource) {
-        this.dataSourceFactory = new FixedDataSourceFactory(dataSource);
-        return this;
-    }
-
-    public ServerRuntimeBuilder jndiDataSource(String location) {
-        this.dataSourceFactory = new FixedJNDIDataSourceFactory(location);
-        return this;
-    }
-
-    public ServerRuntimeBuilder url(String url) {
-        this.jdbcUrl = url;
-        return this;
-    }
-
-    public ServerRuntimeBuilder jdbcDriver(String driver) {
-        // TODO: guess the driver from URL
-        this.jdbcDriver = driver;
-        return this;
-    }
-
-    public ServerRuntimeBuilder user(String user) {
-        this.jdbcUser = user;
-        return this;
-    }
-
-    public ServerRuntimeBuilder password(String password) {
-        this.jdbcPassword = password;
-        return this;
-    }
-
-    public ServerRuntimeBuilder minConnections(int minConnections) {
-        this.jdbcMinConnections = minConnections;
-        return this;
-    }
-
-    public ServerRuntimeBuilder maxConnections(int maxConnections) {
-        this.jdbcMaxConnections = maxConnections;
-        return this;
-    }
-
-    public ServerRuntimeBuilder addConfig(String configurationLocation) {
-        configs.add(configurationLocation);
-        return this;
-    }
-
-    public ServerRuntimeBuilder addConfigs(Collection<String> configurationLocations) {
-        configs.addAll(configurationLocations);
-        return this;
-    }
-
-    public ServerRuntimeBuilder addModule(Module module) {
-        modules.add(module);
-        return this;
-    }
-
-    public ServerRuntimeBuilder addModules(Collection<Module> modules) {
-        this.modules.addAll(modules);
-        return this;
-    }
-
-    public ServerRuntime build() {
-
-        buildModules();
-
-        String[] configs = this.configs.toArray(new String[this.configs.size()]);
-        Module[] modules = this.modules.toArray(new Module[this.modules.size()]);
-        return new ServerRuntime(configs, modules);
-    }
-
-    private void buildModules() {
-
-        if (dataSourceFactory != null) {
-
-            prepend(new Module() {
-                @Override
-                public void configure(Binder binder) {
-                    binder.bind(DataDomain.class).toProvider(SyntheticNodeDataDomainProvider.class);
-                    binder.bind(DataSourceFactory.class).toInstance(dataSourceFactory);
-                }
-            });
-
-        }
-        // URL and driver are the minimal requirement for
-        // DelegatingDataSourceFactory to work
-        else if (jdbcUrl != null && jdbcDriver != null) {
-            prepend(new Module() {
-                @Override
-                public void configure(Binder binder) {
-                    binder.bind(DataDomain.class).toProvider(SyntheticNodeDataDomainProvider.class);
-                    MapBuilder<Object> props = binder.bindMap(Constants.PROPERTIES_MAP)
-                            .put(Constants.JDBC_DRIVER_PROPERTY, jdbcDriver).put(Constants.JDBC_URL_PROPERTY, jdbcUrl);
-
-                    if (jdbcUser != null) {
-                        props.put(Constants.JDBC_USERNAME_PROPERTY, jdbcUser);
-                    }
-
-                    if (jdbcPassword != null) {
-                        props.put(Constants.JDBC_PASSWORD_PROPERTY, jdbcPassword);
-                    }
-
-                    if (jdbcMinConnections > 0) {
-                        props.put(Constants.JDBC_MIN_CONNECTIONS_PROPERTY, Integer.toString(jdbcMinConnections));
-                    }
-
-                    if (jdbcMaxConnections > 0) {
-                        props.put(Constants.JDBC_MAX_CONNECTIONS_PROPERTY, Integer.toString(jdbcMaxConnections));
-                    }
-                }
-            });
-        }
-    }
-
-    private void prepend(Module module) {
-        // prepend any special modules BEFORE custom modules, to allow callers
-        // to override our stuff
-        modules.add(0, module);
-    }
+	private Collection<String> configs;
+	private List<Module> modules;
+	private DataSourceFactory dataSourceFactory;
+	private String jdbcUrl;
+	private String jdbcDriver;
+	private String jdbcUser;
+	private String jdbcPassword;
+	private int jdbcMinConnections;
+	private int jdbcMaxConnections;
+
+	/**
+	 * Creates an empty builder.
+	 */
+	public ServerRuntimeBuilder() {
+		this.configs = new LinkedHashSet<String>();
+		this.modules = new ArrayList<Module>();
+	}
+
+	/**
+	 * An equivalent to creating builder with default constructor and calling
+	 * {@link #addConfig(String)}.
+	 */
+	public ServerRuntimeBuilder(String configurationLocation) {
+		this();
+		addConfig(configurationLocation);
+	}
+
+	/**
+	 * Sets a DataSource that will override any DataSources found in the
+	 * mapping. Moreover if the mapping contains no DataNodes, and the
+	 * DataSource is set with this method, the builder would create a single
+	 * default DataNode.
+	 */
+	public ServerRuntimeBuilder dataSource(DataSource dataSource) {
+		this.dataSourceFactory = new FixedDataSourceFactory(dataSource);
+		return this;
+	}
+
+	/**
+	 * Sets JNDI location for the default DataSource.
+	 */
+	public ServerRuntimeBuilder jndiDataSource(String location) {
+		this.dataSourceFactory = new FixedJNDIDataSourceFactory(location);
+		return this;
+	}
+
+	/**
+	 * Sets a database URL for the default DataSource.
+	 */
+	public ServerRuntimeBuilder url(String url) {
+		this.jdbcUrl = url;
+		return this;
+	}
+
+	/**
+	 * Sets a driver Java class for the default DataSource.
+	 */
+	public ServerRuntimeBuilder jdbcDriver(String driver) {
+		// TODO: guess the driver from URL
+		this.jdbcDriver = driver;
+		return this;
+	}
+
+	/**
+	 * Sets a user name for the default DataSource.
+	 */
+	public ServerRuntimeBuilder user(String user) {
+		this.jdbcUser = user;
+		return this;
+	}
+
+	/**
+	 * Sets a password for the default DataSource.
+	 */
+	public ServerRuntimeBuilder password(String password) {
+		this.jdbcPassword = password;
+		return this;
+	}
+
+	public ServerRuntimeBuilder minConnections(int minConnections) {
+		this.jdbcMinConnections = minConnections;
+		return this;
+	}
+
+	public ServerRuntimeBuilder maxConnections(int maxConnections) {
+		this.jdbcMaxConnections = maxConnections;
+		return this;
+	}
+
+	public ServerRuntimeBuilder addConfig(String configurationLocation) {
+		configs.add(configurationLocation);
+		return this;
+	}
+
+	public ServerRuntimeBuilder addConfigs(Collection<String> configurationLocations) {
+		configs.addAll(configurationLocations);
+		return this;
+	}
+
+	public ServerRuntimeBuilder addModule(Module module) {
+		modules.add(module);
+		return this;
+	}
+
+	public ServerRuntimeBuilder addModules(Collection<Module> modules) {
+		this.modules.addAll(modules);
+		return this;
+	}
+
+	public ServerRuntime build() {
+
+		buildModules();
+
+		String[] configs = this.configs.toArray(new String[this.configs.size()]);
+		Module[] modules = this.modules.toArray(new Module[this.modules.size()]);
+		return new ServerRuntime(configs, modules);
+	}
+
+	private void buildModules() {
+
+		if (dataSourceFactory != null) {
+
+			prepend(new Module() {
+				@Override
+				public void configure(Binder binder) {
+					binder.bind(DataDomain.class).toProvider(SyntheticNodeDataDomainProvider.class);
+					binder.bind(DataSourceFactory.class).toInstance(dataSourceFactory);
+				}
+			});
+
+		}
+		// URL and driver are the minimal requirement for
+		// DelegatingDataSourceFactory to work
+		else if (jdbcUrl != null && jdbcDriver != null) {
+			prepend(new Module() {
+				@Override
+				public void configure(Binder binder) {
+					binder.bind(DataDomain.class).toProvider(SyntheticNodeDataDomainProvider.class);
+					MapBuilder<Object> props = binder.bindMap(Constants.PROPERTIES_MAP)
+							.put(Constants.JDBC_DRIVER_PROPERTY, jdbcDriver).put(Constants.JDBC_URL_PROPERTY, jdbcUrl);
+
+					if (jdbcUser != null) {
+						props.put(Constants.JDBC_USERNAME_PROPERTY, jdbcUser);
+					}
+
+					if (jdbcPassword != null) {
+						props.put(Constants.JDBC_PASSWORD_PROPERTY, jdbcPassword);
+					}
+
+					if (jdbcMinConnections > 0) {
+						props.put(Constants.JDBC_MIN_CONNECTIONS_PROPERTY, Integer.toString(jdbcMinConnections));
+					}
+
+					if (jdbcMaxConnections > 0) {
+						props.put(Constants.JDBC_MAX_CONNECTIONS_PROPERTY, Integer.toString(jdbcMaxConnections));
+					}
+				}
+			});
+		}
+	}
+
+	private void prepend(Module module) {
+		// prepend any special modules BEFORE custom modules, to allow callers
+		// to override our stuff
+		modules.add(0, module);
+	}
 }


[04/39] cayenne git commit: Implement DBCleaner

Posted by aa...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
index ab8ac03..12069cc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.testdo.inheritance_people.AbstractPerson;
 import org.apache.cayenne.testdo.inheritance_people.CustomerRepresentative;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -39,7 +41,7 @@ import static org.junit.Assert.assertEquals;
 
 /**
  */
-@UseServerRuntime(ServerCase.PEOPLE_PROJECT)
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
 public class DataContextQualifiedEntityIT extends ServerCase {
 
     @Inject
@@ -50,17 +52,11 @@ public class DataContextQualifiedEntityIT extends ServerCase {
 
     protected TableHelper tPerson;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         // manually break circular deps
         dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute();
 
-        dbHelper.deleteAll("ADDRESS");
-        dbHelper.deleteAll("DEPARTMENT");
-        dbHelper.deleteAll("PERSON_NOTES");
-        dbHelper.deleteAll("PERSON");
-        dbHelper.deleteAll("CLIENT_COMPANY");
-        
         tPerson = new TableHelper(dbHelper, "PERSON");
         tPerson.setColumns(
                 "CLIENT_COMPANY_ID",

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
index d259acf..3e4f068 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
@@ -20,23 +20,19 @@ package org.apache.cayenne.access;
 
 import org.apache.cayenne.cache.EhCacheQueryCache;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextQueryCachingEhCacheIT extends DataContextQueryCachingIT {
     
     protected EhCacheQueryCache domainCache;
     protected EhCacheQueryCache contextCache;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 
@@ -56,8 +52,8 @@ public class DataContextQueryCachingEhCacheIT extends DataContextQueryCachingIT
         context.setQueryCache(contextCache);
     }
     
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         domainCache.shutdown();
         contextCache.shutdown();
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
index e82441f..570a0a3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
@@ -30,8 +30,11 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -42,7 +45,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextQueryCachingIT extends ServerCase {
 
     @Inject
@@ -61,14 +64,8 @@ public class DataContextQueryCachingIT extends ServerCase {
         return this.domain.getDataNodes().iterator().next();
     }
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 
@@ -85,8 +82,8 @@ public class DataContextQueryCachingIT extends ServerCase {
         context.setQueryCache(new MapQueryCache(50));
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         domain.setQueryCache(oldCache);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
index 7428fd5..1bc77dc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
@@ -20,21 +20,16 @@ package org.apache.cayenne.access;
 
 import org.apache.cayenne.cache.OSQueryCache;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextQueryCachingOSCacheIT extends DataContextQueryCachingIT {
 
     // runs super tests with a different setup...
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
index db95860..d46be93 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryChainIT.java
@@ -23,8 +23,8 @@ import org.apache.cayenne.QueryResponse;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.QueryChain;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -34,25 +34,12 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextQueryChainIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testSelectQuery() {
         Artist a1 = context.newObject(Artist.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
index 7ca4d20..f4ca6fc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
@@ -32,8 +32,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -45,7 +47,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextRefreshQueryIT extends ServerCase {
 
     @Inject
@@ -57,14 +59,8 @@ public class DataContextRefreshQueryIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
index 6086b6c..c882dc1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -47,7 +49,7 @@ import static org.junit.Assert.assertNull;
  * refreshing relationships and attributes changed outside of Cayenne with and without
  * prefetching.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextRefreshingIT extends ServerCase {
 
     @Inject
@@ -62,14 +64,8 @@ public class DataContextRefreshingIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
index e5c9dc8..357b7f4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRelationshipQueryIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -34,7 +36,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextRelationshipQueryIT extends ServerCase {
 
     @Inject
@@ -46,15 +48,8 @@ public class DataContextRelationshipQueryIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         tPainting = new TableHelper(dbHelper, "PAINTING");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRollbackIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRollbackIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRollbackIT.java
index 0c67109..56209d2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRollbackIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRollbackIT.java
@@ -25,9 +25,9 @@ import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -38,7 +38,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextRollbackIT extends ServerCase {
 
     @Inject
@@ -47,18 +47,6 @@ public class DataContextRollbackIT extends ServerCase {
     @Inject
     private ServerRuntime serverRuntime;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testRollbackNew() {
         Artist artist = (Artist) context.newObject("Artist");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
index c6e8c29..76adc85 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateCompoundIT.java
@@ -27,8 +27,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.compound.CompoundFkTestEntity;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
@@ -38,7 +40,7 @@ import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+@UseServerRuntime(CayenneProjects.COMPOUND_PROJECT)
 public class DataContextSQLTemplateCompoundIT extends ServerCase {
 
     @Inject
@@ -50,11 +52,8 @@ public class DataContextSQLTemplateCompoundIT extends ServerCase {
     protected TableHelper tCompoundPkTest;
     protected TableHelper tCompoundFkTest;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tCompoundPkTest = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPkTest.setColumns("KEY1", "KEY2");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
index 58c48f5..b7748b2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateIT.java
@@ -35,9 +35,11 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -48,7 +50,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextSQLTemplateIT extends ServerCase {
 
     @Inject
@@ -66,14 +68,8 @@ public class DataContextSQLTemplateIT extends ServerCase {
     protected TableHelper tPainting;
     protected TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
index a71bcb0..1c2a489 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSelectQuerySplitAliasesIT.java
@@ -24,15 +24,17 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextSelectQuerySplitAliasesIT extends ServerCase {
 
     @Inject
@@ -44,15 +46,8 @@ public class DataContextSelectQuerySplitAliasesIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
index e677d04..d7e27fe 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSerializationIT.java
@@ -30,9 +30,12 @@ import org.apache.cayenne.log.JdbcEventLogger;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.Util;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -46,7 +49,7 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextSerializationIT extends ServerCase {
 
     @Inject
@@ -63,16 +66,10 @@ public class DataContextSerializationIT extends ServerCase {
 
     protected TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         CayenneRuntime.bindThreadInjector(runtime.getInjector());
 
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }
@@ -81,8 +78,8 @@ public class DataContextSerializationIT extends ServerCase {
         tArtist.insert(33001, "aaa");
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         CayenneRuntime.bindThreadInjector(null);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
index 9f98d4f..3c3f2f1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheEmpiricIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collections;
@@ -40,7 +42,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextSharedCacheEmpiricIT extends ServerCase {
 
     private static final String NEW_NAME = "versionX";
@@ -57,14 +59,8 @@ public class DataContextSharedCacheEmpiricIT extends ServerCase {
     private DataContext c1;
     private DataContext c2;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         DataRowStore cache = new DataRowStore(
                 "cacheTest",
                 Collections.EMPTY_MAP,

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
index 7b69abe..271611a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextSharedCacheIT.java
@@ -27,13 +27,14 @@ import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collection;
@@ -54,16 +55,13 @@ import static org.junit.Assert.assertTrue;
  * Test suite for testing behavior of multiple DataContexts that share the same underlying
  * DataDomain.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextSharedCacheIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
     @Inject
-    protected DBHelper dbHelper;
-
-    @Inject
     private DataContext context1;
 
     @Inject
@@ -71,17 +69,8 @@ public class DataContextSharedCacheIT extends ServerCase {
 
     private Artist artist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         // prepare a single artist record
         artist = (Artist) context.newObject("Artist");
         artist.setArtistName("version1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextValidationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextValidationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextValidationIT.java
index 6005077..a99e813 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextValidationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextValidationIT.java
@@ -21,9 +21,9 @@ package org.apache.cayenne.access;
 
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.unit.util.ValidationDelegate;
@@ -36,25 +36,12 @@ import static org.junit.Assert.assertTrue;
 
 /**
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataContextValidationIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testValidatingObjectsOnCommitProperty() throws Exception {
         context.setValidatingObjectsOnCommit(true);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainCallbacksIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainCallbacksIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainCallbacksIT.java
index c670b5a..43d09d6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainCallbacksIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainCallbacksIT.java
@@ -28,9 +28,9 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.reflect.LifecycleCallbackRegistry;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -41,7 +41,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataDomainCallbacksIT extends ServerCase {
 
     @Inject
@@ -52,20 +52,6 @@ public class DataDomainCallbacksIT extends ServerCase {
 
     @Inject
     private ObjectContext context1;
-    
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-    }
 
     @Test
     public void testPostLoad() throws Exception {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainFiltersIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainFiltersIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainFiltersIT.java
index 8e8a877..36dd7f8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainFiltersIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainFiltersIT.java
@@ -29,6 +29,7 @@ import org.apache.cayenne.graph.GraphDiff;
 import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.ListResponse;
@@ -41,7 +42,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataDomainFiltersIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainIT.java
index 5607bb1..479ca3f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainIT.java
@@ -34,6 +34,7 @@ import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.annotations.Tag1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -50,7 +51,7 @@ import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataDomainIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
index 373dcc5..55016e7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataDomainQueryActionIT.java
@@ -27,10 +27,11 @@ import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.SortOrder;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
 import org.junit.Test;
 
 import java.io.Serializable;
@@ -38,7 +39,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataDomainQueryActionIT extends ServerCase {
 
     @Inject
@@ -47,21 +48,8 @@ public class DataDomainQueryActionIT extends ServerCase {
     @Inject
     private ServerRuntime runtime;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
-    @Override
-    public void tearDownBeforeInjection() {
+    @After
+    public void testTearDown() {
         runtime.getDataDomain().resetProperties();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeIT.java
index 9584e22..62d3adf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeIT.java
@@ -22,6 +22,7 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -30,7 +31,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataNodeIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
index 99ccb2c..02f4ff6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
@@ -26,9 +26,11 @@ import org.apache.cayenne.query.Query;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Date;
@@ -40,7 +42,7 @@ import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataNodeQueriesIT extends ServerCase {
 
     @Inject
@@ -54,14 +56,8 @@ public class DataNodeQueriesIT extends ServerCase {
 
     protected TableHelper tArtist;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowStoreIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowStoreIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowStoreIT.java
index f5470bd..6a15123 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowStoreIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowStoreIT.java
@@ -23,6 +23,7 @@ import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.event.DefaultEventManager;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +37,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataRowStoreIT extends ServerCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
index 3d942b3..3632acc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataRowUtilsIT.java
@@ -30,8 +30,10 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -41,7 +43,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DataRowUtilsIT extends ServerCase {
 
     @Inject
@@ -53,14 +55,8 @@ public class DataRowUtilsIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DateTimeTypesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DateTimeTypesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DateTimeTypesIT.java
index 75c3812..1883fca 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DateTimeTypesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DateTimeTypesIT.java
@@ -23,9 +23,9 @@ import org.apache.cayenne.DataRow;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.NamedQuery;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.date_time.CalendarEntity;
 import org.apache.cayenne.testdo.date_time.DateTestEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -41,21 +41,12 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests Date handling in Cayenne.
  */
-@UseServerRuntime(ServerCase.DATE_TIME_PROJECT)
+@UseServerRuntime(CayenneProjects.DATE_TIME_PROJECT)
 public class DateTimeTypesIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("CALENDAR_TEST");
-        dbHelper.deleteAll("DATE_TEST");
-    }
-
     @Test
     public void testCalendar() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
index ffa489b..e7fac36 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbGeneratorIT.java
@@ -25,8 +25,10 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.log.JdbcEventLogger;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertFalse;
@@ -34,7 +36,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DbGeneratorIT extends ServerCase {
 
     @Inject
@@ -48,8 +50,8 @@ public class DbGeneratorIT extends ServerCase {
 
     private DbGenerator generator;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         generator = new DbGenerator(adapter, runtime
                 .getDataDomain()
                 .getDataMap("testmap"), logger);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
index 8bad0d2..3294b19 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
@@ -30,9 +30,12 @@ import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -45,7 +48,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DbLoaderIT extends ServerCase {
 
     @Inject
@@ -62,13 +65,13 @@ public class DbLoaderIT extends ServerCase {
 
     private DbLoader loader;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         loader = new DbLoader(dataSourceFactory.getSharedDataSource().getConnection(), adapter, null);
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         loader.getConnection().close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
index 4b0a9cd..343f80c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
@@ -24,9 +24,12 @@ import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.Collection;
@@ -34,7 +37,7 @@ import java.util.Collection;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DbLoaderPartialIT extends ServerCase {
 
     @Inject
@@ -45,8 +48,8 @@ public class DbLoaderPartialIT extends ServerCase {
 
     private DbLoader loader;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void testSetUp() throws Exception {
         loader = new DbLoader(
                 dataSourceFactory.getSharedDataSource().getConnection(),
                 adapter,
@@ -59,8 +62,8 @@ public class DbLoaderPartialIT extends ServerCase {
                 });
     }
 
-    @Override
-    protected void tearDownBeforeInjection() throws Exception {
+    @After
+    public void testTearDown() throws Exception {
         loader.getConnection().close();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
index 6bb7cd3..fa33e47 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteObjectIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.ArrayList;
@@ -40,7 +42,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class DeleteObjectIT extends ServerCase {
 
     @Inject
@@ -52,14 +54,8 @@ public class DeleteObjectIT extends ServerCase {
     protected TableHelper tArtist;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteRulesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteRulesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteRulesIT.java
index 6fbd8da..4c1aece 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteRulesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DeleteRulesIT.java
@@ -27,12 +27,12 @@ import org.apache.cayenne.graph.NodeDiff;
 import org.apache.cayenne.map.DeleteRule;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatA;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatB;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest1;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest2;
 import org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest3;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -47,25 +47,12 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_DELETE_RULES_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_DELETE_RULES_PROJECT)
 public class DeleteRulesIT extends ServerCase {
 
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("DELETE_RULE_TEST3");
-        dbHelper.deleteAll("DELETE_RULE_TEST1");
-        dbHelper.deleteAll("DELETE_RULE_TEST2");
-        dbHelper.deleteAll("DELETE_RULE_JOIN");
-        dbHelper.deleteAll("DELETE_RULE_FLATB");
-        dbHelper.deleteAll("DELETE_RULE_FLATA");
-    }
-
     @Test
     public void testDenyToOne() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
index 1dfbf5d..7d50b47 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/EmbeddingIT.java
@@ -29,8 +29,10 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.embeddable.EmbedEntity1;
 import org.apache.cayenne.testdo.embeddable.Embeddable1;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -38,7 +40,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.EMBEDDABLE_PROJECT)
+@UseServerRuntime(CayenneProjects.EMBEDDABLE_PROJECT)
 public class EmbeddingIT extends ServerCase {
     
     @Inject
@@ -48,11 +50,9 @@ public class EmbeddingIT extends ServerCase {
     protected DBHelper dbHelper;
     
     protected TableHelper tEmbedEntity1;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("EMBED_ENTITY1");
-        
+
+    @Before
+    public void testSetUp() throws Exception {
         tEmbedEntity1 = new TableHelper(dbHelper, "EMBED_ENTITY1");
         tEmbedEntity1.setColumns("ID", "NAME", "EMBEDDED10", "EMBEDDED20", "EMBEDDED30", "EMBEDDED40");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/EntityInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/EntityInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/EntityInheritanceIT.java
index 4fffde1..0229f81 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/EntityInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/EntityInheritanceIT.java
@@ -23,13 +23,14 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.inheritance.BaseEntity;
 import org.apache.cayenne.testdo.inheritance.RelatedEntity;
 import org.apache.cayenne.testdo.inheritance.SubEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
-@UseServerRuntime(ServerCase.INHERITANCE_PROJECT)
+@UseServerRuntime(CayenneProjects.INHERITANCE_PROJECT)
 public class EntityInheritanceIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/EnumIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/EnumIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/EnumIT.java
index 7b6e1a8..81d9b75 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/EnumIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/EnumIT.java
@@ -29,6 +29,7 @@ import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.enum_test.Enum1;
 import org.apache.cayenne.testdo.enum_test.EnumEntity;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -36,7 +37,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.ENUM_PROJECT)
+@UseServerRuntime(CayenneProjects.ENUM_PROJECT)
 public class EnumIT extends ServerCase {
 
     @Inject
@@ -45,12 +46,6 @@ public class EnumIT extends ServerCase {
     @Inject
     private DBHelper dbHelper;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("ENUM_ENTITY");
-
-    }
-
     private void createDataSet() throws Exception {
         TableHelper tEnumEntity = new TableHelper(dbHelper, "ENUM_ENTITY");
         tEnumEntity.setColumns("ID", "ENUM_ATTRIBUTE");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedArcKeyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedArcKeyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedArcKeyIT.java
index 397c8ac..7e3bd7f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedArcKeyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedArcKeyIT.java
@@ -25,6 +25,7 @@ import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.ObjRelationship;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest1;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest3;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -33,7 +34,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_FLATTENED_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)
 public class FlattenedArcKeyIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
index ce8dd83..b7cd2c5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedPrefetchIT.java
@@ -32,8 +32,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -46,7 +48,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class FlattenedPrefetchIT extends ServerCase {
 
     @Inject
@@ -63,16 +65,9 @@ public class FlattenedPrefetchIT extends ServerCase {
     protected TableHelper tArtgroup;
     protected TableHelper tArtistGroup;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("PAINTING1");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
+    @Before
+    public void testSetUp() throws Exception {
         dbHelper.update("ARTGROUP").set("PARENT_GROUP_ID", null, Types.INTEGER).execute();
-        dbHelper.deleteAll("ARTGROUP");
 
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
index 9f4e7b0..960fd97 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/FlattenedRelationshipInContextIT.java
@@ -28,8 +28,10 @@ import org.apache.cayenne.reflect.ClassDescriptor;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships_flattened.FlattenedTest3;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -38,7 +40,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_FLATTENED_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)
 public class FlattenedRelationshipInContextIT extends ServerCase {
 
     @Inject
@@ -51,14 +53,8 @@ public class FlattenedRelationshipInContextIT extends ServerCase {
     private TableHelper tFlattenedTest2;
     private TableHelper tFlattenedTest3;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("COMPLEX_JOIN");
-        dbHelper.deleteAll("FLATTENED_TEST_4");
-        dbHelper.deleteAll("FLATTENED_TEST_3");
-        dbHelper.deleteAll("FLATTENED_TEST_2");
-        dbHelper.deleteAll("FLATTENED_TEST_1");
-
+    @Before
+    public void testSetUp() throws Exception {
         tFlattenedTest1 = new TableHelper(dbHelper, "FLATTENED_TEST_1");
         tFlattenedTest1.setColumns("FT1_ID", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
index b98eed7..dad1db3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/IdentityColumnsIT.java
@@ -37,8 +37,10 @@ import org.apache.cayenne.testdo.generated.GeneratedColumnTest2;
 import org.apache.cayenne.testdo.generated.GeneratedColumnTestEntity;
 import org.apache.cayenne.testdo.generated.GeneratedF1;
 import org.apache.cayenne.testdo.generated.GeneratedF2;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.List;
@@ -48,7 +50,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.GENERATED_PROJECT)
+@UseServerRuntime(CayenneProjects.GENERATED_PROJECT)
 public class IdentityColumnsIT extends ServerCase {
 
     @Inject
@@ -65,15 +67,8 @@ public class IdentityColumnsIT extends ServerCase {
 
     protected TableHelper joinTable;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        // TODO: extract in a separate DataMap?
-        dbHelper.deleteAll("GENERATED_JOIN");
-        dbHelper.deleteAll("GENERATED_F1");
-        dbHelper.deleteAll("GENERATED_F2");
-        dbHelper.deleteAll("GENERATED_COLUMN_DEP");
-        dbHelper.deleteAll("GENERATED_COLUMN_TEST");
-
+    @Before
+    public void testSetUp() throws Exception {
         joinTable = new TableHelper(dbHelper, "GENERATED_JOIN");
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/IncrementalFaultListIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/IncrementalFaultListIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/IncrementalFaultListIT.java
index 5faf72b..8b09ab5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/IncrementalFaultListIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/IncrementalFaultListIT.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.util.Util;
@@ -29,7 +30,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class IncrementalFaultListIT extends ServerCase {
 
 	@Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
index 8779b3f..62cc1fa 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/JointPrefetchIT.java
@@ -42,8 +42,10 @@ import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Date;
@@ -63,7 +65,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests joint prefetch handling by Cayenne access stack.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class JointPrefetchIT extends ServerCase {
 
     @Inject
@@ -82,14 +84,8 @@ public class JointPrefetchIT extends ServerCase {
     protected TableHelper tGallery;
     protected TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT"); // table artist_exhibit depends on artist and exhibit
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT"); // table exhibit depends on gallery
-        dbHelper.deleteAll("GALLERY");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/MiscTypesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/MiscTypesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/MiscTypesIT.java
index c43dbb0..30eecfc 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/MiscTypesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/MiscTypesIT.java
@@ -22,11 +22,11 @@ import org.apache.cayenne.MockSerializable;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.misc_types.ArraysEntity;
 import org.apache.cayenne.testdo.misc_types.CharacterEntity;
 import org.apache.cayenne.testdo.misc_types.SerializableEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.MISC_TYPES_PROJECT)
+@UseServerRuntime(CayenneProjects.MISC_TYPES_PROJECT)
 public class MiscTypesIT extends ServerCase {
 
     @Inject
@@ -46,19 +46,6 @@ public class MiscTypesIT extends ServerCase {
     @Inject
     private UnitDbAdapter accessStackAdapter;
     
-    @Inject 
-    private DBHelper dbHelper;
-    
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        if(accessStackAdapter.supportsLobs()) {
-            dbHelper.deleteAll("SERIALIZABLE_ENTITY");
-        }
-        
-        dbHelper.deleteAll("ARRAYS_ENTITY");
-        dbHelper.deleteAll("CHARACTER_ENTITY");
-    }
-
     @Test
     public void testSerializable() throws Exception {
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextLocalCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextLocalCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextLocalCacheIT.java
index 74c2b41..2c7cb06 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextLocalCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextLocalCacheIT.java
@@ -24,8 +24,8 @@ import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.QueryCacheStrategy;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,7 +35,7 @@ import java.util.List;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContextLocalCacheIT extends ServerCase {
 
     @Inject
@@ -44,20 +44,6 @@ public class NestedDataContextLocalCacheIT extends ServerCase {
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("EXHIBIT");
-        dbHelper.deleteAll("GALLERY");
-    }
-
     @Test
     public void testLocalCacheStaysLocal() {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java
index f3309db..34512bf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentEventsIT.java
@@ -24,6 +24,7 @@ import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -33,7 +34,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContextParentEventsIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java
index e653f68..3b62cbf 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextParentPeerEventsIT.java
@@ -25,6 +25,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.relationships_child_master.Child;
 import org.apache.cayenne.testdo.relationships_child_master.Master;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,7 +36,7 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.RELATIONSHIPS_CHILD_MASTER_PROJECT)
+@UseServerRuntime(CayenneProjects.RELATIONSHIPS_CHILD_MASTER_PROJECT)
 public class NestedDataContextParentPeerEventsIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java
index 2b3c306..5c71361 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextPeerEventsIT.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -35,7 +36,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContextPeerEventsIT extends ServerCase {
 
 	@Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
index 6f87de4..ad9dd99 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextReadIT.java
@@ -37,8 +37,10 @@ import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.sql.Types;
@@ -54,7 +56,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContextReadIT extends ServerCase {
 
     @Inject
@@ -72,14 +74,8 @@ public class NestedDataContextReadIT extends ServerCase {
     private TableHelper tArtist;
     private TableHelper tPainting;
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
+    @Before
+    public void testSetUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextRollbackIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextRollbackIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextRollbackIT.java
index 5adc512..af318c7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextRollbackIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextRollbackIT.java
@@ -22,6 +22,7 @@ import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -29,7 +30,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContextRollbackIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextValidationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextValidationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextValidationIT.java
index af65367..b7e0c58 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextValidationIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/NestedDataContextValidationIT.java
@@ -22,8 +22,8 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.apache.cayenne.validation.ValidationException;
@@ -33,7 +33,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class NestedDataContextValidationIT extends ServerCase {
 
     @Inject
@@ -42,18 +42,6 @@ public class NestedDataContextValidationIT extends ServerCase {
     @Inject
     private DataContext context;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-    }
-
     @Test
     public void testValidateOnCommitToParent() {
         context.setValidatingObjectsOnCommit(true);


[39/39] cayenne git commit: Merge branch 'master' into CAY-1946_1

Posted by aa...@apache.org.
Merge branch 'master' into CAY-1946_1

Conflicts:
	cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
	cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
	plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/571a1370
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/571a1370
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/571a1370

Branch: refs/heads/CAY-1946_1
Commit: 571a1370a79f98d9f45d20a84044230f3a4f7238
Parents: 67ac9ec acf54ba
Author: aadamchik <aa...@apache.org>
Authored: Thu Nov 27 10:02:57 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Thu Nov 27 10:07:05 2014 +0300

----------------------------------------------------------------------
 .../apache/cayenne/CayenneContextCayenneIT.java |   13 +-
 .../CayenneContextClientChannelEventsIT.java    |   14 +-
 .../cayenne/CayenneContextDeleteRulesIT.java    |    3 +-
 .../apache/cayenne/CayenneContextEJBQLIT.java   |   11 +-
 .../CayenneContextGraphDiffCompressorIT.java    |    3 +-
 .../org/apache/cayenne/CayenneContextIT.java    |    3 +-
 .../cayenne/CayenneContextInheritanceIT.java    |   11 +-
 .../CayenneContextMapRelationshipIT.java        |   11 +-
 .../cayenne/CayenneContextMeaningfulPKIT.java   |   10 +-
 .../cayenne/CayenneContextMergeHandlerIT.java   |    3 +-
 .../CayenneContextNamedQueryCachingIT.java      |   11 +-
 .../CayenneContextPaginatedListCachingIT.java   |   11 +-
 .../cayenne/CayenneContextPrimitiveIT.java      |   10 +-
 .../cayenne/CayenneContextReflexiveIT.java      |    3 +-
 .../cayenne/CayenneContextRefreshQueryIT.java   |   11 +-
 .../cayenne/CayenneContextRelationshipsIT.java  |   14 +-
 .../cayenne/CayenneContextSQLTemplateIT.java    |   13 +-
 .../cayenne/CayenneContextServerDiffsIT.java    |    3 +-
 .../cayenne/CayenneContextValidationIT.java     |   13 +-
 .../CayenneContextWithDataContextIT.java        |   11 +-
 .../apache/cayenne/NestedCayenneContextIT.java  |   16 +-
 .../cayenne/NestedCayenneContextTooneIT.java    |    4 +-
 .../cayenne/PersistentObjectInContextIT.java    |   11 +-
 .../cayenne/access/ClientServerChannelIT.java   |   12 +-
 .../access/ClientServerChannelQueryIT.java      |   11 +-
 .../cayenne/query/ClientExpressionIT.java       |   13 +-
 .../query/ClientSelectQueryExpressionIT.java    |   11 +-
 .../query/SelectQueryAbstractEntityIT.java      |   13 +-
 .../remote/CayenneContextDeletionIT.java        |    4 +-
 .../remote/ClientChannelServerDiffsIT.java      |    3 +-
 .../cayenne/remote/LightSuperClassIT.java       |   19 +-
 .../remote/NestedObjectContextLocalIT.java      |    4 +-
 .../NestedObjectContextParentEventsIT.java      |   16 +-
 .../remote/NestedObjectContextPeerEventsIT.java |   16 +-
 .../remote/NestedObjectContextRollbackIT.java   |    4 +-
 .../cayenne/remote/ROPPrefetchToManyMapIT.java  |   14 +-
 .../cayenne/remote/RelationshipChangeIT.java    |    4 +-
 .../cayenne/remote/RemoteCallbacksIT.java       |   11 +-
 .../cayenne/remote/RemoteCayenneCase.java       |    9 +-
 .../remote/RemoteIncrementalFaultListIT.java    |   11 +-
 .../apache/cayenne/remote/RemoteRollbackIT.java |    4 +-
 .../apache/cayenne/remote/ValueInjectorIT.java  |    4 +-
 .../cayenne/unit/di/client/ClientCase.java      |   21 +-
 .../unit/di/client/ClientCaseSelfIT.java        |    7 +-
 .../cayenne/util/ObjectDetachOperationIT.java   |   11 +-
 .../util/ShallowMergeOperation_ClientIT.java    |   14 +-
 .../configuration/ConfigurationNameMapper.java  |   35 +-
 .../apache/cayenne/configuration/Constants.java |  298 ++---
 .../configuration/DataChannelDescriptor.java    |  268 +++--
 .../DefaultConfigurationNameMapper.java         |  168 +--
 .../XMLDataChannelDescriptorLoader.java         |  761 ++++++-------
 .../server/DataDomainProvider.java              |  241 ++--
 .../server/ServerRuntimeBuilder.java            |  348 +++---
 .../server/SyntheticNodeDataDomainProvider.java |   27 +-
 .../org/apache/cayenne/dba/JdbcPkGenerator.java |   30 +-
 .../apache/cayenne/ejbql/parser/Compiler.java   |    3 +
 .../apache/cayenne/exp/ExpressionFactory.java   |  179 +--
 .../cayenne/exp/LikeExpressionHelper.java       |  151 +++
 .../java/org/apache/cayenne/exp/Property.java   |   99 +-
 .../org/apache/cayenne/query/ObjectSelect.java  |   47 +-
 .../main/java/org/apache/cayenne/util/Util.java | 1035 +++++++++---------
 .../cayenne/CDOCollectionRelationshipIT.java    |   11 +-
 .../java/org/apache/cayenne/CDOMany2OneIT.java  |   16 +-
 .../org/apache/cayenne/CDOMany2OneNoRevIT.java  |    3 +-
 .../apache/cayenne/CDOMapRelationshipIT.java    |   14 +-
 .../java/org/apache/cayenne/CDOOne2ManyIT.java  |   17 +-
 .../org/apache/cayenne/CDOOne2OneDepIT.java     |    3 +-
 .../org/apache/cayenne/CDOOneDep2OneIT.java     |    3 +-
 .../org/apache/cayenne/CDOOneToManyFKIT.java    |   14 +-
 .../org/apache/cayenne/CDOOneToOneFKIT.java     |   13 +-
 .../apache/cayenne/CDOQualifiedEntitiesIT.java  |   11 +-
 .../apache/cayenne/CDOReflexiveRelDeleteIT.java |    9 +-
 .../org/apache/cayenne/CDOReflexiveRelIT.java   |    3 +-
 .../apache/cayenne/CDOSetRelationshipIT.java    |   11 +-
 .../org/apache/cayenne/CayenneCompoundIT.java   |   12 +-
 .../org/apache/cayenne/CayenneDOTestBase.java   |   20 +-
 .../CayenneDataObjectFlattenedRelIT.java        |   17 +-
 .../org/apache/cayenne/CayenneDataObjectIT.java |    3 +-
 .../cayenne/CayenneDataObjectInContextIT.java   |   14 +-
 .../CayenneDataObjectRelationshipsIT.java       |   14 +-
 .../cayenne/CayenneDataObjectValidationIT.java  |    3 +-
 .../test/java/org/apache/cayenne/CayenneIT.java |   14 +-
 .../org/apache/cayenne/CompoundPkChangeIT.java  |   13 +-
 .../cayenne/DataContextMaxIdQualifierIT.java    |   14 +-
 .../cayenne/DataObjectSerializationIT.java      |    3 +-
 .../cayenne/FlattenedRelationshipsIT.java       |   16 +-
 .../org/apache/cayenne/GenericMappingIT.java    |   13 +-
 .../org/apache/cayenne/ManyToManyNoJoinIT.java  |   13 +-
 .../java/org/apache/cayenne/MeaningfulFKIT.java |   12 +-
 .../apache/cayenne/OneWayRelationshipsIT.java   |   14 +-
 .../cayenne/PersistenceByReachabilityIT.java    |    3 +-
 .../org/apache/cayenne/PersistentObjectIT.java  |    3 +-
 .../org/apache/cayenne/PregeneratedPKIT.java    |   18 +-
 .../cayenne/access/DataContextBinaryPKIT.java   |   15 +-
 .../cayenne/access/DataContextBlobIT.java       |   14 +-
 .../cayenne/access/DataContextCallbacksIT.java  |   21 +-
 .../cayenne/access/DataContextCharPKIT.java     |   13 +-
 .../cayenne/access/DataContextCharTypeIT.java   |   12 +-
 .../cayenne/access/DataContextClobIT.java       |   14 +-
 .../cayenne/access/DataContextCommitIT.java     |   17 +-
 .../access/DataContextCompoundRelIT.java        |   13 +-
 .../cayenne/access/DataContextCrossDBIT.java    |    3 +-
 .../access/DataContextDataChannelEventsIT.java  |    3 +-
 .../access/DataContextDecoratedStackIT.java     |   16 +-
 .../cayenne/access/DataContextDelegateIT.java   |   21 +-
 .../DataContextDelegateSharedCacheIT.java       |    8 +-
 .../access/DataContextDeleteRulesIT.java        |   16 +-
 .../DataContextDisjointByIdPrefetchIT.java      |   14 +-
 ...ataContextDisjointByIdPrefetch_ExtrasIT.java |   15 +-
 .../access/DataContextEJBQLArrayResultIT.java   |   14 +-
 .../access/DataContextEJBQLConditionsIT.java    |   14 +-
 .../DataContextEJBQLConditionsPeopleIT.java     |   52 +-
 ...extEJBQLDateTimeFunctionalExpressionsIT.java |   12 +-
 .../access/DataContextEJBQLDeleteIT.java        |   14 +-
 .../access/DataContextEJBQLDeletePKIT.java      |   11 +-
 .../access/DataContextEJBQLFetchJoinIT.java     |   16 +-
 ...ataContextEJBQLFlattenedRelationshipsIT.java |   15 +-
 ...DataContextEJBQLFunctionalExpressionsIT.java |   16 +-
 .../access/DataContextEJBQLGroupByHavingIT.java |   16 +-
 .../access/DataContextEJBQLInheritanceIT.java   |   34 +-
 .../access/DataContextEJBQLIsNullIT.java        |   14 +-
 .../cayenne/access/DataContextEJBQLJoinsIT.java |   16 +-
 .../DataContextEJBQLNumericalFunctionalIT.java  |   12 +-
 .../access/DataContextEJBQLOrderByIT.java       |   14 +-
 .../access/DataContextEJBQLQueryCompoundIT.java |   11 +-
 .../cayenne/access/DataContextEJBQLQueryIT.java |   14 +-
 .../access/DataContextEJBQLSubqueryIT.java      |   15 +-
 .../DataContextEJBQLUpdateCompoundIT.java       |   11 +-
 .../access/DataContextEJBQLUpdateIT.java        |   14 +-
 .../DataContextEntityWithMeaningfulPKIT.java    |   12 +-
 .../DataContextExtendedTypeOperationsIT.java    |   12 +-
 .../cayenne/access/DataContextExtrasIT.java     |   15 +-
 .../DataContextFlattenedAttributesIT.java       |   14 +-
 .../apache/cayenne/access/DataContextIT.java    |   16 +-
 .../access/DataContextJoinAliasesIT.java        |   13 +-
 .../access/DataContextLocalObjectIT.java        |   16 +-
 .../cayenne/access/DataContextNoPkIT.java       |    8 +-
 .../access/DataContextObjectIdQueryIT.java      |   17 +-
 .../access/DataContextObjectTrackingIT.java     |   14 +-
 .../cayenne/access/DataContextOrderingIT.java   |   17 +-
 .../cayenne/access/DataContextOuterJoinsIT.java |    9 +-
 .../access/DataContextPaginatedQueryIT.java     |   13 +-
 .../access/DataContextPerformQueryAPIIT.java    |   16 +-
 .../access/DataContextPrefetchExtras1IT.java    |   12 +-
 .../access/DataContextPrefetchExtrasIT.java     |   14 +-
 .../cayenne/access/DataContextPrefetchIT.java   |   19 +-
 .../access/DataContextPrefetchMultistepIT.java  |   16 +-
 .../DataContextPrefetchQualifierOverlapIT.java  |   13 +-
 .../access/DataContextProcedureQueryIT.java     |   28 +-
 .../access/DataContextQualifiedEntityIT.java    |   33 +-
 .../DataContextQueryCachingEhCacheIT.java       |   20 +-
 .../access/DataContextQueryCachingIT.java       |   19 +-
 .../DataContextQueryCachingOSCacheIT.java       |   15 +-
 .../cayenne/access/DataContextQueryChainIT.java |   17 +-
 .../access/DataContextRefreshQueryIT.java       |   14 +-
 .../cayenne/access/DataContextRefreshingIT.java |   14 +-
 .../access/DataContextRelationshipQueryIT.java  |   15 +-
 .../cayenne/access/DataContextRollbackIT.java   |   16 +-
 .../DataContextSQLTemplateCompoundIT.java       |   11 +-
 .../access/DataContextSQLTemplateIT.java        |   14 +-
 .../DataContextSelectQuerySplitAliasesIT.java   |   15 +-
 .../access/DataContextSerializationIT.java      |   19 +-
 .../access/DataContextSharedCacheEmpiricIT.java |   14 +-
 .../access/DataContextSharedCacheIT.java        |   21 +-
 .../cayenne/access/DataContextValidationIT.java |   17 +-
 .../cayenne/access/DataDomainCallbacksIT.java   |   18 +-
 .../cayenne/access/DataDomainFiltersIT.java     |    3 +-
 .../org/apache/cayenne/access/DataDomainIT.java |    3 +-
 .../cayenne/access/DataDomainQueryActionIT.java |   22 +-
 .../org/apache/cayenne/access/DataNodeIT.java   |    3 +-
 .../cayenne/access/DataNodeQueriesIT.java       |   14 +-
 .../apache/cayenne/access/DataRowStoreIT.java   |    3 +-
 .../apache/cayenne/access/DataRowUtilsIT.java   |   14 +-
 .../apache/cayenne/access/DateTimeTypesIT.java  |   13 +-
 .../apache/cayenne/access/DbGeneratorIT.java    |    8 +-
 .../org/apache/cayenne/access/DbLoaderIT.java   |   13 +-
 .../cayenne/access/DbLoaderPartialIT.java       |   25 +-
 .../apache/cayenne/access/DeleteObjectIT.java   |   14 +-
 .../apache/cayenne/access/DeleteRulesIT.java    |   17 +-
 .../org/apache/cayenne/access/EmbeddingIT.java  |   12 +-
 .../cayenne/access/EntityInheritanceIT.java     |    3 +-
 .../java/org/apache/cayenne/access/EnumIT.java  |    9 +-
 .../cayenne/access/FlattenedArcKeyIT.java       |    3 +-
 .../cayenne/access/FlattenedPrefetchIT.java     |   15 +-
 .../FlattenedRelationshipInContextIT.java       |   14 +-
 .../cayenne/access/IdentityColumnsIT.java       |   15 +-
 .../cayenne/access/IncrementalFaultListIT.java  |    3 +-
 .../apache/cayenne/access/JointPrefetchIT.java  |   14 +-
 .../org/apache/cayenne/access/MiscTypesIT.java  |   17 +-
 .../access/NestedDataContextLocalCacheIT.java   |   18 +-
 .../access/NestedDataContextParentEventsIT.java |    3 +-
 .../NestedDataContextParentPeerEventsIT.java    |    3 +-
 .../access/NestedDataContextPeerEventsIT.java   |    3 +-
 .../cayenne/access/NestedDataContextReadIT.java |   14 +-
 .../access/NestedDataContextRollbackIT.java     |    3 +-
 .../access/NestedDataContextValidationIT.java   |   16 +-
 .../access/NestedDataContextWriteIT.java        |   14 +-
 .../access/NestedDataContext_DeadlockIT.java    |   14 +-
 .../apache/cayenne/access/NumericTypesIT.java   |   13 +-
 .../access/ObjectStoreDiffRetainingIT.java      |   14 +-
 .../apache/cayenne/access/ObjectStoreGCIT.java  |   16 +-
 .../apache/cayenne/access/ObjectStoreIT.java    |    3 +-
 .../cayenne/access/OptimisticLockingIT.java     |   12 +-
 .../access/PrefetchProcessorTreeBuilderIT.java  |    3 +-
 .../cayenne/access/PrimitiveAttributesIT.java   |   12 +-
 .../cayenne/access/QuotedIdentifiersIT.java     |   14 +-
 .../cayenne/access/ReturnTypesMappingIT.java    |   16 +-
 .../SimpleIdIncrementalFaultListDataRowsIT.java |   14 +-
 .../access/SimpleIdIncrementalFaultListIT.java  |   14 +-
 .../SimpleIdIncrementalFaultListPrefetchIT.java |   14 +-
 .../access/SingleTableInheritance1IT.java       |   16 +-
 .../access/SingleTableInheritanceIT.java        |   79 +-
 .../org/apache/cayenne/access/ToManyListIT.java |   16 +-
 .../cayenne/access/TransactionThreadIT.java     |   16 +-
 .../java/org/apache/cayenne/access/UUIDIT.java  |   11 +-
 .../cayenne/access/UserTransactionIT.java       |    3 +-
 .../cayenne/access/VerticalInheritanceIT.java   |   19 +-
 .../access/dbsync/SchemaUpdateStrategyBase.java |   21 +-
 .../access/dbsync/SchemaUpdateStrategyIT.java   |    4 +-
 .../ThrowOnPartialOrCreateSchemaStrategyIT.java |    4 +-
 .../dbsync/ThrowOnPartialSchemaStrategyIT.java  |    4 +-
 .../access/jdbc/BatchActionGeneratedIT.java     |    3 +-
 .../cayenne/access/jdbc/BatchActionIT.java      |    3 +-
 .../access/jdbc/BatchActionLockingIT.java       |    3 +-
 .../access/jdbc/SQLTemplateActionIT.java        |   14 +-
 .../cayenne/access/jdbc/SelectActionIT.java     |   16 +-
 .../batch/DefaultBatchTranslatorIT.java         |    3 +-
 .../batch/DeleteBatchTranslatorIT.java          |    3 +-
 .../batch/InsertBatchTranslatorIT.java          |    3 +-
 .../batch/SoftDeleteBatchTranslatorIT.java      |    3 +-
 .../batch/UpdateBatchTranslatorIT.java          |    3 +-
 .../ejbql/EJBQLSelectTranslatorIT.java          |    3 +-
 .../translator/select/OrderingTranslatorIT.java |   13 +-
 .../select/QualifierTranslatorIT.java           |   13 +-
 .../translator/select/QueryAssemblerIT.java     |   13 +-
 .../translator/select/SelectTranslatorIT.java   |   19 +-
 .../access/util/DefaultOperationObserverIT.java |    3 +-
 .../cayenne/ashwood/AshwoodEntitySorterIT.java  |   13 +-
 .../org/apache/cayenne/cache/QueryCacheIT.java  |    3 +-
 .../server/JNDIDataSourceFactoryIT.java         |    3 +-
 .../server/ServerRuntimeBuilderIT.java          |  108 ++
 .../server/ServerRuntimeBuilderTest.java        |   53 +-
 .../ServerRuntimeBuilder_InAction_IT.java       |   95 --
 .../org/apache/cayenne/conn/PoolManagerIT.java  |    3 +-
 .../org/apache/cayenne/dba/AutoAdapterIT.java   |    3 +-
 .../cayenne/dba/ConcurrentPkGeneratorIT.java    |    3 +-
 .../org/apache/cayenne/dba/JdbcAdapterIT.java   |    3 +-
 .../apache/cayenne/dba/JdbcPkGeneratorIT.java   |   15 +-
 .../org/apache/cayenne/dba/PkGeneratorIT.java   |    9 +-
 .../org/apache/cayenne/dba/TypesMappingIT.java  |    3 +
 .../cayenne/dba/hsqldb/HSQLDBAdapterIT.java     |    3 +-
 .../cayenne/dba/mysql/MySQLAdapterIT.java       |    3 +-
 .../cayenne/dba/oracle/Oracle8AdapterIT.java    |    3 +-
 .../cayenne/dba/oracle/OracleAdapterIT.java     |    3 +-
 .../cayenne/dba/oracle/OraclePkGeneratorIT.java |    8 +-
 .../cayenne/dba/postgres/PostgresAdapterIT.java |    3 +-
 .../dba/sqlserver/SQLServerAdapterIT.java       |    3 +-
 .../dba/sqlserver/SQLServerSnifferIT.java       |    3 +-
 .../ejbql/EJBQLCompiledExpressionIT.java        |    3 +-
 .../apache/cayenne/exp/ExpressionFactoryIT.java |  125 +++
 .../cayenne/exp/ExpressionFactoryTest.java      |  250 ++++-
 .../exp/ExpressionFactory_InContextIT.java      |  353 ------
 .../org/apache/cayenne/exp/ExpressionIT.java    |  128 +++
 .../cayenne/exp/Expression_InContextIT.java     |  142 ---
 .../cayenne/exp/ParsedExpQualifierCompatIT.java |   14 +-
 .../org/apache/cayenne/exp/PropertyTest.java    |  342 +++---
 .../parser/ExpressionEvaluateInMemoryIT.java    |   15 +-
 .../cayenne/map/ClientEntityResolverIT.java     |    3 +-
 .../java/org/apache/cayenne/map/DbEntityIT.java |    3 +-
 .../apache/cayenne/map/DbRelationshipIT.java    |    8 +-
 .../java/org/apache/cayenne/map/EntityIT.java   |    3 +-
 .../map/EntityResolverClassDescriptorIT.java    |    3 +-
 .../map/EntityResolverGenericStackIT.java       |    3 +-
 .../apache/cayenne/map/EntityResolverIT.java    |    3 +-
 .../map/EntityResolverInheritanceIT.java        |   12 +-
 .../apache/cayenne/map/MapLoaderLoadTest.java   |    2 +-
 .../org/apache/cayenne/map/ObjEntityIT.java     |   16 +-
 .../apache/cayenne/map/ObjRelationshipIT.java   |    8 +-
 .../cayenne/merge/AddColumnToModelIT.java       |    4 +-
 .../cayenne/merge/CreateTableToModelIT.java     |    4 +-
 .../cayenne/merge/DropColumnToModelIT.java      |    4 +-
 .../merge/DropRelationshipToModelIT.java        |    4 +-
 .../cayenne/merge/DropTableToModelIT.java       |    4 +-
 .../org/apache/cayenne/merge/MergeCase.java     |   14 +-
 .../apache/cayenne/merge/MergerFactoryIT.java   |    4 +-
 .../cayenne/merge/SetAllowNullToDbIT.java       |    4 +-
 .../apache/cayenne/merge/SetNotNullToDbIT.java  |   19 +-
 .../cayenne/merge/SetPrimaryKeyToDbIT.java      |    4 +-
 .../apache/cayenne/merge/ValueForNullIT.java    |    4 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java  |   36 +-
 .../cayenne/query/EJBQLQueryNumericIT.java      |   10 +-
 .../apache/cayenne/query/ObjectSelectTest.java  |   76 +-
 .../cayenne/query/ObjectSelect_CompileIT.java   |   23 +-
 .../cayenne/query/ObjectSelect_RunIT.java       |   30 +-
 .../cayenne/query/ProcedureQueryCacheKeyIT.java |    3 +-
 .../org/apache/cayenne/query/QueryChainIT.java  |    3 +-
 .../org/apache/cayenne/query/SQLSelectIT.java   |   12 +-
 .../cayenne/query/SQLTemplateCacheKeyIT.java    |    3 +-
 .../org/apache/cayenne/query/SQLTemplateIT.java |   14 +-
 .../org/apache/cayenne/query/SelectByIdIT.java  |   17 +-
 .../cayenne/query/SelectQueryCacheKeyIT.java    |    3 +-
 .../apache/cayenne/query/SelectQueryClobIT.java |   12 +-
 .../query/SelectQueryFetchLimitOrderingIT.java  |   14 +-
 .../org/apache/cayenne/query/SelectQueryIT.java |   12 +-
 .../SelectQueryPrefetchRouterActionIT.java      |    3 +-
 ...ryPrefetchRouterActionQualifiedEntityIT.java |   12 +-
 .../cayenne/query/SelectQueryReturnTypesIT.java |    8 +-
 .../cayenne/query/StatementFetchSizeIT.java     |    3 +-
 .../reflect/LifecycleCallbackRegistryIT.java    |    3 +-
 ...LifecycleCallbackRegistry_InheritanceIT.java |    3 +-
 .../reflect/MixedPersistenceStrategyIT.java     |   11 +-
 .../generic/DataObjectDescriptorFactoryIT.java  |    3 +-
 ...jectDescriptorFactory_InheritanceMapsIT.java |    3 +-
 .../cayenne/tx/DefaultTransactionManagerIT.java |    3 +-
 .../cayenne/unit/HSQLDBUnitDbAdapter.java       |    2 +-
 .../apache/cayenne/unit/MySQLUnitDbAdapter.java |    4 +-
 .../cayenne/unit/OracleUnitDbAdapter.java       |    2 +-
 .../cayenne/unit/PostgresUnitDbAdapter.java     |    2 +-
 .../cayenne/unit/SybaseUnitDbAdapter.java       |    4 +-
 .../java/org/apache/cayenne/unit/di/DICase.java |   40 +-
 .../apache/cayenne/unit/di/DICaseSelfIT.java    |    4 +-
 .../cayenne/unit/di/server/CayenneProjects.java |   79 ++
 .../cayenne/unit/di/server/DBCleaner.java       |   70 ++
 .../unit/di/server/DBCleanerProvider.java       |   40 +
 .../unit/di/server/PeopleProjectCase.java       |   38 +
 .../cayenne/unit/di/server/SchemaBuilder.java   |   23 +-
 .../cayenne/unit/di/server/ServerCase.java      |   58 +-
 .../unit/di/server/ServerCaseModule.java        |   14 +-
 .../unit/di/server/ServerCaseSelfIT.java        |    8 +-
 .../unit/di/server/UseServerRuntime.java        |    2 +
 .../org/apache/cayenne/unit/jira/CAY_115IT.java |   13 +-
 .../org/apache/cayenne/unit/jira/CAY_191IT.java |   17 +-
 .../org/apache/cayenne/unit/jira/CAY_194IT.java |    8 +-
 .../cayenne/util/DeepMergeOperationIT.java      |    3 +-
 .../util/DeepMergeOperationInheritanceIT.java   |   20 +-
 .../cayenne/util/EntityMergeSupportIT.java      |    4 +-
 .../cayenne/util/ShallowMergeOperationIT.java   |   14 +-
 .../cayenne/velocity/BindDirectiveIT.java       |   16 +-
 .../cayenne/velocity/ResultDirectiveIT.java     |   19 +-
 .../src/test/resources/cayenne-empty.xml        |    4 +
 cayenne-server/src/test/resources/empty.map.xml |    9 +
 .../src/test/resources/small-testmap.map.xml    |  225 ----
 .../src/test/resources/testmap.map.xml          |   10 +-
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |    5 +-
 docs/doc/src/main/resources/UPGRADE.txt         |   19 +-
 .../cayenne-guide/src/docbkx/expressions.xml    |   23 +
 .../src/docbkx/performance-tuning.xml           |   36 +
 .../cayenne-guide/src/docbkx/queries.xml        |   36 +-
 .../cayenne/modeler/pref/DataMapDefaults.java   |   21 +-
 .../cayenne/tools/DbImporterMojoTest.java       |   15 +-
 pom.xml                                         |   13 +
 351 files changed, 4487 insertions(+), 5024 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/571a1370/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
----------------------------------------------------------------------
diff --cc cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
index 04efb54,8ef7ef9..b6ba66e
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderIT.java
@@@ -50,10 -48,9 +53,10 @@@ import static org.junit.Assert.assertNo
  import static org.junit.Assert.assertNull;
  import static org.junit.Assert.assertTrue;
  
- @UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+ @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
  public class DbLoaderIT extends ServerCase {
  
 +    public static final DbLoaderConfiguration CONFIG = new DbLoaderConfiguration();
      @Inject
      private ServerRuntime runtime;
  

http://git-wip-us.apache.org/repos/asf/cayenne/blob/571a1370/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
----------------------------------------------------------------------
diff --cc cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
index 4cac2b2,9a3aba7..2a56b88
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DbLoaderPartialIT.java
@@@ -19,7 -19,7 +19,13 @@@
  
  package org.apache.cayenne.access;
  
++import static org.junit.Assert.assertEquals;
++import static org.junit.Assert.assertNotNull;
++
++import java.util.Collection;
++
  import org.apache.cayenne.CayenneException;
++import org.apache.cayenne.access.loader.DefaultDbLoaderDelegate;
  import org.apache.cayenne.dba.DbAdapter;
  import org.apache.cayenne.di.Inject;
  import org.apache.cayenne.map.DataMap;
@@@ -28,14 -28,16 +34,11 @@@ import org.apache.cayenne.unit.di.serve
  import org.apache.cayenne.unit.di.server.ServerCase;
  import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
  import org.apache.cayenne.unit.di.server.UseServerRuntime;
+ import org.junit.After;
+ import org.junit.Before;
  import org.junit.Test;
  
--import java.util.Collection;
--
--import static org.junit.Assert.assertEquals;
--import static org.junit.Assert.assertNotNull;
--
- @UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+ @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
  public class DbLoaderPartialIT extends ServerCase {
  
      @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/571a1370/cayenne-server/src/test/java/org/apache/cayenne/merge/MergeCase.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cayenne/blob/571a1370/docs/doc/src/main/resources/UPGRADE.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cayenne/blob/571a1370/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
----------------------------------------------------------------------


[22/39] cayenne git commit: CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)

Posted by aa...@apache.org.
CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/84b75143
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/84b75143
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/84b75143

Branch: refs/heads/CAY-1946_1
Commit: 84b751436a84d432fcd8b884f9c52cb2e00a72b4
Parents: 5fe5691
Author: aadamchik <aa...@apache.org>
Authored: Sat Nov 22 14:46:31 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Sat Nov 22 17:43:29 2014 +0300

----------------------------------------------------------------------
 docs/doc/src/main/resources/RELEASE-NOTES.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/84b75143/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index 851bb14..ec297f8 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -73,6 +73,7 @@ CAY-1965 Change version from 3.2 to 4.0
 CAY-1966 SQLTemplate/SQLSelect positional parameter binding
 CAY-1967 Deprecate SQLTemplate parameter batches
 CAY-1968 SQLSelect cleanup and omissions
+CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)
 
 Bug Fixes:
 


[32/39] cayenne git commit: ensuring PEOPLE schema is consistently cleaned up via a common superclass

Posted by aa...@apache.org.
ensuring PEOPLE schema is consistently cleaned up via a common superclass


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3d826479
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3d826479
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3d826479

Branch: refs/heads/CAY-1946_1
Commit: 3d8264792c1ac0ed1a1a2ebe2c8b76edf01ff673
Parents: ccb180e
Author: aadamchik <aa...@apache.org>
Authored: Mon Nov 24 20:26:59 2014 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Mon Nov 24 20:36:29 2014 +0300

----------------------------------------------------------------------
 .../DataContextEJBQLConditionsPeopleIT.java     | 49 +++----------
 .../access/DataContextEJBQLInheritanceIT.java   | 31 ++------
 .../access/DataContextQualifiedEntityIT.java    | 23 ++----
 .../access/SingleTableInheritanceIT.java        | 75 ++++++--------------
 .../map/EntityResolverInheritanceIT.java        | 13 ++--
 ...ryPrefetchRouterActionQualifiedEntityIT.java | 13 ++--
 .../unit/di/server/PeopleProjectCase.java       | 38 ++++++++++
 .../unit/di/server/UseServerRuntime.java        |  2 +
 .../util/DeepMergeOperationInheritanceIT.java   | 31 +++-----
 9 files changed, 106 insertions(+), 169 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
index 05078ee..3aaa6bd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
@@ -18,58 +18,29 @@
  ****************************************************************/
 package org.apache.cayenne.access;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.inheritance_people.Address;
 import org.apache.cayenne.testdo.inheritance_people.Department;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.DBCleaner;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.apache.cayenne.unit.di.server.PeopleProjectCase;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.sql.Types;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
-public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
-
-    @Inject
-    private DBHelper dbHelper;
+public class DataContextEJBQLConditionsPeopleIT extends PeopleProjectCase {
 
     @Inject
     private ObjectContext context;
 
-    @Inject
-    protected DBCleaner dbCleaner;
-
-    @Override
-    public void cleanUpDB() throws Exception {
-        TableHelper tPerson = new TableHelper(dbHelper, "PERSON");
-        tPerson.setColumns(
-                "PERSON_ID",
-                "NAME",
-                "PERSON_TYPE",
-                "SALARY",
-                "CLIENT_COMPANY_ID",
-                "DEPARTMENT_ID");
-
-        // manually break circular deps
-        tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
-        dbCleaner.clean();
-    }
-
     @Before
     public void setUp() {
         // TODO: use TableHelper to create test data

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
index 5a8068e..671fbb6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
@@ -18,6 +18,11 @@
  ****************************************************************/
 package org.apache.cayenne.access;
 
+import static org.junit.Assert.assertEquals;
+
+import java.sql.Types;
+import java.util.List;
+
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.EJBQLQuery;
@@ -26,37 +31,15 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.inheritance_people.CustomerRepresentative;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.DBCleaner;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.apache.cayenne.unit.di.server.PeopleProjectCase;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.sql.Types;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-
-@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
-public class DataContextEJBQLInheritanceIT extends ServerCase {
+public class DataContextEJBQLInheritanceIT extends PeopleProjectCase {
 
     @Inject
     protected ObjectContext context;
 
-    @Inject
-    protected DBHelper dbHelper;
-
-    @Inject
-    protected DBCleaner dbCleaner;
-
-    @Override
-    public void cleanUpDB() throws Exception {
-        // manually break circular deps
-        dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute();
-        dbCleaner.clean();
-    }
-
     @Before
     public void setUp() throws Exception {
         TableHelper person = new TableHelper(dbHelper, "PERSON");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
index 6ac1c65..3602a05 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
@@ -19,37 +19,28 @@
 
 package org.apache.cayenne.access;
 
+import static org.junit.Assert.assertEquals;
+
+import java.sql.Types;
+import java.util.List;
+
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.inheritance_people.AbstractPerson;
 import org.apache.cayenne.testdo.inheritance_people.CustomerRepresentative;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.apache.cayenne.unit.di.server.PeopleProjectCase;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.sql.Types;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- */
-@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
-public class DataContextQualifiedEntityIT extends ServerCase {
+public class DataContextQualifiedEntityIT extends PeopleProjectCase {
 
     @Inject
     protected ObjectContext context;
 
-    @Inject
-    protected DBHelper dbHelper;
-
     protected TableHelper tPerson;
 
     @Before

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
index fd0d9dc..c84572f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java
@@ -19,6 +19,15 @@
 
 package org.apache.cayenne.access;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import java.sql.Types;
+import java.util.Arrays;
+import java.util.List;
+
 import org.apache.cayenne.Cayenne;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.ExpressionFactory;
@@ -26,7 +35,6 @@ import org.apache.cayenne.query.PrefetchTreeNode;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.query.SortOrder;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.inheritance_people.AbstractPerson;
 import org.apache.cayenne.testdo.inheritance_people.Address;
@@ -38,30 +46,11 @@ import org.apache.cayenne.testdo.inheritance_people.Manager;
 import org.apache.cayenne.testdo.inheritance_people.PersonNotes;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.DBCleaner;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.apache.cayenne.unit.di.server.PeopleProjectCase;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.sql.Types;
-import java.util.Arrays;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-
-@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
-public class SingleTableInheritanceIT extends ServerCase {
-
-    @Inject
-    private DBHelper dbHelper;
-
-    @Inject
-    private DBCleaner dbCleaner;
+public class SingleTableInheritanceIT extends PeopleProjectCase {
 
     @Inject
     private DataContext context;
@@ -77,39 +66,21 @@ public class SingleTableInheritanceIT extends ServerCase {
     private TableHelper tClientCompany;
     private TableHelper tDepartment;
 
-    @Override
-    public void cleanUpDB() throws Exception {
-        tPerson = new TableHelper(dbHelper, "PERSON");
-        tPerson.setColumns(
-                "PERSON_ID",
-                "NAME",
-                "PERSON_TYPE",
-                "SALARY",
-                "CLIENT_COMPANY_ID",
-                "DEPARTMENT_ID").setColumnTypes(
-                Types.INTEGER,
-                Types.VARCHAR,
-                Types.CHAR,
-                Types.FLOAT,
-                Types.INTEGER,
-                Types.INTEGER);
-
-        // manually break circular deps
-        tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
-        dbCleaner.clean();
-    }
-
     @Before
-    public void setUp() {
-        tAddress = new TableHelper(dbHelper, "ADDRESS");
-        tAddress.setColumns("ADDRESS_ID", "CITY", "PERSON_ID");
+	public void setUp() {
+		tAddress = new TableHelper(dbHelper, "ADDRESS");
+		tAddress.setColumns("ADDRESS_ID", "CITY", "PERSON_ID");
 
-        tClientCompany = new TableHelper(dbHelper, "CLIENT_COMPANY");
-        tClientCompany.setColumns("CLIENT_COMPANY_ID", "NAME");
+		tClientCompany = new TableHelper(dbHelper, "CLIENT_COMPANY");
+		tClientCompany.setColumns("CLIENT_COMPANY_ID", "NAME");
 
-        tDepartment = new TableHelper(dbHelper, "DEPARTMENT");
-        tDepartment.setColumns("DEPARTMENT_ID", "NAME");
-    }
+		tDepartment = new TableHelper(dbHelper, "DEPARTMENT");
+		tDepartment.setColumns("DEPARTMENT_ID", "NAME");
+
+		tPerson = new TableHelper(dbHelper, "PERSON").setColumns("PERSON_ID", "NAME", "PERSON_TYPE", "SALARY",
+				"CLIENT_COMPANY_ID", "DEPARTMENT_ID").setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.CHAR,
+				Types.FLOAT, Types.INTEGER, Types.INTEGER);
+	}
 
     private void create2PersonDataSet() throws Exception {
         tPerson.insert(1, "E1", "EE", null, null, null);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
index 770a57a..bcf485f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java
@@ -19,19 +19,16 @@
 
 package org.apache.cayenne.map;
 
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.junit.Test;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 
-@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
-public class EntityResolverInheritanceIT extends ServerCase {
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.unit.di.server.PeopleProjectCase;
+import org.junit.Test;
+
+public class EntityResolverInheritanceIT extends PeopleProjectCase {
 
     @Inject
     private EntityResolver resolver;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
index 2222404..b9754e9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java
@@ -19,6 +19,9 @@
 
 package org.apache.cayenne.query;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
@@ -27,16 +30,10 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.testdo.inheritance_people.Department;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.apache.cayenne.unit.di.server.PeopleProjectCase;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-
-@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
-public class SelectQueryPrefetchRouterActionQualifiedEntityIT extends ServerCase {
+public class SelectQueryPrefetchRouterActionQualifiedEntityIT extends PeopleProjectCase {
 
     @Inject
     private EntityResolver resolver;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java
new file mode 100644
index 0000000..a084b13
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java
@@ -0,0 +1,38 @@
+/*****************************************************************
+ *   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.cayenne.unit.di.server;
+
+import java.sql.Types;
+
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.test.jdbc.DBHelper;
+
+@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
+public class PeopleProjectCase extends ServerCase {
+
+	@Inject
+	protected DBHelper dbHelper;
+
+	@Override
+	public void cleanUpDB() throws Exception {
+		// manually break circular deps
+		dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute();
+		super.cleanUpDB();
+	}
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java
index 29a2798..c34d59a 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java
@@ -20,6 +20,7 @@ package org.apache.cayenne.unit.di.server;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
@@ -31,6 +32,7 @@ import java.lang.annotation.Target;
 @Target(ElementType.TYPE)
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
+@Inherited
 public @interface UseServerRuntime {
 
     String value();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
index d79fe8d..c31ca91 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java
@@ -19,31 +19,26 @@
 
 package org.apache.cayenne.util;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.sql.SQLException;
+
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.inheritance_people.Department;
 import org.apache.cayenne.testdo.inheritance_people.Employee;
 import org.apache.cayenne.testdo.inheritance_people.Manager;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
-import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.junit.After;
+import org.apache.cayenne.unit.di.server.PeopleProjectCase;
 import org.junit.Test;
 
-import java.sql.SQLException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT)
-public class DeepMergeOperationInheritanceIT extends ServerCase {
+public class DeepMergeOperationInheritanceIT extends PeopleProjectCase {
 
     @Inject
     private DataContext context;
@@ -54,14 +49,6 @@ public class DeepMergeOperationInheritanceIT extends ServerCase {
     @Inject
     protected DataChannelInterceptor queryInterceptor;
 
-    @Inject
-    private DBHelper dbHelper;
-
-    @After
-    public void tearDown() throws SQLException {
-        dbHelper.deleteAll("PERSON");
-    }
-
     @Test
     public void testDeepMergeExistingSubclass() {
 


[30/39] cayenne git commit: fixing tests

Posted by aa...@apache.org.
fixing tests


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/dcaea3fb
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/dcaea3fb
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/dcaea3fb

Branch: refs/heads/CAY-1946_1
Commit: dcaea3fb4ae9bd68602b6060ab051fa25b221510
Parents: fba700d
Author: Savva Kolbachev <s....@gmail.com>
Authored: Mon Nov 24 16:36:39 2014 +0300
Committer: Savva Kolbachev <s....@gmail.com>
Committed: Mon Nov 24 16:36:39 2014 +0300

----------------------------------------------------------------------
 .../CayenneContextClientChannelEventsIT.java    |  2 +-
 .../apache/cayenne/CayenneContextEJBQLIT.java   |  2 +-
 .../cayenne/CayenneContextInheritanceIT.java    |  2 +-
 .../CayenneContextMapRelationshipIT.java        |  2 +-
 .../cayenne/CayenneContextMeaningfulPKIT.java   |  2 +-
 .../CayenneContextNamedQueryCachingIT.java      |  2 +-
 .../CayenneContextPaginatedListCachingIT.java   |  2 +-
 .../cayenne/CayenneContextPrimitiveIT.java      |  2 +-
 .../cayenne/CayenneContextRefreshQueryIT.java   |  2 +-
 .../cayenne/CayenneContextRelationshipsIT.java  |  2 +-
 .../CayenneContextWithDataContextIT.java        |  2 +-
 .../cayenne/PersistentObjectInContextIT.java    |  2 +-
 .../cayenne/access/ClientServerChannelIT.java   |  2 +-
 .../access/ClientServerChannelQueryIT.java      |  2 +-
 .../cayenne/query/ClientExpressionIT.java       |  2 +-
 .../query/ClientSelectQueryExpressionIT.java    |  2 +-
 .../query/SelectQueryAbstractEntityIT.java      |  2 +-
 .../cayenne/remote/RemoteCallbacksIT.java       |  4 +-
 .../cayenne/remote/RemoteCayenneCase.java       |  6 +--
 .../remote/RemoteIncrementalFaultListIT.java    |  2 +-
 .../cayenne/unit/di/client/ClientCase.java      |  5 ++-
 .../unit/di/client/ClientCaseSelfIT.java        |  4 +-
 .../cayenne/util/ObjectDetachOperationIT.java   |  2 +-
 .../util/ShallowMergeOperation_ClientIT.java    |  2 +-
 .../cayenne/CDOCollectionRelationshipIT.java    |  2 +-
 .../java/org/apache/cayenne/CDOMany2OneIT.java  |  2 +-
 .../apache/cayenne/CDOMapRelationshipIT.java    |  2 +-
 .../java/org/apache/cayenne/CDOOne2ManyIT.java  |  2 +-
 .../apache/cayenne/CDOQualifiedEntitiesIT.java  |  2 +-
 .../apache/cayenne/CDOReflexiveRelDeleteIT.java |  2 +-
 .../apache/cayenne/CDOSetRelationshipIT.java    |  2 +-
 .../org/apache/cayenne/CayenneCompoundIT.java   |  2 +-
 .../CayenneDataObjectFlattenedRelIT.java        |  2 +-
 .../cayenne/CayenneDataObjectInContextIT.java   |  2 +-
 .../CayenneDataObjectRelationshipsIT.java       |  2 +-
 .../test/java/org/apache/cayenne/CayenneIT.java |  2 +-
 .../cayenne/DataContextMaxIdQualifierIT.java    |  2 +-
 .../cayenne/FlattenedRelationshipsIT.java       |  2 +-
 .../apache/cayenne/OneWayRelationshipsIT.java   |  2 +-
 .../cayenne/access/DataContextCallbacksIT.java  |  2 +-
 .../cayenne/access/DataContextDelegateIT.java   |  2 +-
 .../DataContextDelegateSharedCacheIT.java       |  2 +-
 .../access/DataContextDeleteRulesIT.java        |  2 +-
 .../DataContextDisjointByIdPrefetchIT.java      |  2 +-
 ...ataContextDisjointByIdPrefetch_ExtrasIT.java |  2 +-
 .../access/DataContextEJBQLArrayResultIT.java   |  2 +-
 .../access/DataContextEJBQLConditionsIT.java    |  2 +-
 .../DataContextEJBQLConditionsPeopleIT.java     | 10 ++---
 .../access/DataContextEJBQLDeleteIT.java        |  2 +-
 .../access/DataContextEJBQLDeletePKIT.java      |  2 +-
 .../access/DataContextEJBQLFetchJoinIT.java     |  2 +-
 ...ataContextEJBQLFlattenedRelationshipsIT.java |  2 +-
 .../access/DataContextEJBQLGroupByHavingIT.java |  2 +-
 .../access/DataContextEJBQLInheritanceIT.java   | 10 ++---
 .../access/DataContextEJBQLIsNullIT.java        |  2 +-
 .../cayenne/access/DataContextEJBQLJoinsIT.java |  2 +-
 .../DataContextEJBQLNumericalFunctionalIT.java  |  2 +-
 .../access/DataContextEJBQLOrderByIT.java       |  2 +-
 .../access/DataContextEJBQLQueryCompoundIT.java |  2 +-
 .../cayenne/access/DataContextEJBQLQueryIT.java |  2 +-
 .../access/DataContextEJBQLSubqueryIT.java      |  2 +-
 .../DataContextEJBQLUpdateCompoundIT.java       |  2 +-
 .../access/DataContextEJBQLUpdateIT.java        |  2 +-
 .../cayenne/access/DataContextExtrasIT.java     |  2 +-
 .../apache/cayenne/access/DataContextIT.java    |  2 +-
 .../access/DataContextJoinAliasesIT.java        |  2 +-
 .../access/DataContextLocalObjectIT.java        |  2 +-
 .../cayenne/access/DataContextNoPkIT.java       |  2 +-
 .../access/DataContextObjectTrackingIT.java     |  2 +-
 .../cayenne/access/DataContextOuterJoinsIT.java |  2 +-
 .../access/DataContextPaginatedQueryIT.java     |  2 +-
 .../access/DataContextPerformQueryAPIIT.java    |  2 +-
 .../access/DataContextPrefetchExtrasIT.java     |  2 +-
 .../cayenne/access/DataContextPrefetchIT.java   |  2 +-
 .../access/DataContextPrefetchMultistepIT.java  |  2 +-
 .../access/DataContextQualifiedEntityIT.java    |  2 +-
 .../DataContextQueryCachingEhCacheIT.java       |  4 +-
 .../access/DataContextQueryCachingIT.java       |  4 +-
 .../DataContextQueryCachingOSCacheIT.java       |  2 +-
 .../access/DataContextRefreshQueryIT.java       |  2 +-
 .../cayenne/access/DataContextRefreshingIT.java |  2 +-
 .../access/DataContextRelationshipQueryIT.java  |  2 +-
 .../DataContextSQLTemplateCompoundIT.java       |  2 +-
 .../access/DataContextSQLTemplateIT.java        |  2 +-
 .../DataContextSelectQuerySplitAliasesIT.java   |  2 +-
 .../access/DataContextSerializationIT.java      |  4 +-
 .../access/DataContextSharedCacheEmpiricIT.java |  2 +-
 .../access/DataContextSharedCacheIT.java        |  2 +-
 .../cayenne/access/DataDomainQueryActionIT.java |  2 +-
 .../cayenne/access/DataNodeQueriesIT.java       |  2 +-
 .../apache/cayenne/access/DataRowUtilsIT.java   |  2 +-
 .../apache/cayenne/access/DbGeneratorIT.java    |  2 +-
 .../org/apache/cayenne/access/DbLoaderIT.java   |  4 +-
 .../cayenne/access/DbLoaderPartialIT.java       |  4 +-
 .../apache/cayenne/access/DeleteObjectIT.java   |  2 +-
 .../org/apache/cayenne/access/EmbeddingIT.java  |  2 +-
 .../cayenne/access/FlattenedPrefetchIT.java     |  2 +-
 .../FlattenedRelationshipInContextIT.java       |  2 +-
 .../cayenne/access/IdentityColumnsIT.java       |  2 +-
 .../apache/cayenne/access/JointPrefetchIT.java  |  2 +-
 .../cayenne/access/NestedDataContextReadIT.java |  2 +-
 .../access/NestedDataContextWriteIT.java        |  2 +-
 .../access/NestedDataContext_DeadlockIT.java    |  2 +-
 .../apache/cayenne/access/NumericTypesIT.java   |  2 +-
 .../access/ObjectStoreDiffRetainingIT.java      |  2 +-
 .../cayenne/access/OptimisticLockingIT.java     |  2 +-
 .../cayenne/access/QuotedIdentifiersIT.java     |  2 +-
 .../SimpleIdIncrementalFaultListDataRowsIT.java |  2 +-
 .../access/SimpleIdIncrementalFaultListIT.java  |  2 +-
 .../SimpleIdIncrementalFaultListPrefetchIT.java |  2 +-
 .../access/SingleTableInheritanceIT.java        | 17 ++++-----
 .../java/org/apache/cayenne/access/UUIDIT.java  |  2 +-
 .../access/dbsync/SchemaUpdateStrategyBase.java |  3 +-
 .../access/jdbc/SQLTemplateActionIT.java        |  2 +-
 .../translator/select/OrderingTranslatorIT.java |  4 +-
 .../select/QualifierTranslatorIT.java           |  4 +-
 .../translator/select/QueryAssemblerIT.java     |  4 +-
 .../translator/select/SelectTranslatorIT.java   |  4 +-
 .../cayenne/ashwood/AshwoodEntitySorterIT.java  |  2 +-
 .../server/ServerRuntimeBuilderIT.java          | 13 +++----
 .../apache/cayenne/dba/JdbcPkGeneratorIT.java   |  4 +-
 .../org/apache/cayenne/dba/PkGeneratorIT.java   |  2 +-
 .../cayenne/dba/oracle/OraclePkGeneratorIT.java |  2 +-
 .../cayenne/exp/ParsedExpQualifierCompatIT.java |  2 +-
 .../parser/ExpressionEvaluateInMemoryIT.java    |  2 +-
 .../apache/cayenne/map/DbRelationshipIT.java    |  2 +-
 .../apache/cayenne/map/ObjRelationshipIT.java   |  2 +-
 .../org/apache/cayenne/merge/MergeCase.java     |  2 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java  |  2 +-
 .../cayenne/query/EJBQLQueryNumericIT.java      |  2 +-
 .../org/apache/cayenne/query/SQLTemplateIT.java |  2 +-
 .../org/apache/cayenne/query/SelectByIdIT.java  |  2 +-
 .../query/SelectQueryFetchLimitOrderingIT.java  |  2 +-
 .../reflect/MixedPersistenceStrategyIT.java     |  2 +-
 .../java/org/apache/cayenne/unit/di/DICase.java | 40 ++------------------
 .../apache/cayenne/unit/di/DICaseSelfIT.java    |  4 +-
 .../cayenne/unit/di/server/DBCleaner.java       |  3 +-
 .../cayenne/unit/di/server/ServerCase.java      |  5 ++-
 .../unit/di/server/ServerCaseSelfIT.java        |  4 +-
 .../org/apache/cayenne/unit/jira/CAY_115IT.java |  2 +-
 .../org/apache/cayenne/unit/jira/CAY_191IT.java |  2 +-
 .../org/apache/cayenne/unit/jira/CAY_194IT.java |  2 +-
 .../util/DeepMergeOperationInheritanceIT.java   | 14 +++++--
 .../cayenne/util/ShallowMergeOperationIT.java   |  2 +-
 144 files changed, 193 insertions(+), 227 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
index fd8a569..efe5736 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextClientChannelEventsIT.java
@@ -65,7 +65,7 @@ public class CayenneContextClientChannelEventsIT extends ClientCase {
     private TableHelper tMtJoin45;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
index 7e1048c..a67b90a 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextEJBQLIT.java
@@ -46,7 +46,7 @@ public class CayenneContextEJBQLIT extends ClientCase {
     private TableHelper tMtTable1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
index 8fe01b2..1862616 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextInheritanceIT.java
@@ -48,7 +48,7 @@ public class CayenneContextInheritanceIT extends ClientCase {
     private TableHelper tMtTable1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns(
                 "TABLE1_ID",

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
index 00c1760..a7273fc 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMapRelationshipIT.java
@@ -52,7 +52,7 @@ public class CayenneContextMapRelationshipIT extends ClientCase {
     private TableHelper tMapToManyTarget;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMapToMany = new TableHelper(dbHelper, "ID_MAP_TO_MANY");
         tMapToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
index cd11d57..25d3994 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextMeaningfulPKIT.java
@@ -47,7 +47,7 @@ public class CayenneContextMeaningfulPKIT extends ClientCase {
     private TableHelper tMeaningfulPK;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMeaningfulPK = new TableHelper(dbHelper, "MEANINGFUL_PK");
         tMeaningfulPK.setColumns("PK");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
index 82178bf..c5b7bdf 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextNamedQueryCachingIT.java
@@ -53,7 +53,7 @@ public class CayenneContextNamedQueryCachingIT extends ClientCase {
     private TableHelper tMtTable1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
index ea6ce4e..ee5565a 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPaginatedListCachingIT.java
@@ -47,7 +47,7 @@ public class CayenneContextPaginatedListCachingIT extends ClientCase {
     private TableHelper tMtTable1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
index ebfdf68..acc7c69 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextPrimitiveIT.java
@@ -54,7 +54,7 @@ public class CayenneContextPrimitiveIT extends ClientCase {
     private TableHelper tTablePrimitives;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         int bool = accessStackAdapter.supportsBoolean() ? Types.BOOLEAN : Types.INTEGER;
         
         tTablePrimitives = new TableHelper(dbHelper, "TABLE_PRIMITIVES");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
index 23d31b4..92d99e1 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRefreshQueryIT.java
@@ -44,7 +44,7 @@ public class CayenneContextRefreshQueryIT extends ClientCase {
     private TableHelper tMtTable2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
index a028306..54860ca 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextRelationshipsIT.java
@@ -51,7 +51,7 @@ public class CayenneContextRelationshipsIT extends ClientCase {
     private TableHelper tMtTable2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
index 3efab4d..25a636c 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/CayenneContextWithDataContextIT.java
@@ -74,7 +74,7 @@ public class CayenneContextWithDataContextIT extends ClientCase {
     private TableHelper tMtTable2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java b/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
index 95806f0..209a8d6 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/PersistentObjectInContextIT.java
@@ -55,7 +55,7 @@ public class PersistentObjectInContextIT extends ClientCase {
     private TableHelper tMtTable2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
index 3a74163..4de2954 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelIT.java
@@ -86,7 +86,7 @@ public class ClientServerChannelIT extends ClientCase {
     private TableHelper tMtTable3;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
index cc42dd3..ae189f7 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/access/ClientServerChannelQueryIT.java
@@ -63,7 +63,7 @@ public class ClientServerChannelQueryIT extends ClientCase {
     private TableHelper tMtTable2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
index b827b04..856dfa5 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientExpressionIT.java
@@ -57,7 +57,7 @@ public class ClientExpressionIT extends ClientCase {
     private TableHelper tMtTable2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
index 91b8ba8..3d0c05a 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/query/ClientSelectQueryExpressionIT.java
@@ -47,7 +47,7 @@ public class ClientSelectQueryExpressionIT extends ClientCase {
     private TableHelper tMtTable1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java b/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
index 389e9f4..865bd54 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/query/SelectQueryAbstractEntityIT.java
@@ -47,7 +47,7 @@ public class SelectQueryAbstractEntityIT extends ServerCase {
     private TableHelper mtTable;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         mtTable = new TableHelper(dbHelper, "MT_TABLE1");
         mtTable.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1", "SUBCLASS_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
index bbf7fdb..91efda1 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCallbacksIT.java
@@ -54,9 +54,7 @@ public class RemoteCallbacksIT extends RemoteCayenneCase implements LifecycleLis
     }
 
     @Before
-    public void testSetUp() throws Exception {
-        super.setUpAfterInjection();
-        
+    public void setUp() throws Exception {
         added = 0;
         loaded = 0;
         prePersisted = 0;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
index f86b7b1..98e1efa 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.event.DefaultEventManager;
 import org.apache.cayenne.unit.UnitLocalConnection;
 import org.apache.cayenne.unit.di.client.ClientCase;
 import org.apache.cayenne.unit.di.server.DBCleaner;
+import org.junit.Before;
 
 public abstract class RemoteCayenneCase extends ClientCase {
 
@@ -43,9 +44,8 @@ public abstract class RemoteCayenneCase extends ClientCase {
      */
     protected int serializationPolicy;
 
-    @Override
-    public void setUpAfterInjection() throws Exception {
-        dbCleaner.clean();
+    @Before
+    public void setUpClientContext() throws Exception {
         clientContext = createROPContext();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
index 54859d3..c5df3a6 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/remote/RemoteIncrementalFaultListIT.java
@@ -62,7 +62,7 @@ public class RemoteIncrementalFaultListIT extends ClientCase {
 	private RemoteIncrementalFaultList list;
 
 	@Before
-	public void testSetUp() throws Exception {
+	public void setUp() throws Exception {
 		tMTTable = new TableHelper(dbHelper, "MT_TABLE1");
 		tMTTable.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1",
 				"SERVER_ATTRIBUTE1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
index a8781d2..b6d50df 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCase.java
@@ -26,6 +26,7 @@ import org.apache.cayenne.unit.di.DICase;
 import org.apache.cayenne.unit.di.server.DBCleaner;
 import org.apache.cayenne.unit.di.server.SchemaBuilder;
 import org.apache.cayenne.unit.di.server.ServerCaseModule;
+import org.junit.Before;
 
 public class ClientCase extends DICase {
 
@@ -45,8 +46,8 @@ public class ClientCase extends DICase {
         injector.getInstance(SchemaBuilder.class).rebuildSchema();
     }
 
-    @Override
-    protected void setUpAfterInjection() throws Exception {
+    @Before
+    public void cleanUpDB() throws Exception {
         dbCleaner.clean();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
index cc79b35..080bab6 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientCaseSelfIT.java
@@ -45,9 +45,9 @@ public class ClientCaseSelfIT extends ClientCase {
         assertNotNull(local);
         assertSame(local, runtimeProvider.get());
 
-        tearDown();
+        tearDownLifecycleManager();
 
-        setUp();
+        setUpLifecycleManager();
         assertNotSame(local, this.runtime);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java b/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
index 7537eb9..7bde106 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/util/ObjectDetachOperationIT.java
@@ -52,7 +52,7 @@ public class ObjectDetachOperationIT extends ClientCase {
     private TableHelper tMtTable1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java b/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
index 2c19a92..761be9f 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/util/ShallowMergeOperation_ClientIT.java
@@ -60,7 +60,7 @@ public class ShallowMergeOperation_ClientIT extends ClientCase {
     private TableHelper tMtTable1;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMtTable1 = new TableHelper(dbHelper, "MT_TABLE1");
         tMtTable1.setColumns("TABLE1_ID", "GLOBAL_ATTRIBUTE1", "SERVER_ATTRIBUTE1");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
index a24f3ce..5992f4c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOCollectionRelationshipIT.java
@@ -51,7 +51,7 @@ public class CDOCollectionRelationshipIT extends ServerCase {
     private DBHelper dbHelper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         TableHelper tCollectionToMany = new TableHelper(dbHelper, "COLLECTION_TO_MANY");
         tCollectionToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
index cdfd183..be9aac4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOMany2OneIT.java
@@ -65,7 +65,7 @@ public class CDOMany2OneIT extends ServerCase {
     protected TableHelper tGallery;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
index 4c99936..4451d8d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOMapRelationshipIT.java
@@ -57,7 +57,7 @@ public class CDOMapRelationshipIT extends ServerCase {
     protected TableHelper tIdMapToManyTarget;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMapToMany = new TableHelper(dbHelper, "MAP_TO_MANY");
         tMapToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
index 022e8fd..7eb6155 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOOne2ManyIT.java
@@ -60,7 +60,7 @@ public class CDOOne2ManyIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
index 837d698..729a1d8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
@@ -53,7 +53,7 @@ public class CDOQualifiedEntitiesIT extends ServerCase {
     private TableHelper tQualified2;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         int bool = accessStackAdapter.supportsBoolean() ? Types.BOOLEAN : Types.INTEGER;
 
         tQualified1 = new TableHelper(dbHelper, "TEST_QUALIFIED1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
index 4911092..6a3cd27 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOReflexiveRelDeleteIT.java
@@ -39,7 +39,7 @@ public class CDOReflexiveRelDeleteIT extends ServerCase {
     private ArtGroup childGroup3;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
 
         parentGroup = context.newObject(ArtGroup.class);
         parentGroup.setName("parent");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
index 0344ed6..7c33bc8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CDOSetRelationshipIT.java
@@ -54,7 +54,7 @@ public class CDOSetRelationshipIT extends ServerCase {
     protected TableHelper tSetToManyTarget;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tSetToMany = new TableHelper(dbHelper, "SET_TO_MANY");
         tSetToMany.setColumns("ID");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
index fe2aa66..48cf051 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
@@ -53,7 +53,7 @@ public class CayenneCompoundIT extends ServerCase {
     protected TableHelper tCharPKTest;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tCompoundPKTest = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPKTest.setColumns("KEY1", "KEY2", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
index 5629061..9933066 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectFlattenedRelIT.java
@@ -66,7 +66,7 @@ public class CayenneDataObjectFlattenedRelIT extends ServerCase {
     private TableHelper tArtistGroup;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
index 074ea27..fe39834 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectInContextIT.java
@@ -58,7 +58,7 @@ public class CayenneDataObjectInContextIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
index 24a4884..35bc8fe 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectRelationshipsIT.java
@@ -62,7 +62,7 @@ public class CayenneDataObjectRelationshipsIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
index 301a5ca..7c008e3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
@@ -63,7 +63,7 @@ public class CayenneIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java b/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
index 0efd037..96c5759 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/DataContextMaxIdQualifierIT.java
@@ -61,7 +61,7 @@ public class DataContextMaxIdQualifierIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
index f716142..000e073 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/FlattenedRelationshipsIT.java
@@ -68,7 +68,7 @@ public class FlattenedRelationshipsIT extends ServerCase {
     private TableHelper tFlattenedCircularJoin;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tFlattenedTest1 = new TableHelper(dbHelper, "FLATTENED_TEST_1");
         tFlattenedTest1.setColumns("FT1_ID", "NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
index 6130b5d..e2152e6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/OneWayRelationshipsIT.java
@@ -55,7 +55,7 @@ public class OneWayRelationshipsIT extends ServerCase {
     private TableHelper t4Helper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         t1Helper = new TableHelper(dbHelper, "oneway_table1");
         t1Helper.setColumns("ID");
         t2Helper = new TableHelper(dbHelper, "oneway_table2");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
index 742b1d9..93c46d6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCallbacksIT.java
@@ -47,7 +47,7 @@ public class DataContextCallbacksIT extends ServerCase {
     private ServerRuntime runtime;
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         EntityResolver resolver = runtime.getDataDomain().getEntityResolver();
         resolver.getCallbackRegistry().clear();
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
index f758917..e443b3e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateIT.java
@@ -50,7 +50,7 @@ public class DataContextDelegateIT extends ServerCase {
     private DataContext context;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         // prepare a single gallery record
         Gallery gallery = (Gallery) context.newObject("Gallery");
         gallery.setGalleryName("version1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
index 2d2c695..79c66a5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDelegateSharedCacheIT.java
@@ -51,7 +51,7 @@ public class DataContextDelegateSharedCacheIT extends ServerCase {
     private Artist artist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
 
         // prepare a single artist record
         artist = (Artist) context.newObject("Artist");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
index 6cd67d2..7cf3c23 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDeleteRulesIT.java
@@ -58,7 +58,7 @@ public class DataContextDeleteRulesIT extends ServerCase {
     private DBHelper dbHelper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         dbHelper.update("ARTGROUP").set("PARENT_GROUP_ID", null, Types.INTEGER).execute();
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
index 582eb04..6e633fb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetchIT.java
@@ -64,7 +64,7 @@ public class DataContextDisjointByIdPrefetchIT extends ServerCase {
     private TableHelper tPaintingInfo;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
index ba4b6c2..145f2e2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
@@ -70,7 +70,7 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
     protected TableHelper tBoxThing;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tBoxThing = new TableHelper(dbHelper, "BOX_THING");
         tBoxThing.setColumns("BOX_ID", "THING_WEIGHT", "THING_VOLUME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
index b924325..b3b12ce 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
@@ -47,7 +47,7 @@ public class DataContextEJBQLArrayResultIT extends ServerCase {
     protected DBHelper dbHelper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         TableHelper tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         tArtist.insert(33001, "AA1");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
index 360967e..bb298ea 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
@@ -61,7 +61,7 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
index 73da8a3..05078ee 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java
@@ -55,12 +55,7 @@ public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
     protected DBCleaner dbCleaner;
 
     @Override
-    protected void setUpAfterInjection() throws Exception {
-    }
-
-    @Before
-    public void testSetUp() throws Exception {
-
+    public void cleanUpDB() throws Exception {
         TableHelper tPerson = new TableHelper(dbHelper, "PERSON");
         tPerson.setColumns(
                 "PERSON_ID",
@@ -73,7 +68,10 @@ public class DataContextEJBQLConditionsPeopleIT extends ServerCase {
         // manually break circular deps
         tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute();
         dbCleaner.clean();
+    }
 
+    @Before
+    public void setUp() {
         // TODO: use TableHelper to create test data
 
         Department d1 = context.newObject(Department.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
index fe44df1..ec7a875 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
@@ -54,7 +54,7 @@ public class DataContextEJBQLDeleteIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tPainting = new TableHelper(dbHelper, "PAINTING");
         tPainting.setColumns(
                 "PAINTING_ID",

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
index cfe9168..2c51672 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
@@ -48,7 +48,7 @@ public class DataContextEJBQLDeletePKIT extends ServerCase {
     protected TableHelper tMeaningfulPKTest1Table;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tMeaningfulPKTest1Table = new TableHelper(dbHelper, "MEANINGFUL_PK_TEST1");
         tMeaningfulPKTest1Table.setColumns("PK_ATTRIBUTE", "DESCR");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
index 42f81f4..f802a6d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFetchJoinIT.java
@@ -68,7 +68,7 @@ public class DataContextEJBQLFetchJoinIT extends ServerCase {
     protected TableHelper tArtistExhibit;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
index 5b2e776..b3733d8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
@@ -57,7 +57,7 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
     protected TableHelper ft4Helper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         ft1Helper = new TableHelper(dbHelper, "FLATTENED_TEST_1", "FT1_ID", "NAME");
 
         ft2Helper = new TableHelper(dbHelper, "FLATTENED_TEST_2");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
index 1db11fd..11bb93c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
@@ -58,7 +58,7 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
     protected TableHelper tGallery;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
index e39fe21..5a8068e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java
@@ -51,16 +51,14 @@ public class DataContextEJBQLInheritanceIT extends ServerCase {
     protected DBCleaner dbCleaner;
 
     @Override
-    protected void setUpAfterInjection() throws Exception {
-    }
-
-    @Before
-    public void testSetUp() throws Exception {
+    public void cleanUpDB() throws Exception {
         // manually break circular deps
         dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute();
-
         dbCleaner.clean();
+    }
 
+    @Before
+    public void setUp() throws Exception {
         TableHelper person = new TableHelper(dbHelper, "PERSON");
         person.setColumns("PERSON_ID", "NAME", "PERSON_TYPE", "SALARY").setColumnTypes(Types.INTEGER, Types.VARCHAR,
                 Types.CHAR, Types.FLOAT);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
index 5151e53..f14d21e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
@@ -53,7 +53,7 @@ public class DataContextEJBQLIsNullIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
index ef6b884..0d3a1a4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
@@ -54,7 +54,7 @@ public class DataContextEJBQLJoinsIT extends ServerCase {
     protected TableHelper tGallery;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
index 97f7e22..bc7de1b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
@@ -55,7 +55,7 @@ public class DataContextEJBQLNumericalFunctionalIT extends ServerCase {
     private TableHelper tBigIntegerEntity;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tBigIntegerEntity = new TableHelper(dbHelper, "BIGINTEGER_ENTITY");
         tBigIntegerEntity.setColumns("ID", "BIG_INTEGER_FIELD");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
index b4fe558..22afb42 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLOrderByIT.java
@@ -49,7 +49,7 @@ public class DataContextEJBQLOrderByIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
index 73809ac..02d3c8f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
@@ -56,7 +56,7 @@ public class DataContextEJBQLQueryCompoundIT extends ServerCase {
     private TableHelper tCompoundFk;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tCompoundPk = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPk.setColumns("KEY1", "KEY2");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
index cb27ea5..e29e584 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
@@ -64,7 +64,7 @@ public class DataContextEJBQLQueryIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
index e704c44..2b2b23c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
@@ -58,7 +58,7 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
index 5e00532..05ccd01 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
@@ -53,7 +53,7 @@ public class DataContextEJBQLUpdateCompoundIT extends ServerCase {
     private TableHelper tCompoundFk;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tCompoundPk = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
         tCompoundPk.setColumns("KEY1", "KEY2");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
index 6761132..0d98c4c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
@@ -50,7 +50,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
index 2acc316..958af1f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
@@ -77,7 +77,7 @@ public class DataContextExtrasIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
index 5434fcb..4c0b8db 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
@@ -105,7 +105,7 @@ public class DataContextIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
index bf465c6..d99055c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesIT.java
@@ -53,7 +53,7 @@ public class DataContextJoinAliasesIT extends ServerCase {
     protected TableHelper tArtistExhibit;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
         

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
index 461210e..847d716 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextLocalObjectIT.java
@@ -62,7 +62,7 @@ public class DataContextLocalObjectIT extends ServerCase {
     private TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
index 4c4f906..1fc1cc3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextNoPkIT.java
@@ -50,7 +50,7 @@ public class DataContextNoPkIT extends ServerCase {
     protected DBHelper dbHelper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         TableHelper noPkTestTable = new TableHelper(dbHelper, "NO_PK_TEST", "ATTRIBUTE1");
         noPkTestTable.deleteAll();
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
index acc61ed..5d48075 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
@@ -67,7 +67,7 @@ public class DataContextObjectTrackingIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
index 8029f7c..719e79c 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextOuterJoinsIT.java
@@ -55,7 +55,7 @@ public class DataContextOuterJoinsIT extends ServerCase {
     protected TableHelper artistGroupHelper;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         artistHelper = new TableHelper(dbHelper, "ARTIST", "ARTIST_ID", "ARTIST_NAME");
         paintingHelper = new TableHelper(
                 dbHelper,

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
index d86ba38..194f1a7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPaginatedQueryIT.java
@@ -47,7 +47,7 @@ public class DataContextPaginatedQueryIT extends ServerCase {
     protected TableHelper tArtist;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
index 5304b21..186a6d3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
@@ -74,7 +74,7 @@ public class DataContextPerformQueryAPIIT extends ServerCase {
     private TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
index 9eb59ea..77fed66 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchExtrasIT.java
@@ -67,7 +67,7 @@ public class DataContextPrefetchExtrasIT extends ServerCase {
     protected TableHelper tCompoundFkTest;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tCharPkTest = new TableHelper(dbHelper, "CHAR_PK_TEST");
         tCharPkTest.setColumns("PK_COL", "OTHER_COL");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
index 0995dfa..a635b21 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchIT.java
@@ -83,7 +83,7 @@ public class DataContextPrefetchIT extends ServerCase {
     protected TableHelper tArtGroup;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
index fb35989..b20f5db 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextPrefetchMultistepIT.java
@@ -67,7 +67,7 @@ public class DataContextPrefetchMultistepIT extends ServerCase {
     protected TableHelper tArtistExhibit;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
index 12069cc..6ac1c65 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java
@@ -53,7 +53,7 @@ public class DataContextQualifiedEntityIT extends ServerCase {
     protected TableHelper tPerson;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         // manually break circular deps
         dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute();
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
index 3e4f068..655b39f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingEhCacheIT.java
@@ -32,7 +32,7 @@ public class DataContextQueryCachingEhCacheIT extends DataContextQueryCachingIT
     protected EhCacheQueryCache contextCache;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 
@@ -53,7 +53,7 @@ public class DataContextQueryCachingEhCacheIT extends DataContextQueryCachingIT
     }
     
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         domainCache.shutdown();
         contextCache.shutdown();
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
index 570a0a3..7628144 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingIT.java
@@ -65,7 +65,7 @@ public class DataContextQueryCachingIT extends ServerCase {
     }
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 
@@ -83,7 +83,7 @@ public class DataContextQueryCachingIT extends ServerCase {
     }
 
     @After
-    public void testTearDown() throws Exception {
+    public void tearDown() throws Exception {
         domain.setQueryCache(oldCache);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
index 1bc77dc..8e582d2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQueryCachingOSCacheIT.java
@@ -29,7 +29,7 @@ public class DataContextQueryCachingOSCacheIT extends DataContextQueryCachingIT
 
     // runs super tests with a different setup...
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
index f4ca6fc..a4cb41e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshQueryIT.java
@@ -60,7 +60,7 @@ public class DataContextRefreshQueryIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcaea3fb/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
index c882dc1..dc8bc8b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextRefreshingIT.java
@@ -65,7 +65,7 @@ public class DataContextRefreshingIT extends ServerCase {
     protected TableHelper tPainting;
 
     @Before
-    public void testSetUp() throws Exception {
+    public void setUp() throws Exception {
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");