Summer of Code Proposal - Cayenne ROP Application

Subject ID



Implementing a Java desktop application which uses Cayenne's Remote Object Persistence


Marcel Gordon



I'm an undergraduate student in my final year of B Computer Science / LLB at the University of Wollongong, Australia. I have worked as a programmer on web development, desktop applications and server-side Java. I presently teach Java and C++ to post-secondary students.

I am interested in this project because it combines a number of different areas - see below - and will expose me to technologies which I have not had an opportunity to use before.


Cayenne is an "open source component-oriented persistence framework". The proposal is to implement an application with a graphical user interface which utilises Cayenne's Remote Object Persistence technology.

A suitable application would be a CMS/Wiki editor. As well as being a good demonstration of Cayenne, it could potentially also be a useful application in itself.

I propose to implement the application using Eclipse's Rich Client Platform.


A Wiki/CMS editor with a graphical user interface, well-documented in order to function as a sample application for Cayenne's Remote Object Persistence functionality.

Benefits for the Apache community

The application would be an example of how Cayenne's Remote Object Persistence technology works, helping to grow the Cayenne project. In addition, the application could be used by Cayenne developers to edit the group's Wiki.

Design / Approach

All parts of this project ought to be well documented. That goes without saying, but is particularly important in this case because the application will be used as an example.

I propose to use Eclipse's RCP to develop this application. The application would be based around a viewing component, essentially a browser. A second component would be used for editing. A map would be created for each CMS/Wiki which was a target of the application, mapping different pages to different editing configurations. That way the page to be edited could be located in an intuitive way and the results of the editing viewed very quickly and easily. The primary target would be Confluence, the Wiki used by the Cayenne project.

Additionally, in order to create new entries an 'Add record' type editing page would have to be defined for those records where it is needed. A login component would also be needed to authenticate against the target's user database.

Another feature which would be useful is a map of the CMS/Wiki which is independent of the Web view (deriving a navigable map based on page titles, for example - a kind of 'Jump to' interface).




May 23

Project commences

June 6

Basic page viewing functionality complete

June 20

Basic editing functionality complete

June 21

Marcel goes on holiday to NZ

July 10

Marcel returns to Oz

August 7

Integration of viewing and editing using mapping

August 20

Documentation and testing complete

August 21

Project submission