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?"
... Make something from scratch? I can understand the usefulness of something done for you with documentation (though the poster said open source so we can somewhat scratch the documentation part out). But with CMS, I would think it'd be much more efficient to build the system to your needs, as opposed to tweaking something already out there.
I don't know about most people, but I always turn off Java in my browser. It increases startup times, has security problems (or so I have heard when people actually used Java, back in the last century), and there really aren't any sites that have useful applets. For all the hype surrounding it, I have still to see any functional Java-based application, in the browser or otherwise. Of course, you are a Java developer, so this will not apply to you. But consider that most CMSs are designed for regular people, who would probably rather use a regular HTML-based interface that works in any browser, including lynx, which even I still use on occasion.
It's not that hard. Your problem is the limited parameters you've set.
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.
>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.
Never used it personally but saw references multiple times. You might want to read more about it HERE.
http://labs.jboss.com/portal/jbossportal
My Hello World is 512 bytes. But it's also a valid Fat12 boot sector, Fat12 file reader, and Pmode routine.
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.
java is shit, get used to it. Use a PHP, Perl, or Python CMS you fkin looser.
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
What made you decide those alternatives were weak? We've used Magnolia to deliver a site that got 4 hits a second on average, it certainly wasn't weak. Did you actually look at the product, or just look at the website and not find something shiny?
From their site:
Daisy is a comprehensive content management application framework, consisting of a standalone repository server accessible through HTTP/XML (using the ReST style of WebServices) and/or a high-level (remote) Java API, and an extensive browsing and editing DaisyWiki application running inside Apache Cocoon. Daisy is licensed under the commercially-friendly Apache License 2.0. Outerthought provides commercial services around Daisy. More marketing talk can be obtained from their website. This is the Daisy community website, with access to downloads and the full documentation. Enjoy!
http://cocoondev.org/daisy/index.html
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.
SAKAI is a CMS for classrooms and academic workgroups. It's Java. If that's what you need, take a look.
Having said that, I agree with the posters who say that it's easier to program web apps in PHP (or any scripting language), and that Java isn't well-supported by webhosts.
The only thing I can think of right now would be JBoss Portal ( http://www.jboss.org/products/jbossportal ). It doesn't have many of those fancy features but should be easily extensible.
:/- spoon(_).
He tells the truth!
This is a shameless plug, but take a look at dotCMS http://www.dotcms.org/. dotCMS is a Java based CMS that is feature rich and easy to pick up. It is entirely web based - you can create templates, dynamic content and custom content structures within its administrative portal. It is database agnostic, offers in line editing, clustering, easy to use macros, AJAX based file browser, fine-grained permissioning and privileges, content versioning, completely separates content from site structure and on and on. A lot of work has gone into the software. Take a look and I think you will be impressed.
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...
see subject
You must be completely illiterate. Read the damned topic summary, you fool. He already knows about OpenCMS!
Here's the relevant line from the summary:
To my surprise, I could find some very weak Java based alternatives to Drupal, like MMBase, OpenCMS and Magnolia.
Please notice that OpenCMS is clearly listed. And he also clearly states that relative to the PHP solutions, OpenCMS is "very weak". Don't waste our time by mentioning a product he is already clearly aware of, has already evaluated, and already deemed unsuitable.
Isn't JBoss-Nukes based on, um, JBoss?
Not only is it not open source, it's unbelievably expensive...40k per processor for the required database backend, plus $40k for Oracle's application server (oc4j) and then if I remember correctly Portal (the actual CMS product) is multiple thousands (and always per processor, and dual cores count as 1.5 processors).
That said, Portal is a really really nice product and probably the best example of a Java-based CMS that I've seen. I've compared it to a souped up Plone or Mambo. I set up a demo site for my company and everybody loved it. The deal breaker, as you could imagine, was the cost.
You can download it all at otn.oracle.com and give it a try, but like I said, it's a *serious* investment and ultimately couldn't justify the cost when such good free systems (like the aforementioned Plone and Mambo) exist.
They ain't Java, but they are free.
You obviously didn't read the summary. If you did, you would have noticed this line:
To my surprise, I could find some very weak Java based alternatives to Drupal, like MMBase, OpenCMS and Magnolia.
I've even bolded the important part of it for you. You see, he already knows about Magnolia. Not only that, but he's apparently already considered it, and found that it's inferior to the PHP-based Drupal. So there's no point recommending to him a product that he has already evaluated, and found to be insufficient for his needs!
And that's pretty said if you consider 300 hits/second to be a "serious project". Truly serious sites have to deal with at least 50000 hits every second, and that's at the lower end. At that point, neither PHP nor Java are really suitable, unless you've switched a massive clustering solution. Even then, most Java and PHP CMS software does not handle clustered server architectures very well.
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
Using the shared_ptr class of Boost, it becomes very easy to use heap-allocated objects with C++. It's a smart pointer that automatically deallocates memory when appropriate. Memory leaks are virtually eliminated, without requiring programmer intervention. So in a way, you get the best of the Java world, with the vastly superior native-binary speed of C++.
4 hits a second, on modern hardware, is nothing. Absolutely nothing at all. If you consider that impressive, then you have some serious problems.
I was involved with setting up and running a web site in 1998. We ran it off of one Sun workstation, which I imagine offered equivalent processing power to a typical PC from 2000 or so. We used a number of CGI scripts written in Perl and C, with an Oracle backend database running on the same workstation. By the time I left, we were handling close to 600 hits per second, still using only that single workstation. Even then, the system reported the CPU as being idle 15% to 25% of the time.
If this Java-based system can only sustain 4 hits per second, then it's not just "weak", but it's a silly joke!
You might want to check out Lenya, which is based on the Apache Cocoon project. I don't know mature and full-featured it is though. More generally speaking, Apache has a lot of Java-based projects that can be used toward building a CMS, so if you did want to write your own, you could do worse than start on top of some Apache framework.
"In our tactical decisions, we are operating contrary to our strategic interest."
Right tool for the job. I think you're seeing Java as the hammer, and every problem is a nail.
Task Mangler
You might check into www.hipergate.org. They have some CMS stuff as well as a variety of features. I think they are focused more on a diverse set of tools as opposed to concentrating on the specifics of a single area. How did they put it .. something like trying to be more horizontal than vertical. It has been awhile since I checked into them myself, so my comments could be a little dated.
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
Resin is a JSP servlet container which has J2EE capabilities, and now -- get ready for the insanity -- it serves PHP apps as well! You can run drupal in it -- in fact, this was one of the release goals.
Have a look at http://www.nuxeo.com/en/
Its worth giving it a try.
Very nice interface, powerful features and its open source!
Try nuxeo.org. You won't get a finished product, more like infrastructure + toy demo, but these guys are serious (java is still very EE oriented, and EE people want one-of-a-kind customized apps, so Nuxeo's business model is to release the core infrastructure as OSS and get paid big bucks to assemble it in a customer app)
They moved from zope to J2EE so even though it's java they know what is expected of a FLOSS product
Sorry, but your out of luck. If there is anything where PHP has outrun Java by nearly a decade, then it's the CMS game. PHP CMSes are so mature you don't even need to do any programming anymore to have a reasonably configurable setup. You might just join a project and work on the Java Clients they are starting to build. Joomla and Typo3 both using Java for exactly that. THe last thing I remember that was up to date with PHP was the Cocoon framework and that was like 7 years ago or so. Time has passed since then.
I recommend you get a PHP CMS, secure it at webserver level (reverse proxy and all that) and build any extra functionality that's not covered by modules or extensions with java, using standard in/standard out at the backside and a little conector-layer in PHP. Then you've got the best of both worlds.
Any way you do it, there's no way a ready made Java Solution or Framework is going to beat PHP, Python or - since it's being hyped so much - Ruby.
We suffer more in our imagination than in reality. - Seneca
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
The Java CMSes you named are fine. The problem is that you aren't looking for a CMS. A CMS is just a platform for publishing static articles. What you want is an interactive community site. Things like Roller are more along the lines of what you're asking for.
Have a look at the web sites of the united Dutch public broadcast companies, the web site of the public broadcast company, named VPRO, one of the founders of MMBase, or the extensive VPRO 3voor12 pop music website. Enjoy public radio and television on the web. And then decide whether MMBase is weak or not.
I like http://java-source.net/open-source/content-managme nt-systems for open source java solutions. It is a nice one-stop-shopping web site.
I have personally used Jahia. It's very powerful.
By the way, I currently use Drupal (http://www.drupal.org) in PHP, it seems it is quite good for my purpose. The drawback for me to use Drupal is I'm very new to PHP.
Java's focus has always been on enterprise software development. Consider this quote from the Java EE 5 Tutorial on “Development Roles”:
Also consider the Java EE Architecture Overview diagram from the same document.
This “tutorial” is aimed at enterprise people with time and money to spend.
org.slashdot.post.SignatureNotFoundException: ewg
> http://www.riotfamily.org
with all this web2.0 buzzword tech inside...
Agreed, what you have described is a huge flaw in the way people write PHP code. Granted, a disciplined programmer could create a separate model and view in PHP, but they never do. Just like someone can put SQL in a JSP, but at least Java starts you off on the right path.
If one of my teammates ever puts SQL or advanced logic (not related directly to the display of the page) in a JSP, I will kick them square in the junk.
Nuxeo is a modern, open source, Java-based, ECM (Enterprise Content Management) platform. It doesn't specialize in WCM (web content management), but this is an area were work seems to be progressing very fast, thanks to the powerful NXTheme presentation engine.
Hear hear! I deal with that sql in jsp shit every day at work. It sucks that the dude that did it is no longer around, cause I definitely own him a boot to the junk for that.
Slashdot is proof that Sturgeon's Law applies to mankind.
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!
There are lots of good java based open source CMS's listed at cmsmatrix.org.
Then you don't have the right libraries. Google C++ web app brought Wt on the first result page.
I think the word you are looking for is rochambeau. :-)
Oh, he totally doesn't deserve a retaliation. What is needed is a one-sided junk booting. My foot, his nuts.
Slashdot is proof that Sturgeon's Law applies to mankind.
there are zillions of apps written in php for ecommerce, security, collaboration, publishing, gaming, parsing, collecting data, database management, and innumerable stuff, crap, sh*t that if i wanted to name fields and examples, 6 months of my life would only be enough to complete them.
not nifty arguments, deductions, logicalisations, semantics or can define something is good or not, nor your or some other people's views as 'expert programmers'. nor what something was made for at the start does.
what defines something to be useful and successful is its EXTENSIVE and WIDESPREAD usage and FLEXIBILITY.
Like the volkswagen beetle, or C-47, or post-its, or pizza, PHP, is successful.
cope with it.
Read radical news here
I see a lot of people who feel compelled to praise java, put it over other stuff for such or such reasons.
what i see is that some of this inclination stems from the fact that all people have the need to be 'different' in them, and all of us manifest this in this way or another. some choose 'breaking off from the crowd in programming languages', and pick a language to be enthusiast of and praise it. some choose java, some asp some another.
this is just an unfruitful thing to do. differentiation of self needs to be achieved by discovering things within the self, not by identifying with things in kinda 'black sheep' position in the outer world. also it is totally unprofessional.
there are reasons for something being widely and extensively used, and being flexible, and people liking it. calling languages like php 'low end', or 'entry level' does not hide the fact that many people are using them to great extent, and they are being successful and standard every day.
some in this thread has gone far to the point that naming java as an 'enterprise' thing.
something being 'created for the enterprise' does not make it enterprise grade. such naming just shows the intent of the creating group or company's intent to serve it or sell it to 'enterprises' (which means the organizations with big money to flush on them). if these apps are not up to the challenge, or there are better competitors, they just fail and get back in the line of preference.
php, as an example if you will, is on the forefront of preference for both the public and the 'enterprise'. the fact that it provides ease, low cost, low maintenance and great flexibility is an indicator that if an enterprise provides the same effort it will need to spend for other 'enterprise' tagged stuff, like java, they will be able to do more with php.
even java enthusiast admit that java web serving requires more resources than php or other some competitors. MORE resources is not something that enterprises like. this is one of the reasons of javas failure.
some enthusiast says that php (insert another popular language here) is 'insecure'.
had java been that popular, it would be in the same state - few hackers need to waste time with java server exploits because the gain is low when you manage to find one.
professionally, i see these approaches/tendencies just in the same category with griefing. you cant make or break some widely used stuff by just ignoring the facts or praising things people dont need or already find in other apps.
Read radical news here
How *dare* you compare PHP with a C-47/DC3?
If the DC3 was anything like PHP, it would be permanently grounded.
There's no programming language worthy of comparison with the DC3. Not even LISP.
-Lasse
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?
Could it be that Java's one claim to usefulness (platform independence) is completely and utterly irrelevant when the CMS is only going to be living on one web server platform? Java's reputation for being slow as snails? Maybe because Java's annoying to integrate with Apache in an efficient way compared to any number of other languages?
Seriously, next you'll be asking why people aren't using Dot-Net to create embedded applications...
it is easily comparable. c47s themselves were also grounded when they were external disturbances - flak fire, lack of fuel and so on - where they did service in the war and after the war. and due to their widespread use in high numbers, they have faced these issues more than other airplane types, just like php does in programming languages.
Read radical news here
It's been said elsewhere, but bears repeating since the parent post has been moderated 'insightful' (snerk)
The problem isn't "hello, world!", it's maintaining the site after it's been live for awhile. JSP can use embedded scriptlets just like PHP, but unlike the latter we learned years ago how painful that is during later development and maintainance. So now it's standard practice to use MVC. It's a modest amount of extra work on the front end, but that's more than offset when (not if) we need to make substantial changes to the app.
Focusing on "hello, world!" is as silly as only looking at the first 5 seconds after jumping out of an airplane. At that point it doesn't matter that you skipped the parachute, but you'll be in a world of pain in a few minutes.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
The first paragraph on the cited web page is,
"This site was created with one goal in mind. To give you the opportunity to "try out" some of the best php/mysql based free and open source software systems in the world. You are welcome to be the administrator of any CMS system here, allowing you to decide which system best suits your needs."
The Fedora Project is a type of CMS, although not quite as you describe. It is a collaboration of Cornell University Information Science and the University of Virginia Library and is, AFAIK, all or mostly in Java. It is not Red Hat's Fedora and predates it.
I manage a Stellent Content Server where I work, and it's a pretty decent app. Not cheap from what I hear though.
It's the only Java application I've tried that hasn't been problematic.
Like everything else, it has some of what you want, some you don't.
Con:
1) It's not open source
2) It's not cheap
Pro:
1) The training courses are good
2) It's fairly well documented, once you get the basic concepts of the design understood, which are not as well documented.
3) It's very modular, while it's not open source, you can easily replace almost any chunk of the server with your own custom code and either (a) call that chunk so it still exists and is used, just effectively has enhanced functionality, or (b) simply replace that chunk with your own completely custom code.
4) It's the only java based application I've ever used that hasn't been buggy as hell.
34486853790
Connection too slow for X forwarding? Try "ssh -CX user@host"