Package org.apache.commons.io.input
Class ClassLoaderObjectInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.ObjectInputStream
-
- org.apache.commons.io.input.ClassLoaderObjectInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.DataInput,java.io.ObjectInput,java.io.ObjectStreamConstants,java.lang.AutoCloseable
public class ClassLoaderObjectInputStream extends java.io.ObjectInputStreamA special ObjectInputStream that loads a class based on a specifiedClassLoaderrather than the system default.This is useful in dynamic container environments.
- Since:
- 1.1
-
-
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
Constructors Constructor Description ClassLoaderObjectInputStream(java.lang.ClassLoader classLoader, java.io.InputStream inputStream)Constructs a new ClassLoaderObjectInputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Class<?>resolveClass(java.io.ObjectStreamClass objectStreamClass)Resolve a class specified by the descriptor using the specified ClassLoader or the super ClassLoader.protected java.lang.Class<?>resolveProxyClass(java.lang.String[] interfaces)Create a proxy class that implements the specified interfaces using the specified ClassLoader or the super ClassLoader.-
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, setObjectInputFilter, skipBytes
-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
-
-
-
Constructor Detail
-
ClassLoaderObjectInputStream
public ClassLoaderObjectInputStream(java.lang.ClassLoader classLoader, java.io.InputStream inputStream) throws java.io.IOException, java.io.StreamCorruptedExceptionConstructs a new ClassLoaderObjectInputStream.- Parameters:
classLoader- the ClassLoader from which classes should be loadedinputStream- the InputStream to work on- Throws:
java.io.IOException- in case of an I/O errorjava.io.StreamCorruptedException- if the stream is corrupted
-
-
Method Detail
-
resolveClass
protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass objectStreamClass) throws java.io.IOException, java.lang.ClassNotFoundExceptionResolve a class specified by the descriptor using the specified ClassLoader or the super ClassLoader.- Overrides:
resolveClassin classjava.io.ObjectInputStream- Parameters:
objectStreamClass- descriptor of the class- Returns:
- the Class object described by the ObjectStreamClass
- Throws:
java.io.IOException- in case of an I/O errorjava.lang.ClassNotFoundException- if the Class cannot be found
-
resolveProxyClass
protected java.lang.Class<?> resolveProxyClass(java.lang.String[] interfaces) throws java.io.IOException, java.lang.ClassNotFoundExceptionCreate a proxy class that implements the specified interfaces using the specified ClassLoader or the super ClassLoader.- Overrides:
resolveProxyClassin classjava.io.ObjectInputStream- Parameters:
interfaces- the interfaces to implement- Returns:
- a proxy class implementing the interfaces
- Throws:
java.io.IOException- in case of an I/O errorjava.lang.ClassNotFoundException- if the Class cannot be found- Since:
- 2.1
- See Also:
ObjectInputStream.resolveProxyClass(java.lang.String[])
-
-