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&amp;r=1&amp;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
        &nbsp;
      #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
        &nbsp;
      #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 &#169; 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