| <?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>Apache Turbine™</title> |
| </properties> |
| |
| <body> |
| |
| <section name="What is Apache Turbine?"> |
| |
| <p> |
| Apache 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. |
| </p> |
| |
| <p> |
| <strong>A web based application is an application where users use |
| their favorite web browser in order to access secure business |
| logic.</strong> |
| </p> |
| |
| <subsection name="Build a Web App"> |
| <p>With Turbine + Maven you could easily develop a lightweighted and robust web app in a structured way. |
| Find an example using Maven archetype mechanism <a href="https://github.com/apache/turbine-archetypes">here</a>. |
| </p> |
| </subsection> |
| |
| <p> |
| <strong>A platform for building applications, not just running |
| them.</strong> |
| </p> |
| |
| <p> |
| Many commercial (and non-commercial!) software companies will |
| attempt to sell you an "Application Server", but what few people |
| realize is that it is only half of the battle to creating a web |
| application. There is often quite a lot of code that your engineers |
| end up re-inventing the wheel with or grabbing various packages from |
| all over the net with various licenses that you may or may not agree |
| to. |
| </p> |
| |
| <p> |
| The point of Turbine is to collect that code into one location and |
| make it easy to create re-usable components (such as |
| ParameterParsing, Database Connection Pools, Job Scheduling, |
| GlobalCaches, integration with other tools such as Torque, Velocity, |
| etc...) all under a <a href="license.html">license</a> |
| (Apache) that allows you to create useful websites for your |
| customers without worrying about viral code. Turbine is not the end |
| all answer, but it sure is a nice way to make your development life |
| easier. |
| </p> |
| |
| <p> |
| This framework has an intended audience that is directed at web |
| engineers, not necessarily the web designers or front end engineers. By using this |
| framework, it is possible for the web engineers to build intuitive |
| high level systems for the web designers and front end engineers to use, but the low level |
| framework is strictly for web engineers. Turbine is not a web |
| application server. It is a tool for building web applications. Your |
| <a href="http://tomcat.apache.org/">servlet engine</a> is your |
| application server and the application that you develop using this |
| framework is your web application. |
| </p> |
| |
| <p> |
| <strong>Integration with Velocity is well |
| defined and makes doing applications using these tools painless for |
| both the developers and the web designers or front end engineers!</strong> |
| </p> |
| |
| <p> |
| Turbine can be integrated with existing <a |
| href="http://velocity.apache.org/engine/">Velocity</a>, <a |
| href="http://java.sun.com/products/jsp/">Java Server Pages (JSP)</a> |
| and <a href="http://cocoon.apache.org/">Cocoon</a> technologies by |
| specially creating Screens that use Services to parse templates. |
| Screens can also be created to read files from other websites as |
| well as off disk. This makes it easy to have designers simply put |
| the body of a page on disk and Turbine can serve these files when |
| requested. All of this is described in more detail in the |
| documentation section below. |
| </p> |
| |
| <p> |
| The reason why Turbine works so well is because it applies object oriented |
| principles to the entire process of building a complex secure web application. |
| We try to follow the |
| <a href="http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html">Model |
| 2 methodology</a> yet expand on it to encompass "View" techologies other |
| than just JSP as well as more mature methodologies such as |
| <a href="./howto/action-event-howto.html">Action |
| Event</a> handling. Turbine is consided as Model 2 <strong>+ 1</strong>. :-) Please |
| see the <a href="model2+1.html">discussion</a> of Model 2+1 for more information. |
| </p> |
| |
| <p>You may want to use JSON (de)serialization technics using Fulcrum JSON with Jackson 2, Gson or use Jackson mapper directly. |
| Extending the models into any kind of views by following client view modelling, see e.g. |
| <a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel">MVVC</a> should be no problem. |
| You could achieve this in many ways, e.g. using Turbine plain JSON screen, Turbine JSON-RPC or customizing in |
| Velocity Javascript templates. |
| </p> |
| |
| <p> |
| This all sounds like a bunch of marketing talk, but in reality, |
| Turbine has been developed by developers for developers. We are not |
| trying to sell you something that does not really work, instead we |
| are trying to solve (or do something about) the problems that our |
| fellow developers keep having over and over again. Come be a part of |
| the revolution! |
| </p> |
| |
| </section> |
| |
| <section name="Where do I get releases?"> |
| |
| <p> |
| Download the current main release sources and binaries through the Apache mirror system at |
| <a href="http://www.apache.org/dyn/closer.cgi/turbine">the turbine download site</a>. |
| </p> |
| |
| <p> |
| Currently, the best way to get started with Turbine is to use the |
| Maven Archetypes, find it on <a href="https://github.com/apache/turbine-archetypes" |
| title="Turbine Maven Archetype on GitHub">GitHub</a>. |
| Eihter use it with a hosted database or use the |
| <a href="https://github.com/apache/turbine-archetypes/blob/master/src/main/resources/archetype-resources/docs/DOCKER-README.md">docker profile</a>. |
| See also the <a href="https://blogs.apache.org/turbine/entry/maven_archetypes_for_apache_turbine">blog post</a> |
| in the <a href="https://blogs.apache.org/turbine/">Turbine Blog</a> for usage information. |
| </p> |
| |
| </section> |
| |
| <section name="How do I contribute, give feedback, fix bugs and so on?"> |
| |
| <p> |
| We really need and appreciate any contributions you can give. This |
| includes documentation help, source code and feedback. Discussion |
| about changes should come in the form of source code and/or very |
| detailed and well thought out constructive feedback. The <a |
| href="how-to-help.html">How To Help</a> document has details and hints |
| how to get engaged with Turbine Development. We also have a <a |
| href="todo.html">To Do</a> document that describes work to do with |
| the current Turbine code. |
| </p> |
| |
| <ul> |
| <li> |
| We have a <a href="https://turbine.apache.org/contact.html">Turbine mailing |
| lists</a> for discussion.</li> |
| <li> |
| Create issues and Comment in Apache JIRA system <a href="https://issues.apache.org/jira/projects/TRB/">Turbine |
| </a></li> |
| <li> |
| You can access the <a href="https://github.com/apache/turbine-core/">Turbine Git trunk branch (rw) |
| repository</a></li> |
| <li> |
| You can also access the archived (since 2021) <a href="https://svn.apache.org/viewvc/turbine/core/trunk/">Turbine SVN |
| repository</a></li> |
| |
| <li> |
| You can access the <a href="https://github.com/apache/turbine-archetypes/">Turbine Archetype Git (rw) |
| repository</a></li> |
| |
| <li> |
| You can find more about the Turbine Ecosystem on <a href="https://gitbox.apache.org/repos/asf#turbine"> gitbox.apache.org (rw) |
| </a> or on <a href="https://github.com/orgs/apache/repositories?language=&q=turbine&sort=&type=" target="_new">Github</a> </li> |
| |
| |
| </ul> |
| |
| <img src="images/logo.gif" alt="Apache Turbine"></img> |
| |
| |
| </section> |
| |
| </body> |
| </document> |