1 21 package com.jaspersoft.jasperserver.api.engine.scheduling; 22 23 import org.springframework.beans.BeansException; 24 import org.springframework.beans.factory.InitializingBean; 25 import org.springframework.context.ApplicationContext; 26 import org.springframework.context.ApplicationContextAware; 27 28 import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryEventListener; 29 import com.jaspersoft.jasperserver.api.metadata.common.service.RepositoryEventListenerRegistry; 30 import com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit; 31 32 36 public class SchedulingReportDeleteListener implements RepositoryEventListener, ApplicationContextAware, InitializingBean { 37 38 private String schedulingInternalServiceBeanName; 39 private RepositoryEventListenerRegistry registry; 40 private ApplicationContext applicationContext; 41 42 public String getSchedulingInternalServiceBeanName() { 43 return schedulingInternalServiceBeanName; 44 } 45 46 public void setSchedulingInternalServiceBeanName(String schedulingServiceBeanName) { 47 this.schedulingInternalServiceBeanName = schedulingServiceBeanName; 48 } 49 50 public RepositoryEventListenerRegistry getRegistry() { 51 return registry; 52 } 53 54 public void setRegistry(RepositoryEventListenerRegistry registry) { 55 this.registry = registry; 56 } 57 58 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { 59 this.applicationContext = applicationContext; 60 } 61 62 public void afterPropertiesSet() { 63 getRegistry().registerListener(this); 64 } 65 66 public void onResourceDelete(Class resourceItf, String resourceURI) { 67 if (ReportUnit.class.isAssignableFrom(resourceItf)) { 68 ReportSchedulingInternalService schedulingService = (ReportSchedulingInternalService) applicationContext.getBean(getSchedulingInternalServiceBeanName()); 69 schedulingService.removeReportUnitJobs(resourceURI); 70 } 71 } 72 73 } 74 | Popular Tags |