ActivationInstantiator (Java SE 14 & JDK 14)
Description: declaration: module: java.rmi, package: java.rmi.activation, interface: ActivationInstantiator
Keywords: java.rmi.activation.ActivationInstantiator interface

Module java.rmi
Package java.rmi.activation

# Interface ActivationInstantiator

All Superinterfaces:
  `Remote`

All Known Implementing Classes:
  `ActivationGroup`, `ActivationGroup_Stub`

    public interface ActivationInstantiator
    extends Remote

An `ActivationInstantiator` is responsible for creating instances of "activatable" objects. A concrete subclass of `ActivationGroup` implements the `newInstance` method to handle creating objects within the group.

Since:
  1.2
See Also:
  `ActivationGroup`

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `MarshalledObject<? extends Remote>` | `newInstance​(ActivationID id, ActivationDesc desc)` | The activator calls an instantiator's `newInstance` method in order to recreate in that group an object with the activation identifier, `id`, and descriptor, `desc`.

- ## Method Details

  - ### newInstance

    MarshalledObject<? extends Remote> newInstance​(ActivationID id, ActivationDesc desc) throws ActivationException, RemoteException
    The activator calls an instantiator's `newInstance` method in order to recreate in that group an object with the activation identifier, `id`, and descriptor, `desc`. The instantiator is responsible for:
    - determining the class for the object using the descriptor's `getClassName` method,
    - loading the class from the code location obtained from the descriptor (using the `getLocation` method),
    - creating an instance of the class by invoking the special "activation" constructor of the object's class that takes two arguments: the object's `ActivationID`, and the `MarshalledObject` containing object specific initialization data, and
    - returning a MarshalledObject containing the stub for the remote object it created.

    In order for activation to be successful, one of the following requirements must be met, otherwise `ActivationException` is thrown:

    - The class to be activated and the special activation constructor are both public, and the class resides in a package that is exported to at least the `java.rmi` module; or
    - The class to be activated resides in a package that is open to at least the `java.rmi` module.
    Parameters:
      `id` - the object's activation identifier
      `desc` - the object's descriptor
    Returns:
      a marshalled object containing the serialized representation of remote object's stub
    Throws:
      `ActivationException` - if object activation fails
      `RemoteException` - if remote call fails
    Since:
      1.2