You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/20 14:38:03 UTC
[sling-org-apache-sling-event] 16/26: SLING-6739 : embedding
sling.event.api 1.0.0 and explicitly exporting event.jobs,
event.jobs.consumer, event.jobs.jmx
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-event.git
commit e1b60efc22388d41906f47f6ef37ff2457574e1a
Author: Stefan Egli <st...@apache.org>
AuthorDate: Wed Jul 5 15:03:52 2017 +0000
SLING-6739 : embedding sling.event.api 1.0.0 and explicitly exporting event.jobs, event.jobs.consumer, event.jobs.jmx
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1800888 13f79535-47bb-0310-9956-ffa450edef68
---
pom.xml | 22 +-
src/main/java/org/apache/sling/event/jobs/Job.java | 351 ---------------------
.../org/apache/sling/event/jobs/JobBuilder.java | 161 ----------
.../org/apache/sling/event/jobs/JobManager.java | 223 -------------
.../sling/event/jobs/NotificationConstants.java | 106 -------
.../java/org/apache/sling/event/jobs/Queue.java | 97 ------
.../sling/event/jobs/QueueConfiguration.java | 111 -------
.../org/apache/sling/event/jobs/ScheduleInfo.java | 89 ------
.../apache/sling/event/jobs/ScheduledJobInfo.java | 89 ------
.../org/apache/sling/event/jobs/Statistics.java | 112 -------
.../apache/sling/event/jobs/TopicStatistics.java | 87 -----
.../sling/event/jobs/consumer/JobConsumer.java | 133 --------
.../event/jobs/consumer/JobExecutionContext.java | 144 ---------
.../event/jobs/consumer/JobExecutionResult.java | 71 -----
.../sling/event/jobs/consumer/JobExecutor.java | 104 ------
.../sling/event/jobs/consumer/package-info.java | 23 --
.../apache/sling/event/jobs/jmx/QueuesMBean.java | 28 --
.../sling/event/jobs/jmx/StatisticsMBean.java | 34 --
.../apache/sling/event/jobs/jmx/package-info.java | 23 --
.../org/apache/sling/event/jobs/package-info.java | 23 --
20 files changed, 13 insertions(+), 2018 deletions(-)
diff --git a/pom.xml b/pom.xml
index c059694..9ff4cc7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,11 @@
org.apache.felix.inventory;resolution:=optional,
*
</Import-Package>
+ <Export-Package>
+ org.apache.sling.event.jobs,
+ org.apache.sling.event.jobs.consumer,
+ org.apache.sling.event.jobs.jmx
+ </Export-Package>
<DynamicImport-Package>
javax.servlet,
javax.servlet.http,
@@ -80,7 +85,8 @@
<Embed-Dependency>
jackrabbit-jcr-commons;inline="org/apache/jackrabbit/util/ISO9075.*|org/apache/jackrabbit/util/ISO8601.*|org/apache/jackrabbit/util/XMLChar.*",
org.apache.sling.commons.osgi;inline="org/apache/sling/commons/osgi/PropertiesUtil.*",
- quartz;inline="org/quartz/CronExpression.*|org/quartz/ValueSet.*"
+ quartz;inline="org/quartz/CronExpression.*|org/quartz/ValueSet.*",
+ org.apache.sling.event.api
</Embed-Dependency>
</instructions>
</configuration>
@@ -362,12 +368,10 @@
<version>1</version>
<scope>test</scope>
</dependency>
-<!-- SLING-6739 : update once sling.event.api is released (and then remove identical packages in this bundle)
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.event.api</artifactId>
- <version>1.0.0</version>
- <type>bundle</type>
- </dependency>
- --> </dependencies>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.event.api</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ </dependencies>
</project>
diff --git a/src/main/java/org/apache/sling/event/jobs/Job.java b/src/main/java/org/apache/sling/event/jobs/Job.java
deleted file mode 100644
index 710e730..0000000
--- a/src/main/java/org/apache/sling/event/jobs/Job.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*
- 1 * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import java.util.Calendar;
-import java.util.Set;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-
-/**
- * A job
- *
- *
- * Property Types
- *
- * In general all scalar types and all serializable classes are supported as
- * property types. However, in order for deseralizing classes these must be
- * exported. Serializable classes are not searchable in the query either.
- * Due to the above mentioned potential problems, it is advisable to not use
- * custom classes as job properties, but rather use out of the box supported
- * types in combination with collections.
- *
- * A resource provider might convert numbers to a different type, JCR is well-known
- * for this behavior as it only supports long but neither integer nor short.
- * Therefore if you are dealing with numbers, use the {@link #getProperty(String, Class)}
- * method to get the correct type instead of directly casting it.
- *
- * @since 1.2
- */
-@ProviderType
-public interface Job {
-
- /**
- * The name of the job queue processing this job.
- * This property is set by the job handling when the job is processed.
- * If this property is set by the client creating the job it's value is ignored
- */
- String PROPERTY_JOB_QUEUE_NAME = "event.job.queuename";
-
- /**
- * The property to track the retry count for jobs. Value is of type Integer.
- * On first execution the value of this property is zero.
- * This property is managed by the job handling.
- * If this property is set by the client creating the job it's value is ignored
- */
- String PROPERTY_JOB_RETRY_COUNT = "event.job.retrycount";
-
- /**
- * The property to track the retry maximum retry count for jobs. Value is of type Integer.
- * This property is managed by the job handling.
- * If this property is set by the client creating the job it's value is ignored
- */
- String PROPERTY_JOB_RETRIES = "event.job.retries";
-
- /**
- * This property is set by the job handling and contains a calendar object
- * specifying the date and time when this job has been created.
- * If this property is set by the client creating the job it's value is ignored
- */
- String PROPERTY_JOB_CREATED = "slingevent:created";
-
- /**
- * This property is set by the job handling and contains the Sling instance ID
- * of the instance where this job has been created.
- */
- String PROPERTY_JOB_CREATED_INSTANCE = "slingevent:application";
-
- /**
- * This property is set by the job handling and contains the Sling instance ID
- * of the instance where this job should be processed.
- */
- String PROPERTY_JOB_TARGET_INSTANCE = "event.job.application";
-
- /**
- * This property is set by the job handling and contains a calendar object
- * specifying the date and time when this job has been started.
- * This property is only set if the job is currently in processing
- * If this property is set by the client creating the job it's value is ignored
- */
- String PROPERTY_JOB_STARTED_TIME = "event.job.started.time";
-
- /**
- * The property to set a retry delay. Value is of type Long and specifies milliseconds.
- * This property can be used to override the retry delay from the queue configuration.
- * But it should only be used very rarely as the queue configuration should be the one
- * in charge.
- */
- String PROPERTY_JOB_RETRY_DELAY = "event.job.retrydelay";
-
- /**
- * This property contains the optional output log of a job consumer.
- * The value of this property is a string array.
- * This property is read-only and can't be specified when the job is created.
- * @since 1.3
- */
- String PROPERTY_JOB_PROGRESS_LOG = "slingevent:progressLog";
-
- /**
- * This property contains the optional ETA for a job.
- * The value of this property is a {@link Calendar} object.
- * This property is read-only and can't be specified when the job is created.
- * @since 1.3
- */
- String PROPERTY_JOB_PROGRESS_ETA = "slingevent:progressETA";
-
- /**
- * This property contains optional progress information about a job,
- * the number of steps the job consumer will perform. Each step is
- * assumed to consume roughly the same amount if time.
- * The value of this property is an integer.
- * This property is read-only and can't be specified when the job is created.
- * @since 1.3
- */
- String PROPERTY_JOB_PROGRESS_STEPS = "slingevent:progressSteps";
-
- /**
- * This property contains optional progress information about a job,
- * the number of completed steps.
- * The value of this property is an integer.
- * This property is read-only and can't be specified when the job is created.
- * @since 1.3
- */
- String PROPERTY_JOB_PROGRESS_STEP = "slingevent:progressStep";
-
- /**
- * This property contains the optional result message of a job consumer.
- * The value of this property is a string.
- * This property is read-only and can't be specified when the job is created.
- * @since 1.3
- */
- String PROPERTY_RESULT_MESSAGE = "slingevent:resultMessage";
-
- /**
- * This property contains the finished date once a job is marked as finished.
- * The value of this property is a {@link Calendar} object.
- * This property is read-only and can't be specified when the job is created.
- * @since 1.3
- */
- String PROPERTY_FINISHED_DATE = "slingevent:finishedDate";
-
- /**
- * This is an optional property containing a human readable title for
- * the job
- * @since 1.3
- */
- String PROPERTY_JOB_TITLE = "slingevent:jobTitle";
-
- /**
- * This is an optional property containing a human readable description for
- * the job
- * @since 1.3
- */
- String PROPERTY_JOB_DESCRIPTION = "slingevent:jobDescription";
-
- /**
- * The current job state.
- * @since 1.3
- */
- enum JobState {
- QUEUED, // waiting in queue after adding or for restart after failing
- ACTIVE, // job is currently in processing
- SUCCEEDED, // processing finished successfully
- STOPPED, // processing was stopped by a user
- GIVEN_UP, // number of retries reached
- ERROR, // processing signaled CANCELLED or throw an exception
- DROPPED // dropped jobs
- };
-
- /**
- * The job topic.
- * @return The job topic
- */
- String getTopic();
-
- /**
- * Unique job ID.
- * @return The unique job ID.
- */
- String getId();
-
- /**
- * Get the value of a property.
- * @param name The property name
- * @return The value of the property or <code>null</code>
- */
- Object getProperty(String name);
-
- /**
- * Get all property names.
- * @return A set of property names.
- */
- Set<String> getPropertyNames();
-
- /**
- * Get a named property and convert it into the given type.
- * This method does not support conversion into a primitive type or an
- * array of a primitive type. It should return <code>null</code> in this
- * case.
- *
- * @param name The name of the property
- * @param type The class of the type
- * @param <T> The class of the type
- * @return Return named value converted to type T or <code>null</code> if
- * non existing or can't be converted.
- */
- <T> T getProperty(String name, Class<T> type);
-
- /**
- * Get a named property and convert it into the given type.
- * This method does not support conversion into a primitive type or an
- * array of a primitive type. It should return the default value in this
- * case.
- *
- * @param name The name of the property
- * @param defaultValue The default value to use if the named property does
- * not exist or cannot be converted to the requested type. The
- * default value is also used to define the type to convert the
- * value to. If this is <code>null</code> any existing property is
- * not converted.
- * @param <T> The class of the type
- * @return Return named value converted to type T or the default value if
- * non existing or can't be converted.
- */
- <T> T getProperty(String name, T defaultValue);
-
- /**
- * On first execution the value of this property is zero.
- * This property is managed by the job handling.
- * @return The retry count.
- */
- int getRetryCount();
-
- /**
- * The property to track the retry maximum retry count for jobs.
- * This property is managed by the job handling.
- * @return The number of retries.
- */
- int getNumberOfRetries();
-
- /**
- * The name of the job queue processing this job.
- * This property is set by the job handling when the job is processed.
- * @return The queue name or <code>null</code>
- */
- String getQueueName();
-
- /**
- * This property is set by the job handling and contains the Sling instance ID
- * of the instance where this job should be processed.
- * @return The sling ID or <code>null</code>
- */
- String getTargetInstance();
-
- /**
- * This property is set by the job handling and contains a calendar object
- * specifying the date and time when this job has been started.
- * This property is only set if the job is currently in processing
- * @return The time the processing started or {@code null}.
- */
- Calendar getProcessingStarted();
-
- /**
- * This property is set by the job handling and contains a calendar object
- * specifying the date and time when this job has been created.
- * @return The time the job was created.
- */
- Calendar getCreated();
-
- /**
- * This property is set by the job handling and contains the Sling instance ID
- * of the instance where this job has been created.
- * @return The instance id the job was created on
- */
- String getCreatedInstance();
-
- /**
- * Get the job state
- * @return The job state.
- * @since 1.3
- */
- JobState getJobState();
-
- /**
- * If the job is cancelled or succeeded, this method will return the finish date.
- * @return The finish date or <code>null</code>
- * @since 1.3
- */
- Calendar getFinishedDate();
-
- /**
- * This method returns the message from the last job processing, regardless
- * whether the processing failed, succeeded or was cancelled. The message
- * is optional and can be set by a job consumer.
- * @return The result message or <code>null</code>
- * @since 1.3
- */
- String getResultMessage();
-
- /**
- * This method returns the optional progress log from the last job
- * processing. The log is optional and can be set by a job consumer.
- * @return The log or <code>null</code>
- * @since 1.3
- */
- String[] getProgressLog();
-
- /**
- * If the job is in processing, return the optional progress step
- * count if available. The progress information is optional and
- * can be set by a job consumer.
- * @return The progress step count or <code>-1</code>.
- * @since 1.3
- */
- int getProgressStepCount();
-
- /**
- * If the job is in processing, return the optional information
- * about the finished steps. This progress information is optional
- * and can be set by a job consumer.
- * In combination with {@link #getProgressStepCount()} this can
- * be used to calculate a progress bar.
- * @return The number of the finished progress step or <code>0</code>
- * @since 1.3
- */
- int getFinishedProgressStep();
-
- /**
- * If the job is in processing, return the optional ETA for this job.
- * The progress information is optional and can be set by a job consumer.
- * @since 1.3
- * @return The estimated ETA or <code>null</code>
- */
- Calendar getProgressETA();
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/JobBuilder.java b/src/main/java/org/apache/sling/event/jobs/JobBuilder.java
deleted file mode 100644
index 1455a61..0000000
--- a/src/main/java/org/apache/sling/event/jobs/JobBuilder.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-/**
- * This is a builder interface to build jobs and scheduled jobs.
- * Instances of this class can be retrieved using {@link JobManager#createJob(String)}
- *
- * @since 1.3
- */
-@ProviderType
-public interface JobBuilder {
-
- /**
- * Set the optional configuration properties for the job.
- * @param props The properties of the job. All values must be {@code java.io.Serializable}.
- * @return The job builder to continue building.
- */
- JobBuilder properties(final Map<String, Object> props);
-
- /**
- * Add the job.
- * @return The job or <code>null</code>
- * @see JobManager#addJob(String, Map)
- */
- Job add();
-
- /**
- * Add the job.
- * @param errors Optional list which will be filled with error messages.
- * @return The job or <code>null</code>
- * @see JobManager#addJob(String, Map)
- */
- Job add(final List<String> errors);
-
- /**
- * Schedule the job
- * @return A schedule builder to schedule the jobs
- */
- ScheduleBuilder schedule();
-
- /**
- * This is a builder interface for creating schedule information
- */
- public interface ScheduleBuilder {
-
- /**
- * Suspend this scheduling by default.
- * Invoking this method several times has the same effect as calling it just once.
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder suspend();
-
- /**
- * Schedule the job hourly at the given minute.
- * If the minutes argument is less than 0 or higher than 59, the job can't be scheduled.
- * @param minute Between 0 and 59.
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder hourly(final int minute);
-
- /**
- * Schedule the job daily at the given time.
- * If a value less than zero for hour or minute is specified or a value higher than 23 for hour or
- * a value higher than 59 for minute than the job can't be scheduled.
- * @param hour Hour of the day ranging from 0 to 23.
- * @param minute Minute of the hour ranging from 0 to 59.
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder daily(final int hour, final int minute);
-
- /**
- * Schedule the job weekly, the time needs to be specified in addition.
- * If a value lower than 1 or higher than 7 is used for the day, the job can't be scheduled.
- * If a value less than zero for hour or minute is specified or a value higher than 23 for hour or
- * a value higher than 59 for minute than the job can't be scheduled.
- * @param day Day of the week, 1:Sunday, 2:Monday, ... 7:Saturday.
- * @param hour Hour of the day ranging from 0 to 23.
- * @param minute Minute of the hour ranging from 0 to 59.
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder weekly(final int day, final int hour, final int minute);
-
- /**
- * Schedule the job monthly, the time needs to be specified in addition.
- * If a value lower than 1 or higher than 28 is used for the day, the job can't be scheduled.
- * If a value less than zero for hour or minute is specified or a value higher than 23 for hour or
- * a value higher than 59 for minute than the job can't be scheduled.
- * @param day Day of the month from 1 to 28.
- * @param hour Hour of the day ranging from 0 to 23.
- * @param minute Minute of the hour ranging from 0 to 59.
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder monthly(final int day, final int hour, final int minute);
-
- /**
- * Schedule the job yearly, the time needs to be specified in addition.
- * If a value lower than 1 or higher than 12 is used for the month, the job can't be scheduled.
- * If a value lower than 1 or higher than 28 is used for the day, the job can't be scheduled.
- * If a value less than zero for hour or minute is specified or a value higher than 23 for hour or
- * a value higher than 59 for minute than the job can't be scheduled.
- * @param month Month of the year from 1 to 12.
- * @param day Day of the month from 1 to 28.
- * @param hour Hour of the day ranging from 0 to 23.
- * @param minute Minute of the hour ranging from 0 to 59.
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder yearly(final int month, final int day, final int hour, final int minute);
-
- /**
- * Schedule the job for a specific date.
- * If no date or a a date in the past is provided, the job can't be scheduled.
- * @param date The date
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder at(final Date date);
-
- /**
- * Schedule the job for according to the cron expression.
- * If no expression is specified, the job can't be scheduled.
- * @param expression The cron expression
- * @return The schedule builder to continue building.
- */
- ScheduleBuilder cron(final String expression);
-
- /**
- * Finally add the job to the schedule
- * @return Returns the info object if the job could be scheduled, <code>null</code>otherwise.
- */
- ScheduledJobInfo add();
-
- /**
- * Finally add the job to the schedule
- * @param errors Optional list which will be filled with error messages.
- * @return Returns the info object if the job could be scheduled, <code>null</code>otherwise.
- */
- ScheduledJobInfo add(final List<String> errors);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/event/jobs/JobManager.java b/src/main/java/org/apache/sling/event/jobs/JobManager.java
deleted file mode 100644
index 105b611..0000000
--- a/src/main/java/org/apache/sling/event/jobs/JobManager.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import java.util.Collection;
-import java.util.Map;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-
-/**
- * The job manager is the heart of the job processing.
- * <p>
- * The job manager allows to create new jobs, search for
- * jobs and get statistics about the current state.
- * <p>
- * The terminology used in the job manager is slightly
- * different from common terminology:
- * Each job has a topic and a topic is associated with
- * a queue. Queues can be created through configuration
- * and each queue can process one or more topics.
- *
- * @since 3.0
- */
-@ProviderType
-public interface JobManager {
-
- /**
- * Return statistics information about all queues.
- * @return The statistics.
- */
- Statistics getStatistics();
-
- /**
- * Return statistics information about job topics.
- * @return The statistics for all topics.
- */
- Iterable<TopicStatistics> getTopicStatistics();
-
- /**
- * Return a queue with a specific name (if running)
- * @param name The queue name
- * @return The queue or <code>null</code>
- */
- Queue getQueue(String name);
-
- /**
- * Return an iterator for all available queues.
- * @return An iterator for all queues.
- */
- Iterable<Queue> getQueues();
-
- /**
- * The requested job types for the query.
- * This can either be all (unfinished) jobs, all activated (started) or all queued jobs.
- */
- enum QueryType {
- ALL, // all means all active and all queued
- ACTIVE,
- QUEUED,
- HISTORY, // returns the complete history of cancelled and succeeded jobs (if available)
- CANCELLED, // history of cancelled jobs (STOPPED, GIVEN_UP, ERROR, DROPPED)
- SUCCEEDED, // history of succeeded jobs
- STOPPED, // history of stopped jobs
- GIVEN_UP, // history of given up jobs
- ERROR, // history of jobs signaled CANCELLED or throw an exception
- DROPPED // history of dropped jobs
- }
-
- /**
- * Add a new job
- *
- * If the topic is <code>null</code> or illegal, no job is created and <code>null</code> is returned.
- * If properties are provided, all of them must be serializable. If there are non serializable
- * objects in the properties, no job is created and <code>null</code> is returned.
- * A job topic is a hierarchical name separated by dashes, each part has to start with a letter,
- * allowed characters are letters, numbers and the underscore.
- *
- * The returned job object is a snapshot of the job state taken at the time of creation. Updates
- * to the job state are not reflected and the client needs to get a new job object using the job id.
- *
- * If the queue for processing this job is configured to drop the job, <code>null</code> is returned
- * as well.
- *
- * @param topic The required job topic.
- * @param properties Optional job properties. The properties must be serializable.
- * @return The new job - or <code>null</code> if the job could not be created.
- * @since 1.2
- */
- Job addJob(String topic, Map<String, Object> properties);
-
- /**
- * Return a job based on the unique id.
- *
- * The returned job object is a snapshot of the job state taken at the time of the call. Updates
- * to the job state are not reflected and the client needs to get a new job object using the job id.
- *
- * @param jobId The unique identifier from {@link Job#getId()}
- * @return A job or <code>null</code>
- * @since 1.2
- */
- Job getJobById(String jobId);
-
- /**
- * Removes the job even if it is currently in processing.
- *
- * If the job exists and is not in processing, it gets removed from the processing queue.
- * If the job exists and is in processing, it is removed from the persistence layer,
- * however processing is not stopped.
- *
- * @param jobId The unique identifier from {@link Job#getId()}
- * @return <code>true</code> if the job could be removed or does not exist anymore.
- * <code>false</code> otherwise.
- * @since 1.2
- */
- boolean removeJobById(String jobId);
-
- /**
- * Find a job - either queued or active.
- *
- * This method searches for a job with the given topic and filter properties. If more than one
- * job matches, the first one found is returned which could be any of the matching jobs.
- *
- * The returned job object is a snapshot of the job state taken at the time of the call. Updates
- * to the job state are not reflected and the client needs to get a new job object using the job id.
- *
- * @param topic Topic is required.
- * @param template The map acts like a template. The searched job
- * must match the template (AND query).
- * @return A job or <code>null</code>
- * @since 1.2
- */
- Job getJob(String topic, Map<String, Object> template);
-
- /**
- * Return all jobs of a given type.
- *
- * Based on the type parameter, either the history of jobs can be returned or unfinished jobs. The type
- * parameter can further specify which category of jobs should be returned: for the history either
- * succeeded jobs, cancelled jobs or both in combination can be returned. For unfinished jobs, either
- * queued jobs, started jobs or the combination can be returned.
- * If the history is returned, the result set is sorted in descending order, listening the newest entry
- * first. For unfinished jobs, the result set is sorted in ascending order.
- *
- * The returned job objects are a snapshot of the jobs state taken at the time of the call. Updates
- * to the job states are not reflected and the client needs to get new job objects.
- *
- * @param type Required parameter for the type. See above.
- * @param topic Topic can be used as a filter, if it is non-null, only jobs with this topic will be returned.
- * @param limit A positive number indicating the maximum number of jobs returned by the iterator. A value
- * of zero or less indicates that all jobs should be returned.
- * @param templates A list of filter property maps. Each map acts like a template. The searched job
- * must match the template (AND query). By providing several maps, different filters
- * are possible (OR query).
- * @return A collection of jobs - the collection might be empty.
- * @since 1.2
- */
- Collection<Job> findJobs(QueryType type, String topic, long limit, Map<String, Object>... templates);
-
- /**
- * Stop a job.
- * When a job is stopped and the job consumer supports stopping the job processing, it is up
- * to the job consumer how the stopping is handled. The job can be marked as finished successful,
- * permanently failed or being retried.
- * @param jobId The job id
- * @since 1.3
- */
- void stopJobById(String jobId);
-
- /**
- * Retry a cancelled job.
- * If a job has failed permanently it can be requeued with this method. The job will be
- * removed from the history and put into the queue again. The new job will get a new job id.
- * For all other jobs calling this method has no effect and it simply returns <code>null</code>.
- * @param jobId The job id.
- * @return If the job is requeued, the new job object otherwise <code>null</code>
- */
- Job retryJobById(String jobId);
-
- /**
- * Fluent API to create, start and schedule new jobs
- * @param topic Required topic
- * @return A job builder
- * @since 1.3
- */
- JobBuilder createJob(final String topic);
-
- /**
- * Return all available job schedules.
- * @return A collection of scheduled job infos
- * @since 1.3
- */
- Collection<ScheduledJobInfo> getScheduledJobs();
-
- /**
- * Return all matching available job schedules.
- * @param topic Topic can be used as a filter, if it is non-null, only jobs with this topic will be returned.
- * @param limit A positive number indicating the maximum number of jobs returned by the iterator. A value
- * of zero or less indicates that all jobs should be returned.
- * @param templates A list of filter property maps. Each map acts like a template. The searched job
- * must match the template (AND query). By providing several maps, different filters
- * are possible (OR query).
- * @return All matching scheduled job infos.
- * @since 1.4
- */
- Collection<ScheduledJobInfo> getScheduledJobs(String topic, long limit, Map<String, Object>... templates);
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/NotificationConstants.java b/src/main/java/org/apache/sling/event/jobs/NotificationConstants.java
deleted file mode 100644
index 58c7c55..0000000
--- a/src/main/java/org/apache/sling/event/jobs/NotificationConstants.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-
-/**
- * This class contains constants for event notifications.
- *
- * Notifications for jobs can only be received on the instance where the job
- * action is taking place. They are not send to other instances using
- * remove events.
- *
- * @since 1.3
- */
-public abstract class NotificationConstants {
-
- /**
- * Asynchronous notification event when a job is started.
- * The property {@link #NOTIFICATION_PROPERTY_JOB_TOPIC} contains the job topic,
- * the property {@link #NOTIFICATION_PROPERTY_JOB_ID} contains the unique job id.
- * The time stamp of the event (as a Long) is available from the property
- * {@link org.osgi.service.event.EventConstants#TIMESTAMP}.
- * The payload of the job is available as additional job specific properties.
- */
- public static final String TOPIC_JOB_STARTED = "org/apache/sling/event/notification/job/START";
-
- /**
- * Asynchronous notification event when a job is finished.
- * The property {@link #NOTIFICATION_PROPERTY_JOB_TOPIC} contains the job topic,
- * the property {@link #NOTIFICATION_PROPERTY_JOB_ID} contains the unique job id.
- * The time stamp of the event (as a Long) is available from the property
- * {@link org.osgi.service.event.EventConstants#TIMESTAMP}.
- * The payload of the job is available as additional job specific properties.
- */
- public static final String TOPIC_JOB_FINISHED = "org/apache/sling/event/notification/job/FINISHED";
-
- /**
- * Asynchronous notification event when a job failed.
- * If a job execution fails, it is rescheduled for another try.
- * The property {@link #NOTIFICATION_PROPERTY_JOB_TOPIC} contains the job topic,
- * the property {@link #NOTIFICATION_PROPERTY_JOB_ID} contains the unique job id.
- * The time stamp of the event (as a Long) is available from the property
- * {@link org.osgi.service.event.EventConstants#TIMESTAMP}.
- * The payload of the job is available as additional job specific properties.
- */
- public static final String TOPIC_JOB_FAILED = "org/apache/sling/event/notification/job/FAILED";
-
- /**
- * Asynchronous notification event when a job is cancelled.
- * If a job execution is cancelled it is not rescheduled.
- * The property {@link #NOTIFICATION_PROPERTY_JOB_TOPIC} contains the job topic,
- * the property {@link #NOTIFICATION_PROPERTY_JOB_ID} contains the unique job id.
- * The time stamp of the event (as a Long) is available from the property
- * {@link org.osgi.service.event.EventConstants#TIMESTAMP}.
- * The payload of the job is available as additional job specific properties.
- */
- public static final String TOPIC_JOB_CANCELLED = "org/apache/sling/event/notification/job/CANCELLED";
-
- /**
- * Asynchronous notification event when a job is permanently removed.
- * The property {@link #NOTIFICATION_PROPERTY_JOB_TOPIC} contains the job topic,
- * the property {@link #NOTIFICATION_PROPERTY_JOB_ID} contains the unique job id.
- * The payload of the job is available as additional job specific properties.
- */
- public static final String TOPIC_JOB_REMOVED = "org/apache/sling/event/notification/job/REMOVED";
-
- /**
- * Asynchronous notification event when a job is added.
- * The property {@link #NOTIFICATION_PROPERTY_JOB_TOPIC} contains the job topic,
- * the property {@link #NOTIFICATION_PROPERTY_JOB_ID} contains the unique job id.
- * @since 1.6
- */
- public static final String TOPIC_JOB_ADDED = "org/apache/sling/event/notification/job/ADDED";
-
- /**
- * Property containing the job topic. Value is of type String.
- * @see Job#getTopic()
- */
- public static final String NOTIFICATION_PROPERTY_JOB_TOPIC = "event.job.topic";
-
- /**
- * Property containing the unique job ID. Value is of type String.
- * @see Job#getId()
- */
- public static final String NOTIFICATION_PROPERTY_JOB_ID = "slingevent:eventId";
-
- private NotificationConstants() {
- // avoid instantiation
- }
-}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/event/jobs/Queue.java b/src/main/java/org/apache/sling/event/jobs/Queue.java
deleted file mode 100644
index 2134aba..0000000
--- a/src/main/java/org/apache/sling/event/jobs/Queue.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-
-/**
- * This is a job queue processing job events.
- * @since 3.0
- */
-@ProviderType
-public interface Queue {
-
- /**
- * Get the queue name.
- * @return The queue name
- */
- String getName();
-
- /**
- * Return statistics information about this queue.
- * @return The queue statistics
- */
- Statistics getStatistics();
-
- /**
- * Get the corresponding configuration.
- * @return The queue configuration
- */
- QueueConfiguration getConfiguration();
-
- /**
- * Suspend the queue - when a queue is suspended it stops processing
- * jobs - however already started jobs are finished (but not rescheduled).
- * Depending on the queue implementation, the queue is only suspended
- * for a specific time.
- * A queue can be resumed with {@link #resume()}.
- */
- void suspend();
-
- /**
- * Resume a suspended queue. {@link #suspend()}. If the queue is not
- * suspended, calling this method has no effect.
- * Depending on the queue implementation, if a job failed a job queue might
- * sleep for a configured time, before a new job is processed. By calling this
- * method, the job queue can be woken up and force an immediate reprocessing.
- * This feature is only supported by ordered queues at the moment. If a queue
- * does not support this feature, calling this method has only an effect if
- * the queue is really suspended.
- */
- void resume();
-
- /**
- * Is the queue currently suspended?
- * @return {code true} if the queue is supsended
- */
- boolean isSuspended();
-
- /**
- * Remove all outstanding jobs and delete them. This actually cancels
- * all outstanding jobs.
- */
- void removeAll();
-
- /**
- * Return some information about the current state of the queue. This
- * method is meant to see the internal state of the queue for debugging
- * or monitoring purposes.
- * @return Additional state info
- */
- String getStateInfo();
-
- /**
- * For monitoring purposes and possible extensions from the different
- * queue types. This method allows to query state information.
- * @param key The key for the state
- * @return The state or {@code null}.
- */
- Object getState(final String key);
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java b/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java
deleted file mode 100644
index 8990289..0000000
--- a/src/main/java/org/apache/sling/event/jobs/QueueConfiguration.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-
-/**
- * The configuration of a queue.
- * @since 3.0
- */
-@ProviderType
-public interface QueueConfiguration {
-
- /** The queue type. */
- static enum Type {
- UNORDERED, // unordered, parallel processing (push)
- ORDERED, // ordered, FIFO (push)
- TOPIC_ROUND_ROBIN // unordered, parallel processing, executed based on topic (push)
- }
-
- /**
- * The thread priority.
- * @since 1.3
- */
- static enum ThreadPriority {
- NORM,
- MIN,
- MAX
- }
-
- /**
- * Return the retry delay in ms
- * @return The retry delay
- */
- long getRetryDelayInMs();
-
- /**
- * Return the max number of retries, -1 for endless retry!
- * @return Max number of retries
- */
- int getMaxRetries();
-
- /**
- * Return the queue type.
- * @return The queue type
- */
- Type getType();
-
- /**
- * Return the thread priority for the job thread
- * @return Thread priority
- */
- ThreadPriority getThreadPriority();
-
- /**
- * Return the max number of parallel processes.
- * @return Max parallel processes
- */
- int getMaxParallel();
-
- /**
- * The list of topics this queue is bound to.
- * @return All topics for this queue.
- */
- String[] getTopics();
-
- /**
- * Whether successful jobs are kept for a complete history
- * @return <code>true</code> if successful jobs are kept.
- * @since 1.3
- */
- boolean isKeepJobs();
-
- /**
- * Return the size for the optional thread pool for this queue.
- * @return A positive number or <code>0</code> if the default thread pool
- * should be used.
- * @since 1.3
- */
- int getOwnThreadPoolSize();
-
- /**
- * Get the ranking of this configuration.
- * @return The ranking
- */
- int getRanking();
-
- /**
- * Prefer to run the job on the same instance it was created on.
- * @return {@code true} if running on the creation instance is preferred.
- * @since 1.4
- */
- boolean isPreferRunOnCreationInstance();
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java b/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java
deleted file mode 100644
index bb390cb..0000000
--- a/src/main/java/org/apache/sling/event/jobs/ScheduleInfo.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import java.util.Date;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-/**
- * Scheduling information.
- * @since 1.3
- */
-@ProviderType
-public interface ScheduleInfo {
-
- enum ScheduleType {
- DATE, // scheduled for a date
- HOURLY, // scheduled hourly
- DAILY, // scheduled once a day
- WEEKLY, // scheduled once a week
- MONTHLY, // scheduled once a month
- YEARLY, // scheduled once a year,
- CRON // scheduled according to the cron expression
- }
-
- /**
- * Return the scheduling type
- * @return The scheduling type
- */
- ScheduleType getType();
-
- /**
- * Return the scheduled execution date for a schedule of type date.
- * @return the scheduled execution date
- */
- Date getAt();
-
- /**
- * If the schedule is a cron expression, return the expression.
- * @return The cron expression or <code>null</code>
- */
- String getExpression();
-
- /**
- * If the job is scheduled yearly, returns the month of the year
- * @return The day of the year (from 1 to 12) or -1
- */
- int getMonthOfYear();
-
- /**
- * If the job is scheduled monthly, returns the day of the month
- * @return The day of the month (from 1 to 28) or -1
- */
- int getDayOfMonth();
-
- /**
- * If the job is scheduled weekly, returns the day of the week
- * @return The day of the week (from 1 to 7) or -1
- */
- int getDayOfWeek();
-
- /**
- * Return the hour of the day for daily and weekly scheduled jobs
- * @return The hour of the day (from 0 to 23) or -1
- */
- int getHourOfDay();
-
- /**
- * Return the minute of the hour for daily, weekly and hourly scheduled jobs.
- * @return The minute of the hour (from 0 to 59) or -1
- */
- int getMinuteOfHour();
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java b/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java
deleted file mode 100644
index 4d37c8b..0000000
--- a/src/main/java/org/apache/sling/event/jobs/ScheduledJobInfo.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.Map;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-/**
- * Information about a scheduled job
- * @since 1.3
- */
-@ProviderType
-public interface ScheduledJobInfo {
-
- /**
- * Get all schedules for this job
- * @return A non null and non empty list of schedules.
- */
- Collection<ScheduleInfo> getSchedules();
-
- /**
- * Return the next scheduled execution date.
- * @return the next scheduled execution date.
- */
- Date getNextScheduledExecution();
-
- /**
- * Return the job topic.
- * @return The job topic
- */
- String getJobTopic();
-
- /**
- * Return the optional job topics.
- * @return The job topics or <code>null</code>
- */
- Map<String, Object> getJobProperties();
-
- /**
- * Unschedule this scheduled job.
- */
- void unschedule();
-
- /**
- * Reschedule this job with a new rescheduling information.
- * If rescheduling fails (due to wrong arguments), the job
- * schedule is left as is.
- * @return The schedule builder
- */
- JobBuilder.ScheduleBuilder reschedule();
-
- /**
- * Suspend this job scheduling.
- * Job scheduling can be resumed with {@link #resume()}.
- * This information is persisted and survives a restart.
- */
- void suspend();
-
- /**
- * Resume job processing. {@link #suspend()}. If the queue is not
- * suspended, calling this method has no effect.
- */
- void resume();
-
- /**
- * Is the processing currently suspended?
- * @return {@code true} if processing is suspended.
- */
- boolean isSuspended();
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/Statistics.java b/src/main/java/org/apache/sling/event/jobs/Statistics.java
deleted file mode 100644
index 66b8d55..0000000
--- a/src/main/java/org/apache/sling/event/jobs/Statistics.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-/**
- * Statistic information.
- * This information is not preserved between restarts of the service.
- * Once a service is restarted, the counters start at zero!
- * @since 3.0
- */
-@ProviderType
-public interface Statistics {
-
- /**
- * The time this service has been started
- * @return The time this service has been started
- */
- long getStartTime();
-
- /**
- * Number of successfully finished jobs.
- * @return Number of successfully finished jobs.
- */
- long getNumberOfFinishedJobs();
-
- /**
- * Number of permanently failing or cancelled jobs.
- * @return Number of permanently failing or cancelled jobs
- */
- long getNumberOfCancelledJobs();
-
- /**
- * Number of failing jobs.
- * @return Number of failing jobs.
- */
- long getNumberOfFailedJobs();
-
- /**
- * Number of already processed jobs. This adds
- * {@link #getNumberOfFinishedJobs()}, {@link #getNumberOfCancelledJobs()}
- * and {@link #getNumberOfFailedJobs()}
- * @return Number of already processed jobs
- */
- long getNumberOfProcessedJobs();
-
- /**
- * Number of jobs currently in processing.
- * @return Number of jobs currently in processing.
- */
- long getNumberOfActiveJobs();
-
- /**
- * Number of jobs currently waiting in a queue.
- * @return Number of jobs currently waiting in a queue.
- */
- long getNumberOfQueuedJobs();
-
- /**
- * This just adds {@link #getNumberOfActiveJobs()} and {@link #getNumberOfQueuedJobs()}
- * @return The number of jobs
- */
- long getNumberOfJobs();
-
- /**
- * The time a job has been started last.
- * @return The time a job has been started last.
- */
- long getLastActivatedJobTime();
-
- /**
- * The time a job has been finished/failed/cancelled last.
- * @return The time a job has been finished/failed/cancelled last.
- */
- long getLastFinishedJobTime();
-
- /**
- * The average waiting time of a job in the queue.
- * @return The average waiting time of a job in the queue.
- */
- long getAverageWaitingTime();
-
- /**
- * The average processing time of a job - this only counts finished jobs.
- * @return The average processing time of a job
- */
- long getAverageProcessingTime();
-
- /**
- * Clear all collected statistics and set the starting time to the current time.
- * Note that not all fields are cleared, last waiting time or number of active and queued
- * jobs is not cleared as these are currently used.
- */
- void reset();
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java b/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java
deleted file mode 100644
index 0fed27a..0000000
--- a/src/main/java/org/apache/sling/event/jobs/TopicStatistics.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-/**
- * Statistic information about a topic.
- * This information is not preserved between restarts of the service.
- * Once a service is restarted, the counters start at zero!
- * @since 3.0
- */
-@ProviderType
-public interface TopicStatistics {
-
- /**
- * The topic this statistics is about.
- * @return The topic name
- */
- String getTopic();
-
- /**
- * Number of successfully finished jobs.
- * @return Number of successfully finished jobs.
- */
- long getNumberOfFinishedJobs();
-
- /**
- * Number of permanently failing or cancelled jobs.
- * @return Number of permanently failing or cancelled jobs.
- */
- long getNumberOfCancelledJobs();
-
- /**
- * Number of failing jobs.
- * @return Number of failing jobs.
- */
- long getNumberOfFailedJobs();
-
- /**
- * Number of already processed jobs. This adds
- * {@link #getNumberOfFinishedJobs()}, {@link #getNumberOfCancelledJobs()}
- * and {@link #getNumberOfFailedJobs()}
- * @return Number of already processed jobs.
- */
- long getNumberOfProcessedJobs();
-
- /**
- * The time a job has been started last.
- * @return The time a job has been started last.
- */
- long getLastActivatedJobTime();
-
- /**
- * The time a job has been finished/failed/cancelled last.
- * @return The time a job has been finished/failed/cancelled last.
- */
- long getLastFinishedJobTime();
-
- /**
- * The average waiting time of a job in the queue.
- * @return The average waiting time of a job in the queue.
- */
- long getAverageWaitingTime();
-
- /**
- * The average processing time of a job - this only counts finished jobs.
- * @return The average processing time of a job
- */
- long getAverageProcessingTime();
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java b/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java
deleted file mode 100644
index 8e783d1..0000000
--- a/src/main/java/org/apache/sling/event/jobs/consumer/JobConsumer.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs.consumer;
-
-import org.apache.sling.event.jobs.Job;
-
-import org.osgi.annotation.versioning.ConsumerType;
-
-
-
-/**
- * A job consumer consumes a job.
- * <p>
- * If the job consumer needs more features like providing progress information or adding
- * more information of the processing, {@link JobExecutor} should be implemented instead.
- * <p>
- * A job consumer registers itself with the {@link #PROPERTY_TOPICS} service registration
- * property. The value of this property defines which topics a consumer is able to process.
- * Each string value of this property is either
- * <ul>
- * <li>a job topic, or
- * <li>a topic category ending with "/*" which means all topics in this category, or
- * <li>a topic category ending with "/**" which means all topics in this category and all
- * sub categories. This matching is new since version 1.2.
- * </ul>
- * A consumer registering for just "*" or "**" is not considered.
- * <p>
- * For example, the value {@code org/apache/sling/jobs/*} matches the topics
- * {@code org/apache/sling/jobs/a} and {@code org/apache/sling/jobs/b} but neither
- * {@code org/apache/sling/jobs} nor {@code org/apache/sling/jobs/subcategory/a}. A value of
- * {@code org/apache/sling/jobs/**} matches the same topics but also all sub topics
- * like {@code org/apache/sling/jobs/subcategory/a} or {@code org/apache/sling/jobs/subcategory/a/c/d}.
- * <p>
- * If there is more than one job consumer or executor registered for a job topic, the selection is as
- * follows:
- * <ul>
- * <li>If there is a single consumer registering for the exact topic, this one is used.
- * <li>If there is more than a single consumer registering for the exact topic, the one
- * with the highest service ranking is used. If the ranking is equal, the one with
- * the lowest service ID is used.
- * <li>If there is a single consumer registered for the category, it is used.
- * <li>If there is more than a single consumer registered for the category, the service
- * with the highest service ranking is used. If the ranking is equal, the one with
- * the lowest service ID is used.
- * <li>The search continues with consumer registered for deep categories. The nearest one
- * is tried next. If there are several, the one with the highest service ranking is
- * used. If the ranking is equal, the one with the lowest service ID is used.
- * </ul>
- * <p>
- * If the consumer decides to process the job asynchronously, the processing must finish
- * within the current lifetime of the job consumer. If the consumer (or the instance
- * of the consumer) dies, the job processing will mark this processing as failed and
- * reschedule.
- *
- * @since 1.0
- */
-@ConsumerType
-public interface JobConsumer {
-
- /**
- * The result of the job processing.
- */
- enum JobResult {
- /** Processing finished successfully. */
- OK,
- /** Processing failed but might be retried. */
- FAILED,
- /** Processing failed permanently and must not be retried. */
- CANCEL,
- /** Processing will be done asynchronously. */
- ASYNC
- }
-
- /** Job property containing an asynchronous handler. */
- String PROPERTY_JOB_ASYNC_HANDLER = ":sling:jobs:asynchandler";
-
- /**
- * If the consumer decides to process the job asynchronously, this handler
- * interface can be used to notify finished processing. The asynchronous
- * handler can be retried using the property name {@link #PROPERTY_JOB_ASYNC_HANDLER}.
- */
- interface AsyncHandler {
-
- void failed();
-
- void ok();
-
- void cancel();
- }
-
- /**
- * Service registration property defining the jobs this consumer is able to process.
- * The value is either a string or an array of strings.
- */
- String PROPERTY_TOPICS = "job.topics";
-
-
- /**
- * Execute the job.
- * <p>
- * If the job has been processed successfully, {@link JobResult#OK} should be returned.
- * If the job has not been processed completely, but might be rescheduled {@link JobResult#FAILED}
- * should be returned.
- * If the job processing failed and should not be rescheduled, {@link JobResult#CANCEL} should
- * be returned.
- * <p>
- * If the consumer decides to process the job asynchronously it should return {@link JobResult#ASYNC}
- * and notify the job manager by using the {@link AsyncHandler} interface.
- * <p>
- * If the processing fails with throwing an exception/throwable, the process will not be rescheduled
- * and treated like the method would have returned {@link JobResult#CANCEL}.
- *
- * @param job The job
- * @return The job result
- */
- JobResult process(Job job);
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java b/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java
deleted file mode 100644
index 9370922..0000000
--- a/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionContext.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs.consumer;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-/**
- *
- * @since 1.1
- */
-@ProviderType
-public interface JobExecutionContext {
-
- /**
- * Report an async result.
- * @param result Tje job execution result
- * @throws IllegalStateException If the job is not processed asynchronously
- * or if this method has already been called.
- */
- void asyncProcessingFinished(JobExecutionResult result);
-
- /**
- * If a job is stoppable, it should periodically check this method
- * and stop processing if the method return <code>true</code>.
- * If a job is stopped and the job executor detects this, its up
- * to the implementation to decide the result of such a state.
- * There might be use cases where the job returns {@link JobExecutionResult#succeeded()}
- * although it didn't process everything, or {@link JobExecutionResult#failed()}
- * to retry later on or {@link JobExecutionResult#cancelled()}.
- *
- * @return Whether this job has been stopped from the outside.
- */
- boolean isStopped();
-
- /**
- * Indicate that the job executor is able to report the progress.
- * The progress can either be reported by a step count,
- * assuming that all steps take roughly the same amount of time.
- * Or the progress can be reported by an ETA containing the number
- * of seconds the job needs to finish.
- * This method should only be called once, consecutive calls
- * have no effect.
- * By using a step count of 100, the progress can be displayed
- * in percentage.
- * @param steps Number of total steps or -1 if the number of
- * steps is unknown.
- * @param eta Number of seconds the process should take or
- * -1 of it's not known now.
- */
- void initProgress(int steps, long eta);
-
- /**
- * Update the progress by additionally marking the provided
- * number of steps as finished. If the total number of finished
- * steps is equal or higher to the initial number of steps
- * reported in {@link #initProgress(int, long)}, then the
- * job progress is assumed to be 100%.
- * This method has only effect if {@link #initProgress(int, long)}
- * has been called first with a positive number for steps
- * @param steps The number of finished steps since the last call.
- */
- void incrementProgressCount(int steps);
-
- /**
- * Update the progress to the new ETA.
- * This method has only effect if {@link #initProgress(int, long)}
- * has been called first.
- * @param eta The new ETA
- */
- void updateProgress(long eta);
-
- /**
- * Log a message.
- * A job consumer can use this method during job processing to add additional information
- * about the current state of job processing.
- * As calling this method adds a significant overhead it should only
- * be used to log a few statements per job processing. If a consumer wants
- * to output detailed information about the processing it should persists it
- * by itself and not use this method for it.
- * The message and the arguments are passed to the {@link java.text.MessageFormat}
- * class.
- * @param message A message
- * @param args Additional arguments
- */
- void log(String message, Object...args);
-
- /**
- * Build a result for the processing.
- * @return The build for the result
- */
- ResultBuilder result();
-
- public interface ResultBuilder {
-
- /**
- * Add an optional processing message.
- * This message can be viewed using {@link org.apache.sling.event.jobs.Job#getResultMessage()}.
- * @param message The message
- * @return The builder to continue building the result.
- */
- ResultBuilder message(String message);
-
- /**
- * The job processing finished successfully.
- * @return The job execution result.
- */
- JobExecutionResult succeeded();
-
- /**
- * The job processing failed and might be retried.
- * @return The job execution result.
- */
- JobExecutionResult failed();
-
- /**
- * The job processing failed and might be retried.
- * @param retryDelayInMs The new retry delay in ms.
- * @return The job execution result
- */
- JobExecutionResult failed(long retryDelayInMs);
-
- /**
- * The job processing failed permanently.
- * @return The job execution result
- */
- JobExecutionResult cancelled();
- }
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java b/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java
deleted file mode 100644
index c3da0f0..0000000
--- a/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutionResult.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs.consumer;
-
-import org.osgi.annotation.versioning.ProviderType;
-
-/**
- * The status of a job after it has been processed by a {@link JobExecutor}.
- * The job executor uses the {@link JobExecutionContext} to create a result object.
- *
- * The result can have three states, succeeded, cancelled or failed whereas
- * failed means that the execution is potentially retried.
- *
- * @since 1.1
- */
-@ProviderType
-public interface JobExecutionResult {
-
- /**
- * If this returns true the job processing finished successfully.
- * In this case {@link #cancelled()} and {@link #failed()} return
- * <code>false</code>
- * @return <code>true</code> for a successful processing
- */
- boolean succeeded();
-
- /**
- * If this returns true the job processing failed permanently.
- * In this case {@link #succeeded()} and {@link #failed()} return
- * <code>false</code>
- * @return <code>true</code> for a permanently failed processing
- */
- boolean cancelled();
-
- /**
- * If this returns true the job processing failed but might be
- * retried..
- * In this case {@link #cancelled()} and {@link #succeeded()} return
- * <code>false</code>
- * @return <code>true</code> for a failedl processing
- */
- boolean failed();
-
- /**
- * Return the optional message.
- * @return The message or <code>null</code>
- */
- String getMessage();
-
- /**
- * Return the retry delay in ms
- * @return The new retry delay (>= 0) or <code>null</code>
- */
- Long getRetryDelayInMs();
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java b/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java
deleted file mode 100644
index b720546..0000000
--- a/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.event.jobs.consumer;
-
-import org.apache.sling.event.jobs.Job;
-
-import org.osgi.annotation.versioning.ConsumerType;
-
-/**
- * A job executor consumes a job.
- * <p>
- * A job executor registers itself with the {@link #PROPERTY_TOPICS} service registration
- * property. The value of this property defines which topics an executor is able to process.
- * Each string value of this property is either
- * <ul>
- * <li>a job topic, or
- * <li>a topic category ending with "/*" which means all topics in this category, or
- * <li>a topic category ending with "/**" which means all topics in this category and all
- * sub categories. This matching is new since version 1.2.
- * </ul>
- * A consumer registering for just "*" or "**" is not considered.
- * <p>
- * For example, the value {@code org/apache/sling/jobs/*} matches the topics
- * {@code org/apache/sling/jobs/a} and {@code org/apache/sling/jobs/b} but neither
- * {@code org/apache/sling/jobs} nor {@code org/apache/sling/jobs/subcategory/a}. A value of
- * {@code org/apache/sling/jobs/**} matches the same topics but also all sub topics
- * like {@code org/apache/sling/jobs/subcategory/a} or {@code org/apache/sling/jobs/subcategory/a/c/d}.
- * <p>
- * If there is more than one job consumer or executor registered for a job topic, the selection is as
- * follows:
- * <ul>
- * <li>If there is a single consumer registering for the exact topic, this one is used.
- * <li>If there is more than a single consumer registering for the exact topic, the one
- * with the highest service ranking is used. If the ranking is equal, the one with
- * the lowest service ID is used.
- * <li>If there is a single consumer registered for the category, it is used.
- * <li>If there is more than a single consumer registered for the category, the service
- * with the highest service ranking is used. If the ranking is equal, the one with
- * the lowest service ID is used.
- * <li>The search continues with consumer registered for deep categories. The nearest one
- * is tried next. If there are several, the one with the highest service ranking is
- * used. If the ranking is equal, the one with the lowest service ID is used.
- * </ul>
- * <p>
- * If the executor decides to process the job asynchronously, the processing must finish
- * within the current lifetime of the job executor. If the executor (or the instance
- * of the executor) dies, the job processing will mark this processing as failed and
- * reschedule.
- *
- * @since 1.1
- */
-@ConsumerType
-public interface JobExecutor {
-
- /**
- * Service registration property defining the jobs this executor is able to process.
- * The value is either a string or an array of strings.
- */
- String PROPERTY_TOPICS = "job.topics";
-
- /**
- * Execute the job.
- *
- * If the job has been processed successfully, a job result of "succeeded" should be returned. This result can
- * be generated by calling <code>JobExecutionContext.result().succeeded()</code>
- *
- * If the job has not been processed completely, but might be rescheduled "failed" should be returned.
- * This result can be generated by calling <code>JobExecutionContext.result().failed()</code>.
- *
- * If the job processing failed and should not be rescheduled, "cancelled" should be returned.
- * This result can be generated by calling <code>JobExecutionContext.result().cancelled()</code>.
- *
- * If the executor decides to process the job asynchronously it should return <code>null</code>
- * and notify the job manager by using the {@link JobExecutionContext#asyncProcessingFinished(JobExecutionResult)}
- * method of the processing result.
- *
- * If the processing fails with throwing an exception/throwable, the process will not be rescheduled
- * and treated like the method would have returned a "cancelled" result.
- *
- * Additional information can be added to the result by using the builder pattern available
- * from {@link JobExecutionContext#result()}.
- *
- * @param job The job
- * @param context The execution context.
- * @return The job execution result or <code>null</code> for asynchronous processing.
- */
- JobExecutionResult process(Job job, JobExecutionContext context);
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java b/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java
deleted file mode 100644
index 5237caa..0000000
--- a/src/main/java/org/apache/sling/event/jobs/consumer/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-@org.osgi.annotation.versioning.Version("1.2.1")
-package org.apache.sling.event.jobs.consumer;
-
-
diff --git a/src/main/java/org/apache/sling/event/jobs/jmx/QueuesMBean.java b/src/main/java/org/apache/sling/event/jobs/jmx/QueuesMBean.java
deleted file mode 100644
index 9e8af7d..0000000
--- a/src/main/java/org/apache/sling/event/jobs/jmx/QueuesMBean.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The SF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package org.apache.sling.event.jobs.jmx;
-
-/**
- * A Marker interface to allow the implementation to register as a service with
- * the JMX whiteboard.
- */
-public interface QueuesMBean {
-
- String[] getQueueNames();
-
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/jmx/StatisticsMBean.java b/src/main/java/org/apache/sling/event/jobs/jmx/StatisticsMBean.java
deleted file mode 100644
index 321f574..0000000
--- a/src/main/java/org/apache/sling/event/jobs/jmx/StatisticsMBean.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The SF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- */
-package org.apache.sling.event.jobs.jmx;
-
-import java.util.Date;
-
-import org.apache.sling.event.jobs.Statistics;
-
-public interface StatisticsMBean extends Statistics {
-
- Date getLastActivatedJobDate();
-
- Date getLastFinishedJobDate();
-
- Date getStartDate();
-
- String getName();
-
-}
diff --git a/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java b/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java
deleted file mode 100644
index 515bde1..0000000
--- a/src/main/java/org/apache/sling/event/jobs/jmx/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-@org.osgi.annotation.versioning.Version("1.0.1")
-package org.apache.sling.event.jobs.jmx;
-
-
diff --git a/src/main/java/org/apache/sling/event/jobs/package-info.java b/src/main/java/org/apache/sling/event/jobs/package-info.java
deleted file mode 100644
index 6ea3e5c..0000000
--- a/src/main/java/org/apache/sling/event/jobs/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-@org.osgi.annotation.versioning.Version("2.0.1")
-package org.apache.sling.event.jobs;
-
-
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.