Skip to content
Snippets Groups Projects
Commit 7df09676 authored by david_williams's avatar david_williams
Browse files

move to unified archived repos

parent 7543de11
No related branches found
No related tags found
No related merge requests found
Showing
with 1 addition and 1318 deletions
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<!--
Configure a custom context for the html.
This context contains only a ServletHandler with a default servlet
to serve static html files and images.
-->
<Configure class="org.mortbay.jetty.handler.ContextHandler">
<Call class="org.mortbay.log.Log" name="debug"><Arg>Configure html.xml</Arg></Call>
<Set name="contextPath">/</Set>
<Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/html</Set>
<Set name="handler">
<New class="org.mortbay.jetty.handler.ResourceHandler">
<Set name="welcomeFiles">
<Array type="String">
<Item>index.html</Item>
<Item>favicon.ico</Item>
<Item>robots.txt</Item>
</Array>
</Set>
<Set name="cacheControl">max-age=60,public</Set>
</New>
</Set>
</Configure>
#!/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/ -Xms128m -Xmx350m"
#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
if [ -z "$JETTY_LOGS" ] ; then
JETTY_LOGS=$CCDIR/logs
fi
# 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
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"
<?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="jsdt-R1.2.1-M"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="jsdt-R1.3.0-I"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="patches-R1.5.5-P"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="patches-R3.0.5-P"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="patches-R3.1.2-P"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="patches-R3.2.1-P"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="wtpe4-R3.3.0-I"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="wtp-R3.2.2-M"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="wtp-R3.3.0-I"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="wtp-R3.3.0-N"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<trackingtool
projectname="wtp-R3.3.0-S"
baseurl="https://bugs.eclipse.org/"
keywords=",\["/>
<subtabs>
<subtab
class="net.sourceforge.cruisecontrol.dashboard.widgets.ErrorsAndWarningsMessagesWidget"/>
<subtab
class="net.sourceforge.cruisecontrol.dashboard.widgets.BuildOutputWidget"/>
</subtabs>
</dashboard>
\ No newline at end of file
releng.control/cc283-bin-dist-mods/html/bars.ico

1.18 KiB

releng.control/cc283-bin-dist-mods/html/coolGears.png

20.9 KiB

releng.control/cc283-bin-dist-mods/html/favicon.ico

1.18 KiB

releng.control/cc283-bin-dist-mods/html/gears.ico

894 B

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Web Tools Platform Builder</title>
</head>
<body>
<div id="logo"><img src="wtp_logo_2010.png"
alt="Web Tools Platform Builder" width="175" height="174" /></div>
<p><a href="./dashboard/tab/builds">Builds
Dashboard</a></p>
<p><a href="./cruisecontrol/index.jsp?sort=project">Classic JSP Build Status Page</a></p>
<p><a href="./documentation/">Cruisecontrol Documentation</a></p>
</body></html>
\ No newline at end of file
User-agent: *
Disallow: /
releng.control/cc283-bin-dist-mods/html/wtp_logo_2009.png

35.5 KiB

releng.control/cc283-bin-dist-mods/html/wtp_logo_2010.png

40.8 KiB

