You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2010/07/02 21:29:36 UTC

svn commit: r960092 - in /incubator/lcf/trunk/modules: ./ framework/ framework/jetty-example/ framework/jetty-runner/ framework/jetty-runner/org/ framework/jetty-runner/org/apache/ framework/jetty-runner/org/apache/lcf/ framework/jetty-runner/org/apach...

Author: kwright
Date: Fri Jul  2 19:29:35 2010
New Revision: 960092

URL: http://svn.apache.org/viewvc?rev=960092&view=rev
Log:
First part of jetty integration.  The jetty example is built for the framework itself, but no connectors are yet hooked into this.  This will be addressed in a future checkin.

Added:
    incubator/lcf/trunk/modules/framework/jetty-example/
    incubator/lcf/trunk/modules/framework/jetty-example/lcf.sh
    incubator/lcf/trunk/modules/framework/jetty-example/logging.ini
    incubator/lcf/trunk/modules/framework/jetty-example/properties.xml
    incubator/lcf/trunk/modules/framework/jetty-runner/
    incubator/lcf/trunk/modules/framework/jetty-runner/org/
    incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/
    incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/
    incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/
    incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/LCFJettyRunner.java   (with props)
    incubator/lcf/trunk/modules/lib/eclipse-ecj.jar   (with props)
    incubator/lcf/trunk/modules/lib/jasper-6.0.24.jar   (with props)
    incubator/lcf/trunk/modules/lib/jasper-el-6.0.24.jar   (with props)
    incubator/lcf/trunk/modules/lib/jetty-6.1.22.jar   (with props)
    incubator/lcf/trunk/modules/lib/jetty-util-6.1.22.jar   (with props)
    incubator/lcf/trunk/modules/lib/jsp-2.1-glassfish-9.1.1.B60.25.p2.jar   (with props)
    incubator/lcf/trunk/modules/lib/jsp-2.1-jetty-6.1.22.jar   (with props)
    incubator/lcf/trunk/modules/lib/jsp-api-2.1-glassfish-9.1.1.B60.25.p2.jar   (with props)
    incubator/lcf/trunk/modules/lib/servlet-api-2.5-20081211.jar   (with props)
    incubator/lcf/trunk/modules/lib/tomcat-juli-6.0.24.jar   (with props)
Removed:
    incubator/lcf/trunk/modules/lib/jasper-compiler-jdt.jar
    incubator/lcf/trunk/modules/lib/jasper-compiler.jar
    incubator/lcf/trunk/modules/lib/jasper-runtime.jar
    incubator/lcf/trunk/modules/lib/jsp-api.jar
    incubator/lcf/trunk/modules/lib/servlet-api.jar
Modified:
    incubator/lcf/trunk/modules/build.xml
    incubator/lcf/trunk/modules/framework/build.xml

Modified: incubator/lcf/trunk/modules/build.xml
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/build.xml?rev=960092&r1=960091&r2=960092&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/build.xml (original)
+++ incubator/lcf/trunk/modules/build.xml Fri Jul  2 19:29:35 2010
@@ -51,16 +51,18 @@
                 <include name="commons-httpclient-lcf.jar"/>
                 <include name="commons-io*.jar"/>
                 <include name="commons-logging*.jar"/>
+                <include name="eclipse*.jar"/>
                 <include name="derby*.jar"/>
-                <include name="jasper-compiler*.jar"/>
-                <include name="jasper-compiler-jdt*.jar"/>
-                <include name="jasper-runtime.jar*"/>
+                <include name="jasper*.jar"/>
+                <include name="jetty*.jar"/>
                 <include name="jdbcpool-0.99.jar"/>
+                <include name="jsp-2.1*.jar"/>
                 <include name="jsp-api*.jar"/>
                 <include name="junit*.jar"/>
                 <include name="log4j*.jar"/>
                 <include name="serializer*.jar"/>
                 <include name="servlet-api*.jar"/>
