[
https://issues.apache.org/jira/browse/MAPREDUCE-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12729907#action_12729907
]
Aaron Kimball commented on MAPREDUCE-750:
-----------------------------------------
This patch creates this public API. The {{sqoop.conn.factories}} parameter has
been added to mapred-default.xml. This parameter defaults to the
{{DefaultManagerFactory}} implementation supplied in Sqoop, which contains much
of the logic previously in {{ConnManager}}.
The names of additional classes implementing {{ManagerFactory}} may be added to
the config parameter. The ConnFactory implementation will instantiate all such
{{ManagerFactory}} implementations. When {{ConnFactory.getManager()}} is
called, it will consult the {{accept()}} all {{ManagerFactory}} implementations
in order, returning the first non-null value returned by an {{accept()}} method
(similar to the delegation mechanism used by the Serializations framework).
> Extensible ConnManager factory API
> ----------------------------------
>
> Key: MAPREDUCE-750
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-750
> Project: Hadoop Map/Reduce
> Issue Type: Improvement
> Components: contrib/sqoop
> Reporter: Aaron Kimball
> Assignee: Aaron Kimball
> Attachments: MAPREDUCE-750.patch
>
>
> Sqoop uses the ConnFactory class to instantiate a ConnManager implementation
> based on the connect string and other arguments supplied by the user. This
> allows per-database logic to be encapsulated in different ConnManager
> instances, and dynamically chosen based on which database the user is
> actually importing from. But adding new ConnManager implementations requires
> modifying the source of a common ConnFactory class. An indirection layer
> should be used to delegate instantiation to a number of factory
> implementations which can be specified in the static configuration or at
> runtime.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.