/** * @since 2.6.1 */ @Override public Message newMessage(final String message, final Object p0, final Object p1) { return new MessageFormatMessage(message, p0, p1); }
@Override public String toString() { return getFormattedMessage(); }
/** * Returns the formatted message. * @return the formatted message. */ @Override public String getFormattedMessage() { if (formattedMessage == null) { formattedMessage = formatMessage(messagePattern, parameters); } return formattedMessage; }
@Test public void testNoArgs() { final String testMsg = "Test message {0}"; MessageFormatMessage msg = new MessageFormatMessage(testMsg, (Object[]) null); String result = msg.getFormattedMessage(); String expected = "Test message {0}"; assertEquals(expected, result); final Object[] array = null; msg = new MessageFormatMessage(testMsg, array, null); result = msg.getFormattedMessage(); expected = "Test message null"; assertEquals(expected, result); }
@Test public void testException() { final String testMsg = "Test message {0}"; final MessageFormatMessage msg = new MessageFormatMessage(testMsg, "Apache", new NullPointerException("Null")); final String result = msg.getFormattedMessage(); final String expected = "Test message Apache"; assertEquals(expected, result); final Throwable t = msg.getThrowable(); assertNotNull("No Throwable", t); }
@Test public void testOneIntArgLocaleUs() { final String testMsg = "Test message {0,number,currency}"; final MessageFormatMessage msg = new MessageFormatMessage(Locale.US, testMsg, 1234567890); final String result = msg.getFormattedMessage(); final String expected = "Test message $1,234,567,890.00"; assertEquals(expected, result); }
@Test public void testException() { final String testMsg = "Test message {0}"; final MessageFormatMessage msg = new MessageFormatMessage(testMsg, "Apache", new NullPointerException("Null")); final String result = msg.getFormattedMessage(); final String expected = "Test message Apache"; assertEquals(expected, result); final Throwable t = msg.getThrowable(); assertNotNull("No Throwable", t); }
/** * @since 2.6.1 */ @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { return new MessageFormatMessage(message, p0, p1, p2, p3); }
@Test public void testOneIntArgLocaleFrance() { final String testMsg = "Test message {0,number,currency}"; final MessageFormatMessage msg = new MessageFormatMessage(Locale.FRANCE, testMsg, 1234567890); final String result = msg.getFormattedMessage(); final String expected = "Test message 1 234 567 890,00" + SPACE + "€"; assertEquals(expected, result); }
private void writeObject(final ObjectOutputStream out) throws IOException { getFormattedMessage(); out.writeUTF(formattedMessage); out.writeUTF(messagePattern); final int length = parameters == null ? 0 : parameters.length; out.writeInt(length); serializedParameters = new String[length]; if (length > 0) { for (int i = 0; i < length; i++) { serializedParameters[i] = String.valueOf(parameters[i]); out.writeUTF(serializedParameters[i]); } } }
/** * Returns the formatted message. * @return the formatted message. */ @Override public String getFormattedMessage() { if (formattedMessage == null) { formattedMessage = formatMessage(messagePattern, parameters); } return formattedMessage; }
/** * @since 2.6.1 */ @Override public Message newMessage(final String message, final Object p0) { return new MessageFormatMessage(message, p0); }
@Test public void testOneStringArg() { final String testMsg = "Test message {0}"; final MessageFormatMessage msg = new MessageFormatMessage(testMsg, "Apache"); final String result = msg.getFormattedMessage(); final String expected = "Test message Apache"; assertEquals(expected, result); }
@Override public String toString() { return getFormattedMessage(); }
/** * @since 2.6.1 */ @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { return new MessageFormatMessage(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); }
@Test public void testSafeAfterGetFormattedMessageIsCalled() { // LOG4J2-763 final String testMsg = "Test message {0}"; final Mutable param = new Mutable().set("abc"); final MessageFormatMessage msg = new MessageFormatMessage(testMsg, param); // modify parameter after calling msg.getFormattedMessage msg.getFormattedMessage(); param.set("XYZ"); final String actual = msg.getFormattedMessage(); assertEquals("Should use initial param value", "Test message abc", actual); } }
private void writeObject(final ObjectOutputStream out) throws IOException { getFormattedMessage(); out.writeUTF(formattedMessage); out.writeUTF(messagePattern); final int length = parameters == null ? 0 : parameters.length; out.writeInt(length); serializedParameters = new String[length]; if (length > 0) { for (int i = 0; i < length; i++) { serializedParameters[i] = String.valueOf(parameters[i]); out.writeUTF(serializedParameters[i]); } } }
/** * Creates {@link org.apache.logging.log4j.message.StringFormattedMessage} instances. * @param message The message pattern. * @param params Parameters to the message. * @return The Message. * * @see org.apache.logging.log4j.message.MessageFactory#newMessage(String, Object...) */ @Override public Message newMessage(final String message, final Object... params) { return new MessageFormatMessage(message, params); }
@Test public void testUnsafeWithMutableParams() { // LOG4J2-763 final String testMsg = "Test message {0}"; final Mutable param = new Mutable().set("abc"); final MessageFormatMessage msg = new MessageFormatMessage(testMsg, param); // modify parameter before calling msg.getFormattedMessage param.set("XYZ"); final String actual = msg.getFormattedMessage(); assertEquals("Expected most recent param value", "Test message XYZ", actual); }
/** * @since 2.6.1 */ @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4) { return new MessageFormatMessage(message, p0, p1, p2, p3, p4); }