From b55fe4da77f7ab5e6aad4ac0a86209fc990f60db Mon Sep 17 00:00:00 2001 From: MishaDemianenko Date: Fri, 22 Sep 2017 01:18:42 +0200 Subject: [PATCH] Allow most modules to be compiled with java 9 Compilations is not possible so far for procedure-compiler modules because of dependencies that rely on tools.jar and all scala modules. All other modules are compilable. Introduce java 9 profile with disabled cypher, java.xml.bind and corba dependency Switch to asm 6 and update some mockito tests. See mockito issue #357 for details --- .../bolt/v1/packstream/utf8/UTF8Encoder.java | 2 +- .../integration/ConcurrentAccessIT.java | 10 +++++--- .../RejectTransportEncryptionIT.java | 6 +++-- .../integration/TransportSessionIT.java | 25 ++++++++++--------- community/cypher/pom.xml | 1 + .../main/java/org/neo4j/helpers/Format.java | 5 ++-- .../api/state/IndexTxStateUpdaterTest.java | 12 +++++++-- .../locking/ReentrantLockServiceTest.java | 2 +- .../impl/security/FileURLAccessRuleTest.java | 3 +++ community/pom.xml | 1 + .../org/neo4j/concurrent/DecayingFlags.java | 4 +-- .../procedure-compiler/processor/pom.xml | 1 - .../rest/discovery/DiscoveryServiceTest.java | 7 ++++-- .../org/neo4j/shell/TestTransactionApps.java | 5 ++-- enterprise/cypher/pom.xml | 1 + enterprise/pom.xml | 1 + .../bolt/BoltConnectionManagementIT.java | 3 ++- pom.xml | 19 +++++++++++--- 18 files changed, 71 insertions(+), 37 deletions(-) diff --git a/community/bolt/src/main/java/org/neo4j/bolt/v1/packstream/utf8/UTF8Encoder.java b/community/bolt/src/main/java/org/neo4j/bolt/v1/packstream/utf8/UTF8Encoder.java index 4ce27a290323d..ad902da0e9adc 100644 --- a/community/bolt/src/main/java/org/neo4j/bolt/v1/packstream/utf8/UTF8Encoder.java +++ b/community/bolt/src/main/java/org/neo4j/bolt/v1/packstream/utf8/UTF8Encoder.java @@ -57,7 +57,7 @@ static UTF8Encoder fastestAvailableEncoder() .getConstructor() .newInstance(); } - catch ( Exception e ) + catch ( Throwable e ) { return new VanillaUTF8Encoder(); } diff --git a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/ConcurrentAccessIT.java b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/ConcurrentAccessIT.java index 9bb61d0e16cff..26f55dc5a93d5 100644 --- a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/ConcurrentAccessIT.java +++ b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/ConcurrentAccessIT.java @@ -19,6 +19,7 @@ */ package org.neo4j.bolt.v1.transport.integration; +import org.hamcrest.CoreMatchers; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -27,6 +28,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -158,20 +160,20 @@ private void createAndRollback( TransportConnection client ) throws Exception { client.send( createAndRollback ); assertThat( client, eventuallyReceives( - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( emptyList() ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( emptyList() ) ), hasKey( "result_available_after" ) ) ), msgSuccess(), - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( emptyList() ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( emptyList() ) ), hasKey( "result_available_after" ) ) ), msgSuccess(), - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( emptyList() ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( emptyList() ) ), hasKey( "result_available_after" ) ) ), msgSuccess() ) ); // Verify no visible data client.send( matchAll ); assertThat( client, eventuallyReceives( - msgSuccess(allOf( hasEntry( is( "fields" ), equalTo( singletonList( "n" ) ) ), + msgSuccess(CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( singletonList( "n" ) ) ), hasKey( "result_available_after" ) ) ), msgSuccess() ) ); diff --git a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/RejectTransportEncryptionIT.java b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/RejectTransportEncryptionIT.java index b9b34fe187c47..ebf57ed8096b4 100644 --- a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/RejectTransportEncryptionIT.java +++ b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/RejectTransportEncryptionIT.java @@ -19,6 +19,7 @@ */ package org.neo4j.bolt.v1.transport.integration; +import org.apache.commons.lang3.SystemUtils; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -70,8 +71,9 @@ public static Collection transports() new IOException( "Failed to connect to the server within 10 seconds" ) }, new Object[]{ - (Factory) SecureSocketConnection::new, - new IOException( "Remote host closed connection during handshake" ) + (Factory) SecureSocketConnection::new, new IOException( + SystemUtils.IS_JAVA_9 ? "Remote host terminated the handshake" + : "Remote host closed connection during handshake" ) } ); } diff --git a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/TransportSessionIT.java b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/TransportSessionIT.java index d3c16c8f0382e..4191b12de47ff 100644 --- a/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/TransportSessionIT.java +++ b/community/bolt/src/test/java/org/neo4j/bolt/v1/transport/integration/TransportSessionIT.java @@ -19,6 +19,7 @@ */ package org.neo4j.bolt.v1.transport.integration; +import org.hamcrest.CoreMatchers; import org.hamcrest.Matchers; import org.junit.After; import org.junit.Before; @@ -29,6 +30,7 @@ import java.util.Collection; import java.util.HashMap; +import java.util.Map; import org.neo4j.bolt.v1.transport.socket.client.SecureSocketConnection; import org.neo4j.bolt.v1.transport.socket.client.SecureWebSocketConnection; @@ -143,13 +145,12 @@ public void shouldRunSimpleStatement() throws Throwable assertThat( client, eventuallyReceives( new byte[]{0, 0, 0, 1} ) ); assertThat( client, eventuallyReceives( msgSuccess(), - msgSuccess( - allOf( hasEntry( is( "fields" ), equalTo( asList( "a", "a_squared" ) ) ), - hasKey( "result_available_after" ) ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), + equalTo( asList( "a", "a_squared" ) ) ), hasKey( "result_available_after" ) ) ), msgRecord( eqRecord( equalTo( longValue( 1L ) ), equalTo( longValue( 1L ) ) ) ), msgRecord( eqRecord( equalTo( longValue( 2L ) ), equalTo( longValue( 4L ) ) ) ), msgRecord( eqRecord( equalTo( longValue( 3L ) ), equalTo( longValue( 9L ) ) ) ), - msgSuccess( allOf( hasEntry( is( "type" ), equalTo( "r" ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "type" ), equalTo( "r" ) ), hasKey( "result_consumed_after" ) ) ) ) ); } @@ -169,9 +170,9 @@ public void shouldRespondWithMetadataToDiscardAll() throws Throwable assertThat( client, eventuallyReceives( msgSuccess(), msgSuccess( - allOf( hasEntry( is( "fields" ), equalTo( asList( "a", "a_squared" ) ) ), + CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( asList( "a", "a_squared" ) ) ), hasKey( "result_available_after" ) ) ), - msgSuccess( allOf( hasEntry( is( "type" ), equalTo( "r" ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "type" ), equalTo( "r" ) ), hasKey( "result_consumed_after" ) ) ) ) ); } @@ -219,7 +220,7 @@ public void shouldRunProcedure() throws Throwable assertThat( client, eventuallyReceives( new byte[]{0, 0, 0, 1} ) ); assertThat( client, eventuallyReceives( msgSuccess(), - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( singletonList( "age" ) ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( singletonList( "age" ) ) ), hasKey( "result_available_after" ) ) ), msgRecord( eqRecord( equalTo( longValue( 2L ) ) ) ), msgSuccess() ) ); @@ -231,7 +232,7 @@ public void shouldRunProcedure() throws Throwable // Then assertThat( client, eventuallyReceives( - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( singletonList( "label" ) ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( singletonList( "label" ) ) ), hasKey( "result_available_after" ) ) ), msgRecord( eqRecord( Matchers.equalTo( stringValue( "Test" ) ) ) ), msgSuccess() @@ -253,7 +254,7 @@ public void shouldHandleDeletedNodes() throws Throwable assertThat( client, eventuallyReceives( new byte[]{0, 0, 0, 1} ) ); assertThat( client, eventuallyReceives( msgSuccess(), - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( singletonList( "n" ) ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( singletonList( "n" ) ) ), hasKey( "result_available_after" ) ) ) ) ); // @@ -284,7 +285,7 @@ public void shouldHandleDeletedRelationships() throws Throwable assertThat( client, eventuallyReceives( new byte[]{0, 0, 0, 1} ) ); assertThat( client, eventuallyReceives( msgSuccess(), - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( singletonList( "r" ) ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( singletonList( "r" ) ) ), hasKey( "result_available_after" ) ) ) ) ); // @@ -328,7 +329,7 @@ public void shouldNotLeakStatsToNextStatement() throws Throwable assertThat( client, eventuallyReceives( msgSuccess(), msgRecord( eqRecord( equalTo( longValue( 1L ) ) ) ), - msgSuccess( allOf( hasEntry( is( "type" ), equalTo( "r" ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "type" ), equalTo( "r" ) ), hasKey( "result_consumed_after" ) ) ) ) ); } @@ -374,7 +375,7 @@ public void shouldFailNicelyOnPoints() throws Throwable assertThat( client, eventuallyReceives( new byte[]{0, 0, 0, 1} ) ); assertThat( client, eventuallyReceives( msgSuccess(), - msgSuccess( allOf( hasEntry( is( "fields" ), equalTo( singletonList( "p" ) ) ), + msgSuccess( CoreMatchers.>allOf( hasEntry( is( "fields" ), equalTo( singletonList( "p" ) ) ), hasKey( "result_available_after" ) ) ), msgRecord( eqRecord( equalTo( NO_VALUE ) ) ), msgFailure( Status.Request.Invalid, "Point is not yet supported as a return type in Bolt" ) ) ); diff --git a/community/cypher/pom.xml b/community/cypher/pom.xml index e17dce9fa13a5..920bb69627f2a 100644 --- a/community/cypher/pom.xml +++ b/community/cypher/pom.xml @@ -32,6 +32,7 @@ include-cypher + !9 !skipCypher diff --git a/community/kernel/src/main/java/org/neo4j/helpers/Format.java b/community/kernel/src/main/java/org/neo4j/helpers/Format.java index f65e8a140686a..6f81b7c2db251 100644 --- a/community/kernel/src/main/java/org/neo4j/helpers/Format.java +++ b/community/kernel/src/main/java/org/neo4j/helpers/Format.java @@ -22,6 +22,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; import java.util.TimeZone; import java.util.concurrent.TimeUnit; @@ -110,11 +111,11 @@ public static String bytes( long bytes ) { if ( size < KB ) { - return String.format( "%.2f %s", Double.valueOf( size ), suffix ); + return String.format( Locale.ROOT, "%.2f %s", Double.valueOf( size ), suffix ); } size /= KB; } - return String.format( "%.2f TB", Double.valueOf( size ) ); + return String.format( Locale.ROOT, "%.2f TB", Double.valueOf( size ) ); } public static String duration( long durationMillis ) diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/IndexTxStateUpdaterTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/IndexTxStateUpdaterTest.java index 31d4d57f364a5..c9814a8369436 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/IndexTxStateUpdaterTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/state/IndexTxStateUpdaterTest.java @@ -91,10 +91,18 @@ public void setup() StoreReadLayer storeReadLayer = mock( StoreReadLayer.class ); when( storeReadLayer.indexesGetAll() ).thenAnswer( x -> indexes.iterator() ); when( storeReadLayer.indexesGetForLabel(anyInt() ) ) - .thenAnswer( x -> filter( hasLabel( x.getArgument( 0 ) ), indexes.iterator() ) ); + .thenAnswer( x -> + { + Integer argument = x.getArgument( 0 ); + return filter( hasLabel( argument ), indexes.iterator() ); + } ); when( storeReadLayer.indexesGetRelatedToProperty( anyInt() ) ) - .thenAnswer( x -> filter( hasProperty( x.getArgument( 0 ) ), indexes.iterator() ) ); + .thenAnswer( x -> + { + Integer argument = x.getArgument( 0 ); + return filter( hasProperty( argument ), indexes.iterator() ); + } ); PrimitiveIntSet labels = Primitive.intSet(); labels.add( labelId1 ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/ReentrantLockServiceTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/ReentrantLockServiceTest.java index 3330c16817a59..ce7c567e593f5 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/ReentrantLockServiceTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/locking/ReentrantLockServiceTest.java @@ -189,7 +189,7 @@ private static boolean awaitParked( ThreadRepository.ThreadInfo thread, long tim for ( long end = System.currentTimeMillis() + unit.toMillis( timeout ); System.currentTimeMillis() < end; ) { StackTraceElement frame = thread.getStackTrace()[0]; - if ( "park".equals( frame.getMethodName() ) && "sun.misc.Unsafe".equals( frame.getClassName() ) ) + if ( "park".equals( frame.getMethodName() ) && frame.getClassName().endsWith( "Unsafe" ) ) { if ( thread.getState().name().endsWith( "WAITING" ) ) { diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/security/FileURLAccessRuleTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/security/FileURLAccessRuleTest.java index f9fb57b5cdcb6..4ea138c210188 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/security/FileURLAccessRuleTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/security/FileURLAccessRuleTest.java @@ -23,6 +23,7 @@ import java.io.File; import java.net.URL; +import java.nio.file.Paths; import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.graphdb.security.URLAccessValidationError; @@ -32,6 +33,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +import static org.junit.Assume.assumeFalse; public class FileURLAccessRuleTest { @@ -83,6 +85,7 @@ public void shouldThrowWhenFileAccessIsDisabled() throws Exception @Test public void shouldThrowWhenRelativePathIsOutsideImportDirectory() throws Exception { + assumeFalse( Paths.get( "/" ).relativize( Paths.get( "/../baz.csv" ) ).toString().equals( "baz.csv" ) ); File importDir = new File( "/tmp/neo4jtest" ).getAbsoluteFile(); final Config config = Config.defaults( GraphDatabaseSettings.load_csv_file_url_root, importDir.toString() ); try diff --git a/community/pom.xml b/community/pom.xml index 5658f97f37c14..e4f18842b4451 100644 --- a/community/pom.xml +++ b/community/pom.xml @@ -85,6 +85,7 @@ the relevant Commercial Agreement. include-cypher + !9 !skipCypher diff --git a/community/primitive-collections/src/main/java/org/neo4j/concurrent/DecayingFlags.java b/community/primitive-collections/src/main/java/org/neo4j/concurrent/DecayingFlags.java index c7746a80502d0..724527a2a29cc 100644 --- a/community/primitive-collections/src/main/java/org/neo4j/concurrent/DecayingFlags.java +++ b/community/primitive-collections/src/main/java/org/neo4j/concurrent/DecayingFlags.java @@ -21,7 +21,7 @@ import java.util.Arrays; -import static javax.xml.bind.DatatypeConverter.printHexBinary; +import org.neo4j.string.HexString; /** * This is a concurrent data structure used to track @@ -174,7 +174,7 @@ public String asHex() (bit( i + 6 ) << 1) | (bit( i + 7 )) ) ; } - return printHexBinary( bits ); + return HexString.encodeHexString( bits ); } private int bit( int idx ) diff --git a/community/procedure-compiler/processor/pom.xml b/community/procedure-compiler/processor/pom.xml index 4b478835a47f5..4d37d7dba6b91 100644 --- a/community/procedure-compiler/processor/pom.xml +++ b/community/procedure-compiler/processor/pom.xml @@ -60,7 +60,6 @@ maven-jar-plugin - 3.0.1 diff --git a/community/server/src/test/java/org/neo4j/server/rest/discovery/DiscoveryServiceTest.java b/community/server/src/test/java/org/neo4j/server/rest/discovery/DiscoveryServiceTest.java index f56d40150b6dd..65e70d48dbc5c 100644 --- a/community/server/src/test/java/org/neo4j/server/rest/discovery/DiscoveryServiceTest.java +++ b/community/server/src/test/java/org/neo4j/server/rest/discovery/DiscoveryServiceTest.java @@ -29,6 +29,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; +import org.neo4j.graphdb.DependencyResolver; import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.helpers.AdvertisedSocketAddress; import org.neo4j.helpers.HostnamePort; @@ -55,7 +56,7 @@ public class DiscoveryServiceTest private AdvertisedSocketAddress boltAddress; private URI dataUri; private URI managementUri; - private final NeoServer neoServer = mock( NeoServer.class, Answers.RETURNS_DEEP_STUBS.get() ); + private final NeoServer neoServer = mock( NeoServer.class, Answers.RETURNS_DEEP_STUBS ); @Before public void setUp() throws URISyntaxException @@ -68,7 +69,9 @@ public void setUp() throws URISyntaxException // Setup NeoServer ConnectorPortRegister portRegister = mock( ConnectorPortRegister.class ); when( portRegister.getLocalAddress( "bolt" ) ).thenReturn( new HostnamePort( "localhost", 7687 ) ); - when( neoServer.getDatabase().getGraph().getDependencyResolver().resolveDependency( ConnectorPortRegister.class ) ).thenReturn( portRegister ); + DependencyResolver dependencyResolver = mock( DependencyResolver.class ); + when( neoServer.getDatabase().getGraph().getDependencyResolver() ).thenReturn( dependencyResolver ); + when( dependencyResolver.resolveDependency( ConnectorPortRegister.class ) ).thenReturn( portRegister ); } private Config mockConfig() throws URISyntaxException diff --git a/community/shell/src/test/java/org/neo4j/shell/TestTransactionApps.java b/community/shell/src/test/java/org/neo4j/shell/TestTransactionApps.java index c4a51e0f9a30f..336de17735b69 100644 --- a/community/shell/src/test/java/org/neo4j/shell/TestTransactionApps.java +++ b/community/shell/src/test/java/org/neo4j/shell/TestTransactionApps.java @@ -22,7 +22,6 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.omg.CORBA.SystemException; import java.io.Serializable; import java.rmi.RemoteException; @@ -122,12 +121,12 @@ public void rollback_outside_of_transaction_fails() throws Exception executeCommandExpectingException( "rollback", "Not in a transaction" ); } - private void assertWeAreNotInATransaction() throws SystemException + private void assertWeAreNotInATransaction() { assertTrue( "Expected to not be in a transaction", shellServer.getActiveTransactionCount() == 0 ); } - private void assertWeAreInATransaction() throws SystemException + private void assertWeAreInATransaction() { assertTrue( "Expected to be in a transaction", shellServer.getActiveTransactionCount() > 0 ); diff --git a/enterprise/cypher/pom.xml b/enterprise/cypher/pom.xml index 193c0ba671401..0d395137b151f 100644 --- a/enterprise/cypher/pom.xml +++ b/enterprise/cypher/pom.xml @@ -32,6 +32,7 @@ include-cypher + !9 !skipCypher diff --git a/enterprise/pom.xml b/enterprise/pom.xml index 4bb9bbed42a99..c4e92262da655 100644 --- a/enterprise/pom.xml +++ b/enterprise/pom.xml @@ -48,6 +48,7 @@ include-cypher + !9 !skipCypher diff --git a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/integration/bolt/BoltConnectionManagementIT.java b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/integration/bolt/BoltConnectionManagementIT.java index eb146e176c627..cc8c8d188a8c8 100644 --- a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/integration/bolt/BoltConnectionManagementIT.java +++ b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/integration/bolt/BoltConnectionManagementIT.java @@ -20,6 +20,7 @@ package org.neo4j.server.security.enterprise.auth.integration.bolt; import org.hamcrest.BaseMatcher; +import org.hamcrest.CoreMatchers; import org.hamcrest.Description; import org.junit.After; import org.junit.Before; @@ -365,7 +366,7 @@ private static Map collectConnectionResult( TransportConnection cl // Then assertThat( client, eventuallyReceives( - msgSuccess( allOf( hasEntry(is("fields"), equalTo(asList( "username", "connectionCount" ) )), + msgSuccess( CoreMatchers.>allOf( hasEntry(is("fields"), equalTo(asList( "username", "connectionCount" ) )), hasKey( "result_available_after" ) ) ) ) ); diff --git a/pom.xml b/pom.xml index a869c4e2f1414..66df02eed863b 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 2.11.11 2.11 - 5.2 + 6.0 @@ -478,7 +478,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.3 + 3.7.0 org.apache.maven.plugins @@ -518,12 +518,12 @@ org.apache.maven.plugins maven-shade-plugin - 2.4.3 + 3.1.0 org.apache.maven.plugins maven-assembly-plugin - 2.5.5 + 3.1.0 gnu @@ -705,6 +705,17 @@ ${env.GIT_COMMIT} + + + java9 + + false + 9 + + + true + +