=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2015-12-01 10:19:46 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2015-12-05 10:23:42 +0000 @@ -1748,75 +1748,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - === modified file 'dhis-2/dhis-services/dhis-service-eventreporting/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-eventreporting/src/main/resources/META-INF/dhis/beans.xml 2015-02-27 13:42:52 +0000 +++ dhis-2/dhis-services/dhis-service-eventreporting/src/main/resources/META-INF/dhis/beans.xml 2015-12-05 10:23:42 +0000 @@ -99,23 +99,10 @@ - - - - - - - - - - - - - + === modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/META-INF/dhis/beans.xml 2015-11-05 02:57:57 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/META-INF/dhis/beans.xml 2015-12-05 10:23:42 +0000 @@ -238,24 +238,6 @@ - - - - - - - - - - - - - - - - - - === modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DefaultDeletionManager.java' --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DefaultDeletionManager.java 2015-12-05 09:30:42 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DefaultDeletionManager.java 2015-12-05 10:23:42 +0000 @@ -30,15 +30,13 @@ import javassist.util.proxy.ProxyObject; -import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hisp.dhis.common.DeleteNotAllowedException; +import org.springframework.beans.factory.annotation.Autowired; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; import java.util.List; /** @@ -55,27 +53,28 @@ private static final String DELETE_METHOD_PREFIX = "delete"; private static final String ALLOW_METHOD_PREFIX = "allowDelete"; - private final List handlers = new ArrayList<>(); + /** + * Deletion handlers registered in context are subscribed to deletion + * notifications through auto-wiring. + */ + @Autowired(required = false) + private List deletionHandlers; // ------------------------------------------------------------------------- // DeletionManager implementation // ------------------------------------------------------------------------- @Override - public void addDeletionHandler( DeletionHandler handler ) - { - this.handlers.add( handler ); - } - - @Override - public void addDeletionHandlers( Collection deletionHandlers ) - { - this.handlers.addAll( deletionHandlers ); - } - - @Override public void execute( Object object ) { + if ( deletionHandlers == null || deletionHandlers.isEmpty() ) + { + log.info( "No deletion handlers registered, aborting deletion handling" ); + return; + } + + log.debug( "Deletion handlers detected: " + deletionHandlers.size() ); + Class clazz = getClazz( object ); String className = clazz.getSimpleName(); @@ -92,7 +91,7 @@ { Method allowMethod = DeletionHandler.class.getMethod( allowMethodName, new Class[]{ clazz } ); - for ( DeletionHandler handler : handlers ) + for ( DeletionHandler handler : deletionHandlers ) { currentHandler = handler.getClass().getSimpleName(); @@ -138,7 +137,7 @@ { Method deleteMethod = DeletionHandler.class.getMethod( deleteMethodName, new Class[]{ clazz } ); - for ( DeletionHandler handler : handlers ) + for ( DeletionHandler handler : deletionHandlers ) { currentHandler = handler.getClass().getSimpleName(); === modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionManager.java' --- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionManager.java 2015-01-17 07:41:26 +0000 +++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/deletion/DeletionManager.java 2015-12-05 10:23:42 +0000 @@ -28,19 +28,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.Collection; - /** * @author Lars Helge Overland - * @version $Id$ */ public interface DeletionManager { String ID = DeletionManager.class.getName(); - void addDeletionHandler( DeletionHandler handler ); - - void addDeletionHandlers( Collection handlers ); - void execute( Object object ); }