diff --git a/clustering/marshalling/api/pom.xml b/clustering/marshalling/api/pom.xml
index a95769200ecb..3eef84a320f4 100644
--- a/clustering/marshalling/api/pom.xml
+++ b/clustering/marshalling/api/pom.xml
@@ -37,4 +37,20 @@
WildFly: Clustering marshalling API
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+
+
+
+
+
diff --git a/clustering/marshalling/api/src/test/java/org/wildfly/clustering/marshalling/EnumExternalizerTester.java b/clustering/marshalling/api/src/test/java/org/wildfly/clustering/marshalling/EnumExternalizerTester.java
new file mode 100644
index 000000000000..9563fa8c652b
--- /dev/null
+++ b/clustering/marshalling/api/src/test/java/org/wildfly/clustering/marshalling/EnumExternalizerTester.java
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2017, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.wildfly.clustering.marshalling;
+
+import java.io.IOException;
+import java.util.EnumSet;
+
+import org.junit.Assert;
+
+/**
+ * Tester for an {@link Externalizer} of an enum.
+ * @author Paul Ferraro
+ */
+public class EnumExternalizerTester> extends ExternalizerTester {
+
+ private final Class targetClass;
+
+ public EnumExternalizerTester(Externalizer externalizer) {
+ super(externalizer, Assert::assertSame);
+ this.targetClass = externalizer.getTargetClass();
+ }
+
+ public void test() throws ClassNotFoundException, IOException {
+ for (E value : EnumSet.allOf(this.targetClass)) {
+ this.test(value);
+ }
+ }
+}
diff --git a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/ExternalizerTestUtil.java b/clustering/marshalling/api/src/test/java/org/wildfly/clustering/marshalling/ExternalizerTester.java
similarity index 68%
rename from clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/ExternalizerTestUtil.java
rename to clustering/marshalling/api/src/test/java/org/wildfly/clustering/marshalling/ExternalizerTester.java
index cfb24060511c..7b659f08324e 100644
--- a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/ExternalizerTestUtil.java
+++ b/clustering/marshalling/api/src/test/java/org/wildfly/clustering/marshalling/ExternalizerTester.java
@@ -20,7 +20,7 @@
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
-package org.wildfly.clustering.marshalling.spi;
+package org.wildfly.clustering.marshalling;
import static org.junit.Assert.*;
@@ -29,41 +29,42 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import java.util.EnumSet;
import java.util.function.BiConsumer;
import org.junit.Assert;
-import org.wildfly.clustering.marshalling.Externalizer;
/**
+ * Tester for an {@link Externalizer}.
* @author Paul Ferraro
*/
-public class ExternalizerTestUtil {
+public class ExternalizerTester {
- public static > void test(Externalizer externalizer) throws IOException, ClassNotFoundException {
- for (E value : EnumSet.allOf(externalizer.getTargetClass())) {
- test(externalizer, value);
- }
+ private final Externalizer externalizer;
+ private final BiConsumer assertion;
+
+ public ExternalizerTester(Externalizer externalizer) {
+ this(externalizer, Assert::assertEquals);
}
- public static void test(Externalizer externalizer, T subject) throws IOException, ClassNotFoundException {
- test(externalizer, subject, Assert::assertEquals);
+ public ExternalizerTester(Externalizer externalizer, BiConsumer assertion) {
+ this.externalizer = externalizer;
+ this.assertion = assertion;
}
- public static void test(Externalizer externalizer, T subject, BiConsumer assertion) throws IOException, ClassNotFoundException {
- assertTrue(externalizer.getTargetClass().isInstance(subject));
+ public void test(T subject) throws IOException, ClassNotFoundException {
+ assertTrue(this.externalizer.getTargetClass().isInstance(subject));
ByteArrayOutputStream externalizedOutput = new ByteArrayOutputStream();
try (ObjectOutputStream output = new ObjectOutputStream(externalizedOutput)) {
- externalizer.writeObject(output, subject);
+ this.externalizer.writeObject(output, subject);
}
byte[] externalizedBytes = externalizedOutput.toByteArray();
try (ObjectInputStream input = new ObjectInputStream(new ByteArrayInputStream(externalizedBytes))) {
- T result = externalizer.readObject(input);
- assertion.accept(subject, result);
- assertTrue(externalizer.getTargetClass().isInstance(result));
+ T result = this.externalizer.readObject(input);
+ assertTrue(this.externalizer.getTargetClass().isInstance(result));
+ this.assertion.accept(subject, result);
}
// If object is serializable, make sure we've actually improved upon default serialization size
diff --git a/clustering/marshalling/spi/pom.xml b/clustering/marshalling/spi/pom.xml
index c4b6266dcb4b..6beedf88727d 100644
--- a/clustering/marshalling/spi/pom.xml
+++ b/clustering/marshalling/spi/pom.xml
@@ -46,6 +46,13 @@
org.wildfly.securitywildfly-elytron
+
+ org.wildfly
+ wildfly-clustering-marshalling-api
+ ${project.version}
+ test
+ tests
+
diff --git a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/net/NetExternalizerTestCase.java b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/net/NetExternalizerTestCase.java
index 225ae84cc3f5..78523e28d65b 100644
--- a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/net/NetExternalizerTestCase.java
+++ b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/net/NetExternalizerTestCase.java
@@ -27,7 +27,7 @@
import java.net.URL;
import org.junit.Test;
-import org.wildfly.clustering.marshalling.spi.ExternalizerTestUtil;
+import org.wildfly.clustering.marshalling.ExternalizerTester;
import org.wildfly.clustering.marshalling.spi.DefaultExternalizer;
/**
@@ -38,7 +38,7 @@ public class NetExternalizerTestCase {
@Test
public void test() throws ClassNotFoundException, IOException {
- ExternalizerTestUtil.test(DefaultExternalizer.URI.cast(URI.class), URI.create("http://wildfly.org/news/"));
- ExternalizerTestUtil.test(DefaultExternalizer.URL.cast(URL.class), new URL("http://wildfly.org/news/"));
+ new ExternalizerTester<>(DefaultExternalizer.URI.cast(URI.class)).test(URI.create("http://wildfly.org/news/"));
+ new ExternalizerTester<>(DefaultExternalizer.URL.cast(URL.class)).test(new URL("http://wildfly.org/news/"));
}
}
diff --git a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/time/TimeExternalizerTestCase.java b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/time/TimeExternalizerTestCase.java
index 5fe69322ce07..6a2810fc2f72 100644
--- a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/time/TimeExternalizerTestCase.java
+++ b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/time/TimeExternalizerTestCase.java
@@ -38,7 +38,8 @@
import java.time.ZoneOffset;
import org.junit.Test;
-import org.wildfly.clustering.marshalling.spi.ExternalizerTestUtil;
+import org.wildfly.clustering.marshalling.EnumExternalizerTester;
+import org.wildfly.clustering.marshalling.ExternalizerTester;
import org.wildfly.clustering.marshalling.spi.DefaultExternalizer;
/**
@@ -50,19 +51,19 @@ public class TimeExternalizerTestCase {
@Test
public void test() throws ClassNotFoundException, IOException {
- ExternalizerTestUtil.test(DefaultExternalizer.DAY_OF_WEEK.cast(DayOfWeek.class));
- ExternalizerTestUtil.test(DefaultExternalizer.MONTH.cast(Month.class));
+ new EnumExternalizerTester<>(DefaultExternalizer.DAY_OF_WEEK.cast(DayOfWeek.class)).test();
+ new EnumExternalizerTester<>(DefaultExternalizer.MONTH.cast(Month.class)).test();
- ExternalizerTestUtil.test(DefaultExternalizer.DURATION.cast(Duration.class), Duration.between(Instant.EPOCH, Instant.now()));
- ExternalizerTestUtil.test(DefaultExternalizer.INSTANT.cast(Instant.class), Instant.now());
- ExternalizerTestUtil.test(DefaultExternalizer.LOCAL_DATE.cast(LocalDate.class), LocalDate.now());
- ExternalizerTestUtil.test(DefaultExternalizer.LOCAL_DATE_TIME.cast(LocalDateTime.class), LocalDateTime.now());
- ExternalizerTestUtil.test(DefaultExternalizer.LOCAL_TIME.cast(LocalTime.class), LocalTime.now());
- ExternalizerTestUtil.test(DefaultExternalizer.MONTH_DAY.cast(MonthDay.class), MonthDay.now());
- ExternalizerTestUtil.test(DefaultExternalizer.PERIOD.cast(Period.class), Period.between(LocalDate.ofEpochDay(0), LocalDate.now()));
- ExternalizerTestUtil.test(DefaultExternalizer.YEAR.cast(Year.class), Year.now());
- ExternalizerTestUtil.test(DefaultExternalizer.YEAR_MONTH.cast(YearMonth.class), YearMonth.now());
- ExternalizerTestUtil.test(DefaultExternalizer.ZONE_OFFSET.cast(ZoneOffset.class), ZoneOffset.UTC);
- ExternalizerTestUtil.test(DefaultExternalizer.ZONE_ID, ZoneId.of("America/New_York"));
+ new ExternalizerTester<>(DefaultExternalizer.DURATION.cast(Duration.class)).test(Duration.between(Instant.EPOCH, Instant.now()));
+ new ExternalizerTester<>(DefaultExternalizer.INSTANT.cast(Instant.class)).test(Instant.now());
+ new ExternalizerTester<>(DefaultExternalizer.LOCAL_DATE.cast(LocalDate.class)).test(LocalDate.now());
+ new ExternalizerTester<>(DefaultExternalizer.LOCAL_DATE_TIME.cast(LocalDateTime.class)).test(LocalDateTime.now());
+ new ExternalizerTester<>(DefaultExternalizer.LOCAL_TIME.cast(LocalTime.class)).test(LocalTime.now());
+ new ExternalizerTester<>(DefaultExternalizer.MONTH_DAY.cast(MonthDay.class)).test(MonthDay.now());
+ new ExternalizerTester<>(DefaultExternalizer.PERIOD.cast(Period.class)).test(Period.between(LocalDate.ofEpochDay(0), LocalDate.now()));
+ new ExternalizerTester<>(DefaultExternalizer.YEAR.cast(Year.class)).test(Year.now());
+ new ExternalizerTester<>(DefaultExternalizer.YEAR_MONTH.cast(YearMonth.class)).test(YearMonth.now());
+ new ExternalizerTester<>(DefaultExternalizer.ZONE_OFFSET.cast(ZoneOffset.class)).test(ZoneOffset.UTC);
+ new ExternalizerTester<>(DefaultExternalizer.ZONE_ID.cast(ZoneId.class)).test(ZoneId.of("America/New_York"));
}
}
diff --git a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/AtomicExternalizerTestCase.java b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/AtomicExternalizerTestCase.java
index fe6d139023f7..6b82ecfbcbf0 100644
--- a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/AtomicExternalizerTestCase.java
+++ b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/AtomicExternalizerTestCase.java
@@ -31,7 +31,7 @@
import java.util.concurrent.atomic.AtomicReference;
import org.junit.Test;
-import org.wildfly.clustering.marshalling.spi.ExternalizerTestUtil;
+import org.wildfly.clustering.marshalling.ExternalizerTester;
import org.wildfly.clustering.marshalling.spi.DefaultExternalizer;
/**
@@ -42,9 +42,9 @@ public class AtomicExternalizerTestCase {
@Test
public void test() throws ClassNotFoundException, IOException {
- ExternalizerTestUtil.test(DefaultExternalizer.ATOMIC_BOOLEAN.cast(AtomicBoolean.class), new AtomicBoolean(Boolean.TRUE), (expected, actual) -> assertEquals(expected.get(), actual.get()));
- ExternalizerTestUtil.test(DefaultExternalizer.ATOMIC_INTEGER.cast(AtomicInteger.class), new AtomicInteger(Integer.MAX_VALUE), (expected, actual) -> assertEquals(expected.get(), actual.get()));
- ExternalizerTestUtil.test(DefaultExternalizer.ATOMIC_LONG.cast(AtomicLong.class), new AtomicLong(Long.MAX_VALUE), (expected, actual) -> assertEquals(expected.get(), actual.get()));
- ExternalizerTestUtil.test(DefaultExternalizer.ATOMIC_REFERENCE.cast(AtomicReference.class), new AtomicReference