org.nuiton.wikitty.services
Class WikittyServiceNotifier

java.lang.Object
  extended by org.nuiton.wikitty.services.WikittyServiceDelegator
      extended by org.nuiton.wikitty.services.WikittyServiceNotifier
All Implemented Interfaces:
WikittyService

public class WikittyServiceNotifier
extends WikittyServiceDelegator

Wikitty service notifier. Currently based on jgroups.

Version:
$Revision: 1136 $ Last update : $Date: 2011-08-12 16:24:03 +0200 (Fri, 12 Aug 2011) $ By : $Author: tchemit $
Author:
chatellier

Nested Class Summary
static class WikittyServiceNotifier.EventPropagator
          Class used to notify remote listener.
static class WikittyServiceNotifier.EventThread
          Thread utilise pour envoyer les events.
static interface WikittyServiceNotifier.RemoteNotifierTransporter
          This interface must be implemented to send and received remote message.
 
Nested classes/interfaces inherited from interface org.nuiton.wikitty.WikittyService
WikittyService.ServiceListenerType
 
Field Summary
protected  org.nuiton.util.ListenerSet<WikittyListener> allWikittyServiceListeners
          Wikitty service listener (all event).
protected  WikittyServiceNotifier.EventThread eventThread
          thread utilise pour evoyer les events
protected  LinkedBlockingQueue<WikittyEvent> eventToSend
          Tous les events en attentent d'etre envoyer aux listeners
protected  org.nuiton.util.ListenerSet<WikittyListener> localWikittyServiceListeners
          Wikitty service listener (only for local event).
protected  WikittyListener notifier
          notifier
protected  org.nuiton.util.ListenerSet<WikittyListener> remoteWikittyServiceListeners
          Wikitty service listener (only for remote event).
 
Fields inherited from class org.nuiton.wikitty.services.WikittyServiceDelegator
delegate
 
Constructor Summary
WikittyServiceNotifier(org.nuiton.util.ApplicationConfig config, WikittyService ws, WikittyServiceNotifier.RemoteNotifierTransporter transporter)
          Constructor with configuration.
 
Method Summary
 void addWikittyServiceListener(WikittyListener listener, WikittyService.ServiceListenerType type)
          Add new wikitty service listener.
 WikittyEvent clear(String securityToken)
          Use with caution : It will delete ALL indexes from search engine !
 WikittyEvent delete(String securityToken, Collection<String> ids)
          Delete all object if id exists.
 WikittyEvent deleteExtension(String securityToken, Collection<String> extNames)
          Delete all extension if id exists and no wikitty used this extension.
 WikittyEvent deleteTree(String securityToken, String wikittyId)
          Delete specified tree node and all sub nodes.
protected  void finalize()
           
protected  void fireEvent(WikittyEvent event)
          Fire event to all registred listener.
 WikittyServiceNotifier.EventThread getEventThread()
          Retourne le dernier thread utiliser pour envoyer les events.
 void processRemoteEvent(WikittyEvent event)
          fire event passed in argument.
 void removeWikittyServiceListener(WikittyListener listener, WikittyService.ServiceListenerType type)
          Remove wikitty service listener.
 WikittyEvent replay(String securityToken, List<WikittyEvent> events, boolean force)
          Replay all events in argument on this WikittyService
 WikittyEvent store(String securityToken, Collection<Wikitty> wikitties, boolean force)
          Manage Update and creation.
 WikittyEvent storeExtension(String securityToken, Collection<WikittyExtension> exts)
          Manage Update and creation
 
Methods inherited from class org.nuiton.wikitty.services.WikittyServiceDelegator
canDelete, canRead, canWrite, exists, findAllByCriteria, findAllByQuery, findByCriteria, findByQuery, findTreeNode, findTreeNode, getAllExtensionIds, getAllExtensionsRequires, getDelegate, isDeleted, login, logout, restore, restoreExtension, restoreExtensionAndDependenciesLastVesion, restoreExtensionLastVersion, restoreVersion, setDelegate, syncSearchEngine
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

allWikittyServiceListeners

protected org.nuiton.util.ListenerSet<WikittyListener> allWikittyServiceListeners
Wikitty service listener (all event).


localWikittyServiceListeners

protected org.nuiton.util.ListenerSet<WikittyListener> localWikittyServiceListeners
Wikitty service listener (only for local event).


remoteWikittyServiceListeners

protected org.nuiton.util.ListenerSet<WikittyListener> remoteWikittyServiceListeners
Wikitty service listener (only for remote event).


notifier

protected WikittyListener notifier
notifier


eventToSend

protected LinkedBlockingQueue<WikittyEvent> eventToSend
Tous les events en attentent d'etre envoyer aux listeners


eventThread

protected WikittyServiceNotifier.EventThread eventThread
thread utilise pour evoyer les events

Constructor Detail

WikittyServiceNotifier

