From a32ca1f5e6cb18d16bd561d3685ce18e356a0145 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 24 Apr 2013 10:17:09 +0000
Subject: [PATCH] OPENDJ-879 (CR-1600) Add HTTP access log
---
opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java | 5
opendj-sdk/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java | 46 +-
opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java | 72 ----
opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java | 109 +----
opendj-sdk/opends/src/server/org/opends/server/api/ErrorLogPublisher.java | 98 +-----
opendj-sdk/opends/src/server/org/opends/server/api/LogPublisher.java | 113 +++++++
opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java | 85 ----
opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java | 14
opendj-sdk/opends/src/server/org/opends/server/loggers/ThreadFilterTextErrorLogPublisher.java | 21
opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java | 107 ++----
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java | 104 ++----
opendj-sdk/opends/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java | 52 ++-
opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java | 79 ++--
13 files changed, 374 insertions(+), 531 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java
index df2de94..41bf65c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java
@@ -23,21 +23,16 @@
*
*
* Copyright 2008-2009 Sun Microsystems, Inc.
- * Portions copyright 2011 ForgeRock AS.
+ * Portions copyright 2011-2013 ForgeRock AS.
*/
package org.opends.server.api;
-
-
import java.util.List;
+import org.opends.messages.Message;
import org.opends.server.admin.std.server.AccessLogPublisherCfg;
-import org.opends.server.config.ConfigException;
import org.opends.server.core.*;
import org.opends.server.types.*;
-import org.opends.messages.Message;
-
-
/**
* This class defines the set of methods and structures that must be
@@ -52,50 +47,12 @@
mayInstantiate = false,
mayExtend = true,
mayInvoke = false)
-public abstract class AccessLogPublisher
- <T extends AccessLogPublisherCfg>
+public abstract class AccessLogPublisher<T extends AccessLogPublisherCfg>
+ implements LogPublisher<T>
{
- /**
- * Initializes this access publisher provider based on the
- * information in the provided debug publisher configuration.
- *
- * @param config
- * The access publisher configuration that contains the
- * information to use to initialize this access publisher.
- * @throws ConfigException
- * If an unrecoverable problem arises in the process of
- * performing the initialization as a result of the server
- * configuration.
- * @throws InitializationException
- * If a problem occurs during initialization that is not
- * related to the server configuration.
- */
- public abstract void initializeAccessLogPublisher(T config)
- throws ConfigException, InitializationException;
-
-
-
- /**
- * Indicates whether the provided configuration is acceptable for
- * this access log publisher. It should be possible to call this
- * method on an uninitialized access log publisher instance in order
- * to determine whether the access log publisher would be able to
- * use the provided configuration. <BR>
- * <BR>
- * Note that implementations which use a subclass of the provided
- * configuration class will likely need to cast the configuration to
- * the appropriate subclass type.
- *
- * @param configuration
- * The access log publisher configuration for which to make
- * the determination.
- * @param unacceptableReasons
- * A list that may be used to hold the reasons that the
- * provided configuration is not acceptable.
- * @return {@code true} if the provided configuration is acceptable
- * for this access log publisher, or {@code false} if not.
- */
+ /** {@inheritDoc} */
+ @Override
public boolean isConfigurationAcceptable(T configuration,
List<Message> unacceptableReasons)
{
@@ -108,13 +65,6 @@
/**
- * Close this publisher.
- */
- public abstract void close();
-
-
-
- /**
* Writes a message to the access logger with information about a
* new client connection that has been established, regardless of
* whether it will be immediately terminated.
@@ -521,14 +471,4 @@
// Do nothing
}
-
-
- /**
- * Gets the DN of the configuration entry for this access log
- * publisher.
- *
- * @return The configuration entry DN.
- */
- public abstract DN getDN();
-
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java
index 8fba52b..9b9b939 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/DebugLogPublisher.java
@@ -23,32 +23,25 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
- * Portions copyright 2012 ForgeRock AS.
+ * Portions copyright 2012-2013 ForgeRock AS.
*/
package org.opends.server.api;
-import org.opends.messages.Message;
-
-
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-import com.sleepycat.je.Transaction;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseEntry;
import com.sleepycat.je.OperationStatus;
+import com.sleepycat.je.Transaction;
+import org.opends.messages.Message;
import org.opends.server.admin.std.server.DebugLogPublisherCfg;
-import org.opends.server.config.ConfigException;
import org.opends.server.loggers.LogLevel;
import org.opends.server.loggers.debug.TraceSettings;
import org.opends.server.types.DebugLogLevel;
-import org.opends.server.types.InitializationException;
-import org.opends.server.types.DN;
-
-
/**
* This class defines the set of methods and structures that must be
@@ -62,8 +55,8 @@
mayInstantiate=false,
mayExtend=true,
mayInvoke=false)
-public abstract class DebugLogPublisher
- <T extends DebugLogPublisherCfg>
+public abstract class DebugLogPublisher<T extends DebugLogPublisherCfg>
+ implements LogPublisher<T>
{
//The default global settings key.
private static final String GLOBAL= "_global";
@@ -91,56 +84,13 @@
- /**
- * Initializes this debug publisher provider based on the
- * information in the provided debug publisher configuration.
- *
- * @param config The debug publisher configuration that contains
- * the information to use to initialize this debug
- * publisher.
- *
- * @throws ConfigException If an unrecoverable problem arises in
- * the process of performing the
- * initialization as a result of the
- * server configuration.
- *
- * @throws InitializationException If a problem occurs during
- * initialization that is not
- * related to the server
- * configuration.
- */
- public abstract void initializeDebugLogPublisher(T config)
- throws ConfigException, InitializationException;
-
-
-
- /**
- * Indicates whether the provided configuration is acceptable for
- * this debug log publisher. It should be possible to call this
- * method on an uninitialized debug log publisher instance in
- * order to determine whether the debug log publisher would be able
- * to use the provided configuration.
- * <BR><BR>
- * Note that implementations which use a subclass of the provided
- * configuration class will likely need to cast the configuration
- * to the appropriate subclass type.
- *
- * @param configuration The debug log publisher
- * configuration for which to make the
- * determination.
- * @param unacceptableReasons A list that may be used to hold the
- * reasons that the provided
- * configuration is not acceptable.
- *
- * @return {@code true} if the provided configuration is acceptable
- * for this debug log publisher, or {@code false} if not.
- */
- public boolean isConfigurationAcceptable(
- DebugLogPublisherCfg configuration,
+ /** {@inheritDoc} */
+ @Override
+ public boolean isConfigurationAcceptable(T configuration,
List<Message> unacceptableReasons)
{
// This default implementation does not perform any special
- // validation. It should be overridden by debug log publisher
+ // validation. It should be overridden by debug log publisher
// implementations that wish to perform more detailed validation.
return true;
}
@@ -400,7 +350,7 @@
*
* @param level The log level for the message.
* @param settings The current trace settings in effect.
- * @param signature The constuctor signature.
+ * @param signature The constructor signature.
* @param sourceLocation The location of the method in the source.
* @param args The parameters provided to the
* constructor.
@@ -596,7 +546,7 @@
* @param settings The current trace settings in effect.
* @param signature The method signature.
* @param sourceLocation The location of the method in the source.
- * @param decodedForm The string reprentation of the protocol
+ * @param decodedForm The string representation of the protocol
* element.
* @param stackTrace The stack trace at the time the protocol
* element is logged or null if its not
@@ -609,17 +559,4 @@
String decodedForm,
StackTraceElement[] stackTrace);
- /**
- * Close this publisher.
- */
- public abstract void close();
-
- /**
- * Gets the DN of the configuration entry for this debug log
- * publisher.
- *
- * @return The configuration entry DN.
- */
- public abstract DN getDN();
}
-
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/ErrorLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/api/ErrorLogPublisher.java
index 60cd639..3a0306d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/ErrorLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/ErrorLogPublisher.java
@@ -23,25 +23,20 @@
*
*
* Copyright 2008 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
*/
package org.opends.server.api;
-import org.opends.messages.Message;
-
-
-import java.util.HashSet;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
-import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
-import org.opends.server.config.ConfigException;
-
-
-import org.opends.server.types.InitializationException;
-import org.opends.server.types.DN;
-import org.opends.messages.Severity;
import org.opends.messages.Category;
-
+import org.opends.messages.Message;
+import org.opends.messages.Severity;
+import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
/**
* This class defines the set of methods and structures that must be
@@ -55,16 +50,15 @@
mayInstantiate=false,
mayExtend=true,
mayInvoke=false)
-public abstract class ErrorLogPublisher
- <T extends ErrorLogPublisherCfg>
+public abstract class ErrorLogPublisher<T extends ErrorLogPublisherCfg>
+ implements LogPublisher<T>
{
/**
* The hash map that will be used to define specific log severities
* for the various categories.
*/
- protected HashMap<Category,HashSet<Severity>>
- definedSeverities =
- new HashMap<Category, HashSet<Severity>>();
+ protected Map<Category, Set<Severity>> definedSeverities =
+ new HashMap<Category, Set<Severity>>();
@@ -72,61 +66,17 @@
* The set of default log severities that will be used if no custom
* severities have been defined for the associated category.
*/
- protected HashSet<Severity>
- defaultSeverities = new HashSet<Severity>();
+ protected Set<Severity> defaultSeverities = new HashSet<Severity>();
- /**
- * Initializes this access publisher provider based on the
- * information in the provided debug publisher configuration.
- *
- * @param config The error publisher configuration that contains
- * the information to use to initialize this error
- * publisher.
- *
- * @throws ConfigException If an unrecoverable problem arises in
- * the process of performing the
- * initialization as a result of the
- * server configuration.
- *
- * @throws InitializationException If a problem occurs during
- * initialization that is not
- * related to the server
- * configuration.
- */
- public abstract void initializeErrorLogPublisher(T config)
- throws ConfigException, InitializationException;
-
-
-
- /**
- * Indicates whether the provided configuration is acceptable for
- * this error log publisher. It should be possible to call this
- * method on an uninitialized error log publisher instance in
- * order to determine whether the error log publisher would be able
- * to use the provided configuration.
- * <BR><BR>
- * Note that implementations which use a subclass of the provided
- * configuration class will likely need to cast the configuration
- * to the appropriate subclass type.
- *
- * @param configuration The error log publisher
- * configuration for which to make the
- * determination.
- * @param unacceptableReasons A list that may be used to hold the
- * reasons that the provided
- * configuration is not acceptable.
- *
- * @return {@code true} if the provided configuration is acceptable
- * for this error log publisher, or {@code false} if not.
- */
- public boolean isConfigurationAcceptable(
- ErrorLogPublisherCfg configuration,
+ /** {@inheritDoc} */
+ @Override
+ public boolean isConfigurationAcceptable(T configuration,
List<Message> unacceptableReasons)
{
// This default implementation does not perform any special
- // validation. It should be overridden by error log publisher
+ // validation. It should be overridden by error log publisher
// implementations that wish to perform more detailed validation.
return true;
}
@@ -134,13 +84,6 @@
/**
- * Close this publisher.
- */
- public abstract void close();
-
-
-
- /**
* Writes a message to the error log using the provided information.
* The message's category and severity information will be used to
* determine whether to actually log this message.
@@ -149,13 +92,4 @@
*/
public abstract void logError(Message message);
- /**
- * Gets the DN of the configuration entry for this error log
- * publisher.
- *
- * @return The configuration entry DN.
- */
- public abstract DN getDN();
-
}
-
diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/LogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/api/LogPublisher.java
new file mode 100644
index 0000000..7e9f0e1
--- /dev/null
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/LogPublisher.java
@@ -0,0 +1,113 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2008-2009 Sun Microsystems, Inc.
+ * Portions copyright 2011-2013 ForgeRock AS.
+ */
+package org.opends.server.api;
+
+import java.io.Closeable;
+import java.util.List;
+
+import org.opends.messages.Message;
+import org.opends.server.admin.std.server.LogPublisherCfg;
+import org.opends.server.config.ConfigException;
+import org.opends.server.types.DN;
+import org.opends.server.types.InitializationException;
+
+/**
+ * This class defines the set of methods and structures that must be implemented
+ * for a Directory Server log publisher.
+ *
+ * @param <T>
+ * The type of log publisher configuration handled by this log
+ * publisher implementation.
+ */
+@org.opends.server.types.PublicAPI(
+ stability = org.opends.server.types.StabilityLevel.VOLATILE,
+ mayInstantiate = false,
+ mayExtend = true,
+ mayInvoke = false)
+public interface LogPublisher<T extends LogPublisherCfg> extends Closeable
+{
+
+ /**
+ * Initializes this publisher provider based on the information in the
+ * provided debug publisher configuration.
+ *
+ * @param config
+ * The publisher configuration that contains the information to use
+ * to initialize this publisher.
+ * @throws ConfigException
+ * If an unrecoverable problem arises in the process of performing
+ * the initialization as a result of the server configuration.
+ * @throws InitializationException
+ * If a problem occurs during initialization that is not related to
+ * the server configuration.
+ */
+ void initializeLogPublisher(T config) throws ConfigException,
+ InitializationException;
+
+
+
+ /**
+ * Indicates whether the provided configuration is acceptable for this log
+ * publisher. It should be possible to call this method on an uninitialized
+ * log publisher instance in order to determine whether the log publisher
+ * would be able to use the provided configuration.
+ * <BR><BR>
+ * Note that implementations which use a subclass of the provided
+ * configuration class will likely need to cast the configuration to the
+ * appropriate subclass type.
+ *
+ * @param configuration
+ * The log publisher configuration for which to make the
+ * determination.
+ * @param unacceptableReasons
+ * A list that may be used to hold the reasons that the provided
+ * configuration is not acceptable.
+ * @return {@code true} if the provided configuration is acceptable for this
+ * log publisher, or {@code false} if not.
+ */
+ boolean isConfigurationAcceptable(T configuration,
+ List<Message> unacceptableReasons);
+
+
+
+ /**
+ * Close this publisher.
+ */
+ @Override
+ void close();
+
+
+
+ /**
+ * Gets the DN of the configuration entry for this log publisher.
+ *
+ * @return The configuration entry DN.
+ */
+ DN getDN();
+
+}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
index d3b1e84..dbd0dc5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
@@ -23,38 +23,30 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
- * Portions copyright 2011 ForgeRock AS.
+ * Portions copyright 2011-2013 ForgeRock AS
*/
package org.opends.server.loggers;
-import org.opends.messages.Message;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import static org.opends.server.util.StaticUtils.*;
-
-
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.List;
import java.util.ArrayList;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
-import org.opends.server.api.ClientConnection;
-import org.opends.server.api.AccessLogPublisher;
-import org.opends.server.core.*;
-import org.opends.server.types.*;
-import org.opends.server.admin.std.server.AccessLogPublisherCfg;
-import org.opends.server.admin.std.meta.AccessLogPublisherCfgDefn;
+import org.opends.messages.Message;
+import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
-import org.opends.server.admin.ClassPropertyDefinition;
+import org.opends.server.admin.std.meta.AccessLogPublisherCfgDefn;
+import org.opends.server.admin.std.server.AccessLogPublisherCfg;
+import org.opends.server.api.AccessLogPublisher;
+import org.opends.server.api.ClientConnection;
import org.opends.server.config.ConfigException;
-import static org.opends.server.loggers.debug.DebugLogger.*;
+import org.opends.server.core.*;
import org.opends.server.loggers.debug.DebugTracer;
-import static org.opends.messages.ConfigMessages.
- ERR_CONFIG_LOGGER_CANNOT_CREATE_LOGGER;
-import static org.opends.messages.ConfigMessages.
- ERR_CONFIG_LOGGER_INVALID_ACCESS_LOGGER_CLASS;
-
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
+import org.opends.server.types.*;
/**
@@ -165,6 +157,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
AccessLogPublisherCfg config,
List<Message> unacceptableReasons)
@@ -176,6 +169,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
AccessLogPublisherCfg config,
List<Message> unacceptableReasons)
@@ -187,6 +181,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(AccessLogPublisherCfg config)
{
// Default result code.
@@ -232,6 +227,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
AccessLogPublisherCfg config)
{
@@ -288,6 +284,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
AccessLogPublisherCfg config,
List<Message> unacceptableReasons)
@@ -311,6 +308,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
AccessLogPublisherCfg config)
{
@@ -348,13 +346,12 @@
AccessLogPublisherCfgDefn d = AccessLogPublisherCfgDefn.getInstance();
ClassPropertyDefinition pd =
d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a DebugLogPublisher.
- AccessLogPublisher<?> publisher = null;
- Class<? extends AccessLogPublisher<?>> theClass;
try {
- theClass = (Class<? extends AccessLogPublisher<?>>)
- pd.loadClass(className, AccessLogPublisher.class);
- publisher = theClass.newInstance();
+ // Load the class and cast it to a AccessLogPublisher.
+ AccessLogPublisher<AccessLogPublisherCfg> publisher =
+ pd.loadClass(className, AccessLogPublisher.class).newInstance();
+ // The class is valid as far as we can tell.
+ return publisher.isConfigurationAcceptable(config, unacceptableReasons);
} catch (Exception e) {
Message message = ERR_CONFIG_LOGGER_INVALID_ACCESS_LOGGER_CLASS.get(
className,
@@ -363,31 +360,6 @@
unacceptableReasons.add(message);
return false;
}
- // Check that the implementation class implements the correct interface.
- try {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("isConfigurationAcceptable",
- AccessLogPublisherCfg.class,
- List.class);
- Boolean acceptable = (Boolean) method.invoke(publisher, config,
- unacceptableReasons);
-
- if (! acceptable)
- {
- return false;
- }
- } catch (Exception e) {
- Message message = ERR_CONFIG_LOGGER_INVALID_ACCESS_LOGGER_CLASS.get(
- className,
- config.dn().toString(),
- String.valueOf(e));
- unacceptableReasons.add(message);
- return false;
- }
- // The class is valid as far as we can tell.
- return true;
}
private AccessLogPublisher<?> getAccessPublisher(AccessLogPublisherCfg config)
@@ -396,29 +368,13 @@
AccessLogPublisherCfgDefn d = AccessLogPublisherCfgDefn.getInstance();
ClassPropertyDefinition pd =
d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a AccessLogPublisher.
- AccessLogPublisher<?> accessLogPublisher;
try {
- @SuppressWarnings("unchecked")
- Class<? extends AccessLogPublisher<?>> theClass =
- (Class<? extends AccessLogPublisher<?>>) pd
- .loadClass(className, AccessLogPublisher.class);
- accessLogPublisher = theClass.newInstance();
-
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("initializeAccessLogPublisher", config
- .configurationClass());
- method.invoke(accessLogPublisher, config);
- }
- catch (InvocationTargetException ite)
- {
- // Rethrow the exceptions thrown be the invoked method.
- Throwable e = ite.getTargetException();
- Message message = ERR_CONFIG_LOGGER_INVALID_ACCESS_LOGGER_CLASS.get(
- className, config.dn().toString(), stackTraceToSingleLineString(e));
- throw new ConfigException(message, e);
+ // Load the class and cast it to a AccessLogPublisher.
+ AccessLogPublisher<AccessLogPublisherCfg> accessLogPublisher =
+ pd.loadClass(className, AccessLogPublisher.class).newInstance();
+ accessLogPublisher.initializeLogPublisher(config);
+ // The access publisher has been successfully initialized.
+ return accessLogPublisher;
}
catch (Exception e)
{
@@ -426,9 +382,6 @@
className, config.dn().toString(), String.valueOf(e));
throw new ConfigException(message, e);
}
-
- // The access publisher has been successfully initialized.
- return accessLogPublisher;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java
index 5732757..25ca9ee 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/ErrorLogger.java
@@ -23,34 +23,37 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
+ * Portions copyright 2013 ForgeRock AS
*/
package org.opends.server.loggers;
-import org.opends.messages.Message;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.List;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.loggers.debug.DebugLogger.*;
+import static org.opends.server.util.StaticUtils.*;
+
import java.util.ArrayList;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.opends.messages.Message;
+import org.opends.server.admin.ClassPropertyDefinition;
+import org.opends.server.admin.server.ConfigurationAddListener;
+import org.opends.server.admin.server.ConfigurationChangeListener;
+import org.opends.server.admin.server.ConfigurationDeleteListener;
+import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn;
+import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
import org.opends.server.api.DirectoryThread;
import org.opends.server.api.ErrorLogPublisher;
import org.opends.server.backends.task.Task;
-import org.opends.server.loggers.debug.DebugTracer;
-
-import org.opends.server.types.*;
-import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
-import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn;
-import org.opends.server.admin.server.ConfigurationAddListener;
-import org.opends.server.admin.server.ConfigurationDeleteListener;
-import org.opends.server.admin.server.ConfigurationChangeListener;
-import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.debug.DebugTracer;
+import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.DN;
+import org.opends.server.types.DebugLogLevel;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.ResultCode;
-import static org.opends.server.loggers.debug.DebugLogger.*;
-import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.util.StaticUtils.*;
/**
* This class defines the wrapper that will invoke all registered error loggers
* for each type of request received or response sent. If no error log
@@ -158,6 +161,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(ErrorLogPublisherCfg config,
List<Message> unacceptableReasons)
{
@@ -168,6 +172,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
ErrorLogPublisherCfg config,
List<Message> unacceptableReasons)
@@ -179,6 +184,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(ErrorLogPublisherCfg config)
{
// Default result code.
@@ -223,6 +229,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
ErrorLogPublisherCfg config)
{
@@ -279,6 +286,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
ErrorLogPublisherCfg config,
List<Message> unacceptableReasons)
@@ -301,6 +309,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
ErrorLogPublisherCfg config)
{
@@ -337,12 +346,12 @@
ErrorLogPublisherCfgDefn d = ErrorLogPublisherCfgDefn.getInstance();
ClassPropertyDefinition pd =
d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a DebugLogPublisher.
- ErrorLogPublisher publisher = null;
- Class<? extends ErrorLogPublisher> theClass;
try {
- theClass = pd.loadClass(className, ErrorLogPublisher.class);
- publisher = theClass.newInstance();
+ // Load the class and cast it to a ErrorLogPublisher.
+ ErrorLogPublisher<ErrorLogPublisherCfg> publisher =
+ pd.loadClass(className, ErrorLogPublisher.class).newInstance();
+ // The class is valid as far as we can tell.
+ return publisher.isConfigurationAcceptable(config, unacceptableReasons);
} catch (Exception e) {
Message message = ERR_CONFIG_LOGGER_INVALID_ERROR_LOGGER_CLASS.get(
className,
@@ -351,31 +360,6 @@
unacceptableReasons.add(message);
return false;
}
- // Check that the implementation class implements the correct interface.
- try {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("isConfigurationAcceptable",
- ErrorLogPublisherCfg.class,
- List.class);
- Boolean acceptable = (Boolean) method.invoke(publisher, config,
- unacceptableReasons);
-
- if (! acceptable)
- {
- return false;
- }
- } catch (Exception e) {
- Message message = ERR_CONFIG_LOGGER_INVALID_ERROR_LOGGER_CLASS.get(
- className,
- config.dn().toString(),
- String.valueOf(e));
- unacceptableReasons.add(message);
- return false;
- }
- // The class is valid as far as we can tell.
- return true;
}
private ErrorLogPublisher getErrorPublisher(ErrorLogPublisherCfg config)
@@ -384,27 +368,13 @@
ErrorLogPublisherCfgDefn d = ErrorLogPublisherCfgDefn.getInstance();
ClassPropertyDefinition pd =
d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a ErrorLogPublisher.
- Class<? extends ErrorLogPublisher> theClass;
- ErrorLogPublisher errorLogPublisher;
try {
- theClass = pd.loadClass(className, ErrorLogPublisher.class);
- errorLogPublisher = theClass.newInstance();
-
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("initializeErrorLogPublisher", config
- .configurationClass());
- method.invoke(errorLogPublisher, config);
- }
- catch (InvocationTargetException ite)
- {
- // Rethrow the exceptions thrown be the invoked method.
- Throwable e = ite.getTargetException();
- Message message = ERR_CONFIG_LOGGER_INVALID_ERROR_LOGGER_CLASS.get(
- className, config.dn().toString(), stackTraceToSingleLineString(e));
- throw new ConfigException(message, e);
+ // Load the class and cast it to a ErrorLogPublisher.
+ ErrorLogPublisher<ErrorLogPublisherCfg> errorLogPublisher =
+ pd.loadClass(className, ErrorLogPublisher.class).newInstance();
+ errorLogPublisher.initializeLogPublisher(config);
+ // The error publisher has been successfully initialized.
+ return errorLogPublisher;
}
catch (Exception e)
{
@@ -412,9 +382,6 @@
className, config.dn().toString(), String.valueOf(e));
throw new ConfigException(message, e);
}
-
- // The error publisher has been successfully initialized.
- return errorLogPublisher;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
index c6f1e0d..d514328 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
@@ -262,9 +262,8 @@
* {@inheritDoc}
*/
@Override
- public void initializeAccessLogPublisher(
- final FileBasedAccessLogPublisherCfg cfg) throws ConfigException,
- InitializationException
+ public void initializeLogPublisher(final FileBasedAccessLogPublisherCfg cfg)
+ throws ConfigException, InitializationException
{
final File logFile = getFileForPath(cfg.getLogFile());
final FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java
index 5a3a29d..a6b7155 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java
@@ -23,18 +23,16 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
- * Portions copyright 2011 ForgeRock AS.
+ * Portions copyright 2011-2013 ForgeRock AS.
*/
package org.opends.server.loggers;
import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.types.ResultCode.SUCCESS;
-import static org.opends.server.util.ServerConstants.EOL;
-import static org.opends.server.util.StaticUtils.getBytes;
-import static org.opends.server.util.StaticUtils.getFileForPath;
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
+import static org.opends.server.types.ResultCode.*;
+import static org.opends.server.util.ServerConstants.*;
+import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.io.IOException;
@@ -71,6 +69,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
FileBasedAuditLogPublisherCfg config)
{
@@ -184,7 +183,7 @@
* {@inheritDoc}
*/
@Override()
- public void initializeAccessLogPublisher(FileBasedAuditLogPublisherCfg cfg)
+ public void initializeLogPublisher(FileBasedAuditLogPublisherCfg cfg)
throws ConfigException, InitializationException
{
File logFile = getFileForPath(cfg.getLogFile());
@@ -267,6 +266,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
FileBasedAuditLogPublisherCfg config, List<Message> unacceptableReasons)
{
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
index 7898a03..665b7bb 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
@@ -23,32 +23,29 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
- * Portions copyright 2012 ForgeRock AS.
+ * Portions copyright 2012-2013 ForgeRock AS.
*/
package org.opends.server.loggers;
-import org.opends.messages.Message;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.messages.LoggerMessages.*;
+import static org.opends.server.util.ServerConstants.*;
+import static org.opends.server.util.StaticUtils.*;
import java.io.File;
import java.io.IOException;
import java.util.*;
-import org.opends.server.api.*;
-import org.opends.server.core.DirectoryServer;
-import org.opends.server.config.ConfigException;
-import org.opends.server.types.*;
-
-import static org.opends.messages.ConfigMessages.*;
-import static org.opends.messages.LoggerMessages.*;
-import org.opends.messages.Severity;
import org.opends.messages.Category;
-import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
-import org.opends.server.admin.std.server.FileBasedErrorLogPublisherCfg;
-import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn;
+import org.opends.messages.Message;
+import org.opends.messages.Severity;
import org.opends.server.admin.server.ConfigurationChangeListener;
-import static org.opends.server.util.StaticUtils.getFileForPath;
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
+import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn;
+import org.opends.server.admin.std.server.FileBasedErrorLogPublisherCfg;
+import org.opends.server.api.ErrorLogPublisher;
+import org.opends.server.config.ConfigException;
+import org.opends.server.core.DirectoryServer;
+import org.opends.server.types.*;
import org.opends.server.util.TimeThread;
-import static org.opends.server.util.ServerConstants.*;
/**
@@ -112,7 +109,8 @@
/**
* {@inheritDoc}
*/
- public void initializeErrorLogPublisher(FileBasedErrorLogPublisherCfg config)
+ @Override
+ public void initializeLogPublisher(FileBasedErrorLogPublisherCfg config)
throws ConfigException, InitializationException
{
File logFile = getFileForPath(config.getLogFile());
@@ -292,18 +290,16 @@
* {@inheritDoc}
*/
@Override()
- public boolean isConfigurationAcceptable(ErrorLogPublisherCfg configuration,
- List<Message> unacceptableReasons)
+ public boolean isConfigurationAcceptable(
+ FileBasedErrorLogPublisherCfg config, List<Message> unacceptableReasons)
{
- FileBasedErrorLogPublisherCfg config =
- (FileBasedErrorLogPublisherCfg) configuration;
-
return isConfigurationChangeAcceptable(config, unacceptableReasons);
}
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
FileBasedErrorLogPublisherCfg config, List<Message> unacceptableReasons)
{
@@ -384,6 +380,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
FileBasedErrorLogPublisherCfg config)
{
@@ -591,6 +588,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void close()
{
writer.shutdown();
@@ -605,12 +603,13 @@
/**
* {@inheritDoc}
*/
+ @Override
public void logError(Message message)
{
Severity severity = message.getDescriptor().getSeverity();
Category category = message.getDescriptor().getCategory();
int msgId = message.getDescriptor().getId();
- HashSet<Severity> severities = definedSeverities.get(category);
+ Set<Severity> severities = definedSeverities.get(category);
if(severities == null)
{
severities = defaultSeverities;
@@ -634,6 +633,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public DN getDN()
{
if(currentConfig != null)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/ThreadFilterTextErrorLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/ThreadFilterTextErrorLogPublisher.java
index ce8edc0..c6329ee 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/ThreadFilterTextErrorLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/ThreadFilterTextErrorLogPublisher.java
@@ -23,19 +23,20 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
*/
package org.opends.server.loggers;
-import org.opends.server.types.InitializationException;
-import org.opends.server.types.DN;
-import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
-import org.opends.server.config.ConfigException;
-import org.opends.server.api.ErrorLogPublisher;
-import org.opends.server.util.TimeThread;
+import org.opends.messages.Category;
import org.opends.messages.Message;
import org.opends.messages.Severity;
-import org.opends.messages.Category;
+import org.opends.server.admin.std.server.ErrorLogPublisherCfg;
+import org.opends.server.api.ErrorLogPublisher;
+import org.opends.server.config.ConfigException;
+import org.opends.server.types.DN;
+import org.opends.server.types.InitializationException;
+import org.opends.server.util.TimeThread;
/**
* This class provides an implementation of an error logger where only messages
@@ -64,7 +65,8 @@
/**
* {@inheritDoc}
*/
- public void initializeErrorLogPublisher(ErrorLogPublisherCfg config)
+ @Override
+ public void initializeLogPublisher(ErrorLogPublisherCfg config)
throws ConfigException, InitializationException
{
// This class should only be used internally in the server and not be
@@ -74,6 +76,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void close()
{
writer.shutdown();
@@ -82,6 +85,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void logError(Message message)
{
if (message != null) {
@@ -108,6 +112,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public DN getDN()
{
// This class should only be used internally in the server and not be
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java
index 65fe249..dd3ddf8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/DebugLogger.java
@@ -23,32 +23,33 @@
*
*
* Copyright 2007-2009 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
*/
-
package org.opends.server.loggers.debug;
-import org.opends.messages.Message;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.StaticUtils.*;
-import java.util.*;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
+import java.util.concurrent.CopyOnWriteArrayList;
-import org.opends.server.api.DebugLogPublisher;
-import org.opends.server.loggers.*;
-import org.opends.server.types.*;
-import org.opends.server.admin.std.server.DebugLogPublisherCfg;
-import org.opends.server.admin.std.meta.DebugLogPublisherCfgDefn;
+import org.opends.messages.Message;
+import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
-import org.opends.server.admin.ClassPropertyDefinition;
+import org.opends.server.admin.std.meta.DebugLogPublisherCfgDefn;
+import org.opends.server.admin.std.server.DebugLogPublisherCfg;
+import org.opends.server.api.DebugLogPublisher;
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
-
-import static org.opends.messages.ConfigMessages.*;
-
-import static org.opends.server.util.StaticUtils.*;
+import org.opends.server.loggers.LogLevel;
+import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.DN;
+import org.opends.server.types.DebugLogLevel;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.ResultCode;
/**
* A logger for debug and trace logging. DebugLogger provides a debugging
@@ -182,6 +183,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(DebugLogPublisherCfg config,
List<Message> unacceptableReasons)
{
@@ -192,6 +194,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(DebugLogPublisherCfg config,
List<Message> unacceptableReasons)
{
@@ -202,6 +205,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(DebugLogPublisherCfg config)
{
// Default result code.
@@ -240,6 +244,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
DebugLogPublisherCfg config)
{
@@ -295,6 +300,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(DebugLogPublisherCfg config,
List<Message> unacceptableReasons)
{
@@ -310,12 +316,12 @@
}
return debugLogPublisher != null;
-
}
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult
applyConfigurationDelete(DebugLogPublisherCfg config)
{
@@ -351,12 +357,12 @@
DebugLogPublisherCfgDefn d = DebugLogPublisherCfgDefn.getInstance();
ClassPropertyDefinition pd =
d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a DebugLogPublisher.
- DebugLogPublisher publisher = null;
- Class<? extends DebugLogPublisher> theClass;
try {
- theClass = pd.loadClass(className, DebugLogPublisher.class);
- publisher = theClass.newInstance();
+ // Load the class and cast it to a DebugLogPublisher.
+ DebugLogPublisher<DebugLogPublisherCfg> publisher =
+ pd.loadClass(className, DebugLogPublisher.class).newInstance();
+ // The class is valid as far as we can tell.
+ return publisher.isConfigurationAcceptable(config, unacceptableReasons);
} catch (Exception e) {
Message message = ERR_CONFIG_LOGGER_INVALID_DEBUG_LOGGER_CLASS.get(
className,
@@ -365,31 +371,6 @@
unacceptableReasons.add(message);
return false;
}
- // Check that the implementation class implements the correct interface.
- try {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("isConfigurationAcceptable",
- DebugLogPublisherCfg.class,
- List.class);
- Boolean acceptable = (Boolean) method.invoke(publisher, config,
- unacceptableReasons);
-
- if (! acceptable)
- {
- return false;
- }
- } catch (Exception e) {
- Message message = ERR_CONFIG_LOGGER_INVALID_DEBUG_LOGGER_CLASS.get(
- className,
- config.dn().toString(),
- String.valueOf(e));
- unacceptableReasons.add(message);
- return false;
- }
- // The class is valid as far as we can tell.
- return true;
}
private DebugLogPublisher getDebugPublisher(DebugLogPublisherCfg config)
@@ -398,27 +379,13 @@
DebugLogPublisherCfgDefn d = DebugLogPublisherCfgDefn.getInstance();
ClassPropertyDefinition pd =
d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a DebugLogPublisher.
- Class<? extends DebugLogPublisher> theClass;
- DebugLogPublisher debugLogPublisher;
try {
- theClass = pd.loadClass(className, DebugLogPublisher.class);
- debugLogPublisher = theClass.newInstance();
-
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("initializeDebugLogPublisher", config
- .configurationClass());
- method.invoke(debugLogPublisher, config);
- }
- catch (InvocationTargetException ite)
- {
- // Rethrow the exceptions thrown be the invoked method.
- Throwable e = ite.getTargetException();
- Message message = ERR_CONFIG_LOGGER_INVALID_DEBUG_LOGGER_CLASS.get(
- className, config.dn().toString(), stackTraceToSingleLineString(e));
- throw new ConfigException(message, e);
+ // Load the class and cast it to a DebugLogPublisher.
+ DebugLogPublisher<DebugLogPublisherCfg> debugLogPublisher =
+ pd.loadClass(className, DebugLogPublisher.class).newInstance();
+ debugLogPublisher.initializeLogPublisher(config);
+ // The debug publisher has been successfully initialized.
+ return debugLogPublisher;
}
catch (Exception e)
{
@@ -426,9 +393,6 @@
className, config.dn().toString(), String.valueOf(e));
throw new ConfigException(message, e);
}
-
- // The debug publisher has been successfully initialized.
- return debugLogPublisher;
}
/**
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
index aca7ed5..5e4b7f1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/debug/TextDebugLogPublisher.java
@@ -23,41 +23,38 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
*/
package org.opends.server.loggers.debug;
-import org.opends.messages.Message;
-import org.opends.server.api.*;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.ServerConstants.*;
+import static org.opends.server.util.StaticUtils.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.opends.messages.Message;
+import org.opends.server.admin.server.ConfigurationAddListener;
+import org.opends.server.admin.server.ConfigurationChangeListener;
+import org.opends.server.admin.server.ConfigurationDeleteListener;
+import org.opends.server.admin.std.meta.DebugLogPublisherCfgDefn;
+import org.opends.server.admin.std.server.DebugTargetCfg;
+import org.opends.server.admin.std.server.FileBasedDebugLogPublisherCfg;
+import org.opends.server.api.DebugLogPublisher;
+import org.opends.server.api.DirectoryThread;
+import org.opends.server.config.ConfigException;
+import org.opends.server.core.DirectoryServer;
import org.opends.server.loggers.*;
import org.opends.server.types.*;
import org.opends.server.util.ServerConstants;
import org.opends.server.util.StaticUtils;
import org.opends.server.util.TimeThread;
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
-import static org.opends.server.util.StaticUtils.getFileForPath;
-import static org.opends.server.util.ServerConstants.PROPERTY_DEBUG_TARGET;
-import org.opends.server.admin.std.server.DebugTargetCfg;
-import org.opends.server.admin.std.server.FileBasedDebugLogPublisherCfg;
-import org.opends.server.admin.std.server.DebugLogPublisherCfg;
-import org.opends.server.admin.std.meta.DebugLogPublisherCfgDefn;
-import org.opends.server.admin.server.ConfigurationChangeListener;
-import org.opends.server.admin.server.ConfigurationDeleteListener;
-import org.opends.server.admin.server.ConfigurationAddListener;
-import org.opends.server.config.ConfigException;
-import org.opends.server.core.DirectoryServer;
-import static org.opends.messages.ConfigMessages.
- ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER;
-import static org.opends.messages.ConfigMessages.
- ERR_CONFIG_LOGGING_CANNOT_OPEN_FILE;
-import static org.opends.messages.ConfigMessages.
- ERR_CONFIG_LOGGING_INSANE_MODE;
-import static org.opends.messages.ConfigMessages.
- ERR_CONFIG_LOGGING_MODE_INVALID;
-
-
-import java.util.*;
-import java.io.File;
-import java.io.IOException;
import com.sleepycat.je.*;
@@ -125,18 +122,18 @@
/**
* {@inheritDoc}
*/
- public boolean isConfigurationAcceptable(DebugLogPublisherCfg configuration,
- List<Message> unacceptableReasons)
+ @Override
+ public boolean isConfigurationAcceptable(
+ FileBasedDebugLogPublisherCfg config, List<Message> unacceptableReasons)
{
- FileBasedDebugLogPublisherCfg config =
- (FileBasedDebugLogPublisherCfg) configuration;
return isConfigurationChangeAcceptable(config, unacceptableReasons);
}
/**
* {@inheritDoc}
*/
- public void initializeDebugLogPublisher(FileBasedDebugLogPublisherCfg config)
+ @Override
+ public void initializeLogPublisher(FileBasedDebugLogPublisherCfg config)
throws ConfigException, InitializationException
{
File logFile = getFileForPath(config.getLogFile());
@@ -247,6 +244,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
FileBasedDebugLogPublisherCfg config, List<Message> unacceptableReasons)
{
@@ -277,6 +275,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
FileBasedDebugLogPublisherCfg config)
{
@@ -403,6 +402,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(DebugTargetCfg config,
List<Message> unacceptableReasons)
{
@@ -412,6 +412,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(DebugTargetCfg config,
List<Message> unacceptableReasons)
{
@@ -422,6 +423,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(DebugTargetCfg config)
{
// Default result code.
@@ -439,6 +441,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(DebugTargetCfg config)
{
// Default result code.
@@ -456,6 +459,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceConstructor(LogLevel level,
TraceSettings settings,
String signature,
@@ -483,6 +487,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceMethodEntry(LogLevel level,
TraceSettings settings,
String signature,
@@ -510,6 +515,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceStaticMethodEntry(LogLevel level,
TraceSettings settings,
String signature,
@@ -536,6 +542,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceReturn(LogLevel level,
TraceSettings settings,
String signature,
@@ -563,6 +570,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceThrown(LogLevel level,
TraceSettings settings,
String signature,
@@ -588,6 +596,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceMessage(LogLevel level,
TraceSettings settings,
String signature,
@@ -609,6 +618,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceCaught(LogLevel level,
TraceSettings settings,
String signature,
@@ -633,6 +643,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceJEAccess(LogLevel level,
TraceSettings settings,
String signature,
@@ -709,6 +720,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceData(LogLevel level,
TraceSettings settings,
String signature,
@@ -741,6 +753,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceProtocolElement(LogLevel level,
TraceSettings settings,
String signature,
@@ -767,6 +780,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void close()
{
writer.shutdown();
@@ -862,6 +876,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public DN getDN()
{
if(currentConfig != null)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java
index bdb0ec9..da24bbe 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/ConsoleDebugLogPublisher.java
@@ -23,33 +23,36 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
+ * Portions Copyright 2013 ForgeRock AS
*/
package org.opends.server.tools;
-import org.opends.server.api.DebugLogPublisher;
-import org.opends.server.loggers.LogLevel;
-import org.opends.server.loggers.LogCategory;
-import org.opends.server.loggers.debug.TraceSettings;
-import org.opends.server.loggers.debug.DebugStackTraceFormatter;
-import org.opends.server.loggers.debug.DebugMessageFormatter;
-import org.opends.server.types.DebugLogCategory;
-import org.opends.server.types.DN;
-import org.opends.server.types.InitializationException;
-import org.opends.server.util.ServerConstants;
-import org.opends.server.util.StaticUtils;
-import org.opends.server.admin.std.server.DebugLogPublisherCfg;
-import org.opends.server.config.ConfigException;
-import com.sleepycat.je.*;
-
import java.io.PrintStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import org.opends.server.admin.std.server.DebugLogPublisherCfg;
+import org.opends.server.api.DebugLogPublisher;
+import org.opends.server.config.ConfigException;
+import org.opends.server.loggers.LogCategory;
+import org.opends.server.loggers.LogLevel;
+import org.opends.server.loggers.debug.DebugMessageFormatter;
+import org.opends.server.loggers.debug.DebugStackTraceFormatter;
+import org.opends.server.loggers.debug.TraceSettings;
+import org.opends.server.types.DN;
+import org.opends.server.types.DebugLogCategory;
+import org.opends.server.types.InitializationException;
+import org.opends.server.util.ServerConstants;
+import org.opends.server.util.StaticUtils;
+
+import com.sleepycat.je.*;
+
/**
* The debug log publisher implementation that writes debug messages in a
* friendly for console output.
*/
-public class ConsoleDebugLogPublisher extends DebugLogPublisher
+public class ConsoleDebugLogPublisher extends
+ DebugLogPublisher<DebugLogPublisherCfg>
{
/**
* The print stream where tracing will be sent.
@@ -74,14 +77,16 @@
/**
* {@inheritDoc}
*/
- public void initializeDebugLogPublisher(DebugLogPublisherCfg config)
+ @Override
+ public void initializeLogPublisher(DebugLogPublisherCfg config)
throws ConfigException, InitializationException {
- // This pubisher is not configurable.
+ // This publisher is not configurable.
}
/**
* {@inheritDoc}
*/
+ @Override
public void traceConstructor(LogLevel level,
TraceSettings settings,
String signature,
@@ -109,6 +114,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceMethodEntry(LogLevel level,
TraceSettings settings,
String signature,
@@ -136,6 +142,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceStaticMethodEntry(LogLevel level,
TraceSettings settings,
String signature,
@@ -162,6 +169,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceReturn(LogLevel level,
TraceSettings settings,
String signature,
@@ -195,6 +203,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceThrown(LogLevel level,
TraceSettings settings,
String signature,
@@ -226,6 +235,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceMessage(LogLevel level,
TraceSettings settings,
String signature,
@@ -247,6 +257,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceCaught(LogLevel level,
TraceSettings settings,
String signature,
@@ -278,6 +289,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceJEAccess(LogLevel level,
TraceSettings settings,
String signature,
@@ -353,6 +365,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceData(LogLevel level,
TraceSettings settings,
String signature,
@@ -384,6 +397,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void traceProtocolElement(LogLevel level,
TraceSettings settings,
String signature,
@@ -405,6 +419,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void close()
{
// Nothing to do.
@@ -465,6 +480,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public DN getDN()
{
// There is no configuration DN associated with this publisher.
--
Gitblit v1.10.0