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)