<?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/xml.wsdl.model" default="build" basedir=".">
    <import file="../../nbbuild/templates/projectized.xml"/>

    <!-- Hook into harness "-process.release.files" task -->
    <target name="-process.release.files" depends="prepare-wsdl"/>

    <!-- Check if taglib doc was already generated -->
    <target name="-check-prepared-wsdl">
        <condition property="xml.wsdl.model.wsdlgenerated" value="present">
            <and>
                <available file="external/generated-wsdl-xsd-2004.08.24-license.jar" />
            </and>
        </condition>
    </target>

    <target name="prepare-wsdl" depends="-check-prepared-wsdl,-define-FileCRC32Calculator" unless="xml.wsdl.model.wsdlgenerated">
        <!--

        This task prepares the XSD for WSDLs by repackaging the XSD contained
        in the CXF artifacts. Its unclear why the netbeans project may not
        hold the XSDs, while the CXF project may, but the IPMC member made
        it clear, that he'd veto a release if removal was not planned.

        -->

        <jar destfile="external/generated-wsdl-xsd-2004.08.24.jar">
            <zipfileset src="external/cxf-core-3.2.6-sources.jar" 
                        includes="schemas/wsdl/wsdl.xsd" 
                        fullpath="org/netbeans/modules/xml/wsdl/validator/resources/external/wsdl-2004-08-24.xsd" />
        </jar>
    </target>
</project>
