Class SpaceDeployment

java.lang.Object
org.openspaces.admin.space.SpaceDeployment
All Implemented Interfaces:
ProcessingUnitDeploymentTopology

public class SpaceDeployment extends Object implements ProcessingUnitDeploymentTopology
A deployment of a pure Space processing unit (comes built in under [GS ROOT]/deploy/templates/datagrid).
Author:
kimchy
See Also:
  • Constructor Details

    • SpaceDeployment

      public SpaceDeployment(String spaceName)
      Constructs a new Space deployment with the space name that will be created (it will also be the processing unit name).
  • Method Details

    • getSpaceName

      @Deprecated public String getSpaceName()
      Deprecated.
      Returns the Space name of the config.set Use SpaceConfig.getName() instead
    • partitioned

      public SpaceDeployment partitioned(int numberOfPartitions, int numberOfBackups)
      A convenient method allowing to easily configure the space deployment to deploy a Partitioned topology with numberOfParitions instances each with numberOfBackups.

      Exactly the same like calling clusterSchema("partitioned"), followed by numberOfInstances(numberOfParitions) and numberOfBackups(numberOfBackups).

      Parameters:
      numberOfPartitions - The number of partitions
      numberOfBackups - The number of backups
      Returns:
      This space deployment
    • replicated

      public SpaceDeployment replicated(boolean async, int numberOfInstances)
      A convenient method allowing to easily configure the space deployment to deploy a replicated (either sync or async) topology with numberOfInstances instances.

      Exactly the same like calling clusterSchema("sync_replicated") or clusterSchema("async_replicated"), followed by numberOfInstances(numberOfInstances) and numberOfBackups(0).

      Parameters:
      numberOfInstances - The number of instances to form the replicated space
      Returns:
      This space deployment
    • clusterSchema

      public SpaceDeployment clusterSchema(String clusterSchema)
      Sets the cluster schema of the Space.
      See Also:
    • numberOfInstances

      public SpaceDeployment numberOfInstances(int numberOfInstances)
      Sets the number of instances of the space config.set
    • numberOfBackups

      public SpaceDeployment numberOfBackups(int numberOfBackups)
      Sets the number of backups per instance of the space config.set
    • requiresIsolation

      public SpaceDeployment requiresIsolation(boolean requiresIsolation)
    • maxInstancesPerVM

      public SpaceDeployment maxInstancesPerVM(int maxInstancesPerVM)
      Sets the maximum number of instances per virtual machine.

      On partitioned topology with backups topology, controls that a primary and a backup won't run on the same virtual machine if set to 1.

      On a non partitioned with backups topology, controls the maximum number of instances running on the same virtual machine.

    • maxInstancesPerMachine

      public SpaceDeployment maxInstancesPerMachine(int maxInstancesPerMachine)
      Sets the maximum number of instances per machine.

      On partitioned topology with backups topology, controls that a primary and a backup won't run on the same machine if set to 1.

      On a non partitioned with backups topology, controls the maximum number of instances running on the same machine.

    • maxInstancesPerZone

      public SpaceDeployment maxInstancesPerZone(String zone, int maxInstancesPerZone)
      Sets the maximum number of instances per zone.

      On partitioned topology with backups topology, controls that a primary and a backup won't run on the same zone if set to 1. Note, for each zone this will have to be set.

      On a non partitioned with backups topology, controls the maximum number of instances running on the same zone.

    • addZone

      public SpaceDeployment addZone(String zone)
      Adds a zone where the processing unit is allowed to be deployed on.
    • primaryZone

      public SpaceDeployment primaryZone(String zone)
      Set the primary zone where the processing unit is allowed to be deployed on.
    • setContextProperty

      public SpaceDeployment setContextProperty(String key, String value)
      Sets a context deploy time property overriding any ${...} defined within a processing unit configuration.
    • setEnvironmentVariable

      public SpaceDeployment setEnvironmentVariable(String key, String value)
    • secured

      public SpaceDeployment secured(boolean secured)
      Will deploy a secured space. Note, by setting user details the space will be secured automatically.
      Specified by:
      secured in interface ProcessingUnitDeploymentTopology
    • userDetails

      public SpaceDeployment userDetails(UserDetails userDetails)
      Advance: Sets the security user details for authentication and autherization of the processing unit.
      Specified by:
      userDetails in interface ProcessingUnitDeploymentTopology
    • userDetails

      public SpaceDeployment userDetails(String userName, String password)
      Sets the user name and password (effectively making the processing unit secured) for the processing unit config.set
      Specified by:
      userDetails in interface ProcessingUnitDeploymentTopology
    • slaLocation

      public SpaceDeployment slaLocation(String slaLocation)
      Sets an external SLA definition location to be loaded.
    • slaLocation

      public SpaceDeployment slaLocation(File slaLocation)
      Sets an external SLA definition location to be loaded.
    • addDependencies

      public SpaceDeployment addDependencies(ProcessingUnitDetailedDependencies<? extends ProcessingUnitDependency> deploymentDependencies)
      Postpones deployment of processing unit instances until the specified dependencies are met. The following example postpones the deployment of this processing unit until B has completed the deployment and C has at least one instance deployed. config.setaddDependencies(new ProcessingUnitDeploymentDependenciesConfigurer().dependsOnDeployment("B").dependsOnMinimumNumberOfDeployedInstances("C",1).create())
      Specified by:
      addDependencies in interface ProcessingUnitDeploymentTopology
      Since:
      8.0.6
      See Also:
    • addDependency

      public SpaceDeployment addDependency(String requiredProcessingUnitName)
      Postpones deployment of processing unit instances deployment until the specified processing unit deployment is complete. Same as: config.setaddDependencies(new ProcessingUnitDeploymentDependenciesConfigurer().dependsOnDeployment(requiredProcessingUnitName).create())
      Specified by:
      addDependency in interface ProcessingUnitDeploymentTopology
      Since:
      8.0.6
    • create

      public ProcessingUnitConfigHolder create()
      Description copied from interface: ProcessingUnitDeploymentTopology
      Converts this fluent API object to a lazy implementation of ProcessingUnitConfig
      Specified by:
      create in interface ProcessingUnitDeploymentTopology