+                <include name="tomcat-juli*.jar"/>
                 <include name="xalan*.jar"/>
                 <include name="xercesImpl-lcf.jar"/>
                 <include name="xml-apis*.jar"/>

Modified: incubator/lcf/trunk/modules/framework/build.xml
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/build.xml?rev=960092&r1=960091&r2=960092&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/build.xml (original)
+++ incubator/lcf/trunk/modules/framework/build.xml Fri Jul  2 19:29:35 2010
@@ -70,6 +70,19 @@
         </javac>
     </target>
 
+    <target name="compile-jetty-runner" depends="compile-core,compile-agents">
+        <mkdir dir="build/jetty-runner/classes"/>
+        <javac srcdir="jetty-runner" destdir="build/jetty-runner/classes" target="1.5" source="1.4" debug="true" debuglevel="lines,vars,source">
+            <classpath>
+                 <fileset dir="lib"> 
+                    <include name="*.jar"/> 
+                </fileset>
+                <pathelement location="build/core/classes"/>
+                <pathelement location="build/agents/classes"/>
+            </classpath>
+        </javac>
+    </target>
+
     <target name="compile-authority-service" depends="compile-core,compile-agents,compile-pull-agent">
         <mkdir dir="build/authority-service/classes"/>
         <javac srcdir="authority-service" destdir="build/authority-service/classes" target="1.5" source="1.4" debug="true" debuglevel="lines,vars,source">
@@ -98,7 +111,7 @@
                 <pathelement location="build/agents/classes"/>
                 <pathelement location="build/pull-agent/classes"/>
             </classpath> 
-        </taskdef> 
+        </taskdef > 
         <!-- Compile jsp's to java -->
         <mkdir dir="build/crawler-ui/java"/>
         <jasper2 validateXml="false" uriroot="crawler-ui" webXmlFragment="crawler-ui/WEB-INF/web-generated.xml" outputDir="build/crawler-ui/java" /> 
@@ -142,6 +155,11 @@
         <jar destfile="build/jar/lcf-pull-agent.jar" basedir="build/pull-agent/classes"/>
     </target>
 
+    <target name="jar-jetty-runner" depends="compile-jetty-runner">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/lcf-jetty-runner.jar" basedir="build/jetty-runner/classes"/>
+    </target>
+
     <target name="webapp-authority-service" depends="jar-core,jar-agents,jar-pull-agent,compile-authority-service">
         <mkdir dir="build/webapp/authority-service/WEB-INF/lib"/>
         <copy todir="build/webapp/authority-service/WEB-INF/lib">
@@ -269,6 +287,60 @@
         </copy>
     </target>
 
+    <target name="jetty-runner" depends="war-crawler-ui,war-authority-service,jar-jetty-runner,jar-core,jar-agents,jar-pull-agent">
+        <mkdir dir="dist/jetty-runner/lib"/>
+        <copy todir="dist/jetty-runner/lib">
+            <fileset dir="lib">
+                <include name="commons-codec*.jar"/>
+                <include name="commons-collections*.jar"/>
+                <include name="commons-el*.jar"/>
+                <include name="commons-fileupload*.jar"/>
+                <include name="commons-httpclient-lcf.jar"/>
+                <include name="commons-io*.jar"/>
+                <include name="commons-logging*.jar"/>
+                <include name="eclipse*.jar"/>
+                <include name="jasper*.jar"/>
+                <include name="jdbcpool-0.99.jar"/>
+                <include name="jetty*.jar"/>
+                <include name="jsp-api*.jar"/>
+                <include name="jsp-2.5*.jar"/>
+                <include name="log4j*.jar"/>
+                <include name="serializer*.jar"/>
+                <include name="servlet-api*.jar"/>
+                <include name="tomcat-juli*.jar"/>
+                <include name="xalan*.jar"/>
+                <include name="xercesImpl-lcf.jar"/>
+                <include name="xml-apis*.jar"/>
+            </fileset>
+            <fileset dir="lib">
+                <include name="postgresql*.jar"/>
+                <include name="derby*.jar"/>
+            </fileset>
+        </copy>
+        <copy todir="dist/jetty-runner/lib">
+            <fileset dir="build/jar">
+                <include name="lcf-core.jar"/>
+                <include name="lcf-ui-core.jar"/>
+                <include name="lcf-agents.jar"/>
+                <include name="lcf-pull-agent.jar"/>
+                <include name="lcf-jetty-runner.jar"/>
+            </fileset>
+        </copy>
+        <mkdir dir="dist/jetty-runner/war"/>
+        <copy todir="dist/jetty-runner/war">
+            <fileset dir="dist/web/war"/>
+        </copy>
+        <mkdir dir="dist/jetty-runner/connector-lib"/>
+        <mkdir dir="dist/jetty-runner/logs"/>
+        <copy todir="dist/jetty-runner">
+            <fileset dir="jetty-example">
+                <include name="properties.xml"/>
+                <include name="logging.ini"/>
+                <include name="executecommand.sh"/>
+                <include name="lcf.sh"/>
+            </fileset>
+        </copy>
+    </target>
     
     <target name="compile-tests" depends="compile-core,compile-ui-core,compile-agents,compile-pull-agent,compile-authority-service">
         <mkdir dir="build/tests/classes"/>
