Class ServiceBinderImpl

java.lang.Object
org.apache.tapestry5.ioc.internal.ServiceBinderImpl
All Implemented Interfaces:
ServiceBinder, ServiceBindingOptions

  • Constructor Details

  • Method Details

    • finish

      public void finish()
    • flush

      protected void flush()
    • bind

      public <T> ServiceBindingOptions bind(Class<T> serviceClass)
      Description copied from interface: ServiceBinder
      Binds the service interface to a conventionally named service implementation class or defines a service in terms of an implementation class, without a service interface.

      The conventional name for the service implementation class is the same as the name of the service interface with "Impl" appended. For example, bind(Service.class) will implicitly attempt to bind to ServiceImpl.class. Use ServiceBinder.bind(Class, Class) if the name of the service implementation class does not follow the convention.

      In case the service is defined through the implementation class, the service will not be proxiable (proxying requires a service interface) and ServiceDef.getServiceInterface() will return the implementation class. In this situation, the service will not be proxied; it will be instantiated fully on first reference (ignoring its scope, if any) and will not be decorated.

      Specified by:
      bind in interface ServiceBinder
      Parameters:
      serviceClass - service interface class to bind implicitly or implementation class to instantiate as the service
      Returns:
      binding options, used to specify additional details about the service
      See Also:
    • bind

      public <T> ServiceBindingOptions bind(Class<T> serviceInterface, ServiceBuilder<T> builder)
      Description copied from interface: ServiceBinder
      Alternative implementation that supports a callback to build the service, rather than instantiating a particular class.
      Specified by:
      bind in interface ServiceBinder
      Parameters:
      serviceInterface - interface implemented by the service
      builder - constructs the core service implementation
      Returns:
      binding options, used to specify additional details about the service
    • bind

      public <T> ServiceBindingOptions bind(Class<T> serviceInterface, Class<? extends T> serviceImplementation)
      Description copied from interface: ServiceBinder
      Binds the service interface to a service implementation class. The default service name is the unqualified name of the service interface. The default service scope is "singleton", unless the service implementation class includes the Scope annotation.

      The service implementation class may be omitted (in other words, ServiceBinder.bind(Class) used instead) if the name of the service implementation class is the same as the name of the service interface with "Impl" appended.

      Specified by:
      bind in interface ServiceBinder
      Parameters:
      serviceInterface - service interface (used when locating services, and when building proxies)
      serviceImplementation - implementation class that implements the service interface
      Returns:
      binding options, used to specify additional details about the service
      See Also:
    • eagerLoad

      Description copied from interface: ServiceBindingOptions
      Turns eager loading on for this service. This may also be accomplished using the EagerLoad annotation on the service implementation class.
      Specified by:
      eagerLoad in interface ServiceBindingOptions
      Returns:
      this binding options, for further configuration
    • preventDecoration

      Description copied from interface: ServiceBindingOptions
      Disallows service decoration for this service.
      Specified by:
      preventDecoration in interface ServiceBindingOptions
      Returns:
      this binding options, for further configuration
    • preventReloading

      Description copied from interface: ServiceBindingOptions
      Identifies a service for which live class reloading is not desired. This primarily applies to certain internal Tapestry services, and is necessary during the development of Tapestry itself. In user applications, services defined in library modules are not subject to reloading because the class files are stored in JARs, not as local file system files.
      Specified by:
      preventReloading in interface ServiceBindingOptions
    • withId

      Description copied from interface: ServiceBindingOptions
      Allows a specific service id for the service to be provided, rather than the default (from the service interface). This is useful when multiple services implement the same interface, since service ids must be unique.
      Specified by:
      withId in interface ServiceBindingOptions
      Returns:
      this binding options, for further configuration
    • withSimpleId

      Description copied from interface: ServiceBindingOptions
      Uses the the simple (unqualified) class name of the implementation class as the id of the service.
      Specified by:
      withSimpleId in interface ServiceBindingOptions
      Returns:
      this binding options, for further configuration
    • scope

      Description copied from interface: ServiceBindingOptions
      Sets the scope of the service, overriding the Scope annotation on the service implementation class.
      Specified by:
      scope in interface ServiceBindingOptions
      Returns:
      this binding options, for further configuration
      See Also:
    • withMarker

      public ServiceBindingOptions withMarker(Class<? extends Annotation>... marker)
      Description copied from interface: ServiceBindingOptions
      Defines the marker interface(s) for the service, used to connect injections by type at the point of injection with a particular service implementation, based on the intersection of type and marker interface. The containing module will sometimes provide a set of default marker annotations for all services within the module, this method allows that default to be extended.
      Specified by:
      withMarker in interface ServiceBindingOptions
      Parameters:
      marker - one or more markers to add
      Returns:
      this binding options, for further configuration