Author: cziegeler Date: Tue Sep 20 14:53:16 2016 New Revision: 1761587 URL: http://svn.apache.org/viewvc?rev=1761587&view=rev Log: SLING-5997 : JobManagerImpl should move to new ResourceChangeListener API
Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Queue.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Statistics.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/package-info.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java Tue Sep 20 14:53:16 2016 @@ -21,7 +21,9 @@ package org.apache.sling.event.impl.jobs import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; +import java.util.Dictionary; import java.util.HashMap; +import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -34,12 +36,13 @@ import org.apache.felix.scr.annotations. import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.Service; import org.apache.jackrabbit.util.ISO9075; -import org.apache.sling.api.SlingConstants; import org.apache.sling.api.resource.LoginException; import org.apache.sling.api.resource.PersistenceException; import org.apache.sling.api.resource.QuerySyntaxException; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.api.resource.observation.ResourceChange; +import org.apache.sling.api.resource.observation.ResourceChangeListener; import org.apache.sling.commons.scheduler.Scheduler; import org.apache.sling.commons.threads.ThreadPoolManager; import org.apache.sling.event.impl.jobs.config.JobManagerConfiguration; @@ -63,6 +66,9 @@ import org.apache.sling.event.jobs.Sched import org.apache.sling.event.jobs.Statistics; import org.apache.sling.event.jobs.TopicStatistics; import org.apache.sling.event.jobs.jmx.QueuesMBean; +import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; +import org.osgi.framework.ServiceRegistration; import org.osgi.service.event.Event; import org.osgi.service.event.EventAdmin; import org.osgi.service.event.EventConstants; @@ -80,10 +86,7 @@ import org.slf4j.LoggerFactory; @Property(name="scheduler.period", longValue=60), @Property(name="scheduler.concurrent", boolValue=false), @Property(name=EventConstants.EVENT_TOPIC, - value={SlingConstants.TOPIC_RESOURCE_ADDED, - SlingConstants.TOPIC_RESOURCE_CHANGED, - SlingConstants.TOPIC_RESOURCE_REMOVED, - ResourceHelper.BUNDLE_EVENT_STARTED, + value={ResourceHelper.BUNDLE_EVENT_STARTED, ResourceHelper.BUNDLE_EVENT_UPDATED}) }) public class JobManagerImpl @@ -122,15 +125,27 @@ public class JobManagerImpl /** Job Scheduler. */ private org.apache.sling.event.impl.jobs.scheduling.JobSchedulerImpl jobScheduler; + private volatile ServiceRegistration<ResourceChangeListener> changeListenerReg; + /** * Activate this component. * @param props Configuration properties */ @Activate - protected void activate(final Map<String, Object> props) throws LoginException { + protected void activate(final BundleContext ctx, final Map<String, Object> props) throws LoginException { this.jobScheduler = new org.apache.sling.event.impl.jobs.scheduling.JobSchedulerImpl(this.configuration, this.scheduler, this); this.maintenanceTask = new CleanUpTask(this.configuration, this.jobScheduler); + final Dictionary<String, Object> regProps = new Hashtable<>(); + regProps.put(ResourceChangeListener.PATHS, this.configuration.getScheduledJobsPath(false)); + regProps.put(ResourceChangeListener.CHANGES, new String[] { + ResourceChange.ChangeType.ADDED.name(), + ResourceChange.ChangeType.CHANGED.name(), + ResourceChange.ChangeType.REMOVED.name() + }); + regProps.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation"); + regProps.put(Constants.SERVICE_DESCRIPTION, "Resource change listener for scheduled jobs"); + this.changeListenerReg = ctx.registerService(ResourceChangeListener.class, this.jobScheduler, regProps); logger.info("Apache Sling Job Manager started on instance {}", Environment.APPLICATION_ID); } @@ -141,6 +156,11 @@ public class JobManagerImpl protected void deactivate() { logger.debug("Apache Sling Job Manager stopping on instance {}", Environment.APPLICATION_ID); + if ( this.changeListenerReg != null ) { + this.changeListenerReg.unregister(); + this.changeListenerReg = null; + } + this.jobScheduler.deactivate(); this.maintenanceTask = null; Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java Tue Sep 20 14:53:16 2016 @@ -27,11 +27,13 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; -import org.apache.sling.api.SlingConstants; import org.apache.sling.api.resource.ModifiableValueMap; import org.apache.sling.api.resource.PersistenceException; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.api.resource.observation.ExternalResourceChangeListener; +import org.apache.sling.api.resource.observation.ResourceChange; +import org.apache.sling.api.resource.observation.ResourceChangeListener; import org.apache.sling.commons.scheduler.JobContext; import org.apache.sling.commons.scheduler.ScheduleOptions; import org.apache.sling.commons.scheduler.Scheduler; @@ -47,7 +49,6 @@ import org.apache.sling.event.jobs.Sched import org.apache.sling.event.jobs.ScheduleInfo.ScheduleType; import org.apache.sling.event.jobs.ScheduledJobInfo; import org.osgi.service.event.Event; -import org.osgi.service.event.EventHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -60,8 +61,8 @@ import org.slf4j.LoggerFactory; * the events to this service. */ public class JobSchedulerImpl - implements EventHandler, - ConfigurationChangeListener, + implements ConfigurationChangeListener, + ResourceChangeListener, ExternalResourceChangeListener, org.apache.sling.commons.scheduler.Job { private static final String PROPERTY_READ_JOB = "properties"; @@ -319,25 +320,10 @@ public class JobSchedulerImpl /** * @see org.osgi.service.event.EventHandler#handleEvent(org.osgi.service.event.Event) */ - @Override public void handleEvent(final Event event) { if ( ResourceHelper.BUNDLE_EVENT_STARTED.equals(event.getTopic()) || ResourceHelper.BUNDLE_EVENT_UPDATED.equals(event.getTopic()) ) { this.scheduledJobHandler.bundleEvent(); - } else { - // resource event - final String path = (String)event.getProperty(SlingConstants.PROPERTY_PATH); - if ( path != null && path.startsWith(this.configuration.getScheduledJobsPath(true)) ) { - if ( SlingConstants.TOPIC_RESOURCE_REMOVED.equals(event.getTopic()) ) { - // removal - logger.debug("Remove scheduled job {}, event {}", path, event.getTopic()); - this.scheduledJobHandler.handleRemove(path); - } else { - // add or update - logger.debug("Add or update scheduled job {}, event {}", path, event.getTopic()); - this.scheduledJobHandler.handleAddUpdate(path); - } - } } } @@ -557,4 +543,24 @@ public class JobSchedulerImpl public void maintenance() { this.scheduledJobHandler.maintenance(); } + + /** + * @see org.apache.sling.api.resource.observation.ResourceChangeListener#onChange(java.util.List) + */ + @Override + public void onChange(List<ResourceChange> changes) { + for(final ResourceChange change : changes ) { + if ( change.getPath() != null && change.getPath().startsWith(this.configuration.getScheduledJobsPath(true)) ) { + if ( change.getType() == ResourceChange.ChangeType.REMOVED ) { + // removal + logger.debug("Remove scheduled job {}", change.getPath()); + this.scheduledJobHandler.handleRemove(change.getPath()); + } else { + // add or update + logger.debug("Add or update scheduled job {}, event {}", change.getPath(), change.getType()); + this.scheduledJobHandler.handleAddUpdate(change.getPath()); + } + } + } + } } Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Job.java Tue Sep 20 14:53:16 2016 @@ -21,7 +21,8 @@ package org.apache.sling.event.jobs; import java.util.Calendar; import java.util.Set; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; + /** * A job Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobBuilder.java Tue Sep 20 14:53:16 2016 @@ -22,7 +22,7 @@ import java.util.Date; import java.util.List; import java.util.Map; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** * This is a builder interface to build jobs and scheduled jobs. Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/JobManager.java Tue Sep 20 14:53:16 2016 @@ -21,7 +21,7 @@ package org.apache.sling.event.jobs; import java.util.Collection; import java.util.Map; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Queue.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Queue.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Queue.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Queue.java Tue Sep 20 14:53:16 2016 @@ -18,7 +18,7 @@ */ package org.apache.sling.event.jobs; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java Tue Sep 20 14:53:16 2016 @@ -18,7 +18,7 @@ */ package org.apache.sling.event.jobs; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java Tue Sep 20 14:53:16 2016 @@ -20,7 +20,7 @@ package org.apache.sling.event.jobs; import java.util.Date; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** * Scheduling information. Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java Tue Sep 20 14:53:16 2016 @@ -22,7 +22,7 @@ import java.util.Collection; import java.util.Date; import java.util.Map; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** * Information about a scheduled job Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Statistics.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Statistics.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Statistics.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/Statistics.java Tue Sep 20 14:53:16 2016 @@ -18,7 +18,7 @@ */ package org.apache.sling.event.jobs; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** * Statistic information. Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java Tue Sep 20 14:53:16 2016 @@ -18,7 +18,7 @@ */ package org.apache.sling.event.jobs; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** * Statistic information about a topic. Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java Tue Sep 20 14:53:16 2016 @@ -20,7 +20,7 @@ package org.apache.sling.event.jobs.cons import org.apache.sling.event.jobs.Job; -import aQute.bnd.annotation.ConsumerType; +import org.osgi.annotation.versioning.ConsumerType; Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java Tue Sep 20 14:53:16 2016 @@ -18,7 +18,7 @@ */ package org.apache.sling.event.jobs.consumer; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** * Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java Tue Sep 20 14:53:16 2016 @@ -18,7 +18,7 @@ */ package org.apache.sling.event.jobs.consumer; -import aQute.bnd.annotation.ProviderType; +import org.osgi.annotation.versioning.ProviderType; /** * The status of a job after it has been processed by a {@link JobExecutor}. Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java Tue Sep 20 14:53:16 2016 @@ -20,7 +20,7 @@ package org.apache.sling.event.jobs.cons import org.apache.sling.event.jobs.Job; -import aQute.bnd.annotation.ConsumerType; +import org.osgi.annotation.versioning.ConsumerType; /** * A job executor consumes a job. Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java Tue Sep 20 14:53:16 2016 @@ -17,8 +17,7 @@ * under the License. */ -@Version("1.2.0") +@org.osgi.annotation.versioning.Version("1.2.1") package org.apache.sling.event.jobs.consumer; -import aQute.bnd.annotation.Version; Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java Tue Sep 20 14:53:16 2016 @@ -17,8 +17,7 @@ * under the License. */ -@Version("1.0.0") +@org.osgi.annotation.versioning.Version("1.0.1") package org.apache.sling.event.jobs.jmx; -import aQute.bnd.annotation.Version; Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/package-info.java?rev=1761587&r1=1761586&r2=1761587&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/package-info.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/package-info.java Tue Sep 20 14:53:16 2016 @@ -17,8 +17,7 @@ * under the License. */ -@Version("2.0.0") +@org.osgi.annotation.versioning.Version("2.0.1") package org.apache.sling.event.jobs; -import aQute.bnd.annotation.Version;