From 77dcb75fb0bf9c03a591297519a97f2f3b69dbf0 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 05 Sep 2007 06:51:34 +0000
Subject: [PATCH] Implement support for delete and modify operations in the task backend as follows:
---
opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/DummyTask.java | 64 +++++++++++++++++++++++++++++++-
1 files changed, 62 insertions(+), 2 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/DummyTask.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/DummyTask.java
index 05a6916..2442335 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/DummyTask.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/tasks/DummyTask.java
@@ -28,9 +28,15 @@
+import java.util.List;
+
+import org.opends.messages.Message;
import org.opends.server.backends.task.Task;
import org.opends.server.backends.task.TaskState;
+import org.opends.server.types.Attribute;
+import org.opends.server.types.AttributeValue;
import org.opends.server.types.DirectoryException;
+import org.opends.server.types.Entry;
@@ -41,6 +47,15 @@
public class DummyTask
extends Task
{
+ // The length of time that the task should sleep before completing.
+ private long sleepTime;
+
+ // The task state to use when interrupting the task. This will be null unless
+ // the task gets interrupted.
+ private volatile TaskState interruptedState;
+
+
+
/**
* {@inheritDoc}
*/
@@ -48,7 +63,25 @@
public void initializeTask()
throws DirectoryException
{
- // No implementation is required.
+ sleepTime = 0;
+ interruptedState = null;
+
+ Entry taskEntry = getTaskEntry();
+ if (taskEntry != null)
+ {
+ List<Attribute> attrList =
+ taskEntry.getAttribute("ds-task-dummy-sleep-time");
+ if (attrList != null)
+ {
+ for (Attribute a : attrList)
+ {
+ for (AttributeValue v : a.getValues())
+ {
+ sleepTime = Long.parseLong(v.getStringValue());
+ }
+ }
+ }
+ }
}
@@ -58,7 +91,34 @@
*/
protected TaskState runTask()
{
- return TaskState.COMPLETED_SUCCESSFULLY;
+ long stopTime = System.currentTimeMillis() + sleepTime;
+ while ((interruptedState == null) &&
+ (System.currentTimeMillis() < stopTime))
+ {
+ try
+ {
+ Thread.sleep(10);
+ } catch (Exception e) {}
+ }
+
+ if (interruptedState == null)
+ {
+ return TaskState.COMPLETED_SUCCESSFULLY;
+ }
+ else
+ {
+ return interruptedState;
+ }
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void interruptTask(TaskState taskState, Message interruptMessage)
+ {
+ interruptedState = taskState;
}
}
--
Gitblit v1.10.0