[JBoss JIRA] (FORGE-1030) Support multi-module Forge plugins
by Vineet Reynolds (JIRA)
[ https://issues.jboss.org/browse/FORGE-1030?page=com.atlassian.jira.plugin... ]
Vineet Reynolds commented on FORGE-1030:
----------------------------------------
I've just taken a look at [George's branch|https://github.com/gastaldi/core/tree/FORGE-1030], rebased it on the current master, and tried to reproduce the dep resolution issue. The entire log is available as a [gist|https://gist.github.com/VineetReynolds/6433810]. I did not run into any problems, except for some unresolved dependency warnings (these do not affect the `mvn clean package' command triggered as part of the build. We could disable the display of these warnings in this case, given that the deps will eventually be resolved during the multi-module project build.
The overall behavior looks fine, except for the tests that George is suggesting to add.
> Support multi-module Forge plugins
> ----------------------------------
>
> Key: FORGE-1030
> URL: https://issues.jboss.org/browse/FORGE-1030
> Project: Forge
> Issue Type: Bug
> Components: Documentation, Plugin API, Plugin Repository
> Affects Versions: 1.3.3.Final, 1.4.0.Final
> Reporter: Lennart Jörelid
> Assignee: George Gastaldi
> Priority: Blocker
> Fix For: 1.x Future
>
> Attachments: forge_1030_codeAnalysis.png
>
>
> It seems that Forge really needs better support for the default Maven
> development process. In repository.yaml, Forge plugins are defined by giving
> a Maven project GAV for the project holding the forge plugin definitions, as well as the GitHub repository holding the plugin source.
> Yet, Forge seems to ignore the Maven GAV information given in repository.yaml when checking out and building the plugin locally.
> This is a rather nasty bug, which in its current state effectively prevents anyone from using a multi-module build for their plugins (and it is also undocumented).
> An example is shown below:
> {code}
> [no project] Nazgul $ forge install-plugin nazgul
> ***INFO*** Preparing to install plugin: nazgul
> ***INFO*** Checking out plugin source files to [/var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570] via 'git'
> ***INFO*** Switching to branch/tag [refs/heads/1.3.3.Final]
> ? The project does not appear to be a Forge Plugin Project, install anyway? [y/N]
> {code}
> While this analysis by Forge is incorrect (the Maven GAV given in the repository.yaml is indeed a project which holds plugins), it gets worse after installation:
> {code}
> [INFO] ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO]
> [INFO] nazgul-forge-parent ............................... SUCCESS [7.921s]
> [INFO] nazgul-forge-api-parent ........................... SUCCESS [4.345s]
> [INFO] nazgul-forge-model-parent ......................... SUCCESS [1.274s]
> [INFO] nazgul-forge-reactor .............................. SUCCESS [0.847s]
> [INFO] nazgul-forge-poms-reactor ......................... SUCCESS [0.058s]
> [INFO] nazgul-forge-analyzer-api ......................... SUCCESS [5.562s]
> [INFO] nazgul-forge-analyzer-impl-nazgul ................. SUCCESS [1.666s]
> [INFO] nazgul-forge-analyzer-reactor ..................... SUCCESS [0.020s]
> [INFO] nazgul-forge-factory-model ........................ SUCCESS [2.434s]
> [INFO] nazgul-forge-factory-api .......................... SUCCESS [7.634s]
> [INFO] nazgul-forge-factory-impl-nazgul .................. SUCCESS [2.724s]
> [INFO] nazgul-forge-factory-reactor ...................... SUCCESS [0.032s]
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 36.580s
> [INFO] Finished at: Mon Jul 22 07:46:48 CEST 2013
> [INFO] Final Memory: 49M/247M
> [INFO] ------------------------------------------------------------------------
> ***INFO*** Cleaning up temp workspace [/var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570]
> Deleted /var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570
> ***ERROR*** Exception encountered: Build artifact [nazgul-forge-reactor-1.0.1-SNAPSHOT.pom] is missing and cannot be installed. Please resolve build errors and try again. (type "set VERBOSE true" to enable stack traces)
> {code}
> So ...
> # The repository.yaml includes a full Maven GAV to the project which holds Forge plugins.
> # Forge uses repository.yaml to download the source from GitHub and build it
> # Forge ignores the Maven GAV given in repository.yaml, and simply uses the root reactor project to inspect and attempt to install the plugins.
> To fix this bug, Forge needs to find the project given within the repository.yaml within the downloaded reactor and install the plugins from *that* project.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 8 months
[JBoss JIRA] (FORGE-1006) Provide a command to generate equals and hashcode implementations considering all suitable fields in the JPA entity
by Vineet Reynolds (JIRA)
[ https://issues.jboss.org/browse/FORGE-1006?page=com.atlassian.jira.plugin... ]
Vineet Reynolds updated FORGE-1006:
-----------------------------------
Summary: Provide a command to generate equals and hashcode implementations considering all suitable fields in the JPA entity (was: The entity plugin should generate equals and hashcode implementations considering all suitable fields in the JPA entity)
Issue Type: Feature Request (was: Enhancement)
> Provide a command to generate equals and hashcode implementations considering all suitable fields in the JPA entity
> -------------------------------------------------------------------------------------------------------------------
>
> Key: FORGE-1006
> URL: https://issues.jboss.org/browse/FORGE-1006
> Project: Forge
> Issue Type: Feature Request
> Components: Builtin Plugins
> Affects Versions: 1.3.3.Final
> Reporter: Vineet Reynolds
> Assignee: Vineet Reynolds
> Fix For: 1.4.1.Final
>
>
> As a result of FORGE-995 and FORGE-1005 the generated {{equals}} and {{hashcode}} implementations for JPA entities would be typically incorrect due to reliance on the auto-generated primary key value.
> Additionally, since the {{equals}} and {{hashCode}} methods are generated only once during creation of the JPA entity class, these methods would be out of date as more fields are added (unlike the {{toString}} method). We should enhance or regenerate the existing methods as new fields are added via the field plugin.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 8 months
[JBoss JIRA] (FORGE-1006) Provide a command to generate equals and hashcode implementations considering all suitable fields in the JPA entity
by Vineet Reynolds (JIRA)
[ https://issues.jboss.org/browse/FORGE-1006?page=com.atlassian.jira.plugin... ]
Vineet Reynolds closed FORGE-1006.
----------------------------------
Resolution: Done
> Provide a command to generate equals and hashcode implementations considering all suitable fields in the JPA entity
> -------------------------------------------------------------------------------------------------------------------
>
> Key: FORGE-1006
> URL: https://issues.jboss.org/browse/FORGE-1006
> Project: Forge
> Issue Type: Feature Request
> Components: Builtin Plugins
> Affects Versions: 1.3.3.Final
> Reporter: Vineet Reynolds
> Assignee: Vineet Reynolds
> Fix For: 1.4.1.Final
>
>
> As a result of FORGE-995 and FORGE-1005 the generated {{equals}} and {{hashcode}} implementations for JPA entities would be typically incorrect due to reliance on the auto-generated primary key value.
> Additionally, since the {{equals}} and {{hashCode}} methods are generated only once during creation of the JPA entity class, these methods would be out of date as more fields are added (unlike the {{toString}} method). We should enhance or regenerate the existing methods as new fields are added via the field plugin.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 8 months
[JBoss JIRA] (FORGE-1006) The entity plugin should generate equals and hashcode implementations considering all suitable fields in the JPA entity
by Vineet Reynolds (JIRA)
[ https://issues.jboss.org/browse/FORGE-1006?page=com.atlassian.jira.plugin... ]
Vineet Reynolds reopened FORGE-1006:
------------------------------------
Reopening to change this to a feature request.
> The entity plugin should generate equals and hashcode implementations considering all suitable fields in the JPA entity
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: FORGE-1006
> URL: https://issues.jboss.org/browse/FORGE-1006
> Project: Forge
> Issue Type: Enhancement
> Components: Builtin Plugins
> Affects Versions: 1.3.3.Final
> Reporter: Vineet Reynolds
> Assignee: Vineet Reynolds
> Fix For: 1.4.1.Final
>
>
> As a result of FORGE-995 and FORGE-1005 the generated {{equals}} and {{hashcode}} implementations for JPA entities would be typically incorrect due to reliance on the auto-generated primary key value.
> Additionally, since the {{equals}} and {{hashCode}} methods are generated only once during creation of the JPA entity class, these methods would be out of date as more fields are added (unlike the {{toString}} method). We should enhance or regenerate the existing methods as new fields are added via the field plugin.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 8 months
[JBoss JIRA] (FORGE-1006) The entity plugin should generate equals and hashcode implementations considering all suitable fields in the JPA entity
by Vineet Reynolds (JIRA)
[ https://issues.jboss.org/browse/FORGE-1006?page=com.atlassian.jira.plugin... ]
Vineet Reynolds commented on FORGE-1006:
----------------------------------------
A new plugin {{update-entity}} is now available, with a {{hashcode-and-equals}} command that allows users to generate {{equals()}} and {{hashCode()}} implementations based on user-chosen fields.
> The entity plugin should generate equals and hashcode implementations considering all suitable fields in the JPA entity
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: FORGE-1006
> URL: https://issues.jboss.org/browse/FORGE-1006
> Project: Forge
> Issue Type: Enhancement
> Components: Builtin Plugins
> Affects Versions: 1.3.3.Final
> Reporter: Vineet Reynolds
> Assignee: Vineet Reynolds
> Fix For: 1.4.1.Final
>
>
> As a result of FORGE-995 and FORGE-1005 the generated {{equals}} and {{hashcode}} implementations for JPA entities would be typically incorrect due to reliance on the auto-generated primary key value.
> Additionally, since the {{equals}} and {{hashCode}} methods are generated only once during creation of the JPA entity class, these methods would be out of date as more fields are added (unlike the {{toString}} method). We should enhance or regenerate the existing methods as new fields are added via the field plugin.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 8 months
[JBoss JIRA] (FORGE-1030) Support multi-module Forge plugins
by Lincoln Baxter III (JIRA)
[ https://issues.jboss.org/browse/FORGE-1030?page=com.atlassian.jira.plugin... ]
Lincoln Baxter III updated FORGE-1030:
--------------------------------------
Affects Version/s: 1.4.0.Final
> Support multi-module Forge plugins
> ----------------------------------
>
> Key: FORGE-1030
> URL: https://issues.jboss.org/browse/FORGE-1030
> Project: Forge
> Issue Type: Bug
> Components: Documentation, Plugin API, Plugin Repository
> Affects Versions: 1.3.3.Final, 1.4.0.Final
> Reporter: Lennart Jörelid
> Assignee: George Gastaldi
> Priority: Blocker
> Fix For: 1.x Future
>
> Attachments: forge_1030_codeAnalysis.png
>
>
> It seems that Forge really needs better support for the default Maven
> development process. In repository.yaml, Forge plugins are defined by giving
> a Maven project GAV for the project holding the forge plugin definitions, as well as the GitHub repository holding the plugin source.
> Yet, Forge seems to ignore the Maven GAV information given in repository.yaml when checking out and building the plugin locally.
> This is a rather nasty bug, which in its current state effectively prevents anyone from using a multi-module build for their plugins (and it is also undocumented).
> An example is shown below:
> {code}
> [no project] Nazgul $ forge install-plugin nazgul
> ***INFO*** Preparing to install plugin: nazgul
> ***INFO*** Checking out plugin source files to [/var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570] via 'git'
> ***INFO*** Switching to branch/tag [refs/heads/1.3.3.Final]
> ? The project does not appear to be a Forge Plugin Project, install anyway? [y/N]
> {code}
> While this analysis by Forge is incorrect (the Maven GAV given in the repository.yaml is indeed a project which holds plugins), it gets worse after installation:
> {code}
> [INFO] ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO]
> [INFO] nazgul-forge-parent ............................... SUCCESS [7.921s]
> [INFO] nazgul-forge-api-parent ........................... SUCCESS [4.345s]
> [INFO] nazgul-forge-model-parent ......................... SUCCESS [1.274s]
> [INFO] nazgul-forge-reactor .............................. SUCCESS [0.847s]
> [INFO] nazgul-forge-poms-reactor ......................... SUCCESS [0.058s]
> [INFO] nazgul-forge-analyzer-api ......................... SUCCESS [5.562s]
> [INFO] nazgul-forge-analyzer-impl-nazgul ................. SUCCESS [1.666s]
> [INFO] nazgul-forge-analyzer-reactor ..................... SUCCESS [0.020s]
> [INFO] nazgul-forge-factory-model ........................ SUCCESS [2.434s]
> [INFO] nazgul-forge-factory-api .......................... SUCCESS [7.634s]
> [INFO] nazgul-forge-factory-impl-nazgul .................. SUCCESS [2.724s]
> [INFO] nazgul-forge-factory-reactor ...................... SUCCESS [0.032s]
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 36.580s
> [INFO] Finished at: Mon Jul 22 07:46:48 CEST 2013
> [INFO] Final Memory: 49M/247M
> [INFO] ------------------------------------------------------------------------
> ***INFO*** Cleaning up temp workspace [/var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570]
> Deleted /var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570
> ***ERROR*** Exception encountered: Build artifact [nazgul-forge-reactor-1.0.1-SNAPSHOT.pom] is missing and cannot be installed. Please resolve build errors and try again. (type "set VERBOSE true" to enable stack traces)
> {code}
> So ...
> # The repository.yaml includes a full Maven GAV to the project which holds Forge plugins.
> # Forge uses repository.yaml to download the source from GitHub and build it
> # Forge ignores the Maven GAV given in repository.yaml, and simply uses the root reactor project to inspect and attempt to install the plugins.
> To fix this bug, Forge needs to find the project given within the repository.yaml within the downloaded reactor and install the plugins from *that* project.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 8 months