<?xml version="1.0"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd">

<!--

    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.

-->

<filesystem>
    <folder name="org-netbeans-api-project-libraries">
        <folder name="Libraries">
            <file name="eclipselink.xml" url="eclipselink_lib.xml">
                <attr name="displayName" bundlevalue="org.netbeans.modules.j2ee.eclipselink.Bundle#eclipselink"/>
            </file>
            <file name="jpa20-persistence.xml" url="jpa20-persistence.xml">
                <attr name="displayName" bundlevalue="org.netbeans.modules.j2ee.eclipselink.Bundle#jpa20-persistence"/>
            </file>
        </folder>
    </folder>
</filesystem>
