<?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/j2ee/ddloaders/app/DDCatalog.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/app/DDDataIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/app/DDDataIcon1.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/catalog/resources/DDCatalog.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/client/DDCatalog.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/client/DDDataIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/client/error-badge.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/ejb/DDCatalog.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/ejb/DDDataIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/ejb/DDDataIcon1.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/DDDataIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/DDDataIcon1.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/DDInvalidIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/DDValidIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/EjbContainerNodeIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/EjbModuleNodeIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/EntityNodeIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/MessageNodeIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/MiscNodeIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/resources/SessionNodeIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/class.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/constant.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/EnterpriseJavaBean16.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/htmlObject.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/jspObject.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/mappingsNode.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/paramNode.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/multiview/resources/paramsNode.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/resources/DDCatalog.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/resources/DDDataIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/resources/error-badge.gif</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="COMMENT_UNSUPPORTED" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/j2ee/ddloaders/web/resources/xml.xsd</file>
        <license ref="W3C2" />
        <comment>XML Schema is used at runtime to offer code completion for HTML/XHTML files.</comment>
    </fileset>
</licenseinfo>
