<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.8-dev">
<meta name="Forrest-skin-name" content="pelt">
<title>Examples Built-With-Forrest</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
    |breadtrail
    +-->
<div class="breadtrail">
<a href="http://www.apache.org/">apache</a> &gt; <a href="http://forrest.apache.org/">forrest</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
    |header
    +-->
<div class="header">
<!--+
    |start group logo
    +-->
<div class="grouplogo">
<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="images/apache-forrest.png" title="The Apache Software Foundation"></a>
</div>
<!--+
    |end group logo
    +-->
<!--+
    |start Project Logo
    +-->
<div class="projectlogo">
<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="images/project-logo.gif" title="Apache Forrest"></a>
</div>
<!--+
    |end Project Logo
    +-->
<!--+
    |start Search
    +-->
<div class="searchbox">
<form action="http://www.google.com/search" method="get" class="roundtopsmall">
<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
                    <input name="Search" value="Search" type="submit">
</form>
</div>
<!--+
    |end search
    +-->
<!--+
    |start Tabs
    +-->
<ul id="tabs">
<li class="current">
<a class="selected" href="index.html">Welcome</a>
</li>
<li>
<a class="unselected" href="contrib.html">Developers</a>
</li>
<li>
<a class="unselected" href="versions/index.html">Versioned Docs</a>
</li>
<li>
<a class="unselected" href="pluginDocs/index.html">Plugins</a>
</li>
<li>
<a class="unselected" href="tools/index.html">Tools</a>
</li>
</ul>
<!--+
    |end Tabs
    +-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
    |start Subtabs
    +-->
<div id="level2tabs"></div>
<!--+
    |end Endtabs
    +-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<!--+
    |breadtrail
    +-->
<div class="breadtrail">

             &nbsp;
           </div>
<!--+
    |start Menu, mainarea
    +-->
<!--+
    |start Menu
    +-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">About</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html" title="Welcome and introduction">About Forrest</a>
</div>
<div class="menuitem">
<a href="linkmap.html" title="Table of Contents for all Forrest documentation">Documentation ToC</a>
</div>
<div class="menuitem">
<a href="http://forrest.apache.org/mirrors.cgi" title="Download a release from your nearest mirror or get the latest from SVN">Download</a>
</div>
<div class="menuitem">
<a href="mail-lists.html" title="Discussion mail lists are the heart of the project: dev, user, svn">Mail lists and discussion</a>
</div>
<div class="menuitem">
<a href="license.html" title="Notes and FAQs about the licensing">License</a>
</div>
<div class="menuitem">
<a href="forrest-contract.html" title="What each party can expect">Our contract</a>
</div>
<div class="menuitem">
<a href="compliance.html" title="Declare the status of HTML, WAI, CSS compliance">Standards compliance</a>
</div>
<div class="menuitem">
<a href="forrest-issues.html" title="List of currently open issues">Open issues</a>
</div>
<div class="menuitem">
<a href="who.html" title="Explain who is involved">Who we are</a>
</div>
<div class="menuitem">
<a href="flyer.html" title="One-page description">Flyer</a>
</div>
<div class="menupage">
<div class="menupagetitle">Example sites</div>
</div>
<div class="menuitem">
<a href="thanks.html" title="Acknowledgment to those who have become involved">Thanks</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Related projects</div>
<div id="menu_1.2" class="menuitemgroup">
<div class="menuitem">
<a href="http://gump.apache.org/">Apache Gump</a>
</div>
<div class="menuitem">
<a href="http://cocoon.apache.org/">Apache Cocoon</a>
</div>
<div class="menuitem">
<a href="http://lenya.apache.org/">Apache Lenya</a>
</div>
<div class="menuitem">
<a href="http://xml.apache.org/">Apache XML</a>
</div>
<div class="menuitem">
<a href="http://projects.apache.org/">projects.apache.org</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
  |alternative credits
  +-->
<div id="credit2">
<a href="http://apachecon.com/2007/EU/"><img border="0" title="ApacheCon Europe 2007" alt="ApacheCon Europe 2007 - logo" src="http://apache.org/ads/ApacheCon/2007-europe-125x125.png" style="width: 125px;height: 125px;"></a><a href="http://people.apache.org/calendar.html#200711"><img border="0" title="ApacheCon US 2007" alt="ApacheCon US 2007 - logo" src="http://apache.org/ads/ApacheCon/2007-usa-125x125.png" style="width: 125px;height: 125px;"></a>
</div>
</div>
<!--+
    |end Menu
    +-->
