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/09/08 22:00:20 UTC
git commit: Convert to builder with serialization proxy.
Repository: logging-log4j2
Updated Branches:
refs/heads/master 43bb30186 -> 249adfb58
Convert to builder with serialization proxy.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/249adfb5
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/249adfb5
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/249adfb5
Branch: refs/heads/master
Commit: 249adfb587181cac2e0eca1ceff0951c43f4ec6e
Parents: 43bb301
Author: Matt Sicker <ma...@apache.org>
Authored: Mon Sep 8 15:00:10 2014 -0500
Committer: Matt Sicker <ma...@apache.org>
Committed: Mon Sep 8 15:00:10 2014 -0500
----------------------------------------------------------------------
.../logging/log4j/core/util/KeyValuePair.java | 59 +++++++++++++++-----
1 file changed, 46 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/249adfb5/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java
index d1e44db..665d2b5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/KeyValuePair.java
@@ -14,13 +14,17 @@
* See the license for the specific language governing permissions and
* limitations under the license.
*/
+
package org.apache.logging.log4j.core.util;
+import java.io.InvalidObjectException;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamException;
import java.io.Serializable;
import org.apache.logging.log4j.core.config.plugins.Plugin;
-import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
+import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
/**
* Key/Value pair configuration item.
@@ -67,18 +71,47 @@ public final class KeyValuePair implements Serializable {
return key + '=' + value;
}
- /**
- * Create a Key/Value pair.
- * @param key The key.
- * @param value The value.
- * @return A KeyValuePair.
- */
- @PluginFactory
- public static KeyValuePair createPair(
- @PluginAttribute("key") final String key,
- @PluginAttribute("value") final String value) {
+ @PluginBuilderFactory
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ protected Object writeReplace() throws ObjectStreamException {
+ return newBuilder().setKey(this.key).setValue(this.value);
+ }
+
+ private void readObject(final ObjectInputStream stream) throws InvalidObjectException {
+ throw new InvalidObjectException("Builder proxy required");
+ }
+
+ public static class Builder implements org.apache.logging.log4j.core.util.Builder<KeyValuePair>, Serializable {
- return new KeyValuePair(key, value);
+ private static final long serialVersionUID = 1L;
+
+ @PluginBuilderAttribute
+ private String key;
+
+ @PluginBuilderAttribute
+ private String value;
+
+ public Builder setKey(final String key) {
+ this.key = key;
+ return this;
+ }
+
+ public Builder setValue(final String value) {
+ this.value = value;
+ return this;
+ }
+
+ @Override
+ public KeyValuePair build() {
+ return new KeyValuePair(key, value);
+ }
+
+ protected Object readResolve() throws ObjectStreamException {
+ return new KeyValuePair(key, value);
+ }
}
@Override