| <?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 Features</title> |
| </properties> |
| |
| <body> |
| |
| <section name="Features"> |
| |
| <p> |
| This document is for bragging about all of Turbine's features and inherent |
| coolness. Turbine is well over 200 classes and contains a boat load of |
| features and API's. Many of these can also be used indepently of Turbine. |
| Almost all of the default implementations can be easily overridden with |
| your own implementations. Turbine also has extensive Javadoc documentation |
| for nearly all of the classes as well as in-code comments. It clearly has |
| been developed by the people who do web applications on a daily basis and |
| have to constantly solve the same problems over and over again. |
| </p> |
| |
| <p> |
| <strong>All of these features have been made possible thanks to the over |
| 30 developers (and growing all the time!) who have <a href="team-list.html"> |
| contributed</a> to Turbine over the last 10+ years.</strong> |
| </p> |
| |
| <ul> |
| <li> |
| Integration with template systems: Velocity, JSP |
| </li> |
| <li> |
| Utility code for working with Velocity, such as a |
| SelectorBox class for building <code>select</code> boxes</li> |
| <li> |
| Single Entry Point Servlet model for optimal security and control</li> |
| <li> |
| ParameterParsing for GET/POST/PATH_INFO</li> |
| <li> |
| Event based Action handling!</li> |
| <li> |
| Strict MVC guidelines implemented through many interfaces and abstract |
| classes as well as through the template systems.</li> |
| <li> |
| GlobalCache (Singleton based system for caching data across servlets and |
| requests)</li> |
| <li> |
| DateSelector (utility for building the HTML for popup date menus)</li> |
| <li> |
| Generic Services API for creating Singletons</li> |
| <li> |
| <a href="http://www.xml-rpc.com/">XML-RPC</a> Service Integration</li> |
| <li> |
| Localization Services API</li> |
| <li> |
| JNDI Services API</li> |
| <li> |
| Visitor/Member API for managing users</li> |
| <li> |
| Temporary and Permanent storage/management for users session data</li> |
| <li> |
| ACL (Access Control List) based security system that uses Roles and |
| Permissions (and the database schemas)</li> |
| <li> |
| BrowserDetector class for determining which browser someone is using</li> |
| <li> |
| GenerateUniqueId class for getting a unique number (ie: for sessions)</li> |
| <li> |
| Logging via commons-logging, backed by Log4j. |
| </li> |
| <li> |
| A centralized configuration using commons-configuration to make it easy |
| to retrieve properties. |
| </li> |
| <li> |
| Properties can be stored in JNDI, XML, or .properties files! Properties can |
| override each other. |
| </li> |
| <li> |
| Integration with JavaMail to make sending email painless</li> |
| <li> |
| Integration with JavaMail and Velocity to allow you to send |
| processed Velocity templates as email!</li> |
| <li> |
| Built using Maven</li> |
| <li> |
| Initial application development WAR archive creation tool using Ant</li> |
| <li> |
| Turbine Servlet works cleanly with Servlet API 2.4 and higher</li> |
| <li> |
| Works with JDK 1.6 and higher - 100% Pure Java</li> |
| </ul> |
| |
| </section> |
| |
| </body> |
| </document> |