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 2022/07/12 10:28:59 UTC

[cayenne] branch master updated (27116ccdd -> 39b334536)

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


    from 27116ccdd Upgrade notes for CAY-2737 and CAY-2747
     new 1bd88436c Cleanup compilation warnings, mainly deprecated JDK methods
     new 39b334536 CAY-2737 Cayenne 4.3: cleanup deprecated code   - some more deprecated code deleted

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/cayenne/tools/DbGeneratorTask.java  |   2 +-
 .../apache/cayenne/tools/DbImporterTaskTest.java   |  12 +-
 .../apache/cayenne/crypto/Runtime_AES128_IT.java   |   6 +-
 .../transformer/value/ByteConverterTest.java       |   4 +-
 .../transformer/value/IntegerConverterTest.java    |   6 +-
 .../transformer/value/LongConverterTest.java       |  10 +-
 .../transformer/value/ShortConverterTest.java      |   4 +-
 .../configuration/DriverDataSourceFactory.java     |   2 +-
 .../reverse/dbimport/DbImportConfiguration.java    |   2 +-
 .../cayenne/access/DataDomainQueryAction.java      |   8 +-
 .../org/apache/cayenne/access/DbGenerator.java     |   2 +-
 .../apache/cayenne/access/types/DurationType.java  |   2 +-
 .../cayenne/access/types/SubclassTypeFactory.java  |  63 ---------
 .../apache/cayenne/configuration/Constants.java    |  11 --
 .../server/PropertyDataSourceFactory.java          |   2 +-
 .../server/XMLPoolingDataSourceFactory.java        |   2 +-
 .../cayenne/datasource/DataSourceBuilder.java      |   2 +-
 .../java/org/apache/cayenne/dba/JdbcAdapter.java   |  21 ---
 .../java/org/apache/cayenne/dba/TypesMapping.java  |  11 --
 .../apache/cayenne/ejbql/EJBQLParserFactory.java   |   2 +-
 .../org/apache/cayenne/exp/parser/ASTDivide.java   |   3 +-
 .../org/apache/cayenne/graph/ChildDiffLoader.java  |   2 +-
 .../org/apache/cayenne/map/DbKeyGenerator.java     |   2 +-
 .../cayenne/reflect/FieldEmbeddableDescriptor.java |   2 +-
 .../cayenne/reflect/PersistentDescriptor.java      |   2 +-
 .../org/apache/cayenne/CayenneDataObjectIT.java    |   4 +-
 .../test/java/org/apache/cayenne/CayenneIT.java    |   2 +-
 .../access/DataContextDecoratedStackIT.java        |   2 +-
 .../access/DataContextEJBQLArrayResultIT.java      |   6 +-
 .../access/DataContextEJBQLConditionsIT.java       | 148 ++++++++++-----------
 .../DataContextEJBQLFlattenedRelationshipsIT.java  |  38 +++---
 .../access/DataContextEJBQLGroupByHavingIT.java    |  20 +--
 .../cayenne/access/DataContextEJBQLJoinsIT.java    |   6 +-
 .../DataContextEJBQLNumericalFunctionalIT.java     |   4 +-
 .../cayenne/access/DataContextEJBQLQueryIT.java    |   6 +-
 .../cayenne/access/DataContextEJBQLSubqueryIT.java |  66 +++++----
 .../access/DataContextEJBQLUpdateCompoundIT.java   |   4 +-
 .../cayenne/access/DataContextEJBQLUpdateIT.java   |  28 ++--
 .../cayenne/access/DataContextObjectIdQueryIT.java |   4 +-
 .../access/DataContextObjectTrackingIT.java        |   4 +-
 .../access/DataContextProcedureQueryIT.java        |  12 +-
 .../apache/cayenne/access/DataNodeQueriesIT.java   |   4 +-
 .../cayenne/access/MockOperationObserver.java      |   2 +-
 .../org/apache/cayenne/access/ObjectStoreIT.java   |   2 +-
 .../cayenne/access/ReturnTypesMappingIT.java       |   4 +-
 .../access/dbsync/SchemaUpdateStrategyBase.java    |  10 +-
 .../translator/ejbql/EJBQLSelectTranslatorIT.java  |   4 +-
 .../apache/cayenne/access/types/EnumTypeTest.java  |   4 +-
 .../datasource/BasePoolingDataSourceIT.java        |   2 +-
 .../org/apache/cayenne/dba/JdbcPkGeneratorIT.java  |   2 +-
 .../apache/cayenne/exp/ExpressionEqualsTest.java   |   4 +-
 .../org/apache/cayenne/map/DbKeyGeneratorTest.java |  10 +-
 .../org/apache/cayenne/map/DbRelationshipIT.java   |   2 +-
 .../apache/cayenne/query/AbstractQueryTest.java    |   2 +-
 .../apache/cayenne/query/EJBQLQueryCountIT.java    |   2 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java     |   2 +-
 .../apache/cayenne/query/EJBQLQueryNumericIT.java  |   4 +-
 .../apache/cayenne/reflect/BeanAccessorTest.java   |   4 +-
 .../apache/cayenne/reflect/FieldAccessorTest.java  |   2 +-
 .../apache/cayenne/reflect/PropertyUtilsTest.java  |   8 +-
 .../template/directive/BindDirectiveIT.java        |  14 +-
 .../template/directive/ResultDirectiveIT.java      |  10 +-
 .../org/apache/cayenne/util/ListResponseTest.java  |   4 +-
 .../velocity/VelocitySQLTemplateProcessorTest.java |   4 +-
 .../apache/cayenne/tools/DbImporterMojoTest.java   |   4 +-
 .../org/apache/cayenne/modeler/osx/OSXPanelUI.java |   2 +-
 .../cayenne/modeler/CayenneModelerFrame.java       |   2 +-
 .../apache/cayenne/modeler/action/CopyAction.java  |   4 +-
 .../apache/cayenne/modeler/action/CutAction.java   |   4 +-
 .../cayenne/modeler/action/DbEntitySyncAction.java |   4 +-
 .../cayenne/modeler/action/NewProjectAction.java   |   4 +-
 .../modeler/action/ObjEntitySyncAction.java        |   4 +-
 .../cayenne/modeler/action/OpenProjectAction.java  |   2 +-
 .../apache/cayenne/modeler/action/PasteAction.java |   4 +-
 .../apache/cayenne/modeler/action/RedoAction.java  |   3 +-
 .../cayenne/modeler/action/RemoveAction.java       |   2 +-
 .../apache/cayenne/modeler/action/SaveAction.java  |   2 +-
 .../cayenne/modeler/action/SaveAsAction.java       |   2 +-
 .../apache/cayenne/modeler/action/UndoAction.java  |   2 +-
 .../cayenne/modeler/action/ValidateAction.java     |   7 +-
 .../InferRelationshipsController.java              |   2 +-
 .../dialog/objentity/ObjRelationshipInfo.java      |   2 +-
 .../OverrideEmbeddableAttributeTableModel.java     |   3 +-
 .../modeler/dialog/pref/DataSourcePreferences.java |   2 +-
 .../dbentity/PKCustomSequenceGeneratorPanel.java   |   4 +-
 .../org/apache/cayenne/modeler/graph/GraphMap.java |   2 +-
 .../cayenne/modeler/pref/DBConnectionInfo.java     |   2 +-
 .../modeler/util/CellEditorForAttributeTable.java  |   4 +-
 .../modeler/util/NameGeneratorPreferences.java     |   5 +-
 .../components/textpane/JCayenneTextPane.java      |  11 +-
 .../wocompat/parser/PropertyListParserTest.java    |  20 +--
 91 files changed, 306 insertions(+), 448 deletions(-)
 delete mode 100644 cayenne-server/src/main/java/org/apache/cayenne/access/types/SubclassTypeFactory.java


[cayenne] 01/02: Cleanup compilation warnings, mainly deprecated JDK methods

Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 1bd88436c44077f1aa7f0a576b350d2f8f9530f0
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Tue Jul 12 13:28:19 2022 +0300

    Cleanup compilation warnings, mainly deprecated JDK methods
---
 .../org/apache/cayenne/tools/DbGeneratorTask.java  |   2 +-
 .../apache/cayenne/tools/DbImporterTaskTest.java   |  12 +-
 .../apache/cayenne/crypto/Runtime_AES128_IT.java   |   6 +-
 .../transformer/value/ByteConverterTest.java       |   4 +-
 .../transformer/value/IntegerConverterTest.java    |   6 +-
 .../transformer/value/LongConverterTest.java       |  10 +-
 .../transformer/value/ShortConverterTest.java      |   4 +-
 .../configuration/DriverDataSourceFactory.java     |   2 +-
 .../reverse/dbimport/DbImportConfiguration.java    |   2 +-
 .../cayenne/access/DataDomainQueryAction.java      |   8 +-
 .../org/apache/cayenne/access/DbGenerator.java     |   2 +-
 .../apache/cayenne/access/types/DurationType.java  |   2 +-
 .../apache/cayenne/configuration/Constants.java    |  11 --
 .../server/PropertyDataSourceFactory.java          |   2 +-
 .../server/XMLPoolingDataSourceFactory.java        |   2 +-
 .../cayenne/datasource/DataSourceBuilder.java      |   2 +-
 .../apache/cayenne/ejbql/EJBQLParserFactory.java   |   2 +-
 .../org/apache/cayenne/exp/parser/ASTDivide.java   |   3 +-
 .../org/apache/cayenne/graph/ChildDiffLoader.java  |   2 +-
 .../org/apache/cayenne/map/DbKeyGenerator.java     |   2 +-
 .../cayenne/reflect/FieldEmbeddableDescriptor.java |   2 +-
 .../cayenne/reflect/PersistentDescriptor.java      |   2 +-
 .../org/apache/cayenne/CayenneDataObjectIT.java    |   4 +-
 .../test/java/org/apache/cayenne/CayenneIT.java    |   2 +-
 .../access/DataContextDecoratedStackIT.java        |   2 +-
 .../access/DataContextEJBQLArrayResultIT.java      |   6 +-
 .../access/DataContextEJBQLConditionsIT.java       | 148 ++++++++++-----------
 .../DataContextEJBQLFlattenedRelationshipsIT.java  |  38 +++---
 .../access/DataContextEJBQLGroupByHavingIT.java    |  20 +--
 .../cayenne/access/DataContextEJBQLJoinsIT.java    |   6 +-
 .../DataContextEJBQLNumericalFunctionalIT.java     |   4 +-
 .../cayenne/access/DataContextEJBQLQueryIT.java    |   6 +-
 .../cayenne/access/DataContextEJBQLSubqueryIT.java |  66 +++++----
 .../access/DataContextEJBQLUpdateCompoundIT.java   |   4 +-
 .../cayenne/access/DataContextEJBQLUpdateIT.java   |  28 ++--
 .../cayenne/access/DataContextObjectIdQueryIT.java |   4 +-
 .../access/DataContextObjectTrackingIT.java        |   4 +-
 .../access/DataContextProcedureQueryIT.java        |  12 +-
 .../apache/cayenne/access/DataNodeQueriesIT.java   |   4 +-
 .../cayenne/access/MockOperationObserver.java      |   2 +-
 .../org/apache/cayenne/access/ObjectStoreIT.java   |   2 +-
 .../cayenne/access/ReturnTypesMappingIT.java       |   4 +-
 .../access/dbsync/SchemaUpdateStrategyBase.java    |  10 +-
 .../translator/ejbql/EJBQLSelectTranslatorIT.java  |   4 +-
 .../apache/cayenne/access/types/EnumTypeTest.java  |   4 +-
 .../datasource/BasePoolingDataSourceIT.java        |   2 +-
 .../org/apache/cayenne/dba/JdbcPkGeneratorIT.java  |   2 +-
 .../apache/cayenne/exp/ExpressionEqualsTest.java   |   4 +-
 .../org/apache/cayenne/map/DbKeyGeneratorTest.java |  10 +-
 .../org/apache/cayenne/map/DbRelationshipIT.java   |   2 +-
 .../apache/cayenne/query/AbstractQueryTest.java    |   2 +-
 .../apache/cayenne/query/EJBQLQueryCountIT.java    |   2 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java     |   2 +-
 .../apache/cayenne/query/EJBQLQueryNumericIT.java  |   4 +-
 .../apache/cayenne/reflect/BeanAccessorTest.java   |   4 +-
 .../apache/cayenne/reflect/FieldAccessorTest.java  |   2 +-
 .../apache/cayenne/reflect/PropertyUtilsTest.java  |   8 +-
 .../template/directive/BindDirectiveIT.java        |  14 +-
 .../template/directive/ResultDirectiveIT.java      |  10 +-
 .../org/apache/cayenne/util/ListResponseTest.java  |   4 +-
 .../velocity/VelocitySQLTemplateProcessorTest.java |   4 +-
 .../apache/cayenne/tools/DbImporterMojoTest.java   |   4 +-
 .../org/apache/cayenne/modeler/osx/OSXPanelUI.java |   2 +-
 .../cayenne/modeler/CayenneModelerFrame.java       |   2 +-
 .../apache/cayenne/modeler/action/CopyAction.java  |   4 +-
 .../apache/cayenne/modeler/action/CutAction.java   |   4 +-
 .../cayenne/modeler/action/DbEntitySyncAction.java |   4 +-
 .../cayenne/modeler/action/NewProjectAction.java   |   4 +-
 .../modeler/action/ObjEntitySyncAction.java        |   4 +-
 .../cayenne/modeler/action/OpenProjectAction.java  |   2 +-
 .../apache/cayenne/modeler/action/PasteAction.java |   4 +-
 .../apache/cayenne/modeler/action/RedoAction.java  |   3 +-
 .../cayenne/modeler/action/RemoveAction.java       |   2 +-
 .../apache/cayenne/modeler/action/SaveAction.java  |   2 +-
 .../cayenne/modeler/action/SaveAsAction.java       |   2 +-
 .../apache/cayenne/modeler/action/UndoAction.java  |   2 +-
 .../cayenne/modeler/action/ValidateAction.java     |   7 +-
 .../InferRelationshipsController.java              |   2 +-
 .../dialog/objentity/ObjRelationshipInfo.java      |   2 +-
 .../OverrideEmbeddableAttributeTableModel.java     |   3 +-
 .../modeler/dialog/pref/DataSourcePreferences.java |   2 +-
 .../dbentity/PKCustomSequenceGeneratorPanel.java   |   4 +-
 .../org/apache/cayenne/modeler/graph/GraphMap.java |   2 +-
 .../cayenne/modeler/pref/DBConnectionInfo.java     |   2 +-
 .../modeler/util/CellEditorForAttributeTable.java  |   4 +-
 .../modeler/util/NameGeneratorPreferences.java     |   5 +-
 .../components/textpane/JCayenneTextPane.java      |  11 +-
 .../wocompat/parser/PropertyListParserTest.java    |  20 +--
 88 files changed, 306 insertions(+), 353 deletions(-)

