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

<html>
<head>
</head>
<body>

  <p>A tag library for using Ant tasks within Jelly</p>
  
  <p>Jelly can be invoked inside Ant and this tag library allows Ant tasks to be invoked from inside
  	Jelly. This allows Jelly to be used for more 'scripting' style targets, such as parsing XML databases,
  	working with custom java beans, doing SQL, the use of JSTL and so forth.
  </p>
  
</body>
</html>
