You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2006/03/08 17:15:47 UTC

svn commit: r384247 - in /portals/jetspeed-2/trunk: ./ components/portal/src/java/ components/portal/src/java/org/apache/jetspeed/engine/ components/portal/src/java/org/apache/jetspeed/util/ components/webapp-logging/ components/webapp-logging/src/ com...

Author: ate
Date: Wed Mar  8 08:15:42 2006
New Revision: 384247

URL: http://svn.apache.org/viewcvs?rev=384247&view=rev
Log:
New Jetspeed web applications logging component.
See: http://issues.apache.org/jira/browse/JS2-508

Added:
    portals/jetspeed-2/trunk/components/webapp-logging/   (with props)
    portals/jetspeed-2/trunk/components/webapp-logging/pom.xml
    portals/jetspeed-2/trunk/components/webapp-logging/project.properties
    portals/jetspeed-2/trunk/components/webapp-logging/project.xml
    portals/jetspeed-2/trunk/components/webapp-logging/src/
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/commons-logging.properties
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java   (contents, props changed)
      - copied, changed from r379076, portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/IsolatedLog4JLogger.java
    portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/Log4JConfigurator.java   (with props)
    portals/jetspeed-2/trunk/components/webapp-logging/xdocs/
    portals/jetspeed-2/trunk/components/webapp-logging/xdocs/index.xml
    portals/jetspeed-2/trunk/components/webapp-logging/xdocs/navigation.xml
Removed:
    portals/jetspeed-2/trunk/components/portal/src/java/commons-logging.properties
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/IsolatedLog4JLogger.java
Modified:
    portals/jetspeed-2/trunk/.classpath
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java

Modified: portals/jetspeed-2/trunk/.classpath
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/.classpath?rev=384247&r1=384246&r2=384247&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/.classpath (original)
+++ portals/jetspeed-2/trunk/.classpath Wed Mar  8 08:15:42 2006
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry excluding="**/.svn/*" kind="src" path="portlet-api/src/java"/>
+	<classpathentry excluding="**/.svn/*" kind="src" path="components/webapp-logging/src/java"/>
 	<classpathentry kind="src" path="components/serializer/src/java"/>
 	<classpathentry kind="src" path="etc/log4j"/>
 	<classpathentry excluding="**/.svn/*" kind="src" path="jetspeed-api/src/java"/>

Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java?rev=384247&r1=384246&r2=384247&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java Wed Mar  8 08:15:42 2006
@@ -15,11 +15,9 @@
  */
 package org.apache.jetspeed.engine;
 
-import java.io.FileInputStream;
 import java.text.DateFormat;
 import java.util.Date;
 import java.util.Map;
-import java.util.Properties;
 
 import javax.servlet.ServletConfig;
 
@@ -35,11 +33,6 @@
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.request.RequestContextComponent;
 import org.apache.jetspeed.statistics.PortalStatistics;
-import org.apache.jetspeed.util.IsolatedLog4JLogger;
-import org.apache.log4j.Hierarchy;
-import org.apache.log4j.Level;
-import org.apache.log4j.PropertyConfigurator;
-import org.apache.log4j.spi.RootCategory;
 import org.apache.ojb.broker.util.ClassHelper;
 import org.apache.pluto.PortletContainer;
 import org.apache.pluto.PortletContainerException;
@@ -66,19 +59,14 @@
     private final PortalContext context;
     private final ServletConfig config;
     private final ComponentManager componentManager;
-    private final Configuration configuration;
-    private final String applicationRoot;
     private Map pipelineMapper ;
     private PortalStatistics statistics;
     
     protected static final Log log = LogFactory.getLog(JetspeedEngine.class);
