From 81d36161ce5367fa7aa9a5d99dc8b80eacfa7cdf Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 24 Jan 2014 14:43:46 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1288 : Migrate I18n and logging support to i18n framework and SLF4J
---
opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java | 103 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 72 insertions(+), 31 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java b/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java
index 53cc7bb..1f4691f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/task/Task.java
@@ -48,7 +48,8 @@
import javax.mail.MessagingException;
-import org.opends.messages.Message;
+import org.forgerock.i18n.LocalizableMessage;
+import org.opends.messages.Severity;
import org.opends.server.core.DirectoryServer;
import org.opends.server.loggers.ErrorLogger;
import org.opends.server.loggers.debug.DebugTracer;
@@ -90,7 +91,7 @@
private LinkedList<String> dependencyIDs;
// A set of log messages generated by this task.
- // TODO: convert from String to Message objects.
+ // TODO: convert from String to LocalizableMessage objects.
// Since these are stored in an entry we would need
// to adopt some way for writing message to string in such
// a way that the information could be reparsed from its
@@ -141,7 +142,7 @@
*
* @return name of task
*/
- public Message getDisplayName() {
+ public LocalizableMessage getDisplayName() {
// NOTE: this method is invoked via reflection. If you rename
// it be sure to modify the calls.
return null;
@@ -153,9 +154,9 @@
*
* @param name of an attribute type associated with the object
* class that represents this entry in the directory
- * @return Message diaplay name
+ * @return LocalizableMessage diaplay name
*/
- public Message getAttributeDisplayName(String name) {
+ public LocalizableMessage getAttributeDisplayName(String name) {
// Subclasses that are schedulable from the task interface
// should override this
@@ -196,7 +197,7 @@
{
if (recurringTaskID == null)
{
- Message message = ERR_TASK_MISSING_ATTR.get(
+ LocalizableMessage message = ERR_TASK_MISSING_ATTR.get(
String.valueOf(taskEntry.getName()), ATTR_TASK_ID);
throw new InitializationException(message);
}
@@ -219,7 +220,7 @@
taskState = TaskState.fromString(stateString);
if (taskState == null)
{
- Message message = ERR_TASK_INVALID_STATE.get(taskDN, stateString);
+ LocalizableMessage message = ERR_TASK_INVALID_STATE.get(taskDN, stateString);
throw new InitializationException(message);
}
}
@@ -255,7 +256,7 @@
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
- Message message =
+ LocalizableMessage message =
ERR_TASK_CANNOT_PARSE_SCHEDULED_START_TIME.get(timeString, taskDN);
throw new InitializationException(message, e);
}
@@ -289,7 +290,7 @@
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
- Message message =
+ LocalizableMessage message =
ERR_TASK_CANNOT_PARSE_ACTUAL_START_TIME.get(timeString, taskDN);
throw new InitializationException(message, e);
}
@@ -323,7 +324,7 @@
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
- Message message =
+ LocalizableMessage message =
ERR_TASK_CANNOT_PARSE_COMPLETION_TIME.get(timeString, taskDN);
throw new InitializationException(message, e);
}
@@ -388,7 +389,7 @@
{
if (isRequired)
{
- Message message = ERR_TASK_MISSING_ATTR.get(
+ LocalizableMessage message = ERR_TASK_MISSING_ATTR.get(
String.valueOf(taskEntry.getName()), attributeName);
throw new InitializationException(message);
}
@@ -400,7 +401,7 @@
if (attrList.size() > 1)
{
- Message message = ERR_TASK_MULTIPLE_ATTRS_FOR_TYPE.get(
+ LocalizableMessage message = ERR_TASK_MULTIPLE_ATTRS_FOR_TYPE.get(
attributeName, String.valueOf(taskEntry.getName()));
throw new InitializationException(message);
}
@@ -410,7 +411,7 @@
{
if (isRequired)
{
- Message message = ERR_TASK_NO_VALUES_FOR_ATTR.get(
+ LocalizableMessage message = ERR_TASK_NO_VALUES_FOR_ATTR.get(
attributeName, String.valueOf(taskEntry.getName()));
throw new InitializationException(message);
}
@@ -423,7 +424,7 @@
AttributeValue value = iterator.next();
if (iterator.hasNext())
{
- Message message = ERR_TASK_MULTIPLE_VALUES_FOR_ATTR.get(
+ LocalizableMessage message = ERR_TASK_MULTIPLE_VALUES_FOR_ATTR.get(
attributeName, String.valueOf(taskEntry.getName()));
throw new InitializationException(message);
}
@@ -460,7 +461,7 @@
if (attrList.size() > 1)
{
- Message message = ERR_TASK_MULTIPLE_ATTRS_FOR_TYPE.get(
+ LocalizableMessage message = ERR_TASK_MULTIPLE_ATTRS_FOR_TYPE.get(
attributeName, String.valueOf(taskEntry.getName()));
throw new InitializationException(message);
}
@@ -632,7 +633,7 @@
/**
* Sets a state for this task that is the result of a call to
- * {@link #interruptTask(TaskState, org.opends.messages.Message)}.
+ * {@link #interruptTask(TaskState, org.opends.messages.LocalizableMessage)}.
* It may take this task some time to actually cancel to that
* actual state may differ until quiescence.
*
@@ -647,7 +648,7 @@
/**
* Gets the interrupt state for this task that was set as a
* result of a call to {@link #interruptTask(TaskState,
- * org.opends.messages.Message)}.
+ * org.opends.messages.LocalizableMessage)}.
*
* @return interrupt state for this task
*/
@@ -660,7 +661,7 @@
/**
* Returns a state for this task after processing has completed.
* If the task was interrupted with a call to
- * {@link #interruptTask(TaskState, org.opends.messages.Message)}
+ * {@link #interruptTask(TaskState, org.opends.messages.LocalizableMessage)}
* then that method's interruptState is returned here. Otherwse
* this method returns TaskState.COMPLETED_SUCCESSFULLY. It is
* assumed that if there were errors during task processing that
@@ -919,12 +920,12 @@
*
* @return The set of messages that were logged by this task.
*/
- public final List<Message> getLogMessages()
+ public final List<LocalizableMessage> getLogMessages()
{
- List<Message> msgList = new ArrayList<Message>();
+ List<LocalizableMessage> msgList = new ArrayList<LocalizableMessage>();
for(String logString : logMessages) {
// TODO: a better job or recreating the message
- msgList.add(Message.raw(logString));
+ msgList.add(LocalizableMessage.raw(logString));
}
return Collections.unmodifiableList(msgList);
}
@@ -939,24 +940,56 @@
*
* @param message The message to be logged.
*/
- protected void logError(Message message)
+ protected void logError(LocalizableMessage message)
{
// Simply pass this on to the server error logger, and it will call back
// to the addLogMessage method for this task.
ErrorLogger.logError(message);
}
-
-
/**
- * Adds a log message to the set of messages logged by this task. This method
+ * Adds a log message to the set of messages logged by this task. This method
* should not be called directly by tasks, but rather will be called
* indirectly through the {@code ErrorLog.logError} methods. It does not
* automatically persist the updated task information to disk.
*
- * @param message he log message
+ * @param message
+ * the log message.
*/
- public void addLogMessage(Message message)
+ // TODO : remove this method
+ public void addLogMessage(LocalizableMessage message) {
+ addLogMessage(Severity.SEVERE_ERROR, message);
+ }
+
+ /**
+ * Adds a log message to the set of messages logged by this task. This method
+ * should not be called directly by tasks, but rather will be called
+ * indirectly through the {@code ErrorLog.logError} methods. It does not
+ * automatically persist the updated task information to disk.
+ *
+ * @param severity
+ * the severity of message.
+ * @param message
+ * the log message.
+ */
+ public void addLogMessage(Severity severity, LocalizableMessage message) {
+ addLogMessage(severity, message, null);
+ }
+
+ /**
+ * Adds a log message to the set of messages logged by this task. This method
+ * should not be called directly by tasks, but rather will be called
+ * indirectly through the {@code ErrorLog.logError} methods. It does not
+ * automatically persist the updated task information to disk.
+ *
+ * @param severity
+ * the severity of message.
+ * @param message
+ * the log message.
+ * @param exception
+ * the exception to log. May be {@code null}.
+ */
+ public void addLogMessage(Severity severity, LocalizableMessage message, Throwable exception)
{
// We cannot do task logging if the schema is either destroyed or
// not initialized eg during in-core restart from Restart task.
@@ -981,14 +1014,22 @@
buffer.append("[");
buffer.append(TimeThread.getLocalTime());
buffer.append("] severity=\"");
- buffer.append(message.getDescriptor().getSeverity().name());
+ buffer.append(severity.name());
buffer.append("\" msgCount=");
buffer.append(logMessageCounter++);
buffer.append(" msgID=");
- buffer.append(message.getDescriptor().getId());
+ buffer.append(message.resourceName());
+ buffer.append("-");
+ buffer.append(message.ordinal());
buffer.append(" message=\"");
buffer.append(message.toString());
buffer.append("\"");
+ if (exception != null)
+ {
+ buffer.append(" exception=\"");
+ buffer.append(StaticUtils.stackTraceToSingleLineString(exception));
+ buffer.append("\"");
+ }
String messageString = buffer.toString();
logMessages.add(messageString);
@@ -1160,7 +1201,7 @@
taskState = TaskState.STOPPED_BY_ERROR;
- Message message = ERR_TASK_EXECUTE_FAILED.get(
+ LocalizableMessage message = ERR_TASK_EXECUTE_FAILED.get(
String.valueOf(taskEntry.getName()), stackTraceToSingleLineString(e));
logError(message);
}
@@ -1269,7 +1310,7 @@
* successfully interrupted.
* @param interruptReason A human-readable explanation for the cancellation.
*/
- public void interruptTask(TaskState interruptState, Message interruptReason)
+ public void interruptTask(TaskState interruptState, LocalizableMessage interruptReason)
{
// No action is performed by default.
--
Gitblit v1.10.0