@@ -320,6 +392,6 @@
         </junit>
     </target>
     
-    <target name="all" depends="processes,war-authority-service,war-crawler-ui,doc,tests,run-tests"/>
+    <target name="all" depends="processes,war-authority-service,war-crawler-ui,jetty-runner,doc,tests,run-tests"/>
     
 </project>

Added: incubator/lcf/trunk/modules/framework/jetty-example/lcf.sh
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/jetty-example/lcf.sh?rev=960092&view=auto
==============================================================================
--- incubator/lcf/trunk/modules/framework/jetty-example/lcf.sh (added)
+++ incubator/lcf/trunk/modules/framework/jetty-example/lcf.sh Fri Jul  2 19:29:35 2010
@@ -0,0 +1,37 @@
+#!/bin/bash -e
+
+if [[ $OSTYPE == "cygwin" ]] ; then
+    PATHSEP=";"
+else
+    PATHSEP=":"
+fi
+
+#Make sure environment variables are properly set
+if [ -e "$JAVA_HOME"/bin/java ] ; then
+    if [ -f ./properties.xml ] ; then
+    
+        # Build the classpath
+        CLASSPATH=""
+        for filename in $(ls -1 ./lib) ; do
+            if [ -n "$CLASSPATH" ] ; then
+                CLASSPATH="$CLASSPATH""$PATHSEP"./lib/"$filename"
+            else
+                CLASSPATH=./lib/"$filename"
+            fi
+        done
+        
+        # Build the defines
+        DEFINES="-Dorg.apache.lcf.configfile=./properties.xml"
+
+        "$JAVA_HOME/bin/java" $DEFINES -cp "$CLASSPATH" org.apache.lcf.jettyrunner.LCFJettyRunner 8888 war/lcf-crawler-ui.war war/lcf-authority-service.war
+        exit $?
+        
+    else
+        echo "Cannot locate properties.xml file." 1>&2
+        exit 1
+    fi
+    
+else
+    echo "Environment variable JAVA_HOME is not properly set." 1>&2
+    exit 1
+fi

Added: incubator/lcf/trunk/modules/framework/jetty-example/logging.ini
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/jetty-example/logging.ini?rev=960092&view=auto
==============================================================================
--- incubator/lcf/trunk/modules/framework/jetty-example/logging.ini (added)
+++ incubator/lcf/trunk/modules/framework/jetty-example/logging.ini Fri Jul  2 19:29:35 2010
@@ -0,0 +1,4 @@
+log4j.appender.MAIN.File=logs/lcf.log
+log4j.rootLogger=WARN, MAIN
+log4j.appender.MAIN=org.apache.log4j.RollingFileAppender
+log4j.appender.MAIN.layout=org.apache.log4j.PatternLayout

