Fork me on GitHub

Librairie Grubusiness

Introduction

Cette librairie met à disposition un modèle et des services pour les objets de la GRU.

Modèle, interface et services

La librairie met à disposition des objets globaux à la GRU :

  • Notification, une notification du workflow GRU
  • Demand, des informations sur le ticket GRU
  • Customer, des informations sur l'usager

Pour manipuler ces objets, un ensemble d'interface et de service sont présents :

  • IDemandDAO, une interface de DAO pour les Demand
  • IDemandListener, une interface qui est notifié à chaque opération sur Demand via le DemandService
  • INotificationDAO, une interface de DAO pour les Notification
  • INotificationListener, une interface qui est notifié à chaque opération sur Notification via le DemandService
  • DemandService, un service permettant de gérer les Demand et les Notification
  • ICustomerDAO, une interface de DAO pour les Customer
  • CustomerService, un service permettant de gérer les Customer
  • IIndexingService, une interface pour les indexations

Attention cette librairie n'a pas d'implémentation utilisable pour ces interfaces.

Configuration

La libraire a besoin d'avoir ces DAO et service de correctement configuré via les contexts Spring.

Le service DemandService met à disposition deux constructeurs. Le premier n'a besoin de recevoir que les implémentations des IDemandDAO et INotificationDAO. Le second a besoin des DAO ainsi que la liste des implémentations des IDemandListener et INotificationListener.

Le service CustomerService possède un unique constructeur nécessitant l'implémentation d'une ICustomerDAO.

Exemples de configuration spring

Configuration utilisant les objets définis dans le plugin plugin-notificationstore

    <bean id="notificationstore.demandDAO"  class="fr.paris.lutece.plugins.notificationstore.business.DemandDAO" />  
    <bean id="notificationstore.notificationDAO"  class="fr.paris.lutece.plugins.notificationstore.business.NotificationDAO" />
    <bean id="notificationstore.demandListener" class="fr.paris.lutece.plugins.notificationstore.business.listener.LogDemandListener" />
    <bean id="notificationstore.notificationListener" class="fr.paris.lutece.plugins.notificationstore.business.listener.LogNotificationListener" />
    <bean id="notificationstore.storageService" class="fr.paris.lutece.plugins.grubusiness.business.demand.DemandService">
      <constructor-arg ref="notificationstore.demandDAO" />
      <constructor-arg ref="notificationstore.notificationDAO" />
      <constructor-arg>
        <list>
          <ref bean="notificationstore.demandListener" />
        </list>
      </constructor-arg>
      <constructor-arg>
        <list>
          <ref bean="notificationstore.notificationListener" />
        </list>
      </constructor-arg>
    </bean>