<?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.   
-->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
    <!ENTITY openjpa-version "VERSION">

    <!ENTITY openjpa_intro.xml SYSTEM "openjpa_intro.xml">
    <!ENTITY openjpa_legal.xml SYSTEM "openjpa_legal.xml">
    <!ENTITY jpa_overview_intro.xml SYSTEM "jpa_overview_intro.xml">
    <!ENTITY jpa_overview_why.xml SYSTEM "jpa_overview_why.xml">
    <!ENTITY jpa_overview_arch.xml SYSTEM "jpa_overview_arch.xml">
    <!ENTITY jpa_overview_pc.xml SYSTEM "jpa_overview_pc.xml">
    <!ENTITY jpa_overview_meta.xml SYSTEM "jpa_overview_meta.xml">
    <!ENTITY jpa_overview_persistence.xml SYSTEM "jpa_overview_persistence.xml">
    <!ENTITY jpa_overview_emfactory.xml SYSTEM "jpa_overview_emfactory.xml">
    <!ENTITY jpa_overview_em.xml SYSTEM "jpa_overview_em.xml">
    <!ENTITY jpa_overview_trans.xml SYSTEM "jpa_overview_trans.xml">
    <!ENTITY jpa_overview_query.xml SYSTEM "jpa_overview_query.xml">
    <!ENTITY jpa_overview_criteria.xml SYSTEM "jpa_overview_criteria.xml">
    <!ENTITY jpa_overview_sqlquery.xml SYSTEM "jpa_overview_sqlquery.xml">
    <!ENTITY jpa_overview_mapping.xml SYSTEM "jpa_overview_mapping.xml">
    <!ENTITY jpa_overview_conclusion.xml SYSTEM "jpa_overview_conclusion.xml">
    <!ENTITY jpa_tutorials.xml SYSTEM "jpa_tutorials.xml">
    <!ENTITY ref_guide_intro.xml SYSTEM "ref_guide_intro.xml">
    <!ENTITY ref_guide_conf.xml SYSTEM "ref_guide_conf.xml">
    <!ENTITY ref_guide_logging.xml SYSTEM "ref_guide_logging.xml">
    <!ENTITY ref_guide_dbsetup.xml SYSTEM "ref_guide_dbsetup.xml">
    <!ENTITY ref_guide_pc.xml SYSTEM "ref_guide_pc.xml">
    <!ENTITY ref_guide_meta.xml SYSTEM "ref_guide_meta.xml">
    <!ENTITY ref_guide_mapping.xml SYSTEM "ref_guide_mapping.xml">
    <!ENTITY ref_guide_deploy.xml SYSTEM "ref_guide_deploy.xml">
    <!ENTITY ref_guide_runtime.xml SYSTEM "ref_guide_runtime.xml">
    <!ENTITY ref_guide_caching.xml SYSTEM "ref_guide_caching.xml">
    <!ENTITY ref_guide_encryption.xml SYSTEM "ref_guide_encryption.xml">
    <!ENTITY ref_guide_remote.xml SYSTEM "ref_guide_remote.xml">
    <!ENTITY ref_guide_slice.xml SYSTEM "ref_guide_slice.xml">
    <!ENTITY ref_guide_integration.xml SYSTEM "ref_guide_integration.xml">
    <!ENTITY ref_guide_optimization.xml SYSTEM "ref_guide_optimization.xml">
    <!ENTITY ref_guide_instrumentation.xml SYSTEM "ref_guide_instrumentation.xml">
    <!ENTITY samples_guide.xml SYSTEM "samples_guide.xml">
    <!ENTITY jpa_resources.xml SYSTEM "jpa_resources.xml">
    <!ENTITY supported_databases.xml SYSTEM "supported_databases.xml">
    <!ENTITY migration_considerations.xml SYSTEM "migration_considerations.xml">
    <!ENTITY properties_info.xml SYSTEM "properties_info.xml">
]>
<book id="manual">
    <bookinfo>
        <title>Apache OpenJPA 2.4 User's Guide</title>
        <copyright>
            <year>2006-2017</year>
            <holder>The Apache Software Foundation</holder>
        </copyright>
        <releaseinfo>Built from OpenJPA version <?eval ${openjpa.version}?> revision <?eval ${buildNumber}?>.</releaseinfo>
        <pubdate>Last updated on <?eval ${timestamp}?>.</pubdate>
    </bookinfo>

    <part id="introduction">
        <title>Introduction</title>
        &openjpa_intro.xml;
        &openjpa_legal.xml;
    </part>

    <part id="jpa_overview">
        <title>Java Persistence API</title>
        &jpa_overview_intro.xml;
        &jpa_overview_why.xml;
        &jpa_overview_arch.xml;
        &jpa_overview_pc.xml;
        &jpa_overview_meta.xml;
        &jpa_overview_persistence.xml;
        &jpa_overview_emfactory.xml;
        &jpa_overview_em.xml;
        &jpa_overview_trans.xml;
        &jpa_overview_query.xml;
        &jpa_overview_criteria.xml;
        &jpa_overview_sqlquery.xml;
        &jpa_overview_mapping.xml;
        &jpa_overview_conclusion.xml;
    </part>

    <!--
    ### TUTORIAL
    <part id="tutorials">
        <title>Tutorials</title>
        &jpa_tutorials.xml;
    </part>
    -->

    <part id="ref_guide">
        <title>Reference Guide</title>
        &ref_guide_intro.xml;
        &ref_guide_conf.xml;
        &ref_guide_logging.xml;
        &ref_guide_dbsetup.xml;
        &ref_guide_pc.xml;
        &ref_guide_meta.xml;
        &ref_guide_mapping.xml;
        &ref_guide_deploy.xml;
        &ref_guide_runtime.xml;
        &ref_guide_caching.xml;
        &ref_guide_encryption.xml;
        &ref_guide_remote.xml;
        &ref_guide_slice.xml;
        &ref_guide_integration.xml;
        &ref_guide_optimization.xml;
        &ref_guide_instrumentation.xml;
    </part>

    <!--
    <part id="samples_guide_part">
        <title>Samples</title>
        &samples_guide.xml;
    </part>
    -->

    <part id="appendices">
        <title>Appendices</title>
        &jpa_resources.xml;
        &supported_databases.xml;
        &migration_considerations.xml;
    </part>
</book>
