Cette librairie fournit des services pour envoyer des notifications à la GRU.
Le service principal est fr.paris.lutece.plugins.librarynotifygru.services.NotificationService, qui envoie un objet fr.paris.lutece.plugins.grubusiness.business.notification.Notification (voir la javadoc pour plus de détails sur cet objet).
Il requiert une implémentation de fr.paris.lutece.plugins.librarynotifygru.services.INotificationTransportProvider pour définir le transport HTTP. Deux implémentations de cette interface sont présentes dans cette librairie :
Ces deux implémentations ont besoin de la définition de l'URL vers le service de notification. Cette URL est stockée dans l'attribut notificationEndPoint. L'implémentation NotificationTransportApiManagerRest a besoin de propriétés supplémentaires.
Premièrement, définir le bean pour le transport HTTP à utiliser :
Ensuite, définir le bean pour le service NotificationService :
Voici un exemple de configuration Spring avec le transport HTTP NotificationTransportRest :
<bean id="lib-notifygru.simpleTransport" class="fr.paris.lutece.plugins.librarynotifygru.rs.service.NotificationTransportRest"> <property name="notificationEndPoint"> <value>http://mydomain.com/url/to/notification</value> </property> </bean> <bean id="lib-notifygru.notificationService" class="fr.paris.lutece.plugins.librarynotifygru.services.NotificationService"> <constructor-arg ref="lib-notifygru.simpleTransport"/> </bean>
Voici un exemple de configuration Spring avec le transport HTTP NotificationTransportApiManagerRest :
<bean id="lib-notifygru.apiManagerTransport" class="fr.paris.lutece.plugins.librarynotifygru.rs.service.NotificationTransportApiManagerRest"> <property name="notificationEndPoint"> <value>http://mydomain.com/url/to/apimanager/api/notification</value> </property> <property name="apiManagerEndPoint"> <value>http://mydomain.com/url/to/apimanager/token</value> </property> <property name="apiManagerCredentials"> <value>your_private_key</value> </property> </bean> <bean id="lib-notifygru.notificationService" class="fr.paris.lutece.plugins.librarynotifygru.services.NotificationService"> <constructor-arg ref="lib-notifygru.apiManagerTransport"/> </bean>
Le service peut être directement créé dans le code Java. Voici un exemple avec le transport HTTP NotificationTransportApiManagerRest (le même mécanisme peut être appliqué pour le transport HTTP NotificationTransportRest).
Premièrement, définir les clés suivantes dans un fichier de propriétés :
myplugin.endpoint.notification=http://mydomain.com/url/to/apimanager/api/notification myplugin.endpoint.token=http://mydomain.com/url/to/apimanager/token myplugin.apimanager.credentials=your_private_key
Ensuite, ajouter le code suivant dans le code Java :
private static final String PROPERTY_ENDPOINT_NOTIFICATION = "myplugin.endpoint.notification"; private static final String PROPERTY_ENDPOINT_TOKEN = "myplugin.endpoint.token"; private static final String PROPERTY_APIMANAGER_CREDENTIALS = "myplugin.apimanager.credentials"; ... NotificationTransportApiManagerRest apiManagerTransport = new NotificationTransportApiManagerRest( ); apiManagerTransport.setNotificationEndPoint( AppPropertiesService.getProperty( PROPERTY_ENDPOINT_NOTIFICATION ) ); apiManagerTransport.setApiManagerEndPoint( AppPropertiesService.getProperty( PROPERTY_ENDPOINT_TOKEN ) ); apiManagerTransport.setApiManagerCredentials( AppPropertiesService.getProperty( PROPERTY_APIMANAGER_CREDENTIALS ) ); NotificationService notificationService = new NotificationService( apiManagerTransport );