Difference between revisions of "User:Minooz/NexJ"

From CDOT Wiki
Jump to: navigation, search
(Tasks Done)
 
(61 intermediate revisions by the same user not shown)
Line 1: Line 1:
='''NEXJ'''=
+
==Projects==
==About NexJ==
+
===''' CDOT - [http://www.nexj.com/ NEXJ] '''===
* [http://www.nexj.com/ NexJ website]
+
'''Links:'''
* [http://gbatumbya.wordpress.com/ Grace's Blog]
+
:[[NexJ_Express | NexJ Express wiki page]]
* [http://zenit.senecac.on.ca/wiki/index.php/Nexjexpress NexJ on wiki]
+
: NexJ on [http://liberia.proximity.on.ca:9090/cb  CodeBeamer] , Nexj on [http://iran.proximity.on.ca:8080/ Hudson]
*[[User:Minooz/RepoSyncProj |Repositories' Syncing Project]]
+
: NexJ Repoitory on [http://liberia.proximity.on.ca:81/ Liberia]
 +
: List of [[ NexJ_Express/resources | resources]] that were used for these projects.
 +
'''List of NexJ Tasks:'''
 +
* 1- Repositories' Syncing Project
 +
: - '''Duration''': Oct 2010
 +
: - '''Project Description''': NexJ had a Mercurial Repository (Internal) in which, the NexJ Express Server (Core) code was maintained with all its histories. NexJ was planning to share a Core Repository with the Open Source Community by creating a Repository (External) that would be kept in sync with the Internal Repository. A bash script was written to build and test new changes to the Internal Repository and push them to the External, if successful. To make this script run automatically on a regular basis, an automated building system which in general is called 'Continuous Integration System' was used. Hudson was the CI system that we used for NexJ due to its Java based nature.
 +
: - '''Project Page''' on [[Mercurial_Repository-nexj | Wiki]]
 +
: - '''Resources Page''' on [[Mercurial_Repository-nexj#Resources | Wiki]]
 +
: - My '''Blogs''': [http://minooz.wordpress.com/2010/10/ ]
  
='''Java'''=
+
* 2- PostgreSQL Adapter
* [http://en.wikipedia.org/wiki/Java_EE Java Enterprise (JavaEE)]
+
: - '''Duration''': Nov 2010 - Dec 2010
* [http://en.wikipedia.org/wiki/Application_server Application Server]
+
: - '''Project Description''': Database adapters are a set of classes that create an interface to let JDBC communicate with the database. An adapter makes JDBC with one specific SQL definitions, adapts to different implementation of SQL. PostgreSQL adapter makes NexJ Express server communicates with databases in PostgreSQL platform which is an 'open source' database.
: [http://en.wikipedia.org/wiki/JBoss_application_server JBoss application server]
+
: - '''Project Page''' on [[PostgreSQL_Adapter-nexj | Wiki]]
* [http://www.json.org/ JSON]
+
: - '''Resources Page''' on [[PostgreSQL_Adapter-nexj#Resources | Wiki]]
* [http://www.oracle.com/technetwork/java/index-jsp-135475.html Java Servlet Technology]
+
: - My '''Blogs''': [http://minooz.wordpress.com/2010/12/15/postgresql-adapter-for-nexj-express/ ]
* [http://www.oracle.com/technetwork/java/overview-138580.html Java Server Pages(JSP)]
 
* [http://ant.apache.org/manual/index.html ant]
 
* [http://tomcat.apache.org/ Apache Tomcat]
 
* [http://download.oracle.com/javase/tutorial/jdbc/index.html JDBC]
 
* [http://www.learn-xml-tutorial.com/ xml tutorial]
 
* [http://xstream.codehaus.org/index.html Xstream]
 
 
 
==Build & Test==
 
* Junit
 
: How to run JUnit test from Command Line [http://sqa.fyicenter.com/FAQ/JUnit/How_Do_I_Run_JUnit_Tests_from_Command_Window_.html Q & A]
 
: [http://junit.sourceforge.net/doc/faq/faq.htm#running_5 FAQ]
 
: Run individual tests [http://www.javaworld.com/community/node/2612 Using build.xml]
 
* Ant
 
: Tutorial [http://ant.apache.org/manual/ Ant Apache]
 
: [[User:Minooz/Ant | Min Ant]]
 
 
 
 
 
==Tools==
 
* Mercurial
 
: [http://mercurial.selenic.com/ Mercurial SCM]
 
: [[User:Minooz/RepoSyncProj/Mercurial | Min Mercurial]]
 
*Cygwin
 
:http://www.cygwin.com/ Cygwin]
 
: [[User:Minooz#Scripting_-_Shells_-_Cygwin | Min Cygwin]]
 
* Eclipse
 
: [http://www.eclipse.org/downloads/ Eclipse Download]
 
: [http://eclipsetutorial.sourceforge.net/ Eclipse Tutorials]
 
: [http://sourceforge.net/projects/eclipsetutorial/files/ All Eclipse Tutorial Videos]
 
: [http://www.myeclipseide.com/documentation/quickstarts/webprojects/index.html Create Web Application]
 
* [http://live.eclipse.org/node/544 Bugzilla, Mylyn]
 
:  setup and user-guide[http://help.tasktop.com/help/index.jsp]
 
:  Mylyn user-guide[http://wiki.eclipse.org/index.php/Mylyn/User_Guide ]
 
:  install Mylyn FAQ[http://wiki.eclipse.org/Mylyn/FAQ ]
 
: Tasktop[http://help.tasktop.com/help/index.jsp]
 
* [https://codebeamer.com/cb/wiki/8798 CodeBeamer overview]
 
: CodeBeamer Quick Tour[https://codebeamer.com/cb/wiki/8799 ]
 
: Installing process of CodeBeamer on Eclipse [http://www.javaforge.com/wiki/84364]
 
: Connect to the CodeBeamer Grace's account [http://liberia.proximity.on.ca:9090/cb/]
 
 
 
* [http://www.silverex.org/download/ XChat]
 
 
 
==Database / Persistence==
 
: JDBC [http://en.wikipedia.org/wiki/JDBC]
 
: Relational database Management System[http://en.wikipedia.org/wiki/Relational_database_management_system ]
 
: JDBC Driver [http://en.wikipedia.org/wiki/JDBC_driver]
 
: Drivers table[http://devapp.sun.com/product/jdbc/drivers]
 
: [http://xstream.codehaus.org/persistence-tutorial.html XML/Object Binding] and [http://code.google.com/p/xbird/wiki/XmlObjectBinding Object Persistence] = [http://xstream.codehaus.org/index.html XStream] + [http://code.google.com/p/xbird/ XBird]
 
 
 
* Trigger
 
:A trigger is a specification that the database should automatically execute a particular function whenever a certain type of operation is performed. Triggers can be defined to execute either before or after any INSERT, UPDATE, orDELETE operation, either once per modified row, or once per SQL statement. If a trigger event occurs, the trigger's function is called at the appropriate time to handle the event.[http://www.postgresql.org/docs/8.1/interactive/triggers.html]
 
: [http://en.wikipedia.org/wiki/Database_trigger Wiki]
 
: [http://ovir.icp.ac.ru/oracle/doc/server/doc/scn73/ch15.htm Oracle Server Manual]
 
: [http://dev.mysql.com/doc/refman/5.0/en/triggers.html MySQL] - Syntax [http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html]
 
: [http://www.postgresql.org/docs/8.1/interactive/triggers.html PostgreSQL]- Syntax [http://www.postgresql.org/docs/8.1/interactive/sql-createtrigger.html]
 
 
 
* Stored Procedures
 
: [http://ovir.icp.ac.ru/oracle/doc/server/doc/scn73/ch14.htm Oracle Server Manual]
 
 
 
* Transactions
 
: [http://ovir.icp.ac.ru/oracle/doc/server/doc/scn73/ch12.htm#toc094 Oracle Server Manual]
 
 
 
==Compare PostgreSQL and MySQL==
 
* Postgre
 
: [http://www.postgresql.org/docs/9.0/static/index.html Tutorial]
 
: [http://www.postgresql.org/docs/7.1/static/jdbc-ext.html postgre connection]
 
 
 
* MySQL
 
: [http://dev.mysql.com/doc/refman/5.1/en/sql-syntax.html Syntax]
 
: [http://dev.mysql.com/doc/refman/5.0/en/tutorial.html Tutorial]
 
: [http://www.mysql.com/downloads/connector/j/ Mysql Connector]
 
 
 
*The current versions are MySQL 5.1 and PostgreSQL 8.4.
 
#PostgreSQL is a unified database server with a single storage engine. MySQL has two layers, an upper SQL layer and a set of storage engines. [http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL]
 
#MySQL began development with a focus on speed while PostgreSQL began development with a focus on features and standards. Thus, MySQL was often regarded as the faster of the two.
 
# Both PostgreSQL and MySQL support Not-Null, Unique, Primary Key and Foreign Key constraints. However MySQL silently ignores the CHECK constraint
 
#MySQL supports stored procedures, per se; PostgreSQL supports stored functions, which are in practice very similar.
 
# Trigger - Both PostgreSQL and MySQL support triggers. A PostgreSQL trigger can execute any user-defined function from any of its procedural languages, not just PL/pgsql.MySQL triggers are activated by SQL statements only. They are not activated by changes in tables made by APIs that do not transmit SQL statements to the MySQL Server; in particular, they are not activated by updates made using the NDB API. PostgreSQL has always been strict about making sure data is valid before allowing it into the database, and there is no way for a client to bypass those checks.
 
# DataTypes - PostgreSQL does not have an unsigned integer data type, but it has a much richer data type support in several aspects: standards compliance, the logically fundamental data type BOOLEAN, user-defined data types mechanism, built-in and contributed data types. PostgreSQL allows columns of a table to be defined as variable-length multidimensional arrays. Arrays of any built-in or user-defined base type, enum type, or composite type can be created. Arrays of domains are not yet supported. MySQL does not have network IP address data types that PostgreSQL has but does provide INET_ATON() and INET_NTOA() functions to convert IPv4 addresses to and from easily stored integers. Postgres does very good job supporting referential integrity, has transactions and rollbacks, foreign keys ON DELETE CASCADE and ON UPDATE CASCADE.
 
#Security - MySQL has exceptionally good fine-grained access control. You can GRANT and REVOKE whatever rights you want, based on user name, table name and client host name.
 
#Alter table - Postgres supports ALTER TABLE to some extent. You can ADD COLUMN, RENAME COLUMN and RENAME TABLE. MySQL has all options in ALTER TABLE - you can ADD column, DROP it, RENAME or CHANGE its type on the fly - very good feature for busy servers, when you don't want to lock the entire database to dump it, change definition and reload it back.
 
#Diagnostic Log - By default, PostgreSQL logs to stderr, meaning that it's highly installation specific where the dianostic information is put; on this author's system, the default ends up in /var/lib/pgsql/pgstartup.log. The default can be set to something more reasonable (such as syslog on unix, eventlog on Windows) by adjusting thelog_destination configuration parameter.
 
#Automatic key generation -
 
:PostgreSQL doesn't support the standard's IDENTITY attribute. PostgreSQL's best offering for a column with auto-generated values is to declare a column of 'type' SERIAL:
 
<source lang=SQL>
 
CREATE TABLE tablename (
 
  tablename_id SERIAL,
 
  ...
 
)
 
</source>
 
:MySQL doesn't support the standard's IDENTITY attribute. As an alternative, an integer column may be assigned the non-standard AUTO_INCREMENT attribute:
 
<source lang=SQL>
 
CREATE TABLE tablename (
 
  tablename_id INTEGER AUTO_INCREMENT PRIMARY KEY,
 
  ...
 
)
 
</source>
 
 
 
: Compare SQL Implemenations[http://troels.arvin.dk/db/rdbms/ ]
 
: Compare Postgre and MySQL [http://www-css.fnal.gov/dsg/external/freeware/pgsql-vs-mysql.html]
 
: Comparison based on Postgre website [http://wiki.postgresql.org/wiki/Why_PostgreSQL_Instead_of_MySQL:_Comparing_Reliability_and_Speed_in_2007]
 
 
 
='''General'''=
 
==Tasks Done==
 
* [[User:Minooz/Tasks/Fall_Sep_2010 | September 2010]]
 
* [[User:Minooz/Tasks/Fall_Oct_2010 | October 2010]]
 
* [[User:Minooz/Tasks/Fall_Nov_2010 | November 2010]]
 
 
 
==Grace Links to read==
 
*[http://tasktop.com/resources/  Tasktop Mylyn]
 
* [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-831-user-interface-design-and-implementation-fall-2004 MIT user interface design]
 
* [http://tasktop.com/videos/mylyn/webcast-mylyn-3.0.html Mylyn Video]
 

Latest revision as of 12:05, 23 March 2012

Projects

CDOT - NEXJ

Links:

NexJ Express wiki page
NexJ on CodeBeamer , Nexj on Hudson
NexJ Repoitory on Liberia
List of resources that were used for these projects.

List of NexJ Tasks:

  • 1- Repositories' Syncing Project
- Duration: Oct 2010
- Project Description: NexJ had a Mercurial Repository (Internal) in which, the NexJ Express Server (Core) code was maintained with all its histories. NexJ was planning to share a Core Repository with the Open Source Community by creating a Repository (External) that would be kept in sync with the Internal Repository. A bash script was written to build and test new changes to the Internal Repository and push them to the External, if successful. To make this script run automatically on a regular basis, an automated building system which in general is called 'Continuous Integration System' was used. Hudson was the CI system that we used for NexJ due to its Java based nature.
- Project Page on Wiki
- Resources Page on Wiki
- My Blogs: [1]
  • 2- PostgreSQL Adapter
- Duration: Nov 2010 - Dec 2010
- Project Description: Database adapters are a set of classes that create an interface to let JDBC communicate with the database. An adapter makes JDBC with one specific SQL definitions, adapts to different implementation of SQL. PostgreSQL adapter makes NexJ Express server communicates with databases in PostgreSQL platform which is an 'open source' database.
- Project Page on Wiki
- Resources Page on Wiki
- My Blogs: [2]