public WikittyServiceNotifier(org.nuiton.util.ApplicationConfig config,
                              WikittyService ws,
                              WikittyServiceNotifier.RemoteNotifierTransporter transporter)
Constructor with configuration.

Parameters:
config - config to use
ws - delegate service
transporter - transporter to use for remote event (listen or propagate). this transporter can be null if we don't want propagate or listen remote event
Method Detail

addWikittyServiceListener

public void addWikittyServiceListener(WikittyListener listener,
                                      WikittyService.ServiceListenerType type)
Description copied from interface: WikittyService
Add new wikitty service listener. Warning, listener is referenced as WeakReference, but sure to another reference to work.

Specified by:
addWikittyServiceListener in interface WikittyService
Overrides:
addWikittyServiceListener in class WikittyServiceDelegator
Parameters:
listener - listener to add
type - type of event to listen
See Also:
WikittyService.ServiceListenerType

removeWikittyServiceListener

public void removeWikittyServiceListener(WikittyListener listener,
                                         WikittyService.ServiceListenerType type)
Description copied from interface: WikittyService
Remove wikitty service listener. Warning, listener is referenced as WeakReference, but sure to another reference to work.

Specified by:
removeWikittyServiceListener in interface WikittyService
Overrides:
removeWikittyServiceListener in class WikittyServiceDelegator
Parameters:
listener - listener to remove
type - type of event to listen
See Also:
WikittyService.ServiceListenerType

clear

public WikittyEvent clear(String securityToken)
Description copied from interface: WikittyService
Use with caution : It will delete ALL indexes from search engine ! This operation should be disabled in production environment.

Specified by:
clear in interface WikittyService
Overrides:
clear in class WikittyServiceDelegator
Parameters:
securityToken - security token

store

public WikittyEvent store(String securityToken,
                          Collection<Wikitty> wikitties,
                          boolean force)
Description copied from interface: WikittyService
Manage Update and creation.

Specified by:
store in interface WikittyService
Overrides:
store in class WikittyServiceDelegator
Parameters:
securityToken - security token
wikitties - list of wikitty to be persisted
force - boolean force non version version increment on saved wikitty or force version on wikitty creation (version 0.0)
Returns:
update response

storeExtension

public WikittyEvent storeExtension(String securityToken,
                                   Collection<WikittyExtension> exts)
Description copied from interface: WikittyService
Manage Update and creation

Specified by:
storeExtension in interface WikittyService
Overrides:
storeExtension in class WikittyServiceDelegator
Parameters:
securityToken - security token
exts - list of wikitty extension to be persisted
Returns:
update response

deleteExtension

public WikittyEvent deleteExtension(String securityToken,
                                    Collection<String> extNames)
Description copied from interface: WikittyService
Delete all extension if id exists and no wikitty used this extension. extension name must be just the name (extName)

Specified by:
deleteExtension in interface WikittyService
Overrides:
deleteExtension in class WikittyServiceDelegator
Parameters:
securityToken - security token
extNames - extension's names to remove

delete

public WikittyEvent delete(String securityToken,
                           Collection<String> ids)
Description copied from interface: WikittyService
Delete all object if id exists.

Specified by:
delete in interface WikittyService
Overrides:
delete in class WikittyServiceDelegator
Parameters:
securityToken - security token
ids - object's ids to remove

deleteTree

public WikittyEvent deleteTree(String securityToken,
                               String wikittyId)
Description copied from interface: WikittyService
Delete specified tree node and all sub nodes.

Specified by:
deleteTree in interface WikittyService
Overrides:
deleteTree in class WikittyServiceDelegator
Parameters:
securityToken - security token
wikittyId - tree node id to delete
Returns:
delete wikitty ids

replay

public WikittyEvent replay(String securityToken,
                           List<WikittyEvent> events,
                           boolean force)
Description copied from interface: WikittyService
Replay all events in argument on this WikittyService

Specified by:
replay in interface WikittyService
Overrides:
replay in class WikittyServiceDelegator
Parameters:
securityToken - security token
events - event to replay
force - for to not change wikitty version (use version in wikitty present in event)
Returns:
new event that represent all event passed in argument. if arguement have: store, store, delete, clear, store. Return event resume all by only one clear + store, because all action before clear is not necessary. Similarly for store + delete for the same object. (note: perhaps this broke history, when history are implanted and two serveur must have same history ?)

fireEvent

protected void fireEvent(WikittyEvent event)
Fire event to all registred listener. Take care about WikittyEvent.isRemote() for fire.

Parameters:
event - event to fire

processRemoteEvent

public void processRemoteEvent(WikittyEvent event)
fire event passed in argument. Before fire, change source to current WikittyServiceNotifier and set remote event to true.


getEventThread

public WikittyServiceNotifier.EventThread getEventThread()
Retourne le dernier thread utiliser pour envoyer les events.

Returns:

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable


Copyright © 2009-2012 CodeLutin. All Rights Reserved.