Google summer of code 2007 – Project proposal
jackrabbit-jcr-demo - JCR Demo Application based on Jackrabbit
- Apache Jackrabbit is a fully confirming implementation of the Content Repository for Java Technology API (JCR) and is the reference implementation JSR 170 Specification. Jackrabbit is a very useful content repository but a major obstacle for a novice JCR developer is that there is no demo application to be used as a reference. It would be really useful to new comers to Jackrabbit to have a reference which shows how to build an application from the scratch on top Jackrabbit. Jackrabbit-jcr-demo is a demo blog application which will show how JCR functionalities can be used in practice and can be used as a reference to new users of Jackrabbit . Complexity of the application will be kept at a level that can be easily understood by a novice Jackrabbit developer and usage of JCR features will be emphasized. Jackrabbit-jcr-demo will be written adhering to Java coding standards and will contain clean and well readable code. A detailed development guide and a user guide will be delivered along with the jackrabbit-jcr-demo web application. Jackrabbit-jcr-demo blog application will be a simple blog application and will include text blog entries, image attachments, comments, ratings and alerts. This will also include a user management where users will have to first log in to their account to create blog entries or to comment or rate someone's blog entry. All blog entries will be able commented and rated by the users. Demo blog will contain some public pages which any user can edit .Email alerts will be sent to the blog entry owner when his blog is commented. All these content will be stored in a Jackrabbit content repository under JCR Node types. I will like to showcase level 1 and level 2 repository features plus some additional repository features Observation, Locking, Versioning and Searching repository content with SQL.
- Jackrabbit-jcr-demo will be a demo blog web application which will run live from the Jackrabbit site. It will contain good documentation describing how to build the demo web application from the scratch. Main goal of the jackrabbit-jcr-demo is to be used as a reference by a developer new to Jackrabbit and to show the features of Jackrabbit and how they can be used in practice. Demo blog application will contain text blog entries, images attachments, comments and ratings. Users will first have to log in to the system and it will include a user management too. These will be used to show the level one level 1 repository features like Accessing the repository, reading repository content, namespaces, searching repository content searching, node types, access control and level 2 repository features like writing repository content and assigning node types. Email alert will be sent to the blog entry owner when his/her blog entry is commented. I will use the Observation feature of the Jackrabbit to add this functionality to the demo blog application. Several public pages will be available in the demo blog application and these pages will be used to show the additional features such as versioning and locking. I will use the deployment model two – Shared J2EE resource model to deploy the repository in the servlet container. When using this model repository will be started and stopped with the application server and will be visible to all the applications to connect to. I will use the default persistence model (embedded database) in Jackrabbit. I will try to discuss the design decision in depth in the mailing list as it will provide important information for a new comer to Jackrabbit and document them. If these discussions take long time and I may not get the chance to provide all the above mentioned features in the demo application, this priority list will be used.
Priority list of features
- Adding and viewing text blog entries
- Adding image attachments to blog entries
- User management
- Adding Comments
- Adding ratings
- Comment Alerts
- Editable public pages ( like Wiki pages )
- Jackrabbit-jcr-demo web application Code documentation Developer guide
April 9 - Finalize the design
April 30 - Finishing the frontend of the demo blog application
June 15 - Release of demo blog application with core functionalities
July 9 - Upload the code to code.google.com/hosting for midterm evaluation
August 1 – Release of Demo blog application V 1.0 plus documentation
August 20 – Upload the code to code.google.com/hosting for final evaluation
I’m Nandana Mihindukulasooriya from University of Moratuwa, Sri Lanka doing a major in Computer Science and Engineering and I’m in the final year of my undergraduate course. The modules I have completed under my undergraduate course with the results I have achieved can be found at http://www.cse.mrt.ac.lk/~nandana/acadamic/transcript.html .
I have been developing Java applications since last three years and one of my major interests is on web application development. I have developed fair amount of java web applications using servlet/jsp technologies. I am quite familiar with Apache tomcat application server. These days I am developing a mblog (mobile blog) application for a local mobile operator which includes text blog, photo gallery, video gallery, comments, ratings, user management, friend management and etc. We are using EJBs for that and it will be deployed in JBoss with MySql as the database. I am bit familiar with the Apache Axis 2 project and have some experience in writing java web services.
- Jackrabbit-jcr-demo GSoc project will happen with in the Jackrabbit community and feedback from the community will always be valued. All the deign decisions and the progress of the project will be posted on the mailing list for feedback and comments. I would always try to get my code reviewed by the expert developers in the mailing list and get them involved in the design decisions. Through this I will try get grab as much as expertise from the experienced programmers and include them in the demo blog application and the documentation.
Even at this early phase, I am involved with the mailing list and getting the feedback from the community about the jackrabbit-jcr-demo that I'm going to do. This initial discussion can be found at http://www.nabble.com/Google-Summer-of-Code-2007---jackrabbit-jcr-demo-t3428515.html