You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ni...@apache.org on 2013/05/13 17:37:29 UTC
svn commit: r1481932 [2/2] - in /logging/log4j/log4j2/trunk/core/src:
main/java/org/apache/logging/log4j/core/appender/db/
main/java/org/apache/logging/log4j/core/appender/db/jdbc/
main/java/org/apache/logging/log4j/core/appender/db/jpa/ main/java/org/...
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverter.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverter.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverter.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverter.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.apache.logging.log4j.ThreadContext;
@@ -33,7 +49,7 @@ public class ContextStackJsonAttributeCo
List<String> list;
try {
- list = ContextMapJsonAttributeConverter.OBJECT_MAPPER.readValue(s, new TypeReference<List<String>>(){ });
+ list = ContextMapJsonAttributeConverter.OBJECT_MAPPER.readValue(s, new TypeReference<List<String>>() { });
} catch (IOException e) {
throw new PersistenceException("Failed to convert JSON string to list for stack.", e);
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverter.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverter.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverter.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverter.java Mon May 13 15:37:27 2013
@@ -23,6 +23,10 @@ import javax.persistence.AttributeConver
* converter is capable of converting both to and from {@link String}s.
*/
public class StackTraceElementAttributeConverter implements AttributeConverter<StackTraceElement, String> {
+ private static final int UNKNOWN_SOURCE = -1;
+
+ private static final int NATIVE_METHOD = -2;
+
@Override
public String convertToDatabaseColumn(final StackTraceElement element) {
return element.toString();
@@ -43,12 +47,12 @@ public class StackTraceElementAttributeC
String parenthesisContents = s.substring(open + 1, s.indexOf(")"));
String fileName = null;
- int lineNumber = -1;
+ int lineNumber = UNKNOWN_SOURCE;
if ("Native Method".equals(parenthesisContents)) {
- lineNumber = -2;
+ lineNumber = NATIVE_METHOD;
} else if (!"Unknown Source".equals(parenthesisContents)) {
int colon = parenthesisContents.indexOf(":");
- if (colon > -1) {
+ if (colon > UNKNOWN_SOURCE) {
fileName = parenthesisContents.substring(0, colon);
try {
lineNumber = Integer.parseInt(parenthesisContents.substring(colon + 1));
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverter.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverter.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverter.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverter.java Mon May 13 15:37:27 2013
@@ -31,6 +31,8 @@ import java.util.ListIterator;
*/
@Converter(autoApply = false)
public class ThrowableAttributeConverter implements AttributeConverter<Throwable, String> {
+ private static final int CAUSED_BY_STRING_LENGTH = 10;
+
private static final Field THROWABLE_CAUSE;
private static final Field THROWABLE_MESSAGE;
@@ -77,7 +79,7 @@ public class ThrowableAttributeConverter
private Throwable convertString(final ListIterator<String> lines, boolean removeCausedBy) {
String firstLine = lines.next();
if (removeCausedBy) {
- firstLine = firstLine.substring(10);
+ firstLine = firstLine.substring(CAUSED_BY_STRING_LENGTH);
}
int colon = firstLine.indexOf(":");
String throwableClassName;
@@ -115,7 +117,7 @@ public class ThrowableAttributeConverter
final StackTraceElement[] stackTrace) {
try {
@SuppressWarnings("unchecked")
- Class<Throwable> throwableClass = (Class<Throwable>)Class.forName(throwableClassName);
+ Class<Throwable> throwableClass = (Class<Throwable>) Class.forName(throwableClassName);
if (!Throwable.class.isAssignableFrom(throwableClass)) {
return null;
@@ -175,7 +177,7 @@ public class ThrowableAttributeConverter
private Throwable getThrowable(final Class<Throwable> throwableClass, final String message, final Throwable cause) {
try {
@SuppressWarnings("unchecked")
- Constructor<Throwable>[] constructors = (Constructor<Throwable>[])throwableClass.getConstructors();
+ Constructor<Throwable>[] constructors = (Constructor<Throwable>[]) throwableClass.getConstructors();
for (Constructor<Throwable> constructor : constructors) {
Class<?>[] parameterTypes = constructor.getParameterTypes();
if (parameterTypes.length == 2) {
@@ -196,7 +198,7 @@ public class ThrowableAttributeConverter
private Throwable getThrowable(final Class<Throwable> throwableClass, final Throwable cause) {
try {
@SuppressWarnings("unchecked")
- Constructor<Throwable>[] constructors = (Constructor<Throwable>[])throwableClass.getConstructors();
+ Constructor<Throwable>[] constructors = (Constructor<Throwable>[]) throwableClass.getConstructors();
for (Constructor<Throwable> constructor : constructors) {
Class<?>[] parameterTypes = constructor.getParameterTypes();
if (parameterTypes.length == 1 && Throwable.class.isAssignableFrom(parameterTypes[0])) {
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLAppender.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLAppender.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLAppender.java Mon May 13 15:37:27 2013
@@ -37,27 +37,37 @@ import org.apache.logging.log4j.core.con
*/
@Plugin(name = "NoSql", category = "Core", elementType = "appender", printObject = true)
public final class NoSQLAppender extends AbstractDatabaseAppender<NoSQLDatabaseManager<?>> {
+ private final String description;
+
+ private NoSQLAppender(final String name, final Filter filter, final boolean handleException,
+ final NoSQLDatabaseManager<?> manager) {
+ super(name, filter, handleException, manager);
+ this.description = this.getName() + "{ manager=" + this.getManager() + " }";
+ }
+
+ @Override
+ public String toString() {
+ return this.description;
+ }
+
/**
* Factory method for creating a NoSQL appender within the plugin manager.
- *
- * @param name
- * The name of the appender.
- * @param suppressExceptions
- * {@code "true"} (default) if logging exceptions should be hidden from the application, false otherwise.
- * @param filter
- * The filter, if any, to use.
- * @param bufferSize
- * If an integer greater than 0, this causes the appender to buffer log events and flush whenever the
- * buffer reaches this size.
- * @param provider
- * The NoSQL provider that provides connections to the chosen NoSQL database.
+ *
+ * @param name The name of the appender.
+ * @param suppressExceptions {@code "true"} (default) if logging exceptions should be hidden from the application,
+ * {@code "false"} otherwise.
+ * @param filter The filter, if any, to use.
+ * @param bufferSize If an integer greater than 0, this causes the appender to buffer log events and flush whenever
+ * the buffer reaches this size.
+ * @param provider The NoSQL provider that provides connections to the chosen NoSQL database.
* @return a new NoSQL appender.
*/
@PluginFactory
public static NoSQLAppender createAppender(@PluginAttr("name") final String name,
- @PluginAttr("suppressExceptions") final String suppressExceptions,
- @PluginElement("filter") final Filter filter, @PluginAttr("bufferSize") final String bufferSize,
- @PluginElement("noSqlProvider") final NoSQLProvider<?> provider) {
+ @PluginAttr("suppressExceptions") final String suppressExceptions,
+ @PluginElement("filter") final Filter filter,
+ @PluginAttr("bufferSize") final String bufferSize,
+ @PluginElement("noSqlProvider") final NoSQLProvider<?> provider) {
if (provider == null) {
LOGGER.error("NoSQL provider not specified for appender [{}].", name);
return null;
@@ -76,25 +86,13 @@ public final class NoSQLAppender extends
final String managerName = "noSqlManager{ description=" + name + ", bufferSize=" + bufferSizeInt
+ ", provider=" + provider + " }";
- final NoSQLDatabaseManager<?> manager = NoSQLDatabaseManager.getNoSQLDatabaseManager(managerName,
- bufferSizeInt, provider);
+ final NoSQLDatabaseManager<?> manager = NoSQLDatabaseManager.getNoSQLDatabaseManager(
+ managerName, bufferSizeInt, provider
+ );
if (manager == null) {
return null;
}
return new NoSQLAppender(name, filter, handleExceptions, manager);
}
-
- private final String description;
-
- private NoSQLAppender(final String name, final Filter filter, final boolean handleException,
- final NoSQLDatabaseManager<?> manager) {
- super(name, filter, handleException, manager);
- this.description = this.getName() + "{ manager=" + this.getManager() + " }";
- }
-
- @Override
- public String toString() {
- return this.description;
- }
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLConnection.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLConnection.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLConnection.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLConnection.java Mon May 13 15:37:27 2013
@@ -16,23 +16,56 @@
*/
package org.apache.logging.log4j.core.appender.db.nosql;
+import java.io.Closeable;
+
/**
* Represents a connection to the NoSQL database. Serves as a factory for new (empty) objects and an endpoint for
* inserted objects.
*
- * @param <T>
- * Specifies which implementation of {@link NoSQLObject} this connection provides.
- * @param <W>
- * Specifies which type of database object is wrapped by the {@link NoSQLObject} implementation provided.
+ * @param <T> Specifies which implementation of {@link NoSQLObject} this connection provides.
+ * @param <W> Specifies which type of database object is wrapped by the {@link NoSQLObject} implementation provided.
*/
-public interface NoSQLConnection<W, T extends NoSQLObject<W>> {
- void close();
+public interface NoSQLConnection<W, T extends NoSQLObject<W>> extends Closeable {
+ /**
+ * Instantiates and returns a {@link NoSQLObject} instance whose properties can be configured before ultimate
+ * insertion via {@link #insertObject(NoSQLObject)}.
+ *
+ * @return a new object.
+ * @see NoSQLObject
+ */
+ T createObject();
+ /**
+ * Creates an array of the specified length typed to match the {@link NoSQLObject} implementation appropriate for
+ * this provider.
+ *
+ * @param length the length of the array to create.
+ * @return a new array.
+ * @see NoSQLObject
+ */
T[] createList(int length);
- T createObject();
-
+ /**
+ * Inserts the given object into the underlying NoSQL database.
+ *
+ * @param object The object to insert.
+ */
void insertObject(NoSQLObject<W> object);
+ /**
+ * Closes the underlying connection. This method call should be idempotent. Only the first call should have any
+ * effect; all further calls should be ignored. It's possible the underlying connection is stateless (such as an
+ * HTTP web service), in which case this method would be a no-op.
+ */
+ @Override
+ void close();
+
+ /**
+ * Indicates whether the underlying connection is closed. If the underlying connection is stateless (such as an
+ * HTTP web service), this method would likely always return true. Essentially, this method should only return
+ * {@code true} if a call to {@link #insertObject(NoSQLObject)} <b>will</b> fail due to the state of this object.
+ *
+ * @return {@link true} if this object is considered closed.
+ */
boolean isClosed();
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLDatabaseManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLDatabaseManager.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLDatabaseManager.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLDatabaseManager.java Mon May 13 15:37:27 2013
@@ -16,61 +16,26 @@
*/
package org.apache.logging.log4j.core.appender.db.nosql;
-import java.util.Map;
-
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.ThreadContext;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.appender.ManagerFactory;
import org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
+import java.util.Map;
+
/**
* An {@link AbstractDatabaseManager} implementation for all NoSQL databases.
*
- * @param <W>
- * A type parameter for reassuring the compiler that all operations are using the same {@link NoSQLObject}.
+ * @param <W> A type parameter for reassuring the compiler that all operations are using the same {@link NoSQLObject}.
*/
public final class NoSQLDatabaseManager<W> extends AbstractDatabaseManager {
- private static final class FactoryData extends AbstractDatabaseManager.AbstractFactoryData {
- private final NoSQLProvider<?> provider;
-
- protected FactoryData(final int bufferSize, final NoSQLProvider<?> provider) {
- super(bufferSize);
- this.provider = provider;
- }
- }
-
- private static final class NoSQLDatabaseManagerFactory implements
- ManagerFactory<NoSQLDatabaseManager<?>, FactoryData> {
- @Override
- @SuppressWarnings("unchecked")
- public NoSQLDatabaseManager<?> createManager(final String name, final FactoryData data) {
- return new NoSQLDatabaseManager(name, data.bufferSize, data.provider);
- }
- }
-
private static final NoSQLDatabaseManagerFactory FACTORY = new NoSQLDatabaseManagerFactory();
- /**
- * Creates a NoSQL manager for use within the {@link NoSQLAppender}, or returns a suitable one if it already exists.
- *
- * @param name
- * The name of the manager, which should include connection details and hashed passwords where possible.
- * @param bufferSize
- * The size of the log event buffer.
- * @param provider
- * A provider instance which will be used to obtain connections to the chosen NoSQL database.
- * @return a new or existing NoSQL manager as applicable.
- */
- public static NoSQLDatabaseManager<?> getNoSQLDatabaseManager(final String name, final int bufferSize,
- final NoSQLProvider<?> provider) {
- return AbstractDatabaseManager.getManager(name, new FactoryData(bufferSize, provider), FACTORY);
- }
+ private final NoSQLProvider<NoSQLConnection<W, ? extends NoSQLObject<W>>> provider;
private NoSQLConnection<W, ? extends NoSQLObject<W>> connection;
- private final NoSQLProvider<NoSQLConnection<W, ? extends NoSQLObject<W>>> provider;
-
private NoSQLDatabaseManager(final String name, final int bufferSize,
final NoSQLProvider<NoSQLConnection<W, ? extends NoSQLObject<W>>> provider) {
super(name, bufferSize);
@@ -86,23 +51,6 @@ public final class NoSQLDatabaseManager<
}
}
- private NoSQLObject<W>[] convertStackTrace(final StackTraceElement[] stackTrace) {
- final NoSQLObject<W>[] stackTraceEntities = this.connection.createList(stackTrace.length);
- for (int i = 0; i < stackTrace.length; i++) {
- stackTraceEntities[i] = this.convertStackTraceElement(stackTrace[i]);
- }
- return stackTraceEntities;
- }
-
- private NoSQLObject<W> convertStackTraceElement(final StackTraceElement element) {
- final NoSQLObject<W> elementEntity = this.connection.createObject();
- elementEntity.set("className", element.getClassName());
- elementEntity.set("methodName", element.getMethodName());
- elementEntity.set("fileName", element.getFileName());
- elementEntity.set("lineNumber", element.getLineNumber());
- return elementEntity;
- }
-
@Override
protected void disconnectInternal() {
try {
@@ -197,4 +145,58 @@ public final class NoSQLDatabaseManager<
this.connection.insertObject(entity);
}
+
+ private NoSQLObject<W>[] convertStackTrace(final StackTraceElement[] stackTrace) {
+ final NoSQLObject<W>[] stackTraceEntities = this.connection.createList(stackTrace.length);
+ for (int i = 0; i < stackTrace.length; i++) {
+ stackTraceEntities[i] = this.convertStackTraceElement(stackTrace[i]);
+ }
+ return stackTraceEntities;
+ }
+
+ private NoSQLObject<W> convertStackTraceElement(final StackTraceElement element) {
+ final NoSQLObject<W> elementEntity = this.connection.createObject();
+ elementEntity.set("className", element.getClassName());
+ elementEntity.set("methodName", element.getMethodName());
+ elementEntity.set("fileName", element.getFileName());
+ elementEntity.set("lineNumber", element.getLineNumber());
+ return elementEntity;
+ }
+
+ /**
+ * Creates a NoSQL manager for use within the {@link NoSQLAppender}, or returns a suitable one if it already exists.
+ *
+ * @param name The name of the manager, which should include connection details and hashed passwords where possible.
+ * @param bufferSize The size of the log event buffer.
+ * @param provider A provider instance which will be used to obtain connections to the chosen NoSQL database.
+ * @return a new or existing NoSQL manager as applicable.
+ */
+ public static NoSQLDatabaseManager<?> getNoSQLDatabaseManager(final String name, final int bufferSize,
+ final NoSQLProvider<?> provider) {
+ return AbstractDatabaseManager.getManager(name, new FactoryData(bufferSize, provider), FACTORY);
+ }
+
+ /**
+ * Encapsulates data that {@link NoSQLDatabaseManagerFactory} uses to create managers.
+ */
+ private static final class FactoryData extends AbstractDatabaseManager.AbstractFactoryData {
+ private final NoSQLProvider<?> provider;
+
+ protected FactoryData(final int bufferSize, final NoSQLProvider<?> provider) {
+ super(bufferSize);
+ this.provider = provider;
+ }
+ }
+
+ /**
+ * Creates managers.
+ */
+ private static final class NoSQLDatabaseManagerFactory implements
+ ManagerFactory<NoSQLDatabaseManager<?>, FactoryData> {
+ @Override
+ @SuppressWarnings("unchecked")
+ public NoSQLDatabaseManager<?> createManager(final String name, final FactoryData data) {
+ return new NoSQLDatabaseManager(name, data.getBufferSize(), data.provider);
+ }
+ }
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLObject.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLObject.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLObject.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLObject.java Mon May 13 15:37:27 2013
@@ -19,17 +19,45 @@ package org.apache.logging.log4j.core.ap
/**
* Represents a simple POJO object inserted into a NoSQL object.
*
- * @param <W>
- * Specifies what type of underlying object (such as a MongoDB BasicDBObject) this NoSQLObject wraps.
+ * @param <W> Specifies what type of underlying object (such as a MongoDB BasicDBObject) this NoSQLObject wraps.
*/
public interface NoSQLObject<W> {
- void set(String field, NoSQLObject<W> value);
-
- void set(String field, NoSQLObject<W>[] values);
-
+ /**
+ * Sets the value of a property on this object to a String or primitive.
+ *
+ * @param field The name of the property
+ * @param value The value of the property
+ */
void set(String field, Object value);
+ /**
+ * Sets the value of a property on this object to a nested complex object.
+ *
+ * @param field The name of the property
+ * @param value The value of the property
+ */
+ void set(String field, NoSQLObject<W> value);
+
+ /**
+ * Sets the value of a property on this object to an array of Strings or primitives.
+ *
+ * @param field The name of the property
+ * @param values The values for the property
+ */
void set(String field, Object[] values);
+ /**
+ * Sets the value of a property on this object to an array of nested complex objects.
+ *
+ * @param field The name of the property
+ * @param values The values for the property
+ */
+ void set(String field, NoSQLObject<W>[] values);
+
+ /**
+ * Obtains the underlying NoSQL library-specific object that this object wraps.
+ *
+ * @return the wrapped object.
+ */
W unwrap();
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLProvider.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLProvider.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLProvider.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/NoSQLProvider.java Mon May 13 15:37:27 2013
@@ -20,9 +20,25 @@ package org.apache.logging.log4j.core.ap
* Implementations of this class are plugins for configuring the {@link NoSQLAppender} with the proper provider
* (MongoDB, etc.).
*
- * @param <C>
- * Specifies which implementation of {@link NoSQLConnection} this provider provides.
+ * @param <C> Specifies which implementation of {@link NoSQLConnection} this provider provides.
*/
public interface NoSQLProvider<C extends NoSQLConnection<?, ? extends NoSQLObject<?>>> {
+ /**
+ * Obtains a connection from this provider. The concept of a connection in this case is not strictly an active
+ * duplex UDP or TCP connection to the underlying database. It can be thought of more as a gateway, a path for
+ * inserting objects that may use a persistent connection or may use HTTP web service calls, etc.
+ *
+ * @return a connection that can be used to create and persist objects to this database.
+ * @see NoSQLConnection
+ */
C getConnection();
+
+ /**
+ * All implementations must override {@link Object#toString()} to provide information about the provider
+ * configuration (obscuring passwords with one-way hashes).
+ *
+ * @return the string representation of this NoSQL provider.
+ */
+ @Override
+ String toString();
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBConnection.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBConnection.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBConnection.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBConnection.java Mon May 13 15:37:27 2013
@@ -16,8 +16,6 @@
*/
package org.apache.logging.log4j.core.appender.db.nosql.couch;
-import java.util.Map;
-
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.appender.db.nosql.NoSQLConnection;
import org.apache.logging.log4j.core.appender.db.nosql.NoSQLObject;
@@ -25,6 +23,8 @@ import org.apache.logging.log4j.status.S
import org.lightcouch.CouchDbClient;
import org.lightcouch.Response;
+import java.util.Map;
+
/**
* The Apache CouchDB implementation of {@link NoSQLConnection}.
*/
@@ -39,9 +39,8 @@ public final class CouchDBConnection imp
}
@Override
- public synchronized void close() {
- this.closed = true;
- this.client.shutdown();
+ public CouchDBObject createObject() {
+ return new CouchDBObject();
}
@Override
@@ -50,11 +49,6 @@ public final class CouchDBConnection imp
}
@Override
- public CouchDBObject createObject() {
- return new CouchDBObject();
- }
-
- @Override
public void insertObject(final NoSQLObject<Map<String, Object>> object) {
try {
final Response response = this.client.save(object.unwrap());
@@ -67,6 +61,12 @@ public final class CouchDBConnection imp
}
@Override
+ public synchronized void close() {
+ this.closed = true;
+ this.client.shutdown();
+ }
+
+ @Override
public synchronized boolean isClosed() {
return this.closed;
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBObject.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBObject.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBObject.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBObject.java Mon May 13 15:37:27 2013
@@ -16,13 +16,13 @@
*/
package org.apache.logging.log4j.core.appender.db.nosql.couch;
+import org.apache.logging.log4j.core.appender.db.nosql.NoSQLObject;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import org.apache.logging.log4j.core.appender.db.nosql.NoSQLObject;
-
/**
* The Apache CouchDB implementation of {@link NoSQLObject}.
*/
@@ -34,11 +34,21 @@ public final class CouchDBObject impleme
}
@Override
+ public void set(final String field, final Object value) {
+ this.map.put(field, value);
+ }
+
+ @Override
public void set(final String field, final NoSQLObject<Map<String, Object>> value) {
this.map.put(field, value.unwrap());
}
@Override
+ public void set(final String field, final Object[] values) {
+ this.map.put(field, Arrays.asList(values));
+ }
+
+ @Override
public void set(final String field, final NoSQLObject<Map<String, Object>>[] values) {
final ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (final NoSQLObject<Map<String, Object>> value : values) {
@@ -48,16 +58,6 @@ public final class CouchDBObject impleme
}
@Override
- public void set(final String field, final Object value) {
- this.map.put(field, value);
- }
-
- @Override
- public void set(final String field, final Object[] values) {
- this.map.put(field, Arrays.asList(values));
- }
-
- @Override
public Map<String, Object> unwrap() {
return this.map;
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBProvider.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBProvider.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBProvider.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/CouchDBProvider.java Mon May 13 15:37:27 2013
@@ -16,8 +16,6 @@
*/
package org.apache.logging.log4j.core.appender.db.nosql.couch;
-import java.lang.reflect.Method;
-
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.appender.db.nosql.NoSQLProvider;
import org.apache.logging.log4j.core.config.plugins.Plugin;
@@ -28,6 +26,8 @@ import org.apache.logging.log4j.status.S
import org.lightcouch.CouchDbClient;
import org.lightcouch.CouchDbProperties;
+import java.lang.reflect.Method;
+
/**
* The Apache CouchDB implementation of {@link NoSQLProvider}.
*/
@@ -37,45 +37,58 @@ public final class CouchDBProvider imple
private static final int HTTPS = 443;
private static final Logger LOGGER = StatusLogger.getLogger();
+ private final CouchDbClient client;
+ private final String description;
+
+ private CouchDBProvider(final CouchDbClient client, final String description) {
+ this.client = client;
+ this.description = "couchDb{ " + description + " }";
+ }
+
+ @Override
+ public CouchDBConnection getConnection() {
+ return new CouchDBConnection(this.client);
+ }
+
+ @Override
+ public String toString() {
+ return this.description;
+ }
+
/**
* Factory method for creating an Apache CouchDB provider within the plugin manager.
- *
- * @param databaseName
- * The name of the database to which log event documents will be written.
- * @param protocol
- * Either "http" or "https," defaults to "http" and mutually exclusive with
- * {@code factoryClassName&factoryMethodName!=null}.
- * @param server
- * The host name of the CouchDB server, defaults to localhost and mutually exclusive with
- * {@code factoryClassName&factoryMethodName!=null}.
- * @param port
- * The port that CouchDB is listening on, defaults to 80 if {@code protocol} is "http" and 443 if
- * {@code protocol} is "https," and mutually exclusive with
- * {@code factoryClassName&factoryMethodName!=null}.
- * @param username
- * The username to authenticate against the MongoDB server with, mutually exclusive with
- * {@code factoryClassName&factoryMethodName!=null}.
- * @param password
- * The password to authenticate against the MongoDB server with, mutually exclusive with
- * {@code factoryClassName&factoryMethodName!=null}.
- * @param factoryClassName
- * A fully qualified class name containing a static factory method capable of returning a
- * {@link CouchDbClient} or {@link CouchDbProperties}.
- * @param factoryMethodName
- * The name of the public static factory method belonging to the aforementioned factory class.
+ *
+ * @param databaseName The name of the database to which log event documents will be written.
+ * @param protocol Either "http" or "https," defaults to "http" and mutually exclusive with
+ * {@code factoryClassName&factoryMethodName!=null}.
+ * @param server The host name of the CouchDB server, defaults to localhost and mutually exclusive with
+ * {@code factoryClassName&factoryMethodName!=null}.
+ * @param port The port that CouchDB is listening on, defaults to 80 if {@code protocol} is "http" and 443 if
+ * {@code protocol} is "https," and mutually exclusive with
+ * {@code factoryClassName&factoryMethodName!=null}.
+ * @param username The username to authenticate against the MongoDB server with, mutually exclusive with
+ * {@code factoryClassName&factoryMethodName!=null}.
+ * @param password The password to authenticate against the MongoDB server with, mutually exclusive with
+ * {@code factoryClassName&factoryMethodName!=null}.
+ * @param factoryClassName A fully qualified class name containing a static factory method capable of returning a
+ * {@link CouchDbClient} or {@link CouchDbProperties}.
+ * @param factoryMethodName The name of the public static factory method belonging to the aforementioned factory
+ * class.
* @return a new Apache CouchDB provider.
*/
@PluginFactory
public static CouchDBProvider createNoSQLProvider(@PluginAttr("databaseName") final String databaseName,
- @PluginAttr("protocol") String protocol, @PluginAttr("server") String server,
- @PluginAttr("port") final String port, @PluginAttr("username") final String username,
- @PluginAttr("password") final String password,
- @PluginAttr("factoryClassName") final String factoryClassName,
- @PluginAttr("factoryMethodName") final String factoryMethodName) {
+ @PluginAttr("protocol") String protocol,
+ @PluginAttr("server") String server,
+ @PluginAttr("port") final String port,
+ @PluginAttr("username") final String username,
+ @PluginAttr("password") final String password,
+ @PluginAttr("factoryClassName") final String factoryClassName,
+ @PluginAttr("factoryMethodName") final String factoryMethodName) {
CouchDbClient client;
String description;
- if (factoryClassName != null && factoryClassName.length() > 0 && factoryMethodName != null
- && factoryMethodName.length() > 0) {
+ if (factoryClassName != null && factoryClassName.length() > 0 &&
+ factoryMethodName != null && factoryMethodName.length() > 0) {
try {
final Class<?> factoryClass = Class.forName(factoryClassName);
final Method method = factoryClass.getMethod(factoryMethodName);
@@ -126,7 +139,8 @@ public final class CouchDBProvider imple
if (port != null && port.length() > 0) {
try {
portInt = Integer.parseInt(port);
- } catch (final NumberFormatException ignore) { /* */
+ } catch (final NumberFormatException ignore) {
+ // we don't care
}
} else {
LOGGER.warn("No port specified, using default port [{}] for protocol [{}].", portInt, protocol);
@@ -152,23 +166,4 @@ public final class CouchDBProvider imple
return new CouchDBProvider(client, description);
}
-
- private final CouchDbClient client;
-
- private final String description;
-
- private CouchDBProvider(final CouchDbClient client, final String description) {
- this.client = client;
- this.description = "couchDb{ " + description + " }";
- }
-
- @Override
- public CouchDBConnection getConnection() {
- return new CouchDBConnection(this.client);
- }
-
- @Override
- public String toString() {
- return this.description;
- }
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/package-info.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/package-info.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/package-info.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/couch/package-info.java Mon May 13 15:37:27 2013
@@ -18,4 +18,3 @@
* The classes in this package contain the Apache CouchDB provider for the NoSQL Appender.
*/
package org.apache.logging.log4j.core.appender.db.nosql.couch;
-
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBConnection.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBConnection.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBConnection.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBConnection.java Mon May 13 15:37:27 2013
@@ -46,8 +46,8 @@ public final class MongoDBConnection imp
}
@Override
- public void close() {
- this.mongo.close();
+ public MongoDBObject createObject() {
+ return new MongoDBObject();
}
@Override
@@ -56,11 +56,6 @@ public final class MongoDBConnection imp
}
@Override
- public MongoDBObject createObject() {
- return new MongoDBObject();
- }
-
- @Override
public void insertObject(final NoSQLObject<BasicDBObject> object) {
try {
final WriteResult result = this.collection.insert(object.unwrap(), this.writeConcern);
@@ -73,6 +68,11 @@ public final class MongoDBConnection imp
}
@Override
+ public void close() {
+ this.mongo.close();
+ }
+
+ @Override
public boolean isClosed() {
return !this.mongo.getConnector().isOpen();
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBObject.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBObject.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBObject.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBObject.java Mon May 13 15:37:27 2013
@@ -16,12 +16,11 @@
*/
package org.apache.logging.log4j.core.appender.db.nosql.mongo;
-import java.util.Collections;
-
-import org.apache.logging.log4j.core.appender.db.nosql.NoSQLObject;
-
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
+import org.apache.logging.log4j.core.appender.db.nosql.NoSQLObject;
+
+import java.util.Collections;
/**
* The MongoDB implementation of {@link NoSQLObject}.
@@ -34,28 +33,28 @@ public final class MongoDBObject impleme
}
@Override
+ public void set(final String field, final Object value) {
+ this.mongoObject.append(field, value);
+ }
+
+ @Override
public void set(final String field, final NoSQLObject<BasicDBObject> value) {
this.mongoObject.append(field, value.unwrap());
}
@Override
- public void set(final String field, final NoSQLObject<BasicDBObject>[] values) {
+ public void set(final String field, final Object[] values) {
final BasicDBList list = new BasicDBList();
- for (final NoSQLObject<BasicDBObject> value : values) {
- list.add(value.unwrap());
- }
+ Collections.addAll(list, values);
this.mongoObject.append(field, list);
}
@Override
- public void set(final String field, final Object value) {
- this.mongoObject.append(field, value);
- }
-
- @Override
- public void set(final String field, final Object[] values) {
+ public void set(final String field, final NoSQLObject<BasicDBObject>[] values) {
final BasicDBList list = new BasicDBList();
- Collections.addAll(list, values);
+ for (final NoSQLObject<BasicDBObject> value : values) {
+ list.add(value.unwrap());
+ }
this.mongoObject.append(field, list);
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBProvider.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBProvider.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBProvider.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/MongoDBProvider.java Mon May 13 15:37:27 2013
@@ -16,10 +16,10 @@
*/
package org.apache.logging.log4j.core.appender.db.nosql.mongo;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.List;
-
+import com.mongodb.DB;
+import com.mongodb.MongoClient;
+import com.mongodb.ServerAddress;
+import com.mongodb.WriteConcern;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.appender.db.nosql.NoSQLProvider;
import org.apache.logging.log4j.core.config.plugins.Plugin;
@@ -28,10 +28,9 @@ import org.apache.logging.log4j.core.con
import org.apache.logging.log4j.core.helpers.NameUtil;
import org.apache.logging.log4j.status.StatusLogger;
-import com.mongodb.DB;
-import com.mongodb.MongoClient;
-import com.mongodb.ServerAddress;
-import com.mongodb.WriteConcern;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.List;
/**
* The MongoDB implementation of {@link NoSQLProvider}.
@@ -40,50 +39,69 @@ import com.mongodb.WriteConcern;
public final class MongoDBProvider implements NoSQLProvider<MongoDBConnection> {
private static final Logger LOGGER = StatusLogger.getLogger();
+ private final String collectionName;
+ private final DB database;
+ private final String description;
+
+ private final WriteConcern writeConcern;
+
+ private MongoDBProvider(final DB database, final WriteConcern writeConcern, final String collectionName,
+ final String description) {
+ this.database = database;
+ this.writeConcern = writeConcern;
+ this.collectionName = collectionName;
+ this.description = "mongoDb{ " + description + " }";
+ }
+
+ @Override
+ public MongoDBConnection getConnection() {
+ return new MongoDBConnection(this.database, this.writeConcern, this.collectionName);
+ }
+
+ @Override
+ public String toString() {
+ return this.description;
+ }
+
/**
* Factory method for creating a MongoDB provider within the plugin manager.
- *
- * @param collectionName
- * The name of the MongoDB collection to which log events should be written.
- * @param writeConcernConstant
- * The {@link WriteConcern} constant to control writing details, defaults to
- * {@link WriteConcern#ACKNOWLEDGED}.
- * @param writeConcernConstantClassName
- * The name of a class containing the aforementioned static WriteConcern constant. Defaults to
- * {@link WriteConcern}.
- * @param databaseName
- * The name of the MongoDB database containing the collection to which log events should be written.
- * Mutually exclusive with {@code factoryClassName&factoryMethodName!=null}.
- * @param server
- * The host name of the MongoDB server, defaults to localhost and mutually exclusive with
- * {@code factoryClassName&factoryMethodName!=null}.
- * @param port
- * The port the MongoDB server is listening on, defaults to the default MongoDB port and mutually
- * exclusive with {@code factoryClassName&factoryMethodName!=null}.
- * @param username
- * The username to authenticate against the MongoDB server with.
- * @param password
- * The password to authenticate against the MongoDB server with.
- * @param factoryClassName
- * A fully qualified class name containing a static factory method capable of returning a {@link DB} or a
- * {@link MongoClient}.
- * @param factoryMethodName
- * The name of the public static factory method belonging to the aforementioned factory class.
+ *
+ * @param collectionName The name of the MongoDB collection to which log events should be written.
+ * @param writeConcernConstant The {@link WriteConcern} constant to control writing details, defaults to
+ * {@link WriteConcern#ACKNOWLEDGED}.
+ * @param writeConcernConstantClassName The name of a class containing the aforementioned static WriteConcern
+ * constant. Defaults to {@link WriteConcern}.
+ * @param databaseName The name of the MongoDB database containing the collection to which log events should be
+ * written. Mutually exclusive with {@code factoryClassName&factoryMethodName!=null}.
+ * @param server The host name of the MongoDB server, defaults to localhost and mutually exclusive with
+ * {@code factoryClassName&factoryMethodName!=null}.
+ * @param port The port the MongoDB server is listening on, defaults to the default MongoDB port and mutually
+ * exclusive with {@code factoryClassName&factoryMethodName!=null}.
+ * @param username The username to authenticate against the MongoDB server with.
+ * @param password The password to authenticate against the MongoDB server with.
+ * @param factoryClassName A fully qualified class name containing a static factory method capable of returning a
+ * {@link DB} or a {@link MongoClient}.
+ * @param factoryMethodName The name of the public static factory method belonging to the aforementioned factory
+ * class.
* @return a new MongoDB provider.
*/
@PluginFactory
public static MongoDBProvider createNoSQLProvider(@PluginAttr("collectionName") final String collectionName,
- @PluginAttr("writeConcernConstant") final String writeConcernConstant,
- @PluginAttr("writeConcernConstantClass") final String writeConcernConstantClassName,
- @PluginAttr("databaseName") final String databaseName, @PluginAttr("server") final String server,
- @PluginAttr("port") final String port, @PluginAttr("username") final String username,
- @PluginAttr("password") final String password,
- @PluginAttr("factoryClassName") final String factoryClassName,
- @PluginAttr("factoryMethodName") final String factoryMethodName) {
+ @PluginAttr("writeConcernConstant") final String
+ writeConcernConstant,
+ @PluginAttr("writeConcernConstantClass") final String
+ writeConcernConstantClassName,
+ @PluginAttr("databaseName") final String databaseName,
+ @PluginAttr("server") final String server,
+ @PluginAttr("port") final String port,
+ @PluginAttr("username") final String username,
+ @PluginAttr("password") final String password,
+ @PluginAttr("factoryClassName") final String factoryClassName,
+ @PluginAttr("factoryMethodName") final String factoryMethodName) {
DB database;
String description;
- if (factoryClassName != null && factoryClassName.length() > 0 && factoryMethodName != null
- && factoryMethodName.length() > 0) {
+ if (factoryClassName != null && factoryClassName.length() > 0 &&
+ factoryMethodName != null && factoryMethodName.length() > 0) {
try {
final Class<?> factoryClass = Class.forName(factoryClassName);
final Method method = factoryClass.getMethod(factoryMethodName);
@@ -139,7 +157,8 @@ public final class MongoDBProvider imple
if (port != null && port.length() > 0) {
try {
portInt = Integer.parseInt(port);
- } catch (final NumberFormatException ignore) { /* */
+ } catch (final NumberFormatException ignore) {
+ // we don't care
}
}
@@ -199,28 +218,4 @@ public final class MongoDBProvider imple
return new MongoDBProvider(database, writeConcern, collectionName, description);
}
-
- private final String collectionName;
- private final DB database;
- private final String description;
-
- private final WriteConcern writeConcern;
-
- private MongoDBProvider(final DB database, final WriteConcern writeConcern, final String collectionName,
- final String description) {
- this.database = database;
- this.writeConcern = writeConcern;
- this.collectionName = collectionName;
- this.description = "mongoDb{ " + description + " }";
- }
-
- @Override
- public MongoDBConnection getConnection() {
- return new MongoDBConnection(this.database, this.writeConcern, this.collectionName);
- }
-
- @Override
- public String toString() {
- return this.description;
- }
}
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/package-info.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/package-info.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/package-info.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/mongo/package-info.java Mon May 13 15:37:27 2013
@@ -18,4 +18,3 @@
* The classes in this package contain the MongoDB provider for the NoSQL Appender.
*/
package org.apache.logging.log4j.core.appender.db.nosql.mongo;
-
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/package-info.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/package-info.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/package-info.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/nosql/package-info.java Mon May 13 15:37:27 2013
@@ -29,4 +29,3 @@
* </ul>
*/
package org.apache.logging.log4j.core.appender.db.nosql;
-
Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/package-info.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/package-info.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/package-info.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/db/package-info.java Mon May 13 15:37:27 2013
@@ -19,4 +19,3 @@
* accessing databases.
*/
package org.apache.logging.log4j.core.appender.db;
-
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/TestBasicEntity.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/TestBasicEntity.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/TestBasicEntity.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/TestBasicEntity.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa;
import org.apache.logging.log4j.Marker;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.junit.After;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextMapJsonAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.junit.After;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.apache.logging.log4j.ThreadContext;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ContextStackJsonAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.apache.logging.log4j.ThreadContext;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MarkerAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.apache.logging.log4j.Marker;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/MessageAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.apache.logging.log4j.message.Message;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/StackTraceElementAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.junit.After;
Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java?rev=1481932&r1=1481931&r2=1481932&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/appender/db/jpa/converter/ThrowableAttributeConverterTest.java Mon May 13 15:37:27 2013
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.core.appender.db.jpa.converter;
import org.junit.After;