Generics for what? To avoid putting the "with" method in subclasses? I don't think so, but I would be happy to be proven wrong.
On Fri, Oct 23, 2015 at 6:11 PM, Gary Gregory <[email protected]> wrote: > Can generics be used to here? > > Gary > > > -------- Original message -------- > From: [email protected] > Date: 10/23/2015 06:19 (GMT-08:00) > To: [email protected] > Subject: [1/3] logging-log4j2 git commit: Builder like pattern in > MapMessage > > Repository: logging-log4j2 > Updated Branches: > refs/heads/master 9c3af7114 -> 66bbf4ddf > > > Builder like pattern in MapMessage > > > Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo > Commit: > http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/990a97c0 > Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/990a97c0 > Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/990a97c0 > > Branch: refs/heads/master > Commit: 990a97c0b5688ee9512544edfa6596de9ee939fc > Parents: f08c62c > Author: Mikael St��ldal <[email protected]> > Authored: Thu Oct 15 17:33:55 2015 +0200 > Committer: Mikael St��ldal <[email protected]> > Committed: Thu Oct 15 17:33:55 2015 +0200 > > ---------------------------------------------------------------------- > .../org/apache/logging/log4j/message/MapMessage.java | 5 +++++ > .../logging/log4j/message/StructuredDataMessage.java | 5 +++++ > .../apache/logging/log4j/message/MapMessageTest.java | 11 +++++++++++ > .../log4j/message/StructuredDataMessageTest.java | 14 +++++++++++++- > 4 files changed, 34 insertions(+), 1 deletion(-) > ---------------------------------------------------------------------- > > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/990a97c0/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java > ---------------------------------------------------------------------- > diff --git > a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java > b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java > index 6172fee..1012d0e 100644 > --- > a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java > +++ > b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java > @@ -109,6 +109,11 @@ public class MapMessage implements MultiformatMessage > { > data.clear(); > } > > + public MapMessage withValue(final String key, final String value) { > + put(key, value); > + return this; > + } > + > /** > * Add an item to the data Map. > * @param key The name of the data item. > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/990a97c0/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java > ---------------------------------------------------------------------- > diff --git > a/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java > b/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java > index 97d7204..abacce2 100644 > --- > a/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java > +++ > b/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java > @@ -130,6 +130,11 @@ public class StructuredDataMessage extends MapMessage > { > > } > > + public StructuredDataMessage withValue(final String key, final String > value) { > + put(key, value); > + return this; > + } > + > /** > * Returns the supported formats. > * @return An array of the supported format names. > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/990a97c0/log4j-api/src/test/java/org/apache/logging/log4j/message/MapMessageTest.java > ---------------------------------------------------------------------- > diff --git > a/log4j-api/src/test/java/org/apache/logging/log4j/message/MapMessageTest.java > b/log4j-api/src/test/java/org/apache/logging/log4j/message/MapMessageTest.java > index 1ee688e..7f43027 100644 > --- > a/log4j-api/src/test/java/org/apache/logging/log4j/message/MapMessageTest.java > +++ > b/log4j-api/src/test/java/org/apache/logging/log4j/message/MapMessageTest.java > @@ -37,6 +37,17 @@ public class MapMessageTest { > } > > @Test > + public void testBuilder() { > + final String testMsg = "Test message {}"; > + final MapMessage msg = new MapMessage() > + .withValue("message", testMsg) > + .withValue("project", "Log4j"); > + final String result = msg.getFormattedMessage(); > + final String expected = "message=\"Test message {}\" > project=\"Log4j\""; > + assertEquals(expected, result); > + } > + > + @Test > public void testXML() { > final String testMsg = "Test message {}"; > final MapMessage msg = new MapMessage(); > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/990a97c0/log4j-api/src/test/java/org/apache/logging/log4j/message/StructuredDataMessageTest.java > ---------------------------------------------------------------------- > diff --git > a/log4j-api/src/test/java/org/apache/logging/log4j/message/StructuredDataMessageTest.java > b/log4j-api/src/test/java/org/apache/logging/log4j/message/StructuredDataMessageTest.java > index d741f35..ce9ad9b 100644 > --- > a/log4j-api/src/test/java/org/apache/logging/log4j/message/StructuredDataMessageTest.java > +++ > b/log4j-api/src/test/java/org/apache/logging/log4j/message/StructuredDataMessageTest.java > @@ -37,7 +37,19 @@ public class StructuredDataMessageTest { > assertEquals(expected, result); > } > > - @Test(expected=IllegalArgumentException.class) > + @Test > + public void testBuilder() { > + final String testMsg = "Test message {}"; > + final StructuredDataMessage msg = new > StructuredDataMessage("MsgId@12345", testMsg, "Alert") > + .withValue("message", testMsg) > + .withValue("project", "Log4j") > + .withValue("memo", "This is a very long test memo to > prevent regression of LOG4J2-114"); > + final String result = msg.getFormattedMessage(); > + final String expected = "Alert [MsgId@12345 memo=\"This is a > very long test memo to prevent regression of LOG4J2-114\" message=\"Test > message {}\" project=\"Log4j\"] Test message {}"; > + assertEquals(expected, result); > + } > + > + @Test(expected = IllegalArgumentException.class) > public void testMsgWithKeyTooLong() { > final String testMsg = "Test message {}"; > final StructuredDataMessage msg = new > StructuredDataMessage("MsgId@12345", testMsg, "Alert"); > > -- [image: MagineTV] *Mikael Ståldal* Senior software developer *Magine TV* [email protected] Regeringsgatan 25 | 111 53 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.
