Review Board 1.7.22


Fix for SQOOP-937

Review Request #9909 - Created March 13, 2013 and updated

Venkat Ranganathan
Reviewers
Sqoop
jarcec
sqoop-trunk
SQOOP generates an ORM file that represents a record in a table for a
given connector implememntation.  The generated class has methods to
read field values off ResultSet, set bind values in PreparedStatements,
handle LOB objects in a DB specific way (that the connector represents),
parse input fields etc.

This file is then compiled and archived using jar and used with the SQOOP job.

This ORM instance is generated in all cases, and used to make sure that
the data is read and processed in a more or less uniform way.

Unfortunately, this generated class is not used by a class of connectors which
manage the reading and processing of records themselves.   In essence, the
whole ORM class is unusable in these instances and is simply ignored.  These
are typically "direct" connectors which use a DB specific highspeed path.

The generation of the ORM class in these cases causes confusion to users.

This patch tries to solve this by

  1)  Providing a capability for the connection managers to declare that
they don't depend on the ORM jar file.
  2) Generating a dummy ORM jar file with explicit message during generation
so that
     a)  users are aware that the class generated is a dummy one
     b)  there is a record that this jar file was generated explicitly
     c)  we don't have to change a whole lot of the codebase to disable
         the generaration and loading of the jar file.


This patch also adds one test.
Added one tests.  All unit tests and check style tests passed with no new checkstyle issues
Review request changed
Updated (March 19, 2013, 9:25 p.m.)
Removed the generation of the ORM files completely for the cases mentioned.   Right now DirectNetezzaManager is the only exercising it as a sample.   Once this is goes in, we can update all the similar managers to avoid the generation of unnecessary ORM files.   The earlier approach of generating a dummy file had its merits in some cases, but this one elmininates the generation completely.

Ran all tests, Netezza direct mode tests to validate the functionality and added unit tests for new functionalty
Ship it!
Posted (March 20, 2013, 9:30 p.m.)
Ship It!