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:29:00 UTC

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

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(""));
     }