Cleanups.
authorwassa <wassa@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Fri, 12 Mar 2004 15:30:55 +0000 (15:30 +0000)
committerwassa <wassa@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Fri, 12 Mar 2004 15:30:55 +0000 (15:30 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@912 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/edu/internet2/middleware/shibboleth/common/OriginConfig.java
src/edu/internet2/middleware/shibboleth/log/LoggingContextListener.java

index e73bc99..79f1133 100644 (file)
@@ -1,48 +1,27 @@
 /*
- * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation
- * for Advanced Internet Development, Inc. All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution, if any, must include
- * the following acknowledgment: "This product includes software developed by
- * the University Corporation for Advanced Internet Development
- * <http://www.ucaid.edu> Internet2 Project. Alternately, this acknowledegement
- * may appear in the software itself, if and wherever such third-party
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor
- * Internet2, nor the University Corporation for Advanced Internet Development,
- * Inc., nor UCAID may be used to endorse or promote products derived from this
- * software without specific prior written permission. For written permission,
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2,
- * UCAID, or the University Corporation for Advanced Internet Development, nor
- * may Shibboleth appear in their name, without prior written permission of the
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
+ * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
+ * provided that the following conditions are met: Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution, if any, must include the following acknowledgment: "This product includes
+ * software developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu> Internet2
+ * Project. Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
+ * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2,
+ * nor the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
+ * products derived from this software without specific prior written permission. For written permission, please
+ * contact shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2,
+ * UCAID, or the University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name,
+ * without prior written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS
+ * PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
+ * NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS
+ * WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED
+ * INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
 package edu.internet2.middleware.shibboleth.common;
@@ -51,17 +30,16 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.StringTokenizer;
 
-import javax.servlet.http.HttpServlet;
 import javax.servlet.ServletContext;
 
 import org.apache.log4j.Logger;
 import org.apache.xerces.parsers.DOMParser;
+import org.w3c.dom.Document;
 import org.xml.sax.EntityResolver;
 import org.xml.sax.ErrorHandler;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
-import org.w3c.dom.Document;
 
 /**
  * Constructs a DOM tree for the origin configuration XML file.
@@ -71,19 +49,15 @@ import org.w3c.dom.Document;
  */
 public class OriginConfig {
 
-       private static Logger log = Logger.getLogger(OriginConfig.class);
-       private static Document originConfig = null;
-        private static String originConfigFile = null;
+       private static Logger   log                                     = Logger.getLogger(OriginConfig.class);
+       private static Document originConfig            = null;
+       private static String   originConfigFile        = null;
 
        // never returns null
-       private static String getOriginConfigFile(ServletContext context)
-       {
-               if (context.getInitParameter("OriginConfigFile") != null)
-               {
+       private static String getOriginConfigFile(ServletContext context) {
+               if (context.getInitParameter("OriginConfigFile") != null) {
                        return context.getInitParameter("OriginConfigFile");
-               }
-               else
-               {
+               } else {
                        return "/conf/origin.xml";
                }
        }
@@ -91,24 +65,21 @@ public class OriginConfig {
        /**
         * Loads the Origin Configuration file into a DOM tree.
         * 
-        * @param configFileLocation URL of the configuration file
+        * @param configFileLocation
+        *            URL of the configuration file
         * @return the DOM Document
         * @throws ShibbolethConfigurationException
         *             if there was an error loading the file
         */
-       public static synchronized Document getOriginConfig(String configFileLocation) throws ShibbolethConfigurationException
-       {
-               if (configFileLocation.equals(originConfigFile))
-               {
+       public static synchronized Document getOriginConfig(String configFileLocation)
+                       throws ShibbolethConfigurationException {
+               if (configFileLocation.equals(originConfigFile)) {
                        return originConfig;
-               }
-               else if (originConfigFile == null)
-               {
+               } else if (originConfigFile == null) {
                        originConfigFile = configFileLocation;
-               }
-               else 
-               {
-                       log.error("Previously read origin configuration from (" + originConfigFile + "), re-reading from (" + configFileLocation + "). This probably indicates a bug in shibboleth.");
+               } else {
+                       log.error("Previously read origin configuration from (" + originConfigFile + "), re-reading from ("
+                                       + configFileLocation + "). This probably indicates a bug in shibboleth.");
                        originConfigFile = configFileLocation;
                }
 
@@ -119,6 +90,7 @@ public class OriginConfig {
                        parser.setFeature("http://apache.org/xml/features/validation/schema", true);
 
                        parser.setEntityResolver(new EntityResolver() {
+
                                public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
                                        log.debug("Resolving entity for System ID: " + systemId);
                                        if (systemId != null) {
@@ -145,12 +117,15 @@ public class OriginConfig {
                        });
 
                        parser.setErrorHandler(new ErrorHandler() {
+
                                public void error(SAXParseException arg0) throws SAXException {
                                        throw new SAXException("Error parsing xml file: " + arg0);
                                }
+
                                public void fatalError(SAXParseException arg0) throws SAXException {
                                        throw new SAXException("Error parsing xml file: " + arg0);
                                }
+
                                public void warning(SAXParseException arg0) throws SAXException {
                                        throw new SAXException("Error parsing xml file: " + arg0);
                                }
@@ -181,15 +156,14 @@ public class OriginConfig {
        /**
         * Loads the Origin Configuration file into a DOM tree.
         * 
-        * @param context {@link ServletContext} from which to figure out the
-        *                location of origin.xml
+        * @param context
+        *            {@link ServletContext}from which to figure out the location of origin.xml
         * @return the DOM Document
         * @throws ShibbolethConfigurationException
         *             if there was an error loading the file
         */
-       public static Document getOriginConfig(ServletContext context) throws ShibbolethConfigurationException 
-       {
+       public static Document getOriginConfig(ServletContext context) throws ShibbolethConfigurationException {
                return getOriginConfig(getOriginConfigFile(context));
 
-        }
+       }
 }
index ec6c869..b0d9e73 100644 (file)
-/* 
- * The Shibboleth License, Version 1. 
- * Copyright (c) 2002 
- * University Corporation for Advanced Internet Development, Inc. 
- * All rights reserved
- * 
- * 
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this 
- * list of conditions and the following disclaimer.
- * 
- * Redistributions in binary form must reproduce the above copyright notice, 
- * this list of conditions and the following disclaimer in the documentation 
- * and/or other materials provided with the distribution, if any, must include 
- * the following acknowledgment: "This product includes software developed by 
- * the University Corporation for Advanced Internet Development 
- * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement 
- * may appear in the software itself, if and wherever such third-party 
- * acknowledgments normally appear.
- * 
- * Neither the name of Shibboleth nor the names of its contributors, nor 
- * Internet2, nor the University Corporation for Advanced Internet Development, 
- * Inc., nor UCAID may be used to endorse or promote products derived from this 
- * software without specific prior written permission. For written permission, 
- * please contact shibboleth@shibboleth.org
- * 
- * Products derived from this software may not be called Shibboleth, Internet2, 
- * UCAID, or the University Corporation for Advanced Internet Development, nor 
- * may Shibboleth appear in their name, without prior written permission of the 
- * University Corporation for Advanced Internet Development.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
- * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
- * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK 
- * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. 
- * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY 
- * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, 
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/*
+ * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
+ * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
+ * provided that the following conditions are met: Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution, if any, must include the following acknowledgment: "This product includes
+ * software developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu>Internet2
+ * Project. Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
+ * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2,
+ * nor the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
+ * products derived from this software without specific prior written permission. For written permission, please
+ * contact shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2,
+ * UCAID, or the University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name,
+ * without prior written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS
+ * PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
+ * NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS
+ * WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED
+ * INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
  */
 
 package edu.internet2.middleware.shibboleth.log;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.File;
-
 import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 
-import org.apache.log4j.Logger;
-import org.apache.log4j.Level;
 import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.PropertyConfigurator;
+import org.apache.log4j.Level;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
 import org.apache.log4j.PatternLayout;
+import org.apache.log4j.PropertyConfigurator;
 import org.apache.log4j.RollingFileAppender;
-import org.apache.log4j.LogManager;
 import org.apache.log4j.xml.DOMConfigurator;
-
 import org.apache.xml.security.Init;
-
 import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
-import org.w3c.dom.NamedNodeMap;
 
 import edu.internet2.middleware.shibboleth.common.OriginConfig;
+import edu.internet2.middleware.shibboleth.common.ShibResource;
 import edu.internet2.middleware.shibboleth.common.ShibbolethConfigurationException;
 import edu.internet2.middleware.shibboleth.common.ShibbolethOriginConfig;
-import edu.internet2.middleware.shibboleth.common.ShibResource;
 
 /**
- * {@link ServletContextListener} used to configure logging for other components.
+ * {@link ServletContextListener}used to configure logging for other components.
  * 
  * @author Walter Hoehn
  * @author Noah Levitt
  */
 public class LoggingContextListener implements ServletContextListener {
 
-       private static Logger log = Logger.getLogger(LoggingContextListener.class.getName());
+       private static Logger   log     = Logger.getLogger(LoggingContextListener.class.getName());
 
        // tomcat calls this before the servlet init()s, but is that guaranteed?
-       public void contextInitialized(ServletContextEvent sce)
-       {
+       public void contextInitialized(ServletContextEvent sce) {
                //Silliness to get around xmlsec doing its own configuration, ie: we might need to override it
                Init.init();
 
@@ -103,7 +73,7 @@ public class LoggingContextListener implements ServletContextListener {
                rootAppender.setName("stdout");
                Logger.getRootLogger().addAppender(rootAppender);
 
-               // rootAppender.setLayout(new PatternLayout("%-5p %-41X{serviceId} %d{ISO8601} (%c:%L) - %m%n")); 
+               // rootAppender.setLayout(new PatternLayout("%-5p %-41X{serviceId} %d{ISO8601} (%c:%L) - %m%n"));
                // Logger.getRootLogger().setLevel((Level) Level.DEBUG);
                Logger.getRootLogger().setLevel((Level) Level.INFO);
                rootAppender.setLayout(new PatternLayout("%d{ISO8601} %-5p %-41X{serviceId} - %m%n"));
@@ -111,52 +81,42 @@ public class LoggingContextListener implements ServletContextListener {
                try {
                        Document originConfig = OriginConfig.getOriginConfig(sce.getServletContext());
                        loadConfiguration(originConfig);
-               } 
-                catch (ShibbolethConfigurationException e) {
+               } catch (ShibbolethConfigurationException e) {
                        sce.getServletContext().log("Problem setting up logging.", e);
                        log.fatal("Problem setting up logging: " + e);
-                       throw new Error("Problem setting up logging: " + e);  // XXX
+                       throw new Error("Problem setting up logging: " + e); // XXX
                }
 
                log.info("Logger initialized.");
        }
 
-       public void contextDestroyed(ServletContextEvent sce)
-       {
-            log.info("Shutting down logging infrastructure.");
-            LogManager.shutdown();
+       public void contextDestroyed(ServletContextEvent sce) {
+               log.info("Shutting down logging infrastructure.");
+               LogManager.shutdown();
        }
 
-       protected void loadConfiguration(Document originConfig) throws ShibbolethConfigurationException
-       {
-               NodeList itemElements = originConfig.getDocumentElement().getElementsByTagNameNS(ShibbolethOriginConfig.originConfigNamespace, "Logging");
+       protected void loadConfiguration(Document originConfig) throws ShibbolethConfigurationException {
+               NodeList itemElements = originConfig.getDocumentElement().getElementsByTagNameNS(
+                               ShibbolethOriginConfig.originConfigNamespace, "Logging");
                Node errorLogNode = null;
                boolean encounteredLog4JConfig = false;
 
-               if (itemElements.getLength() > 1) 
-               {
+               if (itemElements.getLength() > 1) {
                        log.warn("Encountered multiple <Logging> configuration elements. Using first one.");
                }
 
-               if (itemElements.getLength() >= 1) 
-               {
+               if (itemElements.getLength() >= 1) {
                        Node loggingNode = itemElements.item(0);
 
-                       for (int i = 0; i < loggingNode.getChildNodes().getLength(); i++)
-                       {
+                       for (int i = 0; i < loggingNode.getChildNodes().getLength(); i++) {
                                Node node = loggingNode.getChildNodes().item(i);
 
-                               if ("Log4JConfig".equals(node.getNodeName()))
-                               {
+                               if ("Log4JConfig".equals(node.getNodeName())) {
                                        doLog4JConfig(node);
                                        encounteredLog4JConfig = true;
-                               }
-                               else if ("TransactionLog".equals(node.getNodeName()))
-                               {
+                               } else if ("TransactionLog".equals(node.getNodeName())) {
                                        configureTransactionLog(node);
-                               }
-                               else if ("ErrorLog".equals(node.getNodeName()))
-                               {
+                               } else if ("ErrorLog".equals(node.getNodeName())) {
                                        // make sure we do ErrorLog after TransactionLog so that the transaction log
                                        // initialization info always gets logged in the same place
                                        errorLogNode = node;
@@ -164,44 +124,39 @@ public class LoggingContextListener implements ServletContextListener {
                        }
                }
 
-               if (errorLogNode != null)
-               {
+               if (errorLogNode != null) {
                        configureErrorLog(errorLogNode);
-               }
-               else
-               {
+               } else {
                        // started out at INFO for logging config messages
                        Logger.getRootLogger().setLevel((Level) Level.WARN);
                }
 
                // turn these off by default
-               if (!encounteredLog4JConfig)
-               {
+               if (!encounteredLog4JConfig) {
                        Logger.getLogger("org.apache.xml.security").setLevel((Level) Level.OFF);
                        Logger.getLogger("org.opensaml").setLevel((Level) Level.OFF);
                }
        }
 
        // location should be a "file:/" uri
-       private RollingFileAppender makeRollingFileAppender(String location, String pattern) throws ShibbolethConfigurationException
-       {
+       private RollingFileAppender makeRollingFileAppender(String location, String pattern)
+                       throws ShibbolethConfigurationException {
                try {
                        String logPath = new ShibResource(location, LoggingContextListener.class).getFile().getCanonicalPath();
                        RollingFileAppender appender = new RollingFileAppender(new PatternLayout(pattern), logPath);
 
-                       appender.setMaximumFileSize(1024*1024);        // 1 megabyte
+                       appender.setMaximumFileSize(1024 * 1024); // 1 megabyte
                        appender.setMaxBackupIndex(Integer.MAX_VALUE); // imho we should not delete any log files
 
                        return appender;
-               }
-               catch (IOException e) {
+               } catch (IOException e) {
                        log.fatal("<TransactionLog location=\"" + location + "\">: error creating RollingFileAppender: " + e);
-                       throw new ShibbolethConfigurationException("<TransactionLog location=\"" + location + "\">: error creating RollingFileAppender: " + e);
+                       throw new ShibbolethConfigurationException("<TransactionLog location=\"" + location
+                                       + "\">: error creating RollingFileAppender: " + e);
                }
        }
 
-       private void configureErrorLog(Node node) throws ShibbolethConfigurationException
-       {
+       private void configureErrorLog(Node node) throws ShibbolethConfigurationException {
                NamedNodeMap attributes = node.getAttributes();
 
                /* schema check should catch if location is missing, NullPointerException here if not */
@@ -212,8 +167,7 @@ public class LoggingContextListener implements ServletContextListener {
                appender.setMaxBackupIndex(Integer.MAX_VALUE); // imho we should not delete any log files
 
                Level level = (Level) Level.WARN;
-               if (attributes.getNamedItem("level") != null)
-               {
+               if (attributes.getNamedItem("level") != null) {
                        log.info("Setting log level to " + attributes.getNamedItem("level").getNodeValue());
                        level = Level.toLevel(attributes.getNamedItem("level").getNodeValue());
                        Logger.getRootLogger().setLevel(level);
@@ -227,8 +181,7 @@ public class LoggingContextListener implements ServletContextListener {
                Logger.getRootLogger().setLevel(level);
        }
 
-       private void configureTransactionLog(Node node) throws ShibbolethConfigurationException
-       {
+       private void configureTransactionLog(Node node) throws ShibbolethConfigurationException {
                NamedNodeMap attributes = node.getAttributes();
 
                // schema check should catch if location is missing, NullPointerException here if not
@@ -237,45 +190,39 @@ public class LoggingContextListener implements ServletContextListener {
                appender.setName("transaction");
 
                Logger log = Logger.getLogger("Shibboleth-TRANSACTION");
-               log.setAdditivity(false);         // do not want parent's messages
+               log.setAdditivity(false); // do not want parent's messages
                log.setLevel((Level) Level.INFO); // all messages to this log are INFO
 
                // log.removeAllAppenders(); // imho we want these messages to appear in the "error" log if level >= INFO
                log.addAppender(appender);
        }
 
-       private void doLog4JConfig(Node node) throws ShibbolethConfigurationException
-       {
+       private void doLog4JConfig(Node node) throws ShibbolethConfigurationException {
                NamedNodeMap attributes = node.getAttributes();
 
                // schema check should catch if location is missing, NullPointerException here if not
                String location = attributes.getNamedItem("location").getNodeValue();
 
                String type = null;
-               if (attributes.getNamedItem("type") != null) 
-               {
+               if (attributes.getNamedItem("type") != null) {
                        type = attributes.getNamedItem("type").getNodeValue();
                }
 
                URL url;
                try {
                        url = new URL(location);
-               }
-               catch (MalformedURLException e) {
+               } catch (MalformedURLException e) {
                        log.fatal("<Log4JConfig location=\"" + location + "\">: not a valid URL: " + e);
-                       throw new ShibbolethConfigurationException("<Log4JConfig location=\"" + location + "\">: not a valid URL: " + e);
+                       throw new ShibbolethConfigurationException("<Log4JConfig location=\"" + location + "\">: not a valid URL: "
+                                       + e);
                }
 
-               if (type == null || "properties".equals(type))
-               {
+               if (type == null || "properties".equals(type)) {
                        log.info("Using Properties log4j configuration from " + url);
                        PropertyConfigurator.configure(url);
-               }
-               else if ("xml".equals(type))
-               {
+               } else if ("xml".equals(type)) {
                        log.info("Using XML log4j configuration from " + url);
                        DOMConfigurator.configure(url);
                }
        }
 }
-