-    private static final Log console = LogFactory.getLog(CONSOLE_LOGGER);        
     protected String defaultPipelineName;    
 
     public JetspeedEngine(Configuration configuration, String applicationRoot, ServletConfig config, ComponentManager componentManager )
     {
-        this.configuration = configuration;
-        this.applicationRoot = applicationRoot;
         this.componentManager = componentManager;
         this.context = new JetspeedPortalContext(this, configuration, applicationRoot);
         this.config = config;
@@ -115,20 +103,6 @@
         Date startTime = new Date();        
         try
         {  
-            //
-            // Configure Log4J
-            //
-            String log4jFile = configuration.getString(LOG4J_CONFIG_FILE,
-                    LOG4J_CONFIG_FILE_DEFAULT);
-            log4jFile = getRealPath(log4jFile);
-            Properties p = new Properties();
-            p.load(new FileInputStream(log4jFile));
-            p.setProperty(APPLICATION_ROOT_KEY, context.getApplicationRoot());
-            Hierarchy h = new Hierarchy(new RootCategory(Level.INFO));
-            new PropertyConfigurator().doConfigure(p,h);
-            IsolatedLog4JLogger.setHierarchy(h);
-            
-            log.info("Configured log4j from " + log4jFile);
             log.info("Starting Jetspeed Engine ("+getClass().getName()+") at "+format.format(startTime));
     
             // patch up OJB

Propchange: portals/jetspeed-2/trunk/components/webapp-logging/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Mar  8 08:15:42 2006
@@ -0,0 +1,2 @@
+
+target

Added: portals/jetspeed-2/trunk/components/webapp-logging/pom.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/pom.xml?rev=384247&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/webapp-logging/pom.xml (added)
+++ portals/jetspeed-2/trunk/components/webapp-logging/pom.xml Wed Mar  8 08:15:42 2006
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2006 The Apache Software Foundation
+
+Licensed 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.
+
+  $Id$
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <!-- POM Identification -->
+
+    <groupId>org.apache.portals.jetspeed-2</groupId>
+    <version>2.1-dev</version>
+    <artifactId>jetspeed-webapp-logging</artifactId>
+    <parent>
+        <groupId>org.apache.portals.jetspeed-2</groupId>
+        <version>2.1-dev</version>
+        <artifactId>components</artifactId>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <packaging>jar</packaging>
+    <name>Jetspeed-2 WebApp Logging</name>
+    <description>
+      The Jetspeed-2 Web Application Logging Utils allow one to use jakarta commons-logging together with Log4J in a web application
+      isolated from other Log4J configurations of your App Server and/or other web applications.
+    </description>
+
+    <!-- Dependencies -->
+
+    <dependencies>
+
+        <!-- Build Dependencies -->
+        <dependency>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+          <version>${commons.logging.version}</version>
+        </dependency>    
+        <dependency>
+          <groupId>log4j</groupId>
+          <artifactId>log4j</artifactId>
+          <version>${log4j.version}</version>
+        </dependency>    
+
+        <!-- Test Dependencies -->
+
+    </dependencies>
+
+    <!-- Project Information -->
+
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/portals/jetspeed-2/trunk/components/webapp-logging</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/portals/jetspeed-2/trunk/components/webapp-logging</developerConnection>
+        <url>http://svn.apache.org/viewcvs.cgi/portals/jetspeed-2/trunk/components/webapp-logging/</url>
+    </scm>
+
+</project>

Added: portals/jetspeed-2/trunk/components/webapp-logging/project.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/project.properties?rev=384247&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/webapp-logging/project.properties (added)
+++ portals/jetspeed-2/trunk/components/webapp-logging/project.properties Wed Mar  8 08:15:42 2006
@@ -0,0 +1,20 @@
+# Copyright 2004 The Apache Software Foundation
+#
+# Licensed 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.
+#
+# $Id$
+#
+
+maven.multiproject.type=jar
+maven.license.licenseFile=${basedir}/../../LICENSE.TXT
+

Added: portals/jetspeed-2/trunk/components/webapp-logging/project.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/project.xml?rev=384247&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/webapp-logging/project.xml (added)
+++ portals/jetspeed-2/trunk/components/webapp-logging/project.xml Wed Mar  8 08:15:42 2006
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright 2004 The Apache Software Foundation
+
+Licensed 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.
+
+    $Id$
+-->
+<project>
+  <extend>${basedir}/../../core-build.xml</extend>
+  <pomVersion>3</pomVersion>
+  <artifactId>jetspeed-webapp-logging</artifactId>
+  <name>Jetspeed-2 WebApp Logging</name>
+  <package>org.apache.jetspeed.webapp.logging</package>
+  <description>
+    The Jetspeed-2 Web Application Logging Utils allow one to use jakarta commons-logging together with Log4J in a web application
+    isolated from other Log4J configurations of your App Server and/or other web applications.
+  </description>
+
+  <repository>                 
+    <connection>scm:svn:http://svn.apache.org/repos/asf/portals/jetspeed-2/trunk/components/webapp-logging</connection>
+        <developerConnection>
+            scm:svn:https://svn.apache.org/repos/asf/portals/jetspeed-2/trunk/components/webapp-logging
+        </developerConnection>
+    <url>http://svn.apache.org/viewcvs.cgi/portals/jetspeed-2/trunk/components/webapp-logging/</url>
+  </repository>
+
+  <shortDescription>WebApp Logging</shortDescription>
+ 
+  <dependencies>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>${commons.logging.version}</version>
+    </dependency>    
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>${log4j.version}</version>
+    </dependency>    
+  </dependencies>
+  
+  <build>
+    <sourceDirectory>src/java</sourceDirectory>
+    <resources>
+      <resource>
+        <directory>${basedir}/src/java</directory>
+        <excludes>
+          <exclude>**/*.java</exclude>
+        </excludes>
+      </resource>
+    </resources>    
+  </build>
+
+</project>

Added: portals/jetspeed-2/trunk/components/webapp-logging/src/java/commons-logging.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/src/java/commons-logging.properties?rev=384247&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/webapp-logging/src/java/commons-logging.properties (added)
+++ portals/jetspeed-2/trunk/components/webapp-logging/src/java/commons-logging.properties Wed Mar  8 08:15:42 2006
@@ -0,0 +1 @@
+org.apache.commons.logging.Log=org.apache.jetspeed.webapp.logging.IsolatedLog4JLogger
\ No newline at end of file

Copied: portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java (from r379076, portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/IsolatedLog4JLogger.java)
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java?p2=portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java&p1=portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/IsolatedLog4JLogger.java&r1=379076&r2=384247&rev=384247&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/util/IsolatedLog4JLogger.java (original)
+++ portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java Wed Mar  8 08:15:42 2006
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.jetspeed.util;
+package org.apache.jetspeed.webapp.logging;
 
 import java.util.HashMap;
 import java.util.Iterator;

Propchange: portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.2

Propchange: portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/IsolatedLog4JLogger.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/Log4JConfigurator.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/Log4JConfigurator.java?rev=384247&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/Log4JConfigurator.java (added)
+++ portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/Log4JConfigurator.java Wed Mar  8 08:15:42 2006
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ */
+package org.apache.jetspeed.webapp.logging;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.Hierarchy;
+import org.apache.log4j.Level;
+import org.apache.log4j.PropertyConfigurator;
+import org.apache.log4j.spi.RootCategory;
+
+public class Log4JConfigurator implements ServletContextListener
+{
+    /** The optional web.xml context parameter name for the Log4J Config File (location). 
+     *  The specified location is interpreted as begin (webapp) context relative.
+     */
+    public static final String LOG4J_CONFIG_FILE = "log4j.config.file";
+
+    /** The default value for the Log4J Config File (location) */
+    public static final String LOG4J_CONFIG_FILE_DEFAULT = "/WEB-INF/log4j.properties";
+
+    /** The optional web.xml context parameter name for the Log4J Config webApplicationRoot (property) */
+    public static final String LOG4J_CONFIG_WEB_APPLICATION_ROOT_KEY = "log4j.config.webApplicationRoot.key";
+
+    /** The default value for the Log4J Config webApplicationRoot (property) */
+    public static final String LOG4J_CONFIG_WEB_APPLICATION_ROOT_KEY_DEFAULT = "webApplicationRoot";
+    
+    private Hierarchy isolatedHierarchy;
+    
+    private static Log log;
+
+    public void contextInitialized(ServletContextEvent event)
+    {
+        String log4JConfigFile = event.getServletContext().getInitParameter(LOG4J_CONFIG_FILE);
+        if ( log4JConfigFile == null || log4JConfigFile.length() == 0 )
+        {
+            log4JConfigFile = LOG4J_CONFIG_FILE_DEFAULT;
+        }
+        String rootPath = event.getServletContext().getRealPath("");
+        InputStream input = event.getServletContext().getResourceAsStream(log4JConfigFile);
+        if ( input != null )
+        {
+            try
+            {
+                Properties p = new Properties();
+                p.load(input);
+                String waRootKey = event.getServletContext().getInitParameter(LOG4J_CONFIG_WEB_APPLICATION_ROOT_KEY);
+                if ( waRootKey == null || waRootKey.length() == 0 )
+                {
+                    waRootKey = LOG4J_CONFIG_WEB_APPLICATION_ROOT_KEY_DEFAULT;
+                }
+                p.setProperty(waRootKey,rootPath);
+                isolatedHierarchy = new Hierarchy(new RootCategory(Level.INFO));
+                new PropertyConfigurator().doConfigure(p,isolatedHierarchy);
+                IsolatedLog4JLogger.setHierarchy(isolatedHierarchy);
+                log = LogFactory.getLog(this.getClass());
+                log.info("IsolatedLog4JLogger configured");
+            }
+            catch (IOException ioe)
+            {
+                event.getServletContext().log("Failed to configure Log4J from "+event.getServletContext().getServletContextName(),ioe);
+            }
+        }
+        else
+        {
+            event.getServletContext().log(event.getServletContext().getServletContextName()+" Log4JConfigurator: "+rootPath+log4JConfigFile+" not found.");
+        }
+    }
+
+    public void contextDestroyed(ServletContextEvent event)
+    {
+        if ( log != null )
+        {
+            log.info("Shutting down IsolatedLog4JLogger");
+            log = null;
+        }
+        // flush Logger cache which might be kept in a shared context if
+        // commons-logging isn't loaded through this ContextClassLoader
+        LogFactory.release(Thread.currentThread().getContextClassLoader());
+        // shutdown Log4J hierarchy (log4J keeps log files locked on Windows otherwise)
+        if (isolatedHierarchy != null)
+        {
+        	isolatedHierarchy.shutdown();
+        }
+    }
+}

Propchange: portals/jetspeed-2/trunk/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging/Log4JConfigurator.java
------------------------------------------------------------------------------
    svn:executable = *

Added: portals/jetspeed-2/trunk/components/webapp-logging/xdocs/index.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/xdocs/index.xml?rev=384247&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/webapp-logging/xdocs/index.xml (added)
+++ portals/jetspeed-2/trunk/components/webapp-logging/xdocs/index.xml Wed Mar  8 08:15:42 2006
@@ -0,0 +1,31 @@
+<?xml version="1.0" ?>
+<!--
+    Copyright 2004 The Apache Software Foundation
+    
+    Licensed 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.
+-->
+<document>
+    <properties>
+        <title>Jetspeed-2 Web Application Logging Utils</title>
+        <authors>
+            <person name="Ate Douma" email="ate@douma.nu" />
+        </authors>
+    </properties>
+    <body>
+        <section name="Web Application Logging Overview">
+            <p>
+            </p>
+        </section>
+    </body>
+</document>
+

Added: portals/jetspeed-2/trunk/components/webapp-logging/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/webapp-logging/xdocs/navigation.xml?rev=384247&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/components/webapp-logging/xdocs/navigation.xml (added)
+++ portals/jetspeed-2/trunk/components/webapp-logging/xdocs/navigation.xml Wed Mar  8 08:15:42 2006
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    Copyright 2004 The Apache Software Foundation
+    
+    Licensed 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.
+-->
+<project>
+    <body>
+        <links>
+        	<item name="Jetspeed 2" href="../../index.html" />
+            <!-- Cannot access ${pom.id}... Hard coding pdf name. -->
+            <item name="PDF Documentation" href="/jetspeed-webapp-logging.pdf" img="../../images/pdf.gif" />
+        </links>
+    	<menu name="Jetspeed-2 Web Application Logging Utils Documentation">
+    	    <item name="Web Application Logging Overview" href="index.html" />
+    	</menu>
+    </body>
+</project>



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org