<!--+
    |start content
    +-->
<div id="content">
<div title="Portable Document Format" class="pdflink">
<a class="dida" href="live-sites.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
        PDF</a>
</div>
<div class="trail">Font size: 
	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
</div>
<h1>Examples Built-With-Forrest</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#skinned">Skinned Sites</a>
</li>
<li>
<a href="#dispatcher">Sites using upcoming Dispatcher</a>
</li>
</ul>
</div>
    
<p>
      These are some of the sites that were created using Apache Forrest
      technology.
    </p>
    
<p>
      If you want your site added to the list, then please send a request to the
      <a href="mail-lists.html">mailing lists</a> or to the
      <a href="issues.html">Issue tracker</a>. Tell us the URL, Name, and
      catch-phrase.
    </p>
    
<a name="N1001B"></a><a name="skinned"></a>
<h2 class="underlined_10">Skinned Sites</h2>
<div class="section">
<p>
        These sites use the skinning system that was part of all releases up to
        and including 0.7 release. This system is expected to be deprecated soon
        in favour of a more flexible system called Dispatcher. See the next
        section for some examples of such sites.
      </p>
<ul>
        
<li>
<a href="http://xml.apache.org/">Apache XML Project (xml.apache.org)</a>
</li>
        
<li>
<a href="http://forrest.apache.org/">Apache Forrest</a>
</li>
        
<li>
<a href="http://cocoon.apache.org/">Apache Cocoon</a>
</li>
        
<li>
<a href="http://lenya.apache.org/">Apache Lenya</a>
</li>
        
<li>
<a href="http://aft.sourceforge.net/">Anteater</a> - Ant-based functional testing</li>
        
<li>
<a href="http://chaperon.sourceforge.net">Chaperon</a> - text parser</li>
        
<li>
<a href="http://www.iasandcb.pe.kr/3g/">IAS&amp;CB</a>
</li>
        
<li>Some <a href="http://www.apache.org/~coar/people.html">Apache
        Committer</a> personal pages</li>
        
<li>
<a href="http://xmlgraphics.apache.org/fop/">Apache FOP</a>
        (Formatting Objects Processor)</li>
        
<li>
<a href="http://www.dream-models.com/">Dream Models</a>
        - gather information about electric radio controlled helicopters</li>
        
