You are viewing a plain text version of this content. The canonical link for it is here.
Posted to alexandria-dev@jakarta.apache.org by ru...@apache.org on 2001/09/24 03:04:24 UTC
cvs commit: jakarta-alexandria/proposal/gump/site/xdocs/stylesheets project.xml site.vsl templates.vm
rubys 01/09/23 18:04:24
Added: proposal/gump/site build.properties build.xml
proposal/gump/site/xdocs bench.svg index.xml status.xml
velocity.properties
proposal/gump/site/xdocs/stylesheets project.xml site.vsl
templates.vm
Log:
Rough in a web site. First installment of many...
Revision Changes Path
1.1 jakarta-alexandria/proposal/gump/site/build.properties
Index: build.properties
===================================================================
#
# Use this file to override where to find dependencies
#
#
# Specify the location of jakarta-site2. The easiest way to obtain this
# is to check it out from jakarta. See
# http://jakarta.apache.org/site/jakarta-site2.html for details.
#
# site2.dir = ../../../jakarta-site2
#
# Specify the location of batik. The latest release can be downloaded
# from http://xml.apache.org/batik/dist/ . The latest release from
# cvs will also work.
#
# batik.dir = ../../../xml-batik
1.1 jakarta-alexandria/proposal/gump/site/build.xml
Index: build.xml
===================================================================
<!--
Build's Gump's web presence. Depends on jakarta-site2 and xml-batik.
See build.properties for details.
-->
<project name="gump-site" default="all" basedir=".">
<!-- Give user a chance to override without editing this file
(and without typing -D each time it compiles it) -->
<property file="build.properties" />
<property file="${user.home}/build.properties" />
<!-- Initialize properties -->
<property name="project.name" value="gump-site"/>
<property name="docs.src" location="xdocs"/>
<property name="docs.dest" location="docs"/>
<property name="project.file" value="stylesheets/project.xml" />
<property name="site.dir" location="../jakarta-site2" />
<property name="batik.dir" location="../xml-batik" />
<property name="templ.path" location="${docs.src}/stylesheets" />
<property name="velocity.props" location="${docs.src}/velocity.properties"/>
<!-- Add jakarta-site2 and batik jars to the classpath -->
<path id="classpath">
<pathelement path="${java.class.path}" />
<fileset dir="${site.dir}/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${batik.dir}/lib">
<include name="batik-rasterizer.jar"/>
</fileset>
</path>
<!-- Determine what jars are present -->
<target name="setenv">
<available classname="org.apache.velocity.anakia.AnakiaTask"
property="AnakiaTask.present">
<classpath refid="classpath"/>
</available>
<available classname="org.apache.batik.apps.rasterizer.Main"
property="Rasterizer.present">
<classpath refid="classpath"/>
</available>
<condition property="Rasterizer.required">
<and>
<available classname="org.apache.batik.apps.rasterizer.Main">
<classpath refid="classpath"/>
</available>
<not>
<uptodate targetfile="${docs.dest}/images/bench.png">
<srcfiles dir="${docs.src}" includes="bench.svg"/>
</uptodate>
</not>
</and>
</condition>
<echo message="--- Build environment for ${project.name} ---" />
<echo message="--- Flags (Note: If the {property name} is displayed, "/>
<echo message=" then the component is not present)" />
<echo message=""/>
<echo message="AnakiaTask.present=${AnakiaTask.present}" />
<echo message="Rasterizer.present=${Rasterizer.present}" />
</target>
<!-- Produce the web site if Anakia is present -->
<target name="docs" depends="setenv" if="AnakiaTask.present">
<taskdef name="anakia" reverseloader="true"
classname="org.apache.velocity.anakia.AnakiaTask">
<classpath refid="classpath"/>
</taskdef>
<anakia basedir="${docs.src}" destdir="${docs.dest}/"
extension=".html" style="./site.vsl"
projectFile="${project.file}"
excludes="**/stylesheets/**"
includes="**/*.xml"
lastModifiedCheck="true"
templatePath="${templ.path}"
velocityPropertiesFile="${velocity.props}">
</anakia>
</target>
<!-- Produce the Gump icon if out of date and batik present -->
<target name="png" depends="setenv" if="Rasterizer.required">
<mkdir dir="${docs.dest}/images"/>
<copy file="${batik.dir}/samples/asf-logo.svg" todir="${docs.src}"/>
<java fork="yes" classname="org.apache.batik.apps.rasterizer.Main">
<arg value="${docs.src}/bench.svg"/>
<arg value="-d"/> <arg value="${docs.dest}/images"/>
</java>
</target>
<!-- All ::= docs + png -->
<target name="all" depends="docs,png"/>
<!-- Clean all files produced during the build process -->
<target name="clean">
<delete dir="${docs.dest}"/>
<delete file="${docs.src}/asf-logo.svg"/>
<delete file="velocity.log"/>
</target>
</project>
1.1 jakarta-alexandria/proposal/gump/site/xdocs/bench.svg
Index: bench.svg
===================================================================
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg id="body" width="200" height="100" viewBox="0 0 300 250">
<title>Bench, Forest Gump</title>
<defs>
<g id="post">
<rect width="20" height="150" style="fill:rgb(208,196,192)"/>
<path d="M0,0 l3-3 h20 l-3,3 Z" style="fill:rgb(156,147,144)" />
<path d="M20,0 l3-3 v150 l-3,3 Z" style="fill:rgb(104,98,96)" />
</g>
<g id="foot">
<rect width="20" height="10" style="fill:rgb(208,196,192)"/>
<path d="M0,0 l30-30 h20 l-30,30 Z" style="fill:rgb(156,147,144)" />
<path d="M20,0 l30-30 v10 l-30,30 Z" style="fill:rgb(104,98,96)" />
</g>
<g id="back">
<rect width="300" height="10" style="fill:rgb(120,60,30)" />
<path d="M0,0 l3-3 h300 l-3,3 Z" style="fill:rgb(90,45,20)" />
<path d="M300,0 l3-3 v10 l-3,3 Z" style="fill:rgb(60,30,10)" />
</g>
<g id="seat">
<rect width="300" height="5" style="fill:rgb(120,60,30)" />
<path d="M0,0 l5-5 h300 l-5,5 Z" style="fill:rgb(90,45,20)" />
<path d="M300,0 l5-5 v5 l-5,5 Z" style="fill:rgb(60,30,10)" />
</g>
<g id="box">
<title>Box of Chocolates</title>
<rect width="45" height="15" style="fill:rgb(240,240,255)"/>
<path d="M0,0 l25-25 h45 l-25,25 Z" style="fill:rgb(220,220,240)" />
<path d="M45,0 l25-25 v15 l-25,25 Z" style="fill:rgb(200,200,220)" />
<rect x="20" width="5" height="15" style="fill:rgb(255,0,0)"/>
<path d="M20,0 l25-25 h5 l-25,25 Z" style="fill:rgb(255,32,32)" />
<path d="M10,-10 l5-5 h45 l-5,5 Z" style="fill:rgb(255,32,32)" />
<path d="M55,-10 l5-5 v15 l-5,5 Z" style="fill:rgb(255,64,64)" />
<path d="M35,-10 s-40,-30 0,-6 M35,-10 s60,-30 0,-6"
style="fill:none; stroke:red; stroke-width:2" />
</g>
</defs>
<filter id="MyFilter">
<desc>Produces a 3D lighting effect.</desc>
<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
<feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
<feComposite in="blur" in2="SourceAlpha" operator="in" result="blur"/>
<feComposite in="SourceGraphic" in2="blur" operator="arithmetic"
k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
<feMerge>
<feMergeNode in="offsetBlur"/>
<feMergeNode in="litPaint"/>
</feMerge>
</filter>
<g style="filter:url(#MyFilter)">
<title>Bench</title>
<use xlink:href="#foot" x="56.5" y="213.5"/>
<use xlink:href="#foot" x="276.5" y="213.5"/>
<use xlink:href="#post" x="70" y="50"/>
<use xlink:href="#post" x="290" y="50"/>
<use xlink:href="#foot" x="40" y="160"/>
<use xlink:href="#foot" x="260" y="160"/>
<use xlink:href="#back" x="40" y="60"/>
<use xlink:href="#back" x="40" y="80"/>
<use xlink:href="#back" x="40" y="100"/>
<use xlink:href="#seat" x="40" y="140"/>
<use xlink:href="#seat" x="30" y="148"/>
<use xlink:href="#seat" x="20" y="156"/>
</g>
<g>
<use xlink:href="#box" x="225" y="140"/>
</g>
<image xlink:href="asf-logo.svg" width="170" height="52"
transform="scale(.5) translate(320,20)"/>
</svg>
1.1 jakarta-alexandria/proposal/gump/site/xdocs/index.xml
Index: index.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="rubys@us.ibm.com">Sam Ruby</author>
<title>Gump</title>
</properties>
<body>
<section name="What is Gump?">
<p>
Gump is a social experiment. The primary goal of Gump is to get diverse
projects to communicate early and often about integration, dependencies,
and versioning management. One way to think about it is that some of the
concepts of
<a href="http://www.extremeprogramming.org/">Extreme programming</a>
applied to
<a href="http://www.martinfowler.com/articles/continuousIntegration.html">
Continuous Integration</a> on an unprecedented scale.
</p>
<p>
Essentially, the reasoning goes like this - if continuous integration is a
good thing on a small project, why not apply it recursively and include all
dependencies for which access to source is provided?
</p>
</section>
<section name="How does Gump work?">
<p>
<a href="http://cvs.apache.org/viewcvs/jakarta-alexandria/proposal/gump/project">
Project</a> definitions are converted from XML to scripts native to the
platform on which you are running. These scripts execute cvs update
commands for every module which contains a project being built, and
invoke builds for each project in an order that ensures that dependencies
are satisfied.
</p>
<p>
The commands use the actual build.xml files from the projects, but do
not use the scripts or jar files checked into CVS. Instead, the
CLASSPATH is set and properties are passed on the command line.
</p>
<p>
The net effect is that every project is built every day with the latest
version of every dependency - including the latest Ant, latest JUnit,
latest XML parser.
</p>
<p>
The results are captured into html pages that largely are consistent
with the style of the Jakarta project. An extensive amount of hypertext
links are added to allow quick and easy navigation, and failures are
color coded on the main build page.
</p>
<p>
A Perl script which is driven off of a naglist will optionally send
e-mails to various newsgroups upon matching strings being found in the
build output. This is typically used to alert developers of build
failures.
</p>
</section>
<section name="Where is Gump?">
<ul>
<li><a href="http://cvs.apache.org/viewcvs/jakarta-alexandria/proposal/gump/">Source</a></li>
<li><a href="http://jakarta.apache.org/builds/gump/latest/">Latest Results</a></li>
<li><a href="http://nagoya.apache.org/~rubys/gump/">Experimental runs</a></li>
</ul>
</section>
<section name="When does Gump run?">
<p>
For Gump to have the desired social affects, it must be predictable.
For now, I have chosen to run Gump daily - with kickoff being midnight
Pacific time. Given the global scale of open source development, there
is clearly no one time when everyone is inactive, but at least this
catches most of the North American continent napping, and is early in
the business day for most of Europe.
</p>
<p>
Recently, I have been experimenting with a second server kindly donated
by Sun and administered by Pier Fumagalli and Justyna Horwat. After
I'd complained quite a bit, Pier took pitty on my and made available
a LOT of tmp space - backed by 3 gigs of RAM. Doing my builds from
there positively flies!. For now, I've timed
an automated run to be kicked off at noon Pacific time - exactly the
midpoint between "official" runs. Note that I often kick off partial
builds and may even do a full run out of cycle, so the cvs updates logs
may not capture all of the activity that has taken place since the
previous run.
</p>
</section>
<section name="Who is Gump?">
<p>
Gump was named after
<a href="http://www.ionet.net/~lesinokc/gump/gump.html">Forrest Gump</a>,
the title character in a movie. The process for building was to do a
"Generate", followed by cvs "Updates", followed by a "Build All". This
was repetitive, so a command was created to combine these operations -
and it was named "guba". This sound this made when spoken reminded me
of "Bubba Gump".
</p>
<p>
This seemed oddly appropriate to me as much of the motivation I had
derived from the frustrations I had building a project that I was and
continue to be a big fan of - Cocoon. The
<a href="http://xml.apache.org/cocoon/faqs.html#faq-whyname">FAQ</a> for
that project indicate that the project was named after a movie that the
creator of that project was particularly fond of, so it seemed fitting
that this effort would be named after a movie that I am fond of.
</p>
<p>
A number of other fortunate coincidences have convinced me that this
was the right choice for a name. From the role of the feather in the
opening and closing scenes (something I have adapted to the Apache
feature for the Gump icon), the catch phase of "Stupid is as Stupid
does" - something that captures the spirit of a large number of build
errors caught by this process. And most significantly to me - the
wisdom passed on from Gump's mother that "Life is like a box of
chocolates - you never know what you are going to get!". I can think
of no more apt description of a build process which takes the absolute
latest versions of almost everything and attempts to build them together!
</p>
</section>
</body>
</document>
1.1 jakarta-alexandria/proposal/gump/site/xdocs/status.xml
Index: status.xml
===================================================================
<?xml version="1.0"?>
<document>
<properties>
<author email="rubys@us.ibm.com">Sam Ruby</author>
<title>Gump</title>
</properties>
<body>
<section name="Recurring build problems">
<p>These represent "known problems". In some cases, they represent a
temporary problem that will be synched up at the point of the next
release, in other cases they represent an abject failure to communicate</p>
<subsection name="commons-latka">
<p>Latka depends on function which was subsequently rolled back from
httpclient. Latka development continues with a snapshot of a jar which
does not correspond to any release of latka or the current cvs head.</p>
</subsection>
<subsection name="dbxml">
<p>The Xalan team is in the process of changing an API that dbxml uses.
The reason for the change is to support DTM, however the change is
apparently not being made in a backwards compatbile manner.</p>
</subsection>
<subsection name="tyrex">
<p>Tyrex will compile cleanly with Ant 1.3 and log4j 1.0.4. It also have
every indication that it would compile (albeit with deprecation warnings)
and work with the latest release of log4j (1.1.3).</p>
<p>Most of the errors are due to a Ant bug fix made during the development
of the 1.4 release. the Tyrex source tree contains files which will not
compile, but are to be excluded from the build. The excludes attribute
is coded as excludes="tyrex/corba/*", but this really should be
excludes="tyrex/corba/**" as the files to be excluded are contained in
subdirectories</p>
<p>The remaining errors are due to usages of interfaces which were
deprecated in various releases of log4j and now have been removed.</p>
<p>Three attempts have been made to contact the tyrex development team.
On the third attempt, I received a response that these problems are
temporary.</p>
</subsection>
<subsection name="scarab">
<p>For a while, scarab was trying to keep up with the evolution of
the torque component of turbine-3. Eventually, this became too disruptive
and work has continued using a snapshot of turbine. This snapshot does
not correspond to any public release or the current HEAD.</p>
</subsection>
<subsection name="xml-fop">
<p>Batik is in the process of correcting what they have described as
a fairly fundamental design error. This should only affect a small
minority of batik users. Unfortunately, xml-fop is one of the users
affects.</p>
<p>At the present time, there is a good line of communication between
the two projects, and the fop team understands and agrees to this change.
They plan to step up once the changes are released.</p>
</subsection>
<subsection name="xml-xalan2-smoketest">
<p>StylesheetTestlet namespace70.xsl has failed since 2001-09-21. At
the present time, I expect that this problem will be correctedly quickly
as the Xalan team has consistently been responsive to reports of Gump
errors.</p>
</subsection>
</section>
<section name="Other Issues">
<p>These represent versioning issues that will not show up in any
gump run, but you may need to be aware.</p>
<subsection name="jakarta-avalon">
<p>Despite the relatively recent release of Ant, most Avalon projects
will not build with that version of Ant. They require a small but
important change in the jar task. Of course, they build with the version
of Ant checked into their respective cvs's, but the question is: do we
really want or need a separate version of Ant for every component?</p>
</subsection>
<subsection name="jakarta-tomcat-4.0">
<p>Tomcat4 integration with tyrex depends on interfaces which tyrex
removed over six months ago.</p>
</subsection>
<subsection name="jakarta-turbine">
<p>Based on inspection, I don't believe that turbine-2 and turbine-3 can
coexist in a classpath. The jakarta-jetspeed, jakarta-turbine-jyve, and
jakarta-turbine-orgami projects depend on turbine-2. The
jakarta-turbine-flux and scarab projects depend on turbine-3.</p>
</subsection>
</section>
<section name="Recent success stories">
<p>TBD</p>
</section>
</body>
</document>
1.1 jakarta-alexandria/proposal/gump/site/xdocs/velocity.properties
Index: velocity.properties
===================================================================
file.resource.loader.path=xdocs/stylesheets
velocimacro.library=templates.vm
1.1 jakarta-alexandria/proposal/gump/site/xdocs/stylesheets/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Jakarta Site"
href="http://jakarta.apache.org/gump/">
<title>The Jakarta Site</title>
<logo href="images/bench.png">Gump</logo>
<body>
<menu name="Gump">
<item name="Front Page" href="/index.html"/>
<item name="Results" href="http://jakarta.apache.org/builds/gump/latest/"/>
<item name="Status" href="/status.html"/>
<item name="Source" href="http://cvs.apache.org/viewcvs/jakarta-alexandria/proposal/gump/"/>
</menu>
<menu name="Sources">
<item name="dbxml" href="http://www.dbxml.org/"/>
<item name="devworks" href="http://oss.software.ibm.com/developerworks/opensource/"/>
<item name="exolab" href="http://www.exolab.org/"/>
<item name="jakarta" href="http://jakarta.apache.org/"/>
<item name="jdom" href="http://www.jdom.org/"/>
<item name="mozilla" href="http://www.mozilla.org/"/>
<item name="sourceforge" href="http://sourceforge.net/"/>
<item name="tigris" href="http://www.tigris.org/"/>
<item name="whichever" href="http://share.shichever.org/"/>
<item name="xml" href="http://xml.apache.org/"/>
</menu>
<menu name="Get Involved">
<item name="Overview" href="/site/getinvolved.html"/>
<item name="Join Mailing lists" href="http://jakarta.apache.org/getinvolved/mail.html"/>
<item name="Search Mailing lists" href="http://marc.theaimsgroup.com/?l=alexandria-dev&r=1&w=2"/>
</menu>
</body>
</project>
1.1 jakarta-alexandria/proposal/gump/site/xdocs/stylesheets/site.vsl
Index: site.vsl
===================================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- Content Stylesheet for Site -->
## Defined variables
#set ($bodybg = "#ffffff")
#set ($bodyfg = "#000000")
#set ($bodylink = "#525D76")
#set ($bannerbg = "#525D76")
#set ($bannerfg = "#ffffff")
#set ($subbannerbg = "#828DA6")
#set ($subbannerfg = "#ffffff")
#set ($tablethbg = "#039acc")
#set ($tabletdbg = "#a0ddf0")
<!-- start the processing -->
#document()
<!-- end the processing -->
## This is where the common page macro's live
#macro ( subsection $subsection)
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="$subbannerbg">
<font color="$subbannerfg" face="arial,helvetica,sanserif">
<a name="$subsection.getAttributeValue("name")"><strong>$subsection.getAttributeValue("name")</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
#foreach ( $items in $subsection.getChildren() )
#if ($items.getName().equals("img"))
#image ($items)
#elseif ($items.getName().equals("source"))
#source ($items)
#elseif ($items.getName().equals("table"))
#table ($items)
#else
$xmlout.outputString($items)
#end
#end
</blockquote>
</td></tr>
</table>
#end
#macro ( section $section)
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="$bannerbg">
<font color="$bannerfg" face="arial,helvetica,sanserif">
<a name="$section.getAttributeValue("name")"><strong>$section.getAttributeValue("name")</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
#foreach ( $items in $section.getChildren() )
#if ($items.getName().equals("img"))
#image ($items)
#elseif ($items.getName().equals("source"))
#source ($items)
#elseif ($items.getName().equals("table"))
#table ($items)
#elseif ($items.getName().equals("subsection"))
#subsection ($items)
#else
$xmlout.outputString($items)
#end
#end
</blockquote>
</td></tr>
</table>
#end
#macro (document)
#header()
#set ($allSections = $root.getChild("body").getChildren("section"))
#foreach ( $section in $allSections )
#section ($section)
#end
#footer()
#end
1.1 jakarta-alexandria/proposal/gump/site/xdocs/stylesheets/templates.vm
Index: templates.vm
===================================================================
## This is where the common macro's live
#macro ( table $table)
<table>
#foreach ( $items in $table.getChildren() )
#if ($items.getName().equals("tr"))
#tr ($items)
#end
#end
</table>
#end
#macro ( tr $tr)
<tr>
#foreach ( $items in $tr.getChildren() )
#if ($items.getName().equals("td"))
#td ($items)
#elseif ($items.getName().equals("th"))
#th ($items)
#end
#end
</tr>
#end
#macro ( td $value)
#if ($value.getAttributeValue("colspan"))
#set ($colspan = $value.getAttributeValue("colspan"))
#end
#if ($value.getAttributeValue("rowspan"))
#set ($rowspan = $value.getAttributeValue("rowspan"))
#end
<td bgcolor="$tabletdbg" colspan="$!colspan" rowspan="$!rowspan"
valign="top" align="left">
<font color="#000000" size="-1" face="arial,helvetica,sanserif">
#if ($value.getText().length() != 0 || $value.hasChildren())
$xmlout.outputString($value, true)
#else
#end
</font>
</td>
#end
#macro ( th $value)
#if ($value.getAttributeValue("colspan"))
#set ($colspan = $value.getAttributeValue("colspan"))
#end
#if ($value.getAttributeValue("rowspan"))
#set ($rowspan = $value.getAttributeValue("rowspan"))
#end
<td bgcolor="$tablethbg" colspan="$!colspan" rowspan="$!rowspan"
valign="top" align="left">
<font color="#000000" size="-1" face="arial,helvetica,sanserif">
#if ($value.getText().length() != 0 || $value.hasChildren())
$xmlout.outputString($value, true)
#else
#end
</font>
</td>
#end
#macro ( projectanchor $name $value )
#if ($value.startsWith("http://"))
<a href="$value">$name</a>
#elseif ($value.startsWith("/site"))
<a href="http://jakarta.apache.org$value">$name</a>
#else
<a href="$relativePath$value">$name</a>
#end
#end
#macro ( metaauthor $author $email )
<meta name="author" value="$author">
<meta name="email" value="$email">
#end
#macro ( image $value )
#if ($value.getAttributeValue("width"))
#set ($width=$value.getAttributeValue("width"))
#end
#if ($value.getAttributeValue("height"))
#set ($height=$value.getAttributeValue("height"))
#end
#if ($value.getAttributeValue("align"))
#set ($align=$value.getAttributeValue("align"))
#end
<img src="$relativePath$value.getAttributeValue("src")"
width="$!width" height="$!height" align="$!align">
#end
#macro ( source $value)
<div align="left">
<table cellspacing="4" cellpadding="0" border="0">
<tr>
<td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#ffffff"><pre>$escape.getText($value.getText())</pre></td>
<td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
</table>
</div>
#end
#macro ( makeProject )
#set ($menus = $project.getChild("body").getChildren("menu"))
#foreach ( $menu in $menus )
<p><strong>$menu.getAttributeValue("name")</strong></p>
<ul>
#foreach ( $item in $menu.getChildren() )
#set ($name = $item.getAttributeValue("name"))
<li>#projectanchor($name $item.getAttributeValue("href"))</li>
#end
</ul>
#end
#end
#macro (getProjectImage)
#if ($project.getChild("logo"))
<td align="left">
<a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
</td>
<td align="right">
#set ( $logoString = $project.getChild("logo").getAttributeValue("href") )
#if ( $logoString.startsWith("/") )
<a href="$project.getAttributeValue("href")"><img src="$relativePath$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
#else
<a href="$project.getAttributeValue("href")"><img src="$relativePath/$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
#end
</td>
#else
<td colspan="2">
<a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
</td>
#end
#end
#macro (header)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
#set ($authors = $root.getChild("properties").getChildren("author"))
#foreach ( $au in $authors )
#metaauthor ( $au.getText() $au.getAttributeValue("email") )
#end
<title>$project.getChild("title").getText() - $root.getChild("properties").getChild("title").getText()</title>
</head>
<body bgcolor="$bodybg" text="$bodyfg" link="$bodylink">
<table border="0" width="100%" cellspacing="0">
<!-- TOP IMAGE -->
<tr>
#getProjectImage()
</tr>
</table>
<table border="0" width="100%" cellspacing="4">
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr>
<!-- LEFT SIDE NAVIGATION -->
<td valign="top" nowrap="true">
#makeProject()
</td>
<td align="left" valign="top">
#end
#macro (footer)
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr><td colspan="2">
<div align="center"><font color="$bodylink" size="-1"><em>
Copyright © 2001, Apache Software Foundation
</em></font></div>
</td></tr>
</table>
</body>
</html>
#end
---------------------------------------------------------------------
To unsubscribe, e-mail: alexandria-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: alexandria-dev-help@jakarta.apache.org
Re: cvs commit:
jakarta-alexandria/proposal/gump/site/xdocs/stylesheets project.xml
site.vsl templates.vm
Posted by Jon Stevens <jo...@latchkey.com>.
on 9/23/01 6:04 PM, "rubys@apache.org" <ru...@apache.org> wrote:
>
> <subsection name="scarab">
> <p>For a while, scarab was trying to keep up with the evolution of
> the torque component of turbine-3. Eventually, this became too
> disruptive
> and work has continued using a snapshot of turbine. This snapshot does
> not correspond to any public release or the current HEAD.</p>
> </subsection>
>
Right now, Scarab should build/run just fine with CVS head of turbine-3 and
turbine-torque
-jon
---------------------------------------------------------------------
To unsubscribe, e-mail: alexandria-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: alexandria-dev-help@jakarta.apache.org
Re: cvs commit:
jakarta-alexandria/proposal/gump/site/xdocs/stylesheets project.xml
site.vsl templates.vm
Posted by Jon Stevens <jo...@latchkey.com>.
on 9/23/01 6:04 PM, "rubys@apache.org" <ru...@apache.org> wrote:
> 1.1
> jakarta-alexandria/proposal/gump/site/xdocs/stylesheets/site.vsl
>
If you have a dep on jakarta-site2, why are you including site.vsl?
-jon
---------------------------------------------------------------------
To unsubscribe, e-mail: alexandria-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: alexandria-dev-help@jakarta.apache.org