diff --git a/community/common/src/main/java/org/neo4j/scheduler/CancelListener.java b/community/common/src/main/java/org/neo4j/scheduler/CancelListener.java
new file mode 100644
index 0000000000000..440cdc212c43b
--- /dev/null
+++ b/community/common/src/main/java/org/neo4j/scheduler/CancelListener.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2002-2018 "Neo4j,"
+ * Neo4j Sweden AB [http://neo4j.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.scheduler;
+
+/**
+ * Gets notified about calls to {@link JobHandle#cancel(boolean)}.
+ */
+public interface CancelListener
+{
+ /**
+ * Notification that {@link JobHandle#cancel(boolean)} was called.
+ *
+ * @param mayInterruptIfRunning argument from {@link JobHandle#cancel(boolean)} call.
+ */
+ void cancelled( boolean mayInterruptIfRunning );
+}
diff --git a/community/common/src/main/java/org/neo4j/scheduler/Group.java b/community/common/src/main/java/org/neo4j/scheduler/Group.java
new file mode 100644
index 0000000000000..ab3c0e0a81641
--- /dev/null
+++ b/community/common/src/main/java/org/neo4j/scheduler/Group.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2002-2018 "Neo4j,"
+ * Neo4j Sweden AB [http://neo4j.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.scheduler;
+
+import java.util.Objects;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Represents a common group of jobs, defining how they should be scheduled.
+ */
+public final class Group
+{
+ private final AtomicInteger threadCounter = new AtomicInteger();
+ private final String name;
+
+ Group( String name )
+ {
+ Objects.requireNonNull( name, "Group name cannot be null." );
+ this.name = name;
+ }
+
+ public String name()
+ {
+ return name;
+ }
+
+ /**
+ * Name a new thread. This method may or may not be used, it is up to the scheduling strategy to decide
+ * to honor this.
+ */
+ public String threadName()
+ {
+ return "neo4j." + name() + "-" + threadCounter.incrementAndGet();
+ }
+
+ @Override
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+
+ Group group = (Group) o;
+
+ return name.equals( group.name );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return name.hashCode();
+ }
+}
diff --git a/community/common/src/main/java/org/neo4j/scheduler/JobHandle.java b/community/common/src/main/java/org/neo4j/scheduler/JobHandle.java
new file mode 100644
index 0000000000000..1d30c52541b43
--- /dev/null
+++ b/community/common/src/main/java/org/neo4j/scheduler/JobHandle.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2002-2018 "Neo4j,"
+ * Neo4j Sweden AB [http://neo4j.com]
+ *
+ * This file is part of Neo4j.
+ *
+ * Neo4j is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.neo4j.scheduler;
+
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutionException;
+
+public interface JobHandle
+{
+ void cancel( boolean mayInterruptIfRunning );
+
+ void waitTermination() throws InterruptedException, ExecutionException, CancellationException;
+
+ default void registerCancelListener( CancelListener listener )
+ {
+ throw new UnsupportedOperationException( "Unsupported in this implementation" );
+ }
+}
diff --git a/community/common/src/main/java/org/neo4j/scheduler/JobScheduler.java b/community/common/src/main/java/org/neo4j/scheduler/JobScheduler.java
index c8a8a2eed9828..63cdd45192d56 100644
--- a/community/common/src/main/java/org/neo4j/scheduler/JobScheduler.java
+++ b/community/common/src/main/java/org/neo4j/scheduler/JobScheduler.java
@@ -19,15 +19,11 @@
*/
package org.neo4j.scheduler;
-import java.util.Objects;
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
import org.neo4j.kernel.lifecycle.Lifecycle;
@@ -37,58 +33,6 @@
*/
public interface JobScheduler extends Lifecycle
{
- /**
- * Represents a common group of jobs, defining how they should be scheduled.
- */
- final class Group
- {
- private final AtomicInteger threadCounter = new AtomicInteger();
- private final String name;
-
- private Group( String name )
- {
- Objects.requireNonNull( name, "Group name cannot be null." );
- this.name = name;
- }
-
- public String name()
- {
- return name;
- }
-
- /**
- * Name a new thread. This method may or may not be used, it is up to the scheduling strategy to decide
- * to honor this.
- */
- public String threadName()
- {
- return "neo4j." + name() + "-" + threadCounter.incrementAndGet();
- }
-
- @Override
- public boolean equals( Object o )
- {
- if ( this == o )
- {
- return true;
- }
- if ( o == null || getClass() != o.getClass() )
- {
- return false;
- }
-
- Group group = (Group) o;
-
- return name.equals( group.name );
- }
-
- @Override
- public int hashCode()
- {
- return name.hashCode();
- }
- }
-
/**
* This is an exhaustive list of job types that run in the database. It should be expanded as needed for new groups
* of jobs.
@@ -242,31 +186,6 @@ private Groups()
}
}
- interface JobHandle
- {
- void cancel( boolean mayInterruptIfRunning );
-
- void waitTermination() throws InterruptedException, ExecutionException, CancellationException;
-
- default void registerCancelListener( CancelListener listener )
- {
- throw new UnsupportedOperationException( "Unsupported in this implementation" );
- }
- }
-
- /**
- * Gets notified about calls to {@link JobHandle#cancel(boolean)}.
- */
- interface CancelListener
- {
- /**
- * Notification that {@link JobHandle#cancel(boolean)} was called.
- *
- * @param mayInterruptIfRunning argument from {@link JobHandle#cancel(boolean)} call.
- */
- void cancelled( boolean mayInterruptIfRunning );
- }
-
/**
* Assign a specific name to the top-most scheduler group.
*
diff --git a/community/community-it/index-it/src/test/java/org/neo4j/index/impl/lucene/explicit/NonUniqueIndexTest.java b/community/community-it/index-it/src/test/java/org/neo4j/index/impl/lucene/explicit/NonUniqueIndexTest.java
index 5e2843dd6ff96..d1ca790232b70 100644
--- a/community/community-it/index-it/src/test/java/org/neo4j/index/impl/lucene/explicit/NonUniqueIndexTest.java
+++ b/community/community-it/index-it/src/test/java/org/neo4j/index/impl/lucene/explicit/NonUniqueIndexTest.java
@@ -52,6 +52,8 @@
import org.neo4j.kernel.impl.logging.NullLogService;
import org.neo4j.kernel.impl.scheduler.CentralJobScheduler;
import org.neo4j.logging.LogProvider;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.storageengine.api.schema.IndexReader;
import org.neo4j.test.rule.PageCacheAndDependenciesRule;
import org.neo4j.test.rule.fs.DefaultFileSystemRule;
diff --git a/community/index/src/test/java/org/neo4j/index/internal/gbptree/GroupingRecoveryCleanupWorkCollectorTest.java b/community/index/src/test/java/org/neo4j/index/internal/gbptree/GroupingRecoveryCleanupWorkCollectorTest.java
index a5306375db674..7ecfa3ed60136 100644
--- a/community/index/src/test/java/org/neo4j/index/internal/gbptree/GroupingRecoveryCleanupWorkCollectorTest.java
+++ b/community/index/src/test/java/org/neo4j/index/internal/gbptree/GroupingRecoveryCleanupWorkCollectorTest.java
@@ -27,6 +27,8 @@
import java.util.List;
import org.neo4j.helpers.Exceptions;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobSchedulerAdapter;
import static org.junit.jupiter.api.Assertions.assertThrows;
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionMonitorScheduler.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionMonitorScheduler.java
index ad6a1809c4803..1b22750638ae8 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionMonitorScheduler.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionMonitorScheduler.java
@@ -22,6 +22,7 @@
import java.util.concurrent.TimeUnit;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static org.neo4j.scheduler.JobScheduler.Groups.transactionTimeoutMonitor;
@@ -31,7 +32,7 @@ public class KernelTransactionMonitorScheduler extends LifecycleAdapter
private final KernelTransactionTimeoutMonitor kernelTransactionTimeoutMonitor;
private final JobScheduler scheduler;
private final long checkIntervalMillis;
- private JobScheduler.JobHandle monitorJobHandle;
+ private JobHandle monitorJobHandle;
public KernelTransactionMonitorScheduler( KernelTransactionTimeoutMonitor kernelTransactionTimeoutMonitor,
JobScheduler scheduler, long checkIntervalMillis )
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingController.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingController.java
index 6ea3d95d7193a..25056d1724437 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingController.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/index/sampling/IndexSamplingController.java
@@ -31,7 +31,7 @@
import org.neo4j.kernel.impl.api.index.IndexMapSnapshotProvider;
import org.neo4j.kernel.impl.api.index.IndexProxy;
import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.neo4j.kernel.impl.api.index.sampling.IndexSamplingMode.BACKGROUND_REBUILD_UPDATED;
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/CentralJobScheduler.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/CentralJobScheduler.java
index 0466959824c9f..4768c97294373 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/CentralJobScheduler.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/CentralJobScheduler.java
@@ -31,6 +31,8 @@
import org.neo4j.helpers.Exceptions;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.time.Clocks;
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/GroupedDaemonThreadFactory.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/GroupedDaemonThreadFactory.java
index dae61ca6325fd..3acbcddcfe8da 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/GroupedDaemonThreadFactory.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/GroupedDaemonThreadFactory.java
@@ -24,14 +24,14 @@
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicReference;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.Group;
final class GroupedDaemonThreadFactory implements ThreadFactory, ForkJoinPool.ForkJoinWorkerThreadFactory
{
- private final JobScheduler.Group group;
+ private final Group group;
private final ThreadGroup threadGroup;
- GroupedDaemonThreadFactory( JobScheduler.Group group, ThreadGroup parentThreadGroup )
+ GroupedDaemonThreadFactory( Group group, ThreadGroup parentThreadGroup )
{
this.group = group;
threadGroup = new ThreadGroup( parentThreadGroup, group.name() );
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/PooledJobHandle.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/PooledJobHandle.java
index b03a69c031f1d..7f69280763e74 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/PooledJobHandle.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/PooledJobHandle.java
@@ -25,14 +25,15 @@
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.CancelListener;
+import org.neo4j.scheduler.JobHandle;
-final class PooledJobHandle implements JobScheduler.JobHandle
+final class PooledJobHandle implements JobHandle
{
private final Future> future;
private final Object registryKey;
private final ConcurrentHashMap> registry;
- private final List cancelListeners = new CopyOnWriteArrayList<>();
+ private final List cancelListeners = new CopyOnWriteArrayList<>();
PooledJobHandle( Future> future, Object registryKey, ConcurrentHashMap> registry )
{
@@ -45,7 +46,7 @@ final class PooledJobHandle implements JobScheduler.JobHandle
public void cancel( boolean mayInterruptIfRunning )
{
future.cancel( mayInterruptIfRunning );
- for ( JobScheduler.CancelListener cancelListener : cancelListeners )
+ for ( CancelListener cancelListener : cancelListeners )
{
cancelListener.cancelled( mayInterruptIfRunning );
}
@@ -59,7 +60,7 @@ public void waitTermination() throws InterruptedException, ExecutionException
}
@Override
- public void registerCancelListener( JobScheduler.CancelListener listener )
+ public void registerCancelListener( CancelListener listener )
{
cancelListeners.add( listener );
}
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ScheduledJobHandle.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ScheduledJobHandle.java
index 480bc892a7410..0897a678309eb 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ScheduledJobHandle.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ScheduledJobHandle.java
@@ -24,9 +24,9 @@
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicInteger;
-import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.CancelListener;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.CancelListener;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.util.concurrent.BinaryLatch;
/**
@@ -62,14 +62,14 @@ final class ScheduledJobHandle extends AtomicInteger implements JobHandle
// or happens after the relevant handles have been added to the queue.
long nextDeadlineNanos;
- private final JobScheduler.Group group;
+ private final Group group;
private final CopyOnWriteArrayList cancelListeners;
private final BinaryLatch handleRelease;
private final Runnable task;
private volatile JobHandle latestHandle;
private volatile Throwable lastException;
- ScheduledJobHandle( TimeBasedTaskScheduler scheduler, JobScheduler.Group group, Runnable task,
+ ScheduledJobHandle( TimeBasedTaskScheduler scheduler, Group group, Runnable task,
long nextDeadlineNanos, long reschedulingDelayNanos )
{
this.group = group;
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPool.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPool.java
index 80743d862f67f..65eab22c8bdc3 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPool.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPool.java
@@ -26,8 +26,8 @@
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
-import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
final class ThreadPool
{
@@ -36,7 +36,7 @@ final class ThreadPool
private final ConcurrentHashMap> registry;
private InterruptedException shutdownInterrupted;
- ThreadPool( JobScheduler.Group group, ThreadGroup parentThreadGroup )
+ ThreadPool( Group group, ThreadGroup parentThreadGroup )
{
threadFactory = new GroupedDaemonThreadFactory( group, parentThreadGroup );
executor = Executors.newCachedThreadPool( threadFactory );
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPoolManager.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPoolManager.java
index bc65b38f5ad56..f0b6e6169f08a 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPoolManager.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/ThreadPoolManager.java
@@ -23,8 +23,8 @@
import java.util.function.Function;
import org.neo4j.helpers.Exceptions;
-import org.neo4j.scheduler.JobScheduler.Group;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
final class ThreadPoolManager
{
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskScheduler.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskScheduler.java
index a806fd289ad7f..516e3e0bc9b8e 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskScheduler.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskScheduler.java
@@ -24,8 +24,8 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;
-import org.neo4j.scheduler.JobScheduler.Group;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.time.SystemNanoClock;
final class TimeBasedTaskScheduler implements Runnable
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/id/BufferedIdController.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/id/BufferedIdController.java
index 2c904c89a7545..65f263776ca75 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/id/BufferedIdController.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/id/BufferedIdController.java
@@ -25,6 +25,7 @@
import org.neo4j.kernel.impl.api.KernelTransactionsSnapshot;
import org.neo4j.kernel.impl.store.id.BufferingIdGeneratorFactory;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
/**
@@ -36,7 +37,7 @@ public class BufferedIdController extends LifecycleAdapter implements IdControll
{
private final BufferingIdGeneratorFactory bufferingIdGeneratorFactory;
private final JobScheduler scheduler;
- private JobScheduler.JobHandle jobHandle;
+ private JobHandle jobHandle;
public BufferedIdController( BufferingIdGeneratorFactory bufferingIdGeneratorFactory, JobScheduler scheduler )
{
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/CheckPointScheduler.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/CheckPointScheduler.java
index 89d78380ab349..d690d49d89d0b 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/CheckPointScheduler.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/log/checkpoint/CheckPointScheduler.java
@@ -27,6 +27,7 @@
import org.neo4j.kernel.impl.store.UnderlyingStorageException;
import org.neo4j.kernel.internal.DatabaseHealth;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.util.FeatureToggles;
@@ -106,7 +107,7 @@ private UnderlyingStorageException constructCombinedFailure()
}
};
- private volatile JobScheduler.JobHandle handle;
+ private volatile JobHandle handle;
private volatile boolean stopped;
private volatile boolean checkPointing;
private final BooleanSupplier checkPointingCondition = new BooleanSupplier()
diff --git a/community/kernel/src/main/java/org/neo4j/kernel/monitoring/VmPauseMonitor.java b/community/kernel/src/main/java/org/neo4j/kernel/monitoring/VmPauseMonitor.java
index 6c21fd8c385ab..bc115e4c659a9 100644
--- a/community/kernel/src/main/java/org/neo4j/kernel/monitoring/VmPauseMonitor.java
+++ b/community/kernel/src/main/java/org/neo4j/kernel/monitoring/VmPauseMonitor.java
@@ -26,7 +26,7 @@
import org.neo4j.logging.Log;
import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.util.VisibleForTesting;
import static java.lang.Math.max;
diff --git a/community/kernel/src/main/java/org/neo4j/udc/UsageData.java b/community/kernel/src/main/java/org/neo4j/udc/UsageData.java
index f57ba653361be..4076b47a5065f 100644
--- a/community/kernel/src/main/java/org/neo4j/udc/UsageData.java
+++ b/community/kernel/src/main/java/org/neo4j/udc/UsageData.java
@@ -21,6 +21,7 @@
import java.util.concurrent.ConcurrentHashMap;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
@@ -39,7 +40,7 @@ public class UsageData extends LifecycleAdapter
{
private final ConcurrentHashMap store = new ConcurrentHashMap<>();
private final JobScheduler scheduler;
- private JobScheduler.JobHandle featureDecayJob;
+ private JobHandle featureDecayJob;
public UsageData( JobScheduler scheduler )
{
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTimeoutMonitorSchedulerTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTimeoutMonitorSchedulerTest.java
index 77883b3afbd95..0a05f14295603 100644
--- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTimeoutMonitorSchedulerTest.java
+++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelTransactionTimeoutMonitorSchedulerTest.java
@@ -24,6 +24,7 @@
import java.util.concurrent.TimeUnit;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static org.mockito.ArgumentMatchers.any;
@@ -43,7 +44,7 @@ public class KernelTransactionTimeoutMonitorSchedulerTest
@Test
public void startJobTransactionMonitor()
{
- JobScheduler.JobHandle jobHandle = Mockito.mock( JobScheduler.JobHandle.class );
+ JobHandle jobHandle = Mockito.mock( JobHandle.class );
when( jobScheduler.scheduleRecurring( eq(transactionTimeoutMonitor), eq( transactionMonitor), anyLong(),
any(TimeUnit.class) )).thenReturn( jobHandle );
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/CentralJobSchedulerTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/CentralJobSchedulerTest.java
index b1348ed7c1ad8..1e5048eaf64a4 100644
--- a/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/CentralJobSchedulerTest.java
+++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/CentralJobSchedulerTest.java
@@ -34,8 +34,7 @@
import java.util.concurrent.locks.LockSupport;
import org.neo4j.kernel.lifecycle.LifeSupport;
-import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.util.concurrent.BinaryLatch;
import static java.lang.Thread.sleep;
@@ -91,7 +90,7 @@ public void shouldCancelRecurringJob() throws Exception
// Given
long period = 2;
life.start();
- JobScheduler.JobHandle jobHandle =
+ JobHandle jobHandle =
scheduler.scheduleRecurring( indexPopulation, countInvocationsJob, period, MILLISECONDS );
awaitFirstInvocation();
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskSchedulerTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskSchedulerTest.java
index 11c9df96750aa..56f38f91cee77 100644
--- a/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskSchedulerTest.java
+++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/scheduler/TimeBasedTaskSchedulerTest.java
@@ -31,7 +31,7 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.time.FakeClock;
import org.neo4j.util.concurrent.BinaryLatch;
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/CountingJobScheduler.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/CountingJobScheduler.java
index 104c8dbf59dd9..1a3a0dbf930fe 100644
--- a/community/kernel/src/test/java/org/neo4j/kernel/impl/util/CountingJobScheduler.java
+++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/util/CountingJobScheduler.java
@@ -26,6 +26,8 @@
import java.util.concurrent.atomic.AtomicInteger;
import org.neo4j.kernel.impl.scheduler.CentralJobScheduler;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
public class CountingJobScheduler implements JobScheduler
diff --git a/community/kernel/src/test/java/org/neo4j/kernel/monitoring/VmPauseMonitorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/monitoring/VmPauseMonitorTest.java
index 89bc27c4a6db2..c8aff349401c7 100644
--- a/community/kernel/src/test/java/org/neo4j/kernel/monitoring/VmPauseMonitorTest.java
+++ b/community/kernel/src/test/java/org/neo4j/kernel/monitoring/VmPauseMonitorTest.java
@@ -26,8 +26,9 @@
import org.neo4j.kernel.monitoring.VmPauseMonitor.VmPauseInfo;
import org.neo4j.logging.NullLog;
+import org.neo4j.scheduler.Group;
import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import static java.time.Duration.ofMillis;
import static java.time.Duration.ofSeconds;
@@ -52,7 +53,7 @@ public class VmPauseMonitorTest
@Before
public void setUp()
{
- doReturn( jobHandle ).when( jobScheduler ).schedule( any( JobScheduler.Group.class ), any( Runnable.class ) );
+ doReturn( jobHandle ).when( jobScheduler ).schedule( any( Group.class ), any( Runnable.class ) );
}
@Test
@@ -78,7 +79,7 @@ public void testStartAndStop()
monitor.start();
monitor.stop();
- verify( jobScheduler ).schedule( any( JobScheduler.Group.class ), any( Runnable.class ) );
+ verify( jobScheduler ).schedule( any( Group.class ), any( Runnable.class ) );
verify( jobHandle ).cancel( eq( true ) );
}
@@ -89,7 +90,7 @@ public void testRestart()
monitor.stop();
monitor.start();
- verify( jobScheduler, times( 2 ) ).schedule( any( JobScheduler.Group.class ), any( Runnable.class ) );
+ verify( jobScheduler, times( 2 ) ).schedule( any( Group.class ), any( Runnable.class ) );
verify( jobHandle ).cancel( eq( true ) );
}
diff --git a/community/kernel/src/test/java/org/neo4j/test/FakeClockJobScheduler.java b/community/kernel/src/test/java/org/neo4j/test/FakeClockJobScheduler.java
index 0e98874dca832..772a4d0b94bac 100644
--- a/community/kernel/src/test/java/org/neo4j/test/FakeClockJobScheduler.java
+++ b/community/kernel/src/test/java/org/neo4j/test/FakeClockJobScheduler.java
@@ -28,6 +28,7 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
+import org.neo4j.scheduler.Group;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.time.FakeClock;
@@ -173,7 +174,7 @@ public void shutdown()
throw new UnsupportedOperationException();
}
- class JobHandle implements JobScheduler.JobHandle
+ class JobHandle implements org.neo4j.scheduler.JobHandle
{
private final long id = jobIdGen.incrementAndGet();
private final Runnable runnable;
diff --git a/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java b/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java
index 1f2e167e7edfe..2b97c38ca1cf9 100644
--- a/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java
+++ b/community/kernel/src/test/java/org/neo4j/test/OnDemandJobScheduler.java
@@ -27,6 +27,8 @@
import java.util.concurrent.TimeUnit;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
public class OnDemandJobScheduler extends LifecycleAdapter implements JobScheduler
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/pruning/PruningScheduler.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/pruning/PruningScheduler.java
index e20a6f4d1d1a6..298558ae4fe80 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/pruning/PruningScheduler.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/pruning/PruningScheduler.java
@@ -31,6 +31,7 @@
import org.neo4j.causalclustering.core.state.RaftLogPruner;
import org.neo4j.function.Predicates;
import org.neo4j.kernel.impl.store.UnderlyingStorageException;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
import org.neo4j.logging.Log;
@@ -74,7 +75,7 @@ public void run()
};
private final Log log;
- private volatile JobScheduler.JobHandle handle;
+ private volatile JobHandle handle;
private volatile boolean stopped;
private volatile boolean checkPointing;
private final BooleanSupplier checkPointingCondition = new BooleanSupplier()
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/segmented/SegmentedRaftLog.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/segmented/SegmentedRaftLog.java
index b2e14d87a4a02..f265048992645 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/segmented/SegmentedRaftLog.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/log/segmented/SegmentedRaftLog.java
@@ -37,6 +37,7 @@
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static java.util.concurrent.TimeUnit.MINUTES;
@@ -76,7 +77,7 @@ public class SegmentedRaftLog extends LifecycleAdapter implements RaftLog
private State state;
private final ReaderPool readerPool;
- private JobScheduler.JobHandle readerPoolPruner;
+ private JobHandle readerPoolPruner;
public SegmentedRaftLog( FileSystemAbstraction fileSystem, File directory, long rotateAtSize,
ChannelMarshal contentMarshal, LogProvider logProvider, int readerPoolSize, Clock clock,
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipWaiter.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipWaiter.java
index 406ac9100b8d4..f55aaf32ad797 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipWaiter.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/membership/MembershipWaiter.java
@@ -33,6 +33,7 @@
import org.neo4j.kernel.monitoring.Monitors;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
@@ -90,7 +91,7 @@ CompletableFuture waitUntilCaughtUpMember( RaftMachine raft )
Evaluator evaluator = new Evaluator( raft, catchUpFuture, dbHealthSupplier );
- JobScheduler.JobHandle jobHandle = jobScheduler.schedule(
+ JobHandle jobHandle = jobScheduler.schedule(
JobScheduler.Groups.membershipWaiter,
evaluator, currentCatchupDelayInMs, MILLISECONDS );
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/Timer.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/Timer.java
index 567f70e051599..c792e0bc13740 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/Timer.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/Timer.java
@@ -24,6 +24,8 @@
import org.neo4j.causalclustering.core.consensus.schedule.TimerService.TimerName;
import org.neo4j.logging.Log;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static java.lang.String.format;
@@ -39,12 +41,12 @@ public class Timer
private final TimerName name;
private final JobScheduler scheduler;
private final Log log;
- private final JobScheduler.Group group;
+ private final Group group;
private final TimeoutHandler handler;
private Timeout timeout;
private Delay delay;
- private JobScheduler.JobHandle job;
+ private JobHandle job;
private long activeJobId;
/**
@@ -55,7 +57,7 @@ public class Timer
* @param group The scheduler group used.
* @param handler The timeout handler.
*/
- Timer( TimerName name, JobScheduler scheduler, Log log, JobScheduler.Group group, TimeoutHandler handler )
+ Timer( TimerName name, JobScheduler scheduler, Log log, Group group, TimeoutHandler handler )
{
this.name = name;
this.scheduler = scheduler;
@@ -129,7 +131,7 @@ public synchronized void reset()
*/
public void cancel( CancelMode cancelMode )
{
- JobScheduler.JobHandle job;
+ JobHandle job;
synchronized ( this )
{
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/TimerService.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/TimerService.java
index 8df2b809e7ce5..cbdb451d18d7f 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/TimerService.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/consensus/schedule/TimerService.java
@@ -28,6 +28,7 @@
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
+import org.neo4j.scheduler.Group;
import org.neo4j.scheduler.JobScheduler;
/**
@@ -54,7 +55,7 @@ public TimerService( JobScheduler scheduler, LogProvider logProvider )
* @param handler The handler invoked on a timeout.
* @return The deactivated timer.
*/
- public synchronized Timer create( TimerName name, JobScheduler.Group group, TimeoutHandler handler )
+ public synchronized Timer create( TimerName name, Group group, TimeoutHandler handler )
{
Timer timer = new Timer( name, scheduler, log, group, handler );
timers.add( timer );
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/CoreLife.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/CoreLife.java
index a0cc6d166f201..3990af2ad4ed5 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/CoreLife.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/CoreLife.java
@@ -33,7 +33,7 @@
import org.neo4j.causalclustering.identity.ClusterBinder;
import org.neo4j.causalclustering.messaging.LifecycleMessageHandler;
import org.neo4j.kernel.lifecycle.SafeLifecycle;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.JobHandle;
public class CoreLife extends SafeLifecycle
{
@@ -84,7 +84,7 @@ public void start0() throws Throwable
else
{
snapshotService.awaitState();
- Optional downloadJob = downloadService.downloadJob();
+ Optional downloadJob = downloadService.downloadJob();
if ( downloadJob.isPresent() )
{
downloadJob.get().waitTermination();
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/RaftMessageApplier.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/RaftMessageApplier.java
index 6da31becd5796..8470b112d6008 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/RaftMessageApplier.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/RaftMessageApplier.java
@@ -34,7 +34,7 @@
import org.neo4j.causalclustering.messaging.LifecycleMessageHandler;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.JobHandle;
public class RaftMessageApplier implements LifecycleMessageHandler>
{
@@ -64,7 +64,7 @@ public synchronized void handle( RaftMessages.ReceivedInstantClusterIdAwareMessa
ConsensusOutcome outcome = raftMachine.handle( wrappedMessage.message() );
if ( outcome.needsFreshSnapshot() )
{
- Optional downloadJob = downloadService.scheduleDownload( catchupAddressProvider );
+ Optional downloadJob = downloadService.scheduleDownload( catchupAddressProvider );
if ( downloadJob.isPresent() )
{
downloadJob.get().waitTermination();
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateDownloaderService.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateDownloaderService.java
index 5056ca7b733c2..91321020c1eea 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateDownloaderService.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/core/state/snapshot/CoreStateDownloaderService.java
@@ -34,7 +34,7 @@
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import static org.neo4j.scheduler.JobScheduler.Groups.downloadSnapshot;
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastClient.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastClient.java
index e5d6be22fd71c..ee90adc76241f 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastClient.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastClient.java
@@ -35,6 +35,7 @@
import org.neo4j.kernel.lifecycle.SafeLifecycle;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static java.util.Collections.emptyMap;
@@ -65,8 +66,8 @@ public class HazelcastClient extends SafeLifecycle implements TopologyService
//TODO: Work out error handling in case cluster hosts change their dbName unexpectedly
private final String dbName;
- private JobScheduler.JobHandle keepAliveJob;
- private JobScheduler.JobHandle refreshTopologyJob;
+ private JobHandle keepAliveJob;
+ private JobHandle refreshTopologyJob;
/* cached data updated during each refresh */
private volatile CoreTopology coreTopology = CoreTopology.EMPTY;
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastCoreTopologyService.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastCoreTopologyService.java
index 55dee53b9503f..2000ff14b3d77 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastCoreTopologyService.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/discovery/HazelcastCoreTopologyService.java
@@ -55,6 +55,7 @@
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.monitoring.Monitors;
import org.neo4j.logging.LogProvider;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static com.hazelcast.spi.properties.GroupProperty.INITIAL_MIN_CLUSTER_SIZE;
@@ -90,7 +91,7 @@ public interface Monitor
private final Monitor monitor;
private final String localDBName;
- private JobScheduler.JobHandle refreshJob;
+ private JobHandle refreshJob;
private final AtomicReference leaderInfo = new AtomicReference<>( LeaderInfo.INITIAL );
private final AtomicReference> stepDownInfo = new AtomicReference<>( Optional.empty() );
@@ -296,7 +297,7 @@ private HazelcastInstance createHazelcastInstance()
logConnectionInfo( initialMembers );
c.addListenerConfig( new ListenerConfig( new OurMembershipListener() ) );
- JobScheduler.JobHandle logJob = scheduler.schedule( JobScheduler.Groups.topologyHealth, HAZELCAST_IS_HEALTHY_TIMEOUT_MS,
+ JobHandle logJob = scheduler.schedule( JobScheduler.Groups.topologyHealth, HAZELCAST_IS_HEALTHY_TIMEOUT_MS,
() -> log.warn( "The server has not been able to connect in a timely fashion to the " +
"cluster. Please consult the logs for more details. Rebooting the server may " +
"solve the problem." ) );
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapper.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapper.java
index 8994588ce7305..7e1a061154fae 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapper.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapper.java
@@ -24,6 +24,8 @@
import org.neo4j.function.ThrowingAction;
import org.neo4j.logging.Log;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
@@ -46,12 +48,12 @@ public RobustJobSchedulerWrapper( JobScheduler delegate, Log log )
this.log = log;
}
- public JobScheduler.JobHandle schedule( JobScheduler.Group group, long delayMillis, ThrowingAction action )
+ public JobHandle schedule( Group group, long delayMillis, ThrowingAction action )
{
return delegate.schedule( group, () -> withErrorHandling( action ), delayMillis, MILLISECONDS );
}
- public JobScheduler.JobHandle scheduleRecurring( JobScheduler.Group group, long periodMillis, ThrowingAction action )
+ public JobHandle scheduleRecurring( Group group, long periodMillis, ThrowingAction action )
{
return delegate.scheduleRecurring( group, () -> withErrorHandling( action ), periodMillis, MILLISECONDS );
}
diff --git a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/SenderService.java b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/SenderService.java
index fa6bc290a53e6..1d979a0bf2772 100644
--- a/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/SenderService.java
+++ b/enterprise/causal-clustering/src/main/java/org/neo4j/causalclustering/messaging/SenderService.java
@@ -38,7 +38,7 @@
import org.neo4j.helpers.AdvertisedSocketAddress;
import org.neo4j.helpers.NamedThreadFactory;
import org.neo4j.helpers.collection.Pair;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
@@ -53,7 +53,7 @@ public class SenderService extends LifecycleAdapter implements Outbound {
long count = counts.getOrDefault( name.name(), 0L );
diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/consensus/schedule/TimerServiceTest.java b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/consensus/schedule/TimerServiceTest.java
index a9fcf0f587165..facee93d049b9 100644
--- a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/consensus/schedule/TimerServiceTest.java
+++ b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/core/consensus/schedule/TimerServiceTest.java
@@ -29,6 +29,7 @@
import org.neo4j.kernel.impl.scheduler.CentralJobScheduler;
import org.neo4j.logging.FormattedLogProvider;
import org.neo4j.logging.NullLogProvider;
+import org.neo4j.scheduler.Group;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.test.FakeClockJobScheduler;
@@ -48,7 +49,7 @@
public class TimerServiceTest
{
- private final JobScheduler.Group group = JobScheduler.Groups.raft;
+ private final Group group = JobScheduler.Groups.raft;
private final TimeoutHandler handlerA = mock( TimeoutHandler.class );
private final TimeoutHandler handlerB = mock( TimeoutHandler.class );
diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapperTest.java b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapperTest.java
index c6bf43d8fda46..8ea79549901b8 100644
--- a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapperTest.java
+++ b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/helper/RobustJobSchedulerWrapperTest.java
@@ -30,7 +30,7 @@
import java.util.concurrent.atomic.AtomicInteger;
import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.kernel.impl.scheduler.CentralJobScheduler;
import org.neo4j.kernel.lifecycle.LifeRule;
import org.neo4j.logging.Log;
diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/SlaveUpdatePuller.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/SlaveUpdatePuller.java
index f51a620f4e4bf..5925515d3aa69 100644
--- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/SlaveUpdatePuller.java
+++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/SlaveUpdatePuller.java
@@ -45,8 +45,9 @@
import org.neo4j.kernel.impl.util.CappedLogger;
import org.neo4j.logging.Log;
import org.neo4j.logging.LogProvider;
+import org.neo4j.scheduler.CancelListener;
import org.neo4j.scheduler.JobScheduler;
-import org.neo4j.scheduler.JobScheduler.JobHandle;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.util.concurrent.BinaryLatch;
import static java.lang.System.currentTimeMillis;
@@ -116,7 +117,7 @@
*
* @see org.neo4j.kernel.ha.UpdatePuller
*/
-public class SlaveUpdatePuller implements Runnable, UpdatePuller, JobScheduler.CancelListener
+public class SlaveUpdatePuller implements Runnable, UpdatePuller, CancelListener
{
public interface Monitor
{
diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/UpdatePullerScheduler.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/UpdatePullerScheduler.java
index f9970a50c1db9..c877188e959f4 100644
--- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/UpdatePullerScheduler.java
+++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/UpdatePullerScheduler.java
@@ -24,6 +24,7 @@
import java.util.concurrent.TimeUnit;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
import org.neo4j.logging.Log;
@@ -43,7 +44,7 @@ public class UpdatePullerScheduler extends LifecycleAdapter
private final Log log;
private final UpdatePuller updatePuller;
private final long pullIntervalMillis;
- private JobScheduler.JobHandle intervalJobHandle;
+ private JobHandle intervalJobHandle;
public UpdatePullerScheduler( JobScheduler scheduler, LogProvider logProvider, UpdatePuller updatePullingThread,
long pullIntervalMillis )
diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/ConversationSPI.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/ConversationSPI.java
index d90e0fc56dc49..da62bd8e3064a 100644
--- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/ConversationSPI.java
+++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/ConversationSPI.java
@@ -23,7 +23,8 @@
package org.neo4j.kernel.ha.cluster;
import org.neo4j.kernel.impl.locking.Locks;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
/**
* Conversation part of HA master SPI.
@@ -33,5 +34,5 @@ public interface ConversationSPI
{
Locks.Client acquireClient();
- JobScheduler.JobHandle scheduleRecurringJob( JobScheduler.Group group, long interval, Runnable job );
+ JobHandle scheduleRecurringJob( Group group, long interval, Runnable job );
}
diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/DefaultConversationSPI.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/DefaultConversationSPI.java
index 87c5ffb791b15..0b2c7adabe9a4 100644
--- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/DefaultConversationSPI.java
+++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/DefaultConversationSPI.java
@@ -25,6 +25,8 @@
import java.util.concurrent.TimeUnit;
import org.neo4j.kernel.impl.locking.Locks;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
/**
@@ -48,7 +50,7 @@ public Locks.Client acquireClient()
}
@Override
- public JobScheduler.JobHandle scheduleRecurringJob( JobScheduler.Group group, long interval, Runnable job )
+ public JobHandle scheduleRecurringJob( Group group, long interval, Runnable job )
{
return jobScheduler.scheduleRecurring( group, job, interval, TimeUnit.MILLISECONDS);
}
diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/master/ConversationManager.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/master/ConversationManager.java
index c7e2fcd949f4b..449a51347c42c 100644
--- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/master/ConversationManager.java
+++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/com/master/ConversationManager.java
@@ -30,7 +30,7 @@
import org.neo4j.function.Factory;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.ha.cluster.ConversationSPI;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.kernel.impl.util.collection.ConcurrentAccessException;
import org.neo4j.kernel.impl.util.collection.NoSuchEntryException;
import org.neo4j.kernel.impl.util.collection.TimedRepository;
@@ -65,7 +65,7 @@ public Conversation newInstance()
};
TimedRepository conversations;
- private JobScheduler.JobHandle staleReaperJob;
+ private JobHandle staleReaperJob;
/**
* Build conversation manager with default values for activity check interval and timeout addition.
diff --git a/enterprise/ha/src/test/java/org/neo4j/kernel/ha/com/master/ConversationManagerTest.java b/enterprise/ha/src/test/java/org/neo4j/kernel/ha/com/master/ConversationManagerTest.java
index 765f118d3ca14..ebbc4aa008e86 100644
--- a/enterprise/ha/src/test/java/org/neo4j/kernel/ha/com/master/ConversationManagerTest.java
+++ b/enterprise/ha/src/test/java/org/neo4j/kernel/ha/com/master/ConversationManagerTest.java
@@ -35,7 +35,8 @@
import org.neo4j.kernel.ha.HaSettings;
import org.neo4j.kernel.ha.cluster.ConversationSPI;
import org.neo4j.kernel.impl.util.collection.TimedRepository;
-import org.neo4j.scheduler.JobScheduler;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
@@ -58,25 +59,25 @@ public class ConversationManagerTest
@Test
public void testStart()
{
- JobScheduler.JobHandle reaperJobHandle = mock( JobScheduler.JobHandle.class );
+ JobHandle reaperJobHandle = mock( JobHandle.class );
when( config.get( HaSettings.lock_read_timeout ) ).thenReturn( Duration.ofMillis( 1 ) );
- when( conversationSPI.scheduleRecurringJob( any( JobScheduler.Group.class ), any( Long.class ),
+ when( conversationSPI.scheduleRecurringJob( any( Group.class ), any( Long.class ),
any( Runnable.class ) ) ).thenReturn( reaperJobHandle );
conversationManager = getConversationManager();
conversationManager.start();
assertNotNull( conversationManager.conversations );
- verify( conversationSPI ).scheduleRecurringJob(any( JobScheduler.Group.class ), any( Long.class ),
+ verify( conversationSPI ).scheduleRecurringJob(any( Group.class ), any( Long.class ),
any( Runnable.class ) );
}
@Test
public void testStop()
{
- JobScheduler.JobHandle reaperJobHandle = mock( JobScheduler.JobHandle.class );
+ JobHandle reaperJobHandle = mock( JobHandle.class );
when( config.get( HaSettings.lock_read_timeout ) ).thenReturn( Duration.ofMillis( 1 ) );
- when( conversationSPI.scheduleRecurringJob( any( JobScheduler.Group.class ), any( Long.class ),
+ when( conversationSPI.scheduleRecurringJob( any( Group.class ), any( Long.class ),
any( Runnable.class ) ) ).thenReturn( reaperJobHandle );
conversationManager = getConversationManager();
diff --git a/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/pagecache/WarmupAvailabilityListener.java b/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/pagecache/WarmupAvailabilityListener.java
index 5d5c01607340e..0e24ed2477635 100644
--- a/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/pagecache/WarmupAvailabilityListener.java
+++ b/enterprise/kernel/src/main/java/org/neo4j/kernel/impl/pagecache/WarmupAvailabilityListener.java
@@ -28,6 +28,7 @@
import org.neo4j.kernel.AvailabilityGuard.AvailabilityListener;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.logging.Log;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import static org.neo4j.scheduler.JobScheduler.Groups.pageCacheIOHelper;
@@ -46,7 +47,7 @@ class WarmupAvailabilityListener implements AvailabilityListener
// started yet, since we don't propagate an interrupt. This is why we check the `available` field in the
// `scheduleProfile` method.
private volatile boolean available;
- private JobScheduler.JobHandle jobHandle; // Guarded by `this`.
+ private JobHandle jobHandle; // Guarded by `this`.
WarmupAvailabilityListener( JobScheduler scheduler, PageCacheWarmer pageCacheWarmer,
Config config, Log log, PageCacheWarmerMonitor monitor )
diff --git a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealm.java b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealm.java
index ae6fbe38d71a3..8191ce20e033e 100644
--- a/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealm.java
+++ b/enterprise/security/src/main/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealm.java
@@ -55,6 +55,7 @@
import org.neo4j.kernel.api.security.exception.InvalidAuthTokenException;
import org.neo4j.kernel.impl.security.Credential;
import org.neo4j.kernel.impl.security.User;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.server.security.auth.AuthenticationStrategy;
import org.neo4j.server.security.auth.ListSnapshot;
@@ -89,7 +90,7 @@ public class InternalFlatFileRealm extends AuthorizingRealm implements RealmLife
private final boolean authenticationEnabled;
private final boolean authorizationEnabled;
private final JobScheduler jobScheduler;
- private volatile JobScheduler.JobHandle reloadJobHandle;
+ private volatile JobHandle reloadJobHandle;
public InternalFlatFileRealm( UserRepository userRepository, RoleRepository roleRepository,
PasswordPolicy passwordPolicy, AuthenticationStrategy authenticationStrategy,
diff --git a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealmIT.java b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealmIT.java
index d4309c1c1bdf4..4f436f8317c8e 100644
--- a/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealmIT.java
+++ b/enterprise/security/src/test/java/org/neo4j/server/security/enterprise/auth/InternalFlatFileRealmIT.java
@@ -43,6 +43,8 @@
import org.neo4j.kernel.impl.scheduler.CentralJobScheduler;
import org.neo4j.logging.LogProvider;
import org.neo4j.logging.NullLogProvider;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.server.security.auth.AuthenticationStrategy;
import org.neo4j.server.security.auth.BasicPasswordPolicy;
import org.neo4j.server.security.auth.CommunitySecurityModule;
diff --git a/integrationtests/src/test/java/org/neo4j/auth/FlatFileStressBase.java b/integrationtests/src/test/java/org/neo4j/auth/FlatFileStressBase.java
index bb19ec40cd206..76319121a89f2 100644
--- a/integrationtests/src/test/java/org/neo4j/auth/FlatFileStressBase.java
+++ b/integrationtests/src/test/java/org/neo4j/auth/FlatFileStressBase.java
@@ -43,6 +43,8 @@
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
import org.neo4j.logging.LogProvider;
import org.neo4j.logging.NullLogProvider;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.server.security.auth.BasicPasswordPolicy;
import org.neo4j.server.security.auth.CommunitySecurityModule;
diff --git a/stresstests/src/test/java/org/neo4j/kernel/stresstests/transaction/checkpoint/CheckPointingLogRotationStressTesting.java b/stresstests/src/test/java/org/neo4j/kernel/stresstests/transaction/checkpoint/CheckPointingLogRotationStressTesting.java
index 53fe34318b774..8d13bdf8422fc 100644
--- a/stresstests/src/test/java/org/neo4j/kernel/stresstests/transaction/checkpoint/CheckPointingLogRotationStressTesting.java
+++ b/stresstests/src/test/java/org/neo4j/kernel/stresstests/transaction/checkpoint/CheckPointingLogRotationStressTesting.java
@@ -40,6 +40,8 @@
import org.neo4j.kernel.stresstests.transaction.checkpoint.tracers.TimerTransactionTracer;
import org.neo4j.kernel.stresstests.transaction.checkpoint.workload.Workload;
import org.neo4j.logging.NullLogProvider;
+import org.neo4j.scheduler.Group;
+import org.neo4j.scheduler.JobHandle;
import org.neo4j.scheduler.JobScheduler;
import org.neo4j.scheduler.JobSchedulerAdapter;
import org.neo4j.test.TestGraphDatabaseFactory;