Underlying Open Source Projects

Jahia aims to integrate best of the Java and specifically Apache open source libraries into one easy to install, coherent and ready to use product.

Jahia Ltd is also significantly involved in several open source projects indirectly by employing committers in Apache Slide, Apache Jackrabbit, Meven IDE,..open source projects or directly by contributing new projects to the open source movement (all the Jahia portlets, our development tools such as the Jahia SQLProfiler,... are also fully available under an open source license). In all the cases, many thanks to the whole open source community in general for the tremendous work done these last years.

Apache Ant    Apache Ant http://jakarta.apache.org/ant/index.html
Jahia is built with Apache Ant. Great tool. If you do not use it yet, you should.

 
Apache Jakarta Commons    Apache Jakarta Commons http://jakarta.apache.org/commons/
The Commons is a Jakarta subproject focused on all aspects of reusable Java components.

Among others, the folowing commons libraries are used in Jahia :

- DBCP
- HTTPClient
- Digester
- Validator
- Configuration
- Jelly

 
Apache Jetspeed2    Apache Jetspeed2 http://portals.apache.org/jetspeed-2/
Jetspeed is an Open Source implementation of an Enterprise Information Portal, written in Java and XML. Within a Jetspeed portal, individual portlets can be aggregated to create a page. Each portlet is an independent application with Jetspeed acting as the central hub making information from multiple sources available in an easy to use manner.

Jetspeed 2 is the portal layer used by default in Jahia 5.

 
Apache Log4j    Apache Log4j http://jakarta.apache.org/log4j/docs/index.html
Jahia relies on Log4j to manage the Jahia log statements.

 
Apache Lucene    Apache Lucene http://jakarta.apache.org/lucene/docs/index.html
Jahia is pre-integrated with the powerful Apache Lucene search engine.

 
Apache POI    Apache POI http://jakarta.apache.org/poi/
Jahia uses the POI Word convertor tool to index Word documents

 
Apache Slide    Apache Slide http://jakarta.apache.org/slide/
Jahia natively embeds the Apache Slide WebDAV server to provide some lightweight document management feature.

 
Apache Struts    Apache Struts http://jakarta.apache.org/struts
Jahia embeds the Apache Struts framework. You may use it to develop your new Jahia engine or to develop your new portlets. Jahia supports Struts based webapps as Portlets without any need to modify the source code.

 
Apache Taglibs    Apache Taglibs http://jakarta.apache.org/taglibs
Jahia relies on the standard JSTL or Struts taglibs for template development.

 
Apache Tomcat 4.x/5.x    Apache Tomcat 4.x/5.x http://jakarta.apache.org/tomcat/index.html
The Jahia standard edition is developed, tested and distributed with the Apache Tomcat servlet container.

 
CAS    CAS http://www.ja-sig.org/products/cas/
CAS (Central Authentication Service) is an authentication system originally created by Yale University to provide a trusted way for an application to authenticate a user.

Jahia implements CAS to offer various ways to achieve Single Sign-On (SSO).

 
Compass Framework    Compass Framework http://www.compassframework.org/
The Compass Framework is an open source Java framework, enabling the power of Search Engine semantics to your application stack decoratively. Built on top of the Lucene Search Engine, Compass integrates seamlessly to popular development frameworks like Hibernate and Spring.

 
CyberNeko    CyberNeko http://people.apache.org/~andyc/neko/doc/html/index.html
NekoHTML is a simple HTML scanner and tag balancer that enables application programmers to parse HTML documents and access the information using standard XML interfaces. The parser can scan HTML files and "fix up" many common mistakes that human (and computer) authors make in writing HTML documents.

 
Hibernate    Hibernate http://www.hibernate.org/
Hibernate is a powerful, high performance object/relational persistence and query service. Hibernate allows you to express queries in its own portable SQL extension (HQL), as well as in native SQL, or with an object-oriented Criteria and Example API.

Jahia 5 relies on Hibernate for the database persistence layer.

 
JCIFS    JCIFS http://jcifs.samba.org/
JCIFS (Java CIFS Client Library) is an Open Source client library that implements the CIFS/SMB networking protocol in 100% Java. CIFS is the standard file sharing protocol on the Microsoft Windows platform (e.g. Map Network Drive ...). This client is used extensively in production on large Intranets.

Jahia uses JCIFS to allow single sign-on (SSO) through NTLM authentication.

 
JBoss cache    JBoss cache http://www.jboss.org/products/jbosscache
JBoss Cache is a product designed to cache frequently accessed Java objects in order to dramatically improve the performance of e-business applications. By eliminating unnecessary database access, JBoss Cache decreases network traffic and increases the scalability of applications.

JBoss Cache is used as one of the cache Layer in Jahia.

Jahia 5 has also been tested on JBoss Application Server.

 
Jtidy    Jtidy http://jtidy.sourceforge.net/
JTidy is a Java port of HTML Tidy, a HTML syntax checker and pretty printer. Like its non-Java cousin, JTidy can be used as a tool for cleaning up malformed and faulty HTML. In addition, JTidy provides a DOM interface to the document that is being processed, which effectively makes you able to use JTidy as a DOM parser for real-world HTML.

Jahia implements 2 different HTML Parser to check HTML syntax in text area, JTidy and CyberNeko.

 
OpenJMS    OpenJMS http://openjms.sourceforge.net/
OpenJMS is an open source implementation of Sun Microsystems's Java Message Service API 1.1 Specification.

Jahia can use OpenJMS as messaging server to synchronize all caches in a cluster environement.

 
OpenSymphony Quartz    OpenSymphony Quartz http://www.opensymphony.com/quartz/
Quartz is a full-featured, open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs.

Quartz is used for the Jahia 5 scheduling mechanism.
Jahia can also make use of OpenSymphony OSCache tag library to implement cache mechanism by fragment.

 
PDFBox    PDFBox http://www.pdfbox.org/
PDFBox is an open source Java PDF library for working with PDF documents. This project allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents.

PDF extraction in Jahia is handled by PDFBox.

 
Spring Framework    Spring Framework http://www.springframework.org/
Spring is a layered Java/J2EE application framework. You can use all of Spring's functionality in any J2EE server. A central focus of Spring is to allow for reusable business and data access objects that are not tied to specific J2EE services.

 
Zimbra Ajax Toolkit    Zimbra Ajax Toolkit http://www.zimbra.com/community/ajaxtk_download.html
Zimbra AjaxTK is a client developer library, similar in style to traditional object-oriented widget libraries like Eclipse's SWT, albeit for Javascript. AjaxTK hides implementation details and browser quirks and substantially simplifies Ajax development.

Many parts of the Jahia 5 GUI (sitemap, workflow tree display, action menu, etc...) make use of the Zimbra Ajax toolkit.