<?xml version='1.0' encoding="iso-8859-1" ?>
<!--
  ~ 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.1.2//EN" "../../../lib/docbook/docbook-dtd/docbookx.dtd"
        [
                <!ENTITY preface       SYSTEM "preface.xml">
                <!ENTITY terminology    SYSTEM "terminology.xml">
                <!ENTITY overview      SYSTEM "overview.xml">
                <!ENTITY security-manager  SYSTEM "security-manager.xml">
                <!ENTITY realms             SYSTEM "realms.xml">
                <!ENTITY authentication    SYSTEM "authentication.xml">
                <!ENTITY authorization    SYSTEM "authorization.xml">
                <!ENTITY sessions      SYSTEM "sessions.xml">
                <!ENTITY cryptography    SYSTEM "cryptography.xml">
                <!ENTITY caching            SYSTEM "caching.xml">
                <!ENTITY web-support    SYSTEM "web-support.xml">
                <!ENTITY web-filter         SYSTEM "web-filter.xml">
                <!ENTITY web-taglibs        SYSTEM "web-taglibs.xml">
                <!ENTITY ki.tld      SYSTEM "ki.tld.xml">
                ]>
<book>
    <bookinfo>
        <title>Apache Ki Reference Documentation</title>
        <releaseinfo>1.0.0</releaseinfo>
        <authorgroup>
            <author>
                <firstname>Les</firstname>
                <surname>Hazlewood</surname>
            </author>
        </authorgroup>
        <legalnotice>
            <para>
                Copies of this document may be made for your own use and for
                distribution to others, provided that you do not charge any
                fee for such copies and further provided that each copy
                contains this Copyright Notice, whether distributed in print
                or electronically.
            </para>
        </legalnotice>
    </bookinfo>
    <!-- front matter -->
    <toc/>
    &preface;
    <part id="ki-quickstart">
        <title>Apache Ki Quickstart</title>
        <partintro id="ki-quickstart-intro">
            <para>
                This initial part of the reference documentation walks through the simplest quickstart application
                so that you may become familiarized Apache Ki's programming API and general concepts. While this
                application is probably the absolute simplest Apache Ki-enabled application that we know of,
                it should make you comfortable understanding what Apache Ki can do, and how it can help you create
                more secure applications. The rest of the documentation will serve as your guide to help you move
                from this simple example to even the most complicated enterprise applications.
            </para>

            <note>
                <para>
                    The code for this quickstart application is in the <filename>samples/quickstart</filename>
                    directory of the source distribution.
                </para>
            </note>
        </partintro>
    </part>
    <part id="ki-core">
        <title>Apache Ki Core</title>
        <partintro id="ki-core-intro">
            <para>
                This part of the reference documentation covers
                Apache Ki's core architectural components that support
                functionality in all environments, from
                constrained Applets and cell phones to full n-tier
                clustered enterprise applications.
            </para>
            <para>
                Most important among these are the Subject and
                SecurityManager components. These are then followed
                by comprehensive coverage of the supporting compnents
                responsiple for handling logging in, called an
                <interfacename>Authenticator</interfacename>
                and access control, called an
                <interfacename>Authorizer</interfacename>.
            </para>
            <para>

            </para>
            <para>
                Finally, the adoption of the test-driven-development (TDD)
                approach to software development is certainly advocated by
                the Spring team, and so coverage of Spring's support for
                integration testing is covered (alongside best practices for
                unit testing). The Spring team have found that the correct
                use of IoC certainly does make both unit and integration
                testing easier (in that the presence of setter methods and
                appropriate constructors on classes makes them
                easier to wire together on a test without having to set up
                service locator registries and suchlike)... the chapter
                dedicated solely to testing will hopefully convince you of
                this as well.
            </para>
            <itemizedlist>
                <listitem>
                    <para>
                        <xref linkend="security-manager"/>
                    </para>
                </listitem>
                <!-- <listitem>
                 <para><xref linkend="authentication"/></para>
               </listitem>
               <listitem>
                 <para><xref linkend="authorization"/></para>
               </listitem>
               <listitem>
                 <para><xref linkend="realms"/></para>
               </listitem>
               <listitem>
                 <para><xref linkend="sessions"/></para>
               </listitem>
               <listitem>
                 <para><xref linkend="cryptography"/></para>
               </listitem> -->
            </itemizedlist>
        </partintro>
        &security-manager;
        &authentication;
        &authorization;
        &realms;
        &sessions;
        &cryptography;
    </part>
    <!-- <part id="ki-web">
     <title>Web Support</title>
     <partintro id="ki-web-intro">
       <para>
         This part of the reference documentation covers
                 Apache Ki's web support, specifically using Apache Ki in
                 a Servlet container for web-based applications.
       </para>
       <para>
         The Spring Framework's own web framework,
         <link linkend="mvc">Spring Web MVC</link>, is covered in
         the first couple of chapters. A number of the remaining
         chapters in this part of the reference documentation are
         concerned with the Spring Framework's integration with
         other web technologies, such as <link linkend="struts">Struts</link>
         and <link linkend="jsf">JSF</link> (to name but two).
       </para>
       <para>
         This section concludes with coverage of Spring's MVC
         <link linkend="portlet">portlet framework</link>.
       </para>
       <itemizedlist>
         <listitem>
           <para><xref linkend="mvc"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="view"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="web-integration"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="portlet"/></para>
         </listitem>
       </itemizedlist>
     </partintro>
     &mvc;
     &view;
     &web-integration;
     &portlet;
   </part>
   <part id="ki-integration">
     <title>Integration</title>
     <partintro id="ki-integration-intro">
       <para>
         This part of the reference documentation covers Apache Ki's
                 integration with other technologies that might be
                 useful in application deployments.
       </para>
       <itemizedlist>
         <listitem>
           <para><xref linkend="remoting"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="ejb"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="jms"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="jmx"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="cci"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="mail"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="scheduling"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="dynamic-language"/></para>
         </listitem>
         <listitem>
           <para><xref linkend="metadata"/></para>
         </listitem>
       </itemizedlist>
     </partintro>
   </part> -->
    <!-- back matter -->
    &ki.tld;
</book>
