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-jobs.git
commit fbbb9b15367d04ccbea68af9b53e86a3ccbe2f28 Author: Carsten Ziegeler <[email protected]> AuthorDate: Tue Feb 28 13:41:01 2017 +0000 SLING-6574 : Remove unnecessary dependency to Guava git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1784738 13f79535-47bb-0310-9956-ffa450edef68 --- pom.xml | 8 ---- src/main/java/org/apache/sling/jobs/Job.java | 11 ++--- .../java/org/apache/sling/jobs/JobController.java | 4 -- .../java/org/apache/sling/jobs/JobManager.java | 6 +-- src/main/java/org/apache/sling/jobs/JobUpdate.java | 6 +-- .../org/apache/sling/jobs/impl/JobBuilderImpl.java | 13 +++--- .../java/org/apache/sling/jobs/impl/JobImpl.java | 17 +++++--- .../org/apache/sling/jobs/impl/JobManagerImpl.java | 15 ++++--- .../sling/jobs/impl/JobQueueConsumerFactory.java | 44 +++++++++++-------- .../org/apache/sling/jobs/impl/JobSubsystem.java | 49 ++++++++++------------ .../sling/jobs/impl/JobUpdateBuilderImpl.java | 16 +++---- .../org/apache/sling/jobs/impl/JobUpdateImpl.java | 46 ++++++++++++-------- .../sling/jobs/impl/OutboundJobUpdateListener.java | 8 ++-- .../java/org/apache/sling/jobs/impl/Utils.java | 16 +++---- 14 files changed, 132 insertions(+), 127 deletions(-) diff --git a/pom.xml b/pom.xml index 72e02c4..3037738 100644 --- a/pom.xml +++ b/pom.xml @@ -92,20 +92,12 @@ <dependency> <groupId>org.osgi</groupId> <artifactId>osgi.core</artifactId> - <version>6.0.0</version> - <scope>provided</scope> </dependency> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>2.0.1</version> </dependency> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <!-- Use the version being used in Sling --> - <version>15.0</version> - </dependency> <!-- Testing --> <dependency> <groupId>junit</groupId> diff --git a/src/main/java/org/apache/sling/jobs/Job.java b/src/main/java/org/apache/sling/jobs/Job.java index 284f346..5c55a71 100644 --- a/src/main/java/org/apache/sling/jobs/Job.java +++ b/src/main/java/org/apache/sling/jobs/Job.java @@ -19,17 +19,12 @@ package org.apache.sling.jobs; -import com.google.common.collect.ImmutableSet; -import org.apache.sling.mom.TopicManager; -import org.osgi.annotation.versioning.ProviderType; -import org.slf4j.LoggerFactory; +import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Collections; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; + +import org.osgi.annotation.versioning.ProviderType; /** * Largely based on org.apache.sling.event.Job. diff --git a/src/main/java/org/apache/sling/jobs/JobController.java b/src/main/java/org/apache/sling/jobs/JobController.java index 153ad62..b1e86cd 100644 --- a/src/main/java/org/apache/sling/jobs/JobController.java +++ b/src/main/java/org/apache/sling/jobs/JobController.java @@ -16,10 +16,8 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.sling.jobs; - import org.osgi.annotation.versioning.ProviderType; /** @@ -42,6 +40,4 @@ public interface JobController { * Abort the job immediately. */ void abort(); - - } diff --git a/src/main/java/org/apache/sling/jobs/JobManager.java b/src/main/java/org/apache/sling/jobs/JobManager.java index 1354342..c0eaa60 100644 --- a/src/main/java/org/apache/sling/jobs/JobManager.java +++ b/src/main/java/org/apache/sling/jobs/JobManager.java @@ -18,12 +18,10 @@ */ package org.apache.sling.jobs; -import org.osgi.annotation.versioning.ProviderType; - import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Collection; -import java.util.Map; + +import org.osgi.annotation.versioning.ProviderType; /** * Based on org.apache.sling.event.job.JobManager but trimmed down and adjusted to deal with distributed job queues. diff --git a/src/main/java/org/apache/sling/jobs/JobUpdate.java b/src/main/java/org/apache/sling/jobs/JobUpdate.java index 301cf47..4e5bd8e 100644 --- a/src/main/java/org/apache/sling/jobs/JobUpdate.java +++ b/src/main/java/org/apache/sling/jobs/JobUpdate.java @@ -18,12 +18,12 @@ */ package org.apache.sling.jobs; -import org.apache.sling.mom.TopicManager; -import org.osgi.annotation.versioning.ProviderType; +import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Map; + +import org.osgi.annotation.versioning.ProviderType; /** * Job updates are messages that update the state of the job at all subscribers. diff --git a/src/main/java/org/apache/sling/jobs/impl/JobBuilderImpl.java b/src/main/java/org/apache/sling/jobs/impl/JobBuilderImpl.java index a9da26a..8450718 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobBuilderImpl.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobBuilderImpl.java @@ -18,22 +18,21 @@ */ package org.apache.sling.jobs.impl; +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Nonnull; + import org.apache.sling.jobs.Job; import org.apache.sling.jobs.JobBuilder; import org.apache.sling.jobs.Types; import org.apache.sling.jobs.impl.spi.JobStarter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.annotation.Nonnull; -import java.util.HashMap; -import java.util.Map; /** * Provides an implementation of a JobBuilder. */ public class JobBuilderImpl implements JobBuilder { - private static final Logger LOGGER = LoggerFactory.getLogger(JobBuilderImpl.class); + private final String id; private final Map<String, Object> properties; private final JobStarter jobStarter; diff --git a/src/main/java/org/apache/sling/jobs/impl/JobImpl.java b/src/main/java/org/apache/sling/jobs/impl/JobImpl.java index 6ece8f1..be965d2 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobImpl.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobImpl.java @@ -18,13 +18,18 @@ */ package org.apache.sling.jobs.impl; -import com.google.common.base.Preconditions; -import org.apache.sling.jobs.*; +import java.util.HashMap; +import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.HashMap; -import java.util.Map; + +import org.apache.sling.jobs.Job; +import org.apache.sling.jobs.JobController; +import org.apache.sling.jobs.JobUpdate; +import org.apache.sling.jobs.JobUpdateBuilder; +import org.apache.sling.jobs.JobUpdateListener; +import org.apache.sling.jobs.Types; /** * JobImpl is a data object to hold the current state of the job in the current JVM as loaded into memory. @@ -202,7 +207,9 @@ public class JobImpl implements Job, JobUpdateListener { * @param properties the update properties. */ private void updateProperties(@Nonnull Map<String, Object> properties) { - Preconditions.checkNotNull(properties, "Properties cant be null."); + if ( properties == null ) { + throw new IllegalArgumentException("Properties cant be null."); + } for (Map.Entry<String, Object> e : properties.entrySet()) { if (e.getValue() instanceof JobUpdate.JobPropertyAction ) { switch(((JobUpdate.JobPropertyAction)e.getValue())) { diff --git a/src/main/java/org/apache/sling/jobs/impl/JobManagerImpl.java b/src/main/java/org/apache/sling/jobs/impl/JobManagerImpl.java index 58bb464..0850bd7 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobManagerImpl.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobManagerImpl.java @@ -18,14 +18,17 @@ */ package org.apache.sling.jobs.impl; -import org.apache.sling.jobs.*; -import org.apache.sling.jobs.impl.spi.JobStarter; -import org.apache.sling.jobs.impl.spi.JobStorage; - import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Collection; -import java.util.Map; + +import org.apache.sling.jobs.Job; +import org.apache.sling.jobs.JobBuilder; +import org.apache.sling.jobs.JobManager; +import org.apache.sling.jobs.JobUpdate; +import org.apache.sling.jobs.JobUpdateListener; +import org.apache.sling.jobs.Types; +import org.apache.sling.jobs.impl.spi.JobStarter; +import org.apache.sling.jobs.impl.spi.JobStorage; /** * Implements a JobManager, storing Jobs in a JobStorage implementation. diff --git a/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java b/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java index a1091ec..62c5214 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobQueueConsumerFactory.java @@ -19,19 +19,34 @@ package org.apache.sling.jobs.impl; -import com.google.common.collect.ImmutableSet; -import org.apache.felix.scr.annotations.*; -import org.apache.sling.jobs.*; -import org.apache.sling.mom.*; +import java.util.Collections; +import java.util.Map; +import java.util.Set; + +import javax.annotation.Nonnull; + +import org.apache.felix.scr.annotations.Activate; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.ConfigurationPolicy; +import org.apache.felix.scr.annotations.Properties; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Reference; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.jobs.Job; +import org.apache.sling.jobs.JobCallback; +import org.apache.sling.jobs.JobConsumer; +import org.apache.sling.jobs.JobManager; +import org.apache.sling.jobs.JobUpdate; +import org.apache.sling.jobs.JobUpdateListener; +import org.apache.sling.mom.MessageFilter; +import org.apache.sling.mom.QueueManager; +import org.apache.sling.mom.QueueReader; +import org.apache.sling.mom.RequeueMessageException; +import org.apache.sling.mom.TopicManager; import org.apache.sling.mom.Types; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nonnull; -import java.util.Map; -import java.util.Queue; -import java.util.Set; - /** * This is a configuration factory that creates QueueReader instances on configuration. These connect to the JobManager * service and are registered using the OSGi Whiteboard pattern with the QueueManager. The JobManager service must implement JobConsumer. @@ -48,7 +63,7 @@ import java.util.Set; public class JobQueueConsumerFactory implements QueueReader, MessageFilter { private static final Logger LOGGER = LoggerFactory.getLogger(JobQueueConsumerFactory.class); - private static final Set<JobUpdate.JobUpdateCommand> ALLOWED_COMMANDS = ImmutableSet.of(JobUpdate.JobUpdateCommand.UPDATE_JOB) ; + private static final Set<JobUpdate.JobUpdateCommand> ALLOWED_COMMANDS = Collections.unmodifiableSet(Collections.singleton(JobUpdate.JobUpdateCommand.UPDATE_JOB)); @Reference private JobManager jobManager; @@ -59,20 +74,13 @@ public class JobQueueConsumerFactory implements QueueReader, MessageFilter { private QueueManager queueManager; @Activate - public void activate(Map<String, Object> properties) { + public void activate() { if ( !(jobManager instanceof JobConsumer) ) { LOGGER.error("JobManager must implement JobConsumer interface. {} does not. ", jobManager.getClass()); throw new IllegalStateException("JobManager does not implement JobConsumer"); } } - @Deactivate - public void deactivate(@SuppressWarnings("UnusedParameters") Map<String, Object> properties) { - } - - - - @Override public void onMessage(Types.QueueName queueName, Map<String, Object> message) throws RequeueMessageException { diff --git a/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java b/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java index 1be6a00..e8f5750 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobSubsystem.java @@ -19,8 +19,17 @@ package org.apache.sling.jobs.impl; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; +import java.io.Closeable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Deactivate; @@ -44,15 +53,6 @@ import org.osgi.framework.ServiceReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.io.Closeable; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - /** * NB, this does *not* register as a JobConsumer service. it implements a JobConsumer so that it can consume Jobs from JobQueueConsumers. */ @@ -83,14 +83,14 @@ public class JobSubsystem implements JobManager, JobConsumer { private QueueManager queueManager; @Activate - public synchronized void activate(@SuppressWarnings("UnusedParameters") Map<String, Object> properties) { + public synchronized void activate() { jobStorage = new InMemoryJobStorage(); messageSender = new OutboundJobUpdateListener(topicManager, queueManager); manager = new JobManagerImpl(jobStorage, messageSender); } @Deactivate - public synchronized void deactivate(@SuppressWarnings("UnusedParameters") Map<String, Object> properties) { + public synchronized void deactivate() { for (Map.Entry<ServiceReference<JobConsumer>, JobConsumerHolder> e : registrations.entrySet()) { e.getValue().close(); } @@ -137,18 +137,10 @@ public class JobSubsystem implements JobManager, JobConsumer { LOGGER.error("Registration for service reference is already present {}",serviceRef); return; } - JobConsumerHolder jobConsumerHolder = new JobConsumerHolder(serviceRef.getBundle().getBundleContext().getService(serviceRef), getServiceProperties(serviceRef)); + JobConsumerHolder jobConsumerHolder = new JobConsumerHolder(serviceRef.getBundle().getBundleContext().getService(serviceRef), serviceRef); registrations.put(serviceRef, jobConsumerHolder); } - private Map<Object, Object> getServiceProperties(ServiceReference<JobConsumer> serviceRef) { - ImmutableMap.Builder<Object, Object> builder = ImmutableMap.builder(); - for ( String k : serviceRef.getPropertyKeys()) { - builder.put(k, serviceRef.getProperty(k)); - } - return builder.build(); - } - public synchronized void removeConsumer(ServiceReference<JobConsumer> serviceRef) { JobConsumerHolder jobConsumerHolder = registrations.remove(serviceRef); if ( jobConsumerHolder != null) { @@ -182,17 +174,17 @@ public class JobSubsystem implements JobManager, JobConsumer { private final JobConsumer consumer; private final Set<Types.JobType> jobTypes; - public JobConsumerHolder(JobConsumer consumer, Map<Object, Object> properties) { + public JobConsumerHolder(JobConsumer consumer, ServiceReference<JobConsumer> ref) { this.consumer = consumer; if ( consumer instanceof JobTypeValve) { - jobTypes = ImmutableSet.of(); + jobTypes = Collections.emptySet(); } else { - jobTypes = getJobTypes(properties); + jobTypes = getJobTypes(ref); } } - public Set<Types.JobType> getJobTypes(Map<Object, Object> properties) { - Object types = properties.get(JobConsumer.JOB_TYPES); + public Set<Types.JobType> getJobTypes(ServiceReference<JobConsumer> ref) { + Object types = ref.getProperty(JobConsumer.JOB_TYPES); if (types instanceof String) { return Types.jobType(new String[]{(String) types}); @@ -204,7 +196,7 @@ public class JobSubsystem implements JobManager, JobConsumer { for (Object o : (Iterable<?>) types) { l.add(String.valueOf(o)); } - return Types.jobType((String[]) l.toArray(new String[l.size()])); + return Types.jobType(l.toArray(new String[l.size()])); } throw new IllegalArgumentException("For the JobConsumer to work, the job consumer must either " + "implement a JobTypeValve or define a list of JobTypes, neither were specified. " + @@ -223,6 +215,7 @@ public class JobSubsystem implements JobManager, JobConsumer { return jobTypes.contains(jobType); } + @Override public void close() { // nothing to do at the moment. } diff --git a/src/main/java/org/apache/sling/jobs/impl/JobUpdateBuilderImpl.java b/src/main/java/org/apache/sling/jobs/impl/JobUpdateBuilderImpl.java index f708c25..5347b5c 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobUpdateBuilderImpl.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobUpdateBuilderImpl.java @@ -18,14 +18,16 @@ */ package org.apache.sling.jobs.impl; -import com.google.common.collect.ImmutableMap; -import org.apache.sling.jobs.Job; -import org.apache.sling.jobs.JobUpdate; -import org.apache.sling.jobs.JobUpdateBuilder; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.Map; + +import org.apache.sling.jobs.Job; +import org.apache.sling.jobs.JobUpdate; +import org.apache.sling.jobs.JobUpdateBuilder; /** */ @@ -34,7 +36,7 @@ public class JobUpdateBuilderImpl implements JobUpdateBuilder { private final String jobId; private final Job job; private JobUpdate.JobUpdateCommand command; - private final ImmutableMap.Builder<String, Object> updateProperties = ImmutableMap.builder(); + private final Map<String, Object> updateProperties = new HashMap<>(); /** * Create a JobUpdateBuilder from a job. @@ -96,7 +98,7 @@ public class JobUpdateBuilderImpl implements JobUpdateBuilder { @Override public JobUpdate build() { if ( job != null) { - return new JobUpdateImpl(job, command, updateProperties.build()); + return new JobUpdateImpl(job, command, Collections.unmodifiableMap(this.updateProperties)); } else if ( command == JobUpdate.JobUpdateCommand.ABORT_JOB || command == JobUpdate.JobUpdateCommand.STOP_JOB) { return new JobUpdateImpl(jobId, command); } else { diff --git a/src/main/java/org/apache/sling/jobs/impl/JobUpdateImpl.java b/src/main/java/org/apache/sling/jobs/impl/JobUpdateImpl.java index 03f20cf..5fb8394 100644 --- a/src/main/java/org/apache/sling/jobs/impl/JobUpdateImpl.java +++ b/src/main/java/org/apache/sling/jobs/impl/JobUpdateImpl.java @@ -18,18 +18,18 @@ */ package org.apache.sling.jobs.impl; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableMap; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + import org.apache.sling.jobs.Job; import org.apache.sling.jobs.JobUpdate; import org.apache.sling.jobs.Types; import org.apache.sling.jobs.impl.spi.MapValueAdapter; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.HashMap; -import java.util.Map; - /** * Represents messages sent to the Job via a message queue. * Abort, stop and update messages should be sent via a priority queue. @@ -61,9 +61,15 @@ public class JobUpdateImpl implements MapValueAdapter, JobUpdate { * @param properties properties in the update message. */ public JobUpdateImpl(@Nonnull Job job, @Nonnull JobUpdateCommand command, @Nonnull Map<String, Object> properties) { - Preconditions.checkNotNull(job, "Job argument cant be null"); - Preconditions.checkNotNull(command, "JobCommand argument cant be null"); - Preconditions.checkNotNull(properties, "Map of properties cant be null"); + if ( job == null ) { + throw new IllegalArgumentException("Job argument cant be null"); + } + if ( command == null ) { + throw new IllegalArgumentException("JobCommand argument cant be null"); + } + if ( properties == null ) { + throw new IllegalArgumentException("Map of properties cant be null"); + } jobQueue = job.getQueue(); jobType = job.getJobType(); @@ -86,20 +92,26 @@ public class JobUpdateImpl implements MapValueAdapter, JobUpdate { * @param message a inbound message in map form. */ public JobUpdateImpl(@Nonnull Map<String, Object> message) { - Preconditions.checkNotNull(message, "Message cant be null"); + if ( message == null ) { + throw new IllegalArgumentException("Message cant be null"); + } fromMapValue(message); } public JobUpdateImpl(@Nonnull String jobId, @Nonnull JobUpdateCommand command) { - Preconditions.checkNotNull(jobId, "JobId argument cant be null"); - Preconditions.checkNotNull(command, "JobUpdateCommand argument cant be null"); + if ( jobId == null ) { + throw new IllegalArgumentException("JobId argument cant be null"); + } + if ( command == null ) { + throw new IllegalArgumentException("JobUpdateCommand argument cant be null"); + } jobQueue = Types.ANY_JOB_QUEUE; id = jobId; updateTimestamp = System.currentTimeMillis(); expires = updateTimestamp + TTL; jobState = Job.JobState.ANY_STATE; this.command = command; - this.properties = ImmutableMap.of(); + this.properties = Collections.emptyMap(); } @@ -211,7 +223,7 @@ public class JobUpdateImpl implements MapValueAdapter, JobUpdate { @Override @Nonnull public Object toMapValue() { - ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder(); + final Map<String, Object> builder = new HashMap<>(); builder.put("tp", jobQueue.toString()); builder.put("jt",jobType.toString()); builder.put("id",id); @@ -226,9 +238,9 @@ public class JobUpdateImpl implements MapValueAdapter, JobUpdate { builder.put("finishedAt", finishedAt); builder.put("jobState", jobState.toString()); builder.put("resultMessage", resultMessage); - builder.put("properties", ImmutableMap.builder().putAll(properties).build()); + builder.put("properties", Collections.unmodifiableMap(properties)); } - return builder.build(); + return Collections.unmodifiableMap(builder); } } diff --git a/src/main/java/org/apache/sling/jobs/impl/OutboundJobUpdateListener.java b/src/main/java/org/apache/sling/jobs/impl/OutboundJobUpdateListener.java index d6bebad..734bb2a 100644 --- a/src/main/java/org/apache/sling/jobs/impl/OutboundJobUpdateListener.java +++ b/src/main/java/org/apache/sling/jobs/impl/OutboundJobUpdateListener.java @@ -16,17 +16,15 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.sling.jobs.impl; +import javax.annotation.Nonnull; + import org.apache.sling.jobs.JobUpdate; import org.apache.sling.jobs.JobUpdateListener; -import org.apache.sling.jobs.Types; import org.apache.sling.mom.QueueManager; import org.apache.sling.mom.TopicManager; -import javax.annotation.Nonnull; - /** * Sends messages out to JMS Queues or topics. Normally called by the local JobManager Implementation. * Uses a TopicManager or QueueManager to perform the send operation. @@ -43,7 +41,7 @@ public class OutboundJobUpdateListener implements JobUpdateListener { this.queueManager = queueManager; active = true; } - + public void dispose() { active = false; } diff --git a/src/main/java/org/apache/sling/jobs/impl/Utils.java b/src/main/java/org/apache/sling/jobs/impl/Utils.java index 662d002..6882303 100644 --- a/src/main/java/org/apache/sling/jobs/impl/Utils.java +++ b/src/main/java/org/apache/sling/jobs/impl/Utils.java @@ -18,21 +18,23 @@ */ package org.apache.sling.jobs.impl; -import org.apache.sling.jobs.impl.spi.MapValueAdapter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.io.File; import java.net.NetworkInterface; import java.net.SocketException; import java.nio.charset.Charset; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import java.util.*; +import java.util.Enumeration; +import java.util.Map; import java.util.concurrent.atomic.AtomicLong; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +import org.apache.sling.jobs.impl.spi.MapValueAdapter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** */ public class Utils { -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
