Class IgniteReflectionFactory<T>

  • All Implemented Interfaces:
    Serializable, javax.cache.configuration.Factory<T>

    public class IgniteReflectionFactory<T>
    extends Object
    implements javax.cache.configuration.Factory<T>
    Factory implementation that use reflection to create instance of given class.

    There are 2 modes of factory: singleton and non-sigletton.

    Class that should be created by IgniteReflectionFactory (component class) have to be public java POJO with public setters for field for which property injection will be used (see setProperties(Map)).

    Configuration

    Mandatory

    The following configuration parameters are mandatory:
    • Component class - class to be created (see setComponentClass(Class). It have to be public java POJO class with default constructor and public setters to be used by properties injection (see setProperties(Map))

    Optional

    The following configuration parameters are optional:

    Java Example

     Factory factory =
         new IgniteReflectionFactory(MyCacheStoreSessionListener.class);
    
     CacheConfiguration cc = new CacheConfiguration()
         .setCacheStoreSessionListenerFactories(factory);
    
     IgniteConfiguration cfg = new IgniteConfiguration()
         .setCacheConfiguration(cc);
    
     // Start grid.
     Ignition.start(cfg);
     

    Spring Example

    TcpDiscoverySpi can be configured from Spring XML configuration file:
     <bean id="grid.custom.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
         ...
         <property name="cacheConfiguration">
             <list>
                 <bean class="org.apache.ignite.configuration.CacheConfiguration">
                     ...
                     <property name="cacheStoreSessionListenerFactories">
                         <list>
                             <bean class="org.apache.ignite.configuration.IgniteReflectionFactory">
                                 <property name="componentClass" value="custom.project.MyCacheStoreSessionListener"/>
                             </bean>
                         </list>
                     </property>
                     ...
                 </bean>
             </list>
         </property>
         ...
     </bean>
     


    For information about Spring framework visit www.springframework.org

    See Also:
    Factory, Serialized Form
    • Constructor Detail

      • IgniteReflectionFactory

        public IgniteReflectionFactory()
        Default constructor.
      • IgniteReflectionFactory

        public IgniteReflectionFactory​(Class<? extends T> cls,
                                       boolean singleton)
        Parameters:
        cls - Component class.
        singleton - Singleton flag.
      • IgniteReflectionFactory

        public IgniteReflectionFactory​(Class<? extends T> cls)
        Creates non-singleton component factory.
        Parameters:
        cls - Component class.
    • Method Detail

      • isSingleton

        public boolean isSingleton()
        Returns:
        True if factory is singleton.
      • setSingleton

        public void setSingleton​(boolean singleton)
        Parameters:
        singleton - Singleton flag.
      • getComponentClass

        public Class<? extends T> getComponentClass()
        Returns:
        Component class to create.
      • setComponentClass

        public void setComponentClass​(Class<T> cls)
        Parameters:
        cls - Component class to create.
      • getProperties

        public Map<String,​Serializable> getProperties()
        Gets a map of properties. Map contains entries of component class field name to value of the field which will be used as initial value.
        Returns:
        Properties.
      • setProperties

        public void setProperties​(Map<String,​Serializable> props)
        Sets a map of properties. Map contains entries of component class field name to a value of the field which will be used as initial value.
        Parameters:
        props - Properties.
      • create

        public T create()
        Specified by:
        create in interface javax.cache.configuration.Factory<T>