Rename the methods PublicationService#removePublication and NodeService#removeNode to respectively PublicationService#deletePublication and NodeService#deleteNode as these methodds delete definitively the contribution. This is to introduce a new state to these contribution types: the removal one.
Add a new business function for the publications and the nodes: the removal. The function marks the publication or the node as being removed; it is an intermediate state of the contribution before their definitive deletion. This new state is dedicated to the applications like Kmelia in which these contributions can be placed into a bin in order to be either restored or deleted.
For doing add two new attributes in PublicationDetail and in NodeDetail classes: removalDate and removerId for respectively the date of the contribution removal and the unique identifier of the user invoking this removal. Corresponding to these attributes, add the SQL fields. Latter will drive to a new database migration step for the publications and for the nodes.
Take into account the new properties, removalDate and removerId, in NodeDetails and in PublicationDetails, in the persistence of these objects.
Refactor PublicationDAO to be managed bean instead of a static class.
WAComponentRegistry is now the more priority initialization service; it will be then executed (to load all the available Silverpeas apps) among the first important initialization services.
Add the KmeliaBinsScheduledPurger to purge periodically the all the bins of the different Kmelia instances of the items (both publications and topics) that have been removed (place in the bin) at a date older than a given delay in days. The recurrence of the task and the delay are set in the org/silverpeas/kmelia/settings/kmeliaSettings.properties configuration file.
Take into account the PublicatonService#removePublication and NodeService#removeNode are renamed to PublicationService#deletePublication and NodeService#deleteNode.
Take use of the new removal state for publication and node when such a contribution is put in the bin or restored from the bin in Kmelia.
In Kmelia, take into account topics and publications can be moved or copied from/to bins in the same or in another Kmelia instances; their removal status have to be modified consequently of the move or copy operation.
In the Kmelia bin purger, take into account of the removal properties of both NodeDetails and PublicationDetails. For all publications and nodes previously removed (put in the bin) before this feature, the purger will erase them automatically (we don't know their removal date so, as such, we make the assumption their deletion are older than the purge delay setting). Fix a bug with the Kmelia instance ids: globalize them to be taken by NodeService and PublicationService to identify the nodes and the publications in the different Kmelia instances.