Class ComponentObjectInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.ObjectInputStream
-
- de.aristaflow.adept2.model.runtimeenvironment.ComponentObjectInputStream
-
- All Implemented Interfaces:
Closeable
,DataInput
,ObjectInput
,ObjectStreamConstants
,AutoCloseable
public class ComponentObjectInputStream extends ObjectInputStream
ThisObjectInputStream
uses the context classloader of the current thread instead of the last used classloader like theObjectInputStream
. Executable components should always use this stream instead ofObjectInputStream
or there may be trouble with the classloader, resp. the classpath of the classes required for the stream.
-
-
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
Constructors Constructor Description ComponentObjectInputStream(InputStream in)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Serializable
fromInputStream(InputStream object)
Deserialises the object contained in the designated input stream.protected ClassLoader
getLoader()
Gets the context classloader of the current thread.protected Class<?>
resolveClass(ObjectStreamClass desc)
protected Class<?>
resolveProxyClass(String[] interfaces)
-
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
-
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
-
ComponentObjectInputStream
public ComponentObjectInputStream(InputStream in) throws IOException
- Throws:
IOException
- See Also:
ObjectInputStream(InputStream)
-
-
Method Detail
-
resolveClass
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException
- Overrides:
resolveClass
in classObjectInputStream
- Throws:
IOException
ClassNotFoundException
-
resolveProxyClass
protected Class<?> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException
- Overrides:
resolveProxyClass
in classObjectInputStream
- Throws:
IOException
ClassNotFoundException
-
getLoader
protected ClassLoader getLoader()
Gets the context classloader of the current thread. It would be great, if the superclass would directly allow to override this method.- Returns:
- The context classloader of the current thread.
-
fromInputStream
public static final Serializable fromInputStream(InputStream object) throws IOException, ClassNotFoundException
Deserialises the object contained in the designated input stream. This will try GZip, but switch to uncompressed deserialisation if not successful.- Parameters:
object
- An input stream containing a serialised object (may be gzipped). The stream will be closed after reading.- Returns:
- The serialisable object from the designated input stream.
- Throws:
IOException
- If there are problems when reading from the designated input stream, anIOException
will be thrown.ClassNotFoundException
- If the class of the designated object cannot be found for deserialisation, aClassNotFoundException
will be thrown.
-
-