<?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/persistence/dd/resources/orm_1_0.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/persistence_1_0.xsd</file>
        <license ref="CDDL-1.0" />
        <comment type="CATEGORY_B">Used for XML Validation and code completion at runtime.</comment>
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/orm_2_0.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/persistence_2_0.xsd</file>
        <license ref="EDL-1.0">
            Copyright (c) 2008, 2009 Sun Microsystems. All rights reserved.

            Contributors:
            Linda DeMichiel - Java Persistence 2.0, Version 2.0 (October 1, 2009)
            Specification available from http://jcp.org/en/jsr/detail?id=317
        </license>
        <comment type="CATEGORY_B">Used for XML Validation and code completion at runtime.</comment>
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/orm_2_1.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/persistence_2_1.xsd</file>
        <license ref="EDL-1.0">
            Copyright (c) 2008  - 2013 Oracle Corporation. All rights reserved. 

            Contributors:
            Linda DeMichiel - Java Persistence 2.1, Version 2.1 (February 4, 2013)
            Specification available from http://jcp.org/en/jsr/detail?id=338
        </license>
        <comment type="CATEGORY_B">Used for XML Validation and code completion at runtime.</comment>
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/orm_2_2.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/persistence_2_2.xsd</file>
        <license ref="EDL-1.0">
            Copyright (c) 2008 - 2017 Oracle Corporation.  All rights reserved. 

            Contributors:
            Linda DeMichiel - Java Persistence 2.2, Version 2.2 (July 7, 2017)
            Specification available from http://jcp.org/en/jsr/detail?id=338
        </license>
        <comment type="CATEGORY_B">Used for XML Validation and code completion at runtime.</comment>
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/orm_3_0.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/orm_3_1.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/orm_3_2.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/persistence_3_0.xsd</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/persistence_3_2.xsd</file>
        <license ref="EDL-1.0" >
            Copyright (c) 2008, 2020 Oracle and/or its affiliates. All rights reserved.
        </license>
        <comment type="CATEGORY_B">Used for XML Validation and code completion at runtime.</comment>
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/persistence-1.0.xml</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/persistence-2.0.xml</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/persistence-2.1.xml</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/persistence-2.2.xml</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/persistence-3.0.xml</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/persistence-3.1.xml</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/persistence-3.2.xml</file>
        <file>src/org/netbeans/modules/j2ee/persistence/wizard/jpacontroller/resources/IllegalOrphanException.java.txt</file>
        <file>src/org/netbeans/modules/j2ee/persistence/wizard/jpacontroller/resources/NonexistentEntityException.java.txt</file>
        <file>src/org/netbeans/modules/j2ee/persistence/wizard/jpacontroller/resources/PreexistingEntityException.java.txt</file>
        <file>src/org/netbeans/modules/j2ee/persistence/wizard/jpacontroller/resources/RollbackFailureException.java.txt</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="TEMPLATE_MINIMAL_IP" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/j2ee/persistence/jpqleditor/ui/resources/run_jpql_query_16.png</file>
        <file>src/org/netbeans/modules/j2ee/persistence/jpqleditor/ui/resources/queryEditor16X16.png</file>
        <file>src/org/netbeans/modules/j2ee/persistence/dd/resources/persistenceCatalog.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/resources/hibernate-mapping.png</file>
        <file>src/org/netbeans/modules/j2ee/persistence/unit/PersistenceIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/EntityNodeIcon.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/connection.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/PersistenceBadge.png</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/connectionDisconnected.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/ui/resources/warning.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/editor/completion/resources/column.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/editor/completion/resources/connectionDisconnected.gif</file>
        <file>src/org/netbeans/modules/j2ee/persistence/editor/completion/resources/table.gif</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="COMMENT_UNSUPPORTED" />
    </fileset>
</licenseinfo>
