diff --git a/releng.control/cc273-bin-dist-mods/cruisecontrol.sh b/releng.control/cc273-bin-dist-mods/cruisecontrol.sh
index dfec4c5..74ff838 100644
--- a/releng.control/cc273-bin-dist-mods/cruisecontrol.sh
+++ b/releng.control/cc273-bin-dist-mods/cruisecontrol.sh
@@ -75,6 +75,8 @@
 # Note that the tmp directory must exist before CC needs it
 mkdir -p $CCDIR/tmp/
 CC_OPTS="-Djava.io.tmpdir=$CCDIR/tmp/ -Xms256m -Xmx1024m"
+#CC_OPTS="-Xms256m -Xmx1024m"
+echo "    starting cruisecontrol.sh"
 
 #--------------------------------------------
 # set JAVA_HOME on Mac OSX
@@ -108,9 +110,13 @@
 #echo $EXEC
 #$JAVA_HOME/bin/java $CC_OPTS -Djavax.management.builder.initial=mx4j.server.MX4JMBeanServerBuilder "-Dcc.library.dir=$LIBDIR" -jar "$LAUNCHER" $@ -jmxport 8000 -webport 8080 -rmiport 1099 &
 
+mkdir -P $CCDIR/logs
 DASHBOARD_CONFIG=${CCDIR}/dashboard-config.xml
+
 EXEC="$JAVA_HOME/bin/java $CC_OPTS -Ddashboard.config=${DASHBOARD_CONFIG}  -Djavax.management.builder.initial=mx4j.server.MX4JMBeanServerBuilder -Dcc.library.dir=$LIBDIR -jar $LAUNCHER $@ "
-echo $EXEC
+echo "Full command: '$EXEC'"
 $EXEC &
 
 echo $! > cc.pid
+echo "    ending cruisecontrol.sh"
+
diff --git a/releng.control/cc273-bin-dist-mods/webapps/cruisecontrol/WEB-INF/web.xml b/releng.control/cc273-bin-dist-mods/webapps/cruisecontrol/WEB-INF/web.xml
index 2167f03..78da0a4 100644
--- a/releng.control/cc273-bin-dist-mods/webapps/cruisecontrol/WEB-INF/web.xml
+++ b/releng.control/cc273-bin-dist-mods/webapps/cruisecontrol/WEB-INF/web.xml
@@ -116,13 +116,15 @@
     </context-param>
     -->
 
+    <!--
     <context-param>
         <param-name>xslt.viewcvs.url</param-name>
-        <param-value>http://dev.eclipse.org/viewcvs/index.cgi/?root=WebTools_Project</param-value>
+      <param-value>http://cvs.sourceforge.net/viewcvs.py/cruisecontrol</param-value>
         <description>The URL of the ViewCVS website used by cvstagdiff.xsl, checkstyle-details.xsl
             and pmd-details.xsl
         </description>
     </context-param>
+    -->
 
     <context-param>
         <param-name>xslt.cvstagdiff.success.show</param-name>
@@ -169,7 +171,7 @@
         <servlet-class>net.sourceforge.cruisecontrol.servlet.FileServlet</servlet-class>
         <init-param>
             <param-name>rootDir</param-name>
-            <param-value>artifacts</param-value>
+            <param-value>committers</param-value>
         </init-param>
     </servlet>
 
