org.apache.ignite.marshaller.jdk

## Class JdkMarshaller

- java.lang.Object
- - org.apache.ignite.marshaller.AbstractMarshaller
  - - org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller
    - - org.apache.ignite.marshaller.jdk.JdkMarshaller

- All Implemented Interfaces:
    Marshaller

      public class JdkMarshaller
      extends AbstractNodeNameAwareMarshaller

  Implementation of `Marshaller` based on JDK serialization mechanism.

  # Configuration

  ## Mandatory

  This marshaller has no mandatory configuration parameters.

  ## Java Example

  `JdkMarshaller` needs to be explicitly configured to override default binary marshaller - see `IgniteBinary`.

       JdkMarshaller marshaller = new JdkMarshaller();

       IgniteConfiguration cfg = new IgniteConfiguration();

       // Override default marshaller.
       cfg.setMarshaller(marshaller);

       // Starts grid.
       G.start(cfg);

  ## Spring Example

  JdkMarshaller can be configured from Spring XML configuration file:

       <bean id="grid.custom.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" singleton="true">
           ...
           <property name="marshaller">
               <bean class="org.apache.ignite.marshaller.jdk.JdkMarshaller"/>
           </property>
           ...
       </bean>

  For information about Spring framework visit www.springframework.org

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static JdkMarshaller` | `DEFAULT` Default instance.

    - ### Fields inherited from class org.apache.ignite.marshaller.AbstractMarshaller

      `ctx, DFLT_BUFFER_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JdkMarshaller()` Default constructor.
    `JdkMarshaller(IgnitePredicate<String> clsFilter)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected byte[]` | `marshal0(@Nullable Object obj)` Marshals object to byte array.
    `protected void` | `marshal0(@Nullable Object obj, OutputStream out)` Marshals object to the output stream.
    `void` | `onUndeploy(ClassLoader ldr)` Undeployment callback invoked when class loader is being undeployed.
    `String` | `toString()`
    `protected <T> T` | `unmarshal0(byte[] arr, @Nullable ClassLoader clsLdr)` Unmarshals object from byte array using given class loader.
    `protected <T> T` | `unmarshal0(InputStream in, @Nullable ClassLoader clsLdr)` Unmarshals object from the input stream using given class loader.

    - ### Methods inherited from class org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller

      `marshal, marshal, nodeName, unmarshal, unmarshal`

    - ### Methods inherited from class org.apache.ignite.marshaller.AbstractMarshaller

      `getContext, setContext`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT

          public static final JdkMarshaller DEFAULT

      Default instance.

  - ### Constructor Detail

    - #### JdkMarshaller

          public JdkMarshaller()

      Default constructor.

    - #### JdkMarshaller

          public JdkMarshaller(IgnitePredicate<String> clsFilter)

      Parameters:
        `clsFilter` - Class name filter.

  - ### Method Detail

    - #### marshal0

          protected void marshal0(@Nullable
                                  @Nullable Object obj,
                                  OutputStream out)
                           throws IgniteCheckedException

      Marshals object to the output stream. This method should not close given output stream.
      Specified by:
        `marshal0` in class `AbstractNodeNameAwareMarshaller`
      Parameters:
        `obj` - Object to marshal. `null` object will be marshaled to binary `null` representation.
        `out` - Output stream to marshal into.
      Throws:
        `IgniteCheckedException` - If marshalling failed.

    - #### marshal0

          protected byte[] marshal0(@Nullable
                                    @Nullable Object obj)
                             throws IgniteCheckedException

      Marshals object to byte array.
      Specified by:
        `marshal0` in class `AbstractNodeNameAwareMarshaller`
      Parameters:
        `obj` - Object to marshal. `null` object will be marshaled to binary `null` representation.
      Returns:
        Byte array.
      Throws:
        `IgniteCheckedException` - If marshalling failed.

    - #### unmarshal0

          protected <T> T unmarshal0(InputStream in,
                                     @Nullable
                                     @Nullable ClassLoader clsLdr)
                              throws IgniteCheckedException

      Unmarshals object from the input stream using given class loader. This method should not close given input stream.
      Specified by:
        `unmarshal0` in class `AbstractNodeNameAwareMarshaller`
      Type Parameters:
        `T` - Type of unmarshalled object.
      Parameters:
        `in` - Input stream.
        `clsLdr` - If not `null` then given class loader will be used for unmarshal object.
      Returns:
        Unmarshalled object.
      Throws:
        `IgniteCheckedException` - If unmarshalling failed.

    - #### unmarshal0

          protected <T> T unmarshal0(byte[] arr,
                                     @Nullable
                                     @Nullable ClassLoader clsLdr)
                              throws IgniteCheckedException

      Unmarshals object from byte array using given class loader.
      Specified by:
        `unmarshal0` in class `AbstractNodeNameAwareMarshaller`
      Type Parameters:
        `T` - Type of unmarshalled object.
      Parameters:
        `arr` - Byte array.
        `clsLdr` - If not `null` then given class loader will be used for unmarshal object.
      Returns:
        Unmarshalled object.
      Throws:
        `IgniteCheckedException` - If unmarshalling failed.

    - #### onUndeploy

          public void onUndeploy(ClassLoader ldr)

      Undeployment callback invoked when class loader is being undeployed. Some marshallers may want to clean their internal state that uses the undeployed class loader somehow.
      Specified by:
        `onUndeploy` in class `AbstractMarshaller`
      Parameters:
        `ldr` - Class loader being undeployed.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

${current.year} Copyright © Apache Software Foundation
| Follow @ApacheIgnite
Ignite Database and Caching Platform | : ver. 2.16.0
Release Date | : December 15 2023