diff --git a/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbGeneratorTask.java b/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbGeneratorTask.java
index 9f983b0ba..f66d51836 100644
--- a/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbGeneratorTask.java
+++ b/cayenne-ant/src/main/java/org/apache/cayenne/tools/DbGeneratorTask.java
@@ -78,7 +78,7 @@ public class DbGeneratorTask extends CayenneTask {
 			DataMap dataMap = loadDataMap(injector);
 
 			// load driver taking custom CLASSPATH into account...
-			DriverDataSource dataSource = new DriverDataSource((Driver) Class.forName(driver).newInstance(), url,
+			DriverDataSource dataSource = new DriverDataSource((Driver) Class.forName(driver).getDeclaredConstructor().newInstance(), url,
 					userName, password);
 
 			DbAdapter adapter = getAdapter(injector, dataSource);
diff --git a/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java b/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java
index 4d52dea28..aa48f5641 100644
--- a/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java
+++ b/cayenne-ant/src/test/java/org/apache/cayenne/tools/DbImporterTaskTest.java
@@ -40,7 +40,6 @@ import java.net.URL;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.List;
 
@@ -154,9 +153,8 @@ public class DbImporterTaskTest {
         }
     }
 
-    private void cleanDb(DbImportConfiguration dbImportConfiguration) throws ClassNotFoundException,
-            IllegalAccessException, InstantiationException, SQLException {
-        Class.forName(dbImportConfiguration.getDriver()).newInstance();
+    private void cleanDb(DbImportConfiguration dbImportConfiguration) throws Exception {
+        Class.forName(dbImportConfiguration.getDriver()).getDeclaredConstructor().newInstance();
         // Get a connection
         Connection connection = DriverManager.getConnection(dbImportConfiguration.getUrl());
         Statement stmt = connection.createStatement();
@@ -204,14 +202,14 @@ public class DbImporterTaskTest {
         URL sqlUrl = ResourceUtil.getResource(getClass(), sqlFile + ".sql");
         assertNotNull(sqlUrl);
 
-        Class.forName(dbImportConfiguration.getDriver()).newInstance();
+        Class.forName(dbImportConfiguration.getDriver()).getDeclaredConstructor().newInstance();
 
-        try (Connection c = DriverManager.getConnection(dbImportConfiguration.getUrl());) {
+        try (Connection c = DriverManager.getConnection(dbImportConfiguration.getUrl())) {
 
             // TODO: move parsing SQL files to a common utility (DBHelper?) .
             // Also see UnitDbApater.executeDDL - this should use the same utility
 
-            try (Statement stmt = c.createStatement();) {
+            try (Statement stmt = c.createStatement()) {
                 for (String sql : SQLReader.statements(sqlUrl, ";")) {
 
                     // skip comments
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java
index 46be12849..ead0ca076 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_IT.java
@@ -75,7 +75,7 @@ public class Runtime_AES128_IT extends Runtime_AES128_Base {
 
         Object[] data = table1.select();
         assertEquals(59, data[3]);
-        assertEquals(new Integer(61), IntegerConverter.INSTANCE.fromBytes(CryptoUnitUtils.decrypt_AES_CBC((byte[]) data[4], runtime)));
+        assertEquals(Integer.valueOf(61), IntegerConverter.INSTANCE.fromBytes(CryptoUnitUtils.decrypt_AES_CBC((byte[]) data[4], runtime)));
     }
 
     @Test
@@ -111,7 +111,7 @@ public class Runtime_AES128_IT extends Runtime_AES128_Base {
     }
 
     @Test
-    public void test_SelectQuery() throws SQLException {
+    public void test_SelectQuery() {
 
         ObjectContext context = runtime.newContext();
 
@@ -142,7 +142,7 @@ public class Runtime_AES128_IT extends Runtime_AES128_Base {
 
 
     @Test
-    public void test_SelectNumeric() throws SQLException {
+    public void test_SelectNumeric() {
 
         ObjectContext context = runtime.newContext();
 
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ByteConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ByteConverterTest.java
index 7001ea5a7..df34bcfd6 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ByteConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ByteConverterTest.java
@@ -28,8 +28,8 @@ public class ByteConverterTest {
 
     @Test
     public void testFromBytes() {
-        assertEquals(new Byte((byte) 6), ByteConverter.INSTANCE.fromBytes(new byte[]{6}));
-        assertEquals(new Byte((byte) -7), ByteConverter.INSTANCE.fromBytes(new byte[]{-7}));
+        assertEquals(Byte.valueOf((byte) 6), ByteConverter.INSTANCE.fromBytes(new byte[]{6}));
+        assertEquals(Byte.valueOf((byte) -7), ByteConverter.INSTANCE.fromBytes(new byte[]{-7}));
     }
 
     @Test(expected = IllegalArgumentException.class)
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
index d21d33580..5f42f4a52 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/IntegerConverterTest.java
@@ -28,18 +28,18 @@ public class IntegerConverterTest {
 
     @Test
     public void testFromBytes_InByteRange() {
-        assertEquals(new Integer(6), new IntegerConverter().fromBytes(new byte[]{6}));
+        assertEquals(Integer.valueOf(6), new IntegerConverter().fromBytes(new byte[]{6}));
     }
 
     @Test
     public void testFromBytes_InShortRange() {
-        assertEquals(new Integer(1542), new IntegerConverter().fromBytes(new byte[]{6, 6}));
+        assertEquals(Integer.valueOf(1542), new IntegerConverter().fromBytes(new byte[]{6, 6}));
     }
 
     @Test
     public void testFromBytes_InIntRange() {
         // 16 + 256*7 + 256*256* 6
-        assertEquals(new Integer(395024), new IntegerConverter().fromBytes(new byte[]{0, 6, 7, 16}));
+        assertEquals(Integer.valueOf(395024), new IntegerConverter().fromBytes(new byte[]{0, 6, 7, 16}));
     }
 
     @Test(expected = IllegalArgumentException.class)
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
index 1c60fc0f1..ff250d646 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/LongConverterTest.java
@@ -30,20 +30,20 @@ public class LongConverterTest {
     @Test
     public void testFromBytes_InIntRange() {
         // 256*256* 6 + 256*7 + 16
-        assertEquals(new Long(395024), new LongConverter().fromBytes(new byte[]{0, 6, 7, 16}));
+        assertEquals(Long.valueOf(395024L), new LongConverter().fromBytes(new byte[]{0, 6, 7, 16}));
     }
 
     @Test
     public void testFromBytes_InLongRange() {
         // 6*256*256*256*256 + 7*256*256*256 + 16*256*256 + 17*256 + 99
-        assertEquals(new Long(25888297315l), new LongConverter().fromBytes(new byte[]{0, 0, 0, 6, 7, 16, 17, 99}));
+        assertEquals(Long.valueOf(25888297315L), new LongConverter().fromBytes(new byte[]{0, 0, 0, 6, 7, 16, 17, 99}));
     }
 
     @Test
     public void testToBytes() {
-        assertArrayEquals(new byte[]{127, -1, -1, -1, -1, -1, -1, -2}, new LongConverter().toBytes((long) (Long.MAX_VALUE - 1l)));
+        assertArrayEquals(new byte[]{127, -1, -1, -1, -1, -1, -1, -2}, new LongConverter().toBytes((long) (Long.MAX_VALUE - 1L)));
         assertArrayEquals(new byte[]{127, -1, -1, -2}, new LongConverter().toBytes((long) (Integer.MAX_VALUE - 1)));
-        assertArrayEquals(new byte[]{127, -2}, new LongConverter().toBytes(Short.MAX_VALUE - 1l));
-        assertArrayEquals(new byte[]{-7}, new LongConverter().toBytes(-7l));
+        assertArrayEquals(new byte[]{127, -2}, new LongConverter().toBytes(Short.MAX_VALUE - 1L));
+        assertArrayEquals(new byte[]{-7}, new LongConverter().toBytes(-7L));
     }
 }
diff --git a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ShortConverterTest.java b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ShortConverterTest.java
index 6edcc7833..6b456362b 100644
--- a/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ShortConverterTest.java
+++ b/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/ShortConverterTest.java
@@ -27,12 +27,12 @@ public class ShortConverterTest {
 
     @Test
     public void testFromBytes_InByteRange() {
-        assertEquals(new Short((short) 6), ShortConverter.INSTANCE.fromBytes(new byte[]{6}));
+        assertEquals(Short.valueOf((short) 6), ShortConverter.INSTANCE.fromBytes(new byte[]{6}));
     }
 
     @Test
     public void testFromBytes_InShortRange() {
-        assertEquals(new Short((short) 1287), ShortConverter.INSTANCE.fromBytes(new byte[]{5, 7}));
+        assertEquals(Short.valueOf((short) 1287), ShortConverter.INSTANCE.fromBytes(new byte[]{5, 7}));
     }
 
     @Test(expected = IllegalArgumentException.class)
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/DriverDataSourceFactory.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/DriverDataSourceFactory.java
index 40bc73848..23a2eb2d2 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/DriverDataSourceFactory.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/DriverDataSourceFactory.java
@@ -47,7 +47,7 @@ public class DriverDataSourceFactory implements DataSourceFactory {
 			throw new IllegalArgumentException("'nodeDescriptor' contains no datasource descriptor");
 		}
 
-		Driver driver = (Driver)objectFactory.getJavaClass(properties.getJdbcDriver()).newInstance();
+		Driver driver = (Driver)objectFactory.getJavaClass(properties.getJdbcDriver()).getDeclaredConstructor().newInstance();
 		return new DriverDataSource(driver, properties.getDataSourceUrl(), properties.getUserName(),
 				properties.getPassword());
 	}
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java
index 6f142a97e..cd7026bd5 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DbImportConfiguration.java
@@ -191,7 +191,7 @@ public class DbImportConfiguration {
         if (namingStrategy != null && !namingStrategy.equals(DefaultObjectNameGenerator.class.getName())) {
             try {
                 Class<?> generatorClass = Thread.currentThread().getContextClassLoader().loadClass(namingStrategy);
-                return (ObjectNameGenerator) generatorClass.newInstance();
+                return (ObjectNameGenerator) generatorClass.getDeclaredConstructor().newInstance();
             } catch (Exception e) {
                 throw new CayenneRuntimeException("Error creating name generator: " + namingStrategy, e);
             }
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
index f95c2df75..0d22e9346 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
@@ -724,8 +724,8 @@ class DataDomainQueryAction implements QueryRouter, OperationObserver {
             mainRows.forEach(dataRow -> {
                 EmbeddableObject eo;
                 try {
-                    eo = (EmbeddableObject)embeddableClass.newInstance();
-                } catch (InstantiationException | IllegalAccessException e) {
+                    eo = (EmbeddableObject)embeddableClass.getDeclaredConstructor().newInstance();
+                } catch (Exception e) {
                     throw new CayenneRuntimeException("Unable to materialize embeddable '%s'", e, embeddable.getClassName());
                 }
                 dataRow.forEach(eo::writePropertyDirectly);
@@ -803,7 +803,7 @@ class DataDomainQueryAction implements QueryRouter, OperationObserver {
                     try {
                         for(Object[] row : mainRows) {
                             DataRow dataRow = (DataRow)row[i];
-                            EmbeddableObject eo = (EmbeddableObject)embeddableClass.newInstance();
+                            EmbeddableObject eo = (EmbeddableObject)embeddableClass.getDeclaredConstructor().newInstance();
                             dataRow.forEach(eo::writePropertyDirectly);
                             row[i] = eo;
                         }
@@ -843,7 +843,7 @@ class DataDomainQueryAction implements QueryRouter, OperationObserver {
         private final Function<Object, ?> mapper;
         private final ObjectConversionStrategy<Object> parentStrategy;
 
-        @SuppressWarnings("unchecked")
+        @SuppressWarnings({"unchecked", "rawtypes"})
         MapperConversionStrategy(ObjectConversionStrategy<?> parentStrategy) {
             this.mapper = (Function)metadata.getResultMapper();
             this.parentStrategy = (ObjectConversionStrategy)parentStrategy;
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
index 80c98df94..5858b590b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
@@ -253,7 +253,7 @@ public class DbGenerator {
 			return;
 		}
 
-		Driver driver = (Driver) Class.forName(dsi.getJdbcDriver()).newInstance();
+		Driver driver = (Driver) Class.forName(dsi.getJdbcDriver()).getDeclaredConstructor().newInstance();
 		DataSource dataSource = new DriverDataSource(driver, dsi.getDataSourceUrl(), dsi.getUserName(),
 				dsi.getPassword());
 
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java
index 2f081c87d..c8a3c5744 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/types/DurationType.java
@@ -36,7 +36,7 @@ public class DurationType implements ExtendedType<Duration> {
 
     protected Object convertToJdbcObject(Duration val, int type) {
         if(type == Types.INTEGER) {
-            return new Long(val.toMillis()).intValue();
+            return Long.valueOf(val.toMillis()).intValue();
         } else if(type == Types.NUMERIC) {
             return val.toMillis();
         } else if(type == Types.DECIMAL) {
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java
index 14f1035d3..691d8ed4b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Constants.java
@@ -159,17 +159,6 @@ public interface Constants {
      */
     String SERVER_MAX_ID_QUALIFIER_SIZE_PROPERTY = "cayenne.server.max_id_qualifier_size";
 
-    /**
-     * Defines a maximum time in milliseconds that a connection request could
-     * wait in the connection queue. After this period expires, an exception
-     * will be thrown in the calling method. A value of zero will make the
-     * thread wait until a connection is available with no time out. Defaults to
-     * 20 seconds.
-     *
-     * @deprecated since 4.0 renamed to {@link #JDBC_MAX_QUEUE_WAIT_TIME}. Property name is preserved.
-     */
-    String SERVER_MAX_QUEUE_WAIT_TIME = JDBC_MAX_QUEUE_WAIT_TIME;
-
     /**
      * Defines if database uses case-insensitive collation
      */
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/PropertyDataSourceFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/PropertyDataSourceFactory.java
index a427a7c04..190fc0ba3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/PropertyDataSourceFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/PropertyDataSourceFactory.java
@@ -71,7 +71,7 @@ public class PropertyDataSourceFactory implements DataSourceFactory {
 				UnmanagedPoolingDataSource.MAX_QUEUE_WAIT_DEFAULT);
 		String validationQuery = properties.get(Constants.JDBC_VALIDATION_QUERY_PROPERTY);
 
-		Driver driver = (Driver)objectFactory.getJavaClass(driverClass).newInstance();
+		Driver driver = (Driver)objectFactory.getJavaClass(driverClass).getDeclaredConstructor().newInstance();
 		return DataSourceBuilder.url(url).driver(driver).userName(username).password(password)
 				.pool(minConnections, maxConnections).maxQueueWaitTime(maxQueueWaitTime)
 				.validationQuery(validationQuery).build();
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/XMLPoolingDataSourceFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/XMLPoolingDataSourceFactory.java
index 7e358dd42..c17511cc1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/XMLPoolingDataSourceFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/XMLPoolingDataSourceFactory.java
@@ -67,7 +67,7 @@ public class XMLPoolingDataSourceFactory implements DataSourceFactory {
 		long maxQueueWaitTime = properties.getLong(Constants.JDBC_MAX_QUEUE_WAIT_TIME,
 				UnmanagedPoolingDataSource.MAX_QUEUE_WAIT_DEFAULT);
 
-		Driver driver = (Driver)objectFactory.getJavaClass(descriptor.getJdbcDriver()).newInstance();
+		Driver driver = (Driver)objectFactory.getJavaClass(descriptor.getJdbcDriver()).getDeclaredConstructor().newInstance();
 
 		return DataSourceBuilder.url(descriptor.getDataSourceUrl()).driver(driver).userName(descriptor.getUserName())
 				.password(descriptor.getPassword())
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DataSourceBuilder.java b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DataSourceBuilder.java
index 87a0322e7..77c3731d4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DataSourceBuilder.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DataSourceBuilder.java
@@ -102,7 +102,7 @@ public class DataSourceBuilder {
 		}
 
 		try {
-			return (Driver) driverClass.newInstance();
+			return (Driver) driverClass.getDeclaredConstructor().newInstance();
 		} catch (Exception ex) {
 			throw new CayenneRuntimeException("Error instantiating driver '%s': %s"
 					, driverClassName, ex.getMessage());
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ejbql/EJBQLParserFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/ejbql/EJBQLParserFactory.java
index 9ff09803b..f6a26669b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ejbql/EJBQLParserFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ejbql/EJBQLParserFactory.java
@@ -44,7 +44,7 @@ public class EJBQLParserFactory {
 
     public static EJBQLParser getParser() throws EJBQLException {
         try {
-            return (EJBQLParser) getParserClass().newInstance();
+            return (EJBQLParser) getParserClass().getDeclaredConstructor().newInstance();
         }
         catch (Exception e) {
             throw new EJBQLException("Error creating EJBQL parser", e);
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDivide.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDivide.java
index 020bf5bd8..9985d1b6c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDivide.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDivide.java
@@ -20,6 +20,7 @@
 package org.apache.cayenne.exp.parser;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
@@ -60,7 +61,7 @@ public class ASTDivide extends EvaluatedMathNode {
 
 	@Override
 	protected BigDecimal op(BigDecimal result, BigDecimal arg) {
-		return result.divide(arg, BigDecimal.ROUND_HALF_EVEN);
+		return result.divide(arg, RoundingMode.HALF_EVEN);
 	}
 
 	/**
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
index e7d980651..6c6889932 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
@@ -97,7 +97,7 @@ public class ChildDiffLoader implements GraphChangeHandler {
 
 			Persistent dataObject;
 			try {
-				dataObject = (Persistent) entity.getJavaClass().newInstance();
+				dataObject = (Persistent) entity.getJavaClass().getDeclaredConstructor().newInstance();
 			} catch (Exception ex) {
 				throw new CayenneRuntimeException("Error instantiating object.", ex);
 			}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
index a68a18743..439001414 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
@@ -121,7 +121,7 @@ public class DbKeyGenerator implements CayenneMapEntry, XMLSerializable, Seriali
 
     public void setKeyCacheSize(Integer keyCacheSize) {
         this.keyCacheSize = keyCacheSize;
-        if (this.keyCacheSize != null && this.keyCacheSize.intValue() < 1) {
+        if (this.keyCacheSize != null && this.keyCacheSize < 1) {
             this.keyCacheSize = null;
         }
     }
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/FieldEmbeddableDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/FieldEmbeddableDescriptor.java
index 08e8e7fab..543952ed7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/FieldEmbeddableDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/FieldEmbeddableDescriptor.java
@@ -58,7 +58,7 @@ public class FieldEmbeddableDescriptor implements EmbeddableDescriptor {
     public Object createObject(Object owner, String embeddedProperty) {
         Object embeddable;
         try {
-            embeddable = embeddableClass.newInstance();
+            embeddable = embeddableClass.getDeclaredConstructor().newInstance();
         }
         catch (Throwable e) {
             throw new PropertyException("Error creating embeddable object of class '"
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 f7b9a32ca..63d47cac1 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
@@ -337,7 +337,7 @@ public class PersistentDescriptor implements ClassDescriptor {
 		}
 
 		try {
-			return objectClass.newInstance();
+			return objectClass.getDeclaredConstructor().newInstance();
 		} catch (Throwable e) {
 			throw new CayenneRuntimeException("Error creating object of class '" + objectClass.getName() + "'", e);
 		}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java
index 953df39c4..cfc1195f8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneDataObjectIT.java
@@ -91,11 +91,11 @@ public class CayenneDataObjectIT extends ServerCase {
 	public void testReadNestedPropertyNonDataObjectPath() {
 		CayenneDataObject o1 = new CayenneDataObject();
 		TstBean o2 = new TstBean();
-		o2.setInteger(new Integer(55));
+		o2.setInteger(55);
 		o1.writePropertyDirectly("o2", o2);
 
 		assertSame(o2, o1.readNestedProperty("o2"));
-		assertEquals(new Integer(55), o1.readNestedProperty("o2.integer"));
+		assertEquals(55, o1.readNestedProperty("o2.integer"));
 		assertEquals(TstBean.class, o1.readNestedProperty("o2.class"));
 		assertEquals(TstBean.class.getName(), o1.readNestedProperty("o2.class.name"));
 	}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
index 7d4d0e613..f4eb74be4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
@@ -246,7 +246,7 @@ public class CayenneIT extends ServerCase {
 
         Map<String, Integer> pk = Collections.singletonMap(
                 Artist.ARTIST_ID_PK_COLUMN,
-                new Integer(33002));
+                33002);
         Object object = Cayenne.objectForPK(context, Artist.class, pk);
 
         assertNotNull(object);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
index 0ba53e03f..fd4be87df 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDecoratedStackIT.java
@@ -71,7 +71,7 @@ public class DataContextDecoratedStackIT extends ServerCase {
                 "select #result('COUNT(ARTIST_ID)' 'int' 'x') from ARTIST");
         Map<?, ?> count = (Map<?, ?>) Cayenne.objectForQuery(context, query);
         assertNotNull(count);
-        assertEquals(new Integer(1), count.get("x"));
+        assertEquals(1, count.get("x"));
     }
 
     @Test
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
index f3fdc572c..a4ba6b178 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLArrayResultIT.java
@@ -81,7 +81,7 @@ public class DataContextEJBQLArrayResultIT extends ServerCase {
         assertEquals(1, objects.size());
 
         Object o1 = objects.get(0);
-        assertEquals(new Long(2), o1);
+        assertEquals(2L, o1);
     }
 
     @Test
@@ -99,7 +99,7 @@ public class DataContextEJBQLArrayResultIT extends ServerCase {
         Object[] array1 = (Object[]) o1;
         assertEquals(2, array1.length);
 
-        assertEquals(new Long(2), array1[0]);
+        assertEquals(2L, array1[0]);
         assertEquals(0, new BigDecimal(8000).compareTo((BigDecimal) array1[1]));
     }
 
@@ -120,7 +120,7 @@ public class DataContextEJBQLArrayResultIT extends ServerCase {
         Object[] array1 = (Object[]) o1;
         assertEquals(3, array1.length);
 
-        assertEquals(new Long(1), array1[0]);
+        assertEquals(1L, array1[0]);
         assertTrue("Expected Artist, got: " + array1[1], array1[1] instanceof Artist);
         assertEquals(0, new BigDecimal(3000).compareTo((BigDecimal) array1[2]));
     }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
index bb58150fb..ec100887e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsIT.java
@@ -143,15 +143,15 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         // List<?> objects = createDataContext().performQuery(query);
         // assertEquals(2, objects.size());
         //
-        // Set<Object> ids = new HashSet<Object>();
+        // Set<Object> ids = new HashSet<>();
         // Iterator<?> it = objects.iterator();
         // while (it.hasNext()) {
         // Object id = Cayenne.pkForObject((Persistent) it.next());
         // ids.add(id);
         // }
         //
-        // assertTrue(ids.contains(new Integer(33001)));
-        // assertTrue(ids.contains(new Integer(33002)));
+        // assertTrue(ids.contains(33001));
+        // assertTrue(ids.contains(33002));
     }
 
     @Test
@@ -164,14 +164,13 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33001)));
+        assertTrue(ids.contains(33001));
     }
 
     @Test
@@ -184,14 +183,13 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(4, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertFalse(ids.contains(new Integer(33001)));
+        assertFalse(ids.contains(33001));
     }
 
     @Test
@@ -204,16 +202,15 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(3, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33002)));
-        assertTrue(ids.contains(new Integer(33003)));
-        assertTrue(ids.contains(new Integer(33005)));
+        assertTrue(ids.contains(33002));
+        assertTrue(ids.contains(33003));
+        assertTrue(ids.contains(33005));
     }
 
     @Test
@@ -226,14 +223,13 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33005)));
+        assertTrue(ids.contains(33005));
     }
 
     @Test
@@ -248,14 +244,13 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33005)));
+        assertTrue(ids.contains(33005));
     }
 
     @Test
@@ -286,15 +281,14 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33006)));
-        assertTrue(ids.contains(new Integer(33007)));
+        assertTrue(ids.contains(33006));
+        assertTrue(ids.contains(33007));
     }
 
     @Test
@@ -307,14 +301,13 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33008)));
+        assertTrue(ids.contains(33008));
     }
 
     @Test
@@ -329,15 +322,14 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33012)));
-        assertTrue(ids.contains(new Integer(33014)));
+        assertTrue(ids.contains(33012));
+        assertTrue(ids.contains(33014));
     }
 
     @Test
@@ -350,14 +342,13 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Long(33003)));
+        assertTrue(ids.contains(33003L));
     }
 
     @Test
@@ -370,15 +361,14 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(33001l));
-        assertTrue(ids.contains(33002l));
+        assertTrue(ids.contains(33001L));
+        assertTrue(ids.contains(33002L));
     }
 
     @Test
@@ -391,15 +381,14 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(33001l));
-        assertTrue(ids.contains(33002l));
+        assertTrue(ids.contains(33001L));
+        assertTrue(ids.contains(33002L));
     }
 
     @Test
@@ -413,14 +402,13 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(33001l));
+        assertTrue(ids.contains(33001L));
     }
 
     @Test
@@ -458,15 +446,14 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(33002l));
-        assertTrue(ids.contains(33003l));
+        assertTrue(ids.contains(33002L));
+        assertTrue(ids.contains(33003L));
     }
 
     @Test
@@ -480,15 +467,14 @@ public class DataContextEJBQLConditionsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33009)));
-        assertTrue(ids.contains(new Integer(33010)));
+        assertTrue(ids.contains(33009));
+        assertTrue(ids.contains(33010));
     }
 
 }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
index e575c99ac..a4edbcb09 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFlattenedRelationshipsIT.java
@@ -95,7 +95,7 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
@@ -121,14 +121,14 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(1)));
+        assertTrue(ids.contains(1));
 
         ft = Cayenne.objectForPK(context, FlattenedTest1.class, 2);
         query = new EJBQLQuery(ejbql);
@@ -153,14 +153,14 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         assertFalse(objects.isEmpty());
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(1)));
+        assertTrue(ids.contains(1));
 
     }
 
@@ -181,14 +181,14 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         assertFalse(objects.isEmpty());
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(1)));
+        assertTrue(ids.contains(1));
 
     }
 
@@ -205,14 +205,14 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         assertFalse(objects.isEmpty());
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
             ids.add(id);
         }
-        assertTrue(ids.contains(new Integer(1)));
-        assertTrue(ids.contains(new Integer(2)));
+        assertTrue(ids.contains(1));
+        assertTrue(ids.contains(2));
 
     }
 
@@ -231,15 +231,15 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         assertFalse(objects.isEmpty());
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(2)));
-        assertTrue(ids.contains(new Integer(3)));
+        assertTrue(ids.contains(2));
+        assertTrue(ids.contains(3));
 
     }
 
@@ -256,14 +256,14 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(1)));
+        assertTrue(ids.contains(1));
 
     }
 
@@ -283,9 +283,9 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         /*
          * List<?> objects = context.performQuery(query); assertNotNull(objects);
          * assertFalse(objects.isEmpty()); assertEquals(1, objects.size()); Set<Object>
-         * ids = new HashSet<Object>(); Iterator<?> it = objects.iterator(); while
+         * ids = new HashSet<>(); Iterator<?> it = objects.iterator(); while
          * (it.hasNext()) { Object id = Cayenne.pkForObject((Persistent) it.next());
-         * ids.add(id); } assertTrue(ids.contains(new Integer(2)));
+         * ids.add(id); } assertTrue(ids.contains(2));
          */
 
     }
@@ -305,14 +305,14 @@ public class DataContextEJBQLFlattenedRelationshipsIT extends ServerCase {
         assertFalse(objects.isEmpty());
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
+        Set<Object> ids = new HashSet<>();
         Iterator<?> it = objects.iterator();
         while (it.hasNext()) {
             Object id = Cayenne.pkForObject((Persistent) it.next());
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(2)));
+        assertTrue(ids.contains(2));
 
     }
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
index 7131c52dc..c963baff5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLGroupByHavingIT.java
@@ -128,11 +128,11 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
 
         Object[] row0 = (Object[]) data.get(0);
         assertEquals(1d, ((BigDecimal) row0[0]).doubleValue(), 0.00001d);
-        assertEquals(new Long(3), row0[1]);
+        assertEquals(3L, row0[1]);
 
         Object[] row1 = (Object[]) data.get(1);
         assertEquals(2d, ((BigDecimal) row1[0]).doubleValue(), 0.00001d);
-        assertEquals(new Long(2l), row1[1]);
+        assertEquals(2L, row1[1]);
     }
 
     @Test
@@ -151,17 +151,17 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
         Object[] row0 = (Object[]) data.get(0);
         assertEquals(1d, ((BigDecimal) row0[0]).doubleValue(), 0.00001d);
         assertEquals("PX", row0[1]);
-        assertEquals(new Long(1), row0[2]);
+        assertEquals(1L, row0[2]);
 
         Object[] row1 = (Object[]) data.get(1);
         assertEquals(1d, ((BigDecimal) row1[0]).doubleValue(), 0.00001d);
         assertEquals("PZ", row1[1]);
-        assertEquals(new Long(2), row1[2]);
+        assertEquals(2L, row1[2]);
 
         Object[] row2 = (Object[]) data.get(2);
         assertEquals(2d, ((BigDecimal) row2[0]).doubleValue(), 0.00001d);
         assertEquals("PY", row2[1]);
-        assertEquals(new Long(2), row2[2]);
+        assertEquals(2L, row2[2]);
     }
 
     @Test
@@ -180,7 +180,7 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
         assertTrue(data.get(0) instanceof Object[]);
         Object[] row0 = (Object[]) data.get(0);
         assertEquals(3, row0.length);
-        assertEquals(new Long(1), row0[0]);
+        assertEquals(1L, row0[0]);
         assertEquals("AA1", row0[2]);
         assertTrue(row0[1] instanceof Artist);
     }
@@ -202,7 +202,7 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
         //
         // for(int i = 0; i < data.size(); i++) {
         // Object[] row = (Object[]) data.get(i);
-        // assertEquals(new Long(1), row[0]);
+        // assertEquals(1L, row[0]);
         // }
     }
 
@@ -221,7 +221,7 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
 
         Object[] row0 = (Object[]) data.get(0);
         assertEquals(2d, ((BigDecimal) row0[0]).doubleValue(), 0.00001d);
-        assertEquals(new Long(2), row0[1]);
+        assertEquals(2L, row0[1]);
     }
 
     @Test
@@ -239,7 +239,7 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
 
         Object[] row0 = (Object[]) data.get(0);
         assertEquals(1d, ((BigDecimal) row0[0]).doubleValue(), 0.00001d);
-        assertEquals(new Long(3l), row0[1]);
+        assertEquals(3L, row0[1]);
     }
 
     @Test
@@ -257,7 +257,7 @@ public class DataContextEJBQLGroupByHavingIT extends ServerCase {
 
         Object[] row0 = (Object[]) data.get(0);
         assertEquals(1d, ((BigDecimal) row0[0]).doubleValue(), 0.00001d);
-        assertEquals(new Long(3l), row0[1]);
+        assertEquals(3L, row0[1]);
     }
 
     @Test
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
index e82364236..720e0ff0e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLJoinsIT.java
@@ -140,15 +140,15 @@ public class DataContextEJBQLJoinsIT extends ServerCase {
 
 		List<?> artists = context.performQuery(new EJBQLQuery(ejbql));
 		assertEquals(2, artists.size());
-		Set<Object> ids = new HashSet<Object>(2);
+		Set<Object> ids = new HashSet<>(2);
 		Iterator<?> it = artists.iterator();
 		while (it.hasNext()) {
 			Artist a = (Artist) it.next();
 			ids.add(Cayenne.pkForObject(a));
 		}
 
-		assertTrue(ids.contains(33001l));
-		assertTrue(ids.contains(33005l));
+		assertTrue(ids.contains(33001L));
+		assertTrue(ids.contains(33005L));
 	}
 
 	@Test
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
index 76287b8df..9057aab1d 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
@@ -132,7 +132,7 @@ public class DataContextEJBQLNumericalFunctionalIT extends ServerCase {
                 + "WHERE p.booleanColumn = true");
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(1l), notUpdated);
+        assertEquals(1L, notUpdated);
 
         String ejbql = "UPDATE BooleanTestEntity AS p SET p.booleanColumn = true";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -145,6 +145,6 @@ public class DataContextEJBQLNumericalFunctionalIT extends ServerCase {
         assertEquals(3, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(3l), notUpdated);
+        assertEquals(3L, notUpdated);
     }
 }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
index 01de89ad4..df9097b82 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
@@ -134,8 +134,8 @@ public class DataContextEJBQLQueryIT extends ServerCase {
         assertEquals(1, data.size());
         assertTrue(data.get(0) instanceof Object[]);
         Object[] aggregates = (Object[]) data.get(0);
-        assertEquals(new Long(2), aggregates[0]);
-        assertEquals(new Long(2), aggregates[1]);
+        assertEquals(2L, aggregates[0]);
+        assertEquals(2L, aggregates[1]);
         assertEquals(5000d, ((BigDecimal) aggregates[2]).doubleValue(), 0.00001);
         assertEquals(8000d, ((BigDecimal) aggregates[3]).doubleValue(), 0.00001);
     }
@@ -155,7 +155,7 @@ public class DataContextEJBQLQueryIT extends ServerCase {
         assertEquals(1, data.size());
         assertTrue(data.get(0) instanceof Object[]);
         Object[] aggregates = (Object[]) data.get(0);
-        assertEquals(new Long(0), aggregates[0]);
+        assertEquals(0L, aggregates[0]);
         assertEquals(null, aggregates[1]);
         assertEquals(null, aggregates[2]);
     }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
index 10f092aed..e2a900595 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
@@ -100,14 +100,13 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33004)));
+        assertTrue(ids.contains(33004));
     }
 
     @Test
@@ -124,14 +123,13 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(1, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(33001l));
+        assertTrue(ids.contains(33001L));
 
         assertTrue("" + objects.get(0), objects.get(0) instanceof Artist);
     }
@@ -151,15 +149,14 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33001)));
-        assertTrue(ids.contains(new Integer(33003)));
+        assertTrue(ids.contains(33001));
+        assertTrue(ids.contains(33003));
     }
 
     @Test
@@ -180,15 +177,14 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(2, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33003)));
-        assertTrue(ids.contains(new Integer(33004)));
+        assertTrue(ids.contains(33003));
+        assertTrue(ids.contains(33004));
     }
 
     @Test
@@ -209,16 +205,15 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(3, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33002)));
-        assertTrue(ids.contains(new Integer(33003)));
-        assertTrue(ids.contains(new Integer(33004)));
+        assertTrue(ids.contains(33002));
+        assertTrue(ids.contains(33003));
+        assertTrue(ids.contains(33004));
     }
 
     @Test
@@ -239,15 +234,14 @@ public class DataContextEJBQLSubqueryIT extends ServerCase {
         List<?> objects = context.performQuery(query);
         assertEquals(3, objects.size());
 
-        Set<Object> ids = new HashSet<Object>();
-        Iterator<?> it = objects.iterator();
-        while (it.hasNext()) {
-            Object id = Cayenne.pkForObject((Persistent) it.next());
+        Set<Object> ids = new HashSet<>();
+        for (Object object : objects) {
+            Object id = Cayenne.pkForObject((Persistent) object);
             ids.add(id);
         }
 
-        assertTrue(ids.contains(new Integer(33002)));
-        assertTrue(ids.contains(new Integer(33003)));
-        assertTrue(ids.contains(new Integer(33004)));
+        assertTrue(ids.contains(33002));
+        assertTrue(ids.contains(33003));
+        assertTrue(ids.contains(33004));
     }
 }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
index 9a3b3c5c5..774a30c6f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateCompoundIT.java
@@ -85,7 +85,7 @@ public class DataContextEJBQLUpdateCompoundIT extends ServerCase {
         check.setParameter("param", object);
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(1l), notUpdated);
+        assertEquals(1L, notUpdated);
 
         String ejbql = "UPDATE CompoundFkTestEntity e SET e.toCompoundPk = :param";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -99,7 +99,7 @@ public class DataContextEJBQLUpdateCompoundIT extends ServerCase {
         assertEquals(2, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(0l), notUpdated);
+        assertEquals(0L, notUpdated);
     }
 
 }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
index c3bcef02d..eaa3b9b1e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLUpdateIT.java
@@ -83,7 +83,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
                 + "WHERE p.paintingTitle is NULL or p.paintingTitle <> 'XX'");
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(2l), notUpdated);
+        assertEquals(2L, notUpdated);
 
         String ejbql = "UPDATE Painting AS p SET p.paintingTitle = 'XX' WHERE p.paintingTitle = 'P1'";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -96,7 +96,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
         assertEquals(1, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(1l), notUpdated);
+        assertEquals(1L, notUpdated);
     }
 
     @Test
@@ -107,7 +107,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
                 + "WHERE p.paintingTitle is NULL or p.paintingTitle <> 'XX'");
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(2l), notUpdated);
+        assertEquals(2L, notUpdated);
 
         String ejbql = "UPDATE Painting AS p SET p.paintingTitle = 'XX'";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -120,7 +120,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
         assertEquals(2, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(0l), notUpdated);
+        assertEquals(0L, notUpdated);
     }
 
     @Test
@@ -131,7 +131,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
                 + "WHERE p.estimatedPrice is not null");
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(2l), notUpdated);
+        assertEquals(2L, notUpdated);
 
         String ejbql = "UPDATE Painting AS p SET p.estimatedPrice = NULL";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -144,7 +144,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
         assertEquals(2, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(0l), notUpdated);
+        assertEquals(0L, notUpdated);
     }
 
     // This fails until we implement arithmetic exps