diff --git a/releng.control/cc280-bin-dist-mods/cruisecontrol.sh b/releng.control/cc280-bin-dist-mods/cruisecontrol.sh
new file mode 100644
index 0000000..8e3c340
--- /dev/null
+++ b/releng.control/cc280-bin-dist-mods/cruisecontrol.sh
@@ -0,0 +1,122 @@
+#!/usr/bin/env bash
+
+################################################################################
+# CruiseControl, a Continuous Integration Toolkit
+# Copyright (c) 2001, ThoughtWorks, Inc.
+# 200 E. Randolph, 25th Floor
+# Chicago, IL 60601 USA
+# 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.
+#
+#     + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
+#       names of its contributors may be used to endorse or promote
+#       products derived from this software without specific prior
+#       written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+# CONTRIBUTORS 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.
+################################################################################
+
+# CCDIR: The root of the CruiseControl directory.
+# The key requirement is that this is the parent
+# directory of CruiseControl's lib and dist directories.
+
+# in WTP we set and pass in CCDIR from cc.sh
+  echo Using Cruise Control at $CCDIR
+
+if [ -z "$CCDIR" ] ; then
+  # resolve links - $0 may be a softlink
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG=`dirname "$PRG"`"/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  CCDIR=`dirname "$PRG"`
+
+  # make it fully qualified
+  CCDIR=`cd "$CCDIR" && pwd`
+
+  cd $saveddir
+  echo Using Cruise Control at $CCDIR
+fi
+
+# Uncomment the following line if you have OutOfMemoryError errors
+# CC_OPTS="-Xms128m -Xmx256m"
+# Note that the tmp directory must exist before CC needs it
+mkdir -p $CCDIR/tmp/
+CC_OPTS="-Djava.io.tmpdir=$CCDIR/tmp/ -Xms256m -Xmx1024m"
+#CC_OPTS="-Xms256m -Xmx1024m"
+echo "    starting cruisecontrol.sh"
+
+#--------------------------------------------
+# set JAVA_HOME on Mac OSX
+#--------------------------------------------
+case "`uname`" in
+  Darwin*)
+    if [ -z "$JAVA_HOME" ] ; then
+      JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
+    fi
+    ;;
+esac
+
+LIBDIR=$CCDIR/lib
+LAUNCHER=$LIBDIR/cruisecontrol-launcher.jar
+
+# convert the existing path to unix
+if [ `uname | grep -n CYGWIN` ]; then
+   JAVA_HOME=`cygpath --path --unix "$JAVA_HOME"`
+fi
+
+# convert the existing path to unix
+if [ `uname | grep -n CYGWIN` ]; then
+  CRUISE_PATH=`cygpath --path --windows "$CRUISE_PATH"`
+fi
+
+if [ `uname | grep -n CYGWIN` ]; then
+  LAUNCHER=`cygpath --windows "$LAUNCHER"`
+fi
+
+#EXEC="$JAVA_HOME/bin/java $CC_OPTS -Djavax.management.builder.initial=mx4j.server.MX4JMBeanServerBuilder -Dcc.library.dir=$LIBDIR -jar $LAUNCHER $@ -jmxport 8000 -webport 8080 -rmiport 1099"
+#echo $EXEC
+#$JAVA_HOME/bin/java $CC_OPTS -Djavax.management.builder.initial=mx4j.server.MX4JMBeanServerBuilder "-Dcc.library.dir=$LIBDIR" -jar "$LAUNCHER" $@ -jmxport 8000 -webport 8080 -rmiport 1099 &
+
+mkdir -P $CCDIR/logs
+DASHBOARD_CONFIG=${CCDIR}/dashboard-config.xml
+
+EXEC="$JAVA_HOME/bin/java $CC_OPTS -Djetty.logs=$CCDIR/logs -Ddashboard.config=${DASHBOARD_CONFIG}  -Djavax.management.builder.initial=mx4j.server.MX4JMBeanServerBuilder -Dcc.library.dir=$LIBDIR -jar $LAUNCHER $@ "
+echo "Full command: '$EXEC'"
+$EXEC &
+
+echo $! > cc.pid
+echo "    ending cruisecontrol.sh"
+
diff --git a/releng.control/cc280-bin-dist-mods/dashboard-config.xml b/releng.control/cc280-bin-dist-mods/dashboard-config.xml
new file mode 100644
index 0000000..4725c14
--- /dev/null
+++ b/releng.control/cc280-bin-dist-mods/dashboard-config.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/********************************************************************************
+ * CruiseControl, a Continuous Integration Toolkit
+ * Copyright (c) 2007, ThoughtWorks, Inc.
+ * 200 E. Randolph, 25th Floor
+ * Chicago, IL 60601 USA
+ * 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.
+ *
+ *     + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
+ *       names of its contributors may be used to endorse or promote
+ *       products derived from this software without specific prior
+ *       written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+ * CONTRIBUTORS 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.
+ ********************************************************************************/
+ -->
+
+ <!--
+ <dashboard>
+ 	<buildloop
+	    logsdir=""
+      	    artifactsdir="" />
+	<features allowforcebuild=""/>
+	<trackingtool projectname="" baseurl="" keywords=""/>
+ 	<subtabs>
+	    <subtab class="net.sourceforge.cruisecontrol.dashboard.widgets.ErrorsAndWarningsMessagesWidget" />
+	</subtabs>
+</dashboard>
+-->
+
+<dashboard>
+    <buildloop
+        home="/shared/webtools/"
+        configfile="/shared/webtools/releng.control/cc_config.xml"
+        logsdir="/shared/webtools/logs"
+        artifactsdir="/shared/webtools/committers"
+        projectsdir="/shared/webtools/projects"
+        jmxport="7000"
+        rmiport="1099"/>
+    <features
+        allowforcebuild="true"
+        alloweditconfig="false" />
+    <trackingtool
+        projectname="wtp-R3.0-I"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="wtp-R3.0-M"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="wtp-R3.0-R"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="wtp-R3.0-S"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="wtp-R2.0-M"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="wtp-R2.0-R"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="incubator-R0.5-S"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="incubator-R0.5-I"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="patches-R1.5-P"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <trackingtool
+        projectname="patches-R2.0-P"
+        baseurl="https://bugs.eclipse.org/"
+        keywords=",\[" />
+    <subtabs>
+        <subtab
+            class="net.sourceforge.cruisecontrol.dashboard.widgets.ErrorsAndWarningsMessagesWidget" />
+    </subtabs>
+</dashboard>
diff --git a/releng.control/cc280-bin-dist-mods/webapps/cruisecontrol/WEB-INF/web.xml b/releng.control/cc280-bin-dist-mods/webapps/cruisecontrol/WEB-INF/web.xml
new file mode 100644
index 0000000..cb72a6c
--- /dev/null
+++ b/releng.control/cc280-bin-dist-mods/webapps/cruisecontrol/WEB-INF/web.xml
@@ -0,0 +1,259 @@
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
+    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
+
+<!--********************************************************************************
+ * CruiseControl, a Continuous Integration Toolkit
+ * Copyright (c) 2001, ThoughtWorks, Inc.
+ * 200 E. Randolph, 25th Floor
+ * Chicago, IL 60601 USA
+ * 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.
+ *
+ *     + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
+ *       names of its contributors may be used to endorse or promote
+ *       products derived from this software without specific prior
+ *       written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+ * CONTRIBUTORS 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.
+ ********************************************************************************-->
+<web-app>
+    <display-name>CruiseControl Reporting App</display-name>
+    <description>The reporting application for CruiseControl. Provides a simple but rich
+        interface for viewing CruiseControl build reports.
+    </description>
+
+    <context-param>
+        <param-name>singleProject</param-name>
+        <param-value>false</param-value>
+        <description>Indicates if the CruiseControl instance is to report on only one project.
+            If it is, then you should set this to true.
+        </description>
+    </context-param>
+    
+    <context-param>
+        <param-name>cacheRoot</param-name>
+        <param-value>/shared/webtools/logcache</param-value>
+        <description>Full path to a directory where caches of XSL transformations are written.
+            The web context must have permission to write to this directory. If not
+            specified, caches will be written in a subdir called _cache of the logDir.
+        </description>
+    </context-param>
+    
+    <context-param>
+      <!-- You can set this value via the user.log.dir property in Ant, when building the WAR file. -->
+      <param-name>logDir</param-name>
+        <param-value>/shared/webtools/logs</param-value>
+      <description> This should be the full path to your CruiseControl log directory. If you
+          are in single project mode, this will contain only the logs for your project. If you
+          are in multi-project mode, it is expected that you will have multiple sub-directories
+          inside this log directory, one for each project.
+      </description>
+    </context-param>
+
+    <context-param>
+      <!-- You can set this value via the user.build.status.file property in Ant, when building the WAR file. -->
+      <param-name>currentBuildStatusFile</param-name>
+      <param-value>status.txt</param-value>
+      <description>This should be the path to your current build status file, which is relative
+          to the log directory (or, in single-project mode, relative to the project's log
+          directory)
+      </description>
+    </context-param>
+
+    <context-param>
+      <param-name>fileServlet.welcomeFiles</param-name>
+      <param-value>index.htm index.html</param-value>
+      <description>The list of space separated index files that should be automatically displayed
+          when browsing a directory displayed by the file servlet. The order matters.
+          Let empty or comment out to disable indexes.
+      </description>
+    </context-param>
+
+    <context-param>
+      <param-name>cruisecontrol.jmxport</param-name>
+        <param-value>7000</param-value>
+      <description>The port on which CruiseControl will connect to the JMX HttpAdaptor to "force" builds or view the
+          control panel. This value can be overriden using an environment variable with the same name.
+      </description>
+    </context-param>
+
+               
+    <context-param>
+      <param-name>cruisecontrol.jmxhost</param-name>
+        <param-value>206.191.52.34</param-value>
+      <description>If your server doesn't know it's own proper IP address or it's name isn't resolvable by other machines on the network, set the IP address or resolvable name here. This will enable things like the "Force Builds" button to work.
+                       </description>
+    </context-param>
+               
+
+    <!--
+    <context-param>
+      <param-name>xslt.pmd.warning.threshold</param-name>
+      <param-value>3</param-value>
+      <description>PMD violations with a priority below this threshold are considered warnings and
+          are only reported by the total count on the build results page.
+      </description>
+    </context-param>
+    -->
+
+    <!--
+    <context-param>
+      <param-name>xslt.viewcvs.url</param-name>
+      <param-value>http://cvs.sourceforge.net/viewcvs.py/cruisecontrol</param-value>
+      <description>The URL of the ViewCVS website used by cvstagdiff.xsl, checkstyle-details.xsl
+          and pmd-details.xsl
+      </description>
+    </context-param>
+    -->
+
+
+    <context-param>
+      <param-name>xslt.cvstagdiff.success.show</param-name>
+      <param-value>true</param-value>
+      <description>Controls whether the ViewCVS differences report should be shown when the build
+          was successful. The default is to only show the modifications report for broken builds
+      </description>
+    </context-param>
+
+    
+    <!--
+    <context-param>
+      <param-name>xslt.checkstyle.hide.warnings</param-name>
+      <param-value>true</param-value>
+      <description>Controls whether only CheckStyle errors or all CheckStyle errors and warnings
+          should be listed on the build results page. Set to 'true' for hiding the warnings. The
+          default is to list all errors and warnings
+      </description>
+    </context-param>
+    -->
+
+    <servlet>
+      <servlet-name>buildresults</servlet-name>
+      <display-name>Build Result Reporter</display-name>
+      <description>Presents build results in a human-readable and intuitive format.</description>
+      <jsp-file>/main.jsp</jsp-file>
+    </servlet>
+
+    <servlet>
+      <servlet-name>rss</servlet-name>
+      <display-name>Build Result RSS Feed</display-name>
+      <description>Presents build results in the RSS XML format.</description>
+      <jsp-file>/rss.jsp</jsp-file>
+    </servlet>
+
+    <servlet>
+        <servlet-name>index</servlet-name>
+        <display-name>Index/Summary page</display-name>
+        <description>Presents a summary of all projects, allowing easy navigation to each.</description>
+        <jsp-file>/index.jsp</jsp-file>
+    </servlet>
+
+    <servlet>
+        <servlet-name>ArtifactServlet</servlet-name>
+        <servlet-class>net.sourceforge.cruisecontrol.servlet.FileServlet</servlet-class>
+        <init-param>
+            <param-name>rootDir</param-name>
+            <param-value>committers</param-value>
+        </init-param>
+    </servlet>
+
+    <servlet>
+      <servlet-name>XmlServlet</servlet-name>
+      <servlet-class>net.sourceforge.cruisecontrol.servlet.XmlServlet</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>LogServlet</servlet-name>
+        <servlet-class>net.sourceforge.cruisecontrol.servlet.LogFileServlet</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>webwork</servlet-name>
+        <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>config</servlet-name>
+        <display-name>Project configuration UI</display-name>
+        <description>Wraps webwork configuration actions inside main page.</description>
+        <jsp-file>/main.jsp</jsp-file>
+    </servlet>
+
+    <!-- Used for charting...
+    <servlet>
+        <servlet-name>CewolfServlet</servlet-name>
+        <servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>CewolfServlet</servlet-name>
+        <url-pattern>/cewolf/*</url-pattern>
+    </servlet-mapping>
+    -->
+    <servlet-mapping>
+        <servlet-name>LogServlet</servlet-name>
+        <url-pattern>/logs/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>ArtifactServlet</servlet-name>
+        <url-pattern>/committers/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+      <servlet-name>buildresults</servlet-name>
+      <!-- Strictly speaking, this should be /buildresults for single-project mode. But it works anyway. -->
+      <url-pattern>/buildresults/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>webwork</servlet-name>
+        <url-pattern>*.jspa</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>config</servlet-name>
+        <url-pattern>/config/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+      <servlet-name>rss</servlet-name>
+      <url-pattern>/rss/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>XmlServlet</servlet-name>
+        <url-pattern>/xml/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>index</servlet-name>
+        <url-pattern>/index</url-pattern>
+    </servlet-mapping>
+
+    <welcome-file-list>
+      <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+</web-app>
