| <!DOCTYPE html> |
| |
| |
| <!-- |
| | Generated by Apache Maven Doxia Site Renderer 2.0.0 from src/site/xdoc/proposals/services-repository.xml at 10 Sep 2025 |
| | Rendered using Apache Maven Fluido Skin 2.1.0 |
| --> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> |
| <head> |
| <meta charset="UTF-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0" /> |
| <title>Services Repository Proposal – Apache Turbine</title> |
| <link rel="stylesheet" href="../css/apache-maven-fluido-2.1.0.min.css" /> |
| <link rel="stylesheet" href="../css/site.css" /> |
| <link rel="stylesheet" href="../css/print.css" media="print" /> |
| <script src="../js/apache-maven-fluido-2.1.0.min.js"></script> |
| <link rel="icon" type="image/png" sizes="48x48" href="https://apache.org/favicons/favicon.ico"> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <style>.github-fork-ribbon:before { background-color: orange; }</style> |
| </head> |
| <body> |
| <a class="github-fork-ribbon right-top" href="https://github.com/apache/turbine-build" data-ribbon="Fork me on GitHub">Fork me on GitHub</a> |
| <div class="container-fluid container-fluid-top"> |
| <header> |
| <div id="banner"> |
| <div class="pull-left"><div id="bannerLeft"><h1><a href="https://turbine.apache.org/"><img src="https://www.apache.org/img/feather_glyph_notm.png" style="width: 50px;" /> The Apache Turbine project</a></h1></div></div> |
| <div class="pull-right"><div id="bannerRight"><h1><a href="https://turbine.apache.org/"><img src="https://turbine.apache.org/images/logo.gif" alt="Apache Turbine" /></a></h1></div></div> |
| <div class="clear"><hr/></div> |
| </div> |
| |
| <div id="breadcrumbs"> |
| <ul class="breadcrumb"> |
| <li id="publishDate">Last Published: 01 Apr 2025<span class="divider">|</span> |
| </li> |
| <li id="projectVersion">Version: 7.1-SNAPSHOT</li> |
| <li class="pull-right"><span class="divider">|</span> |
| <a href="https://turbine.apache.org/fulcrum/">Fulcrum</a></li> |
| <li class="pull-right"><span class="divider">|</span> |
| <a href="https://turbine.apache.org/">Turbine</a></li> |
| <li class="pull-right"><a href="https://www.apache.org">Apache</a></li> |
| </ul> |
| </div> |
| </header> |
| <div class="row-fluid"> |
| <header id="leftColumn" class="span2"> |
| <nav class="well sidebar-nav"> |
| <ul class="nav nav-list"> |
| <li class="nav-header">General Information</li> |
| <li><a href="../index.html">Overview</a></li> |
| <li><a href="../features.html">Features</a></li> |
| <li><a href="../fsd.html">Specification</a></li> |
| <li><a href="../getting-started.html">Getting Started</a></li> |
| <li><a href="../how-to-build.html">Howto Build Turbine</a></li> |
| <li><a href="../changes-report.html">Changes</a></li> |
| <li class="nav-header">Documentation</li> |
| <li><a href="../services/index.html"><span class="icon-chevron-right"></span>Services</a></li> |
| <li><a href="../howto/index.html"><span class="icon-chevron-right"></span>Howtos</a></li> |
| <li><a href="https://cwiki.apache.org/confluence/display/TURBINE">Wiki</a></li> |
| <li><a href="../apidocs/index.html">JavaDocs</a></li> |
| <li class="nav-header">Development</li> |
| <li><a href="../proposals.html">Proposals</a></li> |
| <li><a href="../how-to-help.html">How To Help</a></li> |
| <li><a href="../todo.html">Todo</a></li> |
| <li class="nav-header">Project Documentation</li> |
| <li><a href="../project-info.html"><span class="icon-chevron-right"></span>Project Information</a></li> |
| <li><a href="../project-reports.html"><span class="icon-chevron-right"></span>Project Reports</a></li> |
| <li class="nav-header">Apache</li> |
| <li><a href="https://www.apache.org/">Apache Website</a></li> |
| <li><a href="https://www.apache.org/licenses/">License</a></li> |
| <li><a href="https://www.apache.org/foundation/how-it-works.html">How the ASF works</a></li> |
| <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| <li><a href="https://www.apache.org/security/">Security</a></li> |
| </ul> |
| </nav> |
| <div class="well sidebar-nav"> |
| <form id="search-form" action="https://www.google.com/search" method="get" > |
| <input value="http://turbine.apache.org/turbine/turbine-7-0" name="sitesearch" type="hidden" /> |
| <input class="search-query" name="q" id="query" type="text" placeholder="Search with Google..." /> |
| </form> |
| <div id="poweredBy"> |
| <div class="clear"></div> |
| <div class="clear"></div> |
| <a href="https://maven.apache.org/" class="builtBy" target="_blank"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a> |
| </div> |
| </div> |
| </header> |
| <main id="bodyColumn" class="span10"> |
| |
| |
| |
| |
| <section><a id="Description"></a> |
| <h1>Description</h1> |
| |
| |
| <p> |
| The services repository would be a place to store non-core/third party |
| Turbine services that could be utilized by anyone developing with the |
| Turbine services framework. There are services that are stored in |
| the main Turbine CVS that would be good candidates for the services |
| repository: castor, xmlrpc, xslt, webmacro, freemarker, naming. |
| These are services that Turbine can function without. Many Turbine |
| developers have probably created services but have never offered them |
| to the group because they are somewhat specialized: these services would |
| be ideal in the repository because they would have a description and |
| might be a great starting place for another developer. Or even better, |
| a contributed service might be exactly what another developer needs. |
| </p> |
| |
| |
| <p> |
| There are also services in other OSS Turbine-based applications that |
| would be good candidates for the services repository. Tambora has |
| a rule service and processing service that could be useful for other |
| Turbine-based B2B solutions, and the URL management and disk caching |
| services in Jetspeed are also general purpose services that would be |
| very useful to a wide audience of developers. |
| </p> |
| |
| </section> |
| |
| <section><a id="Rationale"></a> |
| <h1>Rationale</h1> |
| |
| |
| <p> |
| It would be nice to try and slim down the primary Turbine CVS. |
| There are many services currently in that are not core services. These |
| non-core services could easily be stored somewhere else and make the |
| primary Turbine CVS easier to navigate and become familiar with. |
| </p> |
| |
| |
| <p> |
| It would be highly desirable to build up an extensive library |
| of services. All of these services can't be kept in the primary |
| Turbine CVS and so I imagine there are quite a few services out there |
| that have not been contributed due to there specialized nature. |
| Specialized services are ideal for the repository, if the services |
| are kept in a central location and cataloged all parties involved |
| will benefit. |
| </p> |
| |
| </section> |
| |
| <section><a id="Requirements"></a> |
| <h1>Requirements</h1> |
| |
| <p> |
| Services would have to be functional from JAR files. For this to work |
| the following changes would have to be made: |
| </p> |
| |
| <ul> |
| |
| <li> |
| The Services framework would have to be altered to load services |
| packaged in the form of JAR files. |
| </li> |
| |
| |
| <li> |
| Dependent services would have to be listed in the manifest so that the |
| the initialization of a service could be deferred until all |
| prerequisites of the service have been initialized. |
| </li> |
| |
| |
| <li> |
| The service package in a JAR should state all of its configuration |
| options as it may be necessary to have this configuration information |
| extracted from the JAR and added to TR.props or whatever future |
| configuration mechanisms we devise. It might be nice to have an |
| option in Turbine where there is no TR.props to begin with but |
| starting Turbine with a certain option would produce a configuration |
| that reflected the use of a set of services. Or Turbine would start, |
| but would require some configuration from via a little web application |
| before Turbine would accept connections from the outside world. |
| </li> |
| </ul> |
| </section> |
| |
| <section><a id="Scope"></a> |
| <h1>Scope</h1> |
| |
| |
| <p> |
| This would primarily affect the services framework, but the tools |
| required to pull information from JARS and load the JARS could probably |
| be used for loading/configuration sub-applications. We can probably |
| borrow a lot of this code from Avalon as I think this is pretty |
| much worked out in its service framework. |
| </p> |
| |
| </section> |
| |
| <section><a id="Initial_Source"></a> |
| <h1>Initial Source</h1> |
| </section> |
| |
| <section><a id="Initial_Committers"></a> |
| <h1>Initial Committers</h1> |
| </section> |
| |
| |
| </main> |
| </div> |
| </div> |
| <hr/> |
| <footer> |
| <div class="container-fluid"> |
| <div class="row-fluid"> |
| <p>© 2000–2025 |
| <a href="https://www.apache.org/">The Apache Software Foundation</a> |
| </p> |
| </div> |
| </div> |
| </footer> |
| </body> |
| </html> |