Added: incubator/lcf/trunk/modules/framework/jetty-example/properties.xml
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/jetty-example/properties.xml?rev=960092&view=auto
==============================================================================
--- incubator/lcf/trunk/modules/framework/jetty-example/properties.xml (added)
+++ incubator/lcf/trunk/modules/framework/jetty-example/properties.xml Fri Jul  2 19:29:35 2010
@@ -0,0 +1,6 @@
+<configuration>
+  <property name="org.apache.lcf.databaseimplementationclass" value="org.apache.lcf.core.database.DBInterfaceDerby"/>
+  <property name="org.apache.lcf.derbydatabasepath" value="."/>
+  <property name="org.apache.lcf.logconfigfile" value="./logging.ini"/>
+  <libdir path="./connector-lib"/>
+</configuration>

Added: incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/LCFJettyRunner.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/LCFJettyRunner.java?rev=960092&view=auto
==============================================================================
--- incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/LCFJettyRunner.java (added)
+++ incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/LCFJettyRunner.java Fri Jul  2 19:29:35 2010
@@ -0,0 +1,207 @@
+/**
+ * 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.
+ */
+
+package org.apache.lcf.jettyrunner;
+
+import java.io.*;
+import org.apache.lcf.core.interfaces.*;
+import org.apache.lcf.agents.interfaces.*;
+import org.apache.lcf.agents.system.*;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.webapp.WebAppContext;
+import org.mortbay.jetty.servlet.Context;
+import org.mortbay.jetty.servlet.FilterHolder;
+import org.mortbay.log.Logger;
+
+/**
+ * Run LCF with jetty.
+ * 
+ */
+public class LCFJettyRunner
+{
+
+  public static final String _rcsid = "@(#)$Id$";
+
+  public static final String agentShutdownSignal = org.apache.lcf.agents.AgentRun.agentShutdownSignal;
+
+  protected Server server;
+  
+  public LCFJettyRunner( int port, String crawlerWarPath, String authorityServiceWarPath )
+  {
+    server = new Server( port );    
+    server.setStopAtShutdown( true );
+    
+    // Initialize the servlets
+    WebAppContext lcfCrawlerUI = new WebAppContext(crawlerWarPath,"/lcf-crawler-ui");
+    // This will cause jetty to ignore all of the framework and jdbc jars in the war, which is what we want.
+    lcfCrawlerUI.setParentLoaderPriority(true);
+    server.addHandler(lcfCrawlerUI);
+    WebAppContext lcfAuthorityService = new WebAppContext(authorityServiceWarPath,"/lcf-authority-service");
+    // This will cause jetty to ignore all of the framework and jdbc jars in the war, which is what we want.
+    lcfAuthorityService.setParentLoaderPriority(true);
+    server.addHandler(lcfAuthorityService);
+  }
+
+  public void start()
+    throws LCFException
+  {
+    if(!server.isRunning() )
+    {
+      try
+      {
+        server.start();
+      }
+      catch (Exception e)
+      {
+        throw new LCFException("Couldn't start: "+e.getMessage(),e);
+      }
+    }
+  }
+
+  public void stop()
+    throws LCFException
+  {
+    if( server.isRunning() )
+    {
+      try
+      {
+        server.stop();
+      }
+      catch (Exception e)
+      {
+        throw new LCFException("Couldn't stop: "+e.getMessage(),e);
+      }
+      try
+      {
+        server.join();
+      }
+      catch (InterruptedException e)
+      {
+        throw new LCFException(e.getMessage(),e,LCFException.INTERRUPTED);
+      }
+    }
+  }
+
+  /**
+   * Returns the Local Port of the first Connector found for the jetty Server.
+   * @return the port number.
+   */
+  public int getLocalPort()
+    throws LCFException
+  {
+    Connector[] conns = server.getConnectors();
+    if (0 == conns.length) {
+      throw new LCFException("Jetty Server has no Connectors");
+    }
+    return conns[0].getLocalPort();
+  }
+
+  /**
+   * A main class that starts jetty+lcf
+   */
+  public static void main( String[] args )
+  {
+    if (args.length != 3)
+    {
+      System.err.println("Usage: LCFJettyRunner <port> <crawler-war-path> <authority-service-war-path>");
+      System.exit(1);
+    }
+
+    int jettyPort = 8888;
+    try
+    {
+      jettyPort = Integer.parseInt(args[0]);
+    }
+    catch (NumberFormatException e)
+    {
+      e.printStackTrace(System.err);
+      System.exit(1);
+    }
+    
+    // Ready to begin in earnest...
+    
+    
+    try
+    {
+      LCF.initializeEnvironment();
+      IThreadContext tc = ThreadContextFactory.make();
+
+      // Clear the agents shutdown signal.
+      ILockManager lockManager = LockManagerFactory.make(tc);
+      lockManager.clearGlobalFlag(agentShutdownSignal);
+
+      // Do the basic initialization of the database and its schema
+      LCF.createSystemDatabase(tc,"","");
+      LCF.installTables(tc);
+      IAgentManager mgr = AgentManagerFactory.make(tc);
+      mgr.registerAgent("org.apache.lcf.crawler.system.CrawlerAgent");
+
+      // Other code will go here to discover and register various connectors that exist in the classpath
+      // MHL
+
+      System.err.println("Starting jetty...");
+      
+      // Create a jetty instance
+      LCFJettyRunner jetty = new LCFJettyRunner(jettyPort,args[1],args[2]);
+      // This will register a shutdown hook as well.
+      jetty.start();
+
+      System.err.println("Jetty started.");
+
+      System.err.println("Starting crawler...");
+      while (true)
+      {
+        // Any shutdown signal yet?
+        if (lockManager.checkGlobalFlag(agentShutdownSignal))
+          break;
+          
+        // Start whatever agents need to be started
+        LCF.startAgents(tc);
+
+        try
+        {
+          LCF.sleep(5000);
+        }
+        catch (InterruptedException e)
+        {
+          break;
+        }
+      }
+      System.err.println("Shutting down crawler...");
+    }
+    catch (LCFException e)
+    {
+      Logging.root.error("Exception: "+e.getMessage(),e);
+      e.printStackTrace(System.err);
+      System.exit(1);
+    }
+  }
+  
+}
+
+

