Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Java CMS Systems

Michael Levin is at the JavaPosse Roundup this week. Today, they're discussing Java CMS Systems. I recently had an e-mail discussion with a reader regarding Java-based CMS Systems. In hopes of getting these questions answered by Michael today, here's that thread:

Original E-Mail:
OpenCMS, Magnolia CE/EE, Atleap, Alfresco, Liferay.

Magnolia EE, Day Communique, Hannon Hill, Refresh, Vertical Site.

We are leaning towards Magnolia EE since we have a load balancer and two production server, but I bet we could hack in support in the community edition.

Any comments/recommendations?
-------- My response:
I'd check out Alfresco's new 2.0 WCM - just released last week. I haven't looked at many of the CMSes in a year or so, but I'm willing to bet that OpenCMS still has issues installing. I still like Drupal too and recommend it for folks just wanting a website they can edit.

In reality, my experience with CMS systems is outdated and you shouldn't consider me an authority. ;-)
-------- Thanks for the lead. We actually eliminated Alfresco, b/c I thought they were more of a portal.

The reason we were leaning towards Magnolia and Vertical Site was b/c of JSR 170 (which Alfesco claims to support).

I wonder about the scalability of JCR, do have an opinion?
-------- I don't have an opinion because I don't have much experience with it. It's supposed to be the JDBC of CMSs, so I imagine it's pretty scalable. However, it's pretty new, so I'm sure there will be growing pains. I know that Infoq.com uses Magnolia as their backend (and WebWork as their frontend), so obviously it scales well for them.

What are your thoughts on Java-based CMS Systems? Comments from experienced developers appreciated more than vendor pitches. ;-)

Posted in Java at Mar 08 2007, 08:45:50 AM MST 14 Comments
Comments:

Alfresco does support JSR170 - in fact they've developed a JSR170 benchmarking framework (including source code) that's available on their "content community" website (http://hosted4.alfresco.com/alfresco/faces/jsp/login.jsp - free registration required). There's also a white paper showing the results of running the benchmark against Alfresco 1.4, and although the numbers seem quite impressive, the lack of results for any other JSR170 systems makes them a tad meaningless imvho.

Posted by Anonymous coward on March 08, 2007 at 05:49 PM MST #

I think the problem with Java CMS systems is that they're written by developers, for developers. So they tend not to be complete CMS systems, but frameworks and components which address different aspects of a CMS. Case in point is support for JSR170. JSR170 is a standard for a content repository, which is wonderful, but that leaves quite a lot of other stuff to build onto it. As a Java developer, a Java CMS is just an invitation to spend the next year of my life using components and frameworks to try building my own CMS, or hacking another CMS that sort of does something like what I want but not quite, and end up with a half-built site. So I use Drupal, which gives me a completely working site in a matter of minutes, and can be tweaked to do most of what I might want in a matter of days.

Posted by Kief on March 08, 2007 at 06:59 PM MST #

Thanks for pointing this out, Matt. We talked today about Magnolia and LifeRay, among other CMS's. Everything here at the JavaPosse Roundup is being recorded and will be available as podcasts.

Posted by Michael Levin on March 08, 2007 at 08:04 PM MST #

Curious why no one ever mentions the Daisy CMS in these comparisons? It does primarily what the other products listed do. However, they have not been keeping up with workflow as well (although a rough implementation is in the latest release) - and their UI is not as nice as magnolia. Not attempting zealotry, just curious why it wass ruled out and not mentioned. joe

Posted by joe on March 08, 2007 at 11:22 PM MST #

I'm currently way into Liferay and Alfresco. I must say that they are both very good products. Alfresco is not a portal at all. I think where the confusion comes from is the fact that the Alfresco folks have written an Alfresco client portlet that can be easily deployed into liferay portal.
I believe that the Alfresco portlet is jsr168 compliant so therefore can be deployed into any 168 portal. I started out using the portlet but soon realized that I was better off simply deploying the Alfresco war into tomcat or Jboss and then pointing all of my content consumers at it, letting it handle content for all of my liferay portals. I strongly recommend taking this approach instead of deploying as a portlet. When it was deployed as a portlet, i had one afresco for each liferay instance. This meant an alfresco db for each, an alfresco filesystem for each and keeping track of each. It was a pain in the *&&. With the setup I have now, i just put Alfresco on a nice powerful machine, create a space for each consumer, create content and point my consumers (liferay portlets right now) to it. It's really much more simple now. The workflows in Alfresco are very nice also. The alfresco site has some decent screencasts to demo it.

Currently I'm using alfresco 1.4 with liferay 4.2.1.

Both liferay and alfresco are implemented in spring/hibernate
liferay uses struts I believe
alfresco uses myfaces
both come with a hypersonic db so everything works immediately.
They are both very cool.

Posted by rick marry on March 09, 2007 at 01:47 AM MST #

If I understand you corectly, you wonder how scalable systems are.

What do you need to scale? Number of authors? Amount of Content? Requests served? DIfferent questions, different ways of doing it.

There are many ways to scale (Magnolia) - one thing is the built-in subscriber mechanism, so its straightforward to have lets say a HW load balancer and two (or more) public facing machines to handle the requests. You can write a custom Apache (or other) cache module (has been done before) or write a custom cache handler (cache is pluggable in Magnolia) if what exists with respect to caching is not meeting your requirements. You can cluster the repository (with the upcoming Magnolia & Jackrabbit 1.2).

You can use Akamai for caching (has been done for France24.com, a massive global news website). This site, powered by Magnolia, has content in English, French and Arabic, movies, audio, text, images, is updated simultaneously with the TV channels and has handled 50000 (fifty thousand) simultaneous requests when launched.

Last week we launched lastminute.com.au, the leading travel site in Australia, with booking integration, white-labeling of content, partial content delivery and other extravaganza. Their requirements are also pretty high regarding performance and scalability (they expect to grow).

(For partial content try this: http://lastminute.com.au/home.html
http://lastminute.com.au/home.footer.html
http://lastminute.com.au/home.header.html
http://lastminute.com.au/home.content.html
Using selectors we deliver parts of the page, so that it can easily be reused elsewhere. )

In addition, we do have a portlet bridge in the EE that runs nicely with Liferay, in fact we currently do a joint project for a car manufacturer. It works very well, and scales the same way it would with standalone Magnolia, since the same mechanisms are used (each Liferay instance contains a Magnolia subscriber that handles the content).

Magnolia is now in its forth year of development, its pretty mature and we have a lot of experience with what works, how, when and why - or not. If you have questions, feel free to download our Magnolia Enterprise Edition and make use of our free evaluation services to help you get the most out of your time spent on evaluation. (Details come with the download).

Of course, you can also contact me directly at any time.

Posted by Boris Kraft on March 09, 2007 at 07:59 AM MST #

Not only are CMSes written by developers for developers, they're written with "from-scratch" development in mind.

We spent ages looking for a CMS that could be integrated into an existing big website, and didn't find anything. They all lack useful (or documented) APIs that allow for *our* way of doing stuff, instead of *their* way. Their way is probably better, but we can't re-write our entire system just to fit some CMS. Neither can we re-write half of a 3rd-party CMS to adapt it.

(Yeah, there's a lot of talk about "integration", but that's mostly just about connecting to databases etc.)

We're hoping for more scalable future versions of Apache JackRabbit's JCR, to build something on top of that.

However, if you're building a new site, Magnolia looks kind of nice.

Posted by Anders Bengtsson on March 09, 2007 at 10:10 AM MST #

One thing that really drives me nuts is when companies make it difficult to obtain their trial software. I hate registering for anything. Just let me download the flippin trial and if I'm interested, I'll call you!

After reading through some of these posts, I decided that I wanted to try Magnolia. I specifically wanted to try the EE version because I want to check out the portlet bridge. I followed the procedure which was to email magnolia and fill out some personal info... that was 5 hours ago. I have gotten no reply and I don't have the trial.

weak...very weak

Posted by rick marry on March 09, 2007 at 09:49 PM MST #

Anyone familiar with Nuxeo? I personally haven't had a chance to look at it yet, but I am impressed that it is the next generation (Java/Seam) of one of the most popular CMS (CPS/Zope).

Posted by 70.221.101.223 on March 14, 2007 at 02:17 AM MDT #

OpenCMS, Magnolia CE/EE and Liferay,they are perfect cms's,but it's hard to use and develop,so ,i think appfuse may support cms development

Posted by cedar on March 15, 2007 at 02:13 AM MDT #

The main issue I have w/ J2EE/Java CMS's is that none of them have all the features that are commonplace now: blogs/forums/reviews/shoppingcart. It's nice to have everything based on open standards, but unless you can keep up w/ typical features of CMS's written on other platforms, you'll lose the battle...

Posted by Ken Yee on August 26, 2008 at 01:17 AM MDT #

hello we are developing a new wcm and cms gwt based on jooMla but with java power it is going to be as easy as joomla and you can checo fue core in source forge fue name of the project is melenti

Bye Adrian

Posted by Adrian cadena on September 22, 2008 at 03:10 PM MDT #

My Current annoyance with Java based CMS's is that they are often created for a specific niche market. Or do have a very limited set of features.

Like what ken yee mentioned that a current CMS should have a very easy to start a website, take your OWN template and hang it into a CMS very easily.

Currently there is not java CMS that allows you to simply create a website fast.

Ries

Posted by Ries on February 11, 2009 at 11:38 PM MST #

The greatest failure of java is that none of completed CMS build on top of it. But Nuxeo looks promising. It is used SEAM Framework.

Andriyana Tresnawan
ComLabs AKA

Posted by Andriyana Tresnawan on November 02, 2010 at 02:13 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed