<?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.
-->

<!-- revaluates the same script many times to test performance -->

<j:jelly xmlns:j="jelly:core">

  <j:useBean var="start" class="java.util.Date" />
  Started at: ${start}
    
  <j:forEach begin="1" end="1000">
      <j:include uri="sample.jelly"/>
  </j:forEach>
  
  <j:useBean var="end" class="java.util.Date" />
  Finished at: ${end}
</j:jelly>