<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.
-->
<j:jelly xmlns:j="jelly:core">

<html>
  <body>

    <h1>Ant properties</h1>

    <p>The project name is <b><j:expr value="${project.name}"/></b>
    </p>

    <table>
      <tr>
        <th>Targets</th>
      </tr>

      <j:forEach var="iter" items="${project.targets}">
        <tr>
          <td><j:expr value="${iter.key}"/></td>
        </tr>
      </j:forEach>
    </table>

    <table>
      <tr>
        <th>Property Name</th>
        <th>Property Value</th>
      </tr>

      <j:forEach var="iter" items="${project.getProperties()}">
        <tr>
          <td><j:expr value="${iter.key}"/></td>
          <td><j:expr value="${iter.value}"/></td>
        </tr>
      </j:forEach>
    </table>

  </body>

</html>

</j:jelly>
