• Anonymous
  • Login
  • Register
Custom persistent layer for Xpages

Owners weihang chen, Colin Macdonald Project Creation Jul 10, 2012
Contributors - Last Release Nov 30, 2012
Downloads 238Download latest release
Rating
(1 ratings)
Description Attempt to merge ORM from other NoSQL framework to Xpages


This application takes in part of the code from Ektorp and other NOSQL ORM, integrating with Xpages document datasource. Objective is creating a lightweight java annotation based persistent layer (customized JPA for Domino). Frankly, I would not even dare mentioning the word JPA, because this experimental idea is going to be lightweight, just something better than what we already got. Even DomSQL might be the future, I guess it will take 4 years before it gets out of the market? So having a light weight ORM before it comes out might be good. At a higher abstract level, what this project is trying to

  1. Hide the document read/write operations from developer, any modern framework does offer usage of ORM to skip the need of DAO layer implemention. Loading objects from model layer you are loading the table rows from database, submitting the objects and object relations from model layer you are automatically submitting the update to database as well.     
  2. To have a datasource maintaining a set of objects’ state and the object relations instead of having document datasource for form proceeding and viewdatasource for presentation display. If you have ever used compositeData to send over a datasource to somewhere else, you are already experiencing the difficulty building relations between the objects.

 

        Three annotations has been built so far:

        @DominoEntity  - define the form

        @DominoProperty  - map object property to document iteam name.

        @DocumentReferences - one-to-many relation

       What needs to be done

  1. All CascadeType need to be implemented
  2. Unidirectional/bidirectional, one-one/one-many/many-one/many-many  need to be implemented
  3. A potential new dataContainer needs to be written to handle Java Object lifecycle (ex. restoring dominoDocument, reconstruct the interception/lazy loading mechanism after deserialization)/publishing objects as resolved variables
  4. Code structure needs to be changed, (ex.  entitymanager needs to be made / code refactoring)

 

 



Projects can have short and readable URLs, e.g. http://mobilecontrols.openntf.org.

You can request a short URL to your project by sending a mail to support at openntf dot org.
Owners are the people with maximal rights. For example they can create releases and add more contributors.

In order to define multiple owners use "," (comma) as separator.

Because of data privacy you cannot lookup other people's names but you have to type them in.
Enter the contributors or owners here who you want to receive notifications and questions by email.

In order to define multiple owners use "," (comma) as separator.

Because of data privacy you cannot lookup other people's names but you have to type them in.
In addition to the owners additional OpenNTF contributors have to be listed here. Contributors don't have the same access rights as owners, e.g. they cannot create releases.

In order to define multiple owners use "," (comma) as separator.

Because of data privacy you cannot lookup other people's names but you have to type them in.
Enter a short description of the project here (up to 100 characters).

The short description shows up in the project UI and in some of the views.
In this field you should enter a more detailed description of your project.

You can use the rich text editor for rich text formating. You can also enter HTML to embed objects, e.g. to embed a YouTube video or a screenshot of the project. In this case use '[' and ']' to mark the passthrough HTML as such.
A Catalog Release is for projects that are production ready and that are end-user "install friendly".

This property describes whether any release of this project has been added to the catalog.

Learn more about the catalog.
GitHub can be used as source control repository for OpenNTF projects. In this case the Issues from GitHub are used instead of the Defects from OpenNTF.

Contact ip-manager@openntf if you want to have a GitHub project created in the OpenNTF space.

Learn more about OpenNTF on GitHub