You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2017/02/14 09:19:42 UTC

[1/2] cayenne git commit: Compilation warnings cleanup

Repository: cayenne
Updated Branches:
  refs/heads/master f75229be4 -> 62ef51158


http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 72ea5cc..792d815 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
@@ -178,7 +178,7 @@ public class DataContextPrefetchIT extends ServerCase {
 		params.put("name1", "artist2");
 		params.put("name2", "artist3");
 		Expression e = ExpressionFactory.exp("artistName = $name1 or artistName = $name2");
-		SelectQuery<Artist> q = new SelectQuery("Artist", e.expWithParameters(params));
+		SelectQuery<Artist> q = new SelectQuery<>("Artist", e.params(params));
 		q.addPrefetch(Artist.PAINTING_ARRAY.disjoint());
 
 		final List<Artist> artists = context.select(q);
@@ -554,7 +554,7 @@ public class DataContextPrefetchIT extends ServerCase {
 		tArtistGroup.insert(101, 1);
 
 		// OUTER join part intentionally doesn't match anything
-		Expression exp = new Property<String>("groupArray+.name").eq("XX").orExp(Artist.ARTIST_NAME.eq("artist2"));
+		Expression exp = Property.create("groupArray+.name", String.class).eq("XX").orExp(Artist.ARTIST_NAME.eq("artist2"));
 
 		SelectQuery<Artist> q = new SelectQuery<Artist>(Artist.class, exp);
 		q.addPrefetch(Artist.PAINTING_ARRAY.disjoint());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 ab76c4d..ca3dc95 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
@@ -164,7 +164,7 @@ public class DataContextPrefetchMultistepIT extends ServerCase {
         createTwoArtistsWithExhibitsDataSet();
 
         Expression e = ExpressionFactory.exp("galleryName = $name");
-        SelectQuery<Gallery> q = SelectQuery.query(Gallery.class, e.expWithParameters(Collections
+        SelectQuery<Gallery> q = SelectQuery.query(Gallery.class, e.params(Collections
                 .singletonMap("name", "gallery2")));
         q.addPrefetch("exhibitArray");
         q.addPrefetch("exhibitArray.artistExhibitArray");
@@ -200,7 +200,7 @@ public class DataContextPrefetchMultistepIT extends ServerCase {
         createTwoArtistsWithExhibitsDataSet();
 
         Expression e = ExpressionFactory.exp("galleryName = $name");
-        SelectQuery<Gallery> q = SelectQuery.query(Gallery.class, e.expWithParameters(Collections
+        SelectQuery<Gallery> q = SelectQuery.query(Gallery.class, e.params(Collections
                 .singletonMap("name", "gallery2")));
         q.addPrefetch("exhibitArray").setSemantics(
                 PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
@@ -237,7 +237,7 @@ public class DataContextPrefetchMultistepIT extends ServerCase {
         createTwoArtistsWithExhibitsDataSet();
 
         Expression e = ExpressionFactory.exp("galleryName = $name");
-        SelectQuery<Gallery> q = SelectQuery.query(Gallery.class, e.expWithParameters(Collections
+        SelectQuery<Gallery> q = SelectQuery.query(Gallery.class, e.params(Collections
                 .singletonMap("name", "gallery2")));
 
         // reverse the order of prefetches compared to the previous test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 9617e85..6f4df0b 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
@@ -86,7 +86,7 @@ public class DataContextSQLTemplateCompoundIT extends ServerCase {
                 + " WHERE #bindObjectEqual($a [ 't0.F_KEY1', 't0.F_KEY2' ] [ 'KEY1', 'KEY2' ] ) ORDER BY PKEY";
         SQLTemplate query = new SQLTemplate(CompoundFkTestEntity.class, template);
         query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-        query.setParameters(Collections.singletonMap("a", a));
+        query.setParams(Collections.singletonMap("a", a));
 
         List<CompoundFkTestEntity> objects = context.performQuery(query);
         assertEquals(1, objects.size());
@@ -112,7 +112,7 @@ public class DataContextSQLTemplateCompoundIT extends ServerCase {
                 + " WHERE #bindObjectNotEqual($a [ 't0.F_KEY1', 't0.F_KEY2' ] [ 'KEY1', 'KEY2' ] ) ORDER BY PKEY";
         SQLTemplate query = new SQLTemplate(CompoundFkTestEntity.class, template);
         query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-        query.setParameters(Collections.singletonMap("a", a));
+        query.setParams(Collections.singletonMap("a", a));
 
         List<CompoundFkTestEntity> objects = context.performQuery(query);
         assertEquals(1, objects.size());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 724a32f..4309026 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
@@ -284,7 +284,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 		String template = "SELECT * FROM PAINTING " + "WHERE #bindObjectEqual($a) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("a", a));
+		query.setParams(Collections.singletonMap("a", a));
 
 		List<?> objects = context.performQuery(query);
 		assertEquals(1, objects.size());
@@ -302,7 +302,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 		String template = "SELECT * FROM PAINTING " + "WHERE #bindObjectNotEqual($a) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("a", a));
+		query.setParams(Collections.singletonMap("a", a));
 
 		List<?> objects = context.performQuery(query);
 
@@ -325,7 +325,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 				+ " WHERE #bindObjectEqual($a [ 't0.ARTIST_ID' ] [ 'ARTIST_ID' ] ) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("a", a));
+		query.setParams(Collections.singletonMap("a", a));
 
 		List<?> objects = context.performQuery(query);
 		assertEquals(1, objects.size());
@@ -344,7 +344,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 				+ " WHERE #bindObjectEqual($a 't0.ARTIST_ID' 'ARTIST_ID' ) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("a", a));
+		query.setParams(Collections.singletonMap("a", a));
 
 		List<?> objects = context.performQuery(query);
 		assertEquals(1, objects.size());
@@ -361,7 +361,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 				+ " WHERE #bindObjectEqual($a [ 't0.ARTIST_ID' ] [ 'ARTIST_ID' ] ) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("a", null));
+		query.setParams(Collections.singletonMap("a", null));
 
 		List<?> objects = context.performQuery(query);
 		assertEquals(1, objects.size());
@@ -380,7 +380,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 				+ " WHERE #bindObjectNotEqual($a [ 't0.ARTIST_ID' ] [ 'ARTIST_ID' ] ) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("a", a));
+		query.setParams(Collections.singletonMap("a", a));
 
 		List<?> objects = context.performQuery(query);
 		// null comparison is unpredictable across DB's ... some would return
@@ -400,7 +400,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 				+ " WHERE #bindObjectNotEqual($a [ 't0.ARTIST_ID' ] [ 'ARTIST_ID' ] ) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("a", null));
+		query.setParams(Collections.singletonMap("a", null));
 
 		List<Painting> objects = context.performQuery(query);
 		assertEquals(2, objects.size());
@@ -419,7 +419,7 @@ public class DataContextSQLTemplateIT extends ServerCase {
 		String template = "SELECT * FROM PAINTING t0" + " WHERE t0.ARTIST_ID #bindEqual($id) ORDER BY PAINTING_ID";
 		SQLTemplate query = new SQLTemplate(Painting.class, template);
 		query.setColumnNamesCapitalization(CapsStrategy.UPPER);
-		query.setParameters(Collections.singletonMap("id", null));
+		query.setParams(Collections.singletonMap("id", null));
 
 		List<Painting> objects = context.performQuery(query);
 		assertEquals(1, objects.size());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 03fd0c0..4ba1a2d 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
@@ -93,16 +93,16 @@ public class DataContextSharedCacheIT extends ServerCase {
                 "UPDATE ARTIST SET ARTIST_NAME = #bind($newName) "
                         + "WHERE ARTIST_NAME = #bind($oldName)");
 
-        Map map = new HashMap(3);
+        Map<String, Object> map = new HashMap<>(3);
         map.put("newName", newName);
         map.put("oldName", originalName);
-        query.setParameters(map);
+        query.setParams(map);
         context.performNonSelectingQuery(query);
 
         // fetch updated artist into the new context, and see if the original
         // one gets updated
         Expression qual = ExpressionFactory.matchExp("artistName", newName);
-        List artists = context1.performQuery(new SelectQuery(Artist.class, qual));
+        List artists = context1.performQuery(new SelectQuery<>(Artist.class, qual));
         assertEquals(1, artists.size());
         Artist altArtist = (Artist) artists.get(0);
 
@@ -176,8 +176,6 @@ public class DataContextSharedCacheIT extends ServerCase {
      * Test case to prove that changes made to an object in one ObjectStore and committed
      * to the database will be correctly merged in the peer ObjectStore using the same
      * DataRowCache. E.g. modified objects will be merged so that no new changes are lost.
-     * 
-     * @throws Exception
      */
     @Test
     public void testSnapshotChangePropagationToModifiedObjects() throws Exception {
@@ -266,8 +264,6 @@ public class DataContextSharedCacheIT extends ServerCase {
      * Test case to prove that deleting an object in one ObjectStore and committed to the
      * database will be reflected in the peer ObjectStore using the same DataRowCache. By
      * default HOLLOW objects will be changed to TRANSIENT.
-     * 
-     * @throws Exception
      */
     @Test
     public void testSnapshotDeletePropagationToHollow() throws Exception {
@@ -355,8 +351,6 @@ public class DataContextSharedCacheIT extends ServerCase {
      * Test case to prove that deleting an object in one ObjectStore and committing to the
      * database will be reflected in the peer ObjectStore using the same DataRowCache. By
      * default DELETED objects will be changed to TRANSIENT.
-     * 
-     * @throws Exception
      */
     @Test
     public void testSnapshotDeletePropagationToDeleted() throws Exception {
@@ -468,8 +462,6 @@ public class DataContextSharedCacheIT extends ServerCase {
      * Test case to prove that inserting an object in one ObjectStore and committing to
      * the database will be reflected in the peer ObjectStore using the same DataRowCache.
      * This would mean refreshing to-many collections.
-     * 
-     * @throws Exception
      */
     @Test
     public void testSnapshotInsertPropagationToManyRefresh() throws Exception {
@@ -540,15 +532,15 @@ public class DataContextSharedCacheIT extends ServerCase {
                 .createSQLTemplate(
                         Artist.class,
                         "UPDATE ARTIST SET ARTIST_NAME = #bind($newName) WHERE ARTIST_NAME = #bind($oldName)");
-        Map map = new HashMap(3);
+        Map<String, Object> map = new HashMap<>(3);
         map.put("newName", newName);
         map.put("oldName", originalName);
-        update.setParameters(map);
+        update.setParams(map);
         context.performNonSelectingQuery(update);
 
         // fetch updated artist without refreshing
         Expression qual = ExpressionFactory.matchExp("artistName", newName);
-        SelectQuery query = new SelectQuery(Artist.class, qual);
+        SelectQuery query = new SelectQuery<>(Artist.class, qual);
         List artists = context.performQuery(query);
         assertEquals(1, artists.size());
         artist = (Artist) artists.get(0);
@@ -701,10 +693,10 @@ public class DataContextSharedCacheIT extends ServerCase {
         String template = "UPDATE ARTIST SET ARTIST_NAME = #bind($newName) WHERE ARTIST_NAME = #bind($oldName)";
         SQLTemplate update = new SQLTemplate(Artist.class, template);
 
-        Map map = new HashMap(3);
+        Map<String, Object> map = new HashMap<>(3);
         map.put("newName", backendName);
         map.put("oldName", originalName);
-        update.setParameters(map);
+        update.setParams(map);
         context.performNonSelectingQuery(update);
 
         context.commitChanges();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 29991ab..05acc0e 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
@@ -179,36 +179,40 @@ public class DataDomainIT extends ServerCase {
         assertNotNull(domain.getEntityResolver());
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testInitDataDomainWithSharedCache() throws Exception {
-        Map<Object, Object> properties = new HashMap<Object, Object>();
+        Map<String, String> properties = new HashMap<>();
         properties.put(DataDomain.SHARED_CACHE_ENABLED_PROPERTY, Boolean.TRUE.toString());
 
         DataDomain domain = new DataDomain("d1", properties);
         assertTrue(domain.isSharedCacheEnabled());
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testInitDataDomainWithDedicatedCache() throws Exception {
-        Map<Object, Object> properties = new HashMap<Object, Object>();
+        Map<String, String> properties = new HashMap<>();
         properties.put(DataDomain.SHARED_CACHE_ENABLED_PROPERTY, Boolean.FALSE.toString());
 
         DataDomain domain = new DataDomain("d1", properties);
         assertFalse(domain.isSharedCacheEnabled());
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testInitDataDomainValidation() throws Exception {
-        Map<Object, Object> properties = new HashMap<Object, Object>();
+        Map<String, String> properties = new HashMap<>();
         properties.put(DataDomain.VALIDATING_OBJECTS_ON_COMMIT_PROPERTY, Boolean.TRUE.toString());
 
         DataDomain domain = new DataDomain("d1", properties);
         assertTrue(domain.isValidatingObjectsOnCommit());
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testInitDataDomainNoValidation() throws Exception {
-        Map<Object, Object> properties = new HashMap<Object, Object>();
+        Map<String, String> properties = new HashMap<>();
         properties.put(DataDomain.VALIDATING_OBJECTS_ON_COMMIT_PROPERTY, Boolean.FALSE.toString());
 
         DataDomain domain = new DataDomain("d1", properties);
@@ -268,12 +272,12 @@ public class DataDomainIT extends ServerCase {
 
         @PostAdd({ Gallery.class, Painting.class })
         void postAddEntities(Persistent object) {
-            callbackBuffer.append("e:" + object.getObjectId().getEntityName() + ";");
+            callbackBuffer.append("e:").append(object.getObjectId().getEntityName()).append(";");
         }
 
         @PostAdd(entityAnnotations = Tag1.class)
         void postAddAnnotated(Persistent object) {
-            callbackBuffer.append("a:" + object.getObjectId().getEntityName() + ";");
+            callbackBuffer.append("a:").append(object.getObjectId().getEntityName()).append(";");
         }
 
         String getAndReset() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 a02cfd3..f86f5a5 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
@@ -314,7 +314,7 @@ public class JointPrefetchIT extends ServerCase {
                 Artist.class,
                 "insert into ARTIST (ARTIST_ID, ARTIST_NAME, DATE_OF_BIRTH) "
                         + "values (33001, 'a1', #bind($date 'DATE'))");
-        artistSQL.setParameters(Collections.singletonMap(
+        artistSQL.setParams(Collections.singletonMap(
                 "date",
                 new Date(System.currentTimeMillis())));
         SQLTemplate paintingSQL = new SQLTemplate(

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 cd5e430..a34b803 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
@@ -125,11 +125,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testSuccessSimpleLockingOnDelete() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -143,11 +143,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testSuccessSimpleLockingOnDeleteFollowedByInvalidate() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -163,11 +163,11 @@ public class OptimisticLockingIT extends ServerCase {
             throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -182,11 +182,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testSuccessSimpleLockingOnDeletePrecededByInvalidate() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -202,11 +202,11 @@ public class OptimisticLockingIT extends ServerCase {
             throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -221,11 +221,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testFailSimpleLockingOnDelete() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("second update");
@@ -249,11 +249,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testSuccessSimpleLockingOnUpdate() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -268,11 +268,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testSuccessSimpleLockingOnUpdateFollowedByInvalidate() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -288,11 +288,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testSuccessSimpleLockingOnUpdatePrecededByInvalidate() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -309,11 +309,11 @@ public class OptimisticLockingIT extends ServerCase {
             throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -330,11 +330,11 @@ public class OptimisticLockingIT extends ServerCase {
             throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -350,11 +350,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testFailSimpleLocking() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected
         object.setDescription("first update");
@@ -379,11 +379,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testFailLockingOnNull() throws Exception {
         createLockingOnNullDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         // change description and save... no optimistic lock failure expected...
         object.setDescription("first update");
@@ -409,7 +409,7 @@ public class OptimisticLockingIT extends ServerCase {
     public void testSuccessLockingOnMixed() throws Exception {
         createLockingOnMixedDataSet();
 
-        SelectQuery query = new SelectQuery(SimpleLockingTestEntity.class);
+        SelectQuery<SimpleLockingTestEntity> query = new SelectQuery<>(SimpleLockingTestEntity.class);
         query.addOrdering(new Ordering("db:LOCKING_TEST_ID", SortOrder.ASCENDING));
 
         List<?> allObjects = context.performQuery(query);
@@ -434,11 +434,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testFailLockingOnToOne() throws Exception {
         createLockingOnToOneDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                RelLockingTestEntity.class));
+        List<RelLockingTestEntity> allObjects = new SelectQuery<>(
+                RelLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        RelLockingTestEntity object = (RelLockingTestEntity) allObjects.get(0);
+        RelLockingTestEntity object = allObjects.get(0);
 
         // change name and save... no optimistic lock failure expected
         object.setName("first update");
@@ -469,11 +469,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testFailRetrieveRow() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
         object.setDescription("first update");
 
         // change row underneath, change description and save... optimistic lock failure
@@ -495,11 +495,11 @@ public class OptimisticLockingIT extends ServerCase {
     public void testFailRetrieveDeletedRow() throws Exception {
         createSimpleLockingDataSet();
 
-        List<?> allObjects = context.performQuery(new SelectQuery(
-                SimpleLockingTestEntity.class));
+        List<SimpleLockingTestEntity> allObjects = new SelectQuery<>(
+                SimpleLockingTestEntity.class).select(context);
         assertEquals(1, allObjects.size());
 
-        SimpleLockingTestEntity object = (SimpleLockingTestEntity) allObjects.get(0);
+        SimpleLockingTestEntity object = allObjects.get(0);
 
         object.setDescription("first update");
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/access/UnitTestDomain.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/UnitTestDomain.java b/cayenne-server/src/test/java/org/apache/cayenne/access/UnitTestDomain.java
index 7eeee44..1fdd6c9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/UnitTestDomain.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/UnitTestDomain.java
@@ -22,7 +22,7 @@ package org.apache.cayenne.access;
 import java.util.Collection;
 import java.util.Map;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import junit.framework.AssertionFailedError;
 
 import org.apache.cayenne.ObjectContext;
@@ -38,6 +38,7 @@ public class UnitTestDomain extends DataDomain {
         super(name);
     }
 
+    @SuppressWarnings("deprecation")
     public UnitTestDomain(String name, Map properties) {
         super(name, properties);
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 6e3e8a9..b025b86 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
@@ -53,6 +53,7 @@ import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
 import org.junit.Before;
 import org.junit.Test;
 
+@SuppressWarnings("deprecation")
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class SQLTemplateActionIT extends ServerCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/configuration/rop/server/ROPServletTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/rop/server/ROPServletTest.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/rop/server/ROPServletTest.java
index 17c3953..d21ee59 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/rop/server/ROPServletTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/rop/server/ROPServletTest.java
@@ -122,8 +122,8 @@ public class ROPServletTest {
 		Object[] marray = modules.toArray();
 
 		assertTrue(marray[0] instanceof ServerModule);
-		// [1] is an inner class
-		assertTrue(marray[2] instanceof ROPServerModule);
+		// [2] is an inner class
+		assertTrue(marray[1] instanceof ROPServerModule);
 	}
 
 	@Test
@@ -151,9 +151,9 @@ public class ROPServletTest {
 
 		assertTrue(marray[0] instanceof ServerModule);
 		// [1] is an inner class
-		assertTrue(marray[2] instanceof ROPServerModule);
-		assertTrue(marray[3] instanceof MockModule1);
-		assertTrue(marray[4] instanceof MockModule2);
+		assertTrue(marray[1] instanceof ROPServerModule);
+		assertTrue(marray[2] instanceof MockModule1);
+		assertTrue(marray[3] instanceof MockModule2);
 
 		RequestHandler handler = runtime.getInjector().getInstance(RequestHandler.class);
 		assertTrue(handler instanceof MockRequestHandler);
@@ -178,7 +178,7 @@ public class ROPServletTest {
 
 		Object[] marray = modules.toArray();
 
-		assertTrue(marray[3] instanceof ROPHessianServlet_ConfigModule);
+		assertTrue(marray[2] instanceof ROPHessianServlet_ConfigModule);
 
 		// TODO: mock servlet request to check that the right service instance
 		// is invoked

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 c2c7ee8..60a38d4 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
@@ -41,6 +41,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+@SuppressWarnings("deprecation")
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class ServerRuntimeBuilderIT extends ServerCase {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/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 95e7a44..ffce1f3 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
@@ -32,6 +32,7 @@ import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.*;
 import static org.mockito.Mockito.mock;
 
+@SuppressWarnings("deprecation")
 public class ServerRuntimeBuilderTest {
 
 	private ServerRuntime runtime;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/configuration/web/CayenneFilterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/configuration/web/CayenneFilterTest.java b/cayenne-server/src/test/java/org/apache/cayenne/configuration/web/CayenneFilterTest.java
index 5b73b37..8a04a67 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/configuration/web/CayenneFilterTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/configuration/web/CayenneFilterTest.java
@@ -111,8 +111,8 @@ public class CayenneFilterTest {
 		Object[] marray = modules.toArray();
 
 		assertTrue(marray[0] instanceof ServerModule);
-		// [1] is an inner class
-		assertTrue(marray[2] instanceof WebModule);
+		// [2] is an inner class
+		assertTrue(marray[1] instanceof WebModule);
 
 		RequestHandler handler = runtime.getInjector().getInstance(RequestHandler.class);
 		assertTrue(handler instanceof SessionContextRequestHandler);
@@ -140,10 +140,10 @@ public class CayenneFilterTest {
 
 		Object[] marray = modules.toArray();
 		assertTrue(marray[0] instanceof ServerModule);
-		// [1] is an inner class
-		assertTrue(marray[2] instanceof WebModule);
-		assertTrue(marray[3] instanceof MockModule1);
-		assertTrue(marray[4] instanceof MockModule2);
+		// [4] is an inner class
+		assertTrue(marray[1] instanceof WebModule);
+		assertTrue(marray[2] instanceof MockModule1);
+		assertTrue(marray[3] instanceof MockModule2);
 
 		RequestHandler handler = runtime.getInjector().getInstance(RequestHandler.class);
 		assertTrue(handler instanceof MockRequestHandler);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java b/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
index 9b005be..b9169a4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/MockEntityResolver.java
@@ -33,6 +33,7 @@ public class MockEntityResolver extends EntityResolver {
     }
 
     @Override
+    @Deprecated
     public synchronized ObjEntity lookupObjEntity(Class aClass) {
         return mockObjEntity;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/NamedQueryTest.java b/cayenne-server/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
index 0a2c295..0660732 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertTrue;
 
+@SuppressWarnings("deprecation")
 public class NamedQueryTest {
 
     @Test
@@ -49,7 +50,7 @@ public class NamedQueryTest {
         NamedQuery o = new NamedQuery("abc");
         Object clone = Util.cloneViaSerialization(o);
 
-        assertTrue(clone instanceof NamedQuery);
+        assertTrue(clone != null);
         NamedQuery c1 = (NamedQuery) clone;
 
         assertNotSame(o, c1);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/resource/FilesystemResourceLocatorTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/resource/FilesystemResourceLocatorTest.java b/cayenne-server/src/test/java/org/apache/cayenne/resource/FilesystemResourceLocatorTest.java
index b24f7e4..1f083c4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/resource/FilesystemResourceLocatorTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/resource/FilesystemResourceLocatorTest.java
@@ -85,7 +85,7 @@ public class FilesystemResourceLocatorTest {
 		Collection<Resource> resources2 = locator.findResources("x.txt");
 		assertNotNull(resources2);
 		assertEquals(1, resources2.size());
-		assertEquals(f1.toURL(), resources2.iterator().next().getURL());
+		assertEquals(f1.toURI().toURL(), resources2.iterator().next().getURL());
 
 		File f2 = new File(root2, "x.txt");
 		touch(f2);
@@ -95,8 +95,8 @@ public class FilesystemResourceLocatorTest {
 		assertEquals(2, resources3.size());
 
 		Resource[] resources3a = resources3.toArray(new Resource[2]);
-		assertEquals(f1.toURL(), resources3a[0].getURL());
-		assertEquals(f2.toURL(), resources3a[1].getURL());
+		assertEquals(f1.toURI().toURL(), resources3a[0].getURL());
+		assertEquals(f2.toURI().toURL(), resources3a[1].getURL());
 	}
 
 	private void touch(File f) throws Exception {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTable1Subclass1.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTable1Subclass1.java b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTable1Subclass1.java
index b0e77b8..259af58 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTable1Subclass1.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/testdo/mt/auto/_ClientMtTable1Subclass1.java
@@ -13,7 +13,7 @@ public abstract class _ClientMtTable1Subclass1 extends ClientMtTable1 {
     @Deprecated
     public static final String SUBCLASS1ATTRIBUTE1_PROPERTY = "subclass1Attribute1";
 
-    public static final Property<String> SUBCLASS1ATTRIBUTE1 = new Property<String>("subclass1Attribute1");
+    public static final Property<String> SUBCLASS1ATTRIBUTE1 = Property.create("subclass1Attribute1", String.class);
 
     protected String subclass1Attribute1;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
index 79c02cf..5155cdb 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
@@ -51,6 +51,7 @@ public class ServerRuntimeProvider implements Provider<ServerRuntime> {
         this.unitDbAdapter = unitDbAdapter;
     }
 
+    @SuppressWarnings("deprecation")
     @Override
     public ServerRuntime get() throws ConfigurationException {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/test/java/org/apache/cayenne/util/UtilTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/UtilTest.java b/cayenne-server/src/test/java/org/apache/cayenne/util/UtilTest.java
index eab7371..8d9c563 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/UtilTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/UtilTest.java
@@ -66,11 +66,12 @@ public class UtilTest {
 	}
 
 	@Test
+	@SuppressWarnings("deprecation")
 	public void testGetJavaClass() throws Exception {
 		assertEquals(byte.class.getName(), Util.getJavaClass("byte").getName());
 		assertEquals(byte[].class.getName(), Util.getJavaClass("byte[]").getName());
 		assertEquals(String[].class.getName(), Util.getJavaClass("java.lang.String[]").getName());
-		assertEquals(new UtilTest[0].getClass().getName(), Util.getJavaClass(getClass().getName() + "[]").getName());
+		assertEquals(UtilTest[].class.getName(), Util.getJavaClass(getClass().getName() + "[]").getName());
 	}
 
 	@Test

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java b/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
index e0613f9..eaab47c 100644
--- a/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
+++ b/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java
@@ -40,6 +40,7 @@ import com.apple.eawt.Application;
 import com.apple.eawt.ApplicationAdapter;
 import com.apple.eawt.ApplicationEvent;
 
+@SuppressWarnings("deprecation")
 public class OSXPlatformInitializer implements PlatformInitializer {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java
index 27c283b..2539ef0 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/TemplateCreator.java
@@ -44,7 +44,7 @@ public class TemplateCreator extends CayenneController {
 
     protected TemplateCreatorView view;
     protected boolean canceled;
-    protected Set existingNames;
+    protected Set<String> existingNames;
     protected CayennePreferenceEditor editor;
     protected Preferences preferences;
 
@@ -55,7 +55,7 @@ public class TemplateCreator extends CayenneController {
                 JDialog.class,
                 parent.getView());
         this.view = new TemplateCreatorView(parentDialog);
-        this.existingNames = new HashSet();
+        this.existingNames = new HashSet<>();
         PreferenceEditor editor = parent.getEditor();
         if (editor instanceof CayennePreferenceEditor) {
             this.editor = (CayennePreferenceEditor) editor;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java
index 0f0808f..d4fda65 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java
@@ -90,7 +90,7 @@ public class ValidatorDialog extends CayenneDialog {
     protected ValidatorDialog(CayenneModelerFrame editor) {
         super(editor, "Validation Problems", false);
 
-        this.validationObjects = Collections.EMPTY_LIST;
+        this.validationObjects = Collections.emptyList();
 
         initView();
         initController();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
index 4be3395..2b69dd1 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
@@ -32,6 +32,7 @@ import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
+import javax.swing.ListCellRenderer;
 
 import org.apache.cayenne.configuration.event.QueryEvent;
 import org.apache.cayenne.exp.Expression;
@@ -39,6 +40,7 @@ import org.apache.cayenne.exp.ExpressionException;
 import org.apache.cayenne.exp.parser.ASTPath;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.QueryDescriptor;
 import org.apache.cayenne.map.SelectQueryDescriptor;
 import org.apache.cayenne.modeler.Application;
@@ -68,7 +70,7 @@ public class SelectQueryMainTab extends JPanel {
     protected ProjectController mediator;
 
     protected TextAdapter name;
-    protected JComboBox queryRoot;
+    protected JComboBox<ObjEntity> queryRoot;
     protected TextAdapter qualifier;
     protected JCheckBox distinct;
     protected ObjectQueryPropertiesPanel properties;
@@ -183,13 +185,13 @@ public class SelectQueryMainTab extends JPanel {
         // making it impossible to reference other DataMaps.
 
         DataMap map = mediator.getCurrentDataMap();
-        Object[] roots = map.getObjEntities().toArray();
+        ObjEntity[] roots = map.getObjEntities().toArray(new ObjEntity[0]);
 
         if (roots.length > 1) {
             Arrays.sort(roots, Comparators.getDataMapChildrenComparator());
         }
 
-        DefaultComboBoxModel model = new DefaultComboBoxModel(roots);
+        DefaultComboBoxModel<ObjEntity> model = new DefaultComboBoxModel<>(roots);
         model.setSelectedItem(query.getRoot());
         queryRoot.setModel(model);
 
@@ -241,7 +243,7 @@ public class SelectQueryMainTab extends JPanel {
             if (!Util.nullSafeEquals(oldQualifier, text)) {
                 Expression exp = (Expression) convertor.stringAsValue(text);
                 
-                /**
+                /*
                  * Advanced checking. See CAY-888 #1
                  */
                 if (query.getRoot() instanceof Entity) {
@@ -311,7 +313,7 @@ public class SelectQueryMainTab extends JPanel {
     static void checkExpression(Entity root, Expression ex) throws ValidationException {
         try {
             if (ex instanceof ASTPath) {
-                /**
+                /*
                  * Try to iterate through path, if some attributes are not present,
                  * exception will be raised
                  */
@@ -351,7 +353,7 @@ public class SelectQueryMainTab extends JPanel {
                     query.setRoot(root);
                     
                     if (needChangeName) { //not changed by user
-                        /**
+                        /*
                          * Doing auto name change, following CAY-888 #2
                          */
                         String newPrefix = root.getName() + "Query";
@@ -377,8 +379,7 @@ public class SelectQueryMainTab extends JPanel {
             QueryDescriptor query = getQuery();
             if (query != null) {
                 needChangeName = hasDefaultName(query);
-            }
-            else {
+            } else {
                 needChangeName = false;
             }
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
index af25a1a..889984d 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
@@ -133,21 +133,21 @@ public final class CellRenderers {
     /**
      * Returns a ListCellRenderer to display Cayenne project tree nodes without icons.
      */
-    public static ListCellRenderer listRenderer() {
+    public static ListCellRenderer<Object> listRenderer() {
         return new ListRenderer(false);
     }
 
     /**
      * Returns a ListCellRenderer to display Cayenne project tree nodes with icons.
      */
-    public static ListCellRenderer listRendererWithIcons() {
+    public static ListCellRenderer<Object> listRendererWithIcons() {
         return new ListRenderer(true);
     }
 
     /**
      * Returns a ListCellRenderer to display Cayenne project tree nodes with icons.
      */
-    public static ListCellRenderer entityListRendererWithIcons(MappingNamespace namespace) {
+    public static ListCellRenderer<Object> entityListRendererWithIcons(MappingNamespace namespace) {
         return new EntityRenderer(namespace);
     }
     

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java b/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
index d98d444..b478b8d 100644
--- a/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
+++ b/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
@@ -15,9 +15,9 @@ import org.apache.cayenne.util.PersistentObjectList;
  */
 public abstract class _Artist extends PersistentObject {
 
-    public static final Property<LocalDate> DATE_OF_BIRTH = new Property<LocalDate>("dateOfBirth");
-    public static final Property<String> NAME = new Property<String>("name");
-    public static final Property<List<Painting>> PAINTINGS = new Property<List<Painting>>("paintings");
+    public static final Property<LocalDate> DATE_OF_BIRTH = Property.create("dateOfBirth", LocalDate.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Painting>> PAINTINGS = Property.create("paintings", List.class);
 
     protected LocalDate dateOfBirth;
     protected String name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java b/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
index 6189902..7c59c64 100644
--- a/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
+++ b/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
@@ -14,8 +14,8 @@ import org.apache.cayenne.util.PersistentObjectList;
  */
 public abstract class _Gallery extends PersistentObject {
 
-    public static final Property<String> NAME = new Property<String>("name");
-    public static final Property<List<Painting>> PAINTINGS = new Property<List<Painting>>("paintings");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Painting>> PAINTINGS = Property.create("paintings", List.class);
 
     protected String name;
     protected List<Painting> paintings;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java b/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
index 23c14e2..ab004f9 100644
--- a/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
+++ b/tutorials/tutorial-rop-client-http2/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
@@ -14,9 +14,9 @@ import org.apache.cayenne.util.PersistentObjectHolder;
  */
 public abstract class _Painting extends PersistentObject {
 
-    public static final Property<String> NAME = new Property<String>("name");
-    public static final Property<Artist> ARTIST = new Property<Artist>("artist");
-    public static final Property<Gallery> GALLERY = new Property<Gallery>("gallery");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<Artist> ARTIST = Property.create("artist", Artist.class);
+    public static final Property<Gallery> GALLERY = Property.create("gallery", Gallery.class);
 
     protected String name;
     protected ValueHolder artist;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java b/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
index bf48fbe..0856981 100644
--- a/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
+++ b/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Artist.java
@@ -15,16 +15,9 @@ import org.apache.cayenne.util.PersistentObjectList;
  */
 public abstract class _Artist extends PersistentObject {
 
-    @Deprecated
-    public static final String DATE_OF_BIRTH_PROPERTY = "dateOfBirth";
-    @Deprecated
-    public static final String NAME_PROPERTY = "name";
-    @Deprecated
-    public static final String PAINTINGS_PROPERTY = "paintings";
-
-    public static final Property<Date> DATE_OF_BIRTH = new Property<Date>("dateOfBirth");
-    public static final Property<String> NAME = new Property<String>("name");
-    public static final Property<List<Painting>> PAINTINGS = new Property<List<Painting>>("paintings");
+    public static final Property<Date> DATE_OF_BIRTH = Property.create("dateOfBirth", Date.class);
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Painting>> PAINTINGS = Property.create("paintings", List.class);
 
     protected Date dateOfBirth;
     protected String name;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java b/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
index 2517630..7c59c64 100644
--- a/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
+++ b/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Gallery.java
@@ -14,13 +14,8 @@ import org.apache.cayenne.util.PersistentObjectList;
  */
 public abstract class _Gallery extends PersistentObject {
 
-    @Deprecated
-    public static final String NAME_PROPERTY = "name";
-    @Deprecated
-    public static final String PAINTINGS_PROPERTY = "paintings";
-
-    public static final Property<String> NAME = new Property<String>("name");
-    public static final Property<List<Painting>> PAINTINGS = new Property<List<Painting>>("paintings");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<List<Painting>> PAINTINGS = Property.create("paintings", List.class);
 
     protected String name;
     protected List<Painting> paintings;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
----------------------------------------------------------------------
diff --git a/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java b/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
index a79aa04..ab004f9 100644
--- a/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
+++ b/tutorials/tutorial-rop-client/src/main/java/org/apache/cayenne/tutorial/persistent/client/auto/_Painting.java
@@ -14,16 +14,9 @@ import org.apache.cayenne.util.PersistentObjectHolder;
  */
 public abstract class _Painting extends PersistentObject {
 
-    @Deprecated
-    public static final String NAME_PROPERTY = "name";
-    @Deprecated
-    public static final String ARTIST_PROPERTY = "artist";
-    @Deprecated
-    public static final String GALLERY_PROPERTY = "gallery";
-
-    public static final Property<String> NAME = new Property<String>("name");
-    public static final Property<Artist> ARTIST = new Property<Artist>("artist");
-    public static final Property<Gallery> GALLERY = new Property<Gallery>("gallery");
+    public static final Property<String> NAME = Property.create("name", String.class);
+    public static final Property<Artist> ARTIST = Property.create("artist", Artist.class);
+    public static final Property<Gallery> GALLERY = Property.create("gallery", Gallery.class);
 
     protected String name;
     protected ValueHolder artist;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/tutorials/tutorial/src/main/java/org/apache/cayenne/tutorial/Main.java
----------------------------------------------------------------------
diff --git a/tutorials/tutorial/src/main/java/org/apache/cayenne/tutorial/Main.java b/tutorials/tutorial/src/main/java/org/apache/cayenne/tutorial/Main.java
index 5fb8774..c1b8754 100644
--- a/tutorials/tutorial/src/main/java/org/apache/cayenne/tutorial/Main.java
+++ b/tutorials/tutorial/src/main/java/org/apache/cayenne/tutorial/Main.java
@@ -38,7 +38,9 @@ public class Main {
     public static void main(String[] args) {
 
         // starting Cayenne
-        ServerRuntime cayenneRuntime = new ServerRuntime("cayenne-project.xml");
+        ServerRuntime cayenneRuntime = ServerRuntime.builder()
+                .addConfig("cayenne-project.xml")
+                .build();
 
         // getting a hold of ObjectContext
         ObjectContext context = cayenneRuntime.newContext();


[2/2] cayenne git commit: Compilation warnings cleanup

Posted by nt...@apache.org.
Compilation warnings cleanup


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

Branch: refs/heads/master
Commit: 62ef511585fc6bb8d41568a80e0c6b557f8cbbd2
Parents: f75229b
Author: Nikita Timofeev <st...@gmail.com>
Authored: Tue Feb 14 12:18:04 2017 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Tue Feb 14 12:18:04 2017 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/gen/DataMapUtils.java    |  8 +-
 .../apache/cayenne/gen/ClassGenerationCase.java |  4 +-
 .../apache/cayenne/remote/ClientChannel.java    | 10 +-
 .../apache/cayenne/query/NamedQueryTest.java    |  1 +
 .../cayenne/unit/UnitLocalConnection.java       |  2 +-
 .../ClientServerDataChannelDecorator.java       |  2 +-
 .../di/spi/DefaultInjectorInjectionTest.java    |  4 +-
 .../apache/cayenne/di/spi/ModuleLoaderTest.java |  3 +
 .../lifecycle/audit/AuditableFilter.java        | 10 +-
 .../lifecycle/changeset/GenericChangeSet.java   |  6 +-
 .../sort/WeightedAshwoodEntitySorter.java       |  6 +-
 .../lifecycle/audit/AuditableFilterTest.java    |  2 +
 .../cayenne/project/FileProjectSaver.java       |  2 +-
 .../project/DataChannelProjectSaverTest.java    |  4 +-
 .../cayenne/project/FileProjectSaverTest.java   |  2 +-
 .../upgrade/v7/ProjectUpgrader_V7Test.java      |  6 +-
 .../upgrade/v8/ProjectUpgrader_V8Test.java      |  2 +-
 .../upgrade/v9/ProjectUpgrader_V9Test.java      |  2 +-
 .../java/org/apache/cayenne/CayenneContext.java |  1 +
 .../cayenne/CayenneContextGraphManager.java     |  2 +
 .../org/apache/cayenne/CayenneDataObject.java   |  2 +-
 .../cayenne/DataChannelSyncCallbackAction.java  |  6 +-
 .../apache/cayenne/ObjectContextChangeLog.java  |  2 +-
 .../apache/cayenne/ObjectContextStateLog.java   |  6 +-
 .../main/java/org/apache/cayenne/ObjectId.java  | 10 +-
 .../org/apache/cayenne/access/DataContext.java  |  2 +-
 .../org/apache/cayenne/access/DataDomain.java   | 10 +-
 .../access/DataDomainFlattenedBucket.java       |  7 +-
 .../cayenne/access/DataDomainSyncBucket.java    |  4 +-
 .../cayenne/access/DataDomainUpdateBucket.java  |  6 +-
 .../access/DefaultObjectMapRetainStrategy.java  | 10 +-
 .../org/apache/cayenne/access/ObjectStore.java  |  2 +-
 .../access/PrefetchProcessorJointNode.java      |  2 +-
 .../ejbql/EJBQLTranslationContext.java          |  2 +-
 .../configuration/ConfigurationTree.java        |  2 +-
 .../configuration/server/ServerRuntime.java     |  2 +
 .../configuration/web/CayenneFilter.java        | 11 ++-
 .../org/apache/cayenne/event/EventSubject.java  |  1 +
 .../apache/cayenne/exp/parser/ASTConcat.java    |  2 +-
 .../java/org/apache/cayenne/map/DataMap.java    |  2 +-
 .../java/org/apache/cayenne/map/DbEntity.java   |  3 +
 .../org/apache/cayenne/map/DbRelationship.java  |  8 +-
 .../apache/cayenne/map/EmbeddedAttribute.java   |  2 +-
 .../cayenne/map/EntityInheritanceTree.java      |  2 +-
 .../org/apache/cayenne/map/ObjAttribute.java    |  9 +-
 .../java/org/apache/cayenne/map/ObjEntity.java  | 43 +++++----
 .../cayenne/map/PathComponentIterator.java      |  2 +-
 .../cayenne/query/AbstractMappedQuery.java      |  3 +-
 .../org/apache/cayenne/query/EJBQLQuery.java    |  6 +-
 .../org/apache/cayenne/query/MappedSelect.java  |  2 +
 .../java/org/apache/cayenne/query/Ordering.java |  1 +
 .../apache/cayenne/query/ProcedureQuery.java    |  4 +-
 .../cayenne/query/ProcedureQueryMetadata.java   |  2 +-
 .../cayenne/reflect/PersistentDescriptor.java   |  2 +-
 .../reflect/generic/DataObjectBaseProperty.java |  4 +-
 .../resource/FilesystemResourceLocator.java     |  2 +-
 .../java/org/apache/cayenne/rop/ROPServlet.java |  6 +-
 .../apache/cayenne/util/GenericQueryResult.java |  1 +
 .../cayenne/util/ObjectContextQueryAction.java  |  7 +-
 .../cayenne/util/PersistentObjectMap.java       |  8 +-
 .../cayenne/access/DataContextPrefetchIT.java   |  4 +-
 .../access/DataContextPrefetchMultistepIT.java  |  6 +-
 .../DataContextSQLTemplateCompoundIT.java       |  4 +-
 .../access/DataContextSQLTemplateIT.java        | 16 ++--
 .../access/DataContextSharedCacheIT.java        | 24 ++---
 .../org/apache/cayenne/access/DataDomainIT.java | 16 ++--
 .../apache/cayenne/access/JointPrefetchIT.java  |  2 +-
 .../cayenne/access/OptimisticLockingIT.java     | 98 ++++++++++----------
 .../apache/cayenne/access/UnitTestDomain.java   |  3 +-
 .../access/jdbc/SQLTemplateActionIT.java        |  1 +
 .../rop/server/ROPServletTest.java              | 12 +--
 .../server/ServerRuntimeBuilderIT.java          |  1 +
 .../server/ServerRuntimeBuilderTest.java        |  1 +
 .../configuration/web/CayenneFilterTest.java    | 12 +--
 .../apache/cayenne/map/MockEntityResolver.java  |  1 +
 .../apache/cayenne/query/NamedQueryTest.java    |  3 +-
 .../resource/FilesystemResourceLocatorTest.java |  6 +-
 .../mt/auto/_ClientMtTable1Subclass1.java       |  2 +-
 .../unit/di/server/ServerRuntimeProvider.java   |  1 +
 .../java/org/apache/cayenne/util/UtilTest.java  |  3 +-
 .../modeler/osx/OSXPlatformInitializer.java     |  1 +
 .../modeler/dialog/pref/TemplateCreator.java    |  4 +-
 .../dialog/validator/ValidatorDialog.java       |  2 +-
 .../modeler/editor/SelectQueryMainTab.java      | 17 ++--
 .../cayenne/modeler/util/CellRenderers.java     |  6 +-
 .../persistent/client/auto/_Artist.java         |  6 +-
 .../persistent/client/auto/_Gallery.java        |  4 +-
 .../persistent/client/auto/_Painting.java       |  6 +-
 .../persistent/client/auto/_Artist.java         | 13 +--
 .../persistent/client/auto/_Gallery.java        |  9 +-
 .../persistent/client/auto/_Painting.java       | 13 +--
 .../java/org/apache/cayenne/tutorial/Main.java  |  4 +-
 92 files changed, 298 insertions(+), 290 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
index a0013cc..b83f89e 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
@@ -131,7 +131,7 @@ public class DataMapUtils {
 	 * @return List of parameter names.
 	 */
 	private Set parseQualifier(String qualifierString) {
-		Set result = new ListOrderedSet();
+		Set<String> result = (Set<String>)new ListOrderedSet();
 		Pattern pattern = Pattern.compile("\\$[\\w]+");
 		Matcher matcher = pattern.matcher(qualifierString);
 		while (matcher.find()) {
@@ -168,7 +168,7 @@ public class DataMapUtils {
 		if (expression != null) {
 			Map<String, String> types = new HashMap<>();
 			String typeName = "";
-			List<String> names = new LinkedList<String>();
+			List<String> names = new LinkedList<>();
 
 			for (int i = 0; i < expression.getOperandCount(); i++) {
 				Object operand = expression.getOperand(i);
@@ -186,7 +186,7 @@ public class DataMapUtils {
 					} else {
 						ObjRelationship relationship = component.getRelationship();
 						if (relationship != null) {
-							typeName = ((ObjEntity) relationship.getTargetEntity()).getClassName();
+							typeName = relationship.getTargetEntity().getClassName();
 						} else {
 							typeName = "Object";
 						}
@@ -214,6 +214,6 @@ public class DataMapUtils {
 
 			return types;
 		}
-		return Collections.EMPTY_MAP;
+		return Collections.emptyMap();
 	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java
index 44b709d..78139fd 100644
--- a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java
+++ b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/ClassGenerationCase.java
@@ -23,7 +23,7 @@ import org.apache.velocity.Template;
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
 import org.apache.velocity.runtime.RuntimeConstants;
-import org.apache.velocity.runtime.log.NullLogSystem;
+import org.apache.velocity.runtime.log.NullLogChute;
 import org.junit.Before;
 
 import java.io.StringWriter;
@@ -38,7 +38,7 @@ public class ClassGenerationCase {
         Properties props = new Properties();
 
         // null logger that will prevent velocity.log from being generated
-        props.put(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, NullLogSystem.class.getName());
+        props.put(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, NullLogChute.class.getName());
         props.put("resource.loader", "cayenne");
         props.put("cayenne.resource.loader.class", ClassGeneratorResourceLoader.class.getName());
         props.put("cayenne.resource.loader.cache", "false");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-client/src/main/java/org/apache/cayenne/remote/ClientChannel.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/remote/ClientChannel.java b/cayenne-client/src/main/java/org/apache/cayenne/remote/ClientChannel.java
index b917e49..60f9fcf 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/remote/ClientChannel.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/remote/ClientChannel.java
@@ -157,9 +157,9 @@ public class ClientChannel implements DataChannel {
         }
     }
 
-    private void convertSingleObjects(List objects, DeepMergeOperation merger) {
+    private void convertSingleObjects(List<Object> objects, DeepMergeOperation merger) {
 
-        ListIterator it = objects.listIterator();
+        ListIterator<Object> it = objects.listIterator();
         while (it.hasNext()) {
             Object next = it.next();
             it.set(convertObject( merger, (Persistent) next));
@@ -256,9 +256,7 @@ public class ClientChannel implements DataChannel {
         if (entityResolver == null) {
             synchronized (this) {
                 if (entityResolver == null) {
-                    entityResolver = (EntityResolver) send(
-                            new BootstrapMessage(),
-                            EntityResolver.class);
+                    entityResolver = send(new BootstrapMessage(), EntityResolver.class);
                 }
             }
         }
@@ -299,7 +297,7 @@ public class ClientChannel implements DataChannel {
      * @throws org.apache.cayenne.CayenneRuntimeException if an underlying connector
      *             exception occurred, or a result is not of expected type.
      */
-    protected <T extends Object> T send(ClientMessage message, Class<T> resultClass) {
+    protected <T> T send(ClientMessage message, Class<T> resultClass) {
         Object result = connection.sendMessage(message);
 
         if (result != null && !resultClass.isInstance(result)) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-client/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/query/NamedQueryTest.java b/cayenne-client/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
index 8ca6e85..0477cc9 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/query/NamedQueryTest.java
@@ -28,6 +28,7 @@ import static org.junit.Assert.assertTrue;
 
 public class NamedQueryTest {
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testSerializabilityWithHessian() throws Exception {
         NamedQuery o = new NamedQuery("abc");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-client/src/test/java/org/apache/cayenne/unit/UnitLocalConnection.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/unit/UnitLocalConnection.java b/cayenne-client/src/test/java/org/apache/cayenne/unit/UnitLocalConnection.java
index c34641c..da69275 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/unit/UnitLocalConnection.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/unit/UnitLocalConnection.java
@@ -19,7 +19,7 @@
 
 package org.apache.cayenne.unit;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import junit.framework.AssertionFailedError;
 
 import org.apache.cayenne.CayenneRuntimeException;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientServerDataChannelDecorator.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientServerDataChannelDecorator.java b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientServerDataChannelDecorator.java
index 57aea3e..3ecff3b 100644
--- a/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientServerDataChannelDecorator.java
+++ b/cayenne-client/src/test/java/org/apache/cayenne/unit/di/client/ClientServerDataChannelDecorator.java
@@ -18,7 +18,7 @@
  ****************************************************************/
 package org.apache.cayenne.unit.di.client;
 
-import junit.framework.Assert;
+import org.junit.Assert;
 import junit.framework.AssertionFailedError;
 
 import org.apache.cayenne.DataChannel;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-di/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorInjectionTest.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorInjectionTest.java b/cayenne-di/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorInjectionTest.java
index 3d81ea3..c5d8a35 100644
--- a/cayenne-di/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorInjectionTest.java
+++ b/cayenne-di/src/test/java/org/apache/cayenne/di/spi/DefaultInjectorInjectionTest.java
@@ -308,12 +308,12 @@ public class DefaultInjectorInjectionTest {
                 binder.bind(MockInterface1.class).to(
                         MockImplementation1_ListConfiguration.class);
 
-                Collection firstList = new ArrayList<>();
+                Collection<Object> firstList = new ArrayList<>();
                 firstList.add("1value");
                 firstList.add("2value");
                 firstList.add("3value");
 
-                Collection secondList = new ArrayList<>();
+                Collection<Object> secondList = new ArrayList<>();
                 secondList.add("6value");
                 secondList.add("7value");
                 secondList.add("8value");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java b/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
index 2bc51b5..c86e8db 100644
--- a/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
+++ b/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
@@ -93,6 +93,7 @@ public class ModuleLoaderTest {
         }
 
 
+        @SuppressWarnings("unchecked")
         @Override
         public Collection<Class<? extends Module>> overrides() {
             Collection c = Collections.singletonList(Module2.class);
@@ -112,6 +113,7 @@ public class ModuleLoaderTest {
             return Module2.class;
         }
 
+        @SuppressWarnings("unchecked")
         @Override
         public Collection<Class<? extends Module>> overrides() {
             Collection c = Collections.singletonList(Module4.class);
@@ -150,6 +152,7 @@ public class ModuleLoaderTest {
         }
 
         @Override
+        @SuppressWarnings("unchecked")
         public Collection<Class<? extends Module>> overrides() {
             Collection c = Collections.singletonList(Module3.class);
             return c;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java
index 69a46fa..01e1b02 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/audit/AuditableFilter.java
@@ -189,7 +189,7 @@ public class AuditableFilter implements DataChannelFilter {
 
         String propertyPath = annotation.value();
 
-        if (propertyPath == null || propertyPath.equals("")) {
+        if (propertyPath.equals("")) {
             propertyPath = objectIdRelationshipName(annotation.objectIdRelationship());
         }
 
@@ -208,14 +208,14 @@ public class AuditableFilter implements DataChannelFilter {
         return "cay:related:" + uuidPropertyName;
     }
 
-    protected boolean isAuditableUpdate(Object object, boolean child) {
+    protected boolean isAuditableUpdate(Persistent object, boolean child) {
         AuditableEntityDescriptor descriptor = getEntityDescriptor(object, child);
-        return descriptor.auditableChange((Persistent) object);
+        return descriptor.auditableChange(object);
     }
 
-    private AuditableEntityDescriptor getEntityDescriptor(Object object, boolean child) {
+    private AuditableEntityDescriptor getEntityDescriptor(Persistent object, boolean child) {
 
-        ObjEntity entity = entityResolver.lookupObjEntity(object);
+        ObjEntity entity = entityResolver.getObjEntity(object);
 
         AuditableEntityDescriptor descriptor = entityDescriptors.get(entity.getName());
         if (descriptor == null) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/changeset/GenericChangeSet.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/changeset/GenericChangeSet.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/changeset/GenericChangeSet.java
index cf9519a..b043726 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/changeset/GenericChangeSet.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/changeset/GenericChangeSet.java
@@ -48,7 +48,7 @@ public class GenericChangeSet implements ChangeSet {
 
     public Map<String, PropertyChange> getChanges(Persistent object) {
         Map<String, PropertyChange> changes = getChanges().get(object.getObjectId());
-        return changes != null ? changes : Collections.EMPTY_MAP;
+        return changes != null ? changes : Collections.<String, PropertyChange>emptyMap();
     }
 
     private Map<ObjectId, Map<String, PropertyChange>> getChanges() {
@@ -99,13 +99,13 @@ public class GenericChangeSet implements ChangeSet {
             public void arcDeleted(Object nodeId, Object targetNodeId, Object arcId) {
                 // record the fact of relationship change... TODO: analyze relationship
                 // semantics and record changset values
-                getChange(nodeId, (String) arcId, null);
+                getChange((ObjectId)nodeId, (String) arcId, null);
             }
 
             public void arcCreated(Object nodeId, Object targetNodeId, Object arcId) {
                 // record the fact of relationship change... TODO: analyze relationship
                 // semantics and record changset values
-                getChange(nodeId, (String) arcId, null);
+                getChange((ObjectId)nodeId, (String) arcId, null);
             }
 
             public void nodePropertyChanged(

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorter.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorter.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorter.java
index 89ab219..4ea6895 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorter.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/sort/WeightedAshwoodEntitySorter.java
@@ -44,7 +44,7 @@ public class WeightedAshwoodEntitySorter extends AshwoodEntitySorter {
     public WeightedAshwoodEntitySorter() {
         this.weightedDbEntityComparator = new WeightedDbEntityComparator();
         this.weightedObjEntityComparator = new WeightedObjEntityComparator();
-        this.entityWeights = Collections.EMPTY_MAP;
+        this.entityWeights = Collections.emptyMap();
     }
 
     @Override
@@ -65,6 +65,7 @@ public class WeightedAshwoodEntitySorter extends AshwoodEntitySorter {
         }
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     protected Comparator<DbEntity> getDbEntityComparator(boolean dependantFirst) {
         Comparator<DbEntity> c = weightedDbEntityComparator;
@@ -74,6 +75,7 @@ public class WeightedAshwoodEntitySorter extends AshwoodEntitySorter {
         return c;
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     protected Comparator<ObjEntity> getObjEntityComparator(boolean dependantFirst) {
         Comparator<ObjEntity> c = weightedObjEntityComparator;
@@ -85,7 +87,7 @@ public class WeightedAshwoodEntitySorter extends AshwoodEntitySorter {
 
     private int getWeight(DbEntity e) {
         Integer w = entityWeights.get(e);
-        return w != null ? w.intValue() : 1;
+        return w != null ? w : 1;
     }
 
     private final class WeightedDbEntityComparator implements Comparator<DbEntity> {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/audit/AuditableFilterTest.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/audit/AuditableFilterTest.java b/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/audit/AuditableFilterTest.java
index 22c5062..2981b0d 100644
--- a/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/audit/AuditableFilterTest.java
+++ b/cayenne-lifecycle/src/test/java/org/apache/cayenne/lifecycle/audit/AuditableFilterTest.java
@@ -57,6 +57,8 @@ public class AuditableFilterTest {
 
         ObjEntity objectEntity = new ObjEntity("CayenneDataObject");
         when(resolver.lookupObjEntity(any(Object.class))).thenReturn(objectEntity);
+        when(resolver.getObjEntity(any(Persistent.class))).thenReturn(objectEntity);
+        when(resolver.getObjEntity(any(Class.class))).thenReturn(objectEntity);
 
         DataChannel channel = mock(DataChannel.class);
         when(channel.getEntityResolver()).thenReturn(resolver);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
index daa0d22..c37d763 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
@@ -226,7 +226,7 @@ public class FileProjectSaver implements ProjectSaver {
 
 			unit.targetTempFile = null;
 			try {
-				unit.node.acceptVisitor(new ConfigurationSourceSetter(new URLResource(targetFile.toURL())));
+				unit.node.acceptVisitor(new ConfigurationSourceSetter(new URLResource(targetFile.toURI().toURL())));
 			} catch (MalformedURLException e) {
 				throw new CayenneRuntimeException("Malformed URL for file '%s'", e, targetFile.getAbsolutePath());
 			}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java b/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java
index dbdfd51..484c9ca 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/DataChannelProjectSaverTest.java
@@ -82,7 +82,7 @@ public class DataChannelProjectSaverTest extends Project2Case {
 
         File outFile = setupTestDirectory("testSave");
 
-        saver.saveAs(project, new URLResource(outFile.toURL()));
+        saver.saveAs(project, new URLResource(outFile.toURI().toURL()));
 
         File rootFile = new File(outFile, "cayenne-PROJECT2.xml");
         assertTrue(rootFile.exists());
@@ -138,7 +138,7 @@ public class DataChannelProjectSaverTest extends Project2Case {
         assertEquals(0, outFile.list().length);
 
         try {
-            saver.saveAs(project, new URLResource(outFile.toURL()));
+            saver.saveAs(project, new URLResource(outFile.toURI().toURL()));
             fail("No exception was thrown..");
         }
         catch (CayenneRuntimeException e) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java b/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java
index 322245c..a9a432d 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/FileProjectSaverTest.java
@@ -92,7 +92,7 @@ public class FileProjectSaverTest extends Project2Case {
         Project project = new Project(new ConfigurationTree<DataChannelDescriptor>(
                 rootNode));
 
-        saver.saveAs(project, new URLResource(testFolder.toURL()));
+        saver.saveAs(project, new URLResource(testFolder.toURI().toURL()));
 
         File target = new File(testFolder, "cayenne-test.xml");
         assertTrue(target.isFile());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
index 793d6a0..8dd51a2 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v7/ProjectUpgrader_V7Test.java
@@ -223,7 +223,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		Injector injector = DIBootstrap.createInjector(testModule);
 		injector.injectMembers(upgrader);
 
-		Resource source = new URLResource(targetsBefore.get(0).toURL());
+		Resource source = new URLResource(targetsBefore.get(0).toURI().toURL());
 		UpgradeHandler handler = upgrader.getUpgradeHandler(source);
 
 		Resource upgraded = handler.performUpgrade();
@@ -377,7 +377,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7();
 		injector.injectMembers(upgrader);
 
-		Resource source = new URLResource(files.get(0).toURL());
+		Resource source = new URLResource(files.get(0).toURI().toURL());
 		assertNotNull(source);
 		UpgradeHandler handler = upgrader.getUpgradeHandler(source);
 		assertNotNull(handler);
@@ -452,7 +452,7 @@ public class ProjectUpgrader_V7Test extends Project2Case {
 		ProjectUpgrader_V7 upgrader = new ProjectUpgrader_V7();
 		injector.injectMembers(upgrader);
 
-		Resource resource = new URLResource(file.get(0).toURL());
+		Resource resource = new URLResource(file.get(0).toURI().toURL());
 		assertNotNull(resource);
 		UpgradeHandler handler = upgrader.getUpgradeHandler(resource);
 		assertNotNull(handler);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
index 610d77c..1252d69 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v8/ProjectUpgrader_V8Test.java
@@ -115,7 +115,7 @@ public class ProjectUpgrader_V8Test extends Project2Case {
         Injector injector = DIBootstrap.createInjector(testModule);
         injector.injectMembers(upgrader);
 
-        Resource source = new URLResource(targetsBefore.get(0).toURL());
+        Resource source = new URLResource(targetsBefore.get(0).toURI().toURL());
         UpgradeHandler handler = upgrader.getUpgradeHandler(source);
 
         Resource upgraded = handler.performUpgrade();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java
index cf0db9b..3851a2e 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/v9/ProjectUpgrader_V9Test.java
@@ -181,7 +181,7 @@ public class ProjectUpgrader_V9Test extends Project2Case {
         Injector injector = DIBootstrap.createInjector(testModule);
         injector.injectMembers(upgrader);
 
-        Resource source = new URLResource(targetsBefore.get(0).toURL());
+        Resource source = new URLResource(targetsBefore.get(0).toURI().toURL());
         UpgradeHandler handler = upgrader.getUpgradeHandler(source);
 
         Resource upgraded = handler.performUpgrade();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/CayenneContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/CayenneContext.java b/cayenne-server/src/main/java/org/apache/cayenne/CayenneContext.java
index d53167f..856d77b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/CayenneContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/CayenneContext.java
@@ -249,6 +249,7 @@ public class CayenneContext extends BaseContext {
         }
 
         ClassDescriptor descriptor = getEntityResolver().getClassDescriptor(entity.getName());
+        @SuppressWarnings("unchecked")
         T object = (T) descriptor.createObject();
         descriptor.injectValueHolders(object);
         registerNewObject((Persistent) object, entity.getName(), descriptor);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java b/cayenne-server/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java
index 2c47321..ec97004 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java
@@ -186,7 +186,9 @@ final class CayenneContextGraphManager extends GraphMap {
             Object source,
             Object target) throws PropertyException {
 
+        @SuppressWarnings("unchecked")
         Map<Object, Object> map = (Map<Object, Object>) property.readProperty(source);
+
         Object newKey = property.getMapKey(target);
         Object currentValue = map.get(newKey);
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/CayenneDataObject.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/CayenneDataObject.java b/cayenne-server/src/main/java/org/apache/cayenne/CayenneDataObject.java
index dfc8318..401f14b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/CayenneDataObject.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/CayenneDataObject.java
@@ -579,7 +579,7 @@ public class CayenneDataObject extends PersistentObject implements DataObject, V
 	 */
 	protected void validateForSave(ValidationResult validationResult) {
 
-		ObjEntity objEntity = getObjectContext().getEntityResolver().lookupObjEntity(this);
+		ObjEntity objEntity = getObjectContext().getEntityResolver().getObjEntity(this);
 		if (objEntity == null) {
 			throw new CayenneRuntimeException("No ObjEntity mapping found for DataObject " + getClass().getName());
 		}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/DataChannelSyncCallbackAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/DataChannelSyncCallbackAction.java b/cayenne-server/src/main/java/org/apache/cayenne/DataChannelSyncCallbackAction.java
index 32013f2..4e954f3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/DataChannelSyncCallbackAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/DataChannelSyncCallbackAction.java
@@ -57,9 +57,9 @@ public abstract class DataChannelSyncCallbackAction implements GraphChangeHandle
     }
 
     LifecycleCallbackRegistry callbackRegistry;
-    Collection updated;
-    Collection persisted;
-    Collection removed;
+    Collection<Object> updated;
+    Collection<Object> persisted;
+    Collection<Object> removed;
     private Map<Object, Op> seenIds;
     private GraphManager graphManager;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
index 496da23..0c7b483 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
@@ -145,7 +145,7 @@ class ObjectContextChangeLog {
      */
     private List<GraphDiff> immutableList(int fromIndex, int toIndex) {
         if (toIndex - fromIndex == 0) {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
         // Assuming that internal diffs list can only grow and can never be trimmed,

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
index acc9298..408813e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
@@ -53,10 +53,10 @@ class ObjectContextStateLog implements GraphChangeHandler {
      * Updates dirty objects state and clears dirty ids map.
      */
     void graphCommitted() {
-        /**
+        /*
          * Array for deleted ids, to avoid concurrent modification
          */
-        List deletedIds = new Vector();
+        List<Object> deletedIds = new Vector<>();
         
         for (Object id : dirtyIds) {
             Object node = graphManager.getNode(id);
@@ -75,7 +75,7 @@ class ObjectContextStateLog implements GraphChangeHandler {
             }
         }
         
-        /**
+        /*
          * Now unregister all deleted objects
          */
         for (Object id : deletedIds) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/ObjectId.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ObjectId.java b/cayenne-server/src/main/java/org/apache/cayenne/ObjectId.java
index e726475..f7d6b41 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectId.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectId.java
@@ -176,14 +176,14 @@ public class ObjectId implements Serializable {
 	 */
 	public Map<String, Object> getIdSnapshot() {
 		if (isTemporary()) {
-			return (replacementIdMap == null) ? Collections.EMPTY_MAP : Collections.unmodifiableMap(replacementIdMap);
+			return (replacementIdMap == null) ? Collections.<String, Object>emptyMap() : Collections.unmodifiableMap(replacementIdMap);
 		}
 
 		if (singleKey != null) {
 			return Collections.singletonMap(singleKey, singleValue);
 		}
 
-		return objectIdKeys != null ? Collections.unmodifiableMap(objectIdKeys) : Collections.EMPTY_MAP;
+		return objectIdKeys != null ? Collections.unmodifiableMap(objectIdKeys) : Collections.<String, Object>emptyMap();
 	}
 
 	@Override
@@ -219,7 +219,7 @@ public class ObjectId implements Serializable {
 		}
 
 		for (Map.Entry<String, ?> entry : objectIdKeys.entrySet()) {
-			Object entryKey = entry.getKey();
+			String entryKey = entry.getKey();
 			Object entryValue = entry.getValue();
 
 			if (entryValue == null) {
@@ -281,7 +281,7 @@ public class ObjectId implements Serializable {
 				// handle multiple keys - must sort the keys to use with
 				// HashCodeBuilder
 
-				Object[] keys = objectIdKeys.keySet().toArray();
+				String[] keys = objectIdKeys.keySet().toArray(new String[0]);
 				Arrays.sort(keys);
 
 				for (int i = 0; i < len; i++) {
@@ -374,7 +374,7 @@ public class ObjectId implements Serializable {
 
 			List<String> keys = new ArrayList<>(objectIdKeys.keySet());
 			Collections.sort(keys);
-			for (Object key : keys) {
+			for (String key : keys) {
 				buffer.append(", ");
 				buffer.append(String.valueOf(key)).append("=").append(objectIdKeys.get(key));
 			}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
index 74161c3..cc0a65e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
@@ -1210,7 +1210,7 @@ public class DataContext extends BaseContext {
 
     /**
      * @since 4.0
-     * @deprecated since 4.0 avoid using thsi directly. Transaction management
+     * @deprecated since 4.0 avoid using this directly. Transaction management
      *             at this level will be eventually removed
      */
     @Deprecated

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomain.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomain.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomain.java
index 040aa5e..9bc0129 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomain.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomain.java
@@ -146,21 +146,21 @@ public class DataDomain implements QueryEngine, DataChannel {
 	 * @deprecated since 4.0 unused
 	 */
 	@Deprecated
-	public DataDomain(String name, Map properties) {
+	public DataDomain(String name, Map<String, String> properties) {
 		init(name);
 		initWithProperties(properties);
 	}
 
 	private void init(String name) {
 
-		this.filters = new CopyOnWriteArrayList<DataChannelFilter>();
+		this.filters = new CopyOnWriteArrayList<>();
 		this.nodesByDataMapName = new ConcurrentHashMap<>();
 		this.nodes = new ConcurrentHashMap<>();
 
 		// properties are read-only, so no need for concurrent map, or any
 		// specific map
 		// for that matter
-		this.properties = Collections.EMPTY_MAP;
+		this.properties = Collections.emptyMap();
 
 		setName(name);
 	}
@@ -196,7 +196,7 @@ public class DataDomain implements QueryEngine, DataChannel {
 	 * @since 1.1
 	 */
 	protected void resetProperties() {
-		properties = Collections.EMPTY_MAP;
+		properties = Collections.emptyMap();
 
 		sharedCacheEnabled = SHARED_CACHE_ENABLED_DEFAULT;
 		validatingObjectsOnCommit = VALIDATING_OBJECTS_ON_COMMIT_DEFAULT;
@@ -212,7 +212,7 @@ public class DataDomain implements QueryEngine, DataChannel {
 	public void initWithProperties(Map<String, String> properties) {
 
 		// clone properties to ensure that it is read-only internally
-		properties = properties != null ? new HashMap<>(properties) : Collections.EMPTY_MAP;
+		properties = properties != null ? new HashMap<>(properties) : Collections.<String, String>emptyMap();
 
 		String sharedCacheEnabled = properties.get(SHARED_CACHE_ENABLED_PROPERTY);
 		String validatingObjectsOnCommit = properties.get(VALIDATING_OBJECTS_ON_COMMIT_PROPERTY);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainFlattenedBucket.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainFlattenedBucket.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainFlattenedBucket.java
index 761434c..fa3d3c9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainFlattenedBucket.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainFlattenedBucket.java
@@ -80,11 +80,10 @@ class DataDomainFlattenedBucket {
         }
 
         DataNode node = parent.getDomain().lookupDataNode(flattenedEntity.getDataMap());
-        List flattenedSnapshots = flattenedDeleteInfo.buildJoinSnapshotsForDelete(node);
+        List<Map<String, Object>> flattenedSnapshots = flattenedDeleteInfo.buildJoinSnapshotsForDelete(node);
         if (!flattenedSnapshots.isEmpty()) {
-            Iterator snapsIt = flattenedSnapshots.iterator();
-            while (snapsIt.hasNext()) {
-                relationDeleteQuery.add((Map) snapsIt.next());
+            for (Map<String, Object> flattenedSnapshot : flattenedSnapshots) {
+                relationDeleteQuery.add(flattenedSnapshot);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
index 7436dcc..588a0d2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
@@ -280,9 +280,9 @@ abstract class DataDomainSyncBucket {
 
         // must do a slow map scan to ensure the object is not mapped under a different
         // key...
-        Iterator<?> it = map.entrySet().iterator();
+        Iterator<Map.Entry<Object, Object>> it = map.entrySet().iterator();
         while (it.hasNext()) {
-            Map.Entry<Object, Object> e = (Map.Entry<Object, Object>) it.next();
+            Map.Entry<Object, Object> e = it.next();
             if (e.getValue() == target) {
                 it.remove();
                 break;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java
index 0f9c038..d128f77 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java
@@ -138,12 +138,10 @@ class DataDomainUpdateBucket extends DataDomainSyncBucket {
      * Creates a list of DbAttributes that are updated in a snapshot
      */
     private List updatedAttributes(DbEntity entity, Map updatedSnapshot) {
-        List attributes = new ArrayList(updatedSnapshot.size());
+        List<Object> attributes = new ArrayList<>(updatedSnapshot.size());
         Map entityAttributes = entity.getAttributeMap();
 
-        Iterator it = updatedSnapshot.keySet().iterator();
-        while (it.hasNext()) {
-            Object name = it.next();
+        for (Object name : updatedSnapshot.keySet()) {
             attributes.add(entityAttributes.get(name));
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/DefaultObjectMapRetainStrategy.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DefaultObjectMapRetainStrategy.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DefaultObjectMapRetainStrategy.java
index efaa98f..85c8913 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DefaultObjectMapRetainStrategy.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DefaultObjectMapRetainStrategy.java
@@ -45,20 +45,18 @@ public class DefaultObjectMapRetainStrategy implements ObjectMapRetainStrategy {
         this.runtimeProperties = runtimeProperties;
     }
 
+    @SuppressWarnings("unchecked")
     public Map<Object, Persistent> createObjectMap() {
         String strategy = runtimeProperties
                 .get(Constants.SERVER_OBJECT_RETAIN_STRATEGY_PROPERTY);
 
         if (strategy == null || WEAK_RETAIN_STRATEGY.equals(strategy)) {
             return new ReferenceMap(AbstractReferenceMap.HARD, AbstractReferenceMap.WEAK);
-        }
-        else if (SOFT_RETAIN_STRATEGY.equals(strategy)) {
+        } else if (SOFT_RETAIN_STRATEGY.equals(strategy)) {
             return new ReferenceMap(AbstractReferenceMap.HARD, AbstractReferenceMap.SOFT);
-        }
-        else if (HARD_RETAIN_STRATEGY.equals(strategy)) {
+        } else if (HARD_RETAIN_STRATEGY.equals(strategy)) {
             return new ReferenceMap(AbstractReferenceMap.HARD, AbstractReferenceMap.HARD);
-        }
-        else {
+        } else {
             throw new CayenneRuntimeException("Unsupported retain strategy " + strategy);
         }
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectStore.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectStore.java b/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectStore.java
index b9cf3f5..693daf6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectStore.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/ObjectStore.java
@@ -128,7 +128,7 @@ public class ObjectStore implements Serializable, SnapshotEventListener, GraphMa
     Collection<GraphDiff> getLifecycleEventInducedChanges() {
         return lifecycleEventInducedChanges != null
                 ? lifecycleEventInducedChanges
-                : Collections.EMPTY_LIST;
+                : Collections.<GraphDiff>emptyList();
     }
 
     void registerLifecycleEventInducedChange(GraphDiff diff) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
index e45cc9f..be7e1ed 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
@@ -78,7 +78,7 @@ class PrefetchProcessorJointNode extends PrefetchProcessorNode {
             capacity = capacity / 2;
         }
 
-        objects = new ArrayList(capacity);
+        objects = new ArrayList<>(capacity);
         resolved = new HashMap<>(capacity);
         resolvedRows = new ArrayList<>(capacity);
         buildRowMapping();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTranslationContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTranslationContext.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTranslationContext.java
index 2f5e58d..09d41fc 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTranslationContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTranslationContext.java
@@ -112,7 +112,7 @@ public class EJBQLTranslationContext {
         SQLTemplate query = new SQLTemplate(compiledExpression
                 .getRootDescriptor()
                 .getObjectClass(), sql);
-        query.setParameters(boundParameters);
+        query.setParams(boundParameters);
         return query;
     }
     

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationTree.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationTree.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationTree.java
index 7656c5d..4035575 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationTree.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/ConfigurationTree.java
@@ -48,6 +48,6 @@ public class ConfigurationTree<T extends ConfigurationNode> {
     }
 
     public Collection<ValidationFailure> getLoadFailures() {
-        return loadFailures != null ? loadFailures : Collections.EMPTY_LIST;
+        return loadFailures != null ? loadFailures : Collections.<ValidationFailure>emptyList();
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntime.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntime.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntime.java
index 991fe4a..756cbc7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntime.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerRuntime.java
@@ -50,6 +50,7 @@ public class ServerRuntime extends CayenneRuntime {
      * @return a builder of ServerRuntime.
      * @since 4.0
      */
+    @SuppressWarnings("deprecation")
     public static ServerRuntimeBuilder builder() {
         return new ServerRuntimeBuilder();
     }
@@ -60,6 +61,7 @@ public class ServerRuntime extends CayenneRuntime {
      * @param name optional symbolic name of the created runtime.
      * @return a named builder of ServerRuntime.
      */
+    @SuppressWarnings("deprecation")
     public static ServerRuntimeBuilder builder(String name) {
         return new ServerRuntimeBuilder(name);
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
index f43fc00..5637146 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/web/CayenneFilter.java
@@ -71,16 +71,17 @@ public class CayenneFilter implements Filter {
         String configurationLocation = configAdapter.getConfigurationLocation();
         Collection<Module> modules = configAdapter.createModules(new WebModule());
         modules.addAll(getAdditionalModules());
-        
-        ServerRuntime runtime = new ServerRuntime(
-                configurationLocation,
-                modules.toArray(new Module[modules.size()]));
+
+        ServerRuntime runtime = ServerRuntime.builder()
+                .addConfig(configurationLocation)
+                .addModules(modules).build();
 
         WebUtil.setCayenneRuntime(config.getServletContext(), runtime);
     }
 
     /**
-     * Subclasses may override this to specify additional modules that should be included when creating the CayenneRuntime (in addition to those specified in the web.xml file).
+     * Subclasses may override this to specify additional modules that should be included when creating the CayenneRuntime
+     * (in addition to those specified in the web.xml file).
      * 
      * @since 4.0
      */

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/event/EventSubject.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/event/EventSubject.java b/cayenne-server/src/main/java/org/apache/cayenne/event/EventSubject.java
index a28b36e..4122e12 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/event/EventSubject.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/event/EventSubject.java
@@ -40,6 +40,7 @@ import org.apache.commons.collections.map.ReferenceMap;
 public class EventSubject implements Serializable {
 
     // a Map that will allow the values to be GC'ed
+    @SuppressWarnings("unchecked")
     private static Map<String, EventSubject> _registeredSubjects = new ReferenceMap(
             ReferenceMap.HARD,
             ReferenceMap.WEAK);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTConcat.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTConcat.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTConcat.java
index 0e285c4..1bfb336 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTConcat.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTConcat.java
@@ -32,7 +32,7 @@ public class ASTConcat extends ASTFunctionCall {
     }
 
     public ASTConcat(Expression... expressions) {
-        super(ExpressionParserTreeConstants.JJTCONCAT, "CONCAT", expressions);
+        super(ExpressionParserTreeConstants.JJTCONCAT, "CONCAT", (Object[])expressions);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index b9a4dd4..d9d0502 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -1394,7 +1394,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
     }
 
     public Map<String, ObjEntity> getSubclassesForObjEntity(ObjEntity superEntity) {
-        Map<String, ObjEntity> subObjectEntities = new HashMap(5);
+        Map<String, ObjEntity> subObjectEntities = new HashMap<>(5);
         for (ObjEntity objectEntity : objEntityMap.values()) {
             if (superEntity.getName().equals(objectEntity.getSuperEntityName())) {
                 subObjectEntities.put(objectEntity.getName(), objectEntity);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
index 3a26d15..3989b19 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
@@ -204,6 +204,7 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
      * Returns a Collection of all attributes that either belong to this
      * DbEntity or inherited.
      */
+    @SuppressWarnings("unchecked")
     @Override
     public Collection<DbAttribute> getAttributes() {
         return (Collection<DbAttribute>) super.getAttributes();
@@ -275,11 +276,13 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
     /**
      * Returns a Collection of relationships from this entity or inherited.
      */
+    @SuppressWarnings("unchecked")
     @Override
     public Collection<DbRelationship> getRelationships() {
         return (Collection<DbRelationship>) super.getRelationships();
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public SortedMap<String, DbRelationship> getRelationshipMap() {
         return (SortedMap<String, DbRelationship>) super.getRelationshipMap();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
index 8ef313d..d932364 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
@@ -120,9 +120,10 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
      * 
      * @since 1.1
      */
+    @SuppressWarnings("unchecked")
     public Collection<DbAttribute> getTargetAttributes() {
         if (joins.size() == 0) {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
         return CollectionUtils.collect(joins, JoinTransformers.targetExtractor);
@@ -133,9 +134,10 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
      * 
      * @since 1.1
      */
+    @SuppressWarnings("unchecked")
     public Collection<DbAttribute> getSourceAttributes() {
         if (joins.size() == 0) {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
         return CollectionUtils.collect(joins, JoinTransformers.sourceExtractor);
@@ -383,7 +385,7 @@ public class DbRelationship extends Relationship implements ConfigurationNode {
             Object val = srcSnapshot.get(join.getSourceName());
             if (val == null) {
                 foundNulls++;
-                idMap = Collections.EMPTY_MAP;
+                idMap = Collections.emptyMap();
             } else {
                 idMap = Collections.singletonMap(join.getTargetName(), val);
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/EmbeddedAttribute.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/EmbeddedAttribute.java b/cayenne-server/src/main/java/org/apache/cayenne/map/EmbeddedAttribute.java
index 18fc97e..d26113e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/EmbeddedAttribute.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/EmbeddedAttribute.java
@@ -174,7 +174,7 @@ public class EmbeddedAttribute extends ObjAttribute {
     public Collection<ObjAttribute> getAttributes() {
         Embeddable e = getEmbeddable();
         if (e == null) {
-            return Collections.EMPTY_LIST;
+            return Collections.emptyList();
         }
 
         Collection<EmbeddableAttribute> embeddableAttributes = e.getAttributes();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/EntityInheritanceTree.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityInheritanceTree.java b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityInheritanceTree.java
index b41f638..18988d7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityInheritanceTree.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityInheritanceTree.java
@@ -127,7 +127,7 @@ public class EntityInheritanceTree {
     }
 
     public Collection<EntityInheritanceTree> getChildren() {
-        return (subentities != null) ? subentities : Collections.EMPTY_LIST;
+        return (subentities != null) ? subentities : Collections.<EntityInheritanceTree>emptyList();
     }
 
     public ObjEntity getEntity() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
index ea5b05e..57bfca3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjAttribute.java
@@ -174,13 +174,13 @@ public class ObjAttribute extends Attribute implements ConfigurationNode {
      * Returns a DbAttribute mapped by this ObjAttribute.
      */
     public DbAttribute getDbAttribute() {
-        Iterator<CayenneMapEntry> pathIterator = getDbPathIterator((ObjEntity) getEntity());
+        Iterator<CayenneMapEntry> pathIterator = getDbPathIterator(getEntity());
         CayenneMapEntry o = null;
         while (pathIterator.hasNext()) {
             o = pathIterator.next();
         }
         if (o == null) {
-            return getParentDbAttribute((ObjEntity) getEntity());
+            return getParentDbAttribute(getEntity());
         }
         return (DbAttribute) o;
     }
@@ -210,7 +210,7 @@ public class ObjAttribute extends Attribute implements ConfigurationNode {
      * @since 3.0
      */
     public boolean isInherited() {
-        ObjEntity owningEntity = (ObjEntity) getEntity();
+        ObjEntity owningEntity = getEntity();
         if (owningEntity == null) {
             return false;
         }
@@ -225,9 +225,10 @@ public class ObjAttribute extends Attribute implements ConfigurationNode {
     }
 
     public Iterator<CayenneMapEntry> getDbPathIterator() {
-        return getDbPathIterator((ObjEntity) getEntity());
+        return getDbPathIterator(getEntity());
     }
 
+    @SuppressWarnings("unchecked")
     public Iterator<CayenneMapEntry> getDbPathIterator(ObjEntity entity) {
         if (dbAttributePath == null) {
             return IteratorUtils.EMPTY_ITERATOR;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
index f54ecb9..6ea1f62 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/ObjEntity.java
@@ -35,7 +35,6 @@ import org.apache.cayenne.util.XMLEncoder;
 import org.apache.commons.collections.Transformer;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -59,14 +58,14 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
 
     // do not import CayenneDataObject as it introduces unneeded client
     // dependency
-    static final String CAYENNE_DATA_OBJECT_CLASS = "org.apache.cayenne.CayenneDataObject";
+    private static final String CAYENNE_DATA_OBJECT_CLASS = "org.apache.cayenne.CayenneDataObject";
     /**
      * A collection of default "generic" entity classes excluded from class
      * generation.
      * 
      * @since 1.2
      */
-    protected static final Collection<String> DEFAULT_GENERIC_CLASSES = Arrays.asList(CAYENNE_DATA_OBJECT_CLASS);
+    protected static final Collection<String> DEFAULT_GENERIC_CLASSES = Collections.singletonList(CAYENNE_DATA_OBJECT_CLASS);
 
     protected String superClassName;
     protected String className;
@@ -262,7 +261,7 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
                 continue;
             }
 
-            ObjEntity targetEntity = (ObjEntity) relationship.getTargetEntity();
+            ObjEntity targetEntity = relationship.getTargetEntity();
             // note that 'isClientAllowed' also checks parent DataMap client
             // policy
             // that can be handy in case of cross-map relationships
@@ -743,10 +742,10 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
     @Override
     public SortedMap<String, ObjAttribute> getAttributeMap() {
         if (superEntityName == null) {
-            return (SortedMap<String, ObjAttribute>) super.getAttributeMap();
+            return getAttributeMapInternal();
         }
 
-        SortedMap<String, ObjAttribute> attributeMap = new TreeMap<String, ObjAttribute>();
+        SortedMap<String, ObjAttribute> attributeMap = new TreeMap<>();
         appendAttributes(attributeMap);
         return attributeMap;
     }
@@ -755,11 +754,11 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
      * Recursively appends all attributes in the entity inheritance hierarchy.
      */
     final void appendAttributes(Map<String, ObjAttribute> map) {
-        map.putAll((Map<String, ObjAttribute>) super.getAttributeMap());
+        map.putAll(getAttributeMapInternal());
 
         ObjEntity superEntity = getSuperEntity();
         if (superEntity != null) {
-            SortedMap<String, ObjAttribute> attributeMap = new TreeMap<String, ObjAttribute>();
+            SortedMap<String, ObjAttribute> attributeMap = new TreeMap<>();
             superEntity.appendAttributes(attributeMap);
             for (String attributeName : attributeMap.keySet()) {
 
@@ -775,6 +774,11 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
         }
     }
 
+    @SuppressWarnings("unchecked")
+    final SortedMap<String, ObjAttribute> getAttributeMapInternal() {
+        return (SortedMap<String, ObjAttribute>) super.getAttributeMap();
+    }
+
     /**
      * @since 3.0
      */
@@ -795,10 +799,6 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
      */
     @Override
     public Collection<ObjAttribute> getAttributes() {
-        if (superEntityName == null) {
-            return (Collection<ObjAttribute>) super.getAttributes();
-        }
-
         return getAttributeMap().values();
     }
 
@@ -808,6 +808,7 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
      * 
      * @since 1.1
      */
+    @SuppressWarnings("unchecked")
     public Collection<ObjAttribute> getDeclaredAttributes() {
         return (Collection<ObjAttribute>) super.getAttributes();
     }
@@ -834,10 +835,10 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
     @Override
     public SortedMap<String, ObjRelationship> getRelationshipMap() {
         if (superEntityName == null) {
-            return (SortedMap<String, ObjRelationship>) super.getRelationshipMap();
+            return getRelationshipMapInternal();
         }
 
-        SortedMap<String, ObjRelationship> relationshipMap = new TreeMap<String, ObjRelationship>();
+        SortedMap<String, ObjRelationship> relationshipMap = new TreeMap<>();
         appendRelationships(relationshipMap);
         return relationshipMap;
     }
@@ -847,7 +848,7 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
      * hierarchy.
      */
     final void appendRelationships(Map<String, ObjRelationship> map) {
-        map.putAll((Map<String, ObjRelationship>) super.getRelationshipMap());
+        map.putAll(getRelationshipMapInternal());
 
         ObjEntity superEntity = getSuperEntity();
         if (superEntity != null) {
@@ -857,19 +858,21 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
 
     @Override
     public Collection<ObjRelationship> getRelationships() {
-        if (superEntityName == null) {
-            return (Collection<ObjRelationship>) super.getRelationships();
-        }
-
         return getRelationshipMap().values();
     }
 
+    @SuppressWarnings("unchecked")
+    final SortedMap<String, ObjRelationship> getRelationshipMapInternal() {
+        return (SortedMap<String, ObjRelationship>) super.getRelationshipMap();
+    }
+
     /**
      * Returns a Collection of all relationships that belong to this ObjEntity,
      * excluding inherited attributes.
      * 
      * @since 1.1
      */
+    @SuppressWarnings("unchecked")
     public Collection<ObjRelationship> getDeclaredRelationships() {
         return (Collection<ObjRelationship>) super.getRelationships();
     }
@@ -1117,7 +1120,7 @@ public class ObjEntity extends Entity implements ObjEntityListener, Configuratio
      * @since 4.0
      */
     public Set<String> getCallbackMethods() {
-        Set<String> res = new LinkedHashSet<String>();
+        Set<String> res = new LinkedHashSet<>();
         for (CallbackDescriptor descriptor : getCallbackMap().getCallbacks()) {
             res.addAll(descriptor.getCallbackMethods());
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
index c7ad56a..d4f7d54 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
@@ -102,7 +102,7 @@ class PathComponentIterator implements Iterator<PathComponent<Attribute, Relatio
             Iterator<PathComponent<Attribute, Relationship>> subpathIt = new PathComponentIterator(
                     currentEntity,
                     aliasedPath,
-                    Collections.EMPTY_MAP);
+                    Collections.<String, String>emptyMap());
 
             Collection<PathComponent<Attribute, Relationship>> parsedSubpath = new ArrayList<>(4);
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/query/AbstractMappedQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/AbstractMappedQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/AbstractMappedQuery.java
index dbc76a3..da10789 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/AbstractMappedQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/AbstractMappedQuery.java
@@ -43,8 +43,7 @@ public abstract class AbstractMappedQuery extends IndirectQuery {
         if (this.params == null) {
             this.params = new HashMap<>(parameters);
         } else {
-            Map bareMap = parameters;
-            this.params.putAll(bareMap);
+            this.params.putAll(parameters);
         }
 
         this.replacementQuery = null;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/query/EJBQLQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/EJBQLQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/EJBQLQuery.java
index a25a25f..6e5d708 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/EJBQLQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/EJBQLQuery.java
@@ -74,7 +74,7 @@ public class EJBQLQuery implements Query, XMLSerializable {
 
         // must init defaults even if properties are empty
         if (properties == null) {
-            properties = Collections.EMPTY_MAP;
+            properties = Collections.emptyMap();
         }
         metadata.initWithProperties(properties);
     }
@@ -192,12 +192,12 @@ public class EJBQLQuery implements Query, XMLSerializable {
     public Map<String, Object> getNamedParameters() {
         return namedParameters != null
                 ? Collections.unmodifiableMap(namedParameters)
-                : Collections.EMPTY_MAP;
+                : Collections.<String, Object>emptyMap();
     }
 
     public Map<Integer, Object> getPositionalParameters() {
         return positionalParameters != null ? Collections
-                .unmodifiableMap(positionalParameters) : Collections.EMPTY_MAP;
+                .unmodifiableMap(positionalParameters) : Collections.<Integer, Object>emptyMap();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/query/MappedSelect.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/MappedSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/MappedSelect.java
index 40bf4f5..aaf58b6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/MappedSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/MappedSelect.java
@@ -126,11 +126,13 @@ public class MappedSelect<T> extends AbstractMappedQuery implements Select<T> {
         return this;
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public MappedSelect<T> params(Map<String, ?> parameters) {
         return (MappedSelect<T>) super.params(parameters);
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public MappedSelect<T> param(String name, Object value) {
         return (MappedSelect<T>) super.param(name, value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
index cb82a2a..e6d2464 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
@@ -60,6 +60,7 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	 * Ordering with lower index is more significant than any other Ordering
 	 * with higher index. List being ordered is modified in place.
 	 */
+	@SuppressWarnings("unchecked")
 	public static void orderList(List<?> objects, List<? extends Ordering> orderings) {
 		Collections.sort(objects, ComparatorUtils.chainedComparator(orderings));
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQuery.java
index b081c6b..36f1f80 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQuery.java
@@ -166,7 +166,7 @@ public class ProcedureQuery extends AbstractQuery implements ParameterizedQuery,
      * @since 1.2
      */
     public List<ColumnDescriptor[]> getResultDescriptors() {
-        return resultDescriptors != null ? resultDescriptors : Collections.EMPTY_LIST;
+        return resultDescriptors != null ? resultDescriptors : Collections.<ColumnDescriptor[]>emptyList();
     }
 
     /**
@@ -214,7 +214,7 @@ public class ProcedureQuery extends AbstractQuery implements ParameterizedQuery,
 
         // must init defaults even if properties are empty
         if (properties == null) {
-            properties = Collections.EMPTY_MAP;
+            properties = Collections.emptyMap();
         }
         Object columnNamesCapitalization = properties
                 .get(COLUMN_NAME_CAPITALIZATION_PROPERTY);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQueryMetadata.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQueryMetadata.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQueryMetadata.java
index a937f65..7a2e35a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQueryMetadata.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ProcedureQueryMetadata.java
@@ -52,7 +52,7 @@ class ProcedureQueryMetadata extends BaseQueryMetadata {
 
             if (root != null) {
                 if (root instanceof String) {
-                    this.procedure = resolver.lookupProcedure((String) root);
+                    this.procedure = resolver.getProcedure((String) root);
                 }
                 else if (root instanceof Procedure) {
                     this.procedure = (Procedure) root;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
index bcaf65b..548ea90 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
@@ -275,7 +275,7 @@ public class PersistentDescriptor implements ClassDescriptor {
 			return mapArcProperties;
 		}
 
-		return Collections.EMPTY_LIST;
+		return Collections.emptyList();
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/reflect/generic/DataObjectBaseProperty.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/generic/DataObjectBaseProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/generic/DataObjectBaseProperty.java
index edbf66c..02d7ec2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/generic/DataObjectBaseProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/generic/DataObjectBaseProperty.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.reflect.generic;
 import java.io.Serializable;
 
 import org.apache.cayenne.DataObject;
-import org.apache.cayenne.reflect.Property;
+import org.apache.cayenne.reflect.PropertyDescriptor;
 import org.apache.cayenne.reflect.PropertyException;
 import org.apache.cayenne.reflect.PropertyVisitor;
 
@@ -30,7 +30,7 @@ import org.apache.cayenne.reflect.PropertyVisitor;
  * 
  * @since 3.0
  */
-abstract class DataObjectBaseProperty implements Property, Serializable {
+abstract class DataObjectBaseProperty implements PropertyDescriptor, Serializable {
 
     public abstract String getName();
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
index fd4a029..8bd3128 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
@@ -99,7 +99,7 @@ public class FilesystemResourceLocator implements ResourceLocator {
             File resourceFile = new File(root, name);
             if (resourceFile.exists()) {
                 try {
-                    resources.add(new URLResource(resourceFile.toURL()));
+                    resources.add(new URLResource(resourceFile.toURI().toURL()));
                 }
                 catch (MalformedURLException e) {
                     throw new CayenneRuntimeException(

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/rop/ROPServlet.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/rop/ROPServlet.java b/cayenne-server/src/main/java/org/apache/cayenne/rop/ROPServlet.java
index db1bb0a..e7a0001 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/rop/ROPServlet.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/rop/ROPServlet.java
@@ -59,8 +59,10 @@ public class ROPServlet extends HttpServlet {
         Collection<Module> modules = configAdapter.createModules(new ROPServerModule(
                 eventBridgeParameters));
 
-        ServerRuntime runtime = new ServerRuntime(configurationLocation, modules
-                .toArray(new Module[modules.size()]));
+        ServerRuntime runtime = ServerRuntime.builder()
+                .addConfig(configurationLocation)
+                .addModules(modules)
+                .build();
 
         this.remoteService = runtime.getInjector().getInstance(RemoteService.class);
         this.serializationService = runtime.getInjector().getInstance(ROPSerializationService.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/util/GenericQueryResult.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/GenericQueryResult.java b/cayenne-server/src/main/java/org/apache/cayenne/util/GenericQueryResult.java
index 296dc59..17d8643 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/GenericQueryResult.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/GenericQueryResult.java
@@ -59,6 +59,7 @@ public class GenericQueryResult<T> implements QueryResult<T> {
         return false;
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public List<T> firstList() {
         for (QueryResultItem item : resultItems) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java
index 0db049b..3e3e7e8 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/ObjectContextQueryAction.java
@@ -139,10 +139,9 @@ public abstract class ObjectContextQueryAction {
                         // TODO: Andrus 1/31/2006 - IncrementalFaultList is not properly
                         // transferred between contexts....
 
-                        List childObjects = new ArrayList(objects.size());
-                        Iterator it = objects.iterator();
-                        while (it.hasNext()) {
-                            Persistent object = (Persistent) it.next();
+                        List<Object> childObjects = new ArrayList<>(objects.size());
+                        for (Object object1 : objects) {
+                            Persistent object = (Persistent) object1;
                             childObjects.add(merger.merge(object));
                         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/62ef5115/cayenne-server/src/main/java/org/apache/cayenne/util/PersistentObjectMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/PersistentObjectMap.java b/cayenne-server/src/main/java/org/apache/cayenne/util/PersistentObjectMap.java
index 4d64f52..8949d76 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/PersistentObjectMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/PersistentObjectMap.java
@@ -156,15 +156,13 @@ public class PersistentObjectMap extends RelationshipFault implements Map, Value
     /**
      * Converts a collection into a map indexed by map key.
      */
-    protected Map indexCollection(Collection collection) {
+    protected Map indexCollection(Collection<Object> collection) {
         // map objects by property
-        Map map = new HashMap((int) (collection.size() * 1.33d) + 1);
+        Map<Object, Object> map = new HashMap<>((int) (collection.size() * 1.33d) + 1);
 
         if (collection.size() > 0) {
 
-            Iterator it = collection.iterator();
-            while (it.hasNext()) {
-                Object next = it.next();
+            for (Object next : collection) {
                 Object key = mapKeyAccessor.getValue(next);
                 Object previous = map.put(key, next);
                 if (previous != null && previous != next) {