Propchange: incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/LCFJettyRunner.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/lcf/trunk/modules/framework/jetty-runner/org/apache/lcf/jettyrunner/LCFJettyRunner.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: incubator/lcf/trunk/modules/lib/eclipse-ecj.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/eclipse-ecj.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/eclipse-ecj.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/jasper-6.0.24.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/jasper-6.0.24.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/jasper-6.0.24.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/jasper-el-6.0.24.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/jasper-el-6.0.24.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/jasper-el-6.0.24.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/jetty-6.1.22.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/jetty-6.1.22.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/jetty-6.1.22.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/jetty-util-6.1.22.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/jetty-util-6.1.22.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/jetty-util-6.1.22.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/jsp-2.1-glassfish-9.1.1.B60.25.p2.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/jsp-2.1-glassfish-9.1.1.B60.25.p2.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/jsp-2.1-glassfish-9.1.1.B60.25.p2.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/jsp-2.1-jetty-6.1.22.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/jsp-2.1-jetty-6.1.22.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/jsp-2.1-jetty-6.1.22.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/jsp-api-2.1-glassfish-9.1.1.B60.25.p2.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/jsp-api-2.1-glassfish-9.1.1.B60.25.p2.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/jsp-api-2.1-glassfish-9.1.1.B60.25.p2.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/servlet-api-2.5-20081211.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/servlet-api-2.5-20081211.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/servlet-api-2.5-20081211.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/lcf/trunk/modules/lib/tomcat-juli-6.0.24.jar
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/lib/tomcat-juli-6.0.24.jar?rev=960092&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/lcf/trunk/modules/lib/tomcat-juli-6.0.24.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream