File: project-map.xml

package info (click to toggle)
turbine 20010419-1
  • links: PTS
  • area: contrib
  • in suites: woody
  • size: 17,460 kB
  • ctags: 7,501
  • sloc: java: 41,929; xml: 12,430; sql: 637; sh: 90; makefile: 50
file content (143 lines) | stat: -rw-r--r-- 7,468 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?xml version="1.0"?>

<document>
    <properties>
        <title>Project Map</title>
        <author email="rafal@apache.org">Rafal Krzewski</author>
    </properties>

    <body>
    
    <section name="Project Map">
    
    <p> On this page, you can find a functional breakdown of Turbine codebase.
    This should help you in getting familiar with the tools that Turbine offers
    to you. Also, it will help you locate people that are experts in the field  
    of a specific functional block, so you can contac them if you encouter 
    a problem, or better yet have made a patch that fixes it. </p>

    <p><a href="project-map/core.html"><b>Turbine Core</b></a></p>

    <p> In the Core part of Turbine you will find the Turbine Servlet, the
    single entry point to your application, and the classes that form the
    framework of HTTP-interfaced application following MVC desing pattern.
    Here you will find the base classes you will have to extend to fill
    in the framework with your application's logic. See the 
    <a href="fsd.html">specification</a> for more details. </p>

    <p><a href="project-map/essential.html"><b>Essential Services</b></a></p>

    <p> This block contains the <a href="services.html">Service Framework</a>
    that forms the basis of  Turbine infrastructure. It allows defining 
    utility classes with pluggable implementation (that means that you 
    can customize and  override the utility classes provided by Turbine 
    easily) that can take part in the startup and shutdown sequence of the 
    application. </p>

    <p> You will find here the Services that are essential for the operation
    of the framework and very useful for building your application, like
    Resource service (for accessing configuration settings) and Logging
    service (a powerful tool that allows you to trace various aspects of
    operation of the application, and send the messages to a multitude
    of destinations including system console, text files, unix syslog
    daemon, JDBC compliatn database and even a remote Logging service) </p>

    <p><a href="project-map/content-generation.html"><b>Content generation services</b></a></p>

    <p> This block groups together various services that aid you in the process
    of creating the user interface of your application. Most important,
    you will find here services that provide <i>templating</i> functionality,
    that allows you to create the HTML/XML/WML presentation layer of your
    application independently form your Java sources. The services provided
    are actually wrappers around templating packages developed independently
    from Turbine, such as <a href="http://jakarta.apache.org/velocity">Velocity</a>.
    Also, there is a service that allows you to use Sun's JSP technology for
    creating templates. Other services that fall into this block are 
    the Pull service, allowing you to create tool boxes (read more about 
    <a href="pullmodel.html">Pull model</a>), Localization service, that allows
    you to crate bundles of messages that your application displays translated
    into different languages, that can be easily manipulated, and the 
    Upload service, that handles uploading files from HTML forms. </p>

    <p><a href="project-map/database.html"><b>Database access</b></a></p>

    <p> Database tools in Turbine include connection pooling service, which
    can transparently delegate to J2EE application server's pooling facilities,
    of provide connection pooling in lightweight, servlet container only 
    environment. An important element you will find in this block is 
    <a href="peers.html">Peers</a> framework, that is one of the corner stones 
    of Turbine framework along with Services and Modules. Peers allow you to 
    create relationship between tables in a relational database and classes in 
    your application. It also allows to create queries in an Object-oriented way. </p>

    <p><a href="project-map/object-services.html"><b>Object services</b></a></p>

    <p> One of the greatest advantages of working in Java Servlets environment,
    is the statefullness of your application. You can create object and hold
    them in memory, to avoid repeated loading information form external
    sources, like disk files or the database. Turbine provides a few
    Services that will help you with management of these objects. One of them
    is Pool service that allows you to create pools of reusable object that
    may be acquired from the pool by a thread processing a request, and
    recycled when no longer needed. Cache service will help you with
    managing objects that contain information that can be reused multiple
    times. </p>

    <p><a href="project-map/auxilary-services.html"><b>Auxilary Services</b></a></p>

    <p> In this section you will find other services that might be useful
    in the building your application. For example 
    <a href="http://www.xmlrpc.com">XMLRPC</a> service that allows 
    communication between applications within a heterogenous environment
    using XML-based protocol over HTTP. There are also services allowing 
    manipulation of XML content using XSLT, and a service that manages 
    creating contexts for performing JNDI operations. </p>

    <p><a href="project-map/email.html"><b>E-mail messages</b></a></p>

    <p> Turbine can help you with creating and sending e-mail. Also
    with the help of templates, just as those you use for displaying
    HTML pages. </p>

    <p><a href="project-map/utility.html"><b>Utility classes</b></a></p>

    <p> This block encompasses the various utility classes contained in
    Turbine. You should check those classes, as they solve some common
    problems encountered in web application making. </p>

    <p><a href="project-map/tools.html"><b>Turbine tools</b></a></p>

    <p> In this block, you will find tools that ship together with Turbine.
    These tools are runnable from the command line, and are used for the
    development purposes, not during the normal operation of an application.
    
    The tools include <a href="torque.html">Torque</a>, the tool for
    generating Peer Framework classes for your application, 
    <a href="intake.html">Intake</a> that generates classes for automation
    of processing of complex HTML forms, and the <a href="migrator.html">
    Migrator</a>, the tool that helps you with bringing your application
    up to date with newer releases of Turbine, by performing batches
    of search-and-replace operations on your sources. When used properly,
    it can save you a plenty of typing. </p>
    
    </section>

    <section name="Updating project map">
    
    <p> This section is meant for Turbine developers. </p>
    
    <p> Whenever you want to work on bringing the project map up to date, you 
    should run the <code>update-classlist.sh</code> script contained in the 
    <code>xdocs/project-map</code> directory. It will bring the <code>classlist</code> 
    file, also in  that directory in sync with the Turbine source files. 
    It will also create a  cvs diff of the <code>classlist</code> file and save the 
    result into <code>changes</code> file. Open it and see the changes in the 
    codebase between the last time the project map was updated, and the present. 
    When you commit the modified xdocs, don't  forget to commit <code>classlist</code> 
    file as well! </p>

    </section>

    </body>

</document>