Class ObjectInputStreamWithClassLoader
java.lang.Object
java.io.InputStream
java.io.ObjectInputStream
com.clumd.projects.java_common_utils.base_enhancements.ObjectInputStreamWithClassLoader
- All Implemented Interfaces:
Closeable,DataInput,ObjectInput,ObjectStreamConstants,AutoCloseable
This is used to point to a provided custom classloader as the first point of contact for loading new objects over a
connection.
It also allows the caller to provide a custom overridden set of objects expected to be read from the InputStream when initialising
-
Nested Class Summary
Nested classes/interfaces inherited from class java.io.ObjectInputStream
ObjectInputStream.GetField -
Field Summary
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, SERIAL_FILTER_PERMISSION, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING -
Constructor Summary
ConstructorsConstructorDescriptionObjectInputStreamWithClassLoader(@NonNull InputStream in, @NonNull URLClassLoader customLoader) Custom constructor to include the classloader for the stream. -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?> resolveClass(ObjectStreamClass deserializedClassDescription) Overridden to point to the custom classloader first.Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, getObjectInputFilter, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, resolveProxyClass, setObjectInputFilter, skipBytesMethods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferToMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.io.ObjectInput
read, skip
-
Constructor Details
-
ObjectInputStreamWithClassLoader
public ObjectInputStreamWithClassLoader(@NonNull @NonNull InputStream in, @NonNull @NonNull URLClassLoader customLoader) throws IOException Custom constructor to include the classloader for the stream.- Parameters:
in- The inputStream as normalcustomLoader- The Custom Class loader to try first for all objects received over this stream.- Throws:
IOException- Thrown as per super's specification
-
-
Method Details
-
resolveClass
protected Class<?> resolveClass(ObjectStreamClass deserializedClassDescription) throws ClassNotFoundException Overridden to point to the custom classloader first.- Overrides:
resolveClassin classObjectInputStream- Parameters:
deserializedClassDescription- As normal- Returns:
- As normal
- Throws:
ClassNotFoundException- as normal.
-