@@ -157,7 +157,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
     // + "WHERE p.paintingTitle is NULL or p.estimatedPrice <= 5000");
     //
     // Object notUpdated = Cayenne.objectForQuery(context, check);
-    // assertEquals(new Long(2l), notUpdated);
+    // assertEquals(2L, notUpdated);
     //
     // String ejbql = "UPDATE Painting AS p SET p.estimatedPrice = p.estimatedPrice * 2";
     // EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -170,7 +170,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
     // assertEquals(2, count[0]);
     //
     // notUpdated = Cayenne.objectForQuery(context, check);
-    // assertEquals(new Long(0l), notUpdated);
+    // assertEquals(0L, notUpdated);
     // }
 
     @Test
@@ -181,7 +181,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
                 + "WHERE p.estimatedPrice is NULL or p.estimatedPrice <> 1");
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(2l), notUpdated);
+        assertEquals(2L, notUpdated);
 
         String ejbql = "UPDATE Painting AS p SET p.paintingTitle = 'XX', p.estimatedPrice = 1";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -194,7 +194,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
         assertEquals(2, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(0l), notUpdated);
+        assertEquals(0L, notUpdated);
     }
 
     @Test
@@ -205,7 +205,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
                 + "WHERE p.estimatedPrice is NULL or p.estimatedPrice <> 1.1");
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(2l), notUpdated);
+        assertEquals(2L, notUpdated);
 
         String ejbql = "UPDATE Painting AS p SET p.estimatedPrice = 1.1";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -218,7 +218,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
         assertEquals(2, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(0l), notUpdated);
