You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2012/11/20 06:58:32 UTC

svn commit: r1411553 - in /logging/log4j/log4j2/trunk/core/src: main/java/org/apache/logging/log4j/core/appender/ test/java/org/apache/logging/log4j/core/net/ test/resources/

Author: rgoers
Date: Tue Nov 20 05:58:31 2012
New Revision: 1411553

URL: http://svn.apache.org/viewvc?rev=1411553&view=rev
Log:
LOG4J2-125 - JMSQueue and JMSTopic Appenders did not allow name to be specified.

Added:
    logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java
      - copied, changed from r1411345, logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java
    logging/log4j/log4j2/trunk/core/src/test/resources/log4j-jmsqueue.xml
      - copied, changed from r1411345, logging/log4j/log4j2/trunk/core/src/test/resources/log4j2-config.xml
Modified:
    logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSQueueAppender.java
    logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSTopicAppender.java
    logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java
    logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java

Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSQueueAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSQueueAppender.java?rev=1411553&r1=1411552&r2=1411553&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSQueueAppender.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSQueueAppender.java Tue Nov 20 05:58:31 2012
@@ -55,6 +55,7 @@ public final class JMSQueueAppender exte
 
     /**
      * Create a JMSQueueAppender.
+     * @param name The name of the Appender.
      * @param factoryName The fully qualified class name of the InitialContextFactory.
      * @param providerURL The URL of the provider to use.
      * @param urlPkgPrefixes A colon-separated list of package prefixes for the class name of the factory class that
@@ -72,7 +73,8 @@ public final class JMSQueueAppender exte
      * @return The JMSQueueAppender.
      */
     @PluginFactory
-    public static JMSQueueAppender createAppender(@PluginAttr("factoryName") String factoryName,
+    public static JMSQueueAppender createAppender(@PluginAttr("name") String name,
+                                                  @PluginAttr("factoryName") String factoryName,
                                                   @PluginAttr("providerURL") String providerURL,
                                                   @PluginAttr("urlPkgPrefixes") String urlPkgPrefixes,
                                                   @PluginAttr("securityPrincipalName") String securityPrincipalName,
@@ -84,8 +86,10 @@ public final class JMSQueueAppender exte
                                                   @PluginElement("layout") Layout layout,
                                                   @PluginElement("filter") Filter filter,
                                                   @PluginAttr("suppressExceptions") String suppress) {
-
-        String name = "JMSQueue" + factoryBindingName + '.' + queueBindingName;
+        if (name == null) {
+            LOGGER.error("No name provided for JMSQueueAppender");
+            return null;
+        }
         boolean handleExceptions = suppress == null ? true : Boolean.valueOf(suppress);
         JMSQueueManager manager = JMSQueueManager.getJMSQueueManager(factoryName, providerURL, urlPkgPrefixes,
             securityPrincipalName, securityCredentials, factoryBindingName, queueBindingName, userName, password);

Modified: logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSTopicAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSTopicAppender.java?rev=1411553&r1=1411552&r2=1411553&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSTopicAppender.java (original)
+++ logging/log4j/log4j2/trunk/core/src/main/java/org/apache/logging/log4j/core/appender/JMSTopicAppender.java Tue Nov 20 05:58:31 2012
@@ -55,6 +55,7 @@ public final class JMSTopicAppender exte
 
     /**
      * Create a JMSTopicAppender.
+     * @param name The name of the Appender.
      * @param factoryName The fully qualified class name of the InitialContextFactory.
      * @param providerURL The URL of the provider to use.
      * @param urlPkgPrefixes A colon-separated list of package prefixes for the class name of the factory class that
@@ -72,7 +73,8 @@ public final class JMSTopicAppender exte
      * @return The JMSTopicAppender.
      */
     @PluginFactory
-    public static JMSTopicAppender createAppender(@PluginAttr("factoryName") String factoryName,
+    public static JMSTopicAppender createAppender(@PluginAttr("name") String name,
+                                                  @PluginAttr("factoryName") String factoryName,
                                                   @PluginAttr("providerURL") String providerURL,
                                                   @PluginAttr("urlPkgPrefixes") String urlPkgPrefixes,
                                                   @PluginAttr("securityPrincipalName") String securityPrincipalName,
@@ -85,7 +87,10 @@ public final class JMSTopicAppender exte
                                                   @PluginElement("filters") Filter filter,
                                                   @PluginAttr("suppressExceptions") String suppress) {
 
-        String name = "JMSTopic" + factoryBindingName + '.' + topicBindingName;
+        if (name == null) {
+            LOGGER.error("No name provided for JMSQueueAppender");
+            return null;
+        }
         boolean handleExceptions = suppress == null ? true : Boolean.valueOf(suppress);
         JMSTopicManager manager = JMSTopicManager.getJMSTopicManager(factoryName, providerURL, urlPkgPrefixes,
             securityPrincipalName, securityCredentials, factoryBindingName, topicBindingName, userName, password);

Copied: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java (from r1411345, logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java?p2=logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java&p1=logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java&r1=1411345&r2=1411553&rev=1411553&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueAppenderTest.java Tue Nov 20 05:58:31 2012
@@ -25,6 +25,9 @@ import org.apache.logging.log4j.core.Log
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.appender.ConsoleAppender;
 import org.apache.logging.log4j.core.appender.JMSQueueAppender;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.Configurator;
+import org.apache.logging.log4j.core.config.XMLConfigurationFactory;
 import org.apache.logging.log4j.test.appender.ListAppender;
 import org.apache.logging.log4j.core.filter.CompositeFilter;
 import org.apache.logging.log4j.core.filter.AbstractFilter;
@@ -52,7 +55,7 @@ import static org.junit.Assert.assertTru
 /**
  *
  */
-public class JMSQueueTest {
+public class JMSQueueAppenderTest {
 
     private static final String FACTORY_NAME = "TestQueueConnectionFactory";
     private static final String QUEUE_NAME = "TestQueue";
@@ -60,6 +63,8 @@ public class JMSQueueTest {
     private static Context context;
     private static AbstractJMSReceiver receiver;
 
+    private static final String CONFIG = "log4j-jmsqueue.xml";
+
     LoggerContext ctx = (LoggerContext) LogManager.getContext();
     Logger root = ctx.getLogger("JMSQueueTest");
 
@@ -72,7 +77,7 @@ public class JMSQueueTest {
         context = new InitialContext();
         context.rebind(FACTORY_NAME, new QueueConnectionFactoryImpl() );
         context.rebind(QUEUE_NAME, new MockQueue(QUEUE_NAME));
-        ((LoggerContext) LogManager.getContext()).reconfigure();
+        System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
         receiver = new JMSQueueReceiver(FACTORY_NAME, QUEUE_NAME, null, null);
     }
 
@@ -81,64 +86,11 @@ public class JMSQueueTest {
         StatusLogger.getLogger().reset();
     }
 
-    @After
-    public void teardown() {
-        Map<String,Appender> map = root.getAppenders();
-        for (Map.Entry<String, Appender> entry : map.entrySet()) {
-            Appender app = entry.getValue();
-            root.removeAppender(app);
-            app.stop();
-        }
-    }
-
     @Test
-    public void testServer() throws Exception {
-        Filter clientFilter = new MessageFilter(Filter.Result.NEUTRAL, Filter.Result.DENY);
-        Filter serverFilter = new MessageFilter(Filter.Result.DENY, Filter.Result.NEUTRAL);
-        CompositeFilter clientFilters = CompositeFilter.createFilters(new Filter[]{clientFilter});
-        JMSQueueAppender appender = JMSQueueAppender.createAppender(null, null, null, null, null, FACTORY_NAME,
-                QUEUE_NAME, null, null, null, clientFilters, "true");
-        appender.start();
-        CompositeFilter serverFilters = CompositeFilter.createFilters(new Filter[]{serverFilter});
-        ListAppender listApp = new ListAppender("Events", serverFilters, null, false, false);
-        listApp.start();
-        PatternLayout layout = PatternLayout.createLayout("%m %ex%n", null, null, null);
-        ConsoleAppender console = ConsoleAppender.createAppender(layout, null, "SYSTEM_OUT", "Console", "true");
-        console.start();
-        Logger serverLogger = ctx.getLogger(JMSTopicReceiver.class.getName());
-        serverLogger.addAppender(console);
-        serverLogger.setAdditive(false);
-
-
-        // set appender on root and set level to debug
-        root.addAppender(listApp);
-        root.addAppender(appender);
-        root.setAdditive(false);
-        root.setLevel(Level.DEBUG);
-        root.debug("This is a test message");
-        Thread.sleep(100);
-        List<LogEvent> events = listApp.getEvents();
-        assertNotNull("No event retrieved", events);
-        assertTrue("No events retrieved", events.size() > 0);
-        assertTrue("Incorrect event", events.get(0).getMessage().getFormattedMessage().equals("This is a test message"));
-    }
-
-    private class MessageFilter extends AbstractFilter {
-        public MessageFilter(Result onMatch, Result onMismatch) {
-            super(onMatch, onMismatch);
-        }
-
-        @Override
-        public Result filter(LogEvent event) {
-            StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
-            for (StackTraceElement element : stackTrace) {
-                if (element.getMethodName().equals("onMessage")) {
-                    return onMatch;
-                } else if (element.getMethodName().equals("testServer")) {
-                    return onMismatch;
-                }
-            }
-            return onMismatch;
-        }
+    public void testConfiguration() throws Exception {
+        LoggerContext ctx = (LoggerContext) LogManager.getContext();
+        Configuration config = ctx.getConfiguration();
+        Map<String, Appender> appenders = config.getAppenders();
+        assertTrue(appenders.containsKey("JMSQueue"));
     }
 }

Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java?rev=1411553&r1=1411552&r2=1411553&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSQueueTest.java Tue Nov 20 05:58:31 2012
@@ -96,7 +96,7 @@ public class JMSQueueTest {
         Filter clientFilter = new MessageFilter(Filter.Result.NEUTRAL, Filter.Result.DENY);
         Filter serverFilter = new MessageFilter(Filter.Result.DENY, Filter.Result.NEUTRAL);
         CompositeFilter clientFilters = CompositeFilter.createFilters(new Filter[]{clientFilter});
-        JMSQueueAppender appender = JMSQueueAppender.createAppender(null, null, null, null, null, FACTORY_NAME,
+        JMSQueueAppender appender = JMSQueueAppender.createAppender("Test", null, null, null, null, null, FACTORY_NAME,
                 QUEUE_NAME, null, null, null, clientFilters, "true");
         appender.start();
         CompositeFilter serverFilters = CompositeFilter.createFilters(new Filter[]{serverFilter});

Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java?rev=1411553&r1=1411552&r2=1411553&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/core/net/JMSTopicTest.java Tue Nov 20 05:58:31 2012
@@ -96,7 +96,7 @@ public class JMSTopicTest {
         Filter clientFilter = new MessageFilter(Filter.Result.NEUTRAL, Filter.Result.DENY);
         Filter serverFilter = new MessageFilter(Filter.Result.DENY, Filter.Result.NEUTRAL);
         CompositeFilter clientFilters = CompositeFilter.createFilters(new Filter[]{clientFilter});
-        JMSTopicAppender appender = JMSTopicAppender.createAppender(null, null, null, null, null, FACTORY_NAME,
+        JMSTopicAppender appender = JMSTopicAppender.createAppender("Test", null, null, null, null, null, FACTORY_NAME,
                 TOPIC_NAME, null, null, null, clientFilters, "true");
         appender.start();
         CompositeFilter serverFilters = CompositeFilter.createFilters(new Filter[]{serverFilter});

Copied: logging/log4j/log4j2/trunk/core/src/test/resources/log4j-jmsqueue.xml (from r1411345, logging/log4j/log4j2/trunk/core/src/test/resources/log4j2-config.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/resources/log4j-jmsqueue.xml?p2=logging/log4j/log4j2/trunk/core/src/test/resources/log4j-jmsqueue.xml&p1=logging/log4j/log4j2/trunk/core/src/test/resources/log4j2-config.xml&r1=1411345&r2=1411553&rev=1411553&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/resources/log4j2-config.xml (original)
+++ logging/log4j/log4j2/trunk/core/src/test/resources/log4j-jmsqueue.xml Tue Nov 20 05:58:31 2012
@@ -16,21 +16,16 @@
  limitations under the License.
 
 -->
-<configuration name="ConfigTest" status="error" packages="org.apache.logging.log4j.test"
+<configuration name="ConfigTest" status="debug" packages="org.apache.logging.log4j.test"
     monitorInterval="5">
   <appenders>
-    <Console name="STDOUT">
+    <JMSQueue name="JMSQueue" factoryBindingName="TestQueueConnectionFactory" queueBindingName="TestQueue">
       <PatternLayout pattern="%m%n"/>
-    </Console>
-    <List name="List">
-    </List>
+    </JMSQueue>
   </appenders>
   <loggers>
-    <logger name="org.apache.test" level="trace" additivity="false">
-      <appender-ref ref="List"/>
-    </logger>
     <root level="error">
-      <appender-ref ref="STDOUT"/>
+      <appender-ref ref="JMSQueue"/>
     </root>
   </loggers>
 </configuration>
\ No newline at end of file