private void scan()

in src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java [143:175]


    private void scan() {
        final ResourceResolver resolver = configuration.createResourceResolver();
        if ( resolver != null ) {
            try {
                logger.debug("Scanning for scheduled jobs...");
                final String path = this.configuration.getScheduledJobsPath(false);
                final Resource startResource = resolver.getResource(path);
                if ( startResource != null ) {
                    final Map<String, Holder> newScheduledJobs = new HashMap<String, Holder>();
                    synchronized ( this.scheduledJobs ) {
                        for(final Resource rsrc : startResource.getChildren()) {
                            if ( !isRunning.get() ) {
                                break;
                            }
                            handleAddOrUpdate(newScheduledJobs, rsrc);
                        }
                        if ( isRunning.get() ) {
                            for(final Holder h : this.scheduledJobs.values()) {
                                if ( h.info != null ) {
                                    this.jobScheduler.unscheduleJob(h.info);
                                }
                            }
                            this.scheduledJobs.clear();
                            this.scheduledJobs.putAll(newScheduledJobs);
                        }
                    }
                }
                logger.debug("Finished scanning for scheduled jobs...");
            } finally {
                resolver.close();
            }
        }
    }