<?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.jaxws21</code-name-base>
            <module-dependencies>
                <dependency>
                    <code-name-base>org.netbeans.libs.jaxb</code-name-base>
                    <run-dependency>
                        <release-version>1</release-version>
                        <specification-version>1.19</specification-version>
                    </run-dependency>
                </dependency>
                <dependency>
                    <code-name-base>org.netbeans.modules.websvc.jaxws21api</code-name-base>
                    <build-prerequisite/>
                    <compile-dependency/>
                    <run-dependency>
                        <release-version>1</release-version>
                        <specification-version>1.19</specification-version>
                    </run-dependency>
                </dependency>
                <dependency>
                    <code-name-base>org.netbeans.modules.xml.jaxb.api</code-name-base>
                    <run-dependency>
                        <release-version>1</release-version>
                        <specification-version>1.13</specification-version>
                    </run-dependency>
                </dependency>
            </module-dependencies>
            <friend-packages>
                <friend>org.netbeans.modules.websvc.jaxwsmodel</friend>
                <friend>org.netbeans.modules.websvc.manager</friend>
                <package>com.sun.tools.ws.processor</package>
                <package>com.sun.tools.ws.processor.generator</package>
                <package>com.sun.tools.ws.processor.model</package>
                <package>com.sun.tools.ws.processor.model.exporter</package>
                <package>com.sun.tools.ws.processor.model.java</package>
                <package>com.sun.tools.ws.processor.model.jaxb</package>
                <package>com.sun.tools.ws.processor.modeler</package>
                <package>com.sun.tools.ws.processor.modeler.annotation</package>
                <package>com.sun.tools.ws.processor.modeler.wsdl</package>
                <package>com.sun.tools.ws.processor.util</package>
                <package>com.sun.tools.ws.util.xml</package>
                <package>com.sun.tools.ws.wscompile</package>
                <package>com.sun.tools.ws.wsdl.document.soap</package>
                <package>com.sun.tools.ws.wsdl.parser</package>
                <package>com.sun.xml.messaging.saaj.soap</package>
                <package>com.sun.xml.ws</package>
                <package>com.sun.xml.ws.api</package>
                <package>com.sun.xml.ws.api.addressing</package>
                <package>com.sun.xml.ws.api.message</package>
                <package>com.sun.xml.ws.developer</package>
                <package>com.sun.xml.ws.encoding.soap</package>
                <package>com.sun.xml.ws.encoding.soap.streaming</package>
                <package>com.sun.xml.ws.policy.sourcemodel.wspolicy</package>
                <package>com.sun.xml.ws.spi</package>
                <package>com.sun.xml.ws.util</package>
                <package>com.sun.xml.ws.util.exception</package>
                <package>com.sun.xml.ws.util.localization</package>
                <package>com.sun.xml.ws.util.xml</package>
            </friend-packages>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/FastInfoset.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/gmbal-api-only.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/ha-api.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/javax.mail_1.4.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/jaxws-rt.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/jaxws-tools.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/management-api.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/mimepull.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/policy.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/saaj-impl.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/stax-ex.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/stax2-api.jar</runtime-relative-path>
            </class-path-extension>
            <class-path-extension>
                <runtime-relative-path>ext/jaxws22/streambuffer.jar</runtime-relative-path>
            </class-path-extension>
        </data>
    </configuration>
</project>
