<?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.

-->
<licenseinfo>
    <fileset>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/javaee_8.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/javaee_web_services_client_1_4.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jsp_2_3.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/web-app_4_0.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/web-common_3_1.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/web-fragment_4_0.xsd</file>
        <license ref="CDDL-1.1" />
        <comment type="CATEGORY_B" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/javaee_6.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/javaee_web_services_client_1_3.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/web-app_3_0.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/web-common_3_0.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/web-fragment_3_0.xsd</file>
        <license ref="CDDL-1.0" />
        <comment type="CATEGORY_B" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/xml.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/datatypes.dtd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/XMLSchema.dtd</file>
        <license ref="W3C2" />
        <comment type="CATEGORY_B" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/datasources_1_4_1.xsd</file>
        <license ref="EPL-v10" />
        <comment type="CATEGORY_B" />
    </fileset>
    <fileset>
        <!-- see https://github.com/jbosstools/jbosstools-server/blob/master/as/plugins/org.jboss.ide.eclipse.as.ui/icons/wildfly_icon_16.png -->
        <file>src/org/netbeans/modules/javaee/wildfly/resources/wildfly.png</file>
        <license ref="EPL-v20" />
        <comment type="CATEGORY_B" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-web_14_1.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-web_7_3_1.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-web_4_0_1.dtd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-common_8_1.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-common_6_0_1.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss_4_0_1.dtd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-app_4_0_1.dtd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-service_4_0_1.dtd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/jboss-as-messaging-deployment_1_0_1.xsd</file>
        <file>src/org/netbeans/modules/javaee/wildfly/resources/wildfly-messaging-activemq-deployment_1_0_1.xsd</file>
        <license ref="Apache-2.0" />
        <comment type="COMMENT_UNSUPPORTED" />
    </fileset>
</licenseinfo>
