title: Difference between Apache Tapestry and Apache Wicket
body: <p>Apache Wicket ( <a href="http://wicket.apache.org/" rel="noreferrer">http://wicket.apache.org/</a> ) and Apache Tapestry ( <a href="http://wicket.apache.org/" rel="noreferrer">http://wicket.apache.org/</a> ) are <strong>both component oriented web framework</strong>s - contrary to action based frameworks like Stripes - by the Apache Foundation. Both allow you to build your application from components in Java. <em>They both look very similar to me</em>.</p>
  
  <p>What are the differences between those two frameworks? Has someone experience in both? Specifically:</p>
  
  <ul>
  <li>How is their performance, how much can state handling be customized, <em>can they be used stateless</em>?</li>
  <li>What is the difference in their component model?</li>
  <li>What would you choose for which applications?</li>
  <li>How do they integrate with Guice, Spring, JSR 299?</li>
  </ul>
  
  <p><strong>Edit</strong>: I have read the documentation for both and I have used both. The questions cannot be answered sufficently from reading the documentation, but from the experience from using these for some time, e.g. how to use Wicket in a stateless mode for high performance sites. Thanks.</p>