Slashdot Mirror


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?"

19 of 153 comments (clear)

  1. Re:Maybe because people turn it off? by chris_mahan · · Score: 4, Informative

    I'm pretty sure he's talking about java on the server, delivering (x)html+css+javascript to browsers.

    --

    "Piter, too, is dead."

  2. Re:Maybe because people turn it off? by daeg · · Score: 4, Insightful

    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.

  3. Poor Java Support with Webhosts by FreeKill · · Score: 4, Insightful

    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.

    1. Re:Poor Java Support with Webhosts by phoenix.bam! · · Score: 4, Insightful

      I don't think that's it at all. I think it's that it takes less than 10 minutes to have a presentable PHP based website. Just talking hello world here.

      Trying to do the same thing with JSP? The overhead for configuration and security layers is just awful. Not to mention the documentation is atrocious. To find a step by step guide for getting tomcat set up as you need is painful at best and impossible at worst. Deploying webapps is a huge pain and the amount of xml you have to right to configure your webapp is daunting.

      That is why php is chosen. Someone could start small site, displaying "Hello World!" from a database for instance, and then the CMS can grow and mature. Java on the other hand takes a huge commitment to just get the program to displaying "Hello World"! from a database.

    2. Re:Poor Java Support with Webhosts by doktorjayd · · Score: 3, Informative

      web hosts may provide poor support, but claiming its hard to get tomcat and apache to work together is BS.

      setting up tomcat and apache is dead simple.

      $> sudo yum install tomcat5 tomcat5-webapps tomcat5-admin-webapps httpd

      add proxy mapping for httpd -> tomcat on the ajp protocol in httpd.conf:

        [ ProxyPass / ajp://localhost:8009 with httpd 2.2,
            mod_jk for earlier httpd ]

      add a html file to $TOMCAT_HOME/webapps/ROOT/, name it blah.jsp

      browse to your http://webserver/blah.jsp

      there ya go, your very first jsp page, set up in minutes.

      first time i needed to get this going ( talking tomcat 3.x here, 6+ years ago? ) took less than an hour to google and implement. the bits and pieces have improved over time, and as the above should attest, it isnt rocket scientry these days.

      setting up for a production system is only slightly more involved, and typically has more to do with the application itself than the container ( tomcat ), or the java runtime. most off-the-shelf java webapps ( see jira, confluence, wildfire) will have the step-by-step for the particulars of setting up the environment for the specific needs of the application deployment. say.. dont a lot of php apps also require tweaks to the environment? apache and or php.ini? and how many shared hosts allow you to set safe_mode?

      developing a full blown cms? well, if the above is beyond you, then you should probably give up on php as well.

      the real issue here is that there are very few hosting services who are in the market for java hosting. perhaps the demand isnt there? perhaps most shops deploying java webapps run it all in-house or manage their own hosted environments? java has been my bread and butter for years now, and never once have the customer ( or the company i've worked for) deployed to a managed host. always in house, providing both internal and external access.

      one of the things about a php hosted environment is that the provider can lock your app down so it only runs as a low-privilleged user in a shared space ( http server with virtual hosts ). they can build a reasonable server for a grand or so, and charge N clients for shared access to it for bugger all. note here the key is 'shared environment'. the 'dedicated' packages that give you root shell access you are free to install and run whatever you like, in which case, see the above quick steps to setting up tomcat/apache.

      applications written in java are typically more complex than php, but then again, they are more likely to perform more complex operations ( see banking & finance industries... and the lack of php therein ).

      that said, you can make a java app as complex as you like, with all sorts of crazy requirements of the container, but that doesnt mean you have to. ( same goes for php y'know! )

  4. Re:Why not... by FreeKill · · Score: 3, Insightful

    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.

  5. They do exist by Jagungal · · Score: 3, Informative

    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.

  6. Re:Maybe because people turn it off? by MaggieL · · Score: 4, Insightful

    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=-
  7. Few ideas... by toxygen01 · · Score: 3, Informative

    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

  8. Re:Maybe because people turn it off? by nacturation · · Score: 5, Funny

    I don't know about most people, but I always turn off Java in my browser. Well it's a good thing you leave PHP turned on in your browser.
    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  9. Re:learn PHP by Schraegstrichpunkt · · Score: 3, Insightful

    Yes. If something works, then use it.

    I write PHP code for a living, and that's exactly my problem with PHP: It doesn't work. At least, not very well.

  10. Re:Why not... by Propaganda13 · · Score: 3, Informative

    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.

  11. Dear slashdot, by Klowner · · Score: 5, Funny

    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.

  12. Re:That's an easy one by imroy · · Score: 3, Interesting
    PHP was tailor-made for this sort of thing

    No, it wasn't. PHP was made for writing quick little bits of code in Personal Home Pages. And for that it was perfectly reasonable. Unfortunately it became very popular (probably because it was easy to install on Windows) and since then it has been extended and had all sorts of modules added with little or no change to the core language. Many people are now discovering just how bad it is to use PHP on large projects. It's just a mess.

  13. Re:The Java Trap by GuyWithLag · · Score: 3, Insightful

    No. For better or worse, PHP is easier to administer from an ISPs perspective - it integrates directly in the web server, you just deal with files and possibly their permisssions. With java you have to have a separate server (that is relatively heavyweight) for the various components, you need to map URLs to that server, and the users can't update their apps by themselves, the ISP has to do it.

    Java servlets have been designed for the enterprise, and it shows....

  14. good question by jilles · · Score: 5, Insightful

    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
  15. Hang on there a sec, bub. by RedDirt · · Score: 3, Insightful

    (This is gonna hose my karma, but it's something I feel strongly about so damn the torpedoes, full speed ahead! )

    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. :P

    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
  16. Re:That's an easy one by imroy · · Score: 4, Informative
    the article you link to is from 2002, pre dating many things in PHP

    Ok, I know I'm being trolled by a self-styled fanboy, but what things exactly?

    • Does PHP now have namespaces avoiding all the nonsense with naming variables and functions?
    • Has PHP been separated into a programming language and a templating language? Embedding code in HTML is so 90's. The MVC pattern is much more manageable, especially for a group of developers.
    • Has PHP done away with the configuration file, a major source of headaches in deploying applications on shared hosting?
    • Has PHP done away with "magic quotes"? Prepared statements. That's all I'm going to say.
    • Does PHP now handle Unicode (UTF-8) text transparently in all its built-in functions? You know, like Perl 5.8, coincidentally released in 2002.

    No it has not. PHP is still fundamentally the same language it was all the way back in 2002.

    And if you're going to argue about versions of PHP, might I also point out that PHP has broken forward compatibility twice . Version 4.4 changed the behaviour of references in an incompatible way, and PHP 5.0 makes many more changes to the core language. This places shared hosting providers in a very difficult position and many simply choose to run the old version 4.3, for which most PHP code was written for.

  17. What are you talking about? by bigHairyDog · · Score: 3, Informative

    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