lessons learned integrating cocoon, jackrabbit and solr
DESCRIPTION
My presentation held at ApacheCon Europe 2007 in Amsterdam about lessons learned building the Mindquarry Collaboration Server using Open Source components from Apache Cocoon, Apache Jackrabbit and Apache Lucene Solr.TRANSCRIPT
Mindquarry
Lessons learned integrating Cocoon,
Jackrabbit & SolrLars Trieloff
1
Mindquarry
What we wanted to doBuilding a „teamwork hub“, where people and software meet
people & people: collaboration softwarepeople & software: usabilitysoftware & software: open architecture
One data tree, multiple representations, HTTP API
2
Mindquarry
How we did it3
Apache Cocoon
Apache Jackrabbit
Solr Servlet
Subversion Repository
File Sharing Cocoon Block
Wiki Cocoon Block
Tasks Cocoon Block
Teams Cocoon Block
Talk Cocoon Block
Subversion
Postgres Database
▲
R
XPath QueryHandler
Xenodot Persistence-
Manager
mod_proxy
Lucene Index
mod_perl AuthHandler
mod_dav_svn
Feed ReaderWeb Browser Mindquarry Desktop Clientprocmail+Ruby
▲
R
▲
R
▲
R
▲
R
▲R
▲ R
▲
R
▲
R
Mindquarry
Apache JackrabbitTyped, Queryable, Versioned, High-Performance Node-StoreJCRSource with XML-to-JCR-mapping for CocoonXPath QueryHandler (Jaxen-based): full XPath 1.0Xenodot PersistenceManager: Postgres-based
from university research, still work in progress
4
Mindquarry
Apache CocoonXML-based web application frameworkaccept-header-based content selection
HTMLXHTML fragments (for AJAX)ATOM, OPML, JSONPDF, iCalendar
HTTP basic authenticationStreamGenerator and SourceWritingTransformer for „reverse pipelines“
5
Mindquarry
Solr & Servlet ServicesSolr: REST-based search serverDeployed with Cocoon Servlet Services
SolrServlet is a Servlet running in the Cocoon ServletAs all other Block Servlets are doing
Problem: dependency version conflicts, JSP
6
Mindquarry
Conclusion 7Powerful Environment for Rich Web ApplicationsExtending existing Frameworks adds even more powerGiving back additions keeps your code base cleanProjects are driven by the needs of their contributors
stabilityperformancetimeframes
Contributions yield Influence