<?xml version="1.0"?>
<!--
  Copyright 2002,2004 The Apache Software Foundation.
  
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<jelly xmlns="jelly:core">

  <!-- a really silly way to do this but -->
  <!-- this should test the choose/when/otherwise tags -->
  <forEach var="iter" items="System.getProperties()">
    <choose>
      <when test='iter.key.equals( "java.home" )'>
        Java Home = <expr value="iter.value"/>
      </when>
      <when test='iter.key.equals( "java.version" )'>
        Java Version = <expr value="iter.value"/>
      </when>
      <otherwise>
        <expr value="iter.key"/> = <expr value="iter.value"/>
      </otherwise>
    </choose>
  </forEach>
</jelly>



