cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrus Adamchik (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CAY-2116) Split schema synchronization code in a separate module
Date Thu, 29 Sep 2016 17:32:21 GMT

     [ 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)

Mime
View raw message