<?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.
-->

<page>
    <content>
        <p>
            The bean editor application uses Cocoon Forms, Pipelines and
            Flow to edit a simple data structure modeled by Java objects.
        </p>
        <p>
            As such, it is a good example of how a Cocoon front-end can be used to manipulate business
            objects implemented in Java.
        </p>
        <p>
            You will notice that the Java objects have nothing to do with Cocoon in our case. They are
            completely independent of any Cocoon libraries. This is one of the options for implementing
            the business layer of your application, useful when you have legacy business layer code to
            integrate.
        </p>
        <p>
            Our Java beans are trivial and uninteresting: what we're looking for is an understanding of
            how Cocoon Pipelines, Forms and Flow play together with Java code, and for this a very simple
            application is certainly good.
        </p>
        <p>
            After studying this application, you will see that very little code had to be written to
            implement an already capable system. As is often the case with a modular system like Cocoon,
            the hard part is not having to write a lot of code, but rather finding where to write the
            small amounts of code that are needed.
        </p>

        <h2>Use cases</h2>
        <p>
            To keep it simple and focused, this application does just three things:
            <ol>
                <li>Display a list of <em>tasks</em>, units of work assigned to somebody and containing dated comments</li>
                <li>Display a single <em>task</em> with its comments</li>
                <li>Edit a single <em>task</em>, allowing comments to be added and removed</li>
            </ol>
            New tasks cannot be created, and tasks cannot be deleted.
        </p>
        <p>
            The application is obviously incomplete, but shows many interesting features of the Cocoon Forms,
            and their interplay with the Cocoon components that we already know.
        </p>
        <h2>Running the application</h2>
        <p>
            To run the bean editor application, Cocoon must be able to load the required Java classes.
        </p>
        <p>
            If you're running this tutorial from the standard Cocoon distribution this should be
            taken care of already, as the required classes are copied into the <em>webapp/WEB-INF/lib</em>
            directory automatically during the build.
        </p>
        <p>
            When you start using your own Java classes with Cocoon, you'll have to take care of this yourself,
            usually by making sure the required jar files are copied in the right place.
        </p>
        <p>
            For now, you can start the application from
            <a href="../">this link</a>.
        </p>

    </content>
</page>