<!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>/var/cache/tomcat4/cruisecontrol</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>192.168.254.30</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>
<%--********************************************************************************
* 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.
********************************************************************************--%>
<%@ page errorPage="/error.jsp" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/cruisecontrol-jsp11.tld" prefix="cruisecontrol"%>
<%@ page import="net.sourceforge.cruisecontrol.*" %>
<%@ page import="net.sourceforge.cruisecontrol.listeners.CurrentBuildStatusListener" %>
<%@ page import="net.sourceforge.cruisecontrol.util.DateUtil" %>
<%@ page import="net.sourceforge.cruisecontrol.util.ServerNameSingleton" %>
<%@ page import="java.io.BufferedReader" %>
<%@ page import="java.io.File" %>
<%@ page import="java.io.FileReader" %>
<%@ page import="java.io.FilenameFilter" %>
<%@ page import="java.io.IOException" %>
<%@ page import="java.net.InetAddress" %>
<%@ page import="java.net.URL" %>
<%@ page import="java.text.DateFormat" %>
<%@ page import="java.text.ParseException" %>
<%@ page import="java.util.Arrays" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.Comparator" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%
final DateFormat dateTimeFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, request.getLocale());
final DateFormat dateOnlyFormat = DateFormat.getDateInstance(DateFormat.SHORT, request.getLocale());
final DateFormat timeOnlyFormat = DateFormat.getTimeInstance(DateFormat.SHORT, request.getLocale());
final DateFormat timeWithSecsOnlyFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM, request.getLocale());
final Date now = new Date();
final String dateNow = dateTimeFormat.format(now);
%>
<%
class SortableStatus implements Comparable {
private ProjectState state;
private String importance;
private int sortOrder;
public SortableStatus(ProjectState state, String importance, int sortOrder) {
this.state = state;
this.importance = importance;
this.sortOrder = sortOrder;
}
public String toString() {
return state != null ? state.getName() : "?";
}
public int getSortOrder() {
return sortOrder;
}
public int compareTo(Object other) {
SortableStatus that = (SortableStatus) other;
return this.sortOrder - that.sortOrder;
}
public String getImportance() {
return importance;
}
}
class StatusCollection {
private final Map statuses = new HashMap();
private final SortableStatus unknown = new SortableStatus(null, "dull", -1);
public void add(ProjectState state, String importance) {
statuses.put(state.getDescription(), new SortableStatus(state, importance, statuses.size()));
}
public SortableStatus get(String statusDescription) {
Object status = statuses.get(statusDescription);
if (status != null) {
return (SortableStatus) status;
}
return unknown;
}
}
%>
<%
final StatusCollection statuses = new StatusCollection();
statuses.add(ProjectState.PUBLISHING, "important");
statuses.add(ProjectState.MODIFICATIONSET, "important");
statuses.add(ProjectState.BUILDING, "important");
statuses.add(ProjectState.MERGING_LOGS, "important");
statuses.add(ProjectState.QUEUED, "normal");
statuses.add(ProjectState.WAITING, "dull");
statuses.add(ProjectState.IDLE, "dull");
statuses.add(ProjectState.PAUSED, "dull");
statuses.add(ProjectState.STOPPED, "dull");
%>
<cruisecontrol:jmxbase id="jmxBase"/>
<%
String name = System.getProperty("ccname", "");
String hostname = ServerNameSingleton.getServerName();
boolean jmxEnabled = true;
URL jmxURLPrefix = new URL(jmxBase, "invoke?operation=build&objectname=CruiseControl+Project%3Aname%3D");
final String statusFileName = application.getInitParameter("currentBuildStatusFile");
String baseURL = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ request.getContextPath() + "/";
String thisURL = request.getRequestURI();
String sort = request.getParameter("sort");
if(sort == null){
sort = "none";
}
else if (!(sort.equals("none")||sort.equals("project")||sort.equals("status")||sort.equals("last failure")||sort.equals("last successful"))){
sort = "none";
}
final Package pkg = BuildStatus.class.getPackage();
final String ccVersionString;
if (pkg != null && pkg.getImplementationVersion() != null) {
ccVersionString = pkg.getImplementationVersion();
} else {
ccVersionString = "";
}
%>
<%
class Info implements Comparable {
public static final int ONE_DAY = 1000 * 60 * 60 * 24;
private final BuildInfo latest;
private final BuildInfo lastSuccessful;
private SortableStatus status;
private Date statusSince;
private final String project;
private String progressMsg;
public Info(File logsDir, String project) throws ParseException, IOException {
this.project = project;
File projectLogDir = new File(logsDir, project);
LogFile latestLogFile = LogFile.getLatestLogFile(projectLogDir);
LogFile latestSuccessfulLogFile = LogFile.getLatestSuccessfulLogFile(projectLogDir);
if (latestLogFile != null) {
latest = new BuildInfo(latestLogFile);
} else {
latest = null;
}
if (latestSuccessfulLogFile != null) {
lastSuccessful = new BuildInfo(latestSuccessfulLogFile);
} else {
lastSuccessful = null;
}
final File statusFile = new File(projectLogDir, statusFileName);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(statusFile));
final String statusDescription = reader.readLine().replaceAll(" since", "");
status = statuses.get(statusDescription);
// statusFile mod date can be wrong, so read the status date from the statusFile contents
final String sinceString = reader.readLine();
statusSince = DateUtil.parseIso8601(sinceString);
progressMsg = reader.readLine();
}
catch (Exception e) {
status = statuses.unknown;
statusSince = now;
}
finally {
if (reader != null) {
reader.close();
}
}
}
public String getLastBuildTime() {
return getTime(latest);
}
public String getLastSuccessfulBuildTime() {
return getTime(lastSuccessful);
}
private String getTime(BuildInfo build) {
return build != null ? format(build.getBuildDate()) : "";
}
public String format(Date date) {
if (date == null) {
return "";
}
if ((now.getTime() < date.getTime())) {
return dateTimeFormat.format(date);
}
if ((now.getTime() - date.getTime()) < ONE_DAY) {
return timeOnlyFormat.format(date);
}
return dateOnlyFormat.format(date);
}
public String getStatusSince() {
return statusSince != null ? format(statusSince) : "?";
}
public String getProgressMsg() {
if (progressMsg == null) {
return null;
}
if (progressMsg.startsWith(CurrentBuildStatusListener.MSG_PREFIX_PROGRESS)) {
final int prefixLen = CurrentBuildStatusListener.MSG_PREFIX_PROGRESS.length();
final int startOfMessage = progressMsg.indexOf(" ", prefixLen);
final String msgTimeText = progressMsg.substring(prefixLen, startOfMessage);
final Date msgTime;
try {
msgTime = DateUtil.parseIso8601(msgTimeText);
} catch (ParseException e) {
return progressMsg;
}
return "(" + timeWithSecsOnlyFormat.format(msgTime) + ")" + progressMsg.substring(startOfMessage);
}
return progressMsg;
}
public boolean failed() {
return latest == null || ! latest.isSuccessful();
}
public SortableStatus getStatus() {
return status;
}
public int compareTo(Object other) {
Info that = (Info) other;
int order = this.status.compareTo(that.status);
if (order != 0) {
return order;
}
return (int) (this.statusSince.getTime() - that.statusSince.getTime());
}
public String getLabel() {
return lastSuccessful != null ? lastSuccessful.getLabel() : " ";
}
}
%>
<%
final Map sortOrders = new HashMap();
sortOrders.put("project", new Comparator() {
public int compare(Object a, Object b) {
Info infoA = (Info) a;
Info infoB = (Info) b;
return infoA.project.compareTo(infoB.project);
}
});
sortOrders.put("status", new Comparator() {
public int compare(Object a, Object b) {
Info infoA = (Info) a;
Info infoB = (Info) b;
return infoA.compareTo(infoB);
}
});
sortOrders.put("label", new Comparator() {
public int compare(Object a, Object b) {
Info infoA = (Info) a;
Info infoB = (Info) b;
return infoA.getLabel().compareTo(infoB.getLabel());
}
});
sortOrders.put("last failure", new Comparator() {
public int compare(Object a, Object b) {
Info infoA = (Info) a;
Info infoB = (Info) b;
if (infoA.latest == null) {
return 1;
}
if (infoB.latest == null) {
return -1;
}
if (infoA.failed() != infoB.failed()) {
return infoA.failed() ? -1 : 1;
}
return infoB.latest.compareTo(infoA.latest);
}
});
sortOrders.put("last successful", new Comparator() {
public int compare(Object a, Object b) {
Info infoA = (Info) a;
Info infoB = (Info) b;
if (infoA.lastSuccessful == null) {
return 1;
}
if (infoB.lastSuccessful == null) {
return -1;
}
return infoB.lastSuccessful.compareTo(infoA.lastSuccessful);
}
});
%>
<html>
<head>
<title><%= name%> CruiseControl at <%= hostname %></title>
<base href="<%=baseURL%>"/>
<link type="application/rss+xml" rel="alternate" href="rss" title="RSS"/>
<link type="text/css" rel="stylesheet" href="css/cruisecontrol.css"/>
<META HTTP-EQUIV="Refresh" CONTENT="10" URL="<%=thisURL%>?sort=<%=sort%>">
<style type="text/css">
thead td {
padding: 2 5
}
.data {
padding: 2 5
}
.date {
text-align: right;
}
.status-important {
font-weight: bold;
}
.status-normal {
}
.status-dull {
font-style: italic;
}
.failure {
color: red;
font-weight: bold
}
.currently-failing {
color: red;
font-weight: bold
}
.currently-passing {
color: gray;
}
a.sort {
color: firebrick;
}
a.sorted {
color: darkblue;
}
.odd-row {
background-color: #CCCCCC;
}
/*.even-row {
background-color: #FFFFCC;
}*/
.header-row {
background-color: white;
color: darkblue;
}
</style>
<script language="JavaScript">
function callServer(url, projectName) {
document.getElementById('serverData').innerHTML = '<iframe src="' + url + '" width="0" height="0" frameborder="0"></iframe>';
alert('Scheduling build for ' + projectName);
}
function checkIframe(stylesheetURL) {
if (top != self) {//We are being framed!
//For Internet Explorer
if (document.createStyleSheet) {
document.createStyleSheet(stylesheetURL);
}
else { //Non-ie browsers
var styles = "@import url('" + stylesheetURL + "');";
var newSS = document.createElement('link');
newSS.rel = 'stylesheet';
newSS.href = 'data:text/css,' + escape(styles);
document.getElementsByTagName("head")[0].appendChild(newSS);
}
}
}
</script>
</head>
<body onload="checkIframe('<%=baseURL + "css/cruisecontrol.css"%>')">
<div class="header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div class="logo"><a href="http://www.eclipse.org/webtools/"><img alt="Web Tools Platform Builder" src="images/wtp_logo_2010.png"/></a></div>
</td>
<td style="text-align:right;vertical-align:bottom">
<div class="modifications-data" align=right align=top font=10><%=ccVersionString%></div>
</td>
</tr>
</table>
</div>
<div class="container">&nbsp;
<div class="content">
<h1 align="center"><%= name%><%= hostname %> [<%= dateNow %>]</h1>
<div id="serverData" class="hidden"></div>
<form>
<table class="index" width="100%">
<%
String logDirPath = application.getInitParameter("logDir");
if (logDirPath == null) {
%>
<tr>
<td>You need to provide a value for the context parameter <code>&quot;logDir&quot;</code></td>
</tr>
<%
}
else {
java.io.File logDir = new java.io.File(logDirPath);
if (!logDir.isDirectory()) {
%>
<tr>
<td>Context parameter logDir needs to be set to a directory. Currently set to &quot;<%=logDirPath%>&quot;</td>
</tr>
<%
}
else {
FilenameFilter directoryFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return (new File(dir, name).isDirectory());
}
};
String[] projectDirs = logDir.list(directoryFilter);
if (projectDirs.length == 0) {
%><tr><td>no project directories found under <%=logDirPath%></td></tr><%
}
else {
%> <thead class="index-header">
<tr class="header-row">
<td><a class='<%= "project".equals(sort) ? "sort" : "sorted" %>' href="<%=thisURL%>?sort=project">Project</a></td>
<td><a class="<%= "status".equals(sort) ? "sort" : "sorted" %>" href="<%=thisURL%>?sort=status">Status <em>(since)</em></a></td>
<td><a class="<%= "last failure".equals(sort) ? "sort" : "sorted" %>" href="<%=thisURL%>?sort=last failure">Last failure</a></td>
<td><a class="<%= "last successful".equals(sort) ? "sort" : "sorted" %>" href="<%=thisURL%>?sort=last successful">Last successful</a></td>
<td>Label</td>
<% if (jmxEnabled) { %>
<td></td>
<% } //end if jmxEnabled %>
</tr>
</thead>
<tbody>
<%
Info[] info = new Info[projectDirs.length];
for (int i = 0; i < info.length; i++) {
info[i] = new Info(logDir, projectDirs[i]);
}
Comparator order = (Comparator) sortOrders.get(sort);
if (order == null) {
Arrays.sort(info);
}
else {
Arrays.sort(info, order);
}
for (int i = 0; i < info.length; i++) {
final String progressMsg = info[i].getProgressMsg();
%>
<tr class="<%= (i % 2 == 1) ? "even-row" : "odd-row" %> ">
<td class="data"><a href="buildresults/<%=info[i].project%>"><%=info[i].project%></a></td>
<td class="data date status-<%= info[i].getStatus().getImportance() %>" <%= (progressMsg != null) ? "title='" + progressMsg + "'" : "" %> ><%= info[i].getStatus()%> <em>(<%= info[i].getStatusSince() %>)</em></td>
<td class="data date failure"><%= (info[i].failed()) ? info[i].getLastBuildTime() : "" %></td>
<td class="data date"><%= info[i].getLastSuccessfulBuildTime() %></td>
<td class="data"><%= info[i].getLabel()%></td>
<% if (jmxEnabled) { %>
<td class="data"><input id="<%= "force_" + info[i].project %>" type="button"
onclick="callServer('<%= jmxURLPrefix.toExternalForm() + info[i].project %>', '<%=info[i].project%>')"
value="Build"/></td>
<% } %>
</tr>
</tbody>
<%
}
}
}
}
%>
<tfoot>
<tr>
<td colspan="6" align="left"><a href="rss"><img src="images/rss.png"/></a></td>
</tr>
</tfoot>
</table>
</form>
</div>
</div>
</body>
</html>
<%--********************************************************************************
* 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.
********************************************************************************--%>
<%@page contentType="text/html; charset=utf-8"%>
<%@page errorPage="/error.jsp"%>
<%@ taglib uri="/WEB-INF/cruisecontrol-jsp11.tld" prefix="cruisecontrol"%>
<%
String rmiPort = System.getProperty("cruisecontrol.rmiport");
boolean rmiEnabled = rmiPort != null;
String ccname = System.getProperty("ccname", "");
String project = request.getPathInfo().substring(1);
final Package pkg = BuildStatus.class.getPackage();
final String ccVersionString;
if (pkg != null && pkg.getImplementationVersion() != null) {
ccVersionString = pkg.getImplementationVersion();
} else {
ccVersionString = "";
}
%>
<html>
<head>
<title><%= ccname%> CruiseControl Build Results</title>
<base href="<%=request.getScheme()%>://<%=request.getServerName()%>:<%=request.getServerPort()%><%=request.getContextPath()%>/" />
<link type="text/css" rel="stylesheet" href="css/cruisecontrol.css"/>
<link type="application/rss+xml" rel="alternate" href="<%= request.getContextPath() %>/rss/<%= project %>" title="RSS"/>
</head>
<body>
<div class="header">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<img alt="Web Tools Platform Builder" src="images/wtp_logo_2010.png"/></div>
</td>
<td style="text-align:right;vertical-align:bottom">
<div class="modifications-data" align=right align=top font=10><%=ccVersionString%></div>
</td>
</tr>
</table>
</div>
<div class="container">&nbsp;
<%@ include file="navigation.jsp" %>
<div class="content main">
<cruisecontrol:tabsheet>
<cruisecontrol:tab name="buildResults" label="Build Results" >
<%@ include file="buildresults.jsp" %>
</cruisecontrol:tab>
<cruisecontrol:tab name="testResults" label="Test Results" >
<%@ include file="testdetails.jsp" %>
</cruisecontrol:tab>
<cruisecontrol:loglink id="logs_url"/>
<cruisecontrol:tab name="log" url="<%=logs_url%>" label="XML Log File" />
<cruisecontrol:tab name="metrics" label="Metrics" >
<%@ include file="metrics.jsp" %>
</cruisecontrol:tab>
<% if (rmiEnabled) { %>
<cruisecontrol:tab name="config" label="Config">
<iframe src="config.jspa?project=<%= project %>" width="90%"
height="600" frameborder="0"></iframe>
</cruisecontrol:tab>
<% } %>
<cruisecontrol:tab name="controlPanel" label="Control Panel" >
<%@ include file="controlpanel.jsp" %>
</cruisecontrol:tab>
<%--
<cruisecontrol:tabrow/>
<cruisecontrol:tab name="checkstyle" label="CheckStyle">
<%@ include file="checkstyle.jsp" %>
</cruisecontrol:tab>
<cruisecontrol:tab name="pmd" label="PMD">
<%@ include file="pmd.jsp" %>
</cruisecontrol:tab>
--%>
</cruisecontrol:tabsheet>
</div>
</div>
</body>
</html>
<div id="header">
<div id="menu">
<div id="pageTitle">
Dashboard Server : $serverName
</div>
<div id="logo">
<img src="$req.getContextPath()/images/wtp_logo_2010.png" alt="Web Tools Platform Builder" width="175" height="174"/>
</div>
<ul>
<li id="dashboard" class='dynamic_width round_top $!tabheader1_class'>
<a href="$req.getContextPath()/tab/dashboard"><span>Dashboard</span></a>
</li>
<li id="builds" class='dynamic_width round_top $!tabheader2_class'>
<a href="$req.getContextPath()/tab/builds"><span>Builds</span></a>
</li>
<li id="administation" class="dynamic_width round_top $!tabheader3_class" style="float:right">
<a href="$req.getContextPath()/admin/config" ><span>Administration</span></a>
</li>
</ul>
</div>
<div id="menu_bottom">
</div>
</div>
<div id="content">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<link href="$req.getContextPath()/css/main.css" rel="stylesheet" type="text/css"></link>
<!--[if lte IE 7]>
<link href="$req.getContextPath()/css/ie_hacks.css" rel="stylesheet" type="text/css"></link>
<![endif]-->
<link href="$req.getContextPath()/css/niftyCorners.css" rel="stylesheet" type="text/css"></link>
#foreach( $cssFile in $cssFiles )
<link href="$req.getContextPath()/$cssFile" rel="stylesheet" type="text/css"/>
#end
<script type="text/javascript">
var contextPath = "$req.getContextPath()"
var global_force_build_enabled = $global_force_build_enabled
</script>
<script src="$req.getContextPath()/compressed/all.js" type="text/javascript"></script>
<title>Web Tools Platform - $currentTab.name</title>
</head>
<body>
#macro(iscurrenttab $_tabName)#if($_tabName == $currentTab.name)currenttab#end#end
<div id="header">
<div id="menu">
<div id="pageTitle">
Dashboard Server : $serverName
</div>
<div id="logo">
<img src="$req.getContextPath()/images/wtp_logo_2010.png" alt="Web Tools Platform Builder" width="175" height="174"/>
</div>
<ul>
#foreach($tab in $tabs)
<li id="$tab.name.toLowerCase()" class='dynamic_width round_top #iscurrenttab($tab.name)'>
<a href="$req.getContextPath()/tab/$tab.link"><span>$tab.name</span></a>
</li>
#end
<li id="administation" class="dynamic_width round_top #iscurrenttab('administration')" style="float:right">
<a href="$req.getContextPath()/admin/config" ><span>Administration</span></a>
</li>
</ul>
</div>
<div id="menu_bottom">
</div>
</div>
<div id="content">
\ No newline at end of file
releng.control/cc283-bin-dist-mods/webapps/dashboard/images/wtp_logo_2010.png

40.8 KiB

...@@ -39,7 +39,7 @@ export JAVA_6_HOME=/shared/webtools/apps/ibm-java-sdk-6.0-8.1-linux-i386 ...@@ -39,7 +39,7 @@ export JAVA_6_HOME=/shared/webtools/apps/ibm-java-sdk-6.0-8.1-linux-i386
#export CCDIR=/shared/webtools/apps/cruisecontrol-bin-2.8.3-dev-c-eclipse.build-webtools #export CCDIR=/shared/webtools/apps/cruisecontrol-bin-2.8.3-dev-c-eclipse.build-webtools
#export CCDIR=/shared/webtools/apps/cruisecontrol-bin-2.8.4-rc2 #export CCDIR=/shared/webtools/apps/cruisecontrol-bin-2.8.4-rc2
export CCDIR=/shared/webtools/apps/cruisecontrol-bin-2.8.4-rc2 export CCDIR=/shared/webtools/apps/cruisecontrol-bin-2.8.4
export BASEOS=linux export BASEOS=linux
export BASEWS=gtk export BASEWS=gtk
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment