<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->
<project name="ide/o.apache.commons.httpclient" default="build" basedir=".">
    <import file="../../nbbuild/templates/projectized.xml"/>
    <target name="jar" depends="-define-FileCRC32Calculator">
        <FileCRC32Calculator file="external/commons-httpclient-3.1.jar" property="o.apache.commons.httpclient.crc32" />
        <jar jarfile="${cluster}/${module.jar}">
            <zipfileset src="external/commons-httpclient-3.1.jar"/>
            <manifest>
                <attribute name="Bundle-SymbolicName" value="org.apache.commons.httpclient"/>
                <attribute name="Bundle-Version" value="3.1.0"/>
                <attribute name="Export-Package" value="org.apache.commons.httpclient;version=&quot;3.1.0&quot;,org.apache.commons.httpclient.auth;version=&quot;3.1.0&quot;,org.apache.commons.httpclient.cookie;version=&quot;3.1.0&quot;,org.apache.commons.httpclient.methods;version=&quot;3.1.0&quot;,org.apache.commons.httpclient.methods.multipart;version=&quot;3.1.0&quot;,org.apache.commons.httpclient.params;version=&quot;3.1.0&quot;,org.apache.commons.httpclient.protocol;version=&quot;3.1.0&quot;,org.apache.commons.httpclient.util;version=&quot;3.1.0&quot;"/>
                <attribute name="Import-Package" value="javax.crypto;resolution:=optional,javax.crypto.spec;resolution:=optional,javax.net;resolution:=optional,javax.net.ssl;resolution:=optional,org.apache.commons.codec;version=&quot;[1.2.0,2.0.0)&quot;,org.apache.commons.codec.binary;version=&quot;[1.2.0,2.0.0)&quot;,org.apache.commons.codec.net;version=&quot;[1.2.0,2.0.0)&quot;,org.apache.commons.logging;version=&quot;[1.0.4,2.0.0)&quot;"/>
                <attribute name="Bundle-ManifestVersion" value="2"/>
                <attribute name="NB-Original-CRC" value="${o.apache.commons.httpclient.crc32}"/>
            </manifest>
        </jar>
    </target>
</project>
