<?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/web/jsf/facelets/resources/templates/compositionTemplateClient.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/cssLayout.css</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/default.css</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/forward.jsp</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/htmlTemplateClient.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/index.xhtml</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/simpleFacelets.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/tableLayout.css</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-1.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-2.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-3.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-4.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-5.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-6.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-7.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-css-8.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-jsf2.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-jsf22.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-1.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-2.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-3.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-4.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-5.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-6.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-7.template</file>
        <file>src/org/netbeans/modules/web/jsf/facelets/resources/templates/template-table-8.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/AjaxScripts.jspf</file>
        <file>src/org/netbeans/modules/web/jsf/resources/JsfCrudELResolver.java.txt</file>
        <file>src/org/netbeans/modules/web/jsf/resources/JsfUtil.java.txt</file>
        <file>src/org/netbeans/modules/web/jsf/resources/PagingInfo.java.txt</file>
        <file>src/org/netbeans/modules/web/jsf/resources/jsfcrud.css</file>
        <file>src/org/netbeans/modules/web/jsf/resources/jsfcrud.js</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/JSFManagedBean.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/JSP.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/JSPDoc.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/JSPDocX.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/JSPF.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/commandLink-jsf2.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/commandLink.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/compositeComponent.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/detailJsp.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/dummy.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/editJsp.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/facesComponent.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/listJsp.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/newJsp.template</file>
        <file>src/org/netbeans/modules/web/jsf/resources/templates/tableCommands.template</file>
        <file>test/unit/src/org/netbeans/modules/web/jsf/refactoring/data/goldenfiles/ModificationsTest/gold-modifications.xml</file>
        <file>test/unit/src/org/netbeans/modules/web/jsf/xdm/model/data/goldenfiles/JSFConfigModelTest/gold-application.xml</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="TEMPLATE_MINIMAL_IP" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/web/jsf/resources/xml.xsd</file>
        <license ref="W3C2" />
        <comment type="CATEGORY_B" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/web/jsf/resources/facelet-taglib_1_0.dtd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/javaee_5.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/javaee_web_services_client_1_2.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facelettaglibrary_2_0.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facelettaglibrary_2_2.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facelettaglibrary_2_3.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facesconfig_1_0.dtd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facesconfig_1_1.dtd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facesconfig_1_2.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facesconfig_2_0.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facesconfig_2_1.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facesconfig_2_2.xsd</file>
        <file>src/org/netbeans/modules/web/jsf/resources/web-facesconfig_2_3.xsd</file>
        <license ref="CDDL-1.1" />
        <comment type="CATEGORY_B" />
    </fileset>
</licenseinfo>