+        assertEquals(0L, notUpdated);
     }
 
     @Test
@@ -232,7 +232,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
         check.setParameter("artist", object);
 
         Object notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(2l), notUpdated);
+        assertEquals(2L, notUpdated);
 
         String ejbql = "UPDATE Painting AS p SET p.toArtist = :artist";
         EJBQLQuery query = new EJBQLQuery(ejbql);
@@ -246,7 +246,7 @@ public class DataContextEJBQLUpdateIT extends ServerCase {
         assertEquals(2, count[0]);
 
         notUpdated = Cayenne.objectForQuery(context, check);
-        assertEquals(new Long(0l), notUpdated);
+        assertEquals(0L, notUpdated);
     }
 
 }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java
index 450200cae..4bb3faac8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectIdQueryIT.java
@@ -98,7 +98,7 @@ public class DataContextObjectIdQueryIT extends ServerCase {
 
         context.performGenericQuery(insert);
 
-        Artist a = Cayenne.objectForPK(context, Artist.class, 44l);
+        Artist a = Cayenne.objectForPK(context, Artist.class, 44L);
         assertNotNull(a.getDateOfBirth());
         assertEquals("X", a.getArtistName());
 
@@ -109,7 +109,7 @@ public class DataContextObjectIdQueryIT extends ServerCase {
         ObjectIdQuery query = new ObjectIdQuery(ObjectId.of(
                 "Artist",
                 Artist.ARTIST_ID_PK_COLUMN,
-                44l), false, ObjectIdQuery.CACHE_REFRESH);
+                44L), false, ObjectIdQuery.CACHE_REFRESH);
 
         Artist a1 = (Artist) Cayenne.objectForQuery(context, query);
         assertNull(a1.getDateOfBirth());
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
index 0c60e573f..62ffead97 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextObjectTrackingIT.java
@@ -99,7 +99,7 @@ public class DataContextObjectTrackingIT extends ServerCase {
     public void testUnregisterObject() {
 
         DataRow row = new DataRow(10);
-        row.put("ARTIST_ID", new Integer(1));
+        row.put("ARTIST_ID", 1);
         row.put("ARTIST_NAME", "ArtistXYZ");
         row.put("DATE_OF_BIRTH", new Date());
         DataObject obj = context.objectFromDataRow(Artist.class, row);
@@ -122,7 +122,7 @@ public class DataContextObjectTrackingIT extends ServerCase {
     public void testInvalidateObjects_Vararg() {
 
         DataRow row = new DataRow(10);
-        row.put("ARTIST_ID", new Integer(1));
+        row.put("ARTIST_ID", 1);
         row.put("ARTIST_NAME", "ArtistXYZ");
         row.put("DATE_OF_BIRTH", new Date());
         DataObject obj = context.objectFromDataRow(Artist.class, row);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
index 3ac72e92f..bdffec671 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
@@ -76,7 +76,7 @@ public class DataContextProcedureQueryIT extends ServerCase {
         createArtist(1000.0);
 
         ProcedureQuery q = new ProcedureQuery(UPDATE_STORED_PROCEDURE);
-        q.addParameter("paintingPrice", new Integer(3000));
+        q.addParameter("paintingPrice", 3000);
 
         // since stored procedure commits its stuff, we must use an explicit
         // non-committing transaction
@@ -205,7 +205,7 @@ public class DataContextProcedureQueryIT extends ServerCase {
         Procedure proc = context.getEntityResolver().getProcedure(SELECT_STORED_PROCEDURE);
         ProcedureQuery q = new ProcedureQuery(proc);
         q.addParameter("aName", "An Artist");
-        q.addParameter("paintingPrice", new Integer(3000));
+        q.addParameter("paintingPrice", 3000);
 
         List<?> artists = runProcedureSelect(q);
 
@@ -234,7 +234,7 @@ public class DataContextProcedureQueryIT extends ServerCase {
 
         ProcedureQuery q = new ProcedureQuery(SELECT_STORED_PROCEDURE);
         q.addParameter("aName", "An Artist");
-        q.addParameter("paintingPrice", new Integer(3000));
+        q.addParameter("paintingPrice", 3000);
         q.setFetchLimit(2);
         List<?> artists = runProcedureSelect(q);
 
@@ -254,7 +254,7 @@ public class DataContextProcedureQueryIT extends ServerCase {
 
         ProcedureQuery q = new ProcedureQuery(SELECT_STORED_PROCEDURE);
         q.addParameter("aName", "An Artist");
-        q.addParameter("paintingPrice", new Integer(3000));
+        q.addParameter("paintingPrice", 3000);
         q.setFetchOffset(2);
         List<?> artists = runProcedureSelect(q);
 
@@ -296,7 +296,7 @@ public class DataContextProcedureQueryIT extends ServerCase {
         }
 
         ProcedureQuery q = new ProcedureQuery(OUT_STORED_PROCEDURE);
-        q.addParameter("in_param", new Integer(20));
+        q.addParameter("in_param", 20);
 
         List<?> rows = runProcedureSelect(q);
 
@@ -354,7 +354,7 @@ public class DataContextProcedureQueryIT extends ServerCase {
         ProcedureQuery q = new ProcedureQuery(proc);
         q.setFetchingDataRows(true);
         q.addParameter("aName", "An Artist");
-        q.addParameter("paintingPrice", new Integer(3000));
+        q.addParameter("paintingPrice", 3000);
 
         // TESTING THIS ***
         // A.ARTIST_ID, A.DATE_OF_BIRTH, A.ARTIST_NAME
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
index dbbde7f1a..39945a0e8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataNodeQueriesIT.java
@@ -90,7 +90,7 @@ public class DataNodeQueriesIT extends ServerCase {
         SQLTemplate query = new SQLTemplate(Object.class, template);
 
         Map<String, Object> bindings = new HashMap<>();
-        bindings.put("id", 1l);
+        bindings.put("id", 1L);
         bindings.put("name", "a1");
         bindings.put("dob", new Date(System.currentTimeMillis()));
         query.setParameters(bindings);
@@ -103,7 +103,7 @@ public class DataNodeQueriesIT extends ServerCase {
         // check the data
 
         assertEquals(1, tArtist.getRowCount());
-        assertEquals(1l, tArtist.getLong("ARTIST_ID"));
+        assertEquals(1L, tArtist.getLong("ARTIST_ID"));
         assertEquals("a1", tArtist.getString("ARTIST_NAME").trim());
     }
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/MockOperationObserver.java b/cayenne-server/src/test/java/org/apache/cayenne/access/MockOperationObserver.java
index bc3027853..281c47a8e 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/MockOperationObserver.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/MockOperationObserver.java
@@ -51,7 +51,7 @@ public class MockOperationObserver implements OperationObserver {
     }
 
     public void nextCount(Query query, int resultCount) {
-        resultCounts.put(query, new Integer(resultCount));
+        resultCounts.put(query, resultCount);
     }
 
     public void nextRows(Query query, List<?> dataRows) {
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java
index ea21ee977..fbb469ec9 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreIT.java
@@ -74,7 +74,7 @@ public class ObjectStoreIT extends ServerCase {
     public void testObjectsUnregistered() throws Exception {
 
         DataRow row = new DataRow(10);
-        row.put("ARTIST_ID", new Integer(1));
+        row.put("ARTIST_ID", 1);
         row.put("ARTIST_NAME", "ArtistXYZ");
         row.put("DATE_OF_BIRTH", new Date());
         DataObject object = context.objectFromDataRow(Artist.class, row);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
index 1ea272429..535da6b74 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
@@ -65,7 +65,7 @@ public class ReturnTypesMappingIT extends ServerCase {
         String columnName = "BIGINT_COLUMN";
         ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
 
-        Long bigintValue = 5326457654783454355l;
+        Long bigintValue = 5326457654783454355L;
         test.setBigintColumn(bigintValue);
         context.commitChanges();
 
@@ -85,7 +85,7 @@ public class ReturnTypesMappingIT extends ServerCase {
     public void testBIGINT2() throws Exception {
        ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
 
-        Long bigintValue = 5326457654783454355l;
+        Long bigintValue = 5326457654783454355L;
         test.setBigintColumn(bigintValue);
         context.commitChanges();
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
index 0cb770ce3..5e802db98 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyBase.java
@@ -48,7 +48,7 @@ public class SchemaUpdateStrategyBase extends ServerCase {
 	protected DbAdapter adapter;
 
 	@Override
-	public void cleanUpDB() throws Exception {
+	public void cleanUpDB() {
 		DataMap map = node.getEntityResolver().getDataMap("sus-map");
 		for (String name : existingTables()) {
 
@@ -59,11 +59,11 @@ public class SchemaUpdateStrategyBase extends ServerCase {
 	}
 
 	protected void setStrategy(Class<? extends SchemaUpdateStrategy> type) throws Exception {
-		node.setSchemaUpdateStrategy(type.newInstance());
+		node.setSchemaUpdateStrategy(type.getDeclaredConstructor().newInstance());
 	}
 
 	protected Collection<String> existingTables() {
-		Collection<String> present = new ArrayList<String>();
+		Collection<String> present = new ArrayList<>();
 		for (Entry<String, Boolean> e : tablesMap().entrySet()) {
 			if (e.getValue()) {
 				present.add(e.getKey());
@@ -95,9 +95,9 @@ public class SchemaUpdateStrategyBase extends ServerCase {
 		}
 
 		String tableLabel = node.getAdapter().tableTypeForTable();
-		try (Connection con = node.getDataSource().getConnection();) {
+		try (Connection con = node.getDataSource().getConnection()) {
 
-			try (ResultSet rs = con.getMetaData().getTables(null, null, "%", new String[] { tableLabel });) {
+			try (ResultSet rs = con.getMetaData().getTables(null, null, "%", new String[] { tableLabel })) {
 				while (rs.next()) {
 					String dbName = rs.getString("TABLE_NAME");
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java
index dc2026bd6..5b0ce7ac1 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/translator/ejbql/EJBQLSelectTranslatorIT.java
@@ -258,8 +258,8 @@ public class EJBQLSelectTranslatorIT extends ServerCase {
     @Test
     public void testSelectPositionalParameters() {
         Map<Integer, Object> params = new HashMap<Integer, Object>();
-        params.put(new Integer(1), "X");
-        params.put(new Integer(2), "Y");
+        params.put(1, "X");
+        params.put(2, "Y");
         SQLTemplate query = translateSelect("select a from Artist a where a.artistName = ?1 or a.artistName = ?2",
                 params);
         String sql = query.getDefaultTemplate();
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/types/EnumTypeTest.java b/cayenne-server/src/test/java/org/apache/cayenne/access/types/EnumTypeTest.java
index 665239f83..aed481bfa 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/types/EnumTypeTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/types/EnumTypeTest.java
@@ -82,7 +82,7 @@ public class EnumTypeTest {
         
         MockResultSet rs = new MockResultSet("Test");
         rs.addColumn("Enum");
-        rs.addRow(new Object[] {new Integer(2)});
+        rs.addRow(new Object[] {2});
         rs.next();
         
         Object o = type.materializeObject(rs, 1, Types.NUMERIC);
@@ -108,7 +108,7 @@ public class EnumTypeTest {
         
         MockResultSet rs = new MockResultSet("Test");
         rs.addColumn("Enum");
-        rs.addRow(new Object[] {new Integer(2)});
+        rs.addRow(new Object[] {2});
         rs.next();
         
         Object o = type.materializeObject(rs, 1, Types.NUMERIC);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java
index 3285f2644..0100f77e7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/datasource/BasePoolingDataSourceIT.java
@@ -33,7 +33,7 @@ import org.junit.Before;
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
 public class BasePoolingDataSourceIT extends ServerCase {
 
-	protected static final long QUEUE_WAIT_TIME = 1000l;
+	protected static final long QUEUE_WAIT_TIME = 1000L;
 
 	@Inject
 	private DataSourceInfo dataSourceInfo;
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
index 692d0e667..f9733537f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/JdbcPkGeneratorIT.java
@@ -80,7 +80,7 @@ public class JdbcPkGeneratorIT extends ServerCase {
 
         JdbcPkGenerator pkGenerator = (JdbcPkGenerator) adapter.getPkGenerator();
 
-        pkGenerator.setPkStartValue(Integer.MAX_VALUE * 2l);
+        pkGenerator.setPkStartValue(Integer.MAX_VALUE * 2L);
         if (!JdbcPkGenerator.class.equals(adapter.getPkGenerator().getClass()) &&
         		!DerbyPkGenerator.class.equals(adapter.getPkGenerator().getClass())) { // AUTO_PK_SUPPORT doesn't allow dropping PK support for a single entity
             pkGenerator.dropAutoPk(node, Collections.singletonList(artistEntity));
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionEqualsTest.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionEqualsTest.java
index f324051b2..dc7c0bbe8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionEqualsTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionEqualsTest.java
@@ -32,7 +32,7 @@ public class ExpressionEqualsTest {
     public void testEquals3() throws Exception {
         Expression e1 = ExpressionFactory.matchExp("aa", "3");
         Expression e2 = ExpressionFactory.matchExp("aa", "3");
-        Expression e3 = ExpressionFactory.matchExp("aa", new Integer(3));
+        Expression e3 = ExpressionFactory.matchExp("aa", 3);
         assertEquals(e1, e2);
         assertFalse(e2.equals(e3));
     }
@@ -43,7 +43,7 @@ public class ExpressionEqualsTest {
                 ExpressionFactory.matchExp("aa", "4"));
         Expression e2 = ExpressionFactory.matchExp("aa", "3").andExp(
                 ExpressionFactory.matchExp("aa", "4"));
-        Expression e3 = ExpressionFactory.matchExp("aa", new Integer(3));
+        Expression e3 = ExpressionFactory.matchExp("aa", 3);
 
         assertEquals(e1, e2);
         assertFalse(e2.equals(e3));
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/DbKeyGeneratorTest.java b/cayenne-server/src/test/java/org/apache/cayenne/map/DbKeyGeneratorTest.java
index b7c7a7631..7eb0e4ba6 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/DbKeyGeneratorTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/DbKeyGeneratorTest.java
@@ -25,8 +25,6 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-/**
- */
 public class DbKeyGeneratorTest {
 
     @Test
@@ -37,12 +35,12 @@ public class DbKeyGeneratorTest {
     }
 
     @Test
-    public void testSize() throws Exception {
+    public void testSize() {
         DbKeyGenerator generator = new DbKeyGenerator();
-        generator.setKeyCacheSize(new Integer(3));
-        assertEquals(new Integer(3), generator.getKeyCacheSize());
+        generator.setKeyCacheSize(3);
+        assertEquals(Integer.valueOf(3), generator.getKeyCacheSize());
 
-        generator.setKeyCacheSize(new Integer(-1));
+        generator.setKeyCacheSize(-1);
         assertNull(generator.getKeyCacheSize());
     }
 }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
index 0fa3aeef0..01f5514e7 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/DbRelationshipIT.java
@@ -55,7 +55,7 @@ public class DbRelationshipIT extends ServerCase {
     @Test
     public void testSrcFkSnapshotWithTargetSnapshot() throws Exception {
         Map<String, Object> map = new HashMap<>();
-        Integer id = new Integer(44);
+        Integer id = 44;
         map.put("GALLERY_ID", id);
 
         DbRelationship dbRel = galleryEnt.getRelationship("paintingArray");
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/AbstractQueryTest.java b/cayenne-server/src/test/java/org/apache/cayenne/query/AbstractQueryTest.java
index c2d581e51..ea75f6b6b 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/AbstractQueryTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/AbstractQueryTest.java
@@ -61,7 +61,7 @@ public class AbstractQueryTest {
         AbstractQuery query = new MockAbstractQuery();
         assertNull(query.getRoot());
         try {
-            query.setRoot(new Integer(1));
+            query.setRoot(1);
             fail("Should not be able to set the root to an Integer");
         }
         catch (IllegalArgumentException e) {
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryCountIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryCountIT.java
index 4c1c91f5f..241b7ee63 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryCountIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryCountIT.java
@@ -94,7 +94,7 @@ public class EJBQLQueryCountIT extends ServerCase {
 
 		EJBQLQuery query = new EJBQLQuery("SELECT COUNT(DISTINCT p.toArtist) FROM Painting p");
 		// this should be a count of artists that have paintings
-		assertEquals(Collections.singletonList(2l), context.performQuery(query));
+		assertEquals(Collections.singletonList(2L), context.performQuery(query));
 	}
 	
 	@Test
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
index 90233252f..361ff072f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryIT.java
@@ -105,7 +105,7 @@ public class EJBQLQueryIT extends ServerCase {
         Map<Integer, Object> parameters1 = query.getPositionalParameters();
         assertEquals(1, parameters.size());
         assertEquals(1, parameters1.size());
-        assertEquals("X", parameters1.get(new Integer(1)));
+        assertEquals("X", parameters1.get(1));
         assertEquals("Y", parameters.get("name"));
     }
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
index 86a253596..5e1a60210 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/query/EJBQLQueryNumericIT.java
@@ -52,7 +52,7 @@ public class EJBQLQueryNumericIT extends ServerCase {
     }
 
     protected void createBigIntegerEntitiesDataSet() throws Exception {
-        tBigIntegerEntity.insert(44001, new Long(744073709551715l));
+        tBigIntegerEntity.insert(44001, 744073709551715L);
     }
 
     @Test
@@ -60,7 +60,7 @@ public class EJBQLQueryNumericIT extends ServerCase {
         createBigIntegerEntitiesDataSet();
         String ejbql = "SELECT bie FROM BigIntegerEntity bie WHERE bie.bigIntegerField > ?1";
         EJBQLQuery query = new EJBQLQuery(ejbql);
-        query.setParameter(1,744073709551615l);
+        query.setParameter(1,744073709551615L);
         List<BigIntegerEntity> result = context.performQuery(query);
         assertEquals(1, result.size());
     }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/BeanAccessorTest.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/BeanAccessorTest.java
index 2f302a62b..541466f55 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/BeanAccessorTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/BeanAccessorTest.java
@@ -73,9 +73,9 @@ public class BeanAccessorTest {
         TstJavaBean o1 = new TstJavaBean();
 
         assertEquals(0, o1.getIntField());
-        accessor.setValue(o1, new Integer(5));
+        accessor.setValue(o1, 5);
         assertEquals(5, o1.getIntField());
-        assertEquals(new Integer(5), accessor.getValue(o1));
+        assertEquals(5, accessor.getValue(o1));
 
         accessor.setValue(o1, null);
         assertEquals("Incorrectly set null default", 0, o1.getIntField());
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/FieldAccessorTest.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/FieldAccessorTest.java
index 4dbd1f61a..16ee407c5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/FieldAccessorTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/FieldAccessorTest.java
@@ -78,7 +78,7 @@ public class FieldAccessorTest {
         // primitive int .. write non-null
         new FieldAccessor(TstFields.class, "intField", Integer.TYPE).setValue(
                 object,
-                new Integer(6));
+                6);
         assertEquals(6, object.intField);
 
         // primitive int .. write null
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java b/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java
index 72cd289ae..75ee53f87 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/reflect/PropertyUtilsTest.java
@@ -218,7 +218,7 @@ public class PropertyUtilsTest {
 
 		// String to number
 		PropertyUtils.setProperty(o1, "integerField", "25");
-		assertEquals(new Integer(25), o1.getIntegerField());
+		assertEquals(Integer.valueOf(25), o1.getIntegerField());
 
 		// string to byte primitive
 		PropertyUtils.setProperty(o1, "byteField", "2");
@@ -281,7 +281,7 @@ public class PropertyUtilsTest {
 		Converter<Date> oldConverter = ConverterFactory.factory.getConverter(Date.class);
 
 		try {
-			ConverterFactory.addConverter(Date.class, new Converter<Date>() {
+			ConverterFactory.addConverter(Date.class, new Converter<>() {
 				@Override
 				protected Date convert(Object value, Class<Date> type) {
 					if (value == null)
@@ -306,7 +306,7 @@ public class PropertyUtilsTest {
 			// String to date
 			PropertyUtils.setProperty(o1, "dateField", "2013-08-01");
 
-			Calendar cal = new GregorianCalendar(2013, 7, 1, 0, 0, 0);
+			Calendar cal = new GregorianCalendar(2013, Calendar.AUGUST, 1, 0, 0, 0);
 			assertEquals(cal.getTime(), o1.getDateField());
 		} finally {
 
@@ -325,7 +325,7 @@ public class PropertyUtilsTest {
 
 		o1.setBooleanField(true);
 		PropertyUtils.setProperty(o1, "booleanField", null);
-		assertEquals(false, o1.isBooleanField());
+		assertFalse(o1.isBooleanField());
 
 		o1.setByteField((byte) 2);
 		PropertyUtils.setProperty(o1, "byteField", null);
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java
index 4915eaa33..9e618a035 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/template/directive/BindDirectiveIT.java
@@ -79,7 +79,7 @@ public class BindDirectiveIT extends ServerCase {
 	@Test
 	public void testBind_Timestamp() throws Exception {
 		Map<String, Object> parameters = new HashMap<>();
-		parameters.put("id", new Integer(1));
+		parameters.put("id", 1);
 		parameters.put("name", "ArtistWithDOB");
 		Calendar cal = Calendar.getInstance();
 		cal.clear();
@@ -97,7 +97,7 @@ public class BindDirectiveIT extends ServerCase {
 	@Test
 	public void testBind_SQLDate() throws Exception {
 		Map<String, Object> parameters = new HashMap<>();
-		parameters.put("id", new Integer(1));
+		parameters.put("id", 1);
 		parameters.put("name", "ArtistWithDOB");
 		Calendar cal = Calendar.getInstance();
 		cal.clear();
@@ -115,7 +115,7 @@ public class BindDirectiveIT extends ServerCase {
 	@Test
 	public void testBind_UtilDate() throws Exception {
 		Map<String, Object> parameters = new HashMap<>();
-		parameters.put("id", new Integer(1));
+		parameters.put("id", 1);
 		parameters.put("name", "ArtistWithDOB");
 		Calendar cal = Calendar.getInstance();
 		cal.clear();
@@ -160,7 +160,7 @@ public class BindDirectiveIT extends ServerCase {
 	@Test
 	public void testBind_NullParam() throws Exception {
 		Map<String, Object> parameters = new HashMap<>();
-		parameters.put("id", new Long(1));
+		parameters.put("id", 1L);
 		parameters.put("name", "ArtistWithoutDOB");
 		// passing null in parameter
 		parameters.put("dob", null);
@@ -176,7 +176,7 @@ public class BindDirectiveIT extends ServerCase {
 	@Test
 	public void testBind_NullParam_JDBCTypes() throws Exception {
 		Map<String, Object> parameters = new HashMap<>();
-		parameters.put("id", new Long(1));
+		parameters.put("id", 1L);
 		parameters.put("name", "ArtistWithoutDOB");
 		// passing null in parameter
 		parameters.put("dob", null);
@@ -192,7 +192,7 @@ public class BindDirectiveIT extends ServerCase {
 	@Test
 	public void testBind_SkippedParam() throws Exception {
 		Map<String, Object> parameters = new HashMap<>();
-		parameters.put("id", new Long(1));
+		parameters.put("id", 1L);
 		parameters.put("name", "ArtistWithoutDOB");
 		// skipping "dob"
 
@@ -207,7 +207,7 @@ public class BindDirectiveIT extends ServerCase {
 	@Test
 	public void testBind_SkippedParam_JDBCTypes() throws Exception {
 		Map<String, Object> parameters = new HashMap<>();
-		parameters.put("id", new Long(1));
+		parameters.put("id", 1L);
 		parameters.put("name", "ArtistWithoutDOB");
 		// skipping "dob"
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/template/directive/ResultDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/template/directive/ResultDirectiveIT.java
index 70b3a9ac9..5d69b4bf8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/template/directive/ResultDirectiveIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/template/directive/ResultDirectiveIT.java
@@ -54,7 +54,7 @@ public class ResultDirectiveIT extends ServerCase {
 
 	@Before
 	public void before() throws SQLException {
-		new TableHelper(dbHelper, "ARTIST").setColumns("ARTIST_ID", "ARTIST_NAME").insert(1l, "ArtistToTestResult");
+		new TableHelper(dbHelper, "ARTIST").setColumns("ARTIST_ID", "ARTIST_NAME").insert(1L, "ArtistToTestResult");
 	}
 
 	@Test
@@ -62,7 +62,7 @@ public class ResultDirectiveIT extends ServerCase {
 		String sql = "SELECT ARTIST_ID, ARTIST_NAME FROM ARTIST";
 		Map<String, Object> selectResult = selectForQuery(sql);
 
-		assertEquals(1l, selectResult.get("ARTIST_ID"));
+		assertEquals(1L, selectResult.get("ARTIST_ID"));
 		assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME"));
 	}
 
@@ -74,7 +74,7 @@ public class ResultDirectiveIT extends ServerCase {
 
 		// TODO: is that correct to use Long (coming from DbAttribute) type for
 		// ARTIST_ID instead of Integer (coming from #result(..))?
-		assertEquals(1l, selectResult.get("ARTIST_ID"));
+		assertEquals(1L, selectResult.get("ARTIST_ID"));
 		assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME").toString().trim());
 	}
 
@@ -83,7 +83,7 @@ public class ResultDirectiveIT extends ServerCase {
 		String sql = "SELECT ARTIST_ID, #result('ARTIST_NAME' 'java.lang.String') FROM ARTIST";
 		Map<String, Object> selectResult = selectForQuery(sql);
 
-		assertEquals(1l, selectResult.get("ARTIST_ID"));
+		assertEquals(1L, selectResult.get("ARTIST_ID"));
 		assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME").toString().trim());
 	}
 
@@ -92,7 +92,7 @@ public class ResultDirectiveIT extends ServerCase {
 		String sql = "SELECT #result('ARTIST_ID' 'java.lang.Integer'), ARTIST_NAME FROM ARTIST";
 		Map<String, Object> selectResult = selectForQuery(sql);
 
-		assertEquals(1l, selectResult.get("ARTIST_ID"));
+		assertEquals(1L, selectResult.get("ARTIST_ID"));
 		assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME"));
 	}
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/ListResponseTest.java b/cayenne-server/src/test/java/org/apache/cayenne/util/ListResponseTest.java
index 8823a5263..60cf91a57 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/ListResponseTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/ListResponseTest.java
@@ -57,13 +57,13 @@ public class ListResponseTest {
     @Test
     public void testSerialization() throws Exception {
 
-        ListResponse r = new ListResponse(new Integer(67));
+        ListResponse r = new ListResponse(67);
 
         ListResponse sr = (ListResponse) Util.cloneViaSerialization(r);
         assertNotNull(sr);
         assertEquals(1, sr.size());
 
-        assertTrue(sr.firstList().contains(new Integer(67)));
+        assertTrue(sr.firstList().contains(67));
     }
 
 }
diff --git a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java
index 96aa1982b..929066b76 100644
--- a/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java
+++ b/cayenne-velocity/src/test/java/org/apache/cayenne/velocity/VelocitySQLTemplateProcessorTest.java
@@ -162,7 +162,7 @@ public class VelocitySQLTemplateProcessorTest {
 
 		assertEquals("SELECT * FROM ME WHERE COLUMN1 = ?", compiled.getSql());
 		assertEquals(1, compiled.getBindings().length);
-		assertBindingValue(new Integer(5), compiled.getBindings()[0]);
+		assertBindingValue(5, compiled.getBindings()[0]);
 	}
 
 	@Test
@@ -184,7 +184,7 @@ public class VelocitySQLTemplateProcessorTest {
 
 		assertEquals("SELECT * FROM ME WHERE COLUMN1 <> ? AND COLUMN2 <> ?", compiled.getSql());
 		assertEquals(2, compiled.getBindings().length);
-		assertBindingValue(new Integer(3), compiled.getBindings()[0]);
+		assertBindingValue(3, compiled.getBindings()[0]);
 		assertBindingValue("aaa", compiled.getBindings()[1]);
 	}
 
diff --git a/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index 24657a98c..18d4168d1 100644
--- a/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ b/maven-plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -416,7 +416,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
         // TODO: refactor to common DB management code... E.g. bootique-jdbc-test?
         // TODO: with in-memory Derby, it is easier to just stop and delete the database.. again see bootique-jdbc-test
 
-        Class.forName(dataSource.getDriver()).newInstance();
+        Class.forName(dataSource.getDriver()).getDeclaredConstructor().newInstance();
 
         try (Connection connection = DriverManager.getConnection(dataSource.getUrl())) {
 
@@ -497,7 +497,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
 
         // TODO: refactor to common DB management code... E.g. bootique-jdbc-test?
 
-        Class.forName(dataSource.getDriver()).newInstance();
+        Class.forName(dataSource.getDriver()).getDeclaredConstructor().newInstance();
 
         try (Connection connection = DriverManager.getConnection(dataSource.getUrl())) {
             try (Statement stmt = connection.createStatement();) {
diff --git a/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPanelUI.java b/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPanelUI.java
index 461950442..4318bfe70 100644
--- a/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPanelUI.java
+++ b/modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPanelUI.java
@@ -44,7 +44,7 @@ public class OSXPanelUI extends BasicPanelUI {
             @SuppressWarnings("unchecked")
             Class<? extends  BasicPanelUI> delegateClass = (Class<? extends  BasicPanelUI>)
                     Class.forName("com.apple.laf.AquaPanelUI");
-            delegate = delegateClass.newInstance();
+            delegate = delegateClass.getDeclaredConstructor().newInstance();
         } catch (Exception ex) {
             delegate = new BasicPanelUI();
         }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
index 4aac6b703..ddef81d29 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
@@ -560,7 +560,7 @@ public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListen
 
             Toolkit.getDefaultToolkit().addAWTEventListener(event -> {
                 if (event instanceof KeyEvent) {
-                    if (((KeyEvent) event).getModifiers() == Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
+                    if (((KeyEvent) event).getModifiersEx() == Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx()
                             && ((KeyEvent) event).getKeyCode() == KeyEvent.VK_F) {
                         findField.requestFocus();
                     }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
index 9aae74ad9..656a8bcde 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
@@ -78,9 +78,7 @@ public class CopyAction extends CayenneAction {
 
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit
-                .getDefaultToolkit()
-                .getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     /**
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutAction.java
index 8dfa06688..e2baf52c4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutAction.java
@@ -58,9 +58,7 @@ public class CutAction extends CayenneAction {
 
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit
-                .getDefaultToolkit()
-                .getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     /**
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntitySyncAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntitySyncAction.java
index 7265df5bc..9b2001994 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntitySyncAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntitySyncAction.java
@@ -57,9 +57,7 @@ public class DbEntitySyncAction extends CayenneAction {
 
 	@Override
 	public KeyStroke getAcceleratorKey() {
-		return KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit
-				.getDefaultToolkit()
-				.getMenuShortcutKeyMask());
+		return KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
 	}
 
 	public String getIconName() {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/NewProjectAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/NewProjectAction.java
index 63da23943..bb2950de9 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/NewProjectAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/NewProjectAction.java
@@ -47,9 +47,7 @@ public class NewProjectAction extends ProjectAction {
     }
 
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit
-                .getDefaultToolkit()
-                .getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     public void performAction(ActionEvent e) {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntitySyncAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntitySyncAction.java
index b52789cf1..ea22e5cfd 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntitySyncAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntitySyncAction.java
@@ -55,9 +55,7 @@ public class ObjEntitySyncAction extends CayenneAction {
     }
 
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit
-                .getDefaultToolkit()
-                .getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_U, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     /**
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
index cf1230838..cbf59b6d2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
@@ -82,7 +82,7 @@ public class OpenProjectAction extends ProjectAction {
 
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     @Override
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java
index 114eb9a50..9f75c5a30 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java
@@ -90,9 +90,7 @@ public class PasteAction extends CayenneAction implements FlavorListener {
 
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
-                .getDefaultToolkit()
-                .getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     /**
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RedoAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RedoAction.java
index 34becba1c..69a3f1c13 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RedoAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RedoAction.java
@@ -52,7 +52,8 @@ public class RedoAction extends CayenneAction {
     
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | InputEvent.SHIFT_MASK);
+        return KeyStroke.getKeyStroke(KeyEvent.VK_Z,
+                Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx() | InputEvent.SHIFT_DOWN_MASK);
     }
     
     @Override
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
index b1c45905d..f063c7607 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
@@ -100,7 +100,7 @@ public class RemoveAction extends CayenneAction {
 
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_D, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     /**
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
index 771469453..71b68f109 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
@@ -45,7 +45,7 @@ public class SaveAction extends SaveAsAction {
 
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
 
     @Override
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java
index 89c6e1fc4..744c5a081 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java
@@ -66,7 +66,7 @@ public class SaveAsAction extends CayenneAction {
     @Override
     public KeyStroke getAcceleratorKey() {
         return KeyStroke.getKeyStroke(KeyEvent.VK_S,
-                Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | InputEvent.SHIFT_MASK);
+                Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx() | InputEvent.SHIFT_DOWN_MASK);
     }
 
     /**
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/UndoAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/UndoAction.java
index b8882fb87..1db559936 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/UndoAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/UndoAction.java
@@ -44,7 +44,7 @@ public class UndoAction extends CayenneAction {
     
     @Override
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
+        return KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx());
     }
     
     @Override
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java
index 4c93ec985..0abc92d6c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java
@@ -21,6 +21,7 @@ package org.apache.cayenne.modeler.action;
 
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
 
 import javax.swing.KeyStroke;
@@ -46,10 +47,8 @@ public class ValidateAction extends CayenneAction {
     }
 
     public KeyStroke getAcceleratorKey() {
-        return KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit
-                .getDefaultToolkit()
-                .getMenuShortcutKeyMask()
-                | ActionEvent.SHIFT_MASK);
+        return KeyStroke.getKeyStroke(KeyEvent.VK_V,
+                Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx() | InputEvent.SHIFT_DOWN_MASK);
     }
 
     /**
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
index 0e786f962..9ebd7d923 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
@@ -70,7 +70,7 @@ public class InferRelationshipsController extends InferRelationshipsControllerBa
         try {
             ClassLoadingService classLoader = application.getClassLoadingService();
 
-            return classLoader.loadClass(ObjectNameGenerator.class, strategyClass).newInstance();
+            return classLoader.loadClass(ObjectNameGenerator.class, strategyClass).getDeclaredConstructor().newInstance();
         }
         catch (Throwable th) {
             logObj.error("Error in " + getClass().getName(), th);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
index fb08f1b60..3b394896b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
@@ -350,7 +350,7 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
     public ObjectNameGenerator createNamingStrategy(String strategyClass) {
         try {
             ClassLoadingService classLoader = application.getClassLoadingService();
-            return classLoader.loadClass(ObjectNameGenerator.class, strategyClass).newInstance();
+            return classLoader.loadClass(ObjectNameGenerator.class, strategyClass).getDeclaredConstructor().newInstance();
         } catch (Throwable th) {
             JOptionPane.showMessageDialog(
                     view,
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/OverrideEmbeddableAttributeTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/OverrideEmbeddableAttributeTableModel.java
index 7eff14b8d..8b2d63ab8 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/OverrideEmbeddableAttributeTableModel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/OverrideEmbeddableAttributeTableModel.java
@@ -239,8 +239,7 @@ public class OverrideEmbeddableAttributeTableModel extends CayenneTableModel {
                         attributeComboForRow,
                         true);
 
-                cellEditor.setEditorAt(new Integer(i), new DefaultCellEditor(
-                        comboBoxForRow));
+                cellEditor.setEditorAt(i, new DefaultCellEditor(comboBoxForRow));
                 BoxCellRenderer renderer = new BoxCellRenderer();
                 renderer.setNotActiveColumn(attributeComboForRow.size() - 1);
                 comboBoxForRow.setRenderer(renderer);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
index 799ef6800..fe0ba7b8a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/DataSourcePreferences.java
@@ -260,7 +260,7 @@ public class DataSourcePreferences extends CayenneController {
 			}
 
 			Class<Driver> driverClass = classLoader.loadClass(Driver.class, currentDataSource.getJdbcDriver());
-			Driver driver = driverClass.newInstance();
+			Driver driver = driverClass.getDeclaredConstructor().newInstance();
 
 			// connect via Cayenne DriverDataSource - it addresses some driver
 			// issues...
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/PKCustomSequenceGeneratorPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/PKCustomSequenceGeneratorPanel.java
index 3be76d8bc..ebcae4dac 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/PKCustomSequenceGeneratorPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/PKCustomSequenceGeneratorPanel.java
@@ -126,8 +126,8 @@ public class PKCustomSequenceGeneratorPanel extends PKGeneratorPanel {
         }
 
         DbKeyGenerator generator = mediator.getCurrentDbEntity().getPrimaryKeyGenerator();
-        if (!Util.nullSafeEquals(generator.getKeyCacheSize(), new Integer(cacheSize))) {
-            generator.setKeyCacheSize(new Integer(cacheSize));
+        if (!Util.nullSafeEquals(generator.getKeyCacheSize(), cacheSize)) {
+            generator.setKeyCacheSize(cacheSize);
             mediator.fireDbEntityEvent(new EntityEvent(this, generator.getDbEntity()));
         }
     }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphMap.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphMap.java
index fe5b0d109..a6bab2adb 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphMap.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphMap.java
@@ -67,7 +67,7 @@ public class GraphMap extends HashMap<GraphType, GraphBuilder> {
     
     public GraphBuilder createGraphBuilder(GraphType type, boolean doLayout) {
         try {
-            GraphBuilder builder = type.getBuilderClass().newInstance();
+            GraphBuilder builder = type.getBuilderClass().getDeclaredConstructor().newInstance();
             builder.buildGraph(getProjectController(), domain, doLayout);
             put(type, builder);
             
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DBConnectionInfo.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DBConnectionInfo.java
index 3e07dc481..f8eef2ad6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DBConnectionInfo.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/DBConnectionInfo.java
@@ -223,7 +223,7 @@ public class DBConnectionInfo extends CayennePreference {
 		Driver driver;
 
 		try {
-			driver = classLoader.loadClass(Driver.class, getJdbcDriver()).newInstance();
+			driver = classLoader.loadClass(Driver.class, getJdbcDriver()).getDeclaredConstructor().newInstance();
 		} catch (Throwable th) {
 			th = Util.unwindException(th);
 			throw new SQLException("Driver load error: " + th.getLocalizedMessage());
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellEditorForAttributeTable.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellEditorForAttributeTable.java
index 5200ab986..b0a199186 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellEditorForAttributeTable.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellEditorForAttributeTable.java
@@ -48,7 +48,7 @@ public class CellEditorForAttributeTable implements TableCellEditor {
         }
 
         public void setEditorAt(int row, TableCellEditor editor) {
-            editors.put(new Integer(row), editor);
+            editors.put(row, editor);
         }
 
         public Component getTableCellEditorComponent(
@@ -104,7 +104,7 @@ public class CellEditorForAttributeTable implements TableCellEditor {
             else {
                 row = table.rowAtPoint(e.getPoint());
             }
-            editor = (TableCellEditor) editors.get(new Integer(row));
+            editor = (TableCellEditor) editors.get(row);
             if (editor == null) {
                 editor = defaultEditor;
             }
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java
index aceb001f0..08180af73 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java
@@ -91,11 +91,10 @@ public class NameGeneratorPreferences {
         getPreference().put(STRATEGIES_PREFERENCE, res.toString());
     }
 
-    public ObjectNameGenerator createNamingStrategy(Application application)
-            throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+    public ObjectNameGenerator createNamingStrategy(Application application) throws Exception {
 
         return application.getClassLoadingService()
-                .loadClass(ObjectNameGenerator.class, getLastUsedStrategies().get(0)).newInstance();
+                .loadClass(ObjectNameGenerator.class, getLastUsedStrategies().get(0)).getDeclaredConstructor().newInstance();
     }
 
     public static ObjectNameGenerator defaultNameGenerator() {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
index a38f7a4ab..74ade693f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/components/textpane/JCayenneTextPane.java
@@ -44,6 +44,7 @@ import java.awt.Image;
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.event.MouseEvent;
+import java.awt.geom.Rectangle2D;
 
 public class JCayenneTextPane extends JPanel {
 
@@ -83,11 +84,11 @@ public class JCayenneTextPane extends JPanel {
     }
 
     public int getStartPositionInDocument() {
-        return pane.viewToModel(scrollPane.getViewport().getViewPosition());
+        return pane.viewToModel2D(scrollPane.getViewport().getViewPosition());
     }
 
     public int getEndPositionInDocument() {
-        return pane.viewToModel(new Point(scrollPane.getViewport().getViewPosition().x + pane.getWidth(),
+        return pane.viewToModel2D(new Point(scrollPane.getViewport().getViewPosition().x + pane.getWidth(),
                 scrollPane.getViewport().getViewPosition().y + pane.getHeight()));
     }
 
@@ -106,7 +107,7 @@ public class JCayenneTextPane extends JPanel {
         int y = 0;
 
         try {
-            Rectangle caretCoords = pane.modelToView(pos);
+            Rectangle2D caretCoords = pane.modelToView2D(pos);
             y = (int) caretCoords.getY();
         } catch (BadLocationException ex) {
             logObj.warn("Error: ", ex);
@@ -297,10 +298,10 @@ public class JCayenneTextPane extends JPanel {
         int starting_y = -1;
 
         try {
-            if (pane.modelToView(start) == null) {
+            if (pane.modelToView2D(start) == null) {
                 starting_y = -1;
             } else {
-                starting_y = pane.modelToView(start).y
+                starting_y = (int)pane.modelToView2D(start).getY()
                         - scrollPane.getViewport().getViewPosition().y
                         + fontHeight
                         - fontDesc;
diff --git a/modeler/cayenne-wocompat/src/test/java/org/apache/cayenne/wocompat/parser/PropertyListParserTest.java b/modeler/cayenne-wocompat/src/test/java/org/apache/cayenne/wocompat/parser/PropertyListParserTest.java
index 7b17e9462..a75974c4e 100644
--- a/modeler/cayenne-wocompat/src/test/java/org/apache/cayenne/wocompat/parser/PropertyListParserTest.java
+++ b/modeler/cayenne-wocompat/src/test/java/org/apache/cayenne/wocompat/parser/PropertyListParserTest.java
@@ -41,7 +41,7 @@ public class PropertyListParserTest {
     public void testListPlist() throws Exception {
         List list = new ArrayList();
         list.add("str");
-        list.add(new Integer(5));
+        list.add(5);
 
         Object plist = parser("(str, 5)").object("");
         assertTrue(list.equals(plist));
@@ -51,7 +51,7 @@ public class PropertyListParserTest {
     public void testMapPlist() throws Exception {
         Map map = new HashMap();
         map.put("key1", "val");
-        map.put("key2", new Integer(5));
+        map.put("key2", 5);
 
         Object plist = parser("{key1 = val; key2 = 5}").object("");
         assertTrue(map.equals(plist));
@@ -61,7 +61,7 @@ public class PropertyListParserTest {
     public void testStringWithQuotes() throws Exception {
         List list = new ArrayList();
         list.add("s\"tr");
-        list.add(new Integer(5));
+        list.add(5);
 
         Object plist = parser("(\"s\\\"tr\", 5)").object("");
         assertTrue(list.equals(plist));
@@ -71,11 +71,11 @@ public class PropertyListParserTest {
     public void testNestedPlist() throws Exception {
         Map map = new HashMap();
         map.put("key1", "val");
-        map.put("key2", new Integer(5));
+        map.put("key2", 5);
 
         List list = new ArrayList();
         list.add("str");
-        list.add(new Integer(5));
+        list.add(5);
         map.put("key3", list);
 
         assertEquals(map, parser("{key1 = val; key2 = 5; key3 = (str, 5)}").object(""));
@@ -85,7 +85,7 @@ public class PropertyListParserTest {
     public void testStringWithSpaces() throws Exception {
         List list = new ArrayList();
         list.add("s tr");
-        list.add(new Integer(5));
+        list.add(5);
 
         Object plist = parser("(\"s tr\", 5)").object("");
         assertTrue(list.equals(plist));
@@ -95,7 +95,7 @@ public class PropertyListParserTest {
     public void testStringWithBraces() throws Exception {
         List list = new ArrayList();
         list.add("s{t)r");
-        list.add(new Integer(5));
+        list.add(5);
 
         assertEquals(list, parser("(\"s{t)r\", 5)").object(""));
     }
@@ -104,7 +104,7 @@ public class PropertyListParserTest {
     public void testStringWithSlashes() throws Exception {
         List list = new ArrayList();
         list.add("s/t\\r");
-        list.add(new Integer(5));
+        list.add(5);
 
         assertEquals(list, parser("(\"s/t\\\\r\", 5)").object(""));
     }
@@ -113,7 +113,7 @@ public class PropertyListParserTest {
     public void testMapWithLastSemicolon() throws Exception {
         Map map = new HashMap();
         map.put("key1", "val");
-        map.put("key2", new Integer(5));
+        map.put("key2", 5);
 
         // last semicolon is optional
         assertEquals(map, parser("{key1 = val; key2 = 5; }").object(""));
@@ -144,7 +144,7 @@ public class PropertyListParserTest {
 
     @Test
     public void testInsideKVComments() throws Exception {
-        Map map = Collections.singletonMap("str", new Integer(5));
+        Map map = Collections.singletonMap("str", 5);
         assertEquals(map, parser("{\n str = // comment\n 5; }").object(""));
     }
 


[cayenne] 02/02: CAY-2737 Cayenne 4.3: cleanup deprecated code - some more deprecated code deleted

Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 39b3345363857a30172b838041fb1c503e85112f
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Tue Jul 12 13:28:47 2022 +0300

    CAY-2737 Cayenne 4.3: cleanup deprecated code
      - some more deprecated code deleted
---
 .../cayenne/access/types/SubclassTypeFactory.java  | 63 ----------------------
 .../java/org/apache/cayenne/dba/JdbcAdapter.java   | 21 --------
 .../java/org/apache/cayenne/dba/TypesMapping.java  | 11 ----
 3 files changed, 95 deletions(-)

diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/SubclassTypeFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/SubclassTypeFactory.java
deleted file mode 100644
index 26e35a0a4..000000000
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/SubclassTypeFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*****************************************************************
- *   Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    https://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- ****************************************************************/
-package org.apache.cayenne.access.types;
-
-import org.apache.cayenne.util.Util;
-
-/**
- * A {@link ExtendedTypeFactory} that makes a {@link ExtendedType} usable for subclasses
- * of the className in the {@link ExtendedType}.
- * 
- * @since 3.0
- * @deprecated since 4.1 it is unused, as this factory is faulty assuming that
- *              we can freely interchange base class and it's subclasses.
- *
- */
-class SubclassTypeFactory implements ExtendedTypeFactory {
-
-    private ExtendedType type;
-    private Class<?> javaClass;
-
-    SubclassTypeFactory(ExtendedType type) {
-        this.type = type;
-
-        try {
-            javaClass = Util.getJavaClass(type.getClassName());
-
-            // some classes that should not be handled here..
-            if (javaClass.isArray()
-                    || javaClass.equals(Object.class)
-                    || javaClass.isPrimitive()) {
-                javaClass = null;
-            }
-        } catch (ClassNotFoundException e) {
-            // ignore.
-        }
-    }
-
-    public ExtendedType getType(Class<?> objectClass) {
-
-        if ((javaClass != null) && javaClass.isAssignableFrom(objectClass)) {
-            return type;
-        }
-
-        return null;
-    }
-
-}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
index 8c250d6a3..479b9da6c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
@@ -77,13 +77,6 @@ public class JdbcAdapter implements DbAdapter {
     protected ResourceLocator resourceLocator;
     protected boolean caseInsensitiveCollations;
 
-    /**
-     * @since 3.1
-     * @deprecated since 4.0 BatchQueryBuilderfactory is attached to the DataNode.
-     */
-    @Inject
-    protected BatchTranslatorFactory batchQueryBuilderFactory;
-
     @Inject
     protected JdbcEventLogger logger;
 
@@ -255,20 +248,6 @@ public class JdbcAdapter implements DbAdapter {
      * @since 4.0
      */
     public boolean typeSupportsLength(int type) {
-        return JdbcAdapter.supportsLength(type);
-    }
-
-    /**
-     * Returns true if supplied type can have a length attribute as a part of
-     * column definition
-     * <p/>
-     * TODO: this is a static method only to support the deprecated method
-     * {@link TypesMapping#supportsLength(int)} When the deprecated method is
-     * removed this body should be moved in to {@link #typeSupportsLength(int)}
-     *
-     * @deprecated
-     */
-    static boolean supportsLength(int type) {
         return type == Types.BINARY || type == Types.CHAR || type == Types.NCHAR || type == Types.NVARCHAR
                 || type == Types.LONGNVARCHAR || type == Types.DECIMAL || type == Types.DOUBLE || type == Types.FLOAT
                 || type == Types.NUMERIC || type == Types.REAL || type == Types.VARBINARY || type == Types.VARCHAR;
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/TypesMapping.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/TypesMapping.java
index f5ca84e68..695120981 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/TypesMapping.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/TypesMapping.java
@@ -272,17 +272,6 @@ public class TypesMapping {
 		JAVA_SQL_ENUM.put("boolean", BIT);
 	}
 
-	/**
-	 * @deprecated
-	 * 
-	 *             Returns true if supplied type can have a length attribute as
-	 *             a part of column definition.
-	 */
-	public static boolean supportsLength(int type) {
-		return JdbcAdapter.supportsLength(type);
-	}
-
-
 	// TODO: redo all isXyz as an internal enum over types, where each enum object knows whether it is this or that kind
 
 	/**