Package org.apache.tapestry5.ioc

## Interface ServiceLifecycle

- All Known Subinterfaces:
    `ServiceLifecycle2`
  All Known Implementing Classes:
    `PerThreadServiceLifecycle`, `SingletonServiceLifecycle`

      public interface ServiceLifecycle

  Allows certain types of lifecycles to control exactly how services are instantiated.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `createService​(ServiceResources resources, ObjectCreator creator)` | Returns the same creator, or a new one, that encapsulates the creation of the core service implementation.
    `boolean` | `isSingleton()` | Returns true if the lifecycle is a singleton (a service that will only be created once).

- - ### Method Detail

    - #### createService

          Object createService​(ServiceResources resources,
                               ObjectCreator creator)

      Returns the same creator, or a new one, that encapsulates the creation of the core service implementation.
      Parameters:
        `resources` - source of information about the service to be created, and source of additional services or other resources that may be needed when constructing the core service implementation
        `creator` - object capable of creating the service implementation on demand. This is a wrapper around the service's builder method.
      Returns:
        the service or equivalent service proxy

    - #### isSingleton

          boolean isSingleton()

      Returns true if the lifecycle is a singleton (a service that will only be created once). Return false if the underlying service instance may be created multiple times (for example, the `ScopeConstants.PERTHREAD` scope}. A future version of Tapestry IoC may optimize for the later case.
      Returns:
        true for singletons, false for services that can be repeatedly constructed