<li>
<a href="http://people.apache.org/~vgritsenko/stats/">Apache Stats (Vadim's Home Page)</a> - some web statistics</li>
        
<li>
<a href="http://www.indexgeo.net/zalarm/">Z-alarm - Ensure
        information server integrity</a>
</li>
        
<li>
<a href="http://jakarta.apache.org/poi/">Apache Jakarta POI</a>
</li>
        
<li>
<a href="http://terra-intl.com/">Terra-International, Inc. (Japanese)</a>
</li>
        
<li>
<a href="http://jakarta.terra-intl.com/poi/">Apache Jakarta POI (Japanese Translation)</a>
</li>
        
<li>
<a href="http://xfp.sourceforge.net/">XFP</a> - eXtensible Filtering Pipelines</li>
        
<li>
<a href="http://www.atlassian.com/software/jira/docs/latest">JIRA bugtracker documentation</a>
</li>
        
<li>
<a href="http://www.phpopentracker.de/">phpOpenTracker</a> - A framework solution for the analysis of website traffic and visitor analysis</li>
        
<li>
<a href="http://ws.apache.org/">Apache Web Services Project</a>
</li>
        
<li>
<a href="http://ws.apache.org/wsif/">Apache WSIF Project</a> - Web Services Invocation Framework</li>
        
<li>
<a href="http://xml.apache.org/xmlbeans/">Apache XMLBeans</a> - An XML-Java binding tool</li>
        
<li>
<a href="http://druid.sourceforge.net/">Druid: The Database Manager</a> - GUI tool to create databases (GPL)</li>
        
<li>
<a href="http://ws.apache.org/axis/">Apache Axis</a> - an implementation of the SOAP ("Simple Object Access Protocol")</li>
        
<li>
<a href="http://ws.apache.org/soap/">Apache SOAP</a> - an implementation of the SOAP submission</li>
        
<li>
<a href="http://www.kanaputs.org/">Kanaputs</a> - an interpreter for Java</li>
        
<li>
<a href="http://cese.sourceforge.net/">Cell Electrophysiology Simulation Environment (CESE)</a>
        - a framework for computational electrophysiological simulations</li>
        
<li>
<a href="http://gump.apache.org/">Apache Gump</a>
</li>
        
<li>
<a href="http://www.agssa.net/">AG Software</a>
</li>
        
<li>
<a href="http://jdbc.postgresql.org/">PostgreSQL JDBC Driver</a>
</li>
        
<li>
<a href="http://www.sbbi.net/">SuperBonBon Industries</a>
</li>
        
<li>
<a href="http://learnlinux.tsf.org.za/">Learn Linux</a> - developing Free/Open Source GNU/Linux Training Materials</li>
        
<li>
<a href="http://computerdictionary.tsf.org.za">Computer Dictionary Project</a> - develop a DocBook XML computer nomenclature glossary database</li>
        
<li>
<a href="http://www.softoutfit.com/">Ca&ntilde;ones Software Outfitter</a>
</li>
        
<li>
<a href="http://www.cirquedigital.com/">Cirque|Digital, LLC</a>
</li>
        
<li>
<a href="http://db.apache.org/derby/">Apache Derby</a>
        - a zero admin, embeddable java rdbms</li>
        
<li>
<a href="http://www.atbymjm.com/">ATbyMJM</a>
        - Assistive Technology, using augmentive communication devices, by Martha Jane McLellan</li>
        
<li>
<a href="http://www.cccp-project.org/">CCCP Common Clan Portal</a>
         - Primarily a J2EE website application for game clans</li>
        
<li>
<a href="http://www.verit.de/">verit Informationssysteme GmbH</a>
</li>
        
<li>
<a href="http://www.sello-propio.com/">Sello Propio</a> - Feng Shui in Columbia</li>
        
<li>
<a href="http://www.divvun.no/">S&aacute;mi proofing tools development project</a>
</li>
        
<li>
<a href="http://www.risten.no/">S&aacute;mi terminology portal</a> 
        - (background documentation uses Forrest, the main page uses eXist+Cocoon)</li>
        
<li>
<a href="http://www.discountdracula.com/">DisCountDracula</a>
        - bargains/deals on various products and services</li>
        
<li>
<a href="http://www.cfas.org/">Central Florida Astronomical
          Society</a>
        - The Central Florida Astronomical Society, Inc.
        (CFAS) is a 501(c)(3) organization operating in the Greater Orlando Metropolitan 
        area and surrounding communities.</li>
        
<li>
<a href="http://uml2svg.sourceforge.net/">uml2svg</a>
        - an
        XSLT-based tool for converting XMI-compliant UML Diagrams into
        SVG</li>
        
<li>
<a href="http://www.technicat.com/">technicat</a>
        - consulting
        and development expertise to the Internet, educational software,
        computer graphics and video game industries</li>
        
<li>
<a href="http://icdl.tsf.org.za/">OpenICDL</a>
        - training materials for International Computer Driving License certification</li>
        
<li>
<a href="http://www.thesummitjournal.com/">The Summit Journal</a> -
        A global, free, translated and syndicated Adventure and Exploration publication. </li>
        
<li>
<a href="http://www.xprime.com.au/">X'Prime</a>
        - Software company specialising in optimisation techniques
        using evolutionary algorithms
      </li>
        
<li>
<a href="http://www.art-painter.com/">Snjezana Vidovic - Art Painter</a>
        - Virtual Gallery
      </li>
        
<li>
<a href="http://www.j2world.net/">j2world</a>
              - smart solutions for a mobile world</li>
        
<li>
<a href="http://j2ee.by.ru/">J2EE Quick Start</a>
</li>
        
<li>
<a href="http://javaworkshop.sourceforge.net ">Java Workshop</a> online web book - show cases some of the tools that every java developer should have in his / her toolbox </li>
        
<li>
<a href="http://www.krabbelkaefer.de">Die Krabbelk&auml;fer</a> - 
        homepage of the association for the promotion of child care in Usingen 
        (Germany).</li>
        
<li>
<a href="http://www.solvkroken.no/ekat/produkter/HK_00/">Produktkatalog for S&oslash;lvkroken</a>
        - biggest supplier of sports fishing equipment in Norway, with export all over the world.
      </li>
        
<li>
<a href="http://www.apwebco.com">Design Patterns</a> - GoF Design Patterns Tutorial</li>
        
<li>
<a href="http://www.usefuldomains.co.uk">Generic Domain 
        Names</a> - Domain sales site specialising in industrial, business 
        and home themed generic domains.</li>
        
<li>
<a href="http://www.travelvisas.eu/">travel visas</a>
        - travel information for backpackers and other travellers in Europe and
beyond
      </li>
        
<li>
<a href="http://www.xmlmath.org">XMLMath</a> - XML-Based Mathematical Expression Evaluator</li>
        
<li>
<a href="http://g11ntoolkit.sourceforge.net/">Globalization Tool Kit</a>
        - Introduction to the G11NToolKit.</li>
        
<li>
<a href="http://barcode4j.krysalis.org/">Barcode4J</a>
        - a flexible generator for barcodes written in Java.</li>
        
<li>
<a href="http://maemo.org/">Maemo</a> - 
          open development platform to create applications
          for Nokia 770 Internet Tablet and other maemo compliant
          handheld devices in the future.</li>
        
<li>
<a href="http://www.primordion.com/Xholon/">Xholon</a>
        - A Java framework for developing UML 2.0 and other event-driven systems.
      </li>
        
<li>
<a href="http://www.primordion.com/Cellontro/">Cellontro</a>
        - Modeling and simulation of cells, other biological entities, and
        biochemical networks, using Xholon.
      </li>
        
<li>
<a href="http://www.erbox.org/">ER/Box Site</a> An all Java, open source ERP system built on Compiere and Apache Derby. Some customisations have been <a href="http://www.erbox.org/documentation/Other/ForrestNotes/forrestNotesOverview.html">documented</a>.</li>
        
<li>
<a href="http://apfw.sourceforge.net/">Apparatus Framework</a> -
          An object-oriented software framework written in C++ for
          embedded applications.</li>
        
<li>
<a href="http://www.skiclub-troisdorf.de/">Skiclub 
      Troisdorf-Sieglar e.V.</a> The skiclub aims to provide ski related
      activities and social events for our members in and around Troisdorf area 
      (near Cologne and Bonn).</li>
        
<li>
<a href="http://scriptella.javaforge.com">Scriptella ETL</a> Open source ETL (Extract-Transform-Load) and script execution tool. </li>
        
<li>
<a href="http://open.controltier.com/">open.controltier.com</a> Open Source tools for automating the build and deployment of complex applications.</li>
        
<li>
<a href="http://antdepo.org/">antdepo.org</a> Open Source automation harness built on top of Apache Ant</li>
<!--  <li><link href=""></link></li> -->
      
</ul>
</div>
    
<a name="N101B9"></a><a name="dispatcher"></a>
<h2 class="underlined_10">Sites using upcoming Dispatcher</h2>
<div class="section">
<p>
        The skinning system in versions of Forrest up to and including 0.7 was
        great, however, it proved to be too inflexible. Soon we will have brand
        new system called Dispatcher. The following sites are examples.
      </p>
<div class="note">
<div class="label">Note</div>
<div class="content">
        The Dispatcher is still in development (as of 0.8-dev cycle), please
        only use them if you know what you are doing. We expect to include them
        in an upcoming release at which point we will be encouraging their use.
      </div>
</div>
<ul>
        
<li>
<a href="http://floatingsun.net/">Floating Sun</a> - Diwaker Gupta :: Web/Blog/Gallery</li>
        
<li>
<a href="http://www.ourlittlestars.org/">Our Little Stars</a> - A non-profit toy library site.
        This site is interesting because it pulls content from many locations including a Daisy CMS system and 
        the Amazon ECS service.</li>
        
<li>
<a href="http://cyriaque.dupoirieux.free.fr/">Cyriaque</a> family website...</li>
        
<li>
<a href="http://lenya.zones.apache.org/">Apache Lenya 
          Zone</a> - this site is using v2 with some nice demonstrations of 
          new features like the theme switcher.</li>
        
<li>
<a href="http://www.target-x.de/">tarGET-X - know the unknown</a> 
          by thorsten.</li>
        
<li>
<a href="http://www.criaturitas.org/">CDK - club deportivo kriaturitas</a>.
          Website of the basketball club CDK located in Sevilla, Espa&ntilde;a.</li>
        
<li>
<a href="http://www.varietee.com.au/">varietee&trade; adjustable golf practice platforms</a>
</li>
<!--  <li><link href=""></link></li> -->
      
</ul>
</div>
  
</div>
<!--+
    |end content
    +-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
    |start bottomstrip
    +-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<div class="copyright">
        Copyright &copy;
         2002-2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
    |end bottomstrip
    +-->
</div>
</body>
</html>
