You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by he...@apache.org on 2004/08/15 16:55:55 UTC

cvs commit: jakarta-turbine-site/xdocs/further-reading index.xml

henning     2004/08/15 07:55:55

  Modified:    xdocs    fsd.xml index.xml navigation.xml news.xml
                        turbine-concepts.xml
               xdocs/further-reading index.xml
  Added:       xdocs    how-to-help.xml
  Log:
  Rework the site docs to make the information on Overview and Turbine Concepts
  resemble the reality a little.
  
  Add the how-to-help.xml from the turbine-2.4 branch. This is global information.
  
  Rework the navigation to make clear what is global Turbine information and what
  is specific framework info.
  
  Add a few news items.
  
  Add META to the links, add Turbine 2.3 and Turbine 2.4 on top.
  
  Revision  Changes    Path
  1.3       +13 -0     jakarta-turbine-site/xdocs/fsd.xml
  
  Index: fsd.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-site/xdocs/fsd.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- fsd.xml	31 Mar 2004 01:09:29 -0000	1.2
  +++ fsd.xml	15 Aug 2004 14:55:55 -0000	1.3
  @@ -23,6 +23,19 @@
   
   <body>
   
  +<section name="NOTE">
  +
  +<p>
  +This specification was originally written for the Turbine 2.1
  +release. While it still holds true for Turbine 2.3 in many parts, it
  +might be outdated in details. It should serve to give you a
  +&quot;broad&quot; view of the Turbine framework, not a detailed
  +description how things work. Turbine 2.4 uses a very different
  +concept, so this specification no longer applies to it.
  +</p>
  +
  +</section>
  +
   <section name="Specification">
   
   <p>
  
  
  
  1.24      +58 -34    jakarta-turbine-site/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-site/xdocs/index.xml,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- index.xml	31 Mar 2004 01:09:29 -0000	1.23
  +++ index.xml	15 Aug 2004 14:55:55 -0000	1.24
  @@ -27,12 +27,18 @@
   
     <p>
       Turbine is a servlet based framework that allows experienced Java
  -    developers to quickly build secure web applications. Parts of
  -    Turbine can also be used independently of the web portion of Turbine
  -    as well. In other words, we strive to make portions of Turbine
  -    easily available for use in other applications.
  +    developers to quickly build web applications. Turbine allows you
  +    to use personalize the web sites and to use user logins to restrict
  +    access to parts of your application.
     </p>
  -  
  +
  +  <p>
  +    Turbine is a matured and well established framework that is used as
  +    the base of many other projects (like e.g. the excellent <a
  +    href="http://portals.apache.org/jetspeed-1/">Jetspeed 1</a>
  +    Portals framework.
  +  </p>
  +
     <p>
       Turbine is an excellent choice for developing applications that make use of a 
       services-oriented architecture. Some of the functionality
  @@ -55,48 +61,66 @@
   
     <p>
       Turbine is developed in an open, participatory environment and
  -    released under the <a href="http://www.apache.org/licenses">Apache
  +    released under the <a href="common/license.html">Apache
       Software License</a>. Turbine is intended to be a collaboration of the
       best-of-breed developers from around the world.  We invite you to
       participate in this open development project.  To learn more about getting
  -    involved, <a href="turbine-2.4/how-to-help.html">click here</a>.
  +    involved, <a href="how-to-help.html">look at our &quot;How to Help&quot; pages</a>.
     </p>
   
   </section>
   
   <section name="Downloads and Versions">
     <p>
  -    <a href="download.html"><strong>Turbine 2.3</strong></a> is
  -    the current production quality release. Starting with Turbine 2.3 we 
  -    no longer support freemarker, webmacro and castor. So if you use one of 
  -    these legacy services you should switch to the supported Velocity, JSP, or Torque.
  -  </p>
  -  <p>
  -    <a href="turbine-2.4/index.html"><strong>Turbine 2.4</strong></a> is
  -    the next version of Turbine focusing on integrating various Fulcrum components using
  -    the Avalon container.  Help is greatly appreciated!
  -  </p>  
  -</section>
  +    Turbine comes in two shapes which both have their advantages:
   
  -<section name="Fulcrum">
  -  <p>
  -    <a href="http://jakarta.apache.org/turbine/fulcrum/">Fulcrum</a> is a collection of services originally developed as part of Turbine.
  -    Fulcrum is now decoupled and usable in any environment that supports <a href="http://avalon.apache.org/">Avalon</a> components.
  -  </p>
  +  <ul>
  +    <li><a href="turbine-2.3/">Turbine 2.3</a> is 
  +    the version you should use when either migrating from an older version of
  +    Turbine or starting a project based on a release version of the Turbine
  +    framework.</li>
  +
  +    <li><a href="turbine-2.4/">Turbine 2.4</a> is
  +    the shape of things to come. Turbine 2.4 is using next generation technologies
  +    like an <a href="http://avalon.apache.org/">Avalon-based</a> container and decoupled
  +    components from the <a href="fulcrum/">Fulcrum</a> sister project
  +    of Turbine. If you don't mind building your own jars from the CVS tree and can tolerate the
  +    occasional change while developing on the framework, you should use this version of Turbine.</li>
  +  </ul>
  +  </p>  
   </section>
   
  -<section name="Torque">
  -  <p>
  -    <a href="http://db.apache.org/torque/">Torque</a> is a persistence layer originally developed as part of Turbine.
  -    Torque is now decoupled and a subproject of <a href="http://db.apache.org/">db.apache.org</a>.
  -  </p>
  -</section>
  +<section name="Turbine Alumni">
   
  -<section name="Maven">
  -  <p>
  -    <a href="http://maven.apache.org">Maven</a> is an advanced Java Project Management tool originally developed with turbine.
  -    Maven has moved to <a href="http://maven.apache.org">maven.apache.org</a>.
  -  </p>
  +<p>
  + As a longterm member of the <a href="http://jakarta.apache.org/">Jakarta Project</a>, Turbine has influenced
  +quite a number of projects:
  +</p>
  +<ul>
  +  <li>
  +    <a href="fulcrum/">Fulcrum</a>
  +    is a collection of services originally developed as part of
  +    Turbine.  Fulcrum is now decoupled and usable in any environment
  +    that supports <a href="http://avalon.apache.org/">Avalon</a>
  +    components.
  +  </li>
  +  <li>
  +    <a href="http://db.apache.org/torque/">Torque</a> is a persistence
  +    layer originally developed as part of Turbine.  Torque is now
  +    decoupled and part of the <a href="http://db.apache.org/">Apache Database Project</a>.
  +  </li>
  +  <li>
  +    <a href="http://maven.apache.org/">Maven</a> is an advanced Java
  +    Project Management tool originally developed out of the frustration with the
  +    Turbine build process. Maven is now a toplevel Apache project, residing at <a
  +    href="http://maven.apache.org/">maven.apache.org</a>.
  +  </li>
  +  <li>
  +    In addition, Turbine has spawned a number of <a href="http://jakarta.apache.org/commons/">Commons</a>
  +    components like <a href="http://jakarta.apache.org/commons/configuration/">Commons configuration</a> or
  +    <a href="http://jakarta.apache.org/commons/sandbox/email/">Commons EMail</a>.
  +  </li>
  +</ul>
   </section>
   
   </body>
  
  
  
  1.24      +11 -11    jakarta-turbine-site/xdocs/navigation.xml
  
  Index: navigation.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-site/xdocs/navigation.xml,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- navigation.xml	30 May 2004 13:21:04 -0000	1.23
  +++ navigation.xml	15 Aug 2004 14:55:55 -0000	1.24
  @@ -22,7 +22,10 @@
   
       <body>
       <links>
  +      <item name="Turbine-2.3"             href="/turbine-2.3/"/>
  +      <item name="Turbine-2.4"             href="/turbine-2.4/"/>
         <item name="Fulcrum"                 href="/fulcrum/"/>
  +      <item name="META"                    href="/meta/"/>
         <item name="TDK"                     href="/tdk/"/>
         <item name="JCS"                     href="/jcs/"/>
       </links>
  @@ -37,13 +40,6 @@
           <item name="Sites Related to Turbine"   href="/common/related.html"/>
           <item name="License"               href="/common/license.html"/>
           <item name="Download"		   href="/download.html"/>
  -    </menu>
  -
  -    <menu name="Turbine Documentation">
  -        <item name="Core DB Schema"        href="/turbine-2.3/turbine-schema.html"/>
  -        <item name="How-To's"              href="/turbine-2.3/howto/index.html"/>
  -        <item name="Services"              href="/turbine-2.3/services/index.html"/>
  -        <item name="JavaDocs"              href="/turbine-2.3/apidocs/"/>
           <item name="Example Apps"          href="/examples.html"/>
       </menu>
   
  @@ -55,16 +51,20 @@
           <item name="Development"                      href="http://nagoya.apache.org/wiki/apachewiki.cgi?JakartaTurbine2/Development"/>
       </menu>
   
  +    <menu name="Turbine Documentation">
  +        <item name="Turbine 2.3 Documentation"     href="/turbine-2.3/index.html"/>
  +        <item name="Turbine 2.4 Documentation"     href="/turbine-2.4/index.html"/>
  +    </menu>
  +
       <menu name="Turbine Sub Projects">
           <item name="Fulcrum"               href="/fulcrum/index.html"/>
  +        <item name="META"                  href="/meta/index.html"/>
           <item name="TDK"                   href="/tdk/index.html"/>
           <item name="JCS"                   href="/jcs/index.html"/>
       </menu>
   
  -    <menu name="Development">
  -        <item name="Turbine 2.3 Development Info"     href="/turbine-2.3/index.html"/>
  -        <item name="Turbine 2.4 Development Info"     href="/turbine-2.4/index.html"/>
  -        <item name="How To Help"                 href="/turbine-2.4/how-to-help.html"/>
  +    <menu name="General Development Information">
  +        <item name="How To Help"                 href="how-to-help.html"/>
           <item name="Coding Specification"  href="/common/code-standards.html"/>
           <item name="Developer Links"       href="/common/developer-links.html"/>
           <item name="Improving Documentation"          href="/common/documentation.html"/>
  
  
  
  1.25      +19 -1     jakarta-turbine-site/xdocs/news.xml
  
  Index: news.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-site/xdocs/news.xml,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- news.xml	31 Mar 2004 01:09:29 -0000	1.24
  +++ news.xml	15 Aug 2004 14:55:55 -0000	1.25
  @@ -1,4 +1,4 @@
  -<?xml version="1.0"?>
  +<?xml version="1.0" encoding="utf-8"?>
   <!--
   Copyright 2001-2004 The Apache Software Foundation
   
  @@ -24,6 +24,24 @@
   <body>
   
   <section name="News And Status">
  +
  +<h4>1 October 2004 - Turbine at OSCOM 4, Zürich, Switzerland</h4>
  +<p>
  +Rapid application prototyping with <a
  +href="http://jakarta.apache.org/turbine/">Turbine</a> and <a
  +href="http://maven.apache.org/">Maven</a> using the <a
  +href="meta/">Maven Environment for Turbine Applications (META)</a>
  +will be <a
  +href="http://www.oscom.org/events/oscom4/proposals/turbine">
  +presented</a> at OSCOM 4 in Zürich.
  +</p>
  +
  +<h4>14. August 2004 - Turbine 2.4 Milestone 1 Release</h4>
  +<p>
  +The Turbine team is proud to announce the first milestone release of
  +the Turbine 2.4 framework. This is intended to serve as a baseline for
  +early adopters of the Turbine 2.4 framework. 
  +</p>
   
   <h4>20 September 2003 - Turbine at the ApacheCon 2003</h4>
   <p>
  
  
  
  1.4       +226 -326  jakarta-turbine-site/xdocs/turbine-concepts.xml
  
  Index: turbine-concepts.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-site/xdocs/turbine-concepts.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- turbine-concepts.xml	31 Mar 2004 01:09:29 -0000	1.3
  +++ turbine-concepts.xml	15 Aug 2004 14:55:55 -0000	1.4
  @@ -25,405 +25,305 @@
   
   <section name="Turbine Concepts - Introduction">
   
  -
  -<p>Looking for a modern web application architecture for your
  -Java development? Turbine is an open source server-side Java framework from
  -the Jakarta Apache project. Any recent servlet container can be used to run your
  -Turbine application. The developer distribution of Turbine (the TDK) includes
  -the servlet runner Tomcat 4.0, also from the Jakarta Apache project. Almost
  -any web application that uses persistence should also use a relational
  -database. Turbine supports most major commercial and open source relational
  -databases and provides an object-relational mapping layer, known as Torque. Of
  -course, the biggest advantage of Turbine is that it is free, and all of the
  -source code is available to you, the application developer.</p>
  -
  -
  +<p>Looking for a modern web application architecture for your Java
  +development? Turbine is an open source server-side Java framework from
  +the Jakarta Apache project. Any servlet container supporting Servlet
  +Specification 2.2 or better can be used to run your Turbine
  +application.</p>
  +
  +<p>We offer an easy-to use development environment using a <a
  +href="http://maven.apache.org/">Maven</a>-based <a
  +href="meta/">plugin</a> to quickly start developing Turbine
  +applications. (There is also a legacy developement environment based
  +on Apache, called the <a href="tdk/">TDK (Turbine Development
  +Kit)</a>.</p>
  +
  +<p>Of course, the biggest advantage of Turbine is that it is free, and
  +all of the source code is available to you, the application
  +developer.</p>
   
   <p>A quick guide to Turbine technologies:</p>
   
   <ul>
  - <li>Presentation layer - Velocity or JSP</li>
  - <li>Database layer - Torque and Peers</li>
  - <li>Sample application - Flux</li>
  - <li>HTML Form Validation - Intake</li>
  - <li>Logging - Log4j and the Logging Service in Turbine 2</li>
  - <li>Services - Known as Fulcrum in Turbine 3</li>
  + <li>Presentation layer - <a href="http://jakarta.apache.org/velocity/">Velocity</a> or JSP</li>
  + <li>Database layer - Turbine uses <a
  +     href="http://db.apache.org/torque">Torque</a>, but different OM
  +     layers like <a href="http://db.apache.org/obj/">OJB</a> or <a
  +     href="http://www.hibernate.org/">Hibernate</a> are also
  +     supported.</li>
  + <li>HTML Form Validation using the Turbin provided &quot;Intake&quot;-Service.</li>
  + <li>Logging - Turbine uses <a href="http://jakarta.apache.org/commons/logging/">Commons Logging</a> and supports a wide range of logging
  +frameworks like <a href="http://logging.apache.org/log4j/docs/">Log4J</a>, jdk14 or simple file logging</li>
  + <li>Service based framework, using <a href="http://avalon.apache.org/">Avalon</a> compatible components in Turbine 2.4 and beyond.</li>
   </ul>
   
   
  +<p>
  +Applications built with Turbine are encouraged to follow the
  +Model-View-Controller (MVC) architecture. In the Model-View-Controller
  +design pattern, the Model is the business logic and stored data, the
  +View is the user interface, and the Controller handles application
  +flow and manages the Model and the Views.
  +</p>
   
  -<p>Applications built with Turbine are encouraged to follow the
  -Model-View-Controller (MVC) architecture. In the Model-View-Controller design
  -pattern, the Model is the business logic and stored data, the View is the user
  -interface, and the Controller handles application flow and manages the Model
  -and the Views.</p>
  -
  -
  +<p>
  +The Turbine architecture encourages developers to separate business
  +logic from presentation and application flow. If you use the Turbine
  +framework, your code will be much easier to maintain as a result.
  +</p>
   
  -<p>I'm going to explain how Turbine technology maps to MVC in
  -this article, after defining some core Turbine concepts. The Turbine architecture
  -encourages developers to separate business logic from presentation and
  -application flow. If you use the Turbine framework, your code will be much
  -easier to maintain as a result.</p>
   </section>
   
   <section name="How does Turbine fit in with other server side Java technologies">
   
  +<p>
  +The Turbine framework is a normal Java application that uses servlets
  +for handling web users. It is meant to be run under a servlet
  +container, and you can write your own custom servlets that load
  +Turbine objects and access Turbine singletons.
  +</p>
   
  -
  -<p>The Turbine framework is a normal Java application that uses
  -servlets for handling web users. It is meant to be run under a servlet
  -container, and you can write your own custom servlets that load Turbine objects
  -and access Turbine singletons.</p>
  -
  -
  -
  -<p>Turbine's presentation layer can be used with Java Server Pages
  -(JSP) or Velocity. Most Java developers working with web applications have
  -some experience with JSP already. Velocity is available from the Jakarta Apache
  -project, and is open source. I discuss how to choose between Velocity and JSP
  -for your project later in this article.</p>
  -
  +<p>
  +Turbine's presentation layer can be used with Java Server Pages (JSP)
  +or <a href="http://jakarta.apache.org/velocity/">Velocity</a>. Most
  +Java developers working with web applications have some experience
  +with JSP already. We discuss how to choose between <a
  +href="http://jakarta.apache.org/velocity/">Velocity</a> and JSP for
  +your project later on this page.
  +</p>
   
   
  -<p>Turbine can be used with Enterprise Java Beans (EJB).
  -Turbine would be a client of your EJB system, just like a Swing application.
  -This is most useful if you already have a system built that uses Enterprise
  -Java Beans, or if parts of your system need to be distributed on different
  -servers. You would probably build a new Turbine service to access your EJB
  -system. Turbine does not require the use of EJB session or entity beans.</p>
  +<p>
  +Turbine can be used with Enterprise Java Beans (EJB).Turbine would be
  +a client of an EJB system, just like a Swing application.  This is
  +most useful if there is already a system that uses Enterprise
  +Java Beans, or if parts of this system need to be distributed on
  +different servers. A developer can build a new Turbine service to
  +access the EJB system. Turbine does not require the use of EJB
  +session or entity beans.
  +</p>
   
   </section>
   
  -<section name="Torque Object-Relational Persistence layer">
  -
  -
  -
  -<p>Torque is a database persistence toolkit that Turbine uses. Most
  -open source and commercial relational databases are supported by Torque,
  -although you will generally have to supply your own JDBC driver. Torque can be
  -used by itself, in applications that don't use other Turbine classes. </p>
  -
  -
  -
  -<p>Torque will have to be set up for use with your database. You
  -will have to specify the name of your project, the type of database you use,
  -and your JDBC connection parameters. </p>
  -
  -
  -
  -<p>Your business objects will need to be modeled in XML to be
  -used with Torque. The project-schema.xml file will contain a description of
  -your database. You will need to describe your application's tables, columns,
  -indexes, and foreign keys. Generally, your business objects will map to a table,
  -and each field on the object will map to a column.</p>
  -
  -
  -
  -<p>Torque can be used to generate primary key IDs for each
  -table in your database. Torque has three different choices for generating
  -IDs. The native method uses the internal unique ID generation facility of your
  -database. The idbroker method asks the Turbine IDBroker service for a unique
  -ID. The advantage of the idbroker method over the native method is that it is
  -not dependent on which database Turbine uses. Torque can also be told not to
  -generate any primary keys, with the none keyword.</p>
  -
  -
  -
  -<p>Torque creates a SQL data schema for your database. For
  -some databases, Torque can execute this schema on your database to create the
  -tables for you. Torque also generates Java object source files for you. For
  -each table, Torque creates four different classes, two Peer classes and two
  -Data Object classes. One of the Peer classes and one of the Data Object
  -classes are Base classes. These are generated by Torque, and shouldn't be
  -edited. Instead, Torque provides you with two classes that extend each of the
  -Base classes. You should add your business logic to the subclasses. The Peer
  -classes correspond to the database table, and are static. The Data Object
  -classes represent an individual row of a table. The table columns become
  -JavaBean properties that can be used with standard getter and setter methods.</p>
  -
  -</section>
   <section name="Turbine Services">
   
  +<p>
  +Turbine Services are the back-end of the application framework. Each
  +Turbine Service is implemented as a singleton class that can use
  +Turbine's central configuration utility. These Services only have one
  +state that all requesting clients share.
  +</p>
   
  -<p>Turbine Services are the back-end of the application
  -framework. Each Turbine Service is implemented as a singleton class that can
  -use Turbine's central configuration utility. These Services only have one
  -state that all requesting clients share. </p>
  -
  -
  -
  -<p>Because each Service is used through an interface, Service
  -implementations are pluggable. This is extremely useful if you extend an
  -existing Service with your own functionality. All classes that use that
  -built-in Service will be able to use your new Service. </p>
  -
  -
  -
  -<p>Almost every large Turbine project will need to create some
  -of its own Services. Your new Service should have an interface that extends the
  -Initable and Service interfaces. Your Service implementation class should
  -implement your interface and extend the TurbineBaseService class. The easiest
  -way to create a Service is taking an existing service that is close to what you
  -are trying to accomplish and rewriting the parts that don't fit. For instance,
  -if you were creating a SOAP Service, the XML-RPC Service that comes with
  -Turbine would be a good starting point.</p>
  -
  -
  +<p>
  +Because each Service is used through an interface, Service
  +implementations are pluggable. This is extremely useful if extension
  +of an existing Service with new functionality is needed . All classes
  +that use that built-in Service will be able to use your new Service.
  +</p>
   
  -<p>Turbine comes with over 25 built-in Services. Here is a
  -brief overview of the some of the included Services:</p>
  +<p>
  +Starting with <a href="turbine-2.4/">Turbine 2.4</a>, the services are
  +based on the <a href="http://avalon.apache.org/">Avalon</a> framework. An
  +avalon-based component can be plugged into the Turbine framework without
  +any changes.
  +</p>
   
  +<p>
  +Turbine comes with a number of Services. These are bundled when using
  +<a href="turbine-2.3/">Turbine-2.3</a> or available separately as <a
  +href="http://avalon.apache.org/">Avalon</a> components from the <a
  +href="fulcrum/">Fulcrum</a> project.
  +</p>
   
  +<p>Here is a brief overview of the some of the Services:</p>
   
   <ul>
    <li>IntakeService - Provides web form validation and automatic
        mapping of data to a bean. All of your input forms can be easily
  -     validated, and all of the tedious code that maps HTML form parameters to
  -     setter methods on a Bean is done for you. Intake is configured with a
  -     single XML file.</li>
  +     validated, and all of the mapping of HTML form parameters to
  +     setter methods on a Bean is done automatically. Intake is configured with
  +     XML files.</li>
    <li>UploadService - Manages file uploads from HTML widgets.</li>
  +
    <li>XSLTService - Transforms XML documents with XSLT
        stylesheets. This service can cache compiled stylesheets for extra
        performance.</li>
  +
    <li>SecurityService - Manages users and permissions for
  -     Turbine. I discuss this Service in more detail in the next section,
  -     &quot;Users and Security&quot;</li>
  +     Turbine. Turbine has a user, group, role, permission system which uses
  +     a database layer or LDAP as its backend.</li>
   </ul>
   
  -
  -
  -
   </section>
  -<section name="Users and Security">
  -
  -
  -
  -<p>Turbine comes with a security model and several security
  -helper classes. In Turbine 2, the user security is contained in the
  -org.apache.turbine.services.security package and its sub-packages. </p>
  -
  -
  -
  -<p>Turbine's security model has four interfaces:</p>
  -
  -<ul>
  - <li>User</li>
  - <li>Group</li>
  - <li>Role</li>
  - <li>Permission</li>
  -</ul>
  -
  -
  -<p>The User interface is implemented by the TurbineUser class.
  -Each account in your application should be a TurbineUser object. </p>
  -
  -
  -
  -<p>The Group is not a collection of users. Instead, the Group
  -is a resource or context that permissions are assigned to. Imagine that your
  -application has two different sections, User Administration and Server Administration.
  -Some users may be assigned permissions for one section, other users may be
  -assigned the same permissions for the other section. The Group allows you to
  -use the same permission name for different parts of the application.</p>
  -
  -
  -
  -<p>The Role is a collection of Permissions. A Role can be made
  -up of more than one Permission object, and it is a convenient way to organize
  -Permissions. A good example would be an Administrator Role that contains Edit
  -User, Delete User, and Add User permissions. </p>
  -
   
  -
  -<p>The Permission controls access. Each individual action or
  -item in an application can be assigned a Permission. A User is granted a Permission
  -programmatically from within your Turbine code.</p>
  -
  -</section>
   <section name="Model View Controller (MVC)">
   
  -<p>The Model View Controller (MVC) architecture allows the
  -developer to separate presentation from business logic, which makes for more
  -maintainable code. MVC has been used in traditional GUI programming for years,
  -but most of the early web application architectures didn't take advantage of
  -this separation. </p>
  -
  -
  -
  -<p>Applications that use Java servlets can mix HTML into the
  -Java code, requiring a recompile of the application if there are any look and
  -feel changes. Sun corrected this problem by creating Java Server Pages (JSP),
  -which are similar to Microsoft's Active Server Pages (ASP). An HTML designer
  -can change the GUI without touching the Java code embedded into the JSP. Unfortunately,
  -JSP doesn't have to conform to the MVC paradigm, so many applications were
  -developed with business logic in the JSP pages. Several web application
  -frameworks were created to bring MVC to the J2EE world, including Struts and
  -Turbine. More information on Struts can be found on its web site at <a
  -href="http://jakarta.apache.org/struts">http://jakarta.apache.org/struts</a>.</p>
  -
  -
  -<p>One web application version of MVC is called Model 2. Sun
  -created this term to describe J2EE applications that are built with a
  -Controller servlet that manages interaction with the View JSPs and the back-end
  -Model. </p>
  -
  -
  -
  -<p>With Turbine, the Controller is the core TurbineServlet and
  -the Action Event Handlers. Actions are used within Turbine to handle any user
  -input that requires interaction with the Model. Turbine developers can assign
  -different Actions to each input element in an HTML form. Actions aren't tied
  -to a specific web page - if you have a common element such as a search form on
  -multiple pages, you can use the same Action for each.</p>
  +<p>
  +The Model View Controller (MVC) architecture allows the developer to
  +separate presentation from business logic, which makes for more
  +maintainable code. MVC has been used in traditional GUI programming
  +for years, but most of the early web application architectures didn't
  +take advantage of this separation.
  +</p>
   
  +<p>
  +Applications that use Java servlets can mix HTML into the Java code,
  +requiring a recompile of the application if there are any look and
  +feel changes. Sun corrected this problem by creating Java Server Pages
  +(JSP), which are similar to Microsoft's Active Server Pages (ASP). An
  +HTML designer can change the GUI without touching the Java code
  +embedded into the JSP. Unfortunately, JSP doesn't have to conform to
  +the MVC paradigm, so many applications were developed with business
  +logic in the JSP pages. Several web application frameworks were
  +created to bring MVC to the J2EE world, including Struts and
  +Turbine. More information on Struts can be found <a
  +href="http://struts.apache.org/">on its web site</a>.
  +</p>
   
   
  -<p>The View in Turbine is the presentation layer, either
  -Velocity or JSP. In either case, no business logic should be embedded in the
  -View.</p>
  +<p>
  +One web application version of MVC is called Model 2. Sun created this
  +term to describe J2EE applications that are built with a Controller
  +servlet that manages interaction with the View JSPs and the back-end
  +Model.
  +</p>
   
  +<p>
  +With Turbine, the Controller is the core TurbineServlet and the Action
  +Event Handlers. Actions are used within Turbine to handle any user
  +input that requires interaction with the Model. Turbine developers can
  +assign different Actions to each input element in an HTML
  +form. Actions aren't tied to a specific web page - if you have a
  +common element such as a search form on multiple pages, you can use
  +the same Action for each.
  +</p>
   
  +<p>
  +The View in Turbine is the presentation layer, either <a
  +href="http://jakarta.apache.org/velocity/">Velocity</a> or JSP. In
  +either case, no business logic should be embedded in the View.
  +</p>
   
  -<p>The Model contains the Peers or Services that you use for your
  -data source.</p>
  +<p>
  +The Model contains the Peers or Services that you use for your data
  +source.
  +</p>
   
   <subsection name="Pull model of MVC">
   
  -<p>Turbine 2 supports the Pull Model for moving data between
  -the Model and the View. The Java programmers that work on the Model can
  -create objects called Tools that expose the business logic and objects of the
  -Model to the View. Every page or screen in the View will have access to the
  -Tools. If the UI programmers that work on the Velocity or JSP files in the
  -View want to move functionality inside the page or between pages, they don't
  -need to get the Model developers to change any code. This is an extremely
  -effective method of separating presentation from data.</p>
  -
  -
  -
  -<p>Tool objects can follow the Facade design pattern of providing
  -a single unified API for a complicated or disparate set of Model functionality.
  -This provides a level of decoupling between the View and the underlying Model.
  -If the Model definition changes, only the Tool will need to be modified,
  -instead of every presentation page that uses that Model.</p>
  -
  -
  +<p>
  +Turbine supports the Pull Model for moving data between the Model
  +and the View. The Java programmers that work on the Model can create
  +Tool objects that expose the business logic and objects of the
  +Model to the View. Every page or screen in the View will have access
  +to the Tools. If the UI programmers that work on the <a
  +href="http://jakarta.apache.org/velocity/">Velocity</a> or JSP files
  +in the View want to move functionality inside the page or between
  +pages, they don't need to get the Model developers to change any
  +code. This is an extremely effective method of separating presentation
  +from data.
  +</p>
   
  +<p>
  +Tool objects can follow the Facade design pattern of providing a
  +single unified API for a complicated or disparate set of Model
  +functionality.  This provides a level of decoupling between the View
  +and the underlying Model.  If the Model definition changes, only the
  +Tool will need to be modified, instead of every presentation page that
  +uses that Model.
  +</p>
   
   </subsection>
   <subsection name="Velocity or JSP">
   
  -
  -
  -<p>Turbine gives developers a choice for which presentation
  -language to use. Often times, this can be part of the requirements given to a
  -development team. JSP is an established standard from Sun Microsystems, and
  -there is a lot of momentum in the marketplace for JSP. From reading many
  -anecdotal posts on the Turbine mailing lists, most developers that use Turbine
  -prefer Velocity.</p>
  -
  -
  -
  -<p>My experience has been with JSP sites that weren't based on
  -Turbine, and with projects that used Velocity with Turbine. I feel that
  -Velocity is much simpler to work with than JSP, and you won't miss the extra
  -power that comes with JSP. One of the core tenets of the MVC design pattern is
  -that there shouldn't be any business logic in the View, and most guidelines for
  -JSP encourage the use of taglibs over Java scriptlets in your JSP. Velocity is
  -a templating language, and it is not possible to execute any embedded Java code
  -in your templates.</p>
  +<p>
  +Turbine gives developers a choice for which presentation language to
  +use. Often times, this can be part of the requirements given to a
  +development team. JSP is an established standard from Sun
  +Microsystems, and there is a lot of momentum in the marketplace for
  +JSP. From reading many anecdotal posts on the Turbine mailing lists,
  +most developers that use Turbine prefer <a
  +href="http://jakarta.apache.org/velocity/">Velocity</a>.
  +</p>
   
   </subsection>
   </section>
  -<section>Getting Started</section>
  -
  -
  -<p>Turbine has a learning curve for new developers, but don't
  -let that discourage you from using it for your own projects.</p>
  -
  -
  -
  -<p>The Turbine Developer Kit (TDK) contains everything you need
  -for getting started with Turbine except Ant and a JDBC-compliant database. Ant
  -is an open source Java build tool from the Jakarta Apache Project that Torque
  -requires. The Turbine source code can be downloaded from the same location as
  -the TDK. </p>
  -
  -
  -
  -<p>Complete directions for getting Turbine up and running with
  -your database are included with the TDK distribution as /tdk/webapps/site/turbine-docs/howto/tdk-howto.html.</p>
  -
  -
  -
  -<p>After you get Turbine running on your computer, explore the
  -Flux application installed with the TDK. Flux is a security application built
  -with Turbine that lets you manage Users, Groups, Roles, and Permissions. Because
  -the source code for Turbine is available, you can trace calls from Flux into
  -the Turbine framework.</p>
  -
  -
  -
  -<p>You can decide whether to extend Flux for your application,
  -or whether it is better to build a Turbine application from scratch. If you need
  -user management functionality, it might be better to start with Flux.</p>
  -
  -
  -
  -<p>After working with Turbine for a few minutes, a few hours,
  -or a few days = you're probably going to get stuck. The best thing to do is to
  -check out the Turbine mailing list archives, available in several locations.
  -Check the Jakarta Apache mailing list page below, as these archives change
  -frequently. You can also download complete copies of every mail sent to any
  -Jakarta Apache mailing list, in the MBOX format. This email archive format is
  -readable by most Unix mail programs, and Eudora on Windows. </p>
  -
   
  +<section>Getting Started</section>
   
  -<p>Turbine-user is the name of the mailing list for developers
  -who are using the Turbine framework in their own applications. You may want to
  -subscribe yourself to this mailing list. The link to the Jakarta Apache mailing
  -lists is below. If you do post your question to the Turbine User list, your
  -best chance of getting a response is to include a descriptive title, a short
  -description of what you are trying to accomplish and what you tried, and small
  -snippets of any relevant code.</p>
  +<p>
  +Turbine has a learning curve for new developers, but don't let that
  +discourage you from using it for your own projects.
  +</p>
   
  +<p>
  +A typical Turbine development environment consists of <a
  +href="http://maven.apache.org/">Apache Maven</a> and the <a
  +href="meta/">Maven Environment for Turbine Applications
  +(META)</a>. This helps you setting up, compiling and deploying your
  +Turbine application to a web container. We recommend using <a
  +href="http://jakarta.apache.org/tomcat/">Apache Tomcat</a> as web
  +container. If you want to use the database features of Turbine for
  +security and scheduler, you also need a JDBC compliant database,
  +e.g. <a href="http://www.mysql.com/">MySQL</a>, <a
  +href="http://www.postgresql.org/">PostgreSQL</a> or <a
  +href="http://www.hsqldb.org/">HSQL</a>.
  +</p>
   
  +<p>
  +Complete directions for getting Turbine up and running is available at
  +the <a href="meta/">META site</a>.
  +</p>
   
  -<p>I hope you have fun working with Turbine!</p>
  +<p>
  +After working with Turbine for a few minutes, a few hours, or a few
  +days = you might get stuck. The best thing to do is to
  +check out the <a href="mail-lists.html">Turbine mailing list
  +archives</a>. These are available for browsing using a web browser. If
  +you are using Turbine on a regular base as developer or user, you
  +should subscribe to one of the mailing lists.
  +</p>
   
  +<p>The Turbine development team hopes, that you have fun working with Turbine!</p>
   
   <section name="Further Reading">
   
  -<p>The Turbine web site is at <a
  -href="http://jakarta.apache.org/turbine">http://jakarta.apache.org/turbine</a>.
  -The Turbine Developer Kit can be downloaded from this web site.</p>
  -
  -
  -
  -<p>A very good tutorial on using Torque is also on the Turbine
  -web site, here <a href="http://db.apache.org/torque/tutorial.html">http://jakarta.apache.org/turbine/torque/tutorial.html</a>.
  +<p>
  +The Turbine web site is at <a
  +href="http://jakarta.apache.org/turbine/">http://jakarta.apache.org/turbine/</a>.
   </p>
   
  -
  +<p>
  +A very good tutorial on using Torque is also on the Turbine web site,
  +here <a
  +href="http://db.apache.org/torque/tutorial.html">http://db.apache.org/torque/tutorial.html</a>.
  +</p>
   
   <p>Velocity is available from <a
  -href="http://jakarta.apache.org/velocity">http://jakarta.apache.org/velocity</a>.
  -Velocity is bundled inside the Turbine Developers Kit, so an extra download
  -isn't necessary.</p>
  -
  -
  -
  -<p>The Jakarta Apache mailing lists for both Turbine and
  -Velocity are at <a href="http://jakarta.apache.org/site/mail.html">http://jakarta.apache.org/site/mail.html</a>.
  +href="http://jakarta.apache.org/velocity">http://jakarta.apache.org/velocity/</a>. There is also
  +extensive documentation about the Syntax and Usage of the Velocity Template Language available.
   </p>
   
  +<p>
  +<a href="mail-lists.html">The Turbine mailing lists.</a>
  +</p>
   
  -<p>Jeff Linwood has been using Turbine to build a web services
  -infrastructure application. He is a co-author of <a href="http://www.amazon.com/exec/obidos/ASIN/1861007817/ref=pd_ecc_rvi_1/002-4687840-3104031">Professional Struts Applications</a>, which covers Velocity. He'd like to thank Jason van Zyl, Troy Mutter,
  -Skip Walker, David Minter, Jason Pettiss, and his brother Rob Linwood for
  -reviewing this article.</p>
  -
  +<subsection name="This page">
  +<p>
  +The original version of this page has been written by Jeff Linwood. He
  +has been using Turbine to build a web services infrastructure
  +application. He is a co-author of <a
  +href="http://www.amazon.com/exec/obidos/ASIN/1861007817/ref=pd_ecc_rvi_1/002-4687840-3104031">Professional
  +Struts Applications</a>, which covers Velocity. He'd like to thank
  +Jason van Zyl, Troy Mutter, Skip Walker, David Minter, Jason Pettiss,
  +and his brother Rob Linwood for reviewing this article.
  +</p>
  +<p>
  +The article has been revised for Turbine 2.3 and Turbine 2.4 by <a
  +href="mailto:henning@apache.org">Henning Schmiedehausen</a>. All
  +errors and omissions from Jeffs' original article are mine.
  +</p>
  +</subsection>
   </section>
   </body>
   
  
  
  
  1.1                  jakarta-turbine-site/xdocs/how-to-help.xml
  
  Index: how-to-help.xml
  ===================================================================
  <?xml version="1.0"?>
  <!-- 
  /*
   * Copyright 2001-2004 The Apache Software Foundation.
   * 
   * Licensed 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.
   */
   -->
  
  <document>
  
   <properties>
    <title>How To Help with Turbine Development</title>
   </properties>
  
  <body>
  
  <section name="How to help">
  
  <p>
    If you are a new developer to Turbine or even an existing developer, these are
    areas where you can take ownership and help complete. Please do not ask us how
    you can help, but rather specific questions about how you think that these items
    should be implemented. It is up to you to take initiative and provide solutions
    to the missing functionality described below. ;-)
  </p>
  
  <p>
    It is always possible to take ownership of any portion of the project. The way
    to do this is to post a message to the turbine-dev mailing list.  Just explain
    what you are wanting to work on or any ideas that you might have on the subject.
  </p>
  
  <p>
      Documentation is <b>*always*</b> appreciated in any form.  The documentation for
      Turbine exists in basically four forms.
      <ul>
          <li>
              XML formatted docs (xdoc) - This is used to generate the documentation
              on the jakarta site.  The source for this documentation can be found
              in the xdocs directory in the source distribution.  To submit additional
              documentation in this form or patches to existing documentation, please
              create an issue is the
              <a href="http://issues.apache.org/scarab/issues">issue tracking system</a>
              and attach the patch files (or new files).
          </li>
          <li>
              Mailing list - The archives of <a href="mailto:turbine-user@jakarta.apache.org">turbine-user@jakarta.apache.org</a>
              and <a href="mailto:turbine-dev@jakarta-apache.org">turbine-dev@jakarta-apache.org</a>
              are an excellent source of information for the project.
              Answering questions that are asked on the mailing list or
              simply posting information that might be of use to other
              Turbine users would be very welcome contribution to the
              project.
          </li>
          <li>
              The <a href="http://nagoya.apache.org/wiki/apachewiki.cgi?TurbineProjectPages">
              Apache Wiki</a> another repository of documentation for the project.  It
              contains development information, user documentation, how-to documents,
              discussion of new features, etc.  Anyone can add new pages and edit existing
              pages very easily!  This is perhaps the easiest way to contribute documentation
              (well, second only to the mailing lists).
          </li>
          <li>
              The javadocs are another very important form of documentation for the project.
              Changes to this form of documentation should be in the form of patches.  To submit
              them, create a new issue in the
              <a href="http://issues.apache.org/scarab/issues">issue tracking system</a>
              and attach your patch(s).
          </li>
      </ul>
      The documentation is probably the easiest area for anyone to contribute in.  If you are
      new to Turbine and learning your way around, documenting what you learn and submitting
      it in any other the various forms would be appreciated.
  </p>
  
  <p>
      Testing is another area in which help is always needed.  This could consist of simply
      reporting problems that you run into using Turbine.  It could also consist of submitting
      code to perform unit tests.  Turbine uses JUnit and Cactus for testing.  You can find
      examples in the src/test directory of the source distribution.
  </p>
  
  <p>
      If you do discover a defect in the Turbine product, please create a defect issue in
      the <a href="http://issues.apache.org/scarab/issues">issue tracking system</a> clearly
      discribing the problem.  If you can take the time to track down the source of the problem,
      it would certainly help speed the process of getting it corrected.  Of course, actually
      fixing the problem and attaching a patch to the issue would be greatly appreciated.
  </p>
  
  <p>
      You can also contribute to the project by enhancing existing functionality and/or
      adding new functionality.  There is a current list of requested features on the
      <a href="http://nagoya.apache.org/wiki/apachewiki.cgi?JakartaTurbine2/WishList">
      Apache Wiki</a>.  Everyone is encouraged to take part in the discussion, design, and
      implementation.
  </p>
  
  </section>
  
  </body>
  </document>
  
  
  
  1.3       +6 -12     jakarta-turbine-site/xdocs/further-reading/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-site/xdocs/further-reading/index.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- index.xml	31 Mar 2004 01:09:28 -0000	1.2
  +++ index.xml	15 Aug 2004 14:55:55 -0000	1.3
  @@ -82,13 +82,13 @@
           <ul><!-- FOR SPACING --></ul>
         </li>
         <li>
  -        <a href="http://jakarta.apache.org/jetspeed">Jetspeed</a> - An open source 
  +        <a href="http://portals.apache.org/jetspeed-1/">Jetspeed 1</a> - An open source 
           portal engine built on top of the Turbine web application framework.  Use 
           Jetspeed to develop a ready-to-go portal solution with open technology.
           <ul><!-- FOR SPACING --></ul>
         </li>
         <li>
  -        <a href="http://jakarta.apache.org/log4j">Log4j</a> - A standard logging
  +        <a href="http://logging.apache.org/log4j/docs/index.html">Log4j</a> - A standard logging
           framework used by Turbine and many other projects.
           No more commenting System.out.println()'s in your code!
           <ul><!-- FOR SPACING --></ul>
  @@ -129,16 +129,10 @@
        
       <subsection name="Viewpoints on JSP">
       <ul>
  -      <li>
  -        <a href="http://jakarta.apache.org/velocity/ymtd/ymtd.html">You Make The Decision</a>
  -        - John Stevens' article comparing Velocity to JSP.
  -        <ul><!-- FOR SPACING --></ul>
  -      </li>
  -      <li>
  -        <a href="http://www.servlets.com/soapbox/problems-jsp.html">Problems with JSP</a>
  -        - Jason Hunter's article discussing common issues with JSP.
  -        <ul><!-- FOR SPACING --></ul>
  -      </li>
  +      <li><a href="http://jakarta.apache.org/velocity/ymtd/ymtd.html">You Make The Decision</a>
  +       - John Stevens' article comparing Velocity to JSP.</li>
  +      <li><a href="http://www.servlets.com/soapbox/problems-jsp.html">Problems with JSP</a>
  +       - Jason Hunters' article discussing common issues with JSP.</li>
       </ul>
       </subsection>
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org