diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/BasicSessionIDExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/BasicSessionIDExternalizer.java deleted file mode 100644 index 3c27ae271a6c..000000000000 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/BasicSessionIDExternalizer.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2015, 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.ejb.infinispan; - -import org.jboss.ejb.client.BasicSessionID; -import org.kohsuke.MetaInfServices; -import org.wildfly.clustering.marshalling.Externalizer; -import org.wildfly.clustering.marshalling.spi.IndexExternalizer; - -/** - * @author Paul Ferraro - */ -@MetaInfServices(Externalizer.class) -public class BasicSessionIDExternalizer extends SessionIDExternalizer { - - public BasicSessionIDExternalizer() { - super(BasicSessionID.class, IndexExternalizer.UNSIGNED_BYTE); - } -} diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/SessionIDExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/SessionIDExternalizer.java index b813b03316a6..918f9ec41afe 100644 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/SessionIDExternalizer.java +++ b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/SessionIDExternalizer.java @@ -25,39 +25,63 @@ import java.io.ObjectInput; import java.io.ObjectOutput; +import org.jboss.ejb.client.BasicSessionID; import org.jboss.ejb.client.SessionID; +import org.jboss.ejb.client.UUIDSessionID; +import org.jboss.ejb.client.UnknownSessionID; +import org.kohsuke.MetaInfServices; import org.wildfly.clustering.marshalling.Externalizer; import org.wildfly.clustering.marshalling.spi.IndexExternalizer; /** * @author Paul Ferraro */ -public class SessionIDExternalizer implements Externalizer { +public class SessionIDExternalizer implements Externalizer { - private final Class targetClass; - private final IndexExternalizer lengthExternalizer; + private final Class targetClass; - SessionIDExternalizer(Class targetClass, IndexExternalizer lengthExternalizer) { + public SessionIDExternalizer(Class targetClass) { this.targetClass = targetClass; - this.lengthExternalizer = lengthExternalizer; } @Override public void writeObject(ObjectOutput output, SessionID id) throws IOException { byte[] encoded = id.getEncodedForm(); - this.lengthExternalizer.writeData(output, encoded.length); + IndexExternalizer.UNSIGNED_BYTE.writeData(output, encoded.length); output.write(encoded); } + @SuppressWarnings("unchecked") @Override - public SessionID readObject(ObjectInput input) throws IOException, ClassNotFoundException { - byte[] encoded = new byte[this.lengthExternalizer.readData(input)]; + public T readObject(ObjectInput input) throws IOException, ClassNotFoundException { + byte[] encoded = new byte[IndexExternalizer.UNSIGNED_BYTE.readData(input)]; input.readFully(encoded); - return SessionID.createSessionID(encoded); + return (T) SessionID.createSessionID(encoded); } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } + + @MetaInfServices(Externalizer.class) + public static class BasicSessionIDExternalizer extends SessionIDExternalizer { + public BasicSessionIDExternalizer() { + super(BasicSessionID.class); + } + } + + @MetaInfServices(Externalizer.class) + public static class UnknownSessionIDExternalizer extends SessionIDExternalizer { + public UnknownSessionIDExternalizer() { + super(UnknownSessionID.class); + } + } + + @MetaInfServices(Externalizer.class) + public static class UUIDSessionIDExternalizer extends SessionIDExternalizer { + public UUIDSessionIDExternalizer() { + super(UUIDSessionID.class); + } + } } diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/UUIDSessionIDExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/UUIDSessionIDExternalizer.java deleted file mode 100644 index 7830ca9efabd..000000000000 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/UUIDSessionIDExternalizer.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.ejb.infinispan; - -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.util.UUID; - -import org.jboss.ejb.client.UUIDSessionID; -import org.kohsuke.MetaInfServices; -import org.wildfly.clustering.marshalling.Externalizer; -import org.wildfly.clustering.marshalling.spi.util.UUIDExternalizer; - -/** - * Externalizer for UUIDSessionID. - * @author Paul Ferraro - */ -@MetaInfServices(Externalizer.class) -public class UUIDSessionIDExternalizer implements Externalizer { - private static final Externalizer UUID_EXTERNALIZER = new UUIDExternalizer(); - - @Override - public void writeObject(ObjectOutput output, UUIDSessionID id) throws IOException { - UUID_EXTERNALIZER.writeObject(output, id.getUuid()); - } - - @Override - public UUIDSessionID readObject(ObjectInput input) throws IOException, ClassNotFoundException { - return new UUIDSessionID(UUID_EXTERNALIZER.readObject(input)); - } - - @Override - public Class getTargetClass() { - return UUIDSessionID.class; - } -} diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/UnknownSessionIDExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/UnknownSessionIDExternalizer.java deleted file mode 100644 index 404699fe605e..000000000000 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/UnknownSessionIDExternalizer.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2015, 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.ejb.infinispan; - -import org.jboss.ejb.client.UnknownSessionID; -import org.kohsuke.MetaInfServices; -import org.wildfly.clustering.marshalling.Externalizer; -import org.wildfly.clustering.marshalling.spi.IndexExternalizer; - -/** - * @author Paul Ferraro - */ -@MetaInfServices(Externalizer.class) -public class UnknownSessionIDExternalizer extends SessionIDExternalizer { - - public UnknownSessionIDExternalizer() { - super(UnknownSessionID.class, IndexExternalizer.VARIABLE); - } -} diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanEntryExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanEntryExternalizer.java index 5799f41f0613..37480a4ef86d 100644 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanEntryExternalizer.java +++ b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanEntryExternalizer.java @@ -28,7 +28,7 @@ import org.jboss.ejb.client.SessionID; import org.kohsuke.MetaInfServices; -import org.wildfly.clustering.ejb.infinispan.BasicSessionIDExternalizer; +import org.wildfly.clustering.ejb.infinispan.SessionIDExternalizer; import org.wildfly.clustering.marshalling.Externalizer; /** @@ -37,19 +37,19 @@ @MetaInfServices(Externalizer.class) public class InfinispanBeanEntryExternalizer implements Externalizer> { - private final Externalizer externalizer = new BasicSessionIDExternalizer(); + private static final Externalizer EXTERNALIZER = new SessionIDExternalizer<>(SessionID.class); @Override public void writeObject(ObjectOutput output, InfinispanBeanEntry entry) throws IOException { output.writeUTF(entry.getBeanName()); - this.externalizer.writeObject(output, entry.getGroupId()); + EXTERNALIZER.writeObject(output, entry.getGroupId()); Date lastAccessedTime = entry.getLastAccessedTime(); output.writeLong((lastAccessedTime != null) ? lastAccessedTime.getTime() : 0); } @Override public InfinispanBeanEntry readObject(ObjectInput input) throws IOException, ClassNotFoundException { - InfinispanBeanEntry entry = new InfinispanBeanEntry<>(input.readUTF(), this.externalizer.readObject(input)); + InfinispanBeanEntry entry = new InfinispanBeanEntry<>(input.readUTF(), EXTERNALIZER.readObject(input)); long time = input.readLong(); if (time > 0) { entry.setLastAccessedTime(new Date(time)); @@ -57,10 +57,9 @@ public InfinispanBeanEntry readObject(ObjectInput input) throws IOExc return entry; } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override public Class> getTargetClass() { - Class targetClass = InfinispanBeanEntry.class; - return targetClass; + return (Class>) (Class) InfinispanBeanEntry.class; } } diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanKeyExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanKeyExternalizer.java index 06250efdab1b..658e6ebb924b 100644 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanKeyExternalizer.java +++ b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/bean/InfinispanBeanKeyExternalizer.java @@ -27,7 +27,7 @@ import org.jboss.ejb.client.SessionID; import org.kohsuke.MetaInfServices; -import org.wildfly.clustering.ejb.infinispan.BasicSessionIDExternalizer; +import org.wildfly.clustering.ejb.infinispan.SessionIDExternalizer; import org.wildfly.clustering.marshalling.Externalizer; /** @@ -36,7 +36,7 @@ @MetaInfServices(Externalizer.class) public class InfinispanBeanKeyExternalizer implements Externalizer> { - private final Externalizer externalizer = new BasicSessionIDExternalizer(); + private final Externalizer externalizer = new SessionIDExternalizer<>(SessionID.class); @Override public void writeObject(ObjectOutput output, InfinispanBeanKey key) throws IOException { @@ -48,10 +48,9 @@ public InfinispanBeanKey readObject(ObjectInput input) throws IOExcep return new InfinispanBeanKey<>(this.externalizer.readObject(input)); } - @SuppressWarnings({ "unchecked", "rawtypes" }) + @SuppressWarnings("unchecked") @Override public Class> getTargetClass() { - Class targetClass = InfinispanBeanKey.class; - return targetClass; + return (Class>) (Class) InfinispanBeanKey.class; } } diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupEntryExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupEntryExternalizer.java index 825b03ee964b..0db33e8eefd0 100644 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupEntryExternalizer.java +++ b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupEntryExternalizer.java @@ -50,10 +50,9 @@ public InfinispanBeanGroupEntry readObject(ObjectInput input) throws IOExc return new InfinispanBeanGroupEntry<>(this.externalizer.readObject(input)); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override public Class> getTargetClass() { - Class targetClass = InfinispanBeanGroupEntry.class; - return targetClass; + return (Class>) (Class) InfinispanBeanGroupEntry.class; } } diff --git a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupKeyExternalizer.java b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupKeyExternalizer.java index a5be991bb9bc..06f470b31a92 100644 --- a/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupKeyExternalizer.java +++ b/clustering/ejb/infinispan/src/main/java/org/wildfly/clustering/ejb/infinispan/group/InfinispanBeanGroupKeyExternalizer.java @@ -28,7 +28,7 @@ import org.jboss.ejb.client.SessionID; import org.kohsuke.MetaInfServices; -import org.wildfly.clustering.ejb.infinispan.BasicSessionIDExternalizer; +import org.wildfly.clustering.ejb.infinispan.SessionIDExternalizer; import org.wildfly.clustering.marshalling.Externalizer; /** @@ -37,7 +37,7 @@ @MetaInfServices(Externalizer.class) public class InfinispanBeanGroupKeyExternalizer implements Externalizer> { - private final Externalizer externalizer = new BasicSessionIDExternalizer(); + private final Externalizer externalizer = new SessionIDExternalizer<>(SessionID.class); @Override public void writeObject(ObjectOutput output, InfinispanBeanGroupKey key) throws IOException { @@ -49,10 +49,9 @@ public InfinispanBeanGroupKey readObject(ObjectInput input) throws IO return new InfinispanBeanGroupKey<>(this.externalizer.readObject(input)); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override - public Class> getTargetClass() { - Class targetClass = InfinispanBeanGroupKey.class; - return targetClass; + public Class> getTargetClass() { + return (Class>) (Class) InfinispanBeanGroupKey.class; } } diff --git a/clustering/marshalling/api/src/main/java/org/wildfly/clustering/marshalling/Externalizer.java b/clustering/marshalling/api/src/main/java/org/wildfly/clustering/marshalling/Externalizer.java index 86c5a303cb86..3d7caa593238 100644 --- a/clustering/marshalling/api/src/main/java/org/wildfly/clustering/marshalling/Externalizer.java +++ b/clustering/marshalling/api/src/main/java/org/wildfly/clustering/marshalling/Externalizer.java @@ -58,5 +58,5 @@ public interface Externalizer { * Returns the target class of the object to externalize. * @return a class to be externalized */ - Class getTargetClass(); + Class getTargetClass(); } diff --git a/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/ExternalizerObjectTable.java b/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/ExternalizerObjectTable.java index b1675e344309..9db84e1222b1 100644 --- a/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/ExternalizerObjectTable.java +++ b/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/ExternalizerObjectTable.java @@ -81,7 +81,8 @@ public void writeObject(Marshaller marshaller, Object object) throws IOException @Override public Writer getObjectWriter(final Object object) throws IOException { - return this.writers.get(object.getClass()); + Class targetClass = object.getClass(); + return this.writers.get(targetClass.isEnum() ? ((Enum) object).getDeclaringClass() : targetClass); } @Override diff --git a/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/HashableMarshalledValueExternalizer.java b/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/HashableMarshalledValueExternalizer.java index e803adc8707b..58bad679e6ce 100644 --- a/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/HashableMarshalledValueExternalizer.java +++ b/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/HashableMarshalledValueExternalizer.java @@ -50,10 +50,9 @@ public HashableMarshalledValue readObject(ObjectInput input) throws IOExcepti return new HashableMarshalledValue<>(value.getBytes(), hashCode); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override public Class> getTargetClass() { - Class targetClass = HashableMarshalledValue.class; - return targetClass; + return (Class>) (Class) HashableMarshalledValue.class; } } diff --git a/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/SimpleMarshalledValueExternalizer.java b/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/SimpleMarshalledValueExternalizer.java index fb294f47ac48..e378e7be114c 100644 --- a/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/SimpleMarshalledValueExternalizer.java +++ b/clustering/marshalling/jboss/src/main/java/org/wildfly/clustering/marshalling/jboss/SimpleMarshalledValueExternalizer.java @@ -57,10 +57,9 @@ public void writeObject(ObjectOutput output, SimpleMarshalledValue object) th } } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override - public Class> getTargetClass() { - Class targetClass = SimpleMarshalledValue.class; - return targetClass; + public Class> getTargetClass() { + return (Class>) (Class) SimpleMarshalledValue.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/EnumExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/EnumExternalizer.java index 77bde432421f..be331acec161 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/EnumExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/EnumExternalizer.java @@ -53,7 +53,7 @@ public E readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.enumClass; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IndexExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IndexExternalizer.java index a270505e30df..ac1fbcda9d9a 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IndexExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IndexExternalizer.java @@ -145,7 +145,7 @@ public void writeObject(ObjectOutput output, Integer index) throws IOException { } @Override - public Class getTargetClass() { + public Class getTargetClass() { return Integer.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IntExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IntExternalizer.java index 446035a5b098..8d6da5e81144 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IntExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/IntExternalizer.java @@ -37,9 +37,9 @@ public class IntExternalizer implements Externalizer { private final IntFunction reader; private final ToIntFunction writer; - private final Class targetClass; + private final Class targetClass; - public IntExternalizer(Class targetClass, IntFunction reader, ToIntFunction writer) { + public IntExternalizer(Class targetClass, IntFunction reader, ToIntFunction writer) { this.reader = reader; this.writer = writer; this.targetClass = targetClass; @@ -56,7 +56,7 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/LongExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/LongExternalizer.java index e714c7a46820..8f6366142f81 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/LongExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/LongExternalizer.java @@ -37,9 +37,9 @@ public class LongExternalizer implements Externalizer { private final LongFunction reader; private final ToLongFunction writer; - private final Class targetClass; + private final Class targetClass; - public LongExternalizer(Class targetClass, LongFunction reader, ToLongFunction writer) { + public LongExternalizer(Class targetClass, LongFunction reader, ToLongFunction writer) { this.reader = reader; this.writer = writer; this.targetClass = targetClass; @@ -56,7 +56,7 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/StringExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/StringExternalizer.java index 7b19e9c36c9c..b672576e3e7c 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/StringExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/StringExternalizer.java @@ -36,9 +36,9 @@ public class StringExternalizer implements Externalizer { private final Function reader; private final Function writer; - private final Class targetClass; + private final Class targetClass; - public StringExternalizer(Class targetClass, Function reader, Function writer) { + public StringExternalizer(Class targetClass, Function reader, Function writer) { this.reader = reader; this.writer = writer; this.targetClass = targetClass; @@ -55,7 +55,7 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/io/ExternalizableExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/io/ExternalizableExternalizer.java index bb2a16076492..e39acf840454 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/io/ExternalizableExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/io/ExternalizableExternalizer.java @@ -37,9 +37,9 @@ */ public class ExternalizableExternalizer implements Externalizer { - private final Class targetClass; + private final Class targetClass; - public ExternalizableExternalizer(Class targetClass) { + public ExternalizableExternalizer(Class targetClass) { this.targetClass = targetClass; } @@ -66,7 +66,7 @@ public T run() throws InstantiationException, IllegalAccessException { } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/net/URLExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/net/URLExternalizer.java index 78573757c73a..6a9cef4fc95a 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/net/URLExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/net/URLExternalizer.java @@ -56,7 +56,7 @@ public URL readObject(ObjectInput input) throws IOException, ClassNotFoundExcept } @Override - public Class getTargetClass() { + public Class getTargetClass() { return URL.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/DurationExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/DurationExternalizer.java index 46af6a232068..7109c9941a19 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/DurationExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/DurationExternalizer.java @@ -51,7 +51,7 @@ public Duration readObject(ObjectInput input) throws IOException, ClassNotFoundE } @Override - public Class getTargetClass() { + public Class getTargetClass() { return Duration.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/InstantExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/InstantExternalizer.java index 519a8ecba8e7..2593c3bb183b 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/InstantExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/InstantExternalizer.java @@ -51,7 +51,7 @@ public Instant readObject(ObjectInput input) throws IOException, ClassNotFoundEx } @Override - public Class getTargetClass() { + public Class getTargetClass() { return Instant.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/LocalDateTimeExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/LocalDateTimeExternalizer.java index c454e59a2090..23a1d5488feb 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/LocalDateTimeExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/LocalDateTimeExternalizer.java @@ -56,7 +56,7 @@ public LocalDateTime readObject(ObjectInput input) throws IOException, ClassNotF } @Override - public Class getTargetClass() { + public Class getTargetClass() { return LocalDateTime.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/MonthDayExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/MonthDayExternalizer.java index 03ed0e00bace..a6fdce6b1c82 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/MonthDayExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/MonthDayExternalizer.java @@ -53,7 +53,7 @@ public MonthDay readObject(ObjectInput input) throws IOException, ClassNotFoundE } @Override - public Class getTargetClass() { + public Class getTargetClass() { return MonthDay.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/PeriodExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/PeriodExternalizer.java index 44e007d06a20..45c470fd741f 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/PeriodExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/PeriodExternalizer.java @@ -53,7 +53,7 @@ public Period readObject(ObjectInput input) throws IOException, ClassNotFoundExc } @Override - public Class getTargetClass() { + public Class getTargetClass() { return Period.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/YearMonthExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/YearMonthExternalizer.java index 6353bc231c9e..ab575e653e85 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/YearMonthExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/YearMonthExternalizer.java @@ -52,7 +52,7 @@ public YearMonth readObject(ObjectInput input) throws IOException, ClassNotFound } @Override - public Class getTargetClass() { + public Class getTargetClass() { return YearMonth.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/ZoneIdExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/ZoneOffsetExternalizer.java similarity index 79% rename from clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/ZoneIdExternalizer.java rename to clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/ZoneOffsetExternalizer.java index d5bf13e83cfe..09ac5f68f1d9 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/ZoneIdExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/time/ZoneOffsetExternalizer.java @@ -22,17 +22,19 @@ package org.wildfly.clustering.marshalling.spi.time; -import java.time.ZoneId; import java.time.ZoneOffset; +import org.kohsuke.MetaInfServices; +import org.wildfly.clustering.marshalling.Externalizer; import org.wildfly.clustering.marshalling.spi.StringExternalizer; /** * @author Paul Ferraro */ -public class ZoneIdExternalizer extends StringExternalizer { +@MetaInfServices(Externalizer.class) +public class ZoneOffsetExternalizer extends StringExternalizer { - public ZoneIdExternalizer() { - super(ZoneOffset.class, ZoneId::of, ZoneId::getId); + public ZoneOffsetExternalizer() { + super(ZoneOffset.class, ZoneOffset::of, ZoneOffset::getId); } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicBooleanExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicBooleanExternalizer.java index ce13a2d98cbe..c5e5c58a1fb1 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicBooleanExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicBooleanExternalizer.java @@ -48,7 +48,7 @@ public AtomicBoolean readObject(ObjectInput input) throws IOException, ClassNotF } @Override - public Class getTargetClass() { + public Class getTargetClass() { return AtomicBoolean.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicReferenceExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicReferenceExternalizer.java index 0e076089dd91..7db11dcd7653 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicReferenceExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/AtomicReferenceExternalizer.java @@ -47,10 +47,9 @@ public AtomicReference readObject(ObjectInput input) throws IOException, return new AtomicReference<>(input.readObject()); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override - public Class> getTargetClass() { - Class targetClass = AtomicReference.class; - return targetClass; + public Class> getTargetClass() { + return (Class>) (Class) AtomicReference.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CollectionExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CollectionExternalizer.java index 2690d0fc3c38..7d80744eb66f 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CollectionExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CollectionExternalizer.java @@ -49,9 +49,9 @@ public class CollectionExternalizer> implements Ext private final Class targetClass; private final IntFunction factory; - @SuppressWarnings({ "unchecked", "rawtypes" }) - CollectionExternalizer(Class targetClass, IntFunction factory) { - this.targetClass = targetClass; + @SuppressWarnings("unchecked") + CollectionExternalizer(Class targetClass, IntFunction factory) { + this.targetClass = (Class) targetClass; this.factory = factory; } @@ -81,7 +81,7 @@ static > T readCollection(ObjectInput input, T coll } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CopyOnWriteCollectionExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CopyOnWriteCollectionExternalizer.java index e5a82fafd6be..89f577eef937 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CopyOnWriteCollectionExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/CopyOnWriteCollectionExternalizer.java @@ -44,9 +44,9 @@ public class CopyOnWriteCollectionExternalizer> imp private final Class targetClass; private final Function, T> factory; - @SuppressWarnings({ "rawtypes", "unchecked" }) - CopyOnWriteCollectionExternalizer(Class targetClass, Function, T> factory) { - this.targetClass = targetClass; + @SuppressWarnings("unchecked") + CopyOnWriteCollectionExternalizer(Class targetClass, Function, T> factory) { + this.targetClass = (Class) targetClass; this.factory = factory; } @@ -63,7 +63,7 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizer.java index 5fc0892b514d..49c12d8b0f5d 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizer.java @@ -22,6 +22,10 @@ package org.wildfly.clustering.marshalling.spi.util; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.sql.Timestamp; import java.util.Date; import java.util.function.LongFunction; @@ -33,15 +37,17 @@ * Externalizers for {@link Date} implementations. * @author Paul Ferraro */ -@MetaInfServices(Externalizer.class) -public class DateExternalizer extends LongExternalizer { +public class DateExternalizer extends LongExternalizer { - public DateExternalizer() { - this(Date::new, Date.class); + DateExternalizer(LongFunction factory, Class targetClass) { + super(targetClass, factory, Date::getTime); } - DateExternalizer(LongFunction factory, Class targetClass) { - super(targetClass, factory, Date::getTime); + @MetaInfServices(Externalizer.class) + public static class UtilDateExternalizer extends DateExternalizer { + public UtilDateExternalizer() { + super(Date::new, Date.class); + } } @MetaInfServices(Externalizer.class) @@ -57,4 +63,24 @@ public SqlTimeExternalizer() { super(java.sql.Time::new, java.sql.Time.class); } } + + @MetaInfServices(Externalizer.class) + public static class SqlTimestampExternalizer extends DateExternalizer { + public SqlTimestampExternalizer() { + super(java.sql.Timestamp::new, java.sql.Timestamp.class); + } + + @Override + public void writeObject(ObjectOutput output, Timestamp timestamp) throws IOException { + super.writeObject(output, timestamp); + output.writeInt(timestamp.getNanos()); + } + + @Override + public Timestamp readObject(ObjectInput input) throws IOException, ClassNotFoundException { + Timestamp timestamp = super.readObject(input); + timestamp.setNanos(input.readInt()); + return timestamp; + } + } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/EmptyCollectionExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/EmptyCollectionExternalizer.java index f4d8d9202cf9..3bdd0771eb57 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/EmptyCollectionExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/EmptyCollectionExternalizer.java @@ -64,8 +64,8 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio @SuppressWarnings("unchecked") @Override - public Class getTargetClass() { - return (Class) this.factory.get().getClass(); + public Class getTargetClass() { + return (Class) this.factory.get().getClass(); } @MetaInfServices(Externalizer.class) diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapEntryExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapEntryExternalizer.java index cade0aac4aed..3eabef2eb10c 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapEntryExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapEntryExternalizer.java @@ -40,9 +40,9 @@ public class MapEntryExternalizer> implement private final Class targetClass; private final BiFunction factory; - @SuppressWarnings({ "rawtypes", "unchecked" }) - MapEntryExternalizer(Class targetClass, BiFunction factory) { - this.targetClass = targetClass; + @SuppressWarnings("unchecked") + MapEntryExternalizer(Class targetClass, BiFunction factory) { + this.targetClass = (Class) targetClass; this.factory = factory; } @@ -58,7 +58,7 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapExternalizer.java index cb4ad8c164c7..22255ccff919 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/MapExternalizer.java @@ -44,9 +44,9 @@ public class MapExternalizer> implements Externali private final Class targetClass; private final IntFunction factory; - @SuppressWarnings({ "unchecked", "rawtypes" }) - MapExternalizer(Class targetClass, IntFunction factory) { - this.targetClass = targetClass; + @SuppressWarnings("unchecked") + MapExternalizer(Class targetClass, IntFunction factory) { + this.targetClass = (Class) targetClass; this.factory = factory; } @@ -77,7 +77,7 @@ static > T readMap(ObjectInput input, T map, int s } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/OptionalExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/OptionalExternalizer.java index a9e3f92c4cc7..84690eac2e4d 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/OptionalExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/OptionalExternalizer.java @@ -47,10 +47,9 @@ public Optional readObject(ObjectInput input) throws IOException, ClassN return Optional.ofNullable(input.readObject()); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override - public Class> getTargetClass() { - Class targetClass = Optional.class; - return targetClass; + public Class> getTargetClass() { + return (Class>) (Class) Optional.class; } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonCollectionExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonCollectionExternalizer.java index 91e5ab424fc6..9dc5cae1be17 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonCollectionExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonCollectionExternalizer.java @@ -57,8 +57,8 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio @SuppressWarnings("unchecked") @Override - public Class getTargetClass() { - return (Class) this.factory.apply(null).getClass(); + public Class getTargetClass() { + return (Class) this.factory.apply(null).getClass(); } @MetaInfServices(Externalizer.class) diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonMapExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonMapExternalizer.java index 4350e854ed23..f901a8bddeca 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonMapExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SingletonMapExternalizer.java @@ -51,7 +51,7 @@ public Map readObject(ObjectInput input) throws IOException, Cla @SuppressWarnings("unchecked") @Override - public Class> getTargetClass() { - return (Class>) Collections.singletonMap(null, null).getClass(); + public Class> getTargetClass() { + return (Class>) Collections.singletonMap(null, null).getClass(); } } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedMapExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedMapExternalizer.java index 4f9c794a3dd4..82f411102cd4 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedMapExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedMapExternalizer.java @@ -45,9 +45,9 @@ public class SortedMapExternalizer> implemen private final Class targetClass; private final Function, T> factory; - @SuppressWarnings({ "rawtypes", "unchecked" }) - SortedMapExternalizer(Class targetClass, Function, T> factory) { - this.targetClass = targetClass; + @SuppressWarnings("unchecked") + SortedMapExternalizer(Class targetClass, Function, T> factory) { + this.targetClass = (Class) targetClass; this.factory = factory; } @@ -66,7 +66,7 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedSetExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedSetExternalizer.java index 0f920ea50b82..38c453b70fda 100644 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedSetExternalizer.java +++ b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SortedSetExternalizer.java @@ -45,9 +45,9 @@ public class SortedSetExternalizer> implements Exter private final Class targetClass; private final Function, T> factory; - @SuppressWarnings({ "rawtypes", "unchecked" }) - SortedSetExternalizer(Class targetClass, Function, T> factory) { - this.targetClass = targetClass; + @SuppressWarnings("unchecked") + SortedSetExternalizer(Class targetClass, Function, T> factory) { + this.targetClass = (Class) targetClass; this.factory = factory; } @@ -66,7 +66,7 @@ public T readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } diff --git a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SqlTimestampExternalizer.java b/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SqlTimestampExternalizer.java deleted file mode 100644 index 2202e94be909..000000000000 --- a/clustering/marshalling/spi/src/main/java/org/wildfly/clustering/marshalling/spi/util/SqlTimestampExternalizer.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2017, Red Hat Middleware LLC, 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.spi.util; - -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.sql.Timestamp; - -import org.kohsuke.MetaInfServices; -import org.wildfly.clustering.marshalling.Externalizer; - -/** - * Externalizer for a {@link Timestamp}. - * - * @author Radoslav Husar - */ -@MetaInfServices(Externalizer.class) -public class SqlTimestampExternalizer implements Externalizer { - - @Override - public void writeObject(ObjectOutput output, Timestamp timestamp) throws IOException { - output.writeLong(timestamp.getTime()); - output.writeInt(timestamp.getNanos()); - } - - @Override - public Timestamp readObject(ObjectInput input) throws IOException, ClassNotFoundException { - long time = input.readLong(); - int nanos = input.readInt(); - Timestamp timestamp = new Timestamp(time); - timestamp.setNanos(nanos); - return timestamp; - } - - @Override - public Class getTargetClass() { - return Timestamp.class; - } -} 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 86335c29f1dd..a27f757ec3f9 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 @@ -59,7 +59,7 @@ public void test() throws ClassNotFoundException, IOException { ExternalizerTestUtil.test(new PeriodExternalizer(), Period.between(LocalDate.ofEpochDay(0), LocalDate.now())); ExternalizerTestUtil.test(new YearExternalizer(), Year.now()); ExternalizerTestUtil.test(new YearMonthExternalizer(), YearMonth.now()); - ExternalizerTestUtil.test(new ZoneIdExternalizer(), ZoneOffset.UTC); + ExternalizerTestUtil.test(new ZoneOffsetExternalizer(), ZoneOffset.UTC); } private static > void test(Externalizer externalizer) throws ClassNotFoundException, IOException { diff --git a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizerTestCase.java b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizerTestCase.java index ec4f2943721e..df40ab3725ad 100644 --- a/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizerTestCase.java +++ b/clustering/marshalling/spi/src/test/java/org/wildfly/clustering/marshalling/spi/util/DateExternalizerTestCase.java @@ -33,6 +33,8 @@ import org.wildfly.clustering.marshalling.spi.ExternalizerTestUtil; import org.wildfly.clustering.marshalling.spi.util.DateExternalizer.SqlDateExternalizer; import org.wildfly.clustering.marshalling.spi.util.DateExternalizer.SqlTimeExternalizer; +import org.wildfly.clustering.marshalling.spi.util.DateExternalizer.SqlTimestampExternalizer; +import org.wildfly.clustering.marshalling.spi.util.DateExternalizer.UtilDateExternalizer; /** * Unit test for {@link Date} externalizers. @@ -42,7 +44,7 @@ public class DateExternalizerTestCase { @Test public void test() throws ClassNotFoundException, IOException { - ExternalizerTestUtil.test(new DateExternalizer<>(), Date.from(Instant.now())); + ExternalizerTestUtil.test(new UtilDateExternalizer(), Date.from(Instant.now())); ExternalizerTestUtil.test(new SqlDateExternalizer(), java.sql.Date.valueOf(LocalDate.now())); ExternalizerTestUtil.test(new SqlTimeExternalizer(), java.sql.Time.valueOf(LocalTime.now())); ExternalizerTestUtil.test(new SqlTimestampExternalizer(), java.sql.Timestamp.valueOf(LocalDateTime.now())); diff --git a/clustering/server/src/main/java/org/wildfly/clustering/server/group/LocalNodeExternalizer.java b/clustering/server/src/main/java/org/wildfly/clustering/server/group/LocalNodeExternalizer.java index 9d88bb25c6e1..d296e4cf916b 100644 --- a/clustering/server/src/main/java/org/wildfly/clustering/server/group/LocalNodeExternalizer.java +++ b/clustering/server/src/main/java/org/wildfly/clustering/server/group/LocalNodeExternalizer.java @@ -48,7 +48,7 @@ public LocalNode readObject(ObjectInput input) throws IOException { } @Override - public Class getTargetClass() { + public Class getTargetClass() { return LocalNode.class; } } diff --git a/clustering/server/src/main/java/org/wildfly/clustering/server/registry/CacheRegistryFilterExternalizer.java b/clustering/server/src/main/java/org/wildfly/clustering/server/registry/CacheRegistryFilterExternalizer.java index dabebb24c977..ae9c49547789 100644 --- a/clustering/server/src/main/java/org/wildfly/clustering/server/registry/CacheRegistryFilterExternalizer.java +++ b/clustering/server/src/main/java/org/wildfly/clustering/server/registry/CacheRegistryFilterExternalizer.java @@ -45,7 +45,7 @@ public CacheRegistryFilter readObject(ObjectInput input) throws IOException, Cla } @Override - public Class getTargetClass() { + public Class getTargetClass() { return CacheRegistryFilter.class; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/SessionKeyExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/SessionKeyExternalizer.java index b30356921a7e..6e93fb090258 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/SessionKeyExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/SessionKeyExternalizer.java @@ -68,7 +68,7 @@ public K readObject(ObjectInput input) throws IOException, ClassNotFoundExceptio } @Override - public Class getTargetClass() { + public Class getTargetClass() { return this.targetClass; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionAccessMetaDataExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionAccessMetaDataExternalizer.java index d855f70f7302..032e86a6d7b2 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionAccessMetaDataExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionAccessMetaDataExternalizer.java @@ -36,22 +36,22 @@ * @author Paul Ferraro */ @MetaInfServices(Externalizer.class) -public class SessionAccessMetaDataExternalizer implements Externalizer { +public class SessionAccessMetaDataExternalizer implements Externalizer { @Override - public void writeObject(ObjectOutput output, SessionAccessMetaData metaData) throws IOException { + public void writeObject(ObjectOutput output, SimpleSessionAccessMetaData metaData) throws IOException { IndexExternalizer.VARIABLE.writeData(output, (int) metaData.getLastAccessedDuration().getSeconds()); } @Override - public SessionAccessMetaData readObject(ObjectInput input) throws IOException, ClassNotFoundException { - SessionAccessMetaData metaData = new SimpleSessionAccessMetaData(); + public SimpleSessionAccessMetaData readObject(ObjectInput input) throws IOException, ClassNotFoundException { + SimpleSessionAccessMetaData metaData = new SimpleSessionAccessMetaData(); metaData.setLastAccessedDuration(Duration.ofSeconds(IndexExternalizer.VARIABLE.readData(input))); return metaData; } @Override - public Class getTargetClass() { + public Class getTargetClass() { return SimpleSessionAccessMetaData.class; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataEntryExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataEntryExternalizer.java index e80ae0f27697..e783fe9207cc 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataEntryExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataEntryExternalizer.java @@ -55,9 +55,9 @@ public SessionCreationMetaDataEntry readObject(ObjectInput input) throws return new SessionCreationMetaDataEntry<>(metaData); } - @SuppressWarnings({ "unchecked", "rawtypes" }) + @SuppressWarnings("unchecked") @Override - public Class getTargetClass() { - return SessionCreationMetaDataEntry.class; + public Class> getTargetClass() { + return (Class>) (Class) SessionCreationMetaDataEntry.class; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataKeyFilterExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataKeyFilterExternalizer.java index a22487803cf5..f6a8bf7ef866 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataKeyFilterExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/SessionCreationMetaDataKeyFilterExternalizer.java @@ -45,7 +45,7 @@ public SessionCreationMetaDataKeyFilter readObject(ObjectInput input) throws IOE } @Override - public Class getTargetClass() { + public Class getTargetClass() { return SessionCreationMetaDataKeyFilter.class; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/fine/SessionAttributeNamesEntryExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/fine/SessionAttributeNamesEntryExternalizer.java index 921f5ef3e2f7..96cca092077a 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/fine/SessionAttributeNamesEntryExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/session/fine/SessionAttributeNamesEntryExternalizer.java @@ -64,7 +64,7 @@ public SessionAttributeNamesEntry readObject(ObjectInput input) throws IOExcepti } @Override - public Class getTargetClass() { + public Class getTargetClass() { return SessionAttributeNamesEntry.class; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/AuthenticationEntryExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/AuthenticationEntryExternalizer.java index 6d4f5916c43a..84ee5a5faf09 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/AuthenticationEntryExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/AuthenticationEntryExternalizer.java @@ -48,10 +48,9 @@ public AuthenticationEntry readObject(ObjectInput input) throws IOExceptio return new AuthenticationEntry<>((V) input.readObject()); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings("unchecked") @Override public Class> getTargetClass() { - Class targetClass = AuthenticationEntry.class; - return targetClass; + return (Class>) (Class) AuthenticationEntry.class; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionFilterExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionFilterExternalizer.java index 3f78e02a51ee..3856572a3a99 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionFilterExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionFilterExternalizer.java @@ -46,10 +46,9 @@ public SessionFilter readObject(ObjectInput input) throws IOException, Cla return new SessionFilter<>((S) input.readObject()); } - @SuppressWarnings({ "unchecked", "rawtypes" }) + @SuppressWarnings("unchecked") @Override - public Class> getTargetClass() { - Class targetClass = SessionFilter.class; - return targetClass; + public Class> getTargetClass() { + return (Class>) (Class) SessionFilter.class; } } diff --git a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionsFilterExternalizer.java b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionsFilterExternalizer.java index 79f7f126cd05..1d350fee141e 100644 --- a/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionsFilterExternalizer.java +++ b/clustering/web/infinispan/src/main/java/org/wildfly/clustering/web/infinispan/sso/coarse/SessionsFilterExternalizer.java @@ -46,10 +46,9 @@ public SessionsFilter readObject(ObjectInput input) { return this.filter; } - @SuppressWarnings({ "unchecked", "rawtypes" }) + @SuppressWarnings("unchecked") @Override - public Class> getTargetClass() { - Class targetClass = SessionsFilter.class; - return targetClass; + public Class> getTargetClass() { + return (Class>) (Class) SessionsFilter.class; } } diff --git a/clustering/web/spi/src/main/java/org/wildfly/clustering/web/IdentifierExternalizer.java b/clustering/web/spi/src/main/java/org/wildfly/clustering/web/IdentifierExternalizer.java index 3934bde8b5a1..01aee777ae0a 100644 --- a/clustering/web/spi/src/main/java/org/wildfly/clustering/web/IdentifierExternalizer.java +++ b/clustering/web/spi/src/main/java/org/wildfly/clustering/web/IdentifierExternalizer.java @@ -86,7 +86,7 @@ public String readObject(ObjectInput input) throws IOException, ClassNotFoundExc ; @Override - public Class getTargetClass() { + public Class getTargetClass() { return String.class; } } diff --git a/testsuite/integration/clustering/src/test/java/org/jboss/as/test/clustering/cluster/web/externalizer/CounterExternalizer.java b/testsuite/integration/clustering/src/test/java/org/jboss/as/test/clustering/cluster/web/externalizer/CounterExternalizer.java index d5af5a36ce59..4608c01e5e77 100644 --- a/testsuite/integration/clustering/src/test/java/org/jboss/as/test/clustering/cluster/web/externalizer/CounterExternalizer.java +++ b/testsuite/integration/clustering/src/test/java/org/jboss/as/test/clustering/cluster/web/externalizer/CounterExternalizer.java @@ -45,7 +45,7 @@ public Counter readObject(ObjectInput input) throws IOException, ClassNotFoundEx } @Override - public Class getTargetClass() { + public Class getTargetClass() { return Counter.class; } }