<?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.5//EN" 
    "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
        
        <!ENTITY % entities SYSTEM "entities.ent">
        %entities;
]>

<book lang="en"><?dbhtml dir="userguide" ?>
    <bookinfo>
        <title>User Guide - Apache River Container</title>
        <subtitle>Jini - A Java-based Service Oriented Architecture</subtitle>
        <releaseinfo><!-- State of the document -->draft</releaseinfo>
        <edition><!-- Mandatory! Should be equal to the latest revision-number -->&productversion;</edition>
        <authorgroup>
            <author>
                <firstname>Greg</firstname>
                <surname>Trasuk</surname>
                <affiliation>
                    <orgname>The Apache Software Foundation</orgname>
                    <orgdiv>Apache River</orgdiv>
                </affiliation>
            </author>
        </authorgroup>
        <revhistory>
            <revision>
                <revnumber>0.1</revnumber>
                <date>2013/12/23</date>
                <authorinitials>gmt</authorinitials>
                <revremark>Initial draft</revremark>
            </revision>
        </revhistory>
        <author><!-- contact person: -->
            <firstname>Greg</firstname><surname>Trasuk</surname>
            <email>gtrasuk at apache dot org</email>
        </author>
        
        <!-- Abstract -->
        <xi:include href="common/abstract.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
        
        <subjectset><!-- keywords -->
            <subject>
                <subjectterm>Documentation</subjectterm>
            </subject>
            <subject>
                <subjectterm>Reference</subjectterm>
            </subject>
        </subjectset>
        
        <pubdate>&date;</pubdate>
        <productname>&productnamecomplete;</productname>
        <productnumber>&productversion;</productnumber>
        <address>
            <!-- postal address, keep line breaks -->
            © &companyname;
            <!-- 
            &departmentname;
            &companyaddress1;
            &companyaddress2;
            -->            
        </address>
        <legalnotice>
            &legalnotice;
        </legalnotice>
        <copyright>
            <year>&year;</year>
            <holder>&companyname;</holder>
        </copyright>

    </bookinfo>

    <xi:include href="userguide/preface.xml"
        xmlns:xi="http://www.w3.org/2001/XInclude" />
        
    <xi:include href="userguide/Quickstart.xml"
        xmlns:xi="http://www.w3.org/2001/XInclude" />
        
    <xi:include href="userguide/PackagingAndDeploying.xml"
        xmlns:xi="http://www.w3.org/2001/XInclude" />
        
    <xi:include href="userguide/ConfiguringTheContainer.xml"
        xmlns:xi="http://www.w3.org/2001/XInclude" />
        
        
    <index id="chapter.index"/>

</book>
