title: Java-based CMS with RESTful service / API to access content
body: <p><em>For those who might vote to close this question due to "not constructive - As it currently stands, this question is not a good fit for our Q&amp;A format." - Would be great if you would suggest <strong>where</strong> should I post this question (<a href="https://softwareengineering.stackexchange.com/">https://softwareengineering.stackexchange.com/</a> ? or any CMS-focused forum?)</em></p>
  
  <p>Similar questions have been asked before:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/918722/java-or-php-for-homegrown-cms">https://stackoverflow.com/questions/918722/java-or-php-for-homegrown-cms</a></li>
  <li><a href="https://stackoverflow.com/questions/4005811/is-there-a-good-cms-for-java">https://stackoverflow.com/questions/4005811/is-there-a-good-cms-for-java</a></li>
  <li><a href="https://stackoverflow.com/questions/8298790/java-web-cms-recommendations">https://stackoverflow.com/questions/8298790/java-web-cms-recommendations</a></li>
  <li><a href="https://stackoverflow.com/questions/4837502/recommendations-for-a-lightweight-java-web-cms">https://stackoverflow.com/questions/4837502/recommendations-for-a-lightweight-java-web-cms</a></li>
  <li><a href="https://stackoverflow.com/questions/1939238/can-you-recommend-an-easy-to-use-easy-to-develop-cms">https://stackoverflow.com/questions/1939238/can-you-recommend-an-easy-to-use-easy-to-develop-cms</a></li>
  </ul>
  
  <p>All of them are a few years old, so I am wondering if there are new recommendations / discussions around this. </p>
  
  <p>Some background: We are a Java shop, we create / maintain websites for our clients, our tech stack are Java, Spring, SQL, JSP, HTML5, JQuery, Tomcat, JBoss, Maven, etc ... the usual stuff. So far in terms of "content" we either put it in some properties file read in by the JSP for copies (eg. description of product X) or back-end service that provide dynamic content (eg. what's the current value of product X). </p>
  
  <p>Now we are rethinking our approach to managing content because we are managing more and more properties for the client with the same content (eg. a website, mobile website, mobile app, etc), so we definitely want to avoid having multiple copies of the same content spread around.</p>
  
  <p>A few things I am particularly looking for:</p>
  
  <ol>
  <li><p>Java-based (because we are Java shop: 1) more expertise in handling Java-based stuff and 2) avoid introducing another tech to the stack)</p></li>
  <li><p>Extensibility / customization. Need to be able to customize the CMS (which is why we want to stick within our Java expertise) so that it can be extended to connect with other web services to consume content, etc.</p></li>
  <li><p>Focus on <strong>content</strong> - we need clear separation between content vs UI-render, going back to what we are looking for where we will need to deliver the content into separate properties.</p></li>
  <li><p>RESTful service / API to access the content - same as above. We need the content to be accessible directly as a JSON / JSON-P /. XML feed.</p></li>
  <li><p>Need to have a decent UI to work with and the more intuitive the better for business user because some of our client that might be moved to the platform will likely want to be manage their own content</p></li>
  <li><p>Multilingual support</p></li>
  <li><p>Open source / low cost</p></li>
  </ol>
  
  <p>So far, several options that I have are:</p>
  
  <p><strong>Adobe CQ</strong> - Looks to be the most ideal solution, but unfortunately it's cost prohibitive</p>
  
  <p><strong>Hippo CMS</strong> - Looks to fit what we are looking for, I am unsure of how well it's documented, tutorial / how-tos seems to be quite sparse, their market share seems to be bigger in Europe than in North America.</p>
  
  <p><strong>Liferay</strong> - More focused as "portal" as opposed to CMS providing content</p>
  
  <p><strong>Alfresco</strong> - More focused on "documents" </p>
  
  <p><strong>dotCMS</strong> - Like Hippo CMS, seems like this one might fit our needs.</p>
  
  <p><strong>Magnolia CMS</strong> - Looks around the same alley as dotCMS and Hippo as well. From the comments I've seen seems like they are more focused on a single website and not clean separation between content vs UI.</p>
  
  <p>I personally don't have much direct experience working with CMS before.</p>
  
  <p>Your thoughts / comments on each of the options above, or if you have other solutions in mind not mentioned here, would be greatly appreciated! One of my challenge is that we need to make a really sound decision because whichever path we decide to go down with, we would likely be stuck with it, decision is not something that can easily be discarded and start over.</p>