Difference between revisions of "PostgreSQL Adapter"

From CDOT Wiki
Jump to: navigation, search
(Supported Versions)
 
(26 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
{{Admon/obsolete}}
 +
 
<big><big> PostgreSQL Adapter for NexJ </big></big>
 
<big><big> PostgreSQL Adapter for NexJ </big></big>
 
{{NexJ_Express Index}}
 
{{NexJ_Express Index}}
[[category: NexJ Current Projects]]
+
[[category: NexJ Past Projects]]
 
[[category: NexJ Express PostgreSQL]]
 
[[category: NexJ Express PostgreSQL]]
 +
  
 
== Project Goal==
 
== Project Goal==
Develop an adapter to enable NexJ Express model to interact with PostgreSQL database
+
Develop an adapter to enable NexJ Express model to interact with PostgreSQL database.
  
 
===Contributors===
 
===Contributors===
Line 13: Line 16:
  
  
=== Supported Versions===
+
=== Supported PostgreSQL Versions===
* 8.4
+
* 8.4+
* 9.0
+
 
**For windows, only 32 bit versions are supported until a solution for ossp-uuid.sql has been implemented
 
  
 
== Current Status==
 
== Current Status==
* Phase 9
+
* '''Completed''' (October 21, 2011)
 +
* Get the last PostgreSQL adapter source code from http://mercurial.nexj.com/express.cgi/core
  
 
<!--{|class="collapsible collapsed" style="border-style:solid;border-width:thin;border-color:black"
 
<!--{|class="collapsible collapsed" style="border-style:solid;border-width:thin;border-color:black"
Line 80: Line 83:
 
* Deploy to JBoss
 
* Deploy to JBoss
  
=== Phase 8: Code Review 1 - Meeting (Done) ===
+
=== Phase 8: Code Review 1 - Meeting (DONE) ===
 
* Date: Apr 20,2011  
 
* Date: Apr 20,2011  
 
* Meet with NexJ Developer to review code
 
* Meet with NexJ Developer to review code
  
=== Phase 9: Code Review 1 - Apply Changes ===
+
=== Phase 9: Code Review 1 - Apply Changes (DONE) ===
* Estimated Duration: Apr 20, 2011 - July 1, 2001
+
* Estimated Duration: Apr 20, 2011 - July 1, 2011
* Apply [[PostgreSQL_Adapter_Project_-_Code_Review_1_Changes | code review changes]]
+
* [[PostgreSQL_Adapter_Project_-_Code_Review_1_Changes | Changes to be made]]
=== Phase 10: Code Review 2 ===
+
 
 +
=== Phase 10: Code Review 2 (DONE) ===
 
* Send code for review
 
* Send code for review
 +
*
 +
 +
=== Phase 11: Code Review 2 - Apply Changes (DONE) ===
 +
* Estimated Duration: July 7, 2011 - July 15, 2011
 +
* [[PostgreSQL_Adapter_Project_-_Code_Review_2_Changes | 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
 +
* [[PostgreSQL_Adapter_Project_-_Code_Review_4_Changes | 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 ==
 
== Project Repository ==
* URL for central repository of the project is: https://bitbucket.org/gbatumbya/postgresql_external
+
* URL for central repository of the project is: https://bitbucket.org/gbatumbya/nexjexpress-postgresqladapter
  
 
* Steps to work with the repository
 
* Steps to work with the repository
  
:1- Follow the instructions to create the NexJ Express workspace from the manual.
+
:1- Follow the [https://www.projects.openhealthtools.org/sf/docman/do/downloadDocument/projects.oht_aip/docman.root.nexj_studio_express_v7_1_113_0/doc1783/1 instructions to create the NexJ Express workspace ].
 
:2- After creating 'ws' directory,
 
:2- After creating 'ws' directory,
 
::open Eclipse and
 
::open Eclipse and
 
::click on '''File -> Import -> Mercurial -> Clone Existing Mercurial Repository'''
 
::click on '''File -> Import -> Mercurial -> Clone Existing Mercurial Repository'''
 
:: Enter this information:
 
:: Enter this information:
::: '''URL''': https://bitbucket.org/gbatumbya/postgresql_external
+
::: '''URL''': https://bitbucket.org/gbatumbya/nexjexpress-postgresqladapter
::: OR
+
<!--
::: '''URL''': http://liberia.proximity.on.ca:81/PostgreSQL%20Adapter
 
 
:3- The central repository's structure is:
 
:3- The central repository's structure is:
 
:: Main branch called 'default'  
 
:: Main branch called 'default'  
:: New branch or branches with this naming convention: 'wsComitter' e.g. 'wsMinoo'
+
:: Branches for
 
:4- After cloning the project, follow these steps to add a new branch with your user name:
 
:4- After cloning the project, follow these steps to add a new branch with your user name:
 
:: First make sure the active branch is 'default'. Notice the top of the Package Explorer e.g. ''core[5:b8b2f102343@'''default'''(tip)]''
 
:: First make sure the active branch is 'default'. Notice the top of the Package Explorer e.g. ''core[5:b8b2f102343@'''default'''(tip)]''
Line 118: Line 166:
 
* '''NOTE!''' To avoid any conflict, do the 'Pull' every day and before any push.
 
* '''NOTE!''' To avoid any conflict, do the 'Pull' every day and before any push.
 
* '''NOTE!''' First just 'Commit' changesets and do not 'Push' them until the end of the day or the time you are confident by latest changes to the code, then 'Push' them all at once and 'Merge' them with the 'default' branch in central repository.
 
* '''NOTE!''' First just 'Commit' changesets and do not 'Push' them until the end of the day or the time you are confident by latest changes to the code, then 'Push' them all at once and 'Merge' them with the 'default' branch in central repository.
 +
-->
  
 
== Resources ==
 
== Resources ==
 +
* Downloads
 +
Linux binaries http://www.openscg.org/se/postgresql/packages.jsp
 
* Debugging
 
* Debugging
 
:[[Run_Junit_Tests_For_Non_Default_SQL_Adapter | Unit Testing for non Default SQL Adapter]]
 
:[[Run_Junit_Tests_For_Non_Default_SQL_Adapter | Unit Testing for non Default SQL Adapter]]
Line 132: Line 183:
 
* [[PostgreSQL_Adapter-nexj/Resources#MySQL_Specifications | MySQL Specifications]]
 
* [[PostgreSQL_Adapter-nexj/Resources#MySQL_Specifications | MySQL Specifications]]
 
* [[PostgreSQL_Adapter-nexj/Resources#PostgreSQL_-_MySQL_Compare | Postgre - MySQL Compare]]
 
* [[PostgreSQL_Adapter-nexj/Resources#PostgreSQL_-_MySQL_Compare | Postgre - MySQL Compare]]
 +
  
 
== Summary of Applied Research ==
 
== Summary of Applied Research ==
 
* [[Research Findings - PostgreSQLAdapter]]
 
* [[Research Findings - PostgreSQLAdapter]]
 
* [[Research Notes - PostgreSQLAdapter]]
 
* [[Research Notes - PostgreSQLAdapter]]

Latest revision as of 20:31, 26 January 2014

Important.png
This page may be obsolete.
It contains historical information.

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


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)

Phase 4: PostgreSQLAdapter (DONE)

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)

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)

Phase 10: Code Review 2 (DONE)

  • Send code for review

Phase 11: Code Review 2 - Apply Changes (DONE)

Phase 12: Code Review 3 (DONE)

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)

Phase 16: Code Review 4 - Apply Changes (DONE)

Phase 17: Code Review 5 (DONE)

Phase 18: Code Review 5 - Apply Changes (DONE)

Phase 19: Code Review 6


Project Repository

  • 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:
URL: https://bitbucket.org/gbatumbya/nexjexpress-postgresqladapter

Resources

  • Downloads

Linux binaries http://www.openscg.org/se/postgresql/packages.jsp

  • Debugging
Unit Testing for non Default SQL Adapter
  • Intro
Concept of Adapter [1]
FOSSLC PostgreSQL


Summary of Applied Research