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:
Closeable
,DataInput
,ObjectInput
,ObjectStreamConstants
,AutoCloseable
A special ObjectInputStream that loads a class based on a specified
ClassLoader
rather than the system default.
This is useful in dynamic container environments.
- Since:
- 1.1
-
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, 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
ConstructorDescriptionClassLoaderObjectInputStream
(ClassLoader classLoader, InputStream inputStream) Constructs a new ClassLoaderObjectInputStream. -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>
resolveClass
(ObjectStreamClass objectStreamClass) Resolve a class specified by the descriptor using the specified ClassLoader or the super ClassLoader.protected Class<?>
resolveProxyClass
(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, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.io.ObjectInput
read, skip
-
Constructor Details
-
ClassLoaderObjectInputStream
public ClassLoaderObjectInputStream(ClassLoader classLoader, InputStream inputStream) throws IOException, StreamCorruptedException Constructs a new ClassLoaderObjectInputStream.- Parameters:
classLoader
- the ClassLoader from which classes should be loadedinputStream
- the InputStream to work on- Throws:
IOException
- in case of an I/O errorStreamCorruptedException
- if the stream is corrupted
-
-
Method Details
-
resolveClass
protected Class<?> resolveClass(ObjectStreamClass objectStreamClass) throws IOException, ClassNotFoundException Resolve a class specified by the descriptor using the specified ClassLoader or the super ClassLoader.- Overrides:
resolveClass
in classObjectInputStream
- Parameters:
objectStreamClass
- descriptor of the class- Returns:
- the Class object described by the ObjectStreamClass
- Throws:
IOException
- in case of an I/O errorClassNotFoundException
- if the Class cannot be found
-
resolveProxyClass
protected Class<?> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException Create a proxy class that implements the specified interfaces using the specified ClassLoader or the super ClassLoader.- Overrides:
resolveProxyClass
in classObjectInputStream
- Parameters:
interfaces
- the interfaces to implement- Returns:
- a proxy class implementing the interfaces
- Throws:
IOException
- in case of an I/O errorClassNotFoundException
- if the Class cannot be found- Since:
- 2.1
- See Also:
-