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
ThisObjectInputStreamuses the context classloader of the current thread instead of the last used classloader like theObjectInputStream. Executable components should always use this stream instead ofObjectInputStreamor 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 SerializablefromInputStream(InputStream object)Deserialises the object contained in the designated input stream.protected ClassLoadergetLoader()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:
resolveClassin classObjectInputStream- Throws:
IOExceptionClassNotFoundException
-
resolveProxyClass
protected Class<?> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException
- Overrides:
resolveProxyClassin classObjectInputStream- Throws:
IOExceptionClassNotFoundException
-
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, anIOExceptionwill be thrown.ClassNotFoundException- If the class of the designated object cannot be found for deserialisation, aClassNotFoundExceptionwill be thrown.
-
-