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; } }