Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Tapestry Wiki" for 
change notification.

The "SuccessStories" page has been changed by Andik Yulianto.
http://wiki.apache.org/tapestry/SuccessStories?action=diff&rev1=84&rev2=85

--------------------------------------------------

  <<TableOfContents>>
  
  = Tapestry Success Stories =
- 
  Come on you lurkers! Post your stories here!
+ 
   * ChoosingTapestry
   * MovingToTapestry
  
- 
  == PaperCut NG ==
- 
- 
[[http://www.papercut.com/products/ng/tour/|{{http://www.papercut.com/products/ng/images/screenshots/printer-list-small.jpg}}]]
+ 
[[http://www.papercut.com/products/ng/tour/|{{http://www.papercut.com/products/ng/images/screenshots/printer-list-small.jpg|http://www.papercut.com/products/ng/tour/}}]]
  
  Here at [[http://www.papercut.com/|PaperCut]] we write software to monitor, 
quota and report network printing and internet usage.  In early 2005 we had 
decided that our previous product was being constrained by its architecture 
(not to mention showing its age), and we needed to start afresh.
  
@@ -24, +22 @@

  
  Even with how far the world of web development has come over the last few 
years, Tapestry 3 still meets our needs and provides us with a solid, 
attractive and easy to maintain public face of our application.  We are keen to 
upgrade to Tapestry 5... as soon as we find the time ;)
  
- 
  == Solis Reports ==
- 
- [[http://www.solis.ro/solis-reports|Solis Reports]]  is a reports and data 
mining framework. The framework works with any database that has a JDBC 
interface.   The users can dig for for data in the reports to arrive to the 
essencial information, and export it in Excel. Reports are configured in xml, 
using a set of sql queries. The input parameters, the display of columns, the 
sortable status, the groupings, the totals are fully configurable in xml. 
+ [[http://www.solis.ro/solis-reports|Solis Reports]]  is a reports and data 
mining framework. The framework works with any database that has a JDBC 
interface.   The users can dig for for data in the reports to arrive to the 
essencial information, and export it in Excel. Reports are configured in xml, 
using a set of sql queries. The input parameters, the display of columns, the 
sortable status, the groupings, the totals are fully configurable in xml.
  
  A demo is also available [[http://www.solis.ro/demo|online here]].
  
  Tapestry framework was chosen for its ability to generate user friendly, 
powerfull and efficient web interfaces. The code is easily maintaineble, and 
the integration with other services like JExcel API for exporting the reports 
content is straight-forward. Creation of special components for entering and 
validating various types of data works like a charm.
  
- SOLIS REPORTS was built by [[http://www.nemesisit.ro|Nemesis IT]], a software 
company from Bucharest, Romania. Our Product Manager for Solis Reports is 
Rodica Balasa ([email protected]).
+ SOLIS REPORTS was built by [[http://www.nemesisit.ro|Nemesis IT]], a software 
company from Bucharest, Romania. Our Product Manager for Solis Reports is 
Rodica Balasa ( [email protected] ).
  
  Technologies used: Tapestry Framework, JExcel API, Jakarta Tomcat.
  
  == SOLIS ==
- 
  [[http://www.solis.ro|SOLIS]]  is a CRM and sales management system for 
distributors, which integrates the supply-offering-order-shippment-billing 
chain of operations. A demo is also available [[http://www.solis.ro/demo|online 
here]].
  
- Tapestry framework was essential in creating a web interface based enterprise 
application with complex workflow and business logic. Even though the learning 
curve is steep, the long term benefits of using Tapestry in a complex 
application worth the inital effort. The framework is robust (more robust than 
jsps for instance) and maintanance and updates tasks take minimum time. The 
code is highly reusable and maintainable. Integration with Jasper Reports for 
accessing documents and reports from the web interface was straight forward and 
with excelent performance results. 
+ Tapestry framework was essential in creating a web interface based enterprise 
application with complex workflow and business logic. Even though the learning 
curve is steep, the long term benefits of using Tapestry in a complex 
application worth the inital effort. The framework is robust (more robust than 
jsps for instance) and maintanance and updates tasks take minimum time. The 
code is highly reusable and maintainable. Integration with Jasper Reports for 
accessing documents and reports from the web interface was straight forward and 
with excelent performance results.
  
- SOLIS was built by [[http://www.nemesisit.ro|Nemesis IT]], a software company 
from Bucharest, Romania. Our team leader for Tapestry development is Marilen 
Corciovei ([email protected]).
+ SOLIS was built by [[http://www.nemesisit.ro|Nemesis IT]], a software company 
from Bucharest, Romania. Our team leader for Tapestry development is Marilen 
Corciovei ( [email protected] ).
  
  Technologies used: Tapestry Framework, Hibernate, Jasper Reports, Jakarta 
Tomcat, Postgresql and Oracle implementations.
  
  == Alciweb ==
- 
  [[http://www.nemesisit.ro/clients/case-study|Alciweb]] is a Content 
Management System (CMS) developed by [[http://www.nemesisit.ro|Nemesis IT]] for 
[[http://www.alcidian.net|Alcidian Solutions]] for medium cityhalls sites in 
France. The site was developed for a few years starting with Tapestry 3.0 and 
the first implementation is online for more than 1.5 years for the city of 
Montigny le Bretonneux near Paris. The CMS is a robust application using 
Tapestry, Hibernate and a PostgreSQL database. In now holds hundert to thousand 
of pages.
  
  == DocsDB/4 ==
@@ -58, +52 @@

  
  Developing web applications with Tapestry felt like home for the Java and 
HTML programmers because of the strict separation of the presentation and the 
business layers. All other aspects of Tapestry, especially the component-based 
architecture, make up for clean, reusable and maintainable code! Tapestry is 
nothing like we ever experienced before developing a web application!
  
- 
  == TheServerSide.com ==
- 
- As of a couple of weeks ago, [[http://theserverside.com|TheServerSide.com]] 
(as well as !TheServerSide.net) are running on Tapestry and HiveMind.  The work 
was done by myself, Howard Lewis Ship.  The majority of users
+ As of a couple of weeks ago, [[http://theserverside.com|TheServerSide.com]] 
(as well as !TheServerSide.net) are running on Tapestry and HiveMind.  The work 
was done by myself, Howard Lewis Ship.  The majority of users did not see a 
difference, beyond a few refinements to the UI here and there.
- did not see a difference, beyond a few refinements to the UI here and there.
  
  Performance has been excellent, though a true before and after comparison 
would not be possible, since the backend database access changed from WebLogic 
CMP entity beans to Solarmetric Kodo JDO at the same time.  Additionally, the 
application runs entirely stateless (no !HttpSession), though a good bit of 
state is stored in hidden form fields.
  
@@ -71, +62 @@

  The client is completely thrilled by the end results, in terms of performance 
and the promise of vastly improved functionality.  Expect to see more detailed 
reports on !TheServerSide.com.
  
  == partnermine.com ==
- 
  '''[[http://partnermine.com/|partnermine.com]]''' is a new dating site with 
the goal to stand out of the jungle of bad dating sites that are out there. Due 
to the nature of our very detailed user profiles and search engine we were 
faced with rather big HTML forms that even repeated in large parts on three or 
more pages. We started out with Struts because it sounded like the standard 
tool for the job, but it was such a pain, and the amount of duplicate and dumb 
glue code was just not standable. Maintainability would have been near to 
impossible without introducing errors. When we looked for alternatives Tapestry 
quickly became our favourite and soon after the winner, especially because of 
the brilliant component model that helped us to separate our pages into 
reusable parts, and we are well rid of duplicate code - we edit once and it 
changes everywhere.
  
  It took us maybe 3-4 weeks to get properly into Tapestry and convert all our 
old Struts code to Tapestry. It was quite a learning curve (though the Struts 
one wasn't exactly fun either) and threw us apparently(!!) back by a month. But 
I'm certain that in the end it helped us to reduce total development time. We 
have such a beautifully clean project now - and it's easily maintainable too! 
It's just a pleasure to work with it and I don't even want to think of the 
nightmares that Struts or similar frameworks would have given us if we had gone 
the full way with them.
@@ -81, +71 @@

  So, if you're in the process of evaluating what tool is the best for you, 
come to '''[[http://partnermine.com/|partnermine.com]]''', have a look around, 
and enjoy the wonderful world of Tapestry.
  
  == Intellidos Limited ==
- 
  === Our Application ===
+ '''[[http://www.intellidos.com/|IntellidosTM]]''' have produced a web served 
data  integration tool that compiles a dossier containing all the known data 
about a  specific entity on a web page and provides hyperlinks to other related 
 entities. 
'''[[http://www.intellidos.com/products/hyperdossier.htm|HyperDossierTM]]'''  
is designed to allow users to browse and explore large collections of  
corporate data through an intuitive, easy-to-use web interface. In  addition, 
'''[[http://www.intellidos.com/products/queryconstructor.htm|QueryConstructorTM]]'''
  allows users to create complex, cross-domain ad-hoc queries against this 
space  to search for entities with specific properties. 
'''[[http://www.intellidos.com/products/hyperdossier.htm|HyperDossier]]''' 
groups properties into  reports and uses a file browser-like tree to allow uses 
to select which  combination of properties to show.
  
- '''[[http://www.intellidos.com/|IntellidosTM]]''' have produced a web served 
data 
- integration tool that compiles a dossier containing all the known data about 
a 
- specific entity on a web page and provides hyperlinks to other related 
- entities. 
'''[[http://www.intellidos.com/products/hyperdossier.htm|HyperDossierTM]]''' 
- is designed to allow users to browse and explore large collections of 
- corporate data through an intuitive, easy-to-use web interface. In 
- addition, 
'''[[http://www.intellidos.com/products/queryconstructor.htm|QueryConstructorTM]]'''
 
- allows users to create complex, cross-domain ad-hoc queries against this 
space 
- to search for entities with specific properties. 
'''[[http://www.intellidos.com/products/hyperdossier.htm|HyperDossier]]''' 
groups properties into 
- reports and uses a file browser-like tree to allow uses to select which 
- combination of properties to show. 
-   
  === Quick Tour ===
+ The first demo gives a  general  tour of 
'''[[http://www.intellidos.com/products/hyperdossier.htm|HyperDossier]]'''  
(and 
'''[[http://www.intellidos.com/products/queryconstructor.htm|QueryConstructor]]''')
 and located at  
'''http://www.intellidos.com/viewlets/HyperDossierGeneral_viewlet_swf.html'''.  
It shows how collated information about small molecules, assays, proteins, 
people and teams is  displayed and cross linked.
  
+ The second demo gives you an  insight on how we used '''Tapestry''' to 
implement wizards by showing how a  new report is created by an administrator. 
This demo is located  at 
'''http://www.intellidos.com/viewlets/ReportCreation170804_viewlet_swf.html '''.
- The first demo gives a  general 
- tour of 
'''[[http://www.intellidos.com/products/hyperdossier.htm|HyperDossier]]'''  
(and 
'''[[http://www.intellidos.com/products/queryconstructor.htm|QueryConstructor]]''')
 and located at 
- 
'''http://www.intellidos.com/viewlets/HyperDossierGeneral_viewlet_swf.html'''. 
- It shows how collated information about small molecules, assays, proteins, 
people and teams is 
- displayed and cross linked.
-   
- The second demo gives you an 
- insight on how we used '''Tapestry'''
- to implement wizards by showing how a 
- new report is created by an administrator. This demo is located  at
- '''http://www.intellidos.com/viewlets/ReportCreation170804_viewlet_swf.html 
'''.
  
  === Technology ===
+ Before undertaking  this development we evaluated a number of Java 
technologies to determine which  one(s) suited our needs best. Our previous 
experience was in developing  large, complex, component-based systems with 
Swing GUIs and a strong MVC  architecture. JSP was rejected very early and then 
Struts, Turbine and  '''Tapestry''' were evaluated by  writing quick 
prototypes. As might be expected Struts produced working  results very quickly 
but the code was found to be harder to maintain in larger  systems due to the 
lack of components and a clear separation of MVC. While Turbine provided a good 
controller model it was found to be a little bit  too low level for our needs 
and did not provide its own view layer.
  
+ '''Tapestry''' was found to be quite difficult to get into at  first and the 
'quick' prototype took longer than expected. However, this was  before Howard 
M. Lewis Ship published '''[[http://www.manning.com/lewisship/|Tapestry in 
Action]]''' which  makes learning much easier. Once the initial learning curve 
had been overcome  we found that we could increasingly apply our Swing 
experience and the  development speed accelerated. '''Tapestry''' offers a high 
degree of  flexibility and functionality which helped us in our aim to build a 
rich  Swing-like web GUI. The code was nicely structured using components and  
the familiar MVC pattern which greatly aided understanding, maintainability  
and the use of automated testing.
- Before undertaking 
- this development we evaluated a number of Java technologies to determine 
which 
- one(s) suited our needs best. Our previous experience was in developing 
- large, complex, component-based systems with Swing GUIs and a strong MVC 
- architecture. JSP was rejected very early and then Struts, Turbine and 
- '''Tapestry''' were evaluated by 
- writing quick prototypes. As might be expected Struts produced working 
- results very quickly but the code was found to be harder to maintain in 
larger 
- systems due to the lack of components and a clear separation of MVC.
- While Turbine provided a good controller model it was found to be a little 
bit 
- too low level for our needs and did not provide its own view layer.
-   
- '''Tapestry''' was found to be quite difficult to get into at 
- first and the 'quick' prototype took longer than expected. However, this was 
- before Howard M. Lewis Ship published 
'''[[http://www.manning.com/lewisship/|Tapestry in Action]]''' which 
- makes learning much easier. Once the initial learning curve had been overcome 
- we found that we could increasingly apply our Swing experience and the 
- development speed accelerated. '''Tapestry''' offers a high degree of 
- flexibility and functionality which helped us in our aim to build a rich 
- Swing-like web GUI. The code was nicely structured using components and 
- the familiar MVC pattern which greatly aided understanding, maintainability 
- and the use of automated testing.
  
  === Results ===
+ While '''Tapestry''' does have a fairly steep  learning curve we have been 
delighted with the results. As you can see  from the links the product looks 
good and has a high degree of GUI  interactivity. What is not so obvious is 
that the GUI has gone through  several evolutions and the code is still 
maintainable despite this. This  alone should be enough to recommend 
'''Tapestry''' for any serious ongoing software  engineering project.
  
- While '''Tapestry''' does have a fairly steep 
- learning curve we have been delighted with the results. As you can see 
- from the links the product looks good and has a high degree of GUI 
- interactivity. What is not so obvious is that the GUI has gone through 
- several evolutions and the code is still maintainable despite this. This 
- alone should be enough to recommend '''Tapestry''' for any serious ongoing 
software 
- engineering project.
-   
- A demo of our products can be 
- found on our website at '''[[http://www.intellidos.com|www.intellidos.com]]'''
+ A demo of our products can be  found on our website at 
'''[[http://www.intellidos.com|www.intellidos.com]]'''
- 
- 
  
  == Thomson - Compu-Mark ==
+ At Compu-Mark, we started using Tapestry as our default web framework for all 
our on-line services in August 2003. We first did an evaluation on the 
available/popular frameworks, and the refreshing new concept (using components) 
of Tapestry made us decide to use it.
- 
- At Compu-Mark, we started using Tapestry as our default web framework for all 
our on-line services in August 2003.
- We first did an evaluation on the available/popular frameworks, and the 
refreshing new concept (using components) of Tapestry made us decide to use it.
  
  The project on which we used it first, was composed out of 3 developers of 
which none had prior experience with Java nor web-development. They were all 
experienced C++ developers.  Learning to do web-development in Java was 
expected to be a challenge, but in fact Tapestry lowered to barrier: there is 
HTML to do the layout, and there is Java to do the logic.  Of course, some 
experience needed to be build up in wiring it together.
  
+ By now, 4 Tapestry-based B2B applications are launched with success.   If we 
had to choose a web-framework again, it would again be Tapestry.
- By now, 4 Tapestry-based B2B applications are launched with success.  
- If we had to choose a web-framework again, it would again be Tapestry.
  
  Thanks Howard!
  
- 
- 
  == US International Trade Commission EDIS Search Application ==
- 
  I had known of Tapestry for over a year when I found myself in the lead 
position on the ground floor of a project for the USITC. The two sub-projects 
were
+ 
   * A back-end content feed system for moving public documents to a Web server 
and indexing them along with their meta-data in a search engine
   * A public Web front-end for the above-mentioned search engine
  
@@ -175, +109 @@

  I had initially dismissed Tapestry due to the apparent steep learning curve. 
However, after an unsuccessful attempt at using 
[[http://www.opensymphony.com/webwork/|WebWork]], I decided to experiment with 
Tapestry by asking the junior developer to go through Kent Tong's excellent 
''[[http://www.agileskills2.org/EWDT|Getting Started with Tapestry]]'' 
Tutorial. Not only did he get through the tutorial just fine, but I made some 
encouraging observations:
  
   1. '''He was having fun.''' I frequently caught this otherwise 
highly-composed imperturbable man exclaiming "Yes!" upon a successful 
mouse-click.
-  2. '''He took personal initiative in his work.''' He figured out how to set 
up a Tapestry environment in Eclipse using Spindle and began development of our 
production app without a break after working on the tutorial for only 2 or 3 
days.
+  1. '''He took personal initiative in his work.''' He figured out how to set 
up a Tapestry environment in Eclipse using Spindle and began development of our 
production app without a break after working on the tutorial for only 2 or 3 
days.
-  3. '''He became resourceful.''' After purchasing 
[[http://www.amazon.com/exec/obidos/tg/detail/-/1932394117/103-7792846-6517465?v=glance|Tapestry
 in Action]], he actually created his own custom component and got on with form 
field validation with little to no assistance.
+  1. '''He became resourceful.''' After purchasing 
[[http://www.amazon.com/exec/obidos/tg/detail/-/1932394117/103-7792846-6517465?v=glance|Tapestry
 in Action]], he actually created his own custom component and got on with form 
field validation with little to no assistance.
-  4. '''He cleanly integrated with the search engine.''' We exposed the search 
engine's API calls as [[http://www.springframework.org/|Spring]] beans. The 
distinction between the controller and model could not be clearer. I cannot 
even think of how the line between these could be blurred.
+  1. '''He cleanly integrated with the search engine.''' We exposed the search 
engine's API calls as [[http://www.springframework.org/|Spring]] beans. The 
distinction between the controller and model could not be clearer. I cannot 
even think of how the line between these could be blurred.
  
  As it happened, in less than 3 weeks the back-end task turned out to be a 
great deal more complex and demanding than initially anticipated. So, I had to 
focus almost 100% of my time on it and the junior developer was tasked with 
making a solo attempt at creating the front end.
  
@@ -193, +127 @@

  
  Atif Faridi
  
- 
  == Greek Chess Federation ==
- 
  As of 1/7/2005, the managing and rating system of Greek Chess Federtation is 
based on Tapestry.
  
+ It's a system responsible for >30000 chess players and >400 clubs and for 
calculating their ratings. It manages the >200 tournaments and >13000 chess 
games played in Greece per semester.
- It's a system responsible for >30000 chess players and >400 clubs and for 
calculating their ratings.
- It manages the >200 tournaments and >13000 chess games played in Greece per 
semester.
  
+ It's been almost a year since I've first learned about Tapestry, but only 
since Nov 2004 have  I decided to use it in my projects. At first, I did a 
thorough investingation of the framework, writing lots of test pages.  My 
biggest initial concern was whether it could cover all my development needs. 
Would there be a case  when something is not feasible in Tapestry? I then had a 
student (at University of Athens) do his final project on it. It was very 
pleasant to see how this (inexperienced in Java) developer came to understand 
and use Tapestry. It ended up becoming the fastest final project I've ever 
supervised. I almost feel sorry for the other (brighter) students  who had to 
learn Struts (again, after my proposal).
- It's been almost a year since I've first learned about Tapestry, but only 
since Nov 2004 have 
- I decided to use it in my projects.
- At first, I did a thorough investingation of the framework, writing lots of 
test pages. 
- My biggest initial concern was whether it could cover all my development 
needs. Would there be a case 
- when something is not feasible in Tapestry?
- I then had a student (at University of Athens) do his final project on it. It 
was very pleasant to see
- how this (inexperienced in Java) developer came to understand and use 
Tapestry. It ended up becoming
- the fastest final project I've ever supervised. I almost feel sorry for the 
other (brighter) students 
- who had to learn Struts (again, after my proposal).
  
  Finally, I just started using it in real projects and it just worked. All my 
fears went away!
  
+ The only thing that I now regret is of not having known Tapestry from the 
very first days of its  existence. It feels as if I've wasted so much time in 
this pre-Tapestry era!
- The only thing that I now regret is of not having known Tapestry from the 
very first days of its 
- existence. It feels as if I've wasted so much time in this pre-Tapestry era!
  
  Andreas Andreou
  
  == Graviter ==
- 
  Graviter is the assisted product search for 
[[http://www.gravit.com.br|Gravit]], an online electronic shop in Brazil (think 
about this as a guidester knock-off). Gravit itself is hosted on a canned 
"e-commerce" site, but the smart, computer-inclined shop manager wanted to 
provide search capabilities that go far beyond what the e-commerce site 
currently offers.
  
  So I've designed a "mirror" database, that gets data exported from the 
e-commerce site (thanks goodness they provide an automated XML data export), 
and adds what we need to provide smart, consumer-oriented searchs. Every 
product fits in a ''category'', and each category has many ''attributes''. The 
shop manager can use some administrative pages to edit product descriptions and 
attribute values; customers then use the search pages to find the products they 
want.
@@ -229, +150 @@

  -- MarcusBrito
  
  == Brother International de Mexico ==
- 
  The site for [[http://www.brother.com.mx|Brother International de Mexico]] 
was developed using MySql, OpenCMS 5, Tapestry 3 and Hibernate 2. The site 
includes an online store.
  
- [[http://www.brother.com.mx|Brother International de Mexico]] is one  of the 
premier providers of multifunction centers, printers and facsimile machines. 
Brother was established in Mexico on 1992 and markets many products 
manufactured by its parent company, Brother Industries, Ltd., of Nagoya, Japan. 
+ [[http://www.brother.com.mx|Brother International de Mexico]] is one  of the 
premier providers of multifunction centers, printers and facsimile machines. 
Brother was established in Mexico on 1992 and markets many products 
manufactured by its parent company, Brother Industries, Ltd., of Nagoya, Japan.
  
  == Actualis.com ==
- 
  We are one of the top 10 (computers, parts for home users and professionals) 
resellers in France. Our new website is completely based on Tapestry 3. Behind 
Tapestry 3 we are using Hibernate 3, Spring and JiBX. We have more than 200000 
customers and more than 10000 products online.
  
  Our choice of Tapestry was done after the difficulty to evolve our old php 
website. Many of our internal applications were done in Java, and then Tapestry 
had the best solution for form management, reusing components and manangement. 
Also the separation of code/presentation convinced the management.
@@ -244, +163 @@

  
  -- Henri Dupre
  
- 
- 
  == Seafax.com ==
- 
- The site for [[http://www.seafax.com]] was developed using Oracle, Cayenne, 
and Tapestry 3 in 2005. It was converted from an older WebObjects 4.5 
implementation and we were very happy with the conversion to open-source Java 
platforms.  Tapestry and Cayenne were similar in concept to WebObjects (making 
the learning curve minimal for us) but better implemented... easier to develop, 
maintain and debug, faster and more portable.
+ The site for http://www.seafax.com was developed using Oracle, Cayenne, and 
Tapestry 3 in 2005. It was converted from an older WebObjects 4.5 
implementation and we were very happy with the conversion to open-source Java 
platforms.  Tapestry and Cayenne were similar in concept to WebObjects (making 
the learning curve minimal for us) but better implemented... easier to develop, 
maintain and debug, faster and more portable.
  
  The site is designed primarily for access by our clients and doesn't offer 
much information to non-client visitors.  It provides credit reports, 
collection services and other information on the seafood, meat and poultry 
industries.
  
  -- Bryan Lewis
  
- 
- 
  == www.ArabianDreams.ae ==
+ Arabian Dreams is real estate company based in Dubai, U.A.E. It wanted a web 
site to allow customers to be able to search properties for rent and for 
purchase. The usual criteria: price or rent range, location, number of 
bedrooms, view, were to be provided to narrow down the searches. Behind the 
scenes, Arabian Dreams wanted a web-based administrative interface that would 
allow its agents to add, modify and delete property listings, manage landlords' 
and owners' profiles, generate various reports, generate rental and sale 
contracts as PDF files and a number of other utility functions. I had used 
Tapestry and Hibernate in a number of prototype projects when I worked for a 
Lahore, Pakistan-based software company. The company had been relying on 
JSP/EJB/J2EE frameworks and the higher management were always apprehensive 
about new technologies, especially, open source. The project was not as 
high-profiled as some of the other projects the company was working on. I 
decided to take on the project and use Tapestry and Hibernate. The business 
logic was not complex; most of the web pages in the  application were straight 
forward - get the data based on certain criterion and display it, get user 
input in a form and persist it. Hibernate made the persistent part easy while 
Tapestry made the web-page management a breeze.
  
+ The project took about 5 months to develop and deploy. The web site 
http://www.arabiandreams.ae is hosted at webhosting service in Canada. The 
environment is Taperstry 3.0.3, Hibernate 2.1.6, MySQL 4.1 and Tomcat 5.
- Arabian Dreams is real estate company based in Dubai, U.A.E. It wanted a web 
site to allow customers to be able
- to search properties for rent and for purchase. The usual criteria: price or 
rent range, location, number of
- bedrooms, view, were to be provided to narrow down the searches. Behind the 
scenes, Arabian Dreams wanted a web-based administrative interface that would 
allow its agents to add, modify and delete property listings, manage
- landlords' and owners' profiles, generate various reports, generate rental 
and sale contracts as PDF files and
- a number of other utility functions. I had used Tapestry and Hibernate in a 
number of prototype projects when
- I worked for a Lahore, Pakistan-based software company. The company had been 
relying on JSP/EJB/J2EE frameworks
- and the higher management were always apprehensive about new technologies, 
especially, open source. The project
- was not as high-profiled as some of the other projects the company was 
working on. I decided to take on the
- project and use Tapestry and Hibernate. The business logic was not complex; 
most of the web pages in the 
- application were straight forward - get the data based on certain criterion 
and display it, get user input
- in a form and persist it. Hibernate made the persistent part easy while 
Tapestry made the web-page management
- a breeze. 
  
+ The one feature of Tapestry that I found invaluable was the ability to work 
in HTML designing tools like Frontpage and Dreamweaver in designing and editing 
HTML pages with jwcid tags. I had a graphics designer check out HTML pages with 
embedded jwcid tags from CVS repository, make necessary changes and commit the 
changes. Never had the graphics designer done something similar in other 
projects she had worked on, i.e., the HTML file the developer and the designer 
work with are the same.
- The project took about 5 months to develop and deploy. The web site 
[[http://www.arabiandreams.ae]] is hosted at webhosting
- service in Canada. The environment is Taperstry 3.0.3, Hibernate 2.1.6, MySQL 
4.1 and Tomcat 5.
- 
- The one feature of Tapestry that I found invaluable was the ability to work 
in HTML designing tools like
- Frontpage and Dreamweaver in designing and editing HTML pages with jwcid 
tags. I had a graphics designer check
- out HTML pages with embedded jwcid tags from CVS repository, make necessary 
changes and commit the changes. Never had the graphics designer done something 
similar in other projects she had worked on, i.e., the HTML file the developer 
and the designer work with are the same.
  
  My thanks to Howard for designing a framework that has made web development 
convenient and enjoyable.
  
  -- Sohail Aslam
  
  == The National Hockey League ==
- 
- The NHL [[http://www.nhl.com]] has been developing web applications using 
Tapestry since its 2.3 version.  In conjunction with Cayenne, Tapestry is the 
foundation for the league's online presence including:
+ The NHL http://www.nhl.com has been developing web applications using 
Tapestry since its 2.3 version.  In conjunction with Cayenne, Tapestry is the 
foundation for the league's online presence including:
  
+ NHL.com (schedules, scores, standings, news, etc.),  Statistics,  Highlight 
Machine,  Media/Video User Registration,  NHL Media Site, and a handful of 
internal intranet apps.
- NHL.com (schedules, scores, standings, news, etc.), 
- Statistics, 
- Highlight Machine, 
- Media/Video User Registration, 
- NHL Media Site, and
- a handful of internal intranet apps.
  
  Environment: Tapestry (2.3/3.0.3/4.0), Cayenne 1.2, Oracle 9i, Sun One 
Application Server 7.0
  
@@ -300, +193 @@

  -- Eric Schneider (I plan to add more info when time permits)
  
  == Ping Identity - PingFederate 3.0 ==
- 
  We released PingFederate 3.0 which was built entirely on top of Tapestry.  
Our PingFederate 2.0 was built on Struts, but when we started 3.0, we decided 
to look into alternatives.  Ultimately, we decided on Tapestry.  We completely 
re-designed and re-coded the entire application GUI, using, basically, two 
developers.  We feel that we have a platform for future releases, whereas, 2.0 
was not.
  
  We built it on top of JBoss using Jetty.  Our first product was built on 
JBoss using Tomcat and we decided to switch.  We hired Howard to come out and 
bring us up to speed and that was very beneficial.
@@ -311, +203 @@

  
  It is a commercial product, but the first 100,000 transactions are free.
  
- [[http://www.pingidentity.com/products/download]]
+ http://www.pingidentity.com/products/download
  
  -- Mark Stang
  
  == BestCrosswords.com ==
- 
  [[http://www.bestcrosswords.com|BestCrosswords.com]] is an online crossword 
puzzle website. It was originally written in perl but was eventually ported to 
java to ease the development process. Recently, the site has been migrated from 
Tapestry 3 to Tapestry 4 and the transition proved smooth.
  
  For more info on the site, visit the [[http://www.pyromod.com|company site]].
  
  == Church And People ==
- 
  The [[http://www.churchandpeople.com/|Church and People]] web site provides 
churches with community building and administration tools. It includes online 
event registration, credit card processing, resource management, membership 
directories, private forums, an event calendar, e-mail tools, group management, 
member information, and more. The Church and People application works with a 
church's existing web site and accounting package, rather than trying to 
replace them.
  
  The application has nearly 200 tapestry pages (including administration 
pages), many of which have complex view and/or associated business logic, and 
many of which change appearance based on the login privileges of the user. 
Three of Tapestry's most important strengths for this project were its ability 
to use a prototype HTML page as the template, the ease with which components 
can be constructed, and the high quality of the error messages that allowed 
problems to be resolved quickly.
  
- Custom components included a ''role'' component that conditionally included 
or excluded content based on a user's security privileges; a dynamic ''tab'' 
component that is security-aware; link components such as ''Person``Link'' that 
act similar to a Direct``Link--but take business objects as parameters and 
build the visible link text and the destination page based on object data and 
user roles; and several components that help integrate the application to the 
credit card processing engine. Creating a new component is no more difficult 
than creating a new page.
+ Custom components included a ''role'' component that conditionally included 
or excluded content based on a user's security privileges; a dynamic ''tab'' 
component that is security-aware; link components such as ''PersonLink'' that 
act similar to a DirectLink--but take business objects as parameters and build 
the visible link text and the destination page based on object data and user 
roles; and several components that help integrate the application to the credit 
card processing engine. Creating a new component is no more difficult than 
creating a new page.
  
  The application itself maintains session state related only to the user's 
identity, memberships, and permissions. Otherwise, the application is 
stateless. Application context is maintained through identifiers in hidden 
fields or URL parameters. These identifiers typically refer to Hibernate 
objects on which a page is operating.
  
  Some ''redirect after post'' functionality was written in an 
application-specific way (that does not use the session) by providing a 
redirect service that could cooperate with a framework-wide base page class to 
initialize the page based on URL parameters. (In the current Church and People 
release, this is not yet a complete solution because posts with error messages 
are not redirected. A ''flash message'' based solution is probably required 
here.)
  
- The application uses Tapestry and Hibernate, with Jasper``Reports for a 
reporting engine. It is developed partly using a domain-specific language 
created with JavaCC and code generation tools written with Velocity. It is 
deployed on Linux against a MySQL database.
+ The application uses Tapestry and Hibernate, with JasperReports for a 
reporting engine. It is developed partly using a domain-specific language 
created with JavaCC and code generation tools written with Velocity. It is 
deployed on Linux against a MySQL database.
  
  == Kunstbilder Galerie ==
- 
  The [[http://www.kunstbilder-galerie.de/|Kunstbilder-Galerie]] web site is a 
german online shop that sells oilpaintings and art prints. The web site is base 
on tapestry 3 but will be migrated to tapestry 4 soon.
  
  == TeamWork Live ==
  [[http://www.teamworklive.com/|TeamWork Live]] is a web-based team 
collaboration and project management tool that combines many of the best 
features of Basecamp, 30Boxes, and wikis into an integrated application. 
TeamWork Live makes it easy for you to communicate, collaborate, and share 
information with your co-workers and clients. The application is designed to be 
easy to use and it is hosted so there's no software to download, install, or 
maintain.
  
- The project was developed using Tapestry 4.0. Tapestry 3.1 was used in a 
previous project and much of that code was migrated to TeamWork Live. The 
platform is based on the Tapestry/Spring/Hibernate triad and features an 
AJAX-rich interface. 
+ The project was developed using Tapestry 4.0. Tapestry 3.1 was used in a 
previous project and much of that code was migrated to TeamWork Live. The 
platform is based on the Tapestry/Spring/Hibernate triad and features an 
AJAX-rich interface.
  
  == Tree of Life Web Project ==
- 
  The [[http://tolweb.org/|Tree of Life Web Project]] is a collaborative effort 
of biologists from around the world. On more than 4000 World Wide Web pages, 
the project provides information about the diversity of organisms on Earth, 
their evolutionary history (phylogeny), and characteristics.  The ToL has been 
powered by Tapestry by over two years now, so it's about time it made its way 
to the wiki  =)  Since adopting Tapestry, the ToL has experienced rapid growth 
in functionality and increased stability.  While the current version of the 
public site is on Tapestry3, things are currently being moved to Tapestry4.
  
  == PepperJobs ==
  [[http://www.pepperjobs.com|PepperJobs]] is small job board entirely 
developped with tapestry 4.0.2 for the frontend. Each tomcat instance runs on 
top of apache with mod_jk, and the http requests are load balanced with LVS 
(Linux Virtual Server). It was a real pleasure to develop the application with 
this framework, thanks to the devleopers and the users community.
  
  == PowerSteering Software ==
- [[http://www.powersteeringsoftware.com|PowerSteering]] is a software vendor 
that developed and provides enterprise-class, On-Demand software for Lean 
Project Portfolio Management (Lean PPM), with a particularly strong presence in 
companies that are running large Six Sigma or other Operational Excellence type 
programs. Founded in 1998, the front-end of the application was originally 
built in JSPs. The functionality had grown over the years, and the navigation 
had become a bit circuitous and confusing, to say the least. Driven by the 
usability problems, as well as a desire to easily support multiple languages, 
we made a decision in early 2006 to re-implement the entire UI. Several 
technologies were investigated, with Tapestry coming out on top. Howard came 
over and helped us kick things off with a training session for our development 
team. Our initial "Version 5.0" release using the new Tapestry UI was made 
public in June 2006. In the October/November 2006 issue, 
[[http://www.isixsigma-magazine.com/archive/default.asp?vol=2&num=6|iSixSigma 
Magazine]] published a 'Test Lab' review of four competing software products, 
and our Tapestry-powered one came out on top! You can see the full review 
[[http://www.powersteeringsoftware.com/PDF/issreview_nov06|here]]. Thanks 
Howard! 
+ [[http://www.powersteeringsoftware.com|PowerSteering]] is a software vendor 
that developed and provides enterprise-class, On-Demand software for Lean 
Project Portfolio Management (Lean PPM), with a particularly strong presence in 
companies that are running large Six Sigma or other Operational Excellence type 
programs. Founded in 1998, the front-end of the application was originally 
built in JSPs. The functionality had grown over the years, and the navigation 
had become a bit circuitous and confusing, to say the least. Driven by the 
usability problems, as well as a desire to easily support multiple languages, 
we made a decision in early 2006 to re-implement the entire UI. Several 
technologies were investigated, with Tapestry coming out on top. Howard came 
over and helped us kick things off with a training session for our development 
team. Our initial "Version 5.0" release using the new Tapestry UI was made 
public in June 2006. In the October/November 2006 issue, 
[[http://www.isixsigma-magazine.com/archive/default.asp?vol=2&num=6|iSixSigma 
Magazine]] published a 'Test Lab' review of four competing software products, 
and our Tapestry-powered one came out on top! You can see the full review 
[[http://www.powersteeringsoftware.com/PDF/issreview_nov06|here]]. Thanks 
Howard!
  
  == Toplicht ==
- 
  The [[http://www.toplicht.de/|Toplicht]] web site is a german online shop for 
sailing equipment, especially for traditional boats and yachts. It was build 
with Tapestry 4.0.2. Right now, it's only available in German, but English 
texts are in the making right now and will be available soon.
  
  == UProm.TV ==
- 
- The [[http://www.uprom.tv|UProm.TV]] web site is a video community websites 
based on Tapestry (4.1.2,) Hivemind and Postgres. Europe's first video platform 
with its own TV station, receivable via selected cable networks and satellite 
(Astra digital, Transponder 103, orbital position 19,2).
+ The [[http://www.uprom.tv|UProm.TV]] web site is a video community websites 
based on Tapestry (4.1.2,) Hivemind and Postgres. Europe's first video platform 
with its own TV station, receivable via selected cable networks and satellite 
(Astra digital, Transponder 103, orbital position 19,2). Videos uploaded by the 
users can be voted to be aired on satellite TV and be watched by millions of 
viewers anywhere in Europe.
- Videos uploaded by the users can be voted to be aired on satellite TV and be 
watched by millions of viewers anywhere in Europe.
  
  Tapestry has been chosen by [[http://www.fivecast.com|Fivecast]] as it offers 
an object-oriented approach to web-programming as well as a clear separation 
between templates and the source code. Tapestry also allows to overwrite or 
implement own services or to replace any default Tapestry service. For example, 
the locale of the website is determined by its subdomain - which was possible 
using a simple Hivemind service.
  
@@ -371, +256 @@

   * [[http://www.uprom.tv/Motor|UMotor.TV]]
   * [[http://www.uprom.tv/Flirt|UFlirt.TV]]
  
- Regards, 
+ Regards,
  
  Tobias Marx, Fivecast GmbH, Munich (Germany)
  
  == ViewObit.com ==
- 
  The [[http://www.ViewObit.com/|ViewObit.com]] web site is a completely 
dynamic portal for Funeral Home clients of our Answering Service, 
[[http://www.myasd.com/|MyASD.com]], to publish their obituary information 
online. We also allow creation of micro-sites with additional custom pages, 
e.g. [[http://www.ViewObit.com/AlbrightFH|ViewObit.com/AlbrightFH]]. All of the 
data comes from a database, including mapping URLs to the apropriate site.
  
  The site started as a Tapestry 4.0.2 site and is currently being migrated to 
4.1.2, using Hibernate for database access. We appreciated the clear separation 
of display/template and Java code, the component architecture (so common page 
elements are written once) and the very rapid development. The entire site was 
developed in a little over a week with periodic updating for new features. We 
are currently adding Tapestry-based virtual hosting, which allows a domain name 
to be pointed to the site and have map to the apropriate pages without using 
any virtual hosting capabilities of the application server. This is being done 
using a Servlet filter and normal Tapestry external pages.
@@ -384, +268 @@

  -Norman Franke
  
  == RODANOTECH ==
+ [[http://www.rodanotech.ch|Rodanotech]] is a software and services company 
mainly dedicated to the healthcare industry. One of our mandates was to design 
and manage a new version of an online clinical database: 
[[https://www.msbase.org|MSBase]] We decided to use Tapestry 5 after 
successfully using Tapestry 4.1 on other projects. The ease of development with 
version 5 allowed us to deliver the project in just a few months. Compared to 
the previous version, written in a "classical" J2EE manner by another company, 
we managed to enhance performance while significantly reducing the amount of 
code. The back end runs with Cayenne 2 for database persistency in a MySQL 
database. Currently deployed in a Tomcat server with Java 6, we are considering 
a cluster solution with Jetty. We can say Tapestry is bringing back the fun to 
development, while allowing us to concentrate on business logic instead of 
"glue code". Also, performance is really outstanding and seeing a constant 
progress between Tapestry versions.
- 
- [[http://www.rodanotech.ch|Rodanotech]] is a software and services company 
mainly dedicated to the healthcare industry.
- One of our mandates was to design and manage a new version of an online 
clinical database: [[https://www.msbase.org|MSBase]]
- We decided to use Tapestry 5 after successfully using Tapestry 4.1 on other 
projects.
- The ease of development with version 5 allowed us to deliver the project in 
just a few months.
- Compared to the previous version, written in a "classical" J2EE manner by 
another company, we managed to enhance performance while significantly reducing 
the amount of code. The back end runs with Cayenne 2 for database persistency 
in a MySQL database. Currently deployed in a Tomcat server with Java 6, we are 
considering a cluster solution with Jetty.
- We can say Tapestry is bringing back the fun to development, while allowing 
us to concentrate on business logic instead of "glue code". Also, performance 
is really outstanding and seeing a constant progress between Tapestry versions.
  
  Alexander Lamb, Eric Bianchi, Geneva / Switzerland
  
- 
  == Flirtbox ==
+ The [[http://www.flirtbox.co.uk|Flirtbox]] web site is a free dating website 
that has been developed in PHP back in 1999. In 2005, the website was migrated 
to Tapestry 4 by Adam Greene (www.professionalopensource.ca). However, due to 
issues with different URLs, the front end has never been deployed and only the 
admin interface. With the latest stable Tapestry5 version and the publication 
of Igor Drobiazko's Tapestry book, I have now started a migration from 
Tapestry4 to Tapestry5 which will also  create "artificial" .php URLs that will 
keep the old URL structure and sitemap. The admin interface of Flirtbox is 
already based on Tapestry5 as well as various external  interfaces used for SMS 
communication or adminstration.
  
+ After evaluating Wicket and the latest Struts, Tapestry5 was chosen for the 
second relaunch due to its simplicity and scalability as well as the 
possibility to have 100% free control over URL structures. The IOC container 
also allows the outsourcing of different parts of the website to external 
companies and freelancers without exposing the whole source code.
- The [[http://www.flirtbox.co.uk|Flirtbox]] web site is a free dating website 
that has been developed in PHP back in 1999. In 2005, the website was migrated 
to Tapestry 4
- by Adam Greene (www.professionalopensource.ca). However, due to issues with 
different URLs, the front end has never been deployed and only the admin 
interface.
- With the latest stable Tapestry5 version and the publication of Igor 
Drobiazko's Tapestry book, I have now started a migration from Tapestry4 to 
Tapestry5 which will also 
- create "artificial" .php URLs that will keep the old URL structure and 
sitemap. The admin interface of Flirtbox is already based on Tapestry5 as well 
as various external 
- interfaces used for SMS communication or adminstration.
  
- After evaluating Wicket and the latest Struts, Tapestry5 was chosen for the 
second relaunch due to its simplicity and scalability as well as the 
possibility to have 100% free control
- over URL structures. The IOC container also allows the outsourcing of 
different parts of the website to external companies and freelancers without 
exposing the whole source code.
- 
- Regards, 
+ Regards,
  
  Tobias Marx, Freelancer, Munich (Germany)
  
+ == LPSE - Indonesia E-Procurement ==
+ LPSE (Layanan Pengadaan Secara Elektronik) or ''Electronic Procurement 
Service  ''is official e-procurement system used by goverment agencies in 
Indonesia. In 2006, system designer choosed Tapestry 3 as framework along with 
iBatis and Spring. Choice comes to Tapestry 3 because it has strict separation 
between ''View'' and Code elements. We have high employee turnover so we should 
have a solid framework.
+ 
+ LPSE is implemented as decentralized system. Each goverment agency (ministry, 
provice, city, district, public university, stated-owned company) has single 
LPSE installation. Internet connection cost is still high. Moreover, Indonesia 
is an achipellago with more than 13,000 island. It's impossible to provide 
single system in capital to serve all agencies. Currently, LPSE has served 
total transaction [[http://report-lpse.lkpp.go.id/|10 trillion rupiah or almost 
900 million USD]] since 2007. This number is less than 1% of total goverment 
procurement.
+ 
+ Until July 2010, there are more than 55 agencies have installed the system. 
This number continues to increase up to 300 agencies by end of 2012. Tapestry 3 
will be still used. We do not yet have plan to migrate to latest version.
+ 
+ In newer modules, we use Tapestry 5 to take all of its benefit. The module is 
part of whole e-procurement system and have interface with Tapestry 3-based 
module.
+ 
+ Regards
+ 
+ Andik Yulianto - 
{{http://lpse.blogdetik.com/files/2009/02/andikyuliantoyahoocom.jpg}} Jakarta - 
Indonesia (South East Asia)
+ 
+ ----
+ '''Note''': LPSE installation: [[http://www.lpse.depkeu.go.id/|LPSE of 
Ministry of Finance]], LPSE of [[http://lpse.jabarprov.go.id/|Province of West 
Java]]. You can found other LPSE links there.
+ 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to