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

34 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. Re:Maybe because people turn it off? by Indiges · · Score: 2, Interesting

    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
  4. Re:Maybe because people turn it off? by Anonymous Coward · · Score: 2, Informative

    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?

  5. 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 Shados · · Score: 2, Interesting

      I doubt thats the issue, since there are quite a bunch of .NET CMS solutions, which have the same issue (free providers never support it, you need to shell out, like for J2EE)

    2. Re:Poor Java Support with Webhosts by FreeKill · · Score: 2, Insightful

      Most web hosts offer 2 packages. A windows server with .NET support and a Linux server with Apache and PHP/CGI support. Since Java support generally requires customization of Apache at the least, but most likely an alternative web server like Tomcat, the hosting providers don't even bother.

    3. 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.

    4. 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! )

    5. Re:Poor Java Support with Webhosts by DragonWriter · · Score: 2, 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.
      Is it really true that there aren't many Open Source Java CMS tools? I mean the list here suggest otherwise, though I'm not familiar enough with the tools to know if they are any good...
    6. Re:Poor Java Support with Webhosts by Cyberax · · Score: 2, Informative

      Here's my guide:
      1) Go to http://tomcat.apache.org/download-55.cgi and select your distribution. I assume you are running Windows, so download binary installer.
      2) Run installer and click 'Next' until finished.
      3) There's no step 3).

      You can get Tomcat up and running in minutes and writing JSP pages is very similar to PHP.

  6. 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.

  7. That's an easy one by Bluesman · · Score: 2, Insightful

    >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.
    1. Re:That's an easy one by M.+Baranczak · · Score: 2, Insightful

      Funny you should mention that... My job involves writing code for Java-based content management systems. It's proprietary, so it doesn't meet the stated requirements, but it works just fine. I can think of quite a few things that work better in Java than in PHP, but I'm not interested in starting another boring flamewar. And besides, you're right about one thing: the language should be one of the less important considerations here. If there are PHP systems that do what you need, go ahead and use them. If they need customization, learn PHP, it's not that hard (certainly easier than trying to build your own system from scratch in Java, as some schmuck suggested above).

    2. 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.

    3. 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.

  8. 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.

  9. 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=-
  10. 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

  11. 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.
  12. Magnolia by paugq · · Score: 2, Interesting

    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.

  13. 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.

  14. 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.

  15. 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.

  16. Apache Lenya by dos · · Score: 2, Informative

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

  17. Re:Maybe because people turn it off? by booch · · Score: 2, Funny

    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.
  18. The Java Trap by byolinux · · Score: 2, Insightful

    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

    1. 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....

  19. Comment removed by account_deleted · · Score: 2, Informative

    Comment removed based on user account deletion

  20. Re:Maybe because people turn it off? by imroy · · Score: 2, Funny

    Neither can I.

  21. 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
  22. 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
  23. 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

  24. My two least favorite languages. by SanityInAnarchy · · Score: 2, Informative

    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!