You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/05/26 01:02:45 UTC
svn commit: r1597486 - in
/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins:
PluginAttribute.java PluginConfiguration.java PluginDefault.java
PluginElement.java PluginNode.java
Author: mattsicker
Date: Sun May 25 23:02:44 2014
New Revision: 1597486
URL: http://svn.apache.org/r1597486
Log:
Add @Documented, some docs, and ElementType.FIELD.
- Also added defaultValue attribute to @PluginAttribute to replace
the @PluginDefault annotation.
Modified:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginConfiguration.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginDefault.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java
Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java?rev=1597486&r1=1597485&r2=1597486&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginAttribute.java Sun May 25 23:02:44 2014
@@ -16,6 +16,7 @@
*/
package org.apache.logging.log4j.core.config.plugins;
+import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -24,9 +25,19 @@ import java.lang.annotation.Target;
/**
* Identifies a Plugin Attribute.
*/
+@Documented
@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.PARAMETER)
+@Target({ElementType.PARAMETER, ElementType.FIELD})
public @interface PluginAttribute {
+ // TODO: could we allow a blank value and infer the attribute name through reflection?
+ /**
+ * Specifies the name of the attribute (case-insensitive) this annotation corresponds to.
+ */
String value();
+
+ /**
+ * Specifies the default value this attribute should use if none is provided or if the provided value is invalid.
+ */
+ String defaultValue() default "";
}
Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginConfiguration.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginConfiguration.java?rev=1597486&r1=1597485&r2=1597486&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginConfiguration.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginConfiguration.java Sun May 25 23:02:44 2014
@@ -16,15 +16,18 @@
*/
package org.apache.logging.log4j.core.config.plugins;
+import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * Identifies a parameter as a Configuration.
+ * Identifies a parameter or field as a Configuration.
+ * @see org.apache.logging.log4j.core.config.Configuration
*/
+@Documented
@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.PARAMETER)
+@Target({ElementType.PARAMETER, ElementType.FIELD})
public @interface PluginConfiguration {
}
Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginDefault.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginDefault.java?rev=1597486&r1=1597485&r2=1597486&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginDefault.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginDefault.java Sun May 25 23:02:44 2014
@@ -23,6 +23,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+// TODO: replace this with the additional attribute in @PluginAttribute
/**
* Identifies a default string value for a given plugin attribute or value. This value should be used as a fallback
* where either the given value is invalid, or when there is no given value.
Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java?rev=1597486&r1=1597485&r2=1597486&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginElement.java Sun May 25 23:02:44 2014
@@ -23,12 +23,15 @@ import java.lang.annotation.RetentionPol
import java.lang.annotation.Target;
/**
- * Identifies a parameter as an element.
+ * Identifies a parameter as a Plugin and corresponds with an XML element (or equivalent) in configuration files.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.PARAMETER)
+@Target({ElementType.PARAMETER, ElementType.FIELD})
public @interface PluginElement {
+ /**
+ * Identifies the case-insensitive element name (or attribute name) this corresponds with in a configuration file.
+ */
String value();
}
Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java?rev=1597486&r1=1597485&r2=1597486&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginNode.java Sun May 25 23:02:44 2014
@@ -27,6 +27,6 @@ import java.lang.annotation.Target;
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.PARAMETER)
+@Target({ElementType.PARAMETER, ElementType.FIELD})
public @interface PluginNode {
}