Open Source CMS Solutions Based on Java?
namityadav asks: "I've been looking for an open source Content Management System (CMS) which is widely used / supported, and has features like web-logging, online communities, RSS feeds, forums, polls, calendars, website searching, and so on. The most obvious choices are Drupal (I've played with it in the past) and Joomla, however both of them are PHP based. Since I am a Java developer, I wanted to find something based on Java. To my surprise, I could find some very weak Java based alternatives to Drupal, like MMBase, OpenCMS and Magnolia. Why is it that there are so many PHP based open source CMS which are hugely successful (Drupal is used by The Onion, Spread Firefox, and more), but there is not even one comparable solution based on Java?"
I'm pretty sure he's talking about java on the server, delivering (x)html+css+javascript to browsers.
"Piter, too, is dead."
I don't think he was talking about running the Java application in the browser, but more in terms of servlets.
And to answer that question, look at the target market of Java. Java is not intended for mom'n'pop websites, or for novice web builders, nor bloggers. Hosting support isn't widespread and is quite expensive. PHP hosts are a dime-a-dozen.
If you can afford large scale Java hosting, you likely are developing your application from scratch using your own development team.
A Java CMS would probably not use Java as in Java Applets, but just Java as server-side environment (you might've come across sites with pages having a *.jsp extension, whell, those are probably Java and you didn't even notice ;-)). Java is very well suited for server-side programming, and the percieved 'slowness' of Java is (in my opinion) more due to the GUI-libraries in java (AWT, Swing) than the language itself.
On the eigth day, god started debugging
This is server side Java... it has nothing to do with applets and you can't "turn it off in your browser". I can't believe you have a UID that low and still don't know the difference between applets and server side Java. You most likely use websites running server side Java everyday (Google, Gmail, Ebay just to name a few).
Seriously, who uses applets for anything anymore?
I think the reason you don't see many Open Source Java CMS tools is due to fairly weak Java support with most Web hosting providers. Take a look at the available webhosts, and very few over support for Servlets/JSP. I would think, on average, the most common user of a CMS system would be someone wanting to setup a small to medium website that won't require too much customization outside of the standard package. Of course, the systems available are powerful (Drupal, Plone, Joomla, Nuke), but for the most part the people using them don't need the majority of the powerful customization tools. These are also the same people who would be using Web hosting packages, and not setting up their own servers. Therefore, you have to write it in a language that is almost universally supported by web hosting providers, like PHP.
Of course you're right, but creating a system like Drupal or Joomla yourself is not exactly a small undertaking. These systems have huge user bases and hundreds of tools built to make it easy to setup a site thats perfect for your needs. To write it yourself, you would have to implement a lost of features and security just as a start, and that's not even mentioning the robust search engine optimization, templating engines and page caching.
>Why is it that there are so many PHP based open source CMS which are hugely successful
>(Drupal is used by The Onion, Spread Firefox, and more), but there is
>not even one comparable solution based on Java?"
Maybe because Java offers no advantage over writing a system in PHP, which obviously is up to the task based on the successful projects you mention?
Seriously, why would you want to use Java when you don't have to? It's like asking why there is no web browser written in assembly language. Higher level languages get the job done with minimal aggravation and perform well enough that they're not the bottleneck.
PHP was tailor-made for this sort of thing, Java...wasn't.
If moderation could change anything, it would be illegal.
There are a few out there. Alfresco http://www.alfresco.com/ looks the most interesting.
I agree though, doing a CMS in PHP is such a kludge, it would be good if there were some good solid java alternatives that could match the ease of use of something like Joomla or Drupal. Something using of the of popular frameworks such as Tapestry would be good as well.
As for hosting, there are plenty of VPS services out there that are quite cheap and host server based java applications just fine.
I can't believe you have a UID that low and still don't know the difference between applets and server side Java.
Having a low UID isn't evidence of tech knowlege.
Maggie Leber CCP, SCJP, SCWCD
-=Maggie Leber=-
Obviously one would check http://www.opencms.org/
OpenCms is based on Java and XML technology. Therefore it fits perfectly into almost any existing modern IT infrastructure. OpenCms runs in a "full open source" environment (e.g. Linux, Apache, Tomcat, MySQL) as well as on commercial components (e.g. Windows NT, IIS, BEA Weblogic, Oracle DB).
or you can check other Open Source CMS on wikipedia. Comparison of content management system
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
Magnolia is a really nice and powerful CMS in Java, with a BSD license. I have been involved in several serious projects (>300 hits/second) using Magnolia and it has always performed very well. Of course, we tuned the JVM, Tomcat, the Linux kernel and almost everything you could ever imagine.
After evaluation, if you decide Magnolia is the CMS you are going to use, I advise to take the official training. It's worth the price.
I write PHP code for a living, and that's exactly my problem with PHP: It doesn't work. At least, not very well.
http://outcampaign.org/
Not an answer to the OP, but a helpful link to everyone
http://www.opensourcecms.com/
They have online demos of 40+ open source cms's. A nice way to try a few out before installing a cms yourself.
I'm a construction worker and the other day I was thinking about baking a cake. As it turns out, I'm having a heck of a time finding a cake-batter mixing machine that runs on diesel.
I have not had a chance to use it past the online demo*, but you might want to check out Apache Lenya
* A contract webmonkey proposed switching to Lenya halfway through a project. As much as I like F/OSS, I decided I'd rather have his existing VB/ASP mess working "on time" (only months late) rather than a nifty Lenya setup ready sometime after I would be fired for still not having delivered the new website...
I can't believe you have a UID that low and still don't know the difference between applets and server side Java.
I can't believe that you consider 97000 a low UID.
Software sucks. Open Source sucks less.
I'll bet the fact that Java has only just become free software, is the reason there are not many Java based free software CMS's
Join the Free Software Foundation
Comment removed based on user account deletion
Neither can I.
I am a Java developer and I have worked for a commercial CMS vendor. Essentially, the low end of the market is dominated by php for obvious reasons: it's easy to get started and basically any hosting will do since it will run php out of the box. Also that stuff is pretty good: I'm perfectly happy with wordpress for my low end needs.
On the other hand with Java there are no cheap hosting solutions. Basically it requires a a dedicated server solution which will set you back 50-100 $ per month minimum. There are shared hosting facilities but they are still more expensive and don't really give you enough control. People with low end needs won't even consider that as an option, and they shouldn't.
However, there's also such a thing as the high end of the market. Basically php is just one of the many options there and as far as I can see it far from dominates that market. A lot of interesting things are happening in the Java enterprise scene: there is standardization of content repositories (JSR 170) with several commercial and OSS implementations available; there is the portlet standard, which is basically the backbone of many commercial portal servers; there are lots of options for implementing web UI stuff; there is adoption of the cool rails stuff with both groovy and jruby on rails being worked on; etc. Essentially Java is one gigantic toolkit for building web applications now.
Bottom line is that if you are expecting to spend a few thousand dollars on hosting (yearly) and have a budget of say 20K+ for building the web site, you are in the high end of the market. You will want some guarantees about your site not collapsing when a few million people decide to drop by; you'll probably have some old content to migrate and some non trivial functionality that you'd like to have. Chances are that you'll end up using Java. Or rather, chances are that you decide not to reinvent the wheel and use the services of some professional CMS companies.
Jilles
(This is gonna hose my karma, but it's something I feel strongly about so damn the torpedoes, full speed ahead! )
:P
There is a major benefit that Java brings to the table versus PHP and that is security. My inside voice says that the only way to secure a PHP webapp is to delete it. My outside voice says that if you've just got to have a particular PHP package, then fine - that particular PHP package you can have, along with an SSL cert, a site-wide ACL and off-machine logging so that *WHEN* the app gets hacked, you know who to go after.
Some folks don't think that PHP has anything intrinsically wrong with it, that PHP is just trying hard to be an incredibly helpful language, that it's not a bad language - it's just drawn that way. I don't think so. It's got a history of stuff like: "Oh, you provided some URL parameters? Allow me to convert those into variables automagically!" (Yes, yes - this has since been changed but it was around for a long, long time and is still available if you set the proper config variable) "You want to talk to a database? Please, feed me a string and I'll do whatever you want me to do. In fact, if you give me several things to do, I'll do them all!" (Hooray for SQL injection) And on it goes.
I'm sure a case could be made that schlock code written in any language can be abused - but in the typical Java (or Perl, or Ruby, or Python, or some other non-PHP language of your choice) framework you've got to work a lot harder to create exploitable things. PHP is entirely too damn easy to be bitten by unforeseen circumstances - witness the same vulnerabilities being lovingly replicated over and over and over in lots of different projects.
In closing, yes it takes more up-front effort to bang out a simple CRUD app in Java versus what the average tutorial or manual would tell you to do in PHP. But the Java version isn't vulnerable while the PHP version is and will require a net greater expenditure of effort to understand and fix the problem. And that's not talking about the energy burned up by the poor shmucks running the code and having to clean up and rebuild after the app gets owned. (No, I'm not still bitter phpBB, Gallery, Wordpress and PHP-Nuke. Not at all. I don't even miss my data anymore. Nor do I regret having to deal with my account being used to attack other machines. Not one bit.)
James
There are plenty of good open source CMS systems in Java.
At the bank I work at we use OpenCMS.
Magnolia Community Edition is probably better.
Apache Lenya is another CMS written by a well known group but I can't vouch for it
JBoss Nukes is poorly documented but written by JBoss so should be good.
foo mane padme hum
I have trouble defending Java here, but I think PHP is actually worse. I don't know how, but it is.
The only reason for writing anything in PHP is because "worse is better". You write in PHP because everyone thinks (server side software == PHP), and every hosting provider has it... Everyone seems to think PHP is the P in LAMP...
But really, everything "good" that PHP has promotes bad design. Embedding in HTML: Bad design, please separate code from content. Variables don't have to be declared? Great, now you can spend three hours hunting down a typo in a variable. Really, can you name anything that PHP has that Java doesn't that is actually a good thing?
I'd prefer perl/python/ruby, and Java used to be the worst programming language I'd ever used. But PHP is even worse -- a lot worse.
And by the way, Java is a lot higher-level than PHP, for a lot longer. Java was object-oriented from the beginning, and this was sort of tacked on to PHP...
The one reason I use PHP is Drupal. Drupal manages to implement all kinds of ridiculously good design practices which technically aren't supported by the language. It does object-oriented programming without dealing with PHP objects, so it can run on older versions of PHP. It even does some things you'd expect to require LISP...
I've learned to give up the language holy wars unless I'm prepared to start from scratch. I don't like that Linux is written in C, but if I do kernel hacking, it's C. I don't like that Drupal is in PHP, but if I want to mess with a CMS, I use PHP. When I'm writing from scratch, at least for now, I use Perl, but that's just because it's the best that I know reasonably well.
Don't thank God, thank a doctor!