JPublish Open Source Web App Framework 1.0 Released

Discussions

News: JPublish Open Source Web App Framework 1.0 Released

  1. Version 1.0 of the JPublish web application framework is now available at http://www.jpublish.org/. Thank you to all developers who have contributed to the development of JPublish.

    JPublish is an open source web publishing framework which merges the Velocity template engine from the Jakarta Apache group with a content repository and application control framework. Like all good web frameworks, JPublish provides a clean separation of code, content, and layout.

    This release includes the following changes: Added reference to JPublishContext in JPublishError. Small amount of clean-up work in docs.

    If you are interested in discussing JPublish, please join the JPublish developer mailing list at http://lists.sourceforge.net/lists/listinfo/jpublish-developer. Comments, suggestions, and flames can be sent to the same location.

  2. Another neat WEB framework....
  3. Its not "just another" framework, I believe this one focusses more on websites / content publishing rather then webapps on wich struts, webwork tapestry etc. seem to focus

    Does anyone know of any other frameworks like this

  4. How does this compare to Apache Cocoon?
  5. Cocoon is based on XML and transformations. JPublish is based on Velocity. Cocoon seems like a fine solution if you and your development team are confortable with XML and XSL. JPublish is a good solution if you and your development team are comfortable with Velocity and either a BSF-supported scripting language or Java for action logic.

    Sincerely,
    Anthony Eden
  6. How would this compare to Zope? Zope is implemented in Python, but I saw that JPublish could also use .py.

    Thanks,
    Steve
  7. Zope is implemented in Python whereas JPublish is implemented in Java and allows the use of Java or any BSF (Bean Scripting Framework) supported scripting languages, which includes Python, Perl (through ActivePerl), BeanShell and more.

    Zope includes a powerful web-based administrative interface whereas JPublish does not (yet). Zope includes an object database, web server, application server, etc. It is a complete package. JPublish on the other hand provides only the framework.

    I imagine that in the long run JPublish will move in many of the same development directions as Zope, ultimately becoming a powerful content management solution.

    Sincerely,
    Anthony Eden
  8. Reply to the answer about comparison with Cocoon.

    Cocoon _has_ possibility to use either Velocity, XML/XSLT or any other templating engine. Velocity samples in Cocoon you'll find here: http://cocoon.wiserlabz.com/sample-dynamic.

    Are there any other advantages compared to Cocoon?
  9. Thanks for the URL http://cocoon.wiserlabz.com/sample-dynamic , it shows some really interesting ways of using Cocoon.

    Cocoon and JPublish are really designed differently. Cocoon uses a pipeline system to allow you to transform XML using XSLT. Yes you can use any means for producing XML, such as Velocity or even Python, you are still dealing with XML and the transformation of XML.

    JPublish uses only Velocity and does not do transformations. JPublish based on templates, pages, actions and static elements.

    Both systems work. Which you choose is a matter of which one "feels" better to your development team. Try them both and then see which works better for you.

    Sincerely,
    Anthony Eden
  10. JPublish is more comparable to Slide (http://jakarta.apache.org/slide). Slide has more complete content repository and WebDAV support. But I disagree from the "blob" content model of JPublish & Slide.

    Maybe the future specs on java content repository improve this (http://jcp.org/jsr/detail/170.jsp)


  11. What exactly do you mean by the "blob" content model? I am interested in hearing about other means for defining content.

    Sincerely,
    Anthony Eden
  12. I used the term "blob" like relational db concept...

    The problem how I can implement structured content model, may be the answer of apache-slide developers sounds like "slide is a framework", but reality is that there is not the required foundation for define and "manage" structured content.

    Thanks for asking, this topic is really interesting...
  13. Two words:
    Try Tapestry.

    Some more words:
    Once you get your head around it you won't go back.
    In my opinion, Tapestry has leapfrogged many of these
    frameworks (Velocity/Turbine/JPublish etc..) and gone to where they are heading - object oriented J2EE web apps.

    It may not be for everyone, but I like it.

    Patrick.
  14. First, Velocity is not a framework, its a template language. Second, not all frameworks are heading towards object-oriented web apps, because not all frameworks are specifically about building web apps. JPublish and cocoon are both examples of publishing frameworks which support application development. In both JPublish and Cocoon, content is king. Even so, it doesn't mean that building a web application is not a possibility as well.

    I am all for multiple frameworks, hence Wafer Project. Howard seems to agree with me on this as he has already submitted an implementation of the example app written with Tapestry.

    I am also glad that you like Tapestry - if it works for you and increases your productivity, then more power to you. Perhaps you can explain how Tapestry leapfrogs JPublish? Explain how you tried JPublish and Turbine and why they did not meet your needs, whereas Tapestry does. I would be very happy to read a more informed post which actually provides a comparison as opposed to a general statement with no facts to back it up. I am happy to take criticism, its how I improve. But you need to provide some details to back up your opinions.

    Sincerely,
    Anthony Eden
  15. IMHO the difference is that Tapestry encourages component reuse. All other frameworks that I tried have always one controller for the whole page. In tapestry the request gets dispatched to the component that created it, so its easier to create a page that contains more than one active component.
    Tapestry is a very heavy weight framework, I think there are also people that prefer to have a simple mvc dispatcher, and take care of their component infrastructure themselves.