You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2014/11/14 12:14:33 UTC

[jira] [Commented] (CAY-1946) CDbimport improvements

    [ https://issues.apache.org/jira/browse/CAY-1946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14212133#comment-14212133 ] 

ASF GitHub Bot commented on CAY-1946:
-------------------------------------

GitHub user AlexKolonitsky opened a pull request:

    https://github.com/apache/cayenne/pull/31

    CAY-1946 

    Fix cdb import in modeler

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/AlexKolonitsky/cayenne CAY-1946

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cayenne/pull/31.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #31
    
----
commit 90de78de01b25c2d62bfe7e431e10aa12cb07d15
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-08-18T11:18:54Z

    CAY-1942 Refactoring of NamedObjectFactory and NamingStrategy
    
    * Change enums first letter to lower case
    * Rename SmartNameGenerator to DefaultNameGenerator; BasicNameGenerator to LegacyNamegenerator,

commit 1454f65c71bd011f93ac7db0d4cddd5e863556e9
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-08-18T13:45:06Z

    1) add idea project files to git ignore
    2) fix build/documentation generation

commit a71e2aeff164e9fcecc99668483fe33f04a2210b
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-08-29T07:34:30Z

    Merge remote-tracking branch 'upstream/master'

commit 5438bce8bee873a92c9c33be52db6e313c36c72b
Author: Alex Kolonitsky <al...@alexs-imac.local>
Date:   2014-09-07T14:24:03Z

    Merge remote-tracking branch 'upstream/master'

commit f657579b4c7fb2065f9e6cc61ee681d6aa595b74
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-09-24T13:43:38Z

    Merge remote-tracking branch 'upstream/master'

commit 5eff639ca7736dd8e861d33d43b7195637a8d560
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-10-08T08:16:57Z

    Merge remote-tracking branch 'upstream/master'

commit 31d59e0c4aa8af61935413984a452f1788105187
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-10-09T17:04:47Z

    add maven reporting plugins
    
    checkstyle, pmd, findbugs
    clirr - report about broken backward compatibility api

commit 1a722e5a5af61ac63b5cd7ed6b77d986a7a51a02
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-10-21T08:05:18Z

    Merge remote-tracking branch 'upstream/master'

commit b14e9d82a854d37f8fee03a662735e2e4c9365f3
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-10-27T12:51:11Z

    Merge remote-tracking branch 'upstream/master'

commit b1c24d820f10e01bb51bd603f76aba16eed0c5f1
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-11-14T10:39:38Z

    Merge remote-tracking branch 'upstream/CAY-1946' into CAY-1946

commit ff7f3df8da2fc20fbdc989adf4605f6553aaf8b9
Author: alexkolonitsky <al...@gmail.com>
Date:   2014-11-14T10:51:02Z

    fix cdb import

----


> CDbimport improvements
> ----------------------
>
>                 Key: CAY-1946
>                 URL: https://issues.apache.org/jira/browse/CAY-1946
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Non-GUI Tools
>            Reporter: Alex Kolonitsky
>
> We’ve experimented with automated db-first approach to Cayenne modeling for more than a year on a set of client projects. Roughly this approach means that DB evolution is managed via external tools (e.g. liquibase) and Cayenne artifacts are managed using the following POM configuration:
> <plugin>
> 	<groupId>org.apache.cayenne.plugins</groupId>
> 	<artifactId>maven-cayenne-plugin</artifactId>
> 	<configuration>
> 		...
> 	</configuration>
> 	<executions>
> 		<execution>
> 			<id>default-cli</id>
> 			<goals>
> 				<goal>cdbimport</goal>
> 				<goal>cgen</goal>
> 			</goals>
> 		</execution>
> 	</executions>
> </plugin>
> “cdbimport” ensures that Cayenne model is always in sync with DB, “cgen” - that Java classes are in sync with the model. There are zero problems with “cgen", not so with “cdbimport". If you control the schema, you get a decently named Java classes/properties in 95% of the cases. Here we are trying to address the remaining 5% that make things ugly:
> * Inability to generate meaningful relationship names in many cases.
> * Inability to customize attribute/relationship names and data types.
> To solve this here we are proposing a merge algorithm that would preserve customizations to the Obj* layer made by the user. And in addition to that a special descriptor that can be used for more advanced filtering and customization of cdbimport process. Both of these improvements will hopefully result in “cdbimport” becoming a tool of choice for Cayenne work for many users.
> https://docs.google.com/document/d/1DF5-_mMDCuH7iUFhEFDm2q-ebVeSPgvOaymho88ywJ0/edit?pli=1



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)