Posts Tagged ‘tapestry’
On my previous Tapestry 5 article I mentioned how difficult it is to create a custom component with Struts 2 compared to Tapestry 5. Since in our legacy apps we used Struts 2 and I got a task that made me to create a custom component I might as well just document it here since it is not documented in Struts 2 documentation nor the Struts 2 book.
Read the rest of this entry »
It has been a long time since Struts first showed up and filled in the Java web framework space. Many people nowadays are still using Struts which mainly because of legacy and investments reasons. But more people are moving away towards component based frameworks these days. JSF has got to be the most popular component framework out there, considering it is supported by many vendors and being itself as a standard from JCP. I’m not going to talk about JSF nor the up and coming release of JSF 2.0, instead I’m going to write about the other two popular component based web framework fostered by Apache: Wicket and Tapestry 5
In the near future there will be two interesting component framework that will be released by Apache Foundation: Wicket 1.4 and Tapestry 5 which I will elaborate in a very short few moment. Alot of people out there are asking, which one is better out of these two? First of all, we need to be on the same platform before continuing any further. This blog entry is not intended to be a web framework bashing discussion, but just to give insights for people who are curious about the difference between these two frameworks. The features that I will discuss will only be limited to the usage of the two frameworks.
Tapestry 5.0.14 has been out recently and the Tapestry community is very excited with this news because Tapestry 5 is only one step away for being GA. In case you haven’t heard of T5, it’s an opensource component based web framework which is a total revamp from the previous version. Some people may not like the previous version because of the learning curve on using it. Some people even wrote rants about the previous version. But T5 is totally a different architecture with the same way of thinking as the previous version. So what’s so good about T5? And why should you consider it for your next project? Here’s my personal reason based on my experience building my opensource project using T5.
Read the rest of this entry »
There’s some gossip on the Tapestry mailing list that the next version of JSF (version 2.0) will be based on Tapestry 5. This could be right since Howard (Tapestry founder) is listed on the expert group. Beyond that reason, some of the features that is planned to be available on JSF 2.0 is already available on Tapestry 5. One of the most interesting point that will be available on JSF 2.0 that I think is influenced by Tapestry 5 is this:
Allow for “zero configuration” web applications. No faces-config.xml, no web.xml. If necessary, annotations will be used to supplement the configuration data
Tapestry 5 already have this feature but there’s a small configuration on web.xml. If JSF 2.0 are able to have no configuration at all even at web.xml, I think this will be a great revolution on the web framework space. Will JSF 2.0 have a scanner that will scan a spesific class that will bootstrap and contains all the configurations? Just by reading this, I can’t wait to see JSF 2.0 released 😀
Another points that I think is interesting about JSF 2.0 is this:
- Make it very easy to create CRUD based applications. This is interesting, since one of the burden on making Java web apps is integrating the web layer and data access layer. I don’t know how will JSF 2.0 implement this, but it surely is worth waiting for.
- Component aggregation. Allow development of custom component with little or no Java coding. This is also interesting if you know how difficult it is to create custom component in JSF. I hope Tapestry 5.0 will influence JSF 2.0 on this point 😀 since creating components in tapestry 5.0 is just around a simple POJO
- Make it easy to expose your data by leveraging the Java Persistence API. I just love JPA. Enough said. If JSF 2.0 featured a tight integration with JPA, I think this will be a great added features. Tapestry 5 itself already have a module for injecting Hibernate session into Page component.
There are also some other features that provides a tight integration with AJAX. If JSF 2.0 provides a built in AJAX, does this mean we don’t need added AJAX components such as RichFaces or IceFaces anymore?
Well don’t just take my word. Go and read the spec your self from the site and pray that it will be available soon 😉
This is the next big question that will be around Java web developer.
Will Tapestry 5 be the next component based web framework?
Why does this question will arise among Java developer? The reason is this: Component based framework is the next generation in web mvc framework after action based framework. Action based framework is no longer relevant for today’s web application’s demand. Developers are looking for the most appropriate component framework for their project. Currently among the competitor (the most popular available IMHO) there are: Wicket, JSF, Tapestry. Now I want to talk about Tapestry since I’m not in the mood comparing component based framework and make the comparison matrix since there are just too many of it on the web.
Tapestry has a long bumpy road along the way until tapestry 4. Not many organization I know or I worked for used tapestry for their project. Struts were the most used at that time. Two of my latest project I did for the company I worked for used struts. I myself at that time just by looking at tapestry 3 document felt that tapestry is damn too difficult to use. But now the story has changed. Howard, the founder of tapestry project have learned the lesson and bring some revolution in Java web mvc component based framework by making the next version of tapestry, which is version 5. Here is a short quote from the tapestry-users mailing list to show you an insight how tapestry 5 is picked up by developers so quickly.
Just wanted to inject a simple reminder: Tapestry 5 is still an alpha-level product. It’s still evolving. There are gaps in the functionality and in the documentation. I’m very heartened by so many people wanting to preview Tapestry 5 but just remember it is a preview and an early one. It’s coming together rapidly but the realities of open source development is that I have responsibilities outside of Tapestry that have to come first *. The same goes for all the other developers. It is a difficult balance for me, because I want to answer more questions on the mailing list, but the way to best help the community is to keep my nose down in the code. Keep having fun, and try to stay patient, Howard
Eventhough tapestry 5 is still on alpha version, but numerous people dare themselves to use tapestry 5 both for production or just for learning. This is a good news for both tapestry fans or even Java web app developers in general. I myself have tried using tapestry 5 for personal experiment. And what I can say is, WOW. It really is easy as it is said on the tapestry web.
Here are some noteworthy features from tapestry 5 based from what I have tried so far:
- Making components is so easy as it can be created from a simple POJO.
- Creating web pages is easy as it only requires an HTML.
- Deployment is easy as you don’t need to restart your appserver since tapestry has its own classloader.
- Testing is easy as it give you some mock based on TestNG.
- There is no XML configuration at all and the only XML you will touch is web.xml.
- Everything from pages and component are around convention.
So back to the question, will Tapestry 5 be the next component based web framework? Why don’t you go try and see it for yourself to break your curiosity and not just eat the marketing word from tapestry