<?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.
-->
<j:jelly xmlns:j="jelly:core" xmlns="jelly:ant">

  <j:set var="jarname" value="target/anttest.jar"/>
  
  <echo>
      About to create jar: ${jarname}
  </echo>

    <jar
      jarfile="${jarname}"
      basedir="target/classes">

      <metainf dir=".">
        <include name="LICENSE.txt"/>
      </metainf>
      <manifest>
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Created-By" value="Apache Jakarta Maven"/>
        <attribute name="Package" value="${pom.package}"/>
        <section name="mySection">
          <attribute name="Specification-Title" value="Some Title"/>
          <attribute name="Specification-Version" value="1.1"/>
          <attribute name="Specification-Vendor" value="Apache"/>
          <attribute name="Implementation-Title" value="Some implementation title"/>
          <attribute name="Implementation-Version" value="1.1"/>
          <attribute name="Implementation-Vendor" value="Apache"/>
        </section>
      </manifest>
    </jar>
</j:jelly>
