blob: 64f34801a040113ee219c796da8c74ecdeaeb84e [file] [log] [blame]
<?xml version="1.0"?>
<!--
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.
-->
<document>
<properties>
<title>Turbine Services</title>
<author email="criley@ekmail.com">Cameron Riley</author>
<author email="jvanzyl@apache.org">Jason van Zyl</author>
<author email="jon@latchkey.com">Jon S. Stevens</author>
<author email="hps@intermeta.de">Henning P. Schmiedehausen</author>
<author email="seade@backstagetech.com.au">Scott Eade</author>
</properties>
<body>
<section name="Turbine Services">
<p>
Services are singletons within the Turbine Framework which have
pluggable implementation, and are capable of participating in the
Turbine startup and shutdown. As Services are Singletons, there is
only one instance of each service in the system. Memory or connections
are allocated once only and the internal state is common to all
requesting clients. Services can access ServletConfig at system
startup time to process relative paths and similar functionality, they
can also access RunData on the first Turbine doGet execution to get
the environment Turbine is operating under and with. Services can also
initialize themselves before they are requested by the client for the
first time. A Service that is never used will not allocate resources to
itself. A Service can also execute actions upon the system being
shutdown, such as closing open connections. The Singleton pattern also
allows for the Services to be accessed from anywhere within your code.
</p>
<p>
The Life Cycle of a Service begins with the Services constructor. A Service
does not do much in it's constructor. Especially it should not allocate any
costly resources like large memory structure, DB or Network connections, etc.
The Service may be in the properties file, but unless a client using the
application needs the Service in question, there is no point starting the
Service.
</p>
<p>
The services available with Turbine can be found in the
org.apache.turbine.services package. <strong>Please note that the
[TODO]'s below simply mean that these services need more complete
documentation, it does not mean that they are still waiting to be
implemented.</strong>
</p>
<ul>
<li>
<a href="assemblerbroker-service.html">Assembler Broker Service</a>
<br/>
Is the Service which allows assemblers such as Screens, Actions, Layout and
Scheduled Jobs to be loaded.
</li>
<li>
<a href="avalon-component-service.html">Avalon Component Service</a>
<br/>
Initializes external components which implement the Avalon lifecycle
interface, e.g. Torque. See also the <a href="yaafi-component-service.html">
Yaafi Component Service</a>
</li>
<li>
<a href="crypto-service.html">Crypto Service</a>
<br/>
Provides encryption algorithms like MD5 and SHA message digests as well as old-fashioned Unix crypt.
</li>
<li>
<a href="cache-service.html">Cache Service</a>
<br/>
Provides a persistent Object Storage mechanism within your application.
</li>
<li>
<a href="factory-service.html">Factory Service</a>
<br/>
A Service for the instantiation of objects with either the specified loaders or
default class loaders.
</li>
<li>
<a href="intake-service.html">Intake Service</a>
<br/>
A service that provides input validation along with a standard
parameter naming framework.
</li>
<li>
<a href="jsp-service.html">JSP Service</a>
<br/>
The JSP Service is the set of classes that process JSP files inside the
Turbine Layout/Navigations and Screen structure.
</li>
<li>
<a href="localization-service.html">Localization Service</a>
<br/>
The single point of access to all localization resources.
</li>
<li>
<a href="logging-service.html">Logging Service</a>
<br/>
The Logging Service has been removed and replaced with a commons-logging
and log4j combination. Here you find some information how to use this
in Turbine.
</li>
<li>
<a href="mimetype-service.html">MimeType Service</a>
<br/>
The service maintains the mappings between MIME types and corresponding file
name extensions as well as between locales and character encoding.
</li>
<li>
<a href="naming-service.html">Naming Service</a>
<br/>
Provides JNDI naming contexts.
</li>
<li>
<a href="pool-service.html">Pool Service</a>
<br/>
A service for the pooling of instantiated Objects, allowing for the recycling
and disposal of Objects in the pool.
</li>
<li>
<a href="pull-service.html">Pull Service</a>
<br/>
Manages the creation of application tools that are available to all templates
in a Turbine application. The tools can have global scope, request scope or
session scope within your application.
</li>
<li>
<a href="resources-service.html">Resources Service</a>
<br/>
The Resources Service has been removed and replaced with commons-configuration. You
find some explanation how to use commons-configuration here.
</li>
<li>
<a href="rundata-service.html">RunData Service</a>
<br/>
Is the Service which manages the higher level operations surrounding
requests and responses.
</li>
<li>
<a href="scheduler-service.html">Scheduler Service</a>
<br/>
This service manages the schedule queue giving Cron like functionality.
The ScheduledJob can be stored in a database or a properties file.
</li>
<li>
<a href="security-service.html">Security Service</a>
<br/>
A service for the management of Users, Groups, Roles and Permissions
in the system, allowing for those Objects to interact with either
Database or LDAP backends. The service also allows for the security to be managed
without a backend.
</li>
<li>
<a href="servlet-service.html">Servlet Service</a>
<br/>
Encapsulates the information provided by the ServletContext API,
and makes it available from anywhere in the code.
</li>
<li>
<a href="session-service.html">Session Service</a>
<br/>
Provides access to Session information for the current web context.
</li>
<li>
<a href="template-service.html">Template Service</a>
<br/>
The Service for the mapping of templates to their screens and actions.
</li>
<li>
<a href="torque-security-service.html">Torque Security Service</a>
<br/>
This is an implementation of a Security Service which uses Torque
generated peers to access the required security information.
</li>
<li>
<a href="ui-service.html">UI Service</a>
<br/>
The UI (User Interface) Service provides for application skinning.
</li>
<li>
<a href="uniqueid-service.html">Unique ID Service</a>
<br/>
Allows for the creation of Context unique and pseudo random identifiers.
</li>
<li>
<a href="upload-service.html">Upload Service</a>
<br/>
This service manages multipart/form-data POST requests, storing them
temporarily in memory or locally. The resultant Objects can be manipulated through
a FileItem Object.
</li>
<li>
<a href="velocity-service.html">Velocity Service</a>
<br/>
The service for the processing of Velocity Templates from within
the Turbine Layout/Navigations and Screen structure.
</li>
<li>
<a href="xmlrpc-service.html">XML-RPC Service</a>
<br/>
This service manages xml-rpc calls to a remote Server.
</li>
<li>
<a href="xslt-service.html">XSLT Service</a>
<br/>
The service which is used to transform XML with an XSLT stylesheet.
</li>
<li>
<a href="yaafi-component-service.html">Yaafi Component Service</a>
<br/>
The Yaafi Component service loads external modules which implement the
<a href="http://excalibur.apache.org/">Avalon</a> lifecycle interfaces. This is
a bridge between the Turbine 2.3 we have today and the
<a href="http://turbine.apache.org/fulcrum/">Fulcrum</a> components
that until now have only been available to Turbine 2.4 (yet to be released).
</li>
</ul>
<p>
For more information on the Services Package, view the package.html Package
Documentation in the Javadocs or in Turbine CVS.
</p>
</section>
</body>
</document>