Open main menu

CDOT Wiki β

Changes

NexJ Express Connecting to PostgreSQL

1,732 bytes added, 20:30, 26 January 2014
no edit summary
<big><big> PostgreSQL Adapter for NexJ - Create Test Environment </big></big>{{NexJ_Express IndexAdmon/obsolete}}
[[category: NexJ Express PostgreSQL]][[Category:NexJ_Express_Development]][[category: NexJ Express]] ==Task Summary = ={| border="1" cellpadding="4" cellspacing="2" style="border: 1px solid black;border-collapse:collapse;"|- Setup ! Task! Status|- | Install the postgresqlPostgreSQL Server| DONE|- | Install PostgreSQL driver| DONE|- | Add code to connect to server| DONE|-| Create Script for Test database| DONE |-| Test connection to the server| DONE|-| Configure UnitTests for multiple DB's| |} == Task Details ==For testing the connection=== Install PostgreSQL ===Download: <code>Version 9.0</code> from list of [http://www.enterprisedb.com/products/pgdownload.do#windows PostgreSQL downloads]. === Install PostgreSQL JDBC3 driver ===Download: <code> JDBC3 Postgresql Driver, the 'PostgreSQLAdapterTestVersion 9.0-801 </code> @ http://jdbc.postgresql.java' is being usedorg/download.html * <br/>Install: Copy driver to <code>[[PostgreSQL_Adapter-nexjjdk folder]/jre/lib/test-envext</todo |TODOs]]code>* Files to configure based on PostgreSQL properties=== Code: srcAdd PostgreSQL Driver ===Package:: system<code>nexj.core.persistance.dstypesql</code>:: DatabaseToolCreate <code>PostgreSQLAdapter.java </code> by extending <code>SQLAdapter</ This file calles SQLSchemaMangerFactorycode>:Create <code>PostgreSQLSchemaManager.java and creates the connection</code> by extending <code>SQLSchemaManager</code> :: Edit <code>RelationalDatabase.java <// Sets the default properties for the supported driverscode>:: Edit <code>RelationalDatabaseFragment.java </code>:Edit <code>SQLSchemaManagerFactory.java</ Sets the custom fragment properties for the supported driverscode> Package:<code>nexj.core.meta.sys</code>: Driver type and some other properties in JDBCInfoEdit <code>system.javadstypes</code> === SQL Scripts ===Package:<code>nexj.core.persistence.sql.script</code>: SQLSchemaManagerFactoryCreate * <code>postgresql_setup.sql</code>* <code>postgresql_drop.sql</code>* <code>postgresql_insert.sql</code>* <code>postgresql_upd_addr.sql</code>* <code>postgresql_upd_cont.javasql</code> === UnitTest: testTest Connectivity to database ===Package:: AllTests<code>nexj.core.persistance.javasql</code>:: Create <code>PostgreSQLAdapterTest.java</code> by extending <code>SQLAdapterTest</code>:: Create <code>PostgreSQLSchemaManagerTest.java</code> by extending <code>SQLSchemaManagerTest</code> Package:: default.config<code>nexj</code>:: Create <code>postgresql.connectionconnections</code> using NexJ Studio:: filestorageEdit <code>default.connectionsconfig</code> to use PostgreSQL::filestoragefragmentEdit all <code>*.connections</code> files to use PostgreSQL : Script===Configure UnitTests for more than one Database===
* Done<!--== Setup the postgresql-connection ==For testing the connection, the 'AllTests.java' is being used.: Installed the <code> Installer version Version 9.0.1-1</code> from list of [http://www.enterprisedb.com/products/pgdownload.do#windows PostgreSQL downloads].: Installed the <code> JDBC3 Postgresql Driver, Version 9.0-801 </code> @ http://jdbc.postgresql.org/download.html and added it to the libraries in JDK
:: The driver class which is being used for NexJ Express Model is: <code> org.postgresql.xa.PGXADataSource </code>
:: The driver is loaded from RelationalDatabaseFragment.java and RelationalDatabase.java
props.setProperty(XMLMetadataLoader.CONNECTIONS_URL_PROPERTY, "/nexj/" + sAdapter.toLowerCase(Locale.ENGLISH) + ".connections"); // sets the properties to postgresql.connection
</source>
: After all properties are loaded, it creates the connection through Connection Factory files.
===Files to Configure==='''NOTE''': Configured the work/ws/core/test/nexj/Changes to these files are involved with '''1-Port''', which should be: 5432, and '''2- Driver package''' that should change to <code> org.postgresql.connectionxa.PGXADataSource </code>: src: Configured : system.dstype: Configured : DatabaseTool.java // This file calles SQLSchemaMangerFactory.java and creates the connection: Configured : RelationalDatabase.java // Sets the default properties for the supported drivers: Configured : RelationalDatabaseFragment.java // Sets the custom fragment properties for the supported drivers: Configured : Driver type and some other properties in JDBCInfo.java: Configured : SQLSchemaManagerFactory.java // Sets the connection for the particular adapter type: test=== 2- Create a PostgreSQL database through some scripts===:: AllTests.java: postgresql_setup: default.sql ==config // change to these four files are: adapter= 3- Create the extended "PostgreSQL source files ==" port="5432": PostgreSQLAdapter: postgresql.javaconnection : PostgreSQLSchemaManger: filestorage.java === 4- Create the extended PostgreSQL test files ===connections: PostgreSQLAdapterTest:filestoragefragment.javaconnections: PostgreSQLSchemaMangerTest.java-->