diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java index 1b65d5fbb0..aa4015568a 100644 --- a/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingDecoderTest.java @@ -30,7 +30,7 @@ import java.io.IOException; import static org.junit.Assert.*; -public abstract class AbstractCompatibleMarshallingDecoderTest { +public abstract class AbstractCompatibleMarshallingDecoderTest extends AbstractMarshallingTest { @SuppressWarnings("RedundantStringConstructorCall") private final String testObject = new String("test"); diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingEncoderTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingEncoderTest.java index f6dfa4f219..1d22f7d046 100644 --- a/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingEncoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractCompatibleMarshallingEncoderTest.java @@ -28,7 +28,7 @@ import java.io.IOException; import static org.junit.Assert.*; -public abstract class AbstractCompatibleMarshallingEncoderTest { +public abstract class AbstractCompatibleMarshallingEncoderTest extends AbstractMarshallingTest { @Test public void testMarshalling() throws IOException, ClassNotFoundException { diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractMarshallingTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractMarshallingTest.java new file mode 100644 index 0000000000..3344181ae7 --- /dev/null +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/AbstractMarshallingTest.java @@ -0,0 +1,42 @@ +/* + * Copyright 2017 The Netty Project + * + * The Netty Project licenses this file to you under the Apache License, + * version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ +package io.netty.handler.codec.marshalling; + +import io.netty.util.internal.PlatformDependent; +import org.jboss.marshalling.Marshalling; +import org.junit.Assume; +import org.junit.BeforeClass; + +public abstract class AbstractMarshallingTest { + + static final String SERIAL_FACTORY = "serial"; + static final String RIVER_FACTORY = "river"; + + @BeforeClass + public static void checkSupported() throws Throwable { + Throwable error = null; + try { + Marshalling.getProvidedMarshallerFactory(SERIAL_FACTORY); + } catch (Throwable cause) { + // This may fail on Java 9+ depending on which command-line arguments are used when building. + if (PlatformDependent.javaVersion() < 9) { + throw cause; + } + error = cause; + } + Assume.assumeNoException(error); + } +} diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingDecoderTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingDecoderTest.java index 287962755d..556df8c65b 100644 --- a/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingDecoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingDecoderTest.java @@ -23,7 +23,7 @@ public class RiverCompatibleMarshallingDecoderTest extends AbstractCompatibleMar @Override protected MarshallerFactory createMarshallerFactory() { - return Marshalling.getProvidedMarshallerFactory("river"); + return Marshalling.getProvidedMarshallerFactory(RIVER_FACTORY); } @Override diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingEncoderTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingEncoderTest.java index 5927695304..1c63137d2a 100644 --- a/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingEncoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/RiverCompatibleMarshallingEncoderTest.java @@ -23,7 +23,7 @@ public class RiverCompatibleMarshallingEncoderTest extends AbstractCompatibleMar @Override protected MarshallerFactory createMarshallerFactory() { - return Marshalling.getProvidedMarshallerFactory("river"); + return Marshalling.getProvidedMarshallerFactory(RIVER_FACTORY); } @Override diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingDecoderTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingDecoderTest.java index b9aed6f587..c706a68aaf 100644 --- a/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingDecoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingDecoderTest.java @@ -23,7 +23,7 @@ public class SerialCompatibleMarshallingDecoderTest extends AbstractCompatibleMa @Override protected MarshallerFactory createMarshallerFactory() { - return Marshalling.getProvidedMarshallerFactory("serial"); + return Marshalling.getProvidedMarshallerFactory(SERIAL_FACTORY); } @Override diff --git a/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingEncoderTest.java b/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingEncoderTest.java index 2b3d9f95ce..fe04fb41fb 100644 --- a/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingEncoderTest.java +++ b/codec/src/test/java/io/netty/handler/codec/marshalling/SerialCompatibleMarshallingEncoderTest.java @@ -23,7 +23,7 @@ public class SerialCompatibleMarshallingEncoderTest extends AbstractCompatibleMa @Override protected MarshallerFactory createMarshallerFactory() { - return Marshalling.getProvidedMarshallerFactory("serial"); + return Marshalling.getProvidedMarshallerFactory(SERIAL_FACTORY); } @Override