You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (JIRA)" <ji...@apache.org> on 2016/09/29 17:32:21 UTC
[jira] [Updated] (CAY-2116) Split schema synchronization code in a
separate module
[ https://issues.apache.org/jira/browse/CAY-2116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrus Adamchik updated CAY-2116:
---------------------------------
Description:
There are no real reasons why classes like DbLoader , merge package, and DbGenerator are a part of Cayenne core. There is a technical reason - these classes depend on customizations coming from DbAdapter.
We need to split them to a separate module (cayenne-dbsync), preserving all adapter customizations (specifically for MergerFactory). I was able to do that by implementing a special explicit "PerAdapterProvider" class that uses adapter class name as a key to DI-bound map of factory implementations.
As a result we'll have cleaner separation of concerns and can focus on "cayenne-dbsync" for DB reverse and forward engineering tasks instead of trying to find relevant classes and tests all over the place.
THIS IS A BREAKING CHANGE
Many classes are moved from cayenne-server, and placed in a different package namespace (org.apache.cayenne.dbsync and subpackages).
was:
There are no real reasons why classes like DbLoader , merge package, and DbGenerator are a part of Cayenne core. There is a technical reason - these classes depend on customizations coming from DbAdapter.
We need to split them to a separate module (cayenne-dbsync), preserving all adapter customizations (specifically for MergerFactory). I was able to do that by implementing a special explicit "PerAdapterProvider" class that uses adapter class name as a key to DI-bound map of factory implementations.
THIS IS A BREAKING CHANGE
Many classes are moved from cayenne-server, and placed in a different package namespace (org.apache.cayenne.dbsync and subpackages).
> Split schema synchronization code in a separate module
> -------------------------------------------------------
>
> Key: CAY-2116
> URL: https://issues.apache.org/jira/browse/CAY-2116
> Project: Cayenne
> Issue Type: Task
> Reporter: Andrus Adamchik
> Assignee: Andrus Adamchik
>
> There are no real reasons why classes like DbLoader , merge package, and DbGenerator are a part of Cayenne core. There is a technical reason - these classes depend on customizations coming from DbAdapter.
> We need to split them to a separate module (cayenne-dbsync), preserving all adapter customizations (specifically for MergerFactory). I was able to do that by implementing a special explicit "PerAdapterProvider" class that uses adapter class name as a key to DI-bound map of factory implementations.
> As a result we'll have cleaner separation of concerns and can focus on "cayenne-dbsync" for DB reverse and forward engineering tasks instead of trying to find relevant classes and tests all over the place.
> THIS IS A BREAKING CHANGE
> Many classes are moved from cayenne-server, and placed in a different package namespace (org.apache.cayenne.dbsync and subpackages).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)