Author: rgodfrey
Date: Wed Apr 29 17:10:35 2015
New Revision: 1676797

URL: http://svn.apache.org/r1676797
Log:
QPID-6516: [Java Broker] Tactically switch Broker from Log4j to LogBack 
(applied patch by Lorenz Quack)

Added:
    qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml   (with 
props)
    qpid/java/trunk/broker/etc/logback.xml   (with props)
    qpid/java/trunk/etc/logback.xml   (with props)
    qpid/java/trunk/perftests/example/brokerconfig/logback.xml   (with props)
    qpid/java/trunk/qpid-test-utils/src/main/resources/logback-test.xml   (with 
props)
    qpid/java/trunk/systests/src/test/resources/systests.logback.xml   (with 
props)
    qpid/java/trunk/test-profiles/test_resources/logback.xml   (with props)
    qpid/java/trunk/test-profiles/test_resources/logback2.xml   (with props)
    qpid/java/trunk/test-profiles/test_resources/spawned-broker-logback.xml   
(with props)
Removed:
    qpid/java/trunk/broker-core/src/main/java/fallback-log4j.properties
    qpid/java/trunk/broker-core/src/main/java/org/apache/log4j/
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/LogMessageTest.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacadeTest.java
    
qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/log/
    qpid/java/trunk/broker/etc/log4j.xml
    qpid/java/trunk/etc/log4j.xml
    qpid/java/trunk/perftests/example/brokerconfig/log4j.xml
    
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/LogViewerTest.java
    qpid/java/trunk/systests/src/test/resources/systests.log4j
    qpid/java/trunk/test-profiles/test_resources/log4j.xml
    qpid/java/trunk/test-profiles/test_resources/spawned-broker-log4j.xml
Modified:
    qpid/java/trunk/bdbstore/jmx/pom.xml
    qpid/java/trunk/bdbstore/pom.xml
    qpid/java/trunk/bdbstore/systests/pom.xml
    qpid/java/trunk/broker-core/pom.xml
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
    qpid/java/trunk/broker-plugins/access-control/pom.xml
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml
    qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml
    qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml
    qpid/java/trunk/broker-plugins/derby-store/pom.xml
    qpid/java/trunk/broker-plugins/jdbc-store/pom.xml
    qpid/java/trunk/broker-plugins/management-http/pom.xml
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
    qpid/java/trunk/broker-plugins/management-jmx/pom.xml
    
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
    
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
    qpid/java/trunk/broker/pom.xml
    qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java
    qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java
    qpid/java/trunk/perftests/pom.xml
    qpid/java/trunk/pom.xml
    qpid/java/trunk/qpid-systests-parent/pom.xml
    qpid/java/trunk/qpid-test-utils/pom.xml
    
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
    
qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
    
qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/BrokerStartupTest.java
    
qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/BrokerLoggingTest.java
    
qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/ConsumerLoggingTest.java
    
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/jmx/LoggingManagementTest.java
    qpid/java/trunk/systests/src/test/java/org/apache/qpid/util/LogMonitor.java
    
qpid/java/trunk/systests/src/test/java/org/apache/qpid/util/LogMonitorTest.java
    qpid/java/trunk/test-profiles/JavaExcludes

Modified: qpid/java/trunk/bdbstore/jmx/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/jmx/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/jmx/pom.xml (original)
+++ qpid/java/trunk/bdbstore/jmx/pom.xml Wed Apr 29 17:10:35 2015
@@ -50,9 +50,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>

Modified: qpid/java/trunk/bdbstore/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/pom.xml (original)
+++ qpid/java/trunk/bdbstore/pom.xml Wed Apr 29 17:10:35 2015
@@ -50,9 +50,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>

Modified: qpid/java/trunk/bdbstore/systests/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/systests/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/systests/pom.xml (original)
+++ qpid/java/trunk/bdbstore/systests/pom.xml Wed Apr 29 17:10:35 2015
@@ -30,7 +30,7 @@
   <description>BDB message store system tests</description>
 
   <properties>
-    
<test.log4j.configuration.file>${project.basedir}${file.separator}..${file.separator}..${file.separator}test-profiles${file.separator}log4j-test.xml</test.log4j.configuration.file>
+    
<test.log4j.configuration.file>${project.basedir}${file.separator}..${file.separator}..${file.separator}test-profiles${file.separator}logback-test.xml</test.log4j.configuration.file>
     <test.working.directory>${basedir}/../..</test.working.directory>
     <test.resource.directory>${basedir}/../..</test.resource.directory>
     
<test.systest.resource.directory>${basedir}/../../systests</test.systest.resource.directory>

Modified: qpid/java/trunk/broker-core/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/pom.xml (original)
+++ qpid/java/trunk/broker-core/pom.xml Wed Apr 29 17:10:35 2015
@@ -53,9 +53,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>
@@ -64,12 +64,6 @@
       <version>${slf4j-version}</version>
     </dependency>
 
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>${slf4j-version}</version>
-    </dependency>
-
    <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>

Added: qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml (added)
+++ qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml Wed Apr 29 
17:10:35 2015
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<configuration>
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%t %d %p [%c{4}] %m%n</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>all</level>
+        </filter>
+    </appender>
+    <root level="${amqj.logging.level}">
+        <appender-ref ref="console"/>
+    </root>
+</configuration>
\ No newline at end of file

Propchange: qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java 
(original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java 
Wed Apr 29 17:10:35 2015
@@ -32,13 +32,15 @@ import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.logging.LogManager;
 
 import javax.security.auth.Subject;
 
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
+import ch.qos.logback.core.util.StatusPrinter;
 import com.google.common.util.concurrent.ListenableFuture;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
 
 import org.apache.qpid.common.QpidProperties;
 import org.apache.qpid.server.configuration.BrokerProperties;
@@ -57,10 +59,12 @@ import org.apache.qpid.server.plugin.Plu
 import org.apache.qpid.server.plugin.SystemConfigFactory;
 import org.apache.qpid.server.security.SecurityManager;
 import org.apache.qpid.server.util.Action;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Broker
 {
-    private static final Logger LOGGER = Logger.getLogger(Broker.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(Broker.class);
 
     private volatile Thread _shutdownHookThread;
     private EventLogger _eventLogger;
@@ -131,7 +135,8 @@ public class Broker
 
         if (_configuringOwnLogging)
         {
-            LogManager.shutdown();
+            LoggerContext loggerContext = (LoggerContext) 
LoggerFactory.getILoggerFactory();
+            loggerContext.stop();
         }
 
         if (_shutdownAction != null)
@@ -179,7 +184,7 @@ public class Broker
         //embedding the broker and want to configure it themselves.
         if(!options.isSkipLoggingConfiguration())
         {
-            configureLogging(new File(options.getLogConfigFileLocation()), 
options.getLogWatchFrequency(), options.isStartupLoggedToSystemOut());
+            configureLogging(new File(options.getLogConfigFileLocation()), 
options.isStartupLoggedToSystemOut());
         }
         // Create the RootLogger to be used during broker operation
         boolean statusUpdatesEnabled = 
Boolean.parseBoolean(System.getProperty(BrokerProperties.PROPERTY_STATUS_UPDATES,
 "true"));
@@ -198,7 +203,7 @@ public class Broker
         SystemConfigFactory configFactory = configFactoryLoader.get(storeType);
         if(configFactory == null)
         {
-            LOGGER.fatal("Unknown config store type '"+storeType+"', only the 
following types are supported: " + configFactoryLoader.getSupportedTypes());
+            LOGGER.error("Unknown config store type '" + storeType + "', only 
the following types are supported: " + configFactoryLoader.getSupportedTypes());
             throw new IllegalArgumentException("Unknown config store type 
'"+storeType+"', only the following types are supported: " + 
configFactoryLoader.getSupportedTypes());
         }
 
@@ -223,7 +228,7 @@ public class Broker
         }
         catch(RuntimeException e)
         {
-            LOGGER.fatal("Exception during startup", e);
+            LOGGER.error("Exception during startup", e);
             closeSystemConfig();
             throw e;
         }
@@ -246,7 +251,7 @@ public class Broker
         }
     }
 
-    private void configureLogging(File logConfigFile, int logWatchTime, 
boolean startupLoggedToSystemOutput) throws InitException, IOException
+    private void configureLogging(File logConfigFile, boolean 
startupLoggedToSystemOutput) throws InitException, IOException
     {
         _configuringOwnLogging = true;
         if (logConfigFile.exists() && logConfigFile.canRead())
@@ -256,52 +261,42 @@ public class Broker
                 
_eventLogger.message(BrokerMessages.LOG_CONFIG(logConfigFile.getAbsolutePath()));
             }
 
-            if (logWatchTime > 0)
+            try
             {
-                System.out.println("log file " + 
logConfigFile.getAbsolutePath() + " will be checked for changes every "
-                        + logWatchTime + " seconds");
-                // log4j expects the watch interval in milliseconds
-                try
-                {
-                    
LoggingManagementFacade.configureAndWatch(logConfigFile.getPath(), logWatchTime 
* 1000);
-                }
-                catch (Exception e)
-                {
-                    throw new InitException(e.getMessage(),e);
-                }
+                LoggingManagementFacade.configure(logConfigFile.getPath());
             }
-            else
+            catch (Exception e)
             {
-                try
-                {
-                    LoggingManagementFacade.configure(logConfigFile.getPath());
-                }
-                catch (Exception e)
-                {
-                    throw new InitException(e.getMessage(),e);
-                }
+                throw new InitException(e.getMessage(),e);
             }
         }
         else
         {
             System.err.println("Logging configuration error: unable to read 
file " + logConfigFile.getAbsolutePath());
-            System.err.println("Using the fallback internal 
fallback-log4j.properties configuration");
+            System.err.println("Using the fallback internal 
fallback-logback.xml configuration");
 
-            InputStream propsFile = 
this.getClass().getResourceAsStream("/fallback-log4j.properties");
+            InputStream propsFile = 
this.getClass().getResourceAsStream("/fallback-logback.xml");
             if(propsFile == null)
             {
-                throw new IOException("Unable to load the fallback internal 
fallback-log4j.properties configuration file");
+                throw new IOException("Unable to load the fallback internal 
fallback-logback.xml configuration file");
             }
             else
             {
+                LoggerContext context = (LoggerContext) 
LoggerFactory.getILoggerFactory();
                 try
                 {
-                    Properties fallbackProps = new Properties();
-                    fallbackProps.load(propsFile);
-                    PropertyConfigurator.configure(fallbackProps);
+                    JoranConfigurator configurator = new JoranConfigurator();
+                    configurator.setContext(context);
+                    context.reset();
+                    configurator.doConfigure(propsFile);
+                }
+                catch (JoranException e)
+                {
+                    // StatusPrinter will handle this
                 }
                 finally
                 {
+                    StatusPrinter.printInCaseOfErrorsOrWarnings(context);
                     propsFile.close();
                 }
             }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
 Wed Apr 29 17:10:35 2015
@@ -52,7 +52,7 @@ public class BrokerOptions
     public static final String DEFAULT_INITIAL_CONFIG_NAME = 
"initial-config.json";
     public static final String DEFAULT_STORE_TYPE = "JSON";
     public static final String DEFAULT_CONFIG_NAME_PREFIX = "config";
-    public static final String DEFAULT_LOG_CONFIG_FILE = "etc/log4j.xml";
+    public static final String DEFAULT_LOG_CONFIG_FILE = "etc/logback.xml";
     public static final String DEFAULT_INITIAL_CONFIG_LOCATION =
         
BrokerOptions.class.getClassLoader().getResource(DEFAULT_INITIAL_CONFIG_NAME).toExternalForm();
 
@@ -61,7 +61,6 @@ public class BrokerOptions
     private static final File FALLBACK_WORK_DIR = new 
File(System.getProperty("user.dir"), "work");
 
     private String _logConfigFile;
-    private Integer _logWatchFrequency = 0;
 
     private String _configurationStoreLocation;
     private String _configurationStoreType;
@@ -108,20 +107,6 @@ public class BrokerOptions
         _managementModePassword = managementModePassword;
     }
 
-    public int getLogWatchFrequency()
-    {
-        return _logWatchFrequency;
-    }
-
-    /**
-     * Set the frequency with which the log config file will be checked for 
updates.
-     * @param logWatchFrequency frequency in seconds
-     */
-    public void setLogWatchFrequency(final int logWatchFrequency)
-    {
-        _logWatchFrequency = logWatchFrequency;
-    }
-
     public boolean isManagementMode()
     {
         return _managementMode;

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
 Wed Apr 29 17:10:35 2015
@@ -18,20 +18,11 @@
 package org.apache.qpid.server.logging;
 
 import java.util.Iterator;
-import org.apache.log4j.Appender;
-import org.apache.log4j.Layout;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.ErrorHandler;
-import org.apache.log4j.spi.Filter;
-import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.spi.ThrowableInformation;
 import org.apache.qpid.server.configuration.BrokerProperties;
 
-public class LogRecorder implements Appender, Iterable<LogRecorder.Record>
+public class LogRecorder implements Iterable<LogRecorder.Record>
 {
     private static final int DEFAULT_BUFFER_SIZE = 4096;
-    private ErrorHandler _errorHandler;
-    private Filter _filter;
     private String _name;
     private long _recordId;
 
@@ -42,49 +33,16 @@ public class LogRecorder implements Appe
 
     public static class Record
     {
-        private final long _id;
-        private final String _logger;
-        private final long _timestamp;
-        private final String _threadName;
-        private final String _level;
-        private final String _message;
-
-
-        public Record(long id, LoggingEvent event)
-        {
-            _id = id;
-            _logger = event.getLoggerName();
-            _timestamp = event.timeStamp;
-            _threadName = event.getThreadName();
-            _level = event.getLevel().toString();
-            StringBuilder message = new StringBuilder();
-            String renderedMessage = event.getRenderedMessage();
-            if (renderedMessage != null)
-            {
-                message.append(renderedMessage);
-            }
-            ThrowableInformation ti = event.getThrowableInformation();
-            if (ti != null)
-            {
-                Throwable t = ti.getThrowable();
-                if (t != null)
-                {
-                    if (message.length() > 0)
-                    {
-                        message.append(":");
-                    }
-                    String exceptionMessage = t.getMessage();
-                    if (exceptionMessage != null && 
!"".equals(exceptionMessage))
-                    {
-                        message.append(t.getMessage());
-                    }
-                    else
-                    {
-                        message.append(t.getClass().getName());
-                    }
-                }
-            }
-            _message = message.toString();
+        private long _id;
+        private String _logger;
+        private long _timestamp;
+        private String _threadName;
+        private String _level;
+        private String _message;
+
+
+        public Record(long id)
+        {
         }
 
         public long getId()
@@ -118,86 +76,8 @@ public class LogRecorder implements Appe
         }
     }
 
-    public LogRecorder()
-    {
-        Logger.getRootLogger().addAppender(this);
-    }
-
-    @Override
-    public void addFilter(Filter filter)
-    {
-        _filter = filter;
-    }
-
-    @Override
-    public void clearFilters()
-    {
-        _filter = null;
-    }
-
-    @Override
-    public void close()
-    {
-    }
-
     public void closeLogRecorder()
     {
-        Logger.getRootLogger().removeAppender(this);
-    }
-
-    @Override
-    public synchronized void doAppend(LoggingEvent loggingEvent)
-    {
-        _records[((int) (_recordId & _mask))] = new Record(_recordId, 
loggingEvent);
-        _recordId++;
-    }
-
-    @Override
-    public ErrorHandler getErrorHandler()
-    {
-        return _errorHandler;
-    }
-
-    @Override
-    public Filter getFilter()
-    {
-        return _filter;
-    }
-
-    @Override
-    public Layout getLayout()
-    {
-        return null;
-    }
-
-    @Override
-    public String getName()
-    {
-        return _name;
-    }
-
-    @Override
-    public boolean requiresLayout()
-    {
-        return false;
-    }
-
-    @Override
-    public void setErrorHandler(ErrorHandler errorHandler)
-    {
-        _errorHandler = errorHandler;
-    }
-
-    @Override
-    public void setLayout(Layout layout)
-    {
-
-    }
-
-    @Override
-    public void setName(String name)
-    {
-        _name = name;
     }
 
     @Override

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
 Wed Apr 29 17:10:35 2015
@@ -20,52 +20,16 @@
  */
 package org.apache.qpid.server.logging.log4j;
 
-import org.apache.log4j.Level;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.log4j.xml.DOMConfigurator;
-import org.apache.log4j.xml.Log4jEntityResolver;
-import org.apache.qpid.util.FileUtils;
-import org.apache.qpid.util.SystemUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
+
+import org.slf4j.Logger;
+
 import java.util.List;
 import java.util.Map;
-import java.util.Random;
 
-/**
- * A facade over log4j that allows both the control of the runtime logging 
behaviour (that is, the ability to
- * turn {@link Logger} on, off and control their {@link Level}, and the 
manipulation and reload
- * of the log4j configuration file.
- */
+
 public class LoggingManagementFacade
 {
-    private static Logger LOGGER;
     private static transient LoggingManagementFacade _instance;
-    private final String _filename;
-    private final int _delay;
 
     public static LoggingManagementFacade configure(String filename) throws 
LoggingFacadeException
     {
@@ -86,37 +50,22 @@ public class LoggingManagementFacade
 
     private LoggingManagementFacade(String filename)
     {
-        DOMConfigurator.configure(filename);
 
-        if(LOGGER == null)
-        {
-            LOGGER = Logger.getLogger(LoggingManagementFacade.class);
-        }
-        _filename = filename;
-        _delay = 0;
     }
 
     private LoggingManagementFacade(String filename, int delay)
     {
-        DOMConfigurator.configureAndWatch(filename, delay);
-
-        if(LOGGER == null)
-        {
-            LOGGER = Logger.getLogger(LoggingManagementFacade.class);
-        }
-
-        _filename = filename;
-        _delay = delay;
+        throw new UnsupportedOperationException();
     }
 
     public int getLog4jLogWatchInterval()
     {
-        return _delay;
+        throw new UnsupportedOperationException();
     }
 
     public synchronized void reload() throws LoggingFacadeException
     {
-        DOMConfigurator.configure(_filename);
+        throw new UnsupportedOperationException();
     }
 
     /** The log4j XML configuration file DTD defines three possible element
@@ -132,39 +81,7 @@ public class LoggingManagementFacade
      */
     public synchronized Map<String,String> retrieveConfigFileLoggersLevels() 
throws LoggingFacadeException
     {
-        try
-        {
-            Map<String,String> loggerLevelList = new HashMap<String,String>();
-            LOGGER.info("Getting logger levels from log4j configuration file");
-
-            Document doc = parseConfigFile(_filename);
-            List<Element> categoryOrLoggerElements = 
buildListOfCategoryOrLoggerElements(doc);
-
-            for (Element categoryOrLogger : categoryOrLoggerElements)
-            {
-
-                Element priorityOrLevelElement;
-                try
-                {
-                    priorityOrLevelElement = 
getPriorityOrLevelElement(categoryOrLogger);
-                }
-                catch (LoggingFacadeException lfe)
-                {
-                    //there is no exiting priority or level to view, move onto 
next category/logger
-                    continue;
-                }
-
-                String categoryName = categoryOrLogger.getAttribute("name");
-                String priorityOrLevelValue = 
priorityOrLevelElement.getAttribute("value");
-                loggerLevelList.put(categoryName, priorityOrLevelValue);
-            }
-
-            return loggerLevelList;
-        }
-        catch (IOException e)
-        {
-            throw new LoggingFacadeException(e);
-        }
+        throw new UnsupportedOperationException();
     }
 
     /**
@@ -180,424 +97,43 @@ public class LoggingManagementFacade
      */
     public synchronized String retrieveConfigFileRootLoggerLevel() throws 
LoggingFacadeException
     {
-        try
-        {
-            Document doc = parseConfigFile(_filename);
-
-            //retrieve the optional 'root' element node
-            NodeList rootElements = doc.getElementsByTagName("root");
-
-            if (rootElements.getLength() == 0)
-            {
-                //there is no root logger definition
-                return "N/A";
-            }
-
-            Element rootElement = (Element) rootElements.item(0);
-            Element levelElement = getPriorityOrLevelElement(rootElement);
-
-            if(levelElement != null)
-            {
-                return levelElement.getAttribute("value");
-            }
-            else
-            {
-                return "N/A";
-            }
-        }
-        catch (IOException e)
-        {
-            throw new LoggingFacadeException(e);
-        }
+        throw new UnsupportedOperationException();
     }
 
     public synchronized void setConfigFileLoggerLevel(String logger, String 
level) throws LoggingFacadeException
     {
-        LOGGER.info("Setting level to " + level + " for logger '" + logger
-                + "' in log4j xml configuration file: " + _filename);
-
-        try
-        {
-            Document doc = parseConfigFile(_filename);
-
-            List<Element> logElements = 
buildListOfCategoryOrLoggerElements(doc);
-
-            //try to locate the specified logger/category in the elements 
retrieved
-            Element logElement = null;
-            for (Element e : logElements)
-            {
-                if (e.getAttribute("name").equals(logger))
-                {
-                    logElement = e;
-                    break;
-                }
-            }
-
-            if (logElement == null)
-            {
-                throw new LoggingFacadeException("Can't find logger " + 
logger);
-            }
-
-            Element levelElement = getPriorityOrLevelElement(logElement);
-
-            //update the element with the new level/priority
-            levelElement.setAttribute("value", level);
-
-            //output the new file
-            writeUpdatedConfigFile(_filename, doc);
-        }
-        catch (IOException ioe)
-        {
-            throw new LoggingFacadeException(ioe);
-        }
-        catch (TransformerConfigurationException e)
-        {
-            throw new LoggingFacadeException(e);
-        }
+        throw new UnsupportedOperationException();
     }
 
     public synchronized void setConfigFileRootLoggerLevel(String level) throws 
LoggingFacadeException
     {
-        try
-        {
-            LOGGER.info("Setting level to " + level + " for the Root logger in 
" +
-                    "log4j xml configuration file: " + _filename);
-
-            Document doc = parseConfigFile(_filename);
-
-            //retrieve the optional 'root' element node
-            NodeList rootElements = doc.getElementsByTagName("root");
-
-            if (rootElements.getLength() == 0)
-            {
-                throw new LoggingFacadeException("Configuration contains no 
root element");
-            }
-
-            Element rootElement = (Element) rootElements.item(0);
-            Element levelElement = getPriorityOrLevelElement(rootElement);
-
-            //update the element with the new level/priority
-            levelElement.setAttribute("value", level);
-
-            //output the new file
-            writeUpdatedConfigFile(_filename, doc);
-        }
-        catch (IOException e)
-        {
-            throw new LoggingFacadeException(e);
-        }
-        catch (TransformerConfigurationException e)
-        {
-            throw new LoggingFacadeException(e);
-        }
+        throw new UnsupportedOperationException();
     }
 
     public List<String> getAvailableLoggerLevels()
     {
-        return new ArrayList<String>()
-        {
-            private static final long serialVersionUID = 599203507907836466L;
-        {
-           add(Level.ALL.toString());
-           add(Level.TRACE.toString());
-           add(Level.DEBUG.toString());
-           add(Level.INFO.toString());
-           add(Level.WARN.toString());
-           add(Level.ERROR.toString());
-           add(Level.FATAL.toString());
-           add(Level.OFF.toString());
-        }};
+        throw new UnsupportedOperationException();
     }
 
     public String retrieveRuntimeRootLoggerLevel()
     {
-        Logger rootLogger = Logger.getRootLogger();
-        return rootLogger.getLevel().toString();
+        throw new UnsupportedOperationException();
     }
 
     public void setRuntimeRootLoggerLevel(String level)
     {
-        Level newLevel = Level.toLevel(level);
-
-        LOGGER.info("Setting RootLogger level to " + level);
-
-        Logger log = Logger.getRootLogger();
-        log.setLevel(newLevel);
+        throw new UnsupportedOperationException();
     }
 
     public void setRuntimeLoggerLevel(String loggerName, String level) throws 
LoggingFacadeException
     {
-        Level newLevel = level == null ? null : Level.toLevel(level);
-
-        Logger targetLogger = findRuntimeLogger(loggerName);
-
-        if(targetLogger == null)
-        {
-            throw new LoggingFacadeException("Can't find logger " + 
loggerName);
-        }
-
-        LOGGER.info("Setting level to " + newLevel + " for logger '" + 
targetLogger.getName() + "'");
-
-        targetLogger.setLevel(newLevel);
+        throw new UnsupportedOperationException();
     }
 
     public Map<String,String> retrieveRuntimeLoggersLevels()
     {
-        LOGGER.info("Getting levels for currently active log4j loggers");
-
-        Map<String, String> levels = new HashMap<String, String>();
-        @SuppressWarnings("unchecked")
-        Enumeration<Logger> loggers = LogManager.getCurrentLoggers();
-
-        while (loggers.hasMoreElements())
-        {
-            Logger logger = loggers.nextElement();
-            levels.put(logger.getName(), 
logger.getEffectiveLevel().toString());
-        }
-
-        return levels;
-    }
-
-    private void writeUpdatedConfigFile(String log4jConfigFileName, Document 
doc) throws IOException, TransformerConfigurationException
-    {
-        File log4jConfigFile = new File(log4jConfigFileName);
-
-        if (!log4jConfigFile.canWrite())
-        {
-            LOGGER.warn("Specified log4j XML configuration file is not 
writable: " + log4jConfigFile);
-            throw new IOException("Specified log4j XML configuration file is 
not writable");
-        }
-
-        // Swap temp file in to replace existing configuration file.
-        File old = new File(log4jConfigFile.getAbsoluteFile() + ".old");
-        if (old.exists())
-        {
-            old.delete();
-        }
-
-        if(!SystemUtils.isWindows())
-        {
-
-            File tmp;
-            Random r = new Random();
-
-            final String absolutePath = log4jConfigFile.getAbsolutePath();
-            do
-            {
-                tmp = new File(absolutePath + r.nextInt() + ".tmp");
-            }
-            while(tmp.exists());
-
-            tmp.deleteOnExit();
-
-            writeConfigToFile(doc, new FileOutputStream(tmp));
-
-            if(!log4jConfigFile.renameTo(old))
-            {
-                //unable to rename the existing file to the backup name
-                LOGGER.error("Could not backup the existing log4j XML file");
-                throw new IOException("Could not backup the existing log4j XML 
file");
-            }
-
-            if(!tmp.renameTo(new File(absolutePath)))
-            {
-                //failed to rename the new file to the required filename
-
-                if(!old.renameTo(log4jConfigFile))
-                {
-                    //unable to return the backup to required filename
-                    LOGGER.error("Could not rename the new log4j configuration 
file into place, and unable to restore original file");
-                    throw new IOException("Could not rename the new log4j 
configuration file into place, and unable to restore original file");
-                }
-
-                LOGGER.error("Could not rename the new log4j configuration 
file into place");
-                throw new IOException("Could not rename the new log4j 
configuration file into place");
-            }
-        }
-        else
-        {
-            // In windows we can't do a safe rename current -> old, tmp -> 
current as it will not allow
-            // a new file with the same name as current to be created while it 
is still open.
-
-            // Instead we have to do an unsafe "copy current to old", "replace 
current contents with tmp contents"
-            FileUtils.copy(log4jConfigFile,old);
-            writeConfigToFile(doc, new FileOutputStream(log4jConfigFile));
-        }
-    }
-
-    private void writeConfigToFile(Document doc, FileOutputStream outputFile) 
throws TransformerConfigurationException, IOException
-    {
-        Transformer transformer = null;
-        transformer = TransformerFactory.newInstance().newTransformer();
-
-        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-        transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "log4j.dtd");
-        DOMSource source = new DOMSource(doc);
-
-
-        try
-        {
-            StreamResult result = new StreamResult(outputFile);
-            transformer.transform(source, result);
-        }
-        catch (TransformerException e)
-        {
-            LOGGER.warn("Could not transform the XML into new file: ", e);
-            throw new IOException("Could not transform the XML into new file: 
", e);
-        }
-    }
-
-    //method to parse the XML configuration file, validating it in the 
process, and returning a DOM Document of the content.
-    private static Document parseConfigFile(String fileName) throws IOException
-    {
-        //check file was specified, exists, and is readable
-        if(fileName == null)
-        {
-            LOGGER.warn("Provided log4j XML configuration filename is null");
-            throw new IOException("Provided log4j XML configuration filename 
is null");
-        }
-
-        File configFile = new File(fileName);
-
-        if (!configFile.exists())
-        {
-            LOGGER.warn("The log4j XML configuration file could not be found: 
" + fileName);
-            throw new IOException("The log4j XML configuration file could not 
be found");
-        }
-        else if (!configFile.canRead())
-        {
-            LOGGER.warn("The log4j XML configuration file is not readable: " + 
fileName);
-            throw new IOException("The log4j XML configuration file is not 
readable");
-        }
-
-        //parse it
-        DocumentBuilderFactory docFactory = 
DocumentBuilderFactory.newInstance();
-        DocumentBuilder docBuilder;
-        Document doc;
-
-        ErrorHandler errHandler = new QpidLog4JSaxErrorHandler();
-        try
-        {
-            docFactory.setValidating(true);
-            docBuilder = docFactory.newDocumentBuilder();
-            docBuilder.setErrorHandler(errHandler);
-            docBuilder.setEntityResolver(new Log4jEntityResolver());
-            doc = docBuilder.parse(fileName);
-        }
-        catch (ParserConfigurationException e)
-        {
-            LOGGER.warn("Unable to parse the log4j XML file due to possible 
configuration error: ", e);
-            throw new IOException("Unable to parse the log4j XML file due to 
possible configuration error: ", e);
-        }
-        catch (SAXException e)
-        {
-            LOGGER.warn("The specified log4j XML file is invalid: ", e);
-            throw new IOException("The specified log4j XML file is invalid: ", 
e);
-        }
-        catch (IOException e)
-        {
-            LOGGER.warn("Unable to parse the specified log4j XML file", e);
-            throw new IOException("Unable to parse the specified log4j XML 
file: ", e);
-        }
-
-        return doc;
-    }
-
-    private Logger findRuntimeLogger(String loggerName)
-    {
-        Logger targetLogger = null;
-        @SuppressWarnings("unchecked")
-        Enumeration<Logger> loggers = LogManager.getCurrentLoggers();
-        while(loggers.hasMoreElements())
-        {
-            targetLogger = loggers.nextElement();
-            if (targetLogger.getName().equals(loggerName))
-            {
-                return targetLogger;
-            }
-        }
-        return null;
-    }
-
-    private List<Element> buildListOfCategoryOrLoggerElements(Document doc)
-    {
-        //retrieve the 'category' and 'logger' element nodes
-        NodeList categoryElements = doc.getElementsByTagName("category");
-        NodeList loggerElements = doc.getElementsByTagName("logger");
-
-        //collect them into a single elements list
-        List<Element> logElements = new ArrayList<Element>();
-
-        for (int i = 0; i < categoryElements.getLength(); i++)
-        {
-            logElements.add((Element) categoryElements.item(i));
-        }
-        for (int i = 0; i < loggerElements.getLength(); i++)
-        {
-            logElements.add((Element) loggerElements.item(i));
-        }
-        return logElements;
-    }
-
-    private Element getPriorityOrLevelElement(Element categoryOrLogger) throws 
LoggingFacadeException
-    {
-        //retrieve the optional 'priority' or 'level' sub-element value.
-        //It may not be the only child node, so request by tag name.
-        NodeList priorityElements = 
categoryOrLogger.getElementsByTagName("priority");
-        NodeList levelElements = 
categoryOrLogger.getElementsByTagName("level");
-
-        Element levelElement = null;
-        if (priorityElements.getLength() != 0)
-        {
-            levelElement = (Element) priorityElements.item(0);
-        }
-        else if (levelElements.getLength() != 0)
-        {
-            levelElement = (Element) levelElements.item(0);
-        }
-        else
-        {
-            throw new LoggingFacadeException("Configuration " + 
categoryOrLogger.getNodeName()
-                    + " element contains neither priority nor level child");
-        }
-        return levelElement;
-    }
-
-    private static class QpidLog4JSaxErrorHandler implements ErrorHandler
-    {
-        public void error(SAXParseException e) throws SAXException
-        {
-            if(LOGGER != null)
-            {
-                LOGGER.warn(constructMessage("Error parsing XML file", e));
-            }
-            else
-            {
-                System.err.println(constructMessage("Error parsing XML file", 
e));
-            }
-        }
-
-        public void fatalError(SAXParseException e) throws SAXException
-        {
-            throw new SAXException(constructMessage("Fatal error parsing XML 
file", e));
-        }
-
-        public void warning(SAXParseException e) throws SAXException
-        {
-            if(LOGGER != null)
-            {
-                LOGGER.warn(constructMessage("Warning parsing XML file", e));
-            }
-            else
-            {
-                System.err.println(constructMessage("Warning parsing XML 
file", e));
-            }
-        }
-
-        private static String constructMessage(final String msg, final 
SAXParseException ex)
-        {
-            return msg + ": Line " + ex.getLineNumber()+" column " 
+ex.getColumnNumber() + ": " + ex.getMessage();
-        }
+        throw new UnsupportedOperationException();
     }
+
 }
 

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
 Wed Apr 29 17:10:35 2015
@@ -110,19 +110,6 @@ public class BrokerOptionsTest extends Q
         assertEquals(testLogConfigFile, _options.getLogConfigFileLocation());
     }
 
-    public void testDefaultLogWatchFrequency()
-    {
-        assertEquals(0L, _options.getLogWatchFrequency());
-    }
-
-    public void testOverridenLogWatchFrequency()
-    {
-        final int myFreq = 10 * 1000;
-        
-        _options.setLogWatchFrequency(myFreq);
-        assertEquals(myFreq, _options.getLogWatchFrequency());
-    }
-
     public void testDefaultInitialConfigurationLocation()
     {
         assertEquals(BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, 
_options.getInitialConfigurationLocation());

Modified: qpid/java/trunk/broker-plugins/access-control/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/access-control/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/access-control/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/access-control/pom.xml Wed Apr 29 17:10:35 
2015
@@ -49,9 +49,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <!-- test dependencies -->

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml Wed Apr 29 
17:10:35 2015
@@ -45,9 +45,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>

Modified: qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml Wed Apr 29 
17:10:35 2015
@@ -49,9 +49,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <!-- test dependencies -->

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml Wed Apr 29 
17:10:35 2015
@@ -51,9 +51,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
   </dependencies>

Modified: qpid/java/trunk/broker-plugins/derby-store/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/derby-store/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/derby-store/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/derby-store/pom.xml Wed Apr 29 17:10:35 2015
@@ -50,9 +50,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <!-- test dependencies -->

Modified: qpid/java/trunk/broker-plugins/jdbc-store/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/jdbc-store/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/jdbc-store/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/jdbc-store/pom.xml Wed Apr 29 17:10:35 2015
@@ -45,9 +45,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <!-- test dependencies -->

Modified: qpid/java/trunk/broker-plugins/management-http/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/management-http/pom.xml Wed Apr 29 17:10:35 
2015
@@ -49,9 +49,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
 Wed Apr 29 17:10:35 2015
@@ -361,8 +361,9 @@ public class HttpManagement extends Abst
         root.addServlet(new ServletHolder(new FileServlet()), "*.txt");
         root.addServlet(new ServletHolder(new FileServlet()), "*.xsl");
         root.addServlet(new ServletHolder(new TimeZoneServlet()), 
"/service/timezones");
-        root.addServlet(new ServletHolder(new LogFileListingServlet()), 
"/service/logfilenames");
-        root.addServlet(new ServletHolder(new LogFileServlet()), 
"/service/logfile");
+        // QPID-6516
+//        root.addServlet(new ServletHolder(new LogFileListingServlet()), 
"/service/logfilenames");
+//        root.addServlet(new ServletHolder(new LogFileServlet()), 
"/service/logfile");
 
         final SessionManager sessionManager = 
root.getSessionHandler().getSessionManager();
         
sessionManager.getSessionCookieConfig().setName(JSESSIONID_COOKIE_PREFIX + 
lastPort);

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
 Wed Apr 29 17:10:35 2015
@@ -30,9 +30,6 @@ import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import org.apache.log4j.Appender;
-import org.apache.log4j.FileAppender;
-import org.apache.log4j.QpidCompositeRollingAppender;
 
 public class LogFileHelper
 {
@@ -41,85 +38,20 @@ public class LogFileHelper
     public static final String ZIP_MIME_TYPE = "application/zip";
     public static final String GZIP_EXTENSION = ".gz";
     private static final int BUFFER_LENGTH = 1024 * 4;
-    private Collection<Appender> _appenders;
 
-    public LogFileHelper(Collection<Appender> appenders)
+    public LogFileHelper()
     {
-        super();
-        _appenders = appenders;
+        throw new UnsupportedOperationException();
     }
 
     public List<LogFileDetails> findLogFileDetails(String[] requestedFiles)
     {
-        List<LogFileDetails> logFiles = new ArrayList<LogFileDetails>();
-        Map<String, List<LogFileDetails>> cache = new HashMap<String, 
List<LogFileDetails>>();
-        for (int i = 0; i < requestedFiles.length; i++)
-        {
-            String logFile = requestedFiles[i];
-            if ("".equals(logFile))
-            {
-                throw new IllegalArgumentException("Log file parameter is 
empty");
-            }
-            int pos = logFile.indexOf("/");
-            if (pos == -1)
-            {
-                throw new IllegalArgumentException("Log file parameter '" + 
logFile + "' does not include an appender name");
-            }
-            if (pos == logFile.length())
-            {
-                throw new IllegalArgumentException("Log file parameter '" + 
logFile + "' does not include an file name");
-            }
-
-            String appenderName = logFile.substring(0, pos);
-            String fileName = logFile.substring(pos + 1);
-
-            List<LogFileDetails> appenderFiles = cache.get(appenderName);
-            if (appenderFiles == null)
-            {
-                Appender fileAppender = null;
-                for (Appender appender : _appenders)
-                {
-                    if (appenderName.equals(appender.getName()))
-                    {
-                        fileAppender = appender;
-                        break;
-                    }
-                }
-                if (fileAppender == null)
-                {
-                    continue;
-                }
-                appenderFiles = getAppenderFiles(fileAppender, true);
-                if (appenderFiles == null)
-                {
-                    continue;
-                }
-                cache.put(appenderName, appenderFiles);
-            }
-            for (LogFileDetails logFileDetails : appenderFiles)
-            {
-                if (logFileDetails.getName().equals(fileName))
-                {
-                    logFiles.add(logFileDetails);
-                    break;
-                }
-            }
-        }
-        return logFiles;
+        throw new UnsupportedOperationException();
     }
 
     public List<LogFileDetails> getLogFileDetails(boolean 
includeLogFileLocation)
     {
-        List<LogFileDetails> results = new ArrayList<LogFileDetails>();
-        for (Appender appender : _appenders)
-        {
-            List<LogFileDetails> appenderFiles = getAppenderFiles(appender, 
includeLogFileLocation);
-            if (appenderFiles != null)
-            {
-                results.addAll(appenderFiles);
-            }
-        }
-        return results;
+        throw new UnsupportedOperationException();
     }
 
     public void writeLogFiles(List<LogFileDetails> logFiles, OutputStream os) 
throws IOException
@@ -153,76 +85,6 @@ public class LogFileHelper
         }
     }
 
-    private List<LogFileDetails> getAppenderFiles(Appender appender, boolean 
includeLogFileLocation)
-    {
-        if (appender instanceof QpidCompositeRollingAppender)
-        {
-            return 
listQpidCompositeRollingAppenderFiles((QpidCompositeRollingAppender) appender, 
includeLogFileLocation);
-        }
-        else if (appender instanceof FileAppender)
-        {
-            return listFileAppenderFiles((FileAppender) appender, 
includeLogFileLocation);
-        }
-        return null;
-    }
-
-    private List<LogFileDetails> listFileAppenderFiles(FileAppender appender, 
boolean includeLogFileLocation)
-    {
-        String appenderFilePath = appender.getFile();
-        File appenderFile = new File(appenderFilePath);
-        if (appenderFile.exists())
-        {
-            return listLogFiles(appenderFile.getParentFile(), 
appenderFile.getName(), appender.getName(), "", includeLogFileLocation);
-        }
-        return Collections.emptyList();
-    }
-
-    private List<LogFileDetails> 
listQpidCompositeRollingAppenderFiles(QpidCompositeRollingAppender appender, 
boolean includeLogFileLocation)
-    {
-        List<LogFileDetails> files = listFileAppenderFiles((FileAppender) 
appender, includeLogFileLocation);
-        String appenderFilePath = appender.getFile();
-        File appenderFile = new File(appenderFilePath);
-        File backupFolder = new File(appender.getBackupFilesToPath());
-        if (backupFolder.exists())
-        {
-            String backupFolderName = backupFolder.getName() + "/";
-            List<LogFileDetails> backedUpFiles = listLogFiles(backupFolder, 
appenderFile.getName(), appender.getName(),
-                    backupFolderName, includeLogFileLocation);
-            files.addAll(backedUpFiles);
-        }
-        return files;
-    }
-
-    private List<LogFileDetails> listLogFiles(File parent, String 
baseFileName, String appenderName, String relativePath,
-            boolean includeLogFileLocation)
-    {
-        List<LogFileDetails> files = new ArrayList<LogFileDetails>();
-        for (File file : parent.listFiles())
-        {
-            String name = file.getName();
-            if (name.startsWith(baseFileName))
-            {
-                String displayPath = name;
-                if (!relativePath.equals(""))
-                {
-                    displayPath = relativePath + name;
-                }
-                files.add(new LogFileDetails(displayPath, appenderName, 
includeLogFileLocation ? file : null, getMimeType(name), file.length(),
-                        file.lastModified()));
-            }
-        }
-        return files;
-    }
-
-    private String getMimeType(String fileName)
-    {
-        if (fileName.endsWith(GZIP_EXTENSION))
-        {
-            return GZIP_MIME_TYPE;
-        }
-        return TEXT_MIME_TYPE;
-    }
-
     private void addLogFileEntries(List<LogFileDetails> files, ZipOutputStream 
out) throws IOException
     {
         for (LogFileDetails logFileDetails : files)

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
 Wed Apr 29 17:10:35 2015
@@ -20,7 +20,6 @@ package org.apache.qpid.server.managemen
 import java.io.IOException;
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
-import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
@@ -28,7 +27,6 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.log4j.LogManager;
 import org.apache.qpid.server.management.plugin.log.LogFileDetails;
 import org.apache.qpid.server.management.plugin.log.LogFileHelper;
 import org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet;
@@ -65,7 +63,8 @@ public class LogFileServlet extends Abst
         }
 
         @SuppressWarnings("unchecked")
-        LogFileHelper helper = new 
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
+        // QPID-6516 : TODO
+        LogFileHelper helper = null; //new 
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
 
         List<LogFileDetails> logFiles = null;
 

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
 Wed Apr 29 17:10:35 2015
@@ -26,7 +26,6 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.log4j.LogManager;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.SerializationConfig;
 
@@ -52,7 +51,8 @@ public class LogFileListingServlet exten
         }
 
         @SuppressWarnings("unchecked")
-        LogFileHelper helper = new 
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
+        // QPID-6516 : TODO
+        LogFileHelper helper = null; // new 
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
         List<LogFileDetails> logFiles = helper.getLogFileDetails(false);
         response.setContentType("application/json");
         response.setStatus(HttpServletResponse.SC_OK);

Modified: qpid/java/trunk/broker-plugins/management-jmx/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-jmx/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-jmx/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/management-jmx/pom.xml Wed Apr 29 17:10:35 
2015
@@ -29,6 +29,10 @@
   <name>Qpid JMX Management Broker Plug-in</name>
   <description>JMX management broker plug-in</description>
 
+  <properties>
+    <qpid.home>${basedir}/../</qpid.home> <!-- override for broker tests -->
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.qpid</groupId>
@@ -51,9 +55,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <!-- test dependencies -->

Modified: 
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
 Wed Apr 29 17:10:35 2015
@@ -87,7 +87,8 @@ public class LoggingManagementMBean exte
         super(LoggingManagement.class, LoggingManagement.TYPE, registry);
         register();
         _loggingManagementFacade = loggingManagementFacade;
-        _allAvailableLogLevels = 
buildAllAvailableLoggerLevelsWithInheritedPsuedoLogLevel(_loggingManagementFacade);
+        // QPID-6516 : TODO
+        _allAvailableLogLevels = 
null;//buildAllAvailableLoggerLevelsWithInheritedPsuedoLogLevel(_loggingManagementFacade);
     }
 
     @Override

Modified: 
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
 Wed Apr 29 17:10:35 2015
@@ -40,8 +40,9 @@ import junit.framework.TestCase;
 import org.apache.qpid.management.common.mbeans.LoggingManagement;
 import org.apache.qpid.server.jmx.ManagedObjectRegistry;
 import org.apache.qpid.server.logging.log4j.LoggingManagementFacade;
+import org.apache.qpid.test.utils.QpidTestCase;
 
-public class LoggingManagementMBeanTest extends TestCase
+public class LoggingManagementMBeanTest extends QpidTestCase
 {
     private static final String TEST_LEVEL1 = "LEVEL1";
     private static final String TEST_LEVEL2 = "LEVEL2";

Added: qpid/java/trunk/broker/etc/logback.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker/etc/logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/broker/etc/logback.xml (added)
+++ qpid/java/trunk/broker/etc/logback.xml Wed Apr 29 17:10:35 2015
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+ -->
+<configuration scan="true" scanPeriod="10 seconds">
+    <appender name="ArchivingFileAppender" 
class="ch.qos.logback.core.RollingFileAppender">
+        <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+        <rollingPolicy 
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- rollover daily -->
+            
<fileNamePattern>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>1MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="FileAppender" class="ch.qos.logback.core.FileAppender">
+        <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+        <append>false</append>
+        <encoder>
+            <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+        </encoder>
+    </appender>
+
+    <logger name="org.apache.qpid" level="warn" additivity="true"/>
+    <logger name="qpid.message" level="info" additivity="true"/>
+    <logger name="qpid.message.subscription.state" level="off" 
additivity="true"/>
+    <logger name="org.apache.qpid.server.queue.NotificationCheck" level="info" 
additivity="true"/>
+    <logger name="org.apache.commons" level="warn"/>
+
+    <root level="info">
+        <appender-ref ref="FileAppender"/>
+        <!--appender-ref ref="ArchivingFileAppender"/-->
+    </root>
+    <!-- General logging hierarchy --><!-- Operational logging hierarchy 
--><!-- Subscription state may toggle frequently for clients with low prefetch
+    so switch off this operational logging by default--><!-- Enable log 
messages for the queue notifications --><!-- Set the commons logging that the 
XML parser uses to WARN, it is very chatty at debug --><!-- Log all info events 
to file -->
+</configuration>

Propchange: qpid/java/trunk/broker/etc/logback.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: qpid/java/trunk/broker/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker/pom.xml (original)
+++ qpid/java/trunk/broker/pom.xml Wed Apr 29 17:10:35 2015
@@ -46,9 +46,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>

Modified: qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java 
(original)
+++ qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java Wed 
Apr 29 17:10:35 2015
@@ -81,11 +81,6 @@ public class Main
                                      + "default looks for a file named " + 
BrokerOptions.DEFAULT_LOG_CONFIG_FILE
                                      + " in the same directory as the 
configuration file").withLongOpt("logconfig").create("l");
 
-    private static final Option OPTION_LOG_WATCH =
-            OptionBuilder.withArgName("period").hasArg()
-                    .withDescription("monitor the log file configuration file 
for changes. Units are seconds. "
-                                     + "Zero means do not check for 
changes.").withLongOpt("logwatch").create("w");
-
     private static final Option OPTION_MANAGEMENT_MODE = 
OptionBuilder.withDescription("start broker in management mode, disabling the 
AMQP ports")
             .withLongOpt("management-mode").create("mm");
     private static final Option OPTION_MM_QUIESCE_VHOST = 
OptionBuilder.withDescription("make virtualhosts stay in the quiesced state 
during management mode.")
@@ -113,7 +108,6 @@ public class Main
         OPTIONS.addOption(OPTION_OVERWRITE_CONFIGURATION_STORE);
         OPTIONS.addOption(OPTION_CREATE_INITIAL_CONFIG);
         OPTIONS.addOption(OPTION_LOG_CONFIG_FILE);
-        OPTIONS.addOption(OPTION_LOG_WATCH);
         OPTIONS.addOption(OPTION_INITIAL_CONFIGURATION_PATH);
         OPTIONS.addOption(OPTION_MANAGEMENT_MODE);
         OPTIONS.addOption(OPTION_MM_QUIESCE_VHOST);
@@ -129,14 +123,6 @@ public class Main
 
     public static void main(String[] args)
     {
-        //if the -Dlog4j.configuration property has not been set, enable the 
init override
-        //to stop Log4J wondering off and picking up the first 
log4j.xml/properties file it
-        //finds from the classpath when we get the first Loggers
-        if(System.getProperty("log4j.configuration") == null)
-        {
-            System.setProperty("log4j.defaultInitOverride", "true");
-        }
-
         new Main(args);
     }
 
@@ -270,12 +256,6 @@ public class Main
                 options.setConfigurationStoreType(configurationStoreType);
             }
 
-            String logWatchConfig = 
_commandLine.getOptionValue(OPTION_LOG_WATCH.getOpt());
-            if(logWatchConfig != null)
-            {
-                options.setLogWatchFrequency(Integer.parseInt(logWatchConfig));
-            }
-
             String logConfig = 
_commandLine.getOptionValue(OPTION_LOG_CONFIG_FILE.getOpt());
             if(logConfig != null)
             {

Modified: 
qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java 
(original)
+++ qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java 
Wed Apr 29 17:10:35 2015
@@ -51,7 +51,6 @@ public class MainTest extends QpidTestCa
         assertEquals("JSON", options.getConfigurationStoreType());
         assertEquals(expectedStorePath, 
options.getConfigurationStoreLocation());
         assertEquals(expectedLogConfigPath, 
options.getLogConfigFileLocation());
-        assertEquals(0, options.getLogWatchFrequency());
         assertEquals(BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION, 
options.getInitialConfigurationLocation());
         assertFalse(options.isOverwriteConfigurationStore());
         assertFalse(options.isManagementMode());
@@ -94,13 +93,6 @@ public class MainTest extends QpidTestCa
         assertEquals("wxyz/log4j.xml", options.getLogConfigFileLocation());
     }
 
-    public void testLogWatch()
-    {
-        BrokerOptions options = startDummyMain("-w 9");
-
-        assertEquals(9, options.getLogWatchFrequency());
-    }
-
     public void testVersion()
     {
         final TestMain main = new TestMain("-v".split("\\s"));

Added: qpid/java/trunk/etc/logback.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/etc/logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/etc/logback.xml (added)
+++ qpid/java/trunk/etc/logback.xml Wed Apr 29 17:10:35 2015
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements. See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership. The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied. See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<configuration scan="true" scanPeriod="10 seconds">
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <target>System.out</target>
+        <encoder>
+            <pattern>%m%n</pattern>
+        </encoder>
+    </appender>
+
+
+    <root level="">
+        <appender-ref ref="CONSOLE"/>
+    </root>
+</configuration>

Propchange: qpid/java/trunk/etc/logback.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: qpid/java/trunk/perftests/example/brokerconfig/logback.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/perftests/example/brokerconfig/logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/perftests/example/brokerconfig/logback.xml (added)
+++ qpid/java/trunk/perftests/example/brokerconfig/logback.xml Wed Apr 29 
17:10:35 2015
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+ -->
+<configuration scan="true" scanPeriod="10 seconds">
+    <appender name="ArchivingFileAppender" 
class="ch.qos.logback.core.RollingFileAppender">
+        <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+        <rollingPolicy 
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- rollover daily -->
+            
<fileNamePattern>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>1MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="FileAppender" class="ch.qos.logback.core.FileAppender">
+        <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+        <append>false</append>
+        <layout>
+            <pattern>%d %-5p [%t] \(%F:%L\) - %m%n</pattern>
+        </layout>
+    </appender>
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d %-5p [%t] \(%F:%L\) - %m%n</pattern>
+        </encoder>
+    </appender>
+
+    <logger name="qpid.message" level="info" additivity="true"/>
+    <logger name="org.apache.commons" level="WARN"/>
+
+    <root level="">
+        <appender-ref ref="FileAppender"/>
+        <!--appender-ref ref="ArchivingFileAppender"/-->
+    </root>
+</configuration>

Propchange: qpid/java/trunk/perftests/example/brokerconfig/logback.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: qpid/java/trunk/perftests/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/perftests/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/perftests/pom.xml (original)
+++ qpid/java/trunk/perftests/pom.xml Wed Apr 29 17:10:35 2015
@@ -49,16 +49,9 @@
 
     <!-- other deps -->
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>${slf4j-version}</version>
-      <scope>runtime</scope>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>

Modified: qpid/java/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/pom.xml (original)
+++ qpid/java/trunk/pom.xml Wed Apr 29 17:10:35 2015
@@ -76,6 +76,7 @@
     <at.sign>@</at.sign>
     <bdb-version>5.0.104</bdb-version>
     <derby-version>10.11.1.1</derby-version>
+    <logback-version>1.1.3</logback-version>
   </properties>
 
   <modules>
@@ -209,6 +210,7 @@
           <includes>
             <include>**/*Test.java</include>
           </includes>
+          <redirectTestOutputToFile>true</redirectTestOutputToFile>
           <systemPropertyVariables>
             <!-- Defaults -->
             <QPID_HOME>${qpid.home}</QPID_HOME>

Modified: qpid/java/trunk/qpid-systests-parent/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/qpid-systests-parent/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/qpid-systests-parent/pom.xml (original)
+++ qpid/java/trunk/qpid-systests-parent/pom.xml Wed Apr 29 17:10:35 2015
@@ -59,9 +59,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>
@@ -86,13 +86,13 @@
           <systemPropertyVariables>
             
<java.naming.provider.url>test-profiles${file.separator}test-provider.properties</java.naming.provider.url>
             <test.output.dir>${test.output.dir}</test.output.dir>
-            
<log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/log4j.xml</log4j.configuration.file>
+            
<log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/logback.xml</log4j.configuration.file>
               <!-- Let the tests themselves configure logging so that we can 
have a separate log file per test
                    named after the test. -->
               <log4j.debug>false</log4j.debug>
               <log4j.defaultInitOverride>true</log4j.defaultInitOverride>
               <!-- A log4j config file that sends all the Broker's output to 
stdout -->
-              
<spawnedbroker.log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/spawned-broker-log4j.xml</spawnedbroker.log4j.configuration.file>
+              
<spawnedbroker.log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/spawned-broker-logback.xml</spawnedbroker.log4j.configuration.file>
           </systemPropertyVariables>
         </configuration>
         <executions>

Modified: qpid/java/trunk/qpid-test-utils/pom.xml
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/qpid-test-utils/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/qpid-test-utils/pom.xml (original)
+++ qpid/java/trunk/qpid-test-utils/pom.xml Wed Apr 29 17:10:35 2015
@@ -36,9 +36,9 @@
     </dependency>
 
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <version>${log4j-version}</version>
+      <groupId>ch.qos.logback</groupId>
+      <artifactId>logback-classic</artifactId>
+      <version>${logback-version}</version>
     </dependency>
 
     <dependency>
@@ -47,12 +47,6 @@
       <version>${slf4j-version}</version>
     </dependency>
 
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <version>${slf4j-version}</version>
-    </dependency>
-
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
       <artifactId>geronimo-jms_1.1_spec</artifactId>

Modified: 
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- 
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
 (original)
+++ 
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
 Wed Apr 29 17:10:35 2015
@@ -32,8 +32,8 @@ import java.util.NoSuchElementException;
 
 import junit.framework.TestCase;
 import junit.framework.TestResult;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class QpidTestCase extends TestCase
 {
@@ -48,9 +48,8 @@ public class QpidTestCase extends TestCa
     public static final String TMP_FOLDER = 
System.getProperty("java.io.tmpdir");
     public static final String SPAWNED_BROKER_LOG4J_CONFIG_FILE_PATH = 
System.getProperty("spawnedbroker.log4j.configuration.file");
 
-    private static final Logger _logger = Logger.getLogger(QpidTestCase.class);
+    private static final Logger _logger = 
LoggerFactory.getLogger(QpidTestCase.class);
 
-    private final Map<Logger, Level> _loggerLevelSetForTest = new 
HashMap<Logger, Level>();
     private final Map<String, String> _propertiesSetForTest = new 
HashMap<String, String>();
 
     private String _testName;
@@ -236,44 +235,10 @@ public class QpidTestCase extends TestCa
         }
     }
 
-    /**
-     * Adjust the VMs Log4j Settings just for this test run
-     *
-     * @param logger the logger to change
-     * @param level the level to set
-     */
-    protected void setLoggerLevel(Logger logger, Level level)
-    {
-        assertNotNull("Cannot set level of null logger", logger);
-        assertNotNull("Cannot set Logger("+logger.getName()+") to null 
level.",level);
-
-        if (!_loggerLevelSetForTest.containsKey(logger))
-        {
-            // Record the current value so we can revert it later.
-            _loggerLevelSetForTest.put(logger, logger.getLevel());
-        }
-
-        logger.setLevel(level);
-    }
-
-    /**
-     * Restore the logging levels defined by this test.
-     */
-    protected void revertLoggingLevels()
-    {
-        for (Logger logger : _loggerLevelSetForTest.keySet())
-        {
-            logger.setLevel(_loggerLevelSetForTest.get(logger));
-        }
-
-        _loggerLevelSetForTest.clear();
-    }
-
     protected void tearDown() throws java.lang.Exception
     {
         _logger.info("========== tearDown " + _testName + " ==========");
         revertTestSystemProperties();
-        revertLoggingLevels();
     }
 
     protected void setUp() throws Exception



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to