Search in sources :

Example 1 with CasRegisteredServicesLoadedEvent

use of org.apereo.cas.support.events.service.CasRegisteredServicesLoadedEvent in project cas by apereo.

the class DeleteResourceBasedRegisteredServiceWatcher method accept.

@Override
public void accept(final File file) {
    LOGGER.debug("Service definition [{}] was deleted. Reloading cache...", file);
    final RegisteredService service = serviceRegistryDao.getRegisteredServiceFromFile(file);
    if (service != null) {
        serviceRegistryDao.publishEvent(new CasRegisteredServicePreDeleteEvent(this, service));
        serviceRegistryDao.removeRegisteredService(service);
        LOGGER.debug("Successfully deleted service definition [{}]", service.getName());
        serviceRegistryDao.publishEvent(new CasRegisteredServiceDeletedEvent(this, service));
    } else {
        LOGGER.warn("Unable to locate a matching service definition from file [{}]. Reloading cache...", file);
        final List<RegisteredService> results = serviceRegistryDao.load();
        serviceRegistryDao.publishEvent(new CasRegisteredServicesLoadedEvent(this, results));
    }
}
Also used : RegisteredService(org.apereo.cas.services.RegisteredService) CasRegisteredServicePreDeleteEvent(org.apereo.cas.support.events.service.CasRegisteredServicePreDeleteEvent) CasRegisteredServiceDeletedEvent(org.apereo.cas.support.events.service.CasRegisteredServiceDeletedEvent) CasRegisteredServicesLoadedEvent(org.apereo.cas.support.events.service.CasRegisteredServicesLoadedEvent)

Example 2 with CasRegisteredServicesLoadedEvent

use of org.apereo.cas.support.events.service.CasRegisteredServicesLoadedEvent in project cas by apereo.

the class AbstractServicesManager method load.

/**
 * Load services that are provided by the DAO.
 */
@Scheduled(initialDelayString = "${cas.serviceRegistry.schedule.startDelay:20000}", fixedDelayString = "${cas.serviceRegistry.schedule.repeatInterval:60000}")
@Override
@PostConstruct
public void load() {
    LOGGER.debug("Loading services from [{}]", this.serviceRegistry);
    this.services = this.serviceRegistry.load().stream().collect(Collectors.toConcurrentMap(r -> {
        LOGGER.debug("Adding registered service [{}]", r.getServiceId());
        return r.getId();
    }, Function.identity(), (r, s) -> s == null ? r : s));
    loadInternal();
    publishEvent(new CasRegisteredServicesLoadedEvent(this, getAllServices()));
    evaluateExpiredServiceDefinitions();
    LOGGER.info("Loaded [{}] service(s) from [{}].", this.services.size(), this.serviceRegistry.getName());
}
Also used : CasRegisteredServicesLoadedEvent(org.apereo.cas.support.events.service.CasRegisteredServicesLoadedEvent) Scheduled(org.springframework.scheduling.annotation.Scheduled) PostConstruct(javax.annotation.PostConstruct)

Aggregations

CasRegisteredServicesLoadedEvent (org.apereo.cas.support.events.service.CasRegisteredServicesLoadedEvent)2 PostConstruct (javax.annotation.PostConstruct)1 RegisteredService (org.apereo.cas.services.RegisteredService)1 CasRegisteredServiceDeletedEvent (org.apereo.cas.support.events.service.CasRegisteredServiceDeletedEvent)1 CasRegisteredServicePreDeleteEvent (org.apereo.cas.support.events.service.CasRegisteredServicePreDeleteEvent)1 Scheduled (org.springframework.scheduling.annotation.Scheduled)1