<?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 xmlns="http://www.netbeans.org/ns/project/1">
    <type>org.netbeans.modules.apisupport.project</type>
    <configuration>
        <data xmlns="http://www.netbeans.org/ns/nb-module-project/2">
            <code-name-base>org.netbeans.modules.websvc.jaxws21api</code-name-base>
            <module-dependencies>
                <dependency>
                    <code-name-base>org.netbeans.modules.xml.jaxb.api</code-name-base>
                    <run-dependency>
                        <release-version>1</release-version>
                        <specification-version>1.0</specification-version>
                    </run-dependency>
                </dependency>
            </module-dependencies>
            <public-packages>
                <package>javax.annotation</package>
                <package>javax.annotation.security</package>
                <package>javax.jws</package>
                <package>javax.jws.soap</package>
                <package>javax.xml.soap</package>
                <package>javax.xml.ws</package>
                <package>javax.xml.ws.handler</package>
                <package>javax.xml.ws.handler.soap</package>
                <package>javax.xml.ws.http</package>
                <package>javax.xml.ws.soap</package>
                <package>javax.xml.ws.spi</package>
                <package>javax.xml.ws.wsaddressing</package>
            </public-packages>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/api/jaxws-api.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/api/jsr181-api.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/api/javax.annotation.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/api/saaj-api.jar</runtime-relative-path>
            </class-path-extension>
        </data>
    </configuration>
</project>
