org.apache.commons.io.input
Class ClassLoaderObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by org.apache.commons.io.input.ClassLoaderObjectInputStream
All Implemented Interfaces:
Closeable, DataInput, ObjectInput, ObjectStreamConstants

public class ClassLoaderObjectInputStream
extends ObjectInputStream

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
Version:
$Id: ClassLoaderObjectInputStream.java 1304052 2012-03-22 20:55:29Z ggregory $

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
ClassLoaderObjectInputStream(ClassLoader classLoader, InputStream inputStream)
          Constructs a new ClassLoaderObjectInputStream.
 
Method Summary
protected  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 Detail

ClassLoaderObjectInputStream

public ClassLoaderObjectInputStream(ClassLoader classLoader,
                                    InputStream inputStream)
                             throws IOException,
                                    StreamCorruptedException
Constructs a new ClassLoaderObjectInputStream.

Parameters:
classLoader - the ClassLoader from which classes should be loaded
inputStream - the InputStream to work on
Throws:
IOException - in case of an I/O error
StreamCorruptedException - if the stream is corrupted
Method Detail

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 class ObjectInputStream
Parameters:
objectStreamClass - descriptor of the class
Returns:
the Class object described by the ObjectStreamClass
Throws:
IOException - in case of an I/O error
ClassNotFoundException - 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 class ObjectInputStream
Parameters:
interfaces - the interfaces to implement
Returns:
a proxy class implementing the interfaces
Throws:
IOException - in case of an I/O error
ClassNotFoundException - if the Class cannot be found
Since:
2.1
See Also:
ObjectInputStream.resolveProxyClass(java.lang.String[])


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.