PostgreSQL Adapter for NexJ
Project Goal
Develop an adapter to enable NexJ Express model to interact with PostgreSQL database.
Contributors
Supported PostgreSQL Versions
- 8.4+
Current Status
- Completed
- Get the last PostgreSQL adapter source code from http://mercurial.nexj.com/express.cgi/core
Project Phases
Phase 1: Investigation (DONE)
- Get requirements from NexJ (Meeting on Friday Nov 5th)
- Walk-through the code
- Familiarization with PostgreSQL
Phase 2: Connect to PostgreSQL server (DONE)
Phase 3: PostgreSQLSchemaManager (DONE)
- Estimated Duration: 3 weeks (Jan 17 - Feb 11, 2011)
- Extending SQLSchemaManager
Phase 4: PostgreSQLAdapter (DONE)
- Estimated Duration: 3 weeks (Feb 14 - 25, 2011)
- Extending SQLAdapter
Phase 5: PostgreSQL UnitTests and Optimization (DONE)
- Estimated Duration: 2 weeks (Feb 28 - Mar 11, 2016)
- Add database specific tests fostr PostgreSQL
- test for required contrib scripts
- test for custom blob read & write functions
- Add PostgreSQL specific optimization
Phase 6: Megre Code with Latest Revision (DONE)
- Merge code with lastest revision from http://mercurial.nexj.com/express
Phase 7: Test with NexJ Express Studio (DONE)
- Estimated duration: Mar 7- Apr 14, 2011
- Run model in Express studio using the postgresql adapter
- create scripts for database initialization, creation and dumping
- create scripts for JBoss
- Deploy to JBoss
Phase 8: Code Review 1 - Meeting (DONE)
- Date: Apr 20,2011
- Meet with NexJ Developer to review code
Phase 9: Code Review 1 - Apply Changes (DONE)
- Estimated Duration: Apr 20, 2011 - July 1, 2011
- Changes to be made
Phase 10: Code Review 2 (DONE)
- Send code for review
Phase 11: Code Review 2 - Apply Changes (DONE)
- Estimated Duration: July 7, 2011 - July 15, 2011
- Changes to be made
Phase 12: Code Review 3 (DONE)
- Sent code for code review 3
- https://bitbucket.org/gbatumbya/postgresql_external/src/08cdedb9d071/
Phase 13: Code Review 3 - Apply Changes (DONE)
- Upgrade to lastest 7.1 branch
- Create Statement and PreparedStatementProxy
- Create PostgreSQLPreparedStatementProxy:
- implement set/getQueryTimeout
- move custom timeout code into this proxy
- Override prepareStatement in PostgreSQL to return PostgreSQLPreparedStatementProxy
- Implement implicit save points for statements within a transaction block
- Modify readSchema to use addColumn for reading columns from the database
- Remove MSSQL and Oracle specific code from addColumn
- Override addColumn in PostgreSQL for text, bytea and lo types
Phase 14: Integration Tests (DONE)
- Run Integration tests against the Adapter
Phase 15: Code Review 4 (DONE)
- Code review with framework architect
- https://bitbucket.org/gbatumbya/postgresql_external/src/6c9a7380c8fe
Phase 16: Code Review 4 - Apply Changes (DONE)
- Estimated Duration: Sep 9 - Sep 12
- Changes to be made
Phase 17: Code Review 5 (DONE)
- Submitted code for review on Sep 20.
- https://bitbucket.org/gbatumbya/postgresql_external/src/a0d10ef7cdbe/
Phase 18: Code Review 5 - Apply Changes (DONE)
Phase 19: Code Review 6
- Date: Oct 13
- Submitted for code review
- https://bitbucket.org/gbatumbya/postgresql_external/src/153aec847d54/
Project Repository
- URL for central repository of the project is: https://bitbucket.org/gbatumbya/postgresql_external
- Steps to work with the repository
- 1- Follow the instructions to create the NexJ Express workspace .
- 2- After creating 'ws' directory,
- open Eclipse and
- click on File -> Import -> Mercurial -> Clone Existing Mercurial Repository
- Enter this information:
Resources
- Downloads
Linux binaries http://www.openscg.org/se/postgresql/packages.jsp
- Debugging
- Intro
- Concept of Adapter [1]
- FOSSLC PostgreSQL
- Java
- Database & Persistence
- JDBC
- PostgreSQL Specifications
- MySQL Specifications
- Postgre - MySQL Compare