[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463231#comment-15463231
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 5:32 PM:
-

In playing with the paths toolchain, I see how I can specify a location for my 
shell scripts with it (this eliminates one of about a dozen variables I need 
for my system-test).  However, I cannot figure out how to reference a variable 
defined in a toolset to pass as an argument to my executable.  I tried the 
normal ${xxx} but that doesn't work.  Without this, it seems that the only 
option is a custom toolchain *and* a custom plugin to process it (e.g., a 
plugin that reads the toolchain and adds properties to the build so that they 
can referenced in the pom).  While I am not afraid of writing plugins, I am 
concerned that I am missing something obvious.

For example, how do I make this work when the xxxv1-home is defined in the 
toolchain?

  

  
org.codehaus.mojo
exec-maven-plugin
1.5.0
true

  

  jcs-las-system-test

  


  
validate

  exec


  echoMessage.cmd
  
${xxxv1-home}
  

  

  

  





was (Author: rhpatrick00):
In playing with the paths toolchain, I see how I can specify a location for my 
shell scripts with it (this eliminates one of about a dozen variables I need 
for my system-test.  However, I cannot figure out how to reference a variable 
defined in a toolset to pass as an argument to my executable.  I tried the 
normal ${xxx} but that doesn't work.  Without this, it seems that the only 
option is a custom toolchain *and* a custom plugin to process it (e.g., a 
plugin that reads the toolchain and adds properties to the build so that they 
can referenced in the pom).  While I am not afraid of writing plugins, I am 
concerned that I am missing something obvious.

For example, how do I make this work when the xxxv1-home is defined in the 
toolchain?

  

  
org.codehaus.mojo
exec-maven-plugin
1.5.0
true

  

  jcs-las-system-test

  


  
validate

  exec


  echoMessage.cmd
  
${xxxv1-home}
  

  

  

  




> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463231#comment-15463231
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 5:31 PM:
-

In playing with the paths toolchain, I see how I can specify a location for my 
shell scripts with it (this eliminates one of about a dozen variables I need 
for my system-test.  However, I cannot figure out how to reference a variable 
defined in a toolset to pass as an argument to my executable.  I tried the 
normal ${xxx} but that doesn't work.  Without this, it seems that the only 
option is a custom toolchain *and* a custom plugin to process it (e.g., a 
plugin that reads the toolchain and adds properties to the build so that they 
can referenced in the pom).  While I am not afraid of writing plugins, I am 
concerned that I am missing something obvious.

For example, how do I make this work when the xxxv1-home is defined in the 
toolchain?

  

  
org.codehaus.mojo
exec-maven-plugin
1.5.0
true

  

  jcs-las-system-test

  


  
validate

  exec


  echoMessage.cmd
  
${xxxv1-home}
  

  

  

  





was (Author: rhpatrick00):
In playing with the paths toolchain, I see how I can specify a location for my 
shell scripts with it (this eliminates one of about a dozen variables I need 
for my system-test.  However, I cannot figure out how to reference a variable 
defined in a toolset to pass as an argument to my executable.  I tried the 
normal ${xxx} but that doesn't work.  Without this, it seems that the only 
option is a custom toolchain *and* a custom plugin to process it (e.g., a 
plugin that reads the toolchain and adds properties to the build so that they 
can referenced in the pom).  While I am not afraid of writing plugins, I am 
concerned that I am missing something obvious.

For example, how do I make this work when the xxxv1-home is defined in the 
toolchain?

(quote)
  

  
org.codehaus.mojo
exec-maven-plugin
1.5.0
true

  

  jcs-las-system-test

  


  
validate

  exec


  echoMessage.cmd
  
${xxxv1-home}
  

  

  

  
(quote)



> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463231#comment-15463231
 ] 

Robert Patrick commented on MNG-6083:
-

In playing with the paths toolchain, I see how I can specify a location for my 
shell scripts with it (this eliminates one of about a dozen variables I need 
for my system-test.  However, I cannot figure out how to reference a variable 
defined in a toolset to pass as an argument to my executable.  I tried the 
normal ${xxx} but that doesn't work.  Without this, it seems that the only 
option is a custom toolchain *and* a custom plugin to process it (e.g., a 
plugin that reads the toolchain and adds properties to the build so that they 
can referenced in the pom).  While I am not afraid of writing plugins, I am 
concerned that I am missing something obvious.

For example, how do I make this work when the xxxv1-home is defined in the 
toolchain?

(quote)
  

  
org.codehaus.mojo
exec-maven-plugin
1.5.0
true

  

  jcs-las-system-test

  


  
validate

  exec


  echoMessage.cmd
  
${xxxv1-home}
  

  

  

  
(quote)



> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Commented] (MNG-5878) add support for module name != artifactId in every calculated URLs (project, SCM, site): special project.directory property

2016-09-04 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463126#comment-15463126
 ] 

Hudson commented on MNG-5878:
-

FAILURE: Integrated in Jenkins build maven-3.x #1368 (See 
[https://builds.apache.org/job/maven-3.x/1368/])
MNG-5878 improved explanations (hboutemy: rev 
7846f081a696baa6c88b0420b684829fb97e1d4d)
* (edit) maven-model-builder/src/site/apt/index.apt


> add support for module name != artifactId in every calculated URLs (project, 
> SCM, site): special project.directory property
> ---
>
> Key: MNG-5878
> URL: https://issues.apache.org/jira/browse/MNG-5878
> Project: Maven
>  Issue Type: New Feature
>  Components: Inheritance and Interpolation
>Affects Versions: 3.3.3
>Reporter: Michael Osipov
>Assignee: Hervé Boutemy
> Fix For: 3.4.0
>
>
> Say you have this project structure:
> {noformat}
> /
>   |-- module1
>   |-- module2
> {noformat}
> and artifactIds are named:
> {noformat}
> my-parent
>   |-- my-module1
>   |-- my-module2
> {noformat}
> Prefix {{my-}} is omitted for brevity in module names. For instance, Jersey 
> does that.
> When the SCM report is built, the artifactId is always used for path 
> composition which leads to incorrect URLs. You can of course set the 
> parameter {{checkoutDirectoryName}} but this would be extremely tedious for 
> all modules down the tree.
> The code should obtain the module name and use it for URL composition.



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


[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463097#comment-15463097
 ] 

Robert Patrick commented on MNG-6083:
-

I understood how to set up the toolchain plugin and configure the exec plugin 
to use it.  

The issue with this page is that the details of what I need are omitted and 
replaced with "..." in the exec plugin declaration.  How do I reference a tool 
path defined in the toolchain.xml in a exec plugin execution?  For example, how 
do I fill in the  element used in the argument 
to the shell script that the exec plugin execution calls?



> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463087#comment-15463087
 ] 

Karl Heinz Marbaise commented on MNG-6083:
--

Just a short reply to exec-maven-plugin: You should check: 
http://www.mojohaus.org/exec-maven-plugin/examples/example-exec-using-toolchains.html
 ...

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463053#comment-15463053
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 3:13 PM:
-

>From my quick scan of the toolchains documentation, it will not help us.  It 
>seems that the definitions in toolchain.xml are really only exposed to plugins 
>that leverage them.  In our case, I need to invoke an external process (via 
>shell script) and pass it arguments to these environment-specific locations.  
>I don't see any documentation on how I can reference values defined in 
>toolchain.xml at any point in my POM.  For example, here is a greatly 
>simplified example of a Maven exec plugin execution from the POM that doe the 
>pre-integration-test setup for each test execution:

plugin
groupIdorg.codehaus.mojo/groupId
artifactIdexec-maven-plugin/artifactId
executions
execution
idsetup-environments-for-tests/id
phasepre-integration-test/phase
goals
goalexec/goal
/goals
configuration
executable${bash-executable}/executable
arguments
shell-script${system-test-bin}/setupTestEnvironment.sh/shell-script
path_to_commercial_software_v1${software.location.v1}/path_to_commercial_software_v1
path_to_commercial_software_v2${software.location.v2}/path_to_commercial_software_v2
path_to_commercial_software_v3${software.location.v3}/path_to_commercial_software_v3
path_to_jdk7${path-to-java7}/path_to_jdk7
path_to_jdk8${path-to-java8}/path_to_jdk8
script_to_call_value${script-to-call}/script_to_call_value
/arguments
/configuration
/execution
...
/executions
/plugin

How would I reference those tools locations when they are defined in 
toolchain.xml?  I didn't see anything in the docs that covered such a use 
case...


was (Author: rhpatrick00):
>From my quick scan of the toolchains documentation, it will not help us.  It 
>seems that the definitions in toolchain.xml are really only exposed to plugins 
>that leverage them.  In our case, I need to invoke an external process (via 
>shell script) and pass it arguments to these environment-specific locations.  
>I don't see any documentation on how I can reference values defined in 
>toolchain.xml at any point in my POM.  For example, here is a greatly 
>simplified example of a Maven exec plugin execution from the POM that doe the 
>pre-integration-test setup for each test execution:


plugin
  groupIdorg.codehaus.mojo/groupId
  artifactIdexec-maven-plugin/artifactId
  executions
execution
  idsetup-environments-for-tests/id
  phasepre-integration-test/phase
  goals
goalexec/goal
  /goals
  configuration
executable${bash-executable}/executable
arguments
  
shell-script${system-test-bin}/setupTestEnvironment.sh/shell-script
  
path_to_commercial_software_v1${software.location.v1}/path_to_commercial_software_v1
  
path_to_commercial_software_v2${software.location.v2}/path_to_commercial_software_v2
  
path_to_commercial_software_v3${software.location.v3}/path_to_commercial_software_v3
  path_to_jdk7${path-to-java7}/path_to_jdk7
  path_to_jdk8${path-to-java8}/path_to_jdk8
  
script_to_call_value${script-to-call}/script_to_call_value
/arguments
  /configuration
/execution
...
  /executions
/plugin

How would I reference those tools locations when they are defined in 
toolchain.xml?  I didn't see anything in the docs that covered such a use 
case...

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Updated] (MNG-5878) add support for module name != artifactId in every calculated URLs (project, SCM, site): special project.directory property

2016-09-04 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/MNG-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hervé Boutemy updated MNG-5878:
---
Summary: add support for module name != artifactId in every calculated URLs 
(project, SCM, site): special project.directory property  (was: add support for 
module name != artifactId in every calculated URLs (SCM, site): special 
project.directory property)

> add support for module name != artifactId in every calculated URLs (project, 
> SCM, site): special project.directory property
> ---
>
> Key: MNG-5878
> URL: https://issues.apache.org/jira/browse/MNG-5878
> Project: Maven
>  Issue Type: New Feature
>  Components: Inheritance and Interpolation
>Affects Versions: 3.3.3
>Reporter: Michael Osipov
>Assignee: Hervé Boutemy
> Fix For: 3.4.0
>
>
> Say you have this project structure:
> {noformat}
> /
>   |-- module1
>   |-- module2
> {noformat}
> and artifactIds are named:
> {noformat}
> my-parent
>   |-- my-module1
>   |-- my-module2
> {noformat}
> Prefix {{my-}} is omitted for brevity in module names. For instance, Jersey 
> does that.
> When the SCM report is built, the artifactId is always used for path 
> composition which leads to incorrect URLs. You can of course set the 
> parameter {{checkoutDirectoryName}} but this would be extremely tedious for 
> all modules down the tree.
> The code should obtain the module name and use it for URL composition.



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


[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463053#comment-15463053
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 3:08 PM:
-

>From my quick scan of the toolchains documentation, it will not help us.  It 
>seems that the definitions in toolchain.xml are really only exposed to plugins 
>that leverage them.  In our case, I need to invoke an external process (via 
>shell script) and pass it arguments to these environment-specific locations.  
>I don't see any documentation on how I can reference values defined in 
>toolchain.xml at any point in my POM.  For example, here is a greatly 
>simplified example of a Maven exec plugin execution from the POM that doe the 
>pre-integration-test setup for each test execution:


plugin
  groupIdorg.codehaus.mojo/groupId
  artifactIdexec-maven-plugin/artifactId
  executions
execution
  idsetup-environments-for-tests/id
  phasepre-integration-test/phase
  goals
goalexec/goal
  /goals
  configuration
executable${bash-executable}/executable
arguments
  
shell-script${system-test-bin}/setupTestEnvironment.sh/shell-script
  
path_to_commercial_software_v1${software.location.v1}/path_to_commercial_software_v1
  
path_to_commercial_software_v2${software.location.v2}/path_to_commercial_software_v2
  
path_to_commercial_software_v3${software.location.v3}/path_to_commercial_software_v3
  path_to_jdk7${path-to-java7}/path_to_jdk7
  path_to_jdk8${path-to-java8}/path_to_jdk8
  
script_to_call_value${script-to-call}/script_to_call_value
/arguments
  /configuration
/execution
...
  /executions
/plugin

How would I reference those tools locations when they are defined in 
toolchain.xml?  I didn't see anything in the docs that covered such a use 
case...


was (Author: rhpatrick00):
>From my quick scan of the toolchains documentation, it will not help us.  It 
>seems that the definitions in toolchain.xml are really only exposed to plugins 
>that leverage them.  In our case, I need to invoke an external process (via 
>shell script) and pass it arguments to these environment-specific locations.  
>I don't see any documentation on how I can reference values defined in 
>toolchain.xml at any point in my POM.  For example, here is a greatly 
>simplified example of a Maven exec plugin execution from the POM that doe the 
>pre-integration-test setup for each test execution:


plugin
  groupIdorg.codehaus.mojo/groupId
  artifactIdexec-maven-plugin/artifactId
  executions
execution
  idsetup-environments-for-tests/id
  phasepre-integration-test/phase
  goals
goalexec/goal
  /goals
  configuration
executable${bash-executable}/executable
arguments
  
shell-script${system-test-bin}/setupTestEnvironment.sh/shell-script
  
path_to_commercial_software_v1${software.location.v1}/path_to_commercial_software_v1
  
path_to_commercial_software_v2${software.location.v2}/path_to_commercial_software_v2
  
path_to_commercial_software_v3${software.location.v3}/path_to_commercial_software_v3
  path_to_jdk7${path-to-java7}/path_to_jdk7
  path_to_jdk8${path-to-java8}/path_to_jdk8
  
script_to_call_value${script-to-call}/script_to_call_value
/arguments
  /configuration
/execution
...
  /executions
/plugin


How would I reference those tools locations when they are defined in 
toolchain.xml?  I didn't see anything in the docs that covered such a use 
case...

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core 

[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463053#comment-15463053
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 3:07 PM:
-

>From my quick scan of the toolchains documentation, it will not help us.  It 
>seems that the definitions in toolchain.xml are really only exposed to plugins 
>that leverage them.  In our case, I need to invoke an external process (via 
>shell script) and pass it arguments to these environment-specific locations.  
>I don't see any documentation on how I can reference values defined in 
>toolchain.xml at any point in my POM.  For example, here is a greatly 
>simplified example of a Maven exec plugin execution from the POM that doe the 
>pre-integration-test setup for each test execution:


plugin
  groupIdorg.codehaus.mojo/groupId
  artifactIdexec-maven-plugin/artifactId
  executions
execution
  idsetup-environments-for-tests/id
  phasepre-integration-test/phase
  goals
goalexec/goal
  /goals
  configuration
executable${bash-executable}/executable
arguments
  
shell-script${system-test-bin}/setupTestEnvironment.sh/shell-script
  
path_to_commercial_software_v1${software.location.v1}/path_to_commercial_software_v1
  
path_to_commercial_software_v2${software.location.v2}/path_to_commercial_software_v2
  
path_to_commercial_software_v3${software.location.v3}/path_to_commercial_software_v3
  path_to_jdk7${path-to-java7}/path_to_jdk7
  path_to_jdk8${path-to-java8}/path_to_jdk8
  
script_to_call_value${script-to-call}/script_to_call_value
/arguments
  /configuration
/execution
...
  /executions
/plugin


How would I reference those tools locations when they are defined in 
toolchain.xml?  I didn't see anything in the docs that covered such a use 
case...


was (Author: rhpatrick00):
>From my quick scan of the toolchains documentation, it will not help us.  It 
>seems that the definitions in toolchain.xml are really only exposed to plugins 
>that leverage them.  In our case, I need to invoke an external process (via 
>shell script) and pass it arguments to these environment-specific locations.  
>I don't see any documentation on how I can reference values defined in 
>toolchain.xml at any point in my POM.  For example, here is a greatly 
>simplified example of a Maven exec plugin execution from the POM that doe the 
>pre-integration-test setup for each test execution:

plugin
  groupIdorg.codehaus.mojo/groupId
  artifactIdexec-maven-plugin/artifactId
  executions
execution
  idsetup-environments-for-tests/id
  phasepre-integration-test/phase
  goals
goalexec/goal
  /goals
  configuration
executable${bash-executable}/executable
arguments
  
shell-script${system-test-bin}/setupTestEnvironment.sh/shell-script
  
path_to_commercial_software_v1${software.location.v1}/path_to_commercial_software_v1
  
path_to_commercial_software_v2${software.location.v2}/path_to_commercial_software_v2
  
path_to_commercial_software_v3${software.location.v3}/path_to_commercial_software_v3
  path_to_jdk7${path-to-java7}/path_to_jdk7
  path_to_jdk8${path-to-java8}/path_to_jdk8
  
script_to_call_value${script-to-call}/script_to_call_value
/arguments
  /configuration
/execution
...
  /executions
/plugin

How would I reference those tools locations when they are defined in 
toolchain.xml?  I didn't see anything in the docs that covered such a use 
case...

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven 

[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463053#comment-15463053
 ] 

Robert Patrick commented on MNG-6083:
-

>From my quick scan of the toolchains documentation, it will not help us.  It 
>seems that the definitions in toolchain.xml are really only exposed to plugins 
>that leverage them.  In our case, I need to invoke an external process (via 
>shell script) and pass it arguments to these environment-specific locations.  
>I don't see any documentation on how I can reference values defined in 
>toolchain.xml at any point in my POM.  For example, here is a greatly 
>simplified example of a Maven exec plugin execution from the POM that doe the 
>pre-integration-test setup for each test execution:

plugin
  groupIdorg.codehaus.mojo/groupId
  artifactIdexec-maven-plugin/artifactId
  executions
execution
  idsetup-environments-for-tests/id
  phasepre-integration-test/phase
  goals
goalexec/goal
  /goals
  configuration
executable${bash-executable}/executable
arguments
  
shell-script${system-test-bin}/setupTestEnvironment.sh/shell-script
  
path_to_commercial_software_v1${software.location.v1}/path_to_commercial_software_v1
  
path_to_commercial_software_v2${software.location.v2}/path_to_commercial_software_v2
  
path_to_commercial_software_v3${software.location.v3}/path_to_commercial_software_v3
  path_to_jdk7${path-to-java7}/path_to_jdk7
  path_to_jdk8${path-to-java8}/path_to_jdk8
  
script_to_call_value${script-to-call}/script_to_call_value
/arguments
  /configuration
/execution
...
  /executions
/plugin

How would I reference those tools locations when they are defined in 
toolchain.xml?  I didn't see anything in the docs that covered such a use 
case...

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Closed] (MSHARED-587) remove logger level API from MessageBuilder

2016-09-04 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/MSHARED-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hervé Boutemy closed MSHARED-587.
-
Resolution: Fixed

> remove logger level API from MessageBuilder
> ---
>
> Key: MSHARED-587
> URL: https://issues.apache.org/jira/browse/MSHARED-587
> Project: Maven Shared Components
>  Issue Type: Improvement
>  Components: maven-shared-utils
>Affects Versions: maven-shared-utils-3.1.0
>Reporter: Hervé Boutemy
>Assignee: Hervé Boutemy
> Fix For: maven-shared-utils-3.2.0
>
>
> debug(), info() and error() are not intended for messages: they are only 
> intended for log level displaying from slf4j provider implementation: having 
> these methods in MessageBuilder is confusing (and hard to explain)
> moving them to another interface would make things more clear



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


[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463010#comment-15463010
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 2:41 PM:
-

Karl,

Comments (mostly) in order...

1.) I only have a profile for it so that I can chain them together:

mvn clean install -Pdev,dev-install

or

mvn clean install -Pdev,system-test

The dev profile is active by default so yes, it could be removed at the expense 
of needing to run mvn twice to run it with one of the other profiles.

2.)  The dev-install profile runs our zipinstall and install-a2c-home 
modules--it does not include the core software modules built by the dev profile.

3.)  system-test uses the failsafe plugin so yes, it runs during the standard 
integration-test-related phases...

4.) I am not sure how your suggestion to move the removal of functionality down 
into the module POMs really helps.  It essentially just pushes the problem down 
a level at the expense of added complexity both in the POMs and for developers.

5.) Yes, we could move developer- and/or environment-specific information into 
settings.xml but that itself causes a problems.

- Typically, I like to keep project dependencies out of settings.xml because we 
work across multiple projects where the information might be conflicting.  I 
usually only define things that never change in my ~/.m2/settings.xml (e.g., 
mirrors, servers that require credentials and other such configuration).

- When putting project-specific settings in settings.xml without which the 
project will not build, I *believe* that the best practice is to put 
settings.xml under source control, typically inside the project source tree.  
In doing so, I end up with a similar problem to the one that I currently have 
with maven.config.  The only difference is that I can have as many 
settings-xxx.xml files in my source tree as I want--I just have to make sure 
that the developers (and IDEs) make sure to always add -s 
relative/path/ro/settings-rpatrick-laptop.xml to the mvn command-line.  This is 
a pain because I, for one, get distracted sometimes and forget.

5.) I will take a look at toolchain.xml to see if this will help.  

6.) Profiles for OSes don't help when the settings vary across environments.  
They also likely clash with our current use of profiles to segment the build.  
I could, for example, move system-test outside the main project into an 
integration-test project.  The problem with that is the added complexity of 
figuring out how to retain control all of the dependency, plugin, etc. 
management in a single location.  I have learned the hard way that parent POMs 
that are not the top-level aggregate POM for the project are problematic for 
things like the release plugin...

I think your suggestions are glossing over the complexities of managing 
numerous Maven projects across a real-world development organization.  At any 
point in time, I am working across a dozen or more projects and while you offer 
solutions like "push environment-specific settings into ~/.m2/settings.xml", 
you don't offer solutions for dealing with the complexities of managing 
multiple ~/.m2/settings.xml files that contain project-specific information 
(i.e., remembering to copy the right file to settings.xml and/or use 
remembering to use the right -s for each build).

Clearly, maven.config was made for Maven command-line properties.  This 
discussion seems to be about why Maven breaking compatibility between 3.3.3 and 
3.3.9 is ok because what I am doing is wrong and I need to do things in the way 
you are suggesting so that I do not care about Maven breaking compatibility 
across releases.  I wish my customers would accept this as an argument.  
Unfortunately, customers tend to use features in ways that you never expect and 
breaking compatibility for those features is a problem for customers. :-)

Unfortunately, the way you are suggesting seems to introduce other problems 
that:

- don't work well in real-world  development environments where at any point in 
time, developers are working on any number of projects, and
- most open-source projects using Maven (that I have looked at) avoid by not 
following some of your suggestions.  

Thanks,
Robert



was (Author: rhpatrick00):
Karl,

Comments (mostly) in order...

1.) I only have a profile for it so that I can chain them actions together:

mvn clean install -Pdev,dev-install

or

mvn clean install -Pdev,system-test

The dev profile is active by default so yes, it could be removed at the expense 
of needing to run mvn twice to run it with one of the other profiles.

2.)  The dev-install profile runs our zipinstall and install-a2c-home 
modules--it does not include the core software modules built by the dev profile.

3.)  system-test uses the failsafe plugin so yes, it runs during the standard 
integration-test-related phases...

4.) I am 

[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463010#comment-15463010
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 2:30 PM:
-

Karl,

Comments (mostly) in order...

1.) I only have a profile for it so that I can chain them actions together:

mvn clean install -Pdev,dev-install

or

mvn clean install -Pdev,system-test

The dev profile is active by default so yes, it could be removed at the expense 
of needing to run mvn twice to run it with one of the other profiles.

2.)  The dev-install profile runs our zipinstall and install-a2c-home 
modules--it does not include the core software modules built by the dev profile.

3.)  system-test uses the failsafe plugin so yes, it runs during the standard 
integration-test-related phases...

4.) I am not sure how your suggestion to move the removal of functionality down 
into the module POMs really helps.  It essentially just pushes the problem down 
a level at the expense of added complexity both in the POMs and for developers.

5.) Yes, we could move developer- and/or environment-specific information into 
settings.xml but that itself causes a problems.

- Typically, I like to keep project dependencies out of settings.xml because we 
work across multiple projects where the information might be conflicting.  I 
usually only define things that never change in my ~/.m2/settings.xml (e.g., 
mirrors, servers that require credentials and other such configuration).

- When putting project-specific settings in settings.xml without which the 
project will not build, I *believe* that the best practice is to put 
settings.xml under source control, typically inside the project source tree.  
In doing so, I end up with a similar problem to the one that I currently have 
with maven.config.  The only difference is that I can have as many 
settings-xxx.xml files in my source tree as I want--I just have to make sure 
that the developers (and IDEs) make sure to always add -s 
relative/path/ro/settings-rpatrick-laptop.xml to the mvn command-line.  This is 
a pain because I, for one, get distracted sometimes and forget.

5.) I will take a look at toolchain.xml to see if this will help.  

6.) Profiles for OSes don't help when the settings vary across environments.  
They also likely clash with our current use of profiles to segment the build.  
I could, for example, move system-test outside the main project into an 
integration-test project.  The problem with that is the added complexity of 
figuring out how to retain control all of the dependency, plugin, etc. 
management in a single location.  I have learned the hard way that parent POMs 
that are not the top-level aggregate POM for the project are problematic for 
things like the release plugin...

I think your suggestions are glossing over the complexities of managing 
numerous Maven projects across a real-world development organization.  At any 
point in time, I am working across a dozen or more projects and while you offer 
solutions like "push environment-specific settings into ~/.m2/settings.xml", 
you don't offer solutions for dealing with the complexities of managing 
multiple ~/.m2/settings.xml files that contain project-specific information 
(i.e., remembering to copy the right file to settings.xml and/or use 
remembering to use the right -s for each build).

Clearly, maven.config was made for Maven command-line properties.  This 
discussion seems to be about why Maven breaking compatibility between 3.3.3 and 
3.3.9 is ok because what I am doing is wrong and I need to do things in the way 
you are suggesting so that I do not care about Maven breaking compatibility 
across releases.  I wish my customers would accept this as an argument.  
Unfortunately, customers tend to use features in ways that you never expect and 
breaking compatibility for those features is a problem for customers. :-)

Unfortunately, the way you are suggesting seems to introduce other problems 
that:

- don't work well in real-world  development environments where at any point in 
time, developers are working on any number of projects, and
- most open-source projects using Maven (that I have looked at) avoid by not 
following some of your suggestions.  

Thanks,
Robert



was (Author: rhpatrick00):
Karl,

Comments (mostly) in order...

1.) I only have a profile for it so that I can chain them actions together:

mvn clean install -Pdev,dev-install

or

mvn clean install -Pdev,system-test

The dev profile is active by default so yes, it could be removed at the expense 
of needing to run mvn twice to run it with one of the other profiles.

2.)  The dev-install profile runs our zipinstall and install-a2c-home 
modules--it does not include the core software modules built by the dev profile.

3.)  system-test uses the failsafe plugin so yes, it runs during the standard 
integration-test-related phases...


[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15463010#comment-15463010
 ] 

Robert Patrick commented on MNG-6083:
-

Karl,

Comments (mostly) in order...

1.) I only have a profile for it so that I can chain them actions together:

mvn clean install -Pdev,dev-install

or

mvn clean install -Pdev,system-test

The dev profile is active by default so yes, it could be removed at the expense 
of needing to run mvn twice to run it with one of the other profiles.

2.)  The dev-install profile runs our zipinstall and install-a2c-home 
modules--it does not include the core software modules built by the dev profile.

3.)  system-test uses the failsafe plugin so yes, it runs during the standard 
integration-test-related phases...

4.) I am not sure how your suggestion to move the removal of functionality down 
into the module POMs really helps.  It essentially just pushes the problem down 
a level at the expense of added complexity both in the POMs and for developers.

5.) Yes, we could move developer- and/or environment-specific information into 
settings.xml but that itself causes a problems.

- Typically, I like to keep project dependencies out of settings.xml because we 
work across multiple projects where the information might be conflicting.  I 
usually only define things that never change in my ~/.m2/settings.xml (e.g., 
mirrors, servers that require credentials and other such configuration).

- When putting project-specific settings in settings.xml without which the 
project will not build, I *believe* that the best practice is to put 
settings.xml under source control, typically inside the project source tree.  
In doing so, I end up with a similar problem to the one that I currently have 
with maven.config.  The only difference is that I can have as many 
settings-xxx.xml files in my source tree as I want--I just have to make sure 
that the developers (and IDEs) make sure to always add -s 
relative/path/ro/settings-rpatrick-laptop.xml to the mvn command-line.  This is 
a pain because I, for one, get distracted sometimes and forget.

5.) I will take a look at toolchain.xml to see if this will help.  

6.) Profiles for OSes don't help when the settings vary across environment.  
They also likely clash with our current use of profiles to segment the build.  
I could, for example, move system-test outside the main project into an 
integration-test project.  The problem with that is the added complexity of 
figuring out how to retain control all of the dependency, plugin, etc. 
management in a single location.  I have learned the hard way that parent POMs 
that are not the top-level aggregate POM for the project are problematic for 
things like the release plugin...

I think your suggestions are glossing over the complexities of managing 
numerous Maven projects across a real-world development organization.  At any 
point in time, I am working across a dozen or more projects and while you offer 
solutions like "push environment-specific settings into ~/.m2/settings.xml", 
you don't offer solutions for dealing with the complexities of managing 
multiple ~/.m2/settings.xml files that contain project-specific information 
(i.e., remembering to copy the right file to settings.xml and/or use 
remembering to use the right -s for each build).

Clearly, maven.config was made for Maven command-line properties.  This 
discussion seems to be about why Maven breaking compatibility between 3.3.3 and 
3.3.9 is ok because what I am doing is wrong and I need to do things in the way 
you are suggesting so that I do not care about Maven breaking compatibility 
across releases.  I wish my customers would accept this as an argument.  
Unfortunately, customers tend to use features in ways that you never expect and 
breaking compatibility for those features is a problem for customers. :-)

Unfortunately, the way you are suggesting seems to introduce other problems 
that:

- don't work well in real-world  development environments where at any point in 
time, developers are working on any number of projects, and
- most open-source projects using Maven (that I have looked at) avoid by not 
following some of your suggestions.  

Thanks,
Robert


> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains 

[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462955#comment-15462955
 ] 

Karl Heinz Marbaise edited comment on MNG-6083 at 9/4/16 1:49 PM:
--

HI Robert, first thank you for the detailed explanations.

{quote}
dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
{quote}
If this profile is the default than why do you need a profile for that? So this 
should result in calling Maven simply by {{mvn clean package}}.

{quote}
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
{quote} 
If I correctly understand this is a supplemental step which is {{dev}} plus 
{{dev-install}} so this will result in a profile yes which can be done: {{mvn 
clean patch -Pdev-install}}

{quote}
system-test - this profile is what runs our integration tests. These tests 
depend on complex setup for a commercial software package.
{quote}
In which life cycle phase do you run those integration test. I would assume 
pre-integration-test, integration-test and post-integration-test...So we have 
another profile...Ok...fine.

{quote}
release - this profile is the one used for running the Maven release process, 
which includes all modules.
{quote}
So as I mentioned before never remove modules from reactor better 
include/exclude the functionality within the module pom...If you like to run 
only a limited number of module simply use {{mvn -pl ... }}.

So going to the point for the installation location you have mentioned. I would 
define install location via a property in the users {{settings.xml}} which is 
already user dependent...and check in your build via [maven-enforcer-plugin if 
the property 
exists|http://maven.apache.org/enforcer/enforcer-rules/requireProperty.html]...and
 use it for installation...

What you have mentioned about the {{system-test}} and the locations for JDK's 
and other tools is exactly the purpose of Maven Toolchains...You define a 
{{toolchains.xml}} in the users home folder (same location where settings.xml 
is located) and define the location of JDK's and tools in there..Maven already 
supported to compile/run tests with the appropriate JDK's out of the box... 
(BTW: [exec-maven-plugin can handle 
toolchains|http://www.mojohaus.org/exec-maven-plugin/examples/example-exec-using-toolchains.html]
 as well )

For you point 3. There you can go the same way defining the properties in the 
settings.xml (users home folder) and on Jenkins you can define them also in the 
settings.xml of Jenkins (Config File Provider Plugins is best here). Also check 
via maven-enforcer-plugin if the needed properties do exist and fail if not...

For your point 4: You can handle the differences between Linux / Unix by using 
a profile which is activated by different os name automatically which can be 
done also for exec-maven-plugin (May be we can/should improve 
[exec-maven-plugin|https://github.com/mojohaus/mojo-parent/issues])...

So my conclusion here is:
 * Three explicit profiles which can be activated by developers or 
automatically by Jenkins depending what you like to do.
 * Defining things in settings.xml which are specific for the user (where is 
the installation folder or username/etc. for the database)
 * Using Toolchain make location of JDK's / Tools transparent...

This means from my point of view no need for properties in 
{{.mvn/maven.config}} ? Do I miss something?

Kind regards
Karl Heinz Marbaise


was (Author: khmarbaise):
HI Robert, first thank you for the detailed explanations.

{quote}
dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
{quote}
If this profile is the default than why do you need a profile for that? So this 
should result in calling Maven simply by {{mvn clean package}}.

{quote}
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
{quote} 
If I correctly understand this is a supplemental step which is {{dev}} plus 
{{dev-install}} so this will result in a profile yes which can be done: {{mvn 
clean patch -Pdev-install}}

{quote}
system-test - this profile is what runs our integration tests. These tests 
depend on complex setup for a commercial software package.
{quote}
In which life cycle phase do you run those integration test. I would assume 
pre-integration-test, integration-test and post-integration-test...So we have 
another profile...Ok...fine.

{quote}
release - this profile is the one used for running the Maven release process, 
which includes all modules.
{quote}
So as I mentioned before never remove modules from reactor better 
include/exclude the functionality within the module pom...If you like to run 
only a 

[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462955#comment-15462955
 ] 

Karl Heinz Marbaise edited comment on MNG-6083 at 9/4/16 1:46 PM:
--

HI Robert, first thank you for the detailed explanations.

{quote}
dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
{quote}
If this profile is the default than why do you need a profile for that? So this 
should result in calling Maven simply by {{mvn clean package}}.

{quote}
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
{quote} 
If I correctly understand this is a supplemental step which is {{dev}} plus 
{{dev-install}} so this will result in a profile yes which can be done: {{mvn 
clean patch -Pdev-install}}

{quote}
system-test - this profile is what runs our integration tests. These tests 
depend on complex setup for a commercial software package.
{quote}
In which life cycle phase do you run those integration test. I would assume 
pre-integration-test, integration-test and post-integration-test...So we have 
another profile...Ok...fine.

{quote}
release - this profile is the one used for running the Maven release process, 
which includes all modules.
{quote}
So as I mentioned before never remove modules from reactor better 
include/exclude the functionality within the module pom...If you like to run 
only a limited number of module simply use {{mvn -pl ... }}.

So going to the point for the installation location you have mentioned. I would 
define install location via a property in the users {{settings.xml}} which is 
already user dependent...and check in your build via [maven-enforcer-plugin if 
the property 
exists|http://maven.apache.org/enforcer/enforcer-rules/requireProperty.html]...and
 use it for installation...

What you have mentioned about the {{system-test}} and the locations for JDK's 
and other tools is exactly the purpose of Maven Toolchains...You define a 
{{toolchains.xml}} in the users home folder (same location where settings.xml 
is located) and define the location of JDK's and tools in there..Maven already 
supported to compile/run tests with the appropriate JDK's out of the box...

For you point 3. There you can go the same way defining the properties in the 
settings.xml (users home folder) and on Jenkins you can define them also in the 
settings.xml of Jenkins (Config File Provider Plugins is best here). Also check 
via maven-enforcer-plugin if the needed properties do exist and fail if not...

For your point 4: You can handle the differences between Linux / Unix by using 
a profile which is activated by different os name automatically which can be 
done also for exec-maven-plugin (May be we can/should improve 
[exec-maven-plugin|https://github.com/mojohaus/mojo-parent/issues])...

So my conclusion here is:
 * Three explicit profiles which can be activated by developers or 
automatically by Jenkins depending what you like to do.
 * Defining things in settings.xml which are specific for the user (where is 
the installation folder or username/etc. for the database)
 * Using Toolchain make location of JDK's / Tools transparent...

This means from my point of view no need for properties in 
{{.mvn/maven.config}} ? Do I miss something?

Kind regards
Karl Heinz Marbaise


was (Author: khmarbaise):
HI Robert, first thank you for the detailed explanations.

{quote}
dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
{quote}
If this profile is the default than why do you need a profile for that? So this 
should result in calling Maven simply by {{mvn clean package}}.

{quote}dev-install - this profile that builds our "installer", which is a zip 
file, and "installs" it in a directory that developers can use to run manual 
tests.{quote} 
If I correctly understand this is a supplemental step which is {{dev}} plus 
{{dev-install}} so this will result in a profile yes which can be done: {{mvn 
clean patch -Pdev-install}}

{quote}system-test - this profile is what runs our integration tests. These 
tests depend on complex setup for a commercial software package.{quote}In which 
life cycle phase do you run those integration test. I would assume 
pre-integration-test, integration-test and post-integration-test...So we have 
another profile...Ok...fine.

{quote}release - this profile is the one used for running the Maven release 
process, which includes all modules.{quote}
So as I mentioned before never remove modules from reactor better 
include/exclude the functionality within the module pom...If you like to run 
only a limited number of module simply use {{mvn -pl ... }}.

So going to the point for the installation location you have mentioned. I would 
define install 

[jira] [Issue Comment Deleted] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

 [ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karl Heinz Marbaise updated MNG-6083:
-
Comment: was deleted

(was: HI Robert, first thank you for the detailed explanations.

{quote}
dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
{quote}
If this profile is the default than why do you need a profile for that? So this 
should result in calling Maven simply by {{mvn clean package}}.

{quote}dev-install - this profile that builds our "installer", which is a zip 
file, and "installs" it in a directory that developers can use to run manual 
tests.{quote} 
If I correctly understand this is a supplemental step which is {{dev}} plus 
{{dev-install}} so this will result in a profile yes which can be done: {{mvn 
clean patch -Pdev-install}}

{quote}system-test - this profile is what runs our integration tests. These 
tests depend on complex setup for a commercial software package.{quote}In which 
life cycle phase do you run those integration test. I would assume 
pre-integration-test, integration-test and post-integration-test...So we have 
another profile...Ok...fine.

{quote}release - this profile is the one used for running the Maven release 
process, which includes all modules.{quote}
So as I mentioned before never remove modules from reactor better 
include/exclude the functionality within the module pom...If you like to run 
only a limited number of module simply use {{mvn -pl ... }}.

So going to the point for the installation location you have mentioned. I would 
define install location via a property in the users {{settings.xml}} which is 
already user dependent...and check in your build via [maven-enforcer-plugin if 
the property 
exists|http://maven.apache.org/enforcer/enforcer-rules/requireProperty.html]...and
 use it for installation...

What you have mentioned about the {{system-test}} and the locations for JDK's 
and other tools is exactly the purpose of Maven Toolchains...You define a 
{{toolchains.xml}} in the users home folder (same location where settings.xml 
is located}} and define the location of JDK's and tools in there..Maven already 
supported to compile/run tests with the appropriate JDK's out of the box...

For you point 3. There you can go the same way defining the properties in the 
settings.xml (users home folder) and on Jenkins you can define them also in the 
settings.xml of Jenkins (Config File Provider Plugins is best here). Also check 
via maven-enforcer-plugin if the needed properties do exist and fail if not...

For your point 4: You can handle the differences between Linux / Unix by using 
a profile which is activated by different os name automatically which can be 
done also for exec-maven-plugin (May be we can/should improve 
[exec-maven-plugin|https://github.com/mojohaus/mojo-parent/issues])...

So my conclusion here is:
 * Three explicit profiles which can be activated by developers or 
automatically by Jenkins depending what you like to do.
 * Defining things in settings.xml which are specific for the user (where is 
the installation folder or username/etc. for the database)
 * Using Toolchain make location of JDK's / Tools transparent...

This means from my point of view no need for properties in 
{{.mvn/maven.config}} ? Do I miss something?

Kind regards
Karl Heinz Marbaise)

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462955#comment-15462955
 ] 

Karl Heinz Marbaise commented on MNG-6083:
--

HI Robert, first thank you for the detailed explanations.

{quote}
dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
{quote}
If this profile is the default than why do you need a profile for that? So this 
should result in calling Maven simply by {{mvn clean package}}.

{quote}dev-install - this profile that builds our "installer", which is a zip 
file, and "installs" it in a directory that developers can use to run manual 
tests.{quote} 
If I correctly understand this is a supplemental step which is {{dev}} plus 
{{dev-install}} so this will result in a profile yes which can be done: {{mvn 
clean patch -Pdev-install}}

{quote}system-test - this profile is what runs our integration tests. These 
tests depend on complex setup for a commercial software package.{quote}In which 
life cycle phase do you run those integration test. I would assume 
pre-integration-test, integration-test and post-integration-test...So we have 
another profile...Ok...fine.

{quote}release - this profile is the one used for running the Maven release 
process, which includes all modules.{quote}
So as I mentioned before never remove modules from reactor better 
include/exclude the functionality within the module pom...If you like to run 
only a limited number of module simply use {{mvn -pl ... }}.

So going to the point for the installation location you have mentioned. I would 
define install location via a property in the users {{settings.xml}} which is 
already user dependent...and check in your build via [maven-enforcer-plugin if 
the property 
exists|http://maven.apache.org/enforcer/enforcer-rules/requireProperty.html]...and
 use it for installation...

What you have mentioned about the {{system-test}} and the locations for JDK's 
and other tools is exactly the purpose of Maven Toolchains...You define a 
{{toolchains.xml}} in the users home folder (same location where settings.xml 
is located}} and define the location of JDK's and tools in there..Maven already 
supported to compile/run tests with the appropriate JDK's out of the box...

For you point 3. There you can go the same way defining the properties in the 
settings.xml (users home folder) and on Jenkins you can define them also in the 
settings.xml of Jenkins (Config File Provider Plugins is best here). Also check 
via maven-enforcer-plugin if the needed properties do exist and fail if not...

For your point 4: You can handle the differences between Linux / Unix by using 
a profile which is activated by different os name automatically which can be 
done also for exec-maven-plugin (May be we can/should improve 
[exec-maven-plugin|https://github.com/mojohaus/mojo-parent/issues])...

So my conclusion here is:
 * Three explicit profiles which can be activated by developers or 
automatically by Jenkins depending what you like to do.
 * Defining things in settings.xml which are specific for the user (where is 
the installation folder or username/etc. for the database)
 * Using Toolchain make location of JDK's / Tools transparent...

This means from my point of view no need for properties in 
{{.mvn/maven.config}} ? Do I miss something?

Kind regards
Karl Heinz Marbaise

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462956#comment-15462956
 ] 

Karl Heinz Marbaise commented on MNG-6083:
--

HI Robert, first thank you for the detailed explanations.

{quote}
dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
{quote}
If this profile is the default than why do you need a profile for that? So this 
should result in calling Maven simply by {{mvn clean package}}.

{quote}dev-install - this profile that builds our "installer", which is a zip 
file, and "installs" it in a directory that developers can use to run manual 
tests.{quote} 
If I correctly understand this is a supplemental step which is {{dev}} plus 
{{dev-install}} so this will result in a profile yes which can be done: {{mvn 
clean patch -Pdev-install}}

{quote}system-test - this profile is what runs our integration tests. These 
tests depend on complex setup for a commercial software package.{quote}In which 
life cycle phase do you run those integration test. I would assume 
pre-integration-test, integration-test and post-integration-test...So we have 
another profile...Ok...fine.

{quote}release - this profile is the one used for running the Maven release 
process, which includes all modules.{quote}
So as I mentioned before never remove modules from reactor better 
include/exclude the functionality within the module pom...If you like to run 
only a limited number of module simply use {{mvn -pl ... }}.

So going to the point for the installation location you have mentioned. I would 
define install location via a property in the users {{settings.xml}} which is 
already user dependent...and check in your build via [maven-enforcer-plugin if 
the property 
exists|http://maven.apache.org/enforcer/enforcer-rules/requireProperty.html]...and
 use it for installation...

What you have mentioned about the {{system-test}} and the locations for JDK's 
and other tools is exactly the purpose of Maven Toolchains...You define a 
{{toolchains.xml}} in the users home folder (same location where settings.xml 
is located}} and define the location of JDK's and tools in there..Maven already 
supported to compile/run tests with the appropriate JDK's out of the box...

For you point 3. There you can go the same way defining the properties in the 
settings.xml (users home folder) and on Jenkins you can define them also in the 
settings.xml of Jenkins (Config File Provider Plugins is best here). Also check 
via maven-enforcer-plugin if the needed properties do exist and fail if not...

For your point 4: You can handle the differences between Linux / Unix by using 
a profile which is activated by different os name automatically which can be 
done also for exec-maven-plugin (May be we can/should improve 
[exec-maven-plugin|https://github.com/mojohaus/mojo-parent/issues])...

So my conclusion here is:
 * Three explicit profiles which can be activated by developers or 
automatically by Jenkins depending what you like to do.
 * Defining things in settings.xml which are specific for the user (where is 
the installation folder or username/etc. for the database)
 * Using Toolchain make location of JDK's / Tools transparent...

This means from my point of view no need for properties in 
{{.mvn/maven.config}} ? Do I miss something?

Kind regards
Karl Heinz Marbaise

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462892#comment-15462892
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 1:12 PM:
-

Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software package.
release - this profile is the one used for running the Maven release process, 
which includes all modules.

We have two main Jenkins job types.  One builds the software and runs the unit 
tests (using the default dev profile) and pushes the resulting SNAPSHOT JARs 
into Artifactory.  The other job runs nightly and runs our system-test profile 
to build our installer and run the integration tests against it, publishing the 
new installer to Artifactory if the integration tests succeed.  This installer 
can then be picked up by automated QA jobs that further test the quality of the 
nightly build. 

Our developers can also run the integration tests locally prior to checking in, 
if they choose.  I encourage this on large changes since I "fine" them every 
time they break a Jenkins nightly build job.

The current properties in maven.config are:

1.) The location of the "install directory" where the dev-install profile 
creates an installed version of the software.  For example, mine is currently 
set to -Da2c-home-parent-dir=c:\tmp on my laptop.  When running on my devops 
environment based on Linux, I cannot use c:\tmp.  My other developers use there 
own locations.

2.) Our "system-test" module that runs the integration tests for the software 
we are building depends on a large commercial software package and runs our 
tests against 3 different versions of that package, requiring 2 different 
versions of java (depending on which version a particular test uses).  The 
other commercial software package is the Oracle database.  As such, the 
maven.config file current has the locations where the three versions of the 
commercial software package and 2 different JDK versions are installed.  

3.) The integration tests also depend on an Oracle database, where some 
developers use an installation on their laptop but Jenkins (and my release 
process) use a centrally installed database.  In order to make sure that 
developers (and Jenkins) don't step on one another when they happen to run 
integration tests concurrently, the maven.config file contains the database 
connection information required by the test (e.g., connection URL, user name, 
and password).

4.) To make the integration tests work on both Windows and Linux, we ended up 
writing shell scripts that do the pre-integration-test setup and 
post-integration-test teardown of the environments required to run the 
commercial software package mentioned in step 2.  As such, the maven.config 
file also contains a property that tells the maven exec plugin executions the 
shell-script-extension to use for this particular build (i.e., cmd or sh).

What I was trying to say about the fred-system-test profile, etc. was that 
trying to push the environment-specific settings currently in maven.config into 
the profiles would mean that I would need to copy the existing profiles 
multiple times, one for each environment.  I see that as a non-starter.  I am 
not familiar enough with toolchains to know whether this would help me or not.  
My current thinking is that if I cannot use maven.config for these 
environment-specific configuration, I will be forced to drop back to 
environment variables--even though I see this as a more error-prone mechanism.

Is this real enough for you?  I am happy to show you all the detail but my 
employer might get upset if I posted the actual POMs and such to such a public 
forum...

Hope this helps,
Robert



was (Author: rhpatrick00):
Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software 

[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462892#comment-15462892
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 1:07 PM:
-

Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software package.
release - this profile is the one used for running the Maven release process, 
that includes all modules.

We have two main Jenkins job types.  One builds the software and runs the unit 
tests (using the default dev profile) and pushes the resulting SNAPSHOT JARs 
into Artifactory.  The other job runs nightly and runs our system-test profile 
to build our installer and run the integration tests against it, publishing the 
new installer to Artifactory if the integration tests succeed.  This installer 
can then be picked up by automated QA jobs that further test the quality of the 
nightly build. 

Our developers can also run the integration tests locally prior to checking in, 
if they choose.  I encourage this on large changes since I "fine" them every 
time they break a Jenkins nightly build job.

The current properties in maven.config are:

1.) The location of the "install directory" where the dev-install profile 
creates an installed version of the software.  For example, mine is currently 
set to -Da2c-home-parent-dir=c:\tmp on my laptop.  When running on my devops 
environment based on Linux, I cannot use c:\tmp.  My other developers use there 
own locations.

2.) Our "system-test" module that runs the integration tests for the software 
we are building depends on a large commercial software package and runs our 
tests against 3 different versions of that package, requiring 2 different 
versions of java (depending on which version a particular test uses).  The 
other commercial software package is the Oracle database.  As such, the 
maven.config file current has the locations where the three versions of the 
commercial software package and 2 different JDK versions are installed.  

3.) The integration tests also depend on an Oracle database, where some 
developers use an installation on their laptop but Jenkins (and my release 
process) use a centrally installed database.  In order to make sure that 
developers (and Jenkins) don't step on one another when they happen to run 
integration tests concurrently, the maven.config file contains the database 
connection information required by the test (e.g., connection URL, user name, 
and password).

4.) To make the integration tests work on both Windows and Linux, we ended up 
writing shell scripts that do the pre-integration-test setup and 
post-integration-test teardown of the environments required to run the 
commercial software package mentioned in step 2.  As such, the maven.config 
file also contains a property that tells the maven exec plugin executions the 
shell-script-extension to use for this particular build (i.e., cmd or sh).

What I was trying to say about the fred-system-test profile, etc. was that 
trying to push the environment-specific settings currently in maven.config into 
the profiles would mean that I would need to copy the existing profiles 
multiple times, one for each environment.  I see that as a non-starter.  I am 
not familiar enough with toolchains to know whether this would help me or not.  
My current thinking is that if I cannot use maven.config for these 
environment-specific configuration, I will be forced to drop back to 
environment variables--even though I see this as a more error-prone mechanism.

Is this real enough for you?  I am happy to show you all the detail but my 
employer might get upset if I posted the actual POMs and such to such a public 
forum...

Hope this helps,
Robert



was (Author: rhpatrick00):
Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software 

[jira] [Commented] (MSHARED-587) remove logger level API from MessageBuilder

2016-09-04 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/MSHARED-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462900#comment-15462900
 ] 

Hudson commented on MSHARED-587:


SUCCESS: Integrated in Jenkins build maven-shared #2866 (See 
[https://builds.apache.org/job/maven-shared/2866/])
[MSHARED-587] typos (hboutemy: 
[http://svn.apache.org/viewvc/?view=rev=1759176])
* (edit) maven-shared-utils/pom.xml
* (edit) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java
[MSHARED-587] extracted LoggerLevelRenderer interface from MessageBuilder 
(hboutemy: [http://svn.apache.org/viewvc/?view=rev=1759175])
* (edit) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java
* (add) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/LoggerLevelRenderer.java
* (edit) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageBuilder.java
* (edit) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/MessageUtils.java
* (edit) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java
* (edit) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/Style.java
* (edit) 
maven-shared-utils/src/main/java/org/apache/maven/shared/utils/logging/package-info.java
* (edit) 
maven-shared-utils/src/test/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilderTest.java


> remove logger level API from MessageBuilder
> ---
>
> Key: MSHARED-587
> URL: https://issues.apache.org/jira/browse/MSHARED-587
> Project: Maven Shared Components
>  Issue Type: Improvement
>  Components: maven-shared-utils
>Affects Versions: maven-shared-utils-3.1.0
>Reporter: Hervé Boutemy
>Assignee: Hervé Boutemy
> Fix For: maven-shared-utils-3.2.0
>
>
> debug(), info() and error() are not intended for messages: they are only 
> intended for log level displaying from slf4j provider implementation: having 
> these methods in MessageBuilder is confusing (and hard to explain)
> moving them to another interface would make things more clear



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


[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462892#comment-15462892
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 1:03 PM:
-

Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software package.
release - this profile is the one used for running the Maven release process, 
that includes all modules.

We have two main Jenkins job types.  One builds the software and runs the unit 
tests (using the default dev profile) and pushes the resulting SNAPSHOT JARs 
into Artifactory.  The other job runs nightly and runs our system-test profile 
to build our installer and run the integration tests against it, publishing the 
new installer to Artifactory if the integration tests succeed.  This installer 
can then be picked up by automated QA jobs that further test the quality of the 
nightly build. 

The current properties in maven.config are:

1.) The location of the "install directory" where the dev-install profile 
creates an installed version of the software.  For example, mine is currently 
set to -Da2c-home-parent-dir=c:\tmp on my laptop.  When running on my devops 
environment based on Linux, I cannot use c:\tmp.  My other developers use there 
own locations.

2.) Our "system-test" module that runs the integration tests for the software 
we are building depends on a large commercial software package and runs our 
tests against 3 different versions of that package, requiring 2 different 
versions of java (depending on which version a particular test uses).  The 
other commercial software package is the Oracle database.  As such, the 
maven.config file current has the locations where the three versions of the 
commercial software package and 2 different JDK versions are installed.  

3.) The integration tests also depend on an Oracle database, where some 
developers use an installation on their laptop but Jenkins (and my release 
process) use a centrally installed database.  In order to make sure that 
developers (and Jenkins) don't step on one another when they happen to run 
integration tests concurrently, the maven.config file contains the database 
connection information required by the test (e.g., connection URL, user name, 
and password).

4.) To make the integration tests work on both Windows and Linux, we ended up 
writing shell scripts that do the pre-integration-test setup and 
post-integration-test teardown of the environments required to run the 
commercial software package mentioned in step 2.  As such, the maven.config 
file also contains a property that tells the maven exec plugin executions the 
shell-script-extension to use for this particular build (i.e., cmd or sh).

What I was trying to say about the fred-system-test profile, etc. was that 
trying to push the environment-specific settings currently in maven.config into 
the profiles would mean that I would need to copy the existing profiles 
multiple times, one for each environment.  I see that as a non-starter.  I am 
not familiar enough with toolchains to know whether this would help me or not.  
My current thinking is that if I cannot use maven.config for these 
environment-specific configuration, I will be forced to drop back to 
environment variables--even though I see this as a more error-prone mechanism.

Is this real enough for you?  I am happy to show you all the detail but my 
employer might get upset if I posted the actual POMs and such to such a public 
forum...

Hope this helps,
Robert



was (Author: rhpatrick00):
Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software package.
release - this profile is the one used for running the Maven release process, 
that includes all modules.

We have two main Jenkins job types.  One build the software and runs the unit 
tests 

[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462892#comment-15462892
 ] 

Robert Patrick edited comment on MNG-6083 at 9/4/16 1:02 PM:
-

Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software package.
release - this profile is the one used for running the Maven release process, 
that includes all modules.

We have two main Jenkins job types.  One build the software and runs the unit 
tests (using the default dev profile) and pushs the resulting SNAPSHOT JARs 
into Artifactory.  The other job runs nightly and runs our system-test profile 
to build our installer and run the integration tests against it, publishing the 
new installer to Artifactory if the integration tests succeed.  This installer 
can then be picked up by automated QA jobs that further test the quality of the 
nightly build. 

The current properties in maven.config are:

1.) The location of the "install directory" where the dev-install profile 
creates an installed version of the software.  For example, mine is currently 
set to -Da2c-home-parent-dir=c:\tmp on my laptop.  When running on my devops 
environment based on Linux, I cannot use c:\tmp.  My other developers use there 
own locations.

2.) Our "system-test" module that runs the integration tests for the software 
we are building depends on a large commercial software package and runs our 
tests against 3 different versions of that package, requiring 2 different 
versions of java (depending on which version a particular test uses).  The 
other commercial software package is the Oracle database.  As such, the 
maven.config file current has the locations where the three versions of the 
commercial software package and 2 different JDK versions are installed.  

3.) The integration tests also depend on an Oracle database, where some 
developers use an installation on their laptop but Jenkins (and my release 
process) use a centrally installed database.  In order to make sure that 
developers (and Jenkins) don't step on one another when they happen to run 
integration tests concurrently, the maven.config file contains the database 
connection information required by the test (e.g., connection URL, user name, 
and password).

4.) To make the integration tests work on both Windows and Linux, we ended up 
writing shell scripts that do the pre-integration-test setup and 
post-integration-test teardown of the environments required to run the 
commercial software package mentioned in step 2.  As such, the maven.config 
file also contains a property that tells the maven exec plugin executions the 
shell-script-extension to use for this particular build (i.e., cmd or sh).

What I was trying to say about the fred-system-test profile, etc. was that 
trying to push the environment-specific settings currently in maven.config into 
the profiles would mean that I would need to copy the existing profiles 
multiple times, one for each environment.  I see that as a non-starter.  I am 
not familiar enough with toolchains to know whether this would help me or not.  
My current thinking is that if I cannot use maven.config for these 
environment-specific configuration, I will be forced to drop back to 
environment variables--even though I see this as a more error-prone mechanism.

Is this real enough for you?  I am happy to show you all the detail but my 
employer might get upset if I posted the actual POMs and such to such a public 
forum...

Hope this helps,
Robert



was (Author: rhpatrick00):
Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software package.
release - this profile is the one used for running the Maven release process, 
that includes all modules.

We have two main Jenkins job types.  One build the software and runs the unit 
tests (using 

[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Robert Patrick (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462892#comment-15462892
 ] 

Robert Patrick commented on MNG-6083:
-

Karl, 

I already explained why I need different environments for different developers. 
 We are building real-world software that depends on commercial software 
packages.  I have four profiles defined in my top-level POM:

dev - this is the default profile that developers use to build and run unit 
tests on the software we are building
dev-install - this profile that builds our "installer", which is a zip file, 
and "installs" it in a directory that developers can use to run manual tests.
system-test - this profile is what runs our integration tests.  These tests 
depend on complex setup for a commercial software package.
release - this profile is the one used for running the Maven release process, 
that includes all modules.

We have two main Jenkins job types.  One build the software and runs the unit 
tests (using the default dev profile) and pushs the resulting SNAPSHOT JARs 
into Artifactory.  The other job runs nightly and runs our system-test profile 
to build our installer and run the integration tests against it, publishing the 
new installer to Artifactory if the integration tests succeed.  This installer 
can then be picked up by automated QA jobs that further test the quality of the 
nightly build. 

The current properties in maven.config are:

1.) The location of the "install directory" where the dev-install profile 
creates an installed version of the software.  For example, mine is currently 
set to -Da2c-home-parent-dir=c:\tmp on my laptop.  When running on my devops 
environment based on Linux, I cannot use c:\tmp.  My other developers use there 
own locations.

2.) Our "system-test" module that runs the integration tests for the software 
we are building depends on a large commercial software package and runs our 
tests against 3 different versions of that package, requiring 2 different 
versions of java (depending on which version a particular test uses).  The 
other commercial software package is the Oracle database.  As such, the 
maven.config file current has the locations where the three versions of the 
commercial software package and 2 different JDK versions are installed.  

3.) The integration tests also depend on an Oracle database, where some 
developers use an installation on their laptop but Jenkins (and my release 
process) use a centrally installed database.  In order to make sure that 
developers (and Jenkins) don;t step on one another when they happen to run 
integration tests concurrently, the maven.config file contains the database 
connection information required by the test (e.g., connection URL, user name, 
and password).

4.) To make the integration tests work on both Windows and Linux, we ended up 
writing shell scripts that do the pre-integration-test setup and 
post-integration-test teardown of the environments required to run the 
commercial software package mentioned in step 2.  As such, the maven.config 
file also contains a property that tells the maven exec plugin executions the 
shell-script-extension to use for this particular build (i.e., cmd or sh).

What I was trying to say about the fred-system-test profile, etc. was that 
trying to push the environment-specific settings currently in maven.config into 
the profiles would mean that I would need to copy the existing profiles 
multiple times, one for each environment.  I see that as a non-starter.  I am 
not familiar enough with toolchains to know whether this would help me or not.  
My current thinking is that if I cannot use maven.config for these 
environment-specific configuration, I will be forced to drop back to 
environment variables--even though I see this as a more error-prone mechanism.

Is this real enough for you?  I am happy to show you all the detail but my 
employer might get upset if I posted the actual POMs and such to such a public 
forum...

Hope this helps,
Robert


> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 

[jira] [Created] (MNG-6085) Make the usage of ${project.version} usable in parent element of a multi module build

2016-09-04 Thread Karl Heinz Marbaise (JIRA)
Karl Heinz Marbaise created MNG-6085:


 Summary: Make the usage of ${project.version} usable in parent 
element of a multi module build
 Key: MNG-6085
 URL: https://issues.apache.org/jira/browse/MNG-6085
 Project: Maven
  Issue Type: Improvement
  Components: core
Reporter: Karl Heinz Marbaise
Priority: Minor


Based on [a discussion|MNG-5576] it would be nice to make it possible to use 
{{$project.version}} within a parent element which would be more 
general solution than with {{$revision}} etc. 

The parent:
{code:xml}
  <...>
  1.3.0-SNAPSHOT
  
   child
...
  
{code}

{code:xml}
  
..
   ..
   ${project.version}
 
 child
  ...
{code}


References: 
https://issues.apache.org/jira/browse/MNG-5576?focusedCommentId=15448357=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15448357




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


[jira] [Comment Edited] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462819#comment-15462819
 ] 

Karl Heinz Marbaise edited comment on MNG-6083 at 9/4/16 12:05 PM:
---

What do you mean by controlling sub modules by profile? You mean things like 
this:
{code:xml}

  
...

 WhatEver
   
 

{code}
This is a bad idea...Where is the difference between your {{dev}}, 
{{dev-install}} ? Can you give real world examples where you build differs in 
those things? Best would be to have a real example project which shows the 
points you have?

Furthermore why are there differences between: {{fred-system-test}}, 
{{fred-linux-system-test}}, {{jane-system-test}} etc. ? What are the real 
differences here? Tools ? 
If so why not using {{mvn -pl ModuleYouWouldLikeToBuild}} plus dependent via 
{{mvn -pl Moduly -amd}} ?

To make differences between OS you can simply use profiles like the following:
{code:xml}

  
running-linux

 
   linux
 

   
 ...
   
   
  
running-windows

 
   windows
 

   
 ...
   
   

{code}

And why do you need differences between users ? It would be very helpful if you 
can give real world examples how your build looks like (best would be an 
example project on Github) so we have concrete things where we can discuss 
about and may be i can see if i can help to improve your build or may be how we 
might need to change Maven and or Plugins to support those scenarios...etc. ? 

For defining tools you [could use 
toolchains|https://maven.apache.org/guides/mini/guide-using-toolchains.html]? 

Unit tests are done by using maven-surefire-plugin and integration tests should 
be done using maven-failsafe-plugin which is in a different life cycyle 
phase...sometimes it makes sense to use a profile so you can turn on running 
integration tests...
Running on Jenkins can automatically detected by a profile ?

Kind regards
Karl Heinz Marbaise


was (Author: khmarbaise):
What do you mean by controlling sub modules by profile? You mean things like 
this:
{code}

  
...

 WhatEver
   
 

{code}
This is a bad idea...Where is the difference between your {{dev}}, 
{{dev-install}} ? Can you give real world examples where you build differs in 
those things? Best would be to have a real example project which shows the 
points you have?

Furthermore why are there differences between: {{fred-system-test}}, 
{{fred-linux-system-test}}, {{jane-system-test}} etc. ? What are the real 
differences here? Tools ? 
If so why not using {{mvn -pl ModuleYouWouldLikeToBuild}} plus dependent via 
{{mvn -pl Moduly -amd}} ?

To make differences between OS you can simply use profiles like the following:
{code}

  
running-linux

 
   linux
 

   
 ...
   
   
  
running-windows

 
   windows
 

   
 ...
   
   

{code}

And why do you need differences between users ? It would be very helpful if you 
can give real world examples how your build looks like (best would be an 
example project on Github) so we have concrete things where we can discuss 
about and may be i can see if i can help to improve your build or may be how we 
might need to change Maven and or Plugins to support those scenarios...etc. ? 

For defining tools you could use toolchains? 

Unit tests are done by using maven-surefire-plugin and integration tests should 
be done using maven-failsafe-plugin which is in a different life cycyle 
phase...sometimes it makes sense to use a profile so you can turn on running 
integration tests...
Running on Jenkins can automatically detected by a profile ?

Kind regards
Karl Heinz Marbaise

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build 

[jira] [Commented] (MNG-6083) Maven 3.3.9 breaks release:perform by not including maven.config

2016-09-04 Thread Karl Heinz Marbaise (JIRA)

[ 
https://issues.apache.org/jira/browse/MNG-6083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462819#comment-15462819
 ] 

Karl Heinz Marbaise commented on MNG-6083:
--

What do you mean by controlling sub modules by profile? You mean things like 
this:
{code}

  
...

 WhatEver
   
 

{code}
This is a bad idea...Where is the difference between your {{dev}}, 
{{dev-install}} ? Can you give real world examples where you build differs in 
those things? Best would be to have a real example project which shows the 
points you have?

Furthermore why are there differences between: {{fred-system-test}}, 
{{fred-linux-system-test}}, {{jane-system-test}} etc. ? What are the real 
differences here? Tools ? 
If so why not using {{mvn -pl ModuleYouWouldLikeToBuild}} plus dependent via 
{{mvn -pl Moduly -amd}} ?

To make differences between OS you can simply use profiles like the following:
{code}

  
running-linux

 
   linux
 

   
 ...
   
   
  
running-windows

 
   windows
 

   
 ...
   
   

{code}

And why do you need differences between users ? It would be very helpful if you 
can give real world examples how your build looks like (best would be an 
example project on Github) so we have concrete things where we can discuss 
about and may be i can see if i can help to improve your build or may be how we 
might need to change Maven and or Plugins to support those scenarios...etc. ? 

For defining tools you could use toolchains? 

Unit tests are done by using maven-surefire-plugin and integration tests should 
be done using maven-failsafe-plugin which is in a different life cycyle 
phase...sometimes it makes sense to use a profile so you can turn on running 
integration tests...
Running on Jenkins can automatically detected by a profile ?

Kind regards
Karl Heinz Marbaise

> Maven 3.3.9 breaks release:perform by not including maven.config
> 
>
> Key: MNG-6083
> URL: https://issues.apache.org/jira/browse/MNG-6083
> Project: Maven
>  Issue Type: Bug
>  Components: General
>Affects Versions: 3.3.9
>Reporter: Robert Patrick
>Priority: Blocker
>
> Our release process runs both our build and our integration tests.  The 
> integration tests rely on our project root directory's .mvn/maven.config file 
> to run properly.  The maven.config file is NOT checked into the source tree 
> because it contains environment-specific values so each developer has their 
> own version of it on each machine on which they build.
> This has been working fine for months now but simply changing the version of 
> Maven used from 3.3.3 to 3.3.9 causes the build to break due to not having 
> the -Ds defined in $PROJECT_ROOT/.mvn/maven.config.
> It appears that the release:perform goal checks out the release source in 
> another location and with Maven 3.3.9, the maven.config from the original 
> location is not being used.  The build specifies the release-plugin version 
> so the difference seems to be in the core Maven distribution.



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


[jira] [Created] (MSHARED-587) remove logger level API from MessageBuilder

2016-09-04 Thread JIRA
Hervé Boutemy created MSHARED-587:
-

 Summary: remove logger level API from MessageBuilder
 Key: MSHARED-587
 URL: https://issues.apache.org/jira/browse/MSHARED-587
 Project: Maven Shared Components
  Issue Type: Improvement
  Components: maven-shared-utils
Affects Versions: maven-shared-utils-3.1.0
Reporter: Hervé Boutemy
Assignee: Hervé Boutemy
 Fix For: maven-shared-utils-3.1.1


debug(), info() and error() are not intended for messages: they are only 
intended for log level displaying from slf4j provider implementation: having 
these methods in MessageBuilder is confusing (and hard to explain)
moving them to another interface would make things more clear



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


[jira] [Commented] (SUREFIRE-1254) add color messages

2016-09-04 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/SUREFIRE-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462522#comment-15462522
 ] 

ASF GitHub Bot commented on SUREFIRE-1254:
--

Github user Tibor17 commented on the issue:

https://github.com/apache/maven-surefire/pull/117
  
@hboutemy I will remove the SPI. The code will be simple if I just move the 
implementation to `surefire-common`. I thought that `surefire-common` appeared 
in classpath of forked jvm but I see now the classpath and no such artifact is 
in there.


> add color messages
> --
>
> Key: SUREFIRE-1254
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1254
> Project: Maven Surefire
>  Issue Type: New Feature
>  Components: Maven Failsafe Plugin, Maven Surefire Plugin
>Reporter: Hervé Boutemy
>Assignee: Tibor Digana
> Fix For: 2.19.2
>
>
> with MNG-3507 fixed, adding colors to tests results would improve readability



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


[jira] [Commented] (SUREFIRE-1254) add color messages

2016-09-04 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/SUREFIRE-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462495#comment-15462495
 ] 

ASF GitHub Bot commented on SUREFIRE-1254:
--

Github user Tibor17 commented on the issue:

https://github.com/apache/maven-surefire/pull/117
  
@hboutemy 
Hi Herve, I will amend the commit. So one commit would still appear however 
it is in progress. Surefire report has I think three place with logger only.
Maybe important to know. I use ConsoleLogger in with methods like 
`debug/info/warning/errror` in in-plugin jvm and forked jvm as well. This was 
here all the history of Surefire but I only extended with few more methods. The 
implementations should be different in forked-jvm and simply, as higher design 
principle was, the surefire providers are slaves and they only encode and send 
a message to main process or receive a command to do. The main process does 
what it has to do; either creates a report of displays message in console. From 
the same principle in-plugin jvm is the only place where the ClassLoader should 
see ANSI and MessageBuilder of m-shared-u. So this separation is safe because 
such classes will never be loaded or failed to load in forked jvm and this 
prevents me from having ugly jira issues. So I decided to use SPI to separate 
implementation which is in surefire-common from surefire-api which is used 
everywhere. The SPI is a builder of colored messages only.
So now we will have logs like `[INFO] Running MyTest` with colors instead 
of `Running MyTest`. 
Three advantages:
+ I fixed the issue you reported 
https://issues.apache.org/jira/browse/SUREFIRE-1254
+ many people reported bug that Surefire writes anything in consolve, so 
logger will again control the output and we don't have to add configuration 
parameter in plugin which is good, thus we fixed 
https://issues.apache.org/jira/browse/SUREFIRE-725 as well
+ and what I like is peace in code because as I told you before developers 
come and go to Surefire and everybody solved his problem without maintaining 
for long time. And that's the reason why logger was sometimes System.out, or 
System.err, or ConsoleLogger or mojo logger. I like when the code has internal 
principles that the attitude is just one; unlike use directly worked with 
stream PrintWriter which was wrapped stream of System.out which disallowed you 
to use normal logger like in Maven with slf4j and disallowed you to see 
messages like `[INFO] ...` etc.


> add color messages
> --
>
> Key: SUREFIRE-1254
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1254
> Project: Maven Surefire
>  Issue Type: New Feature
>  Components: Maven Failsafe Plugin, Maven Surefire Plugin
>Reporter: Hervé Boutemy
>Assignee: Tibor Digana
> Fix For: 2.19.2
>
>
> with MNG-3507 fixed, adding colors to tests results would improve readability



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


[jira] [Commented] (SUREFIRE-1254) add color messages

2016-09-04 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/SUREFIRE-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462470#comment-15462470
 ] 

ASF GitHub Bot commented on SUREFIRE-1254:
--

Github user Tibor17 commented on a diff in the pull request:

https://github.com/apache/maven-surefire/pull/117#discussion_r77448156
  
--- Diff: maven-failsafe-plugin/pom.xml ---
@@ -127,6 +127,19 @@
   true
 
   
+  
+shared-logging-generated-sources
--- End diff --

Good point. I used m-shared-u:3.1.0 but there was compilation error I know 
from branch 3.0-rc1.
One class of m-shared-u appeared in another package related to report. I 
don't remember the name of the class but it can be easily reproduced.
This code would have very short life time because we already have branch 
`3.0-rc1` and one IT should be fixed and Surefire 2.x is gone.


> add color messages
> --
>
> Key: SUREFIRE-1254
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1254
> Project: Maven Surefire
>  Issue Type: New Feature
>  Components: Maven Failsafe Plugin, Maven Surefire Plugin
>Reporter: Hervé Boutemy
>Assignee: Tibor Digana
> Fix For: 2.19.2
>
>
> with MNG-3507 fixed, adding colors to tests results would improve readability



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


[jira] [Commented] (SUREFIRE-1254) add color messages

2016-09-04 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/SUREFIRE-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462465#comment-15462465
 ] 

ASF GitHub Bot commented on SUREFIRE-1254:
--

Github user Tibor17 commented on a diff in the pull request:

https://github.com/apache/maven-surefire/pull/117#discussion_r77448108
  
--- Diff: 
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java
 ---
@@ -0,0 +1,126 @@
+package org.apache.maven.plugin.surefire.log;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.surefire.report.ConsoleLogger;
+
+/**
+ * Wrapper logger of miscellaneous (Maven 2.2.1 or 3.1) implementations of 
{@link Log}.
+ * Calling {@link Log#isInfoEnabled()} before {@link 
Log#info(CharSequence)} due to Maven 2.2.1.
+ *
+ * @author mailto:tibordig...@apache.org;>Tibor Digana 
(tibor17)
+ * @since 2.19.2
+ * @see ConsoleLogger
+ */
+public final class PluginConsoleLogger
+implements ConsoleLogger
+{
+private final Log mojoLogger;
+
+public PluginConsoleLogger( Log mojoLogger )
+{
+this.mojoLogger = mojoLogger;
+}
+
+public boolean isDebugEnabled()
+{
+return mojoLogger.isDebugEnabled();
+}
+
+public void debug( String message )
+{
+if ( mojoLogger.isDebugEnabled() )
+{
+mojoLogger.debug( message );
--- End diff --

The purpose is to separate Mojo Logger.  I cannot use Mojo in forked JVM. 
Many times the code uses the same classes and interfaces in in-plugin tests or 
forked-jvm tests but the same classes are extended and behave different in in 
these two places however the super type is used eveywhere like polymorphism. 
The same happened with ConsoleLogger and it has advantage because all can be 
developed independently and the logger would be same (unlike sometimes we used 
System.out and Mojo logger or console logger), so now it's only one.
The important things is that `ConsoleLogger` does not need e.g. 
`isDebugEnabled` method but `AbstractSurefireMojo` used this for long time, so 
I decided to use concrete implementation class of `ConsoleLogger` in MOJO but 
that's the second reason to have this class here :)
Unfortunately we use Java 5; otherwise you would see those annotations in 
methods implemented from interface via `@Override`.


> add color messages
> --
>
> Key: SUREFIRE-1254
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1254
> Project: Maven Surefire
>  Issue Type: New Feature
>  Components: Maven Failsafe Plugin, Maven Surefire Plugin
>Reporter: Hervé Boutemy
>Assignee: Tibor Digana
> Fix For: 2.19.2
>
>
> with MNG-3507 fixed, adding colors to tests results would improve readability



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


[jira] [Commented] (SUREFIRE-1254) add color messages

2016-09-04 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/SUREFIRE-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462384#comment-15462384
 ] 

ASF GitHub Bot commented on SUREFIRE-1254:
--

Github user hboutemy commented on a diff in the pull request:

https://github.com/apache/maven-surefire/pull/117#discussion_r77447554
  
--- Diff: 
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java
 ---
@@ -0,0 +1,126 @@
+package org.apache.maven.plugin.surefire.log;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.surefire.report.ConsoleLogger;
+
+/**
+ * Wrapper logger of miscellaneous (Maven 2.2.1 or 3.1) implementations of 
{@link Log}.
+ * Calling {@link Log#isInfoEnabled()} before {@link 
Log#info(CharSequence)} due to Maven 2.2.1.
+ *
+ * @author mailto:tibordig...@apache.org;>Tibor Digana 
(tibor17)
+ * @since 2.19.2
+ * @see ConsoleLogger
+ */
+public final class PluginConsoleLogger
+implements ConsoleLogger
+{
+private final Log mojoLogger;
+
+public PluginConsoleLogger( Log mojoLogger )
+{
+this.mojoLogger = mojoLogger;
+}
+
+public boolean isDebugEnabled()
+{
+return mojoLogger.isDebugEnabled();
+}
+
+public void debug( String message )
+{
+if ( mojoLogger.isDebugEnabled() )
+{
+mojoLogger.debug( message );
--- End diff --

wow, the whole message with debug level color, and more generally each 
message with level color? this will give too much color.
I need to see the effective result, but if it's really what I fear, it was 
not the intent when adding color to Maven output: the intent is just to have a 
few colored words with general normal message (and nothing else than level with 
level color)


> add color messages
> --
>
> Key: SUREFIRE-1254
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1254
> Project: Maven Surefire
>  Issue Type: New Feature
>  Components: Maven Failsafe Plugin, Maven Surefire Plugin
>Reporter: Hervé Boutemy
>Assignee: Tibor Digana
> Fix For: 2.19.2
>
>
> with MNG-3507 fixed, adding colors to tests results would improve readability



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


[jira] [Commented] (SUREFIRE-1254) add color messages

2016-09-04 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/SUREFIRE-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15462362#comment-15462362
 ] 

ASF GitHub Bot commented on SUREFIRE-1254:
--

Github user hboutemy commented on a diff in the pull request:

https://github.com/apache/maven-surefire/pull/117#discussion_r77447349
  
--- Diff: maven-failsafe-plugin/pom.xml ---
@@ -127,6 +127,19 @@
   true
 
   
+  
+shared-logging-generated-sources
--- End diff --

IMHO, a little comment to explain why the source code is rebuilt here could 
be useful for future maintainers


> add color messages
> --
>
> Key: SUREFIRE-1254
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1254
> Project: Maven Surefire
>  Issue Type: New Feature
>  Components: Maven Failsafe Plugin, Maven Surefire Plugin
>Reporter: Hervé Boutemy
>Assignee: Tibor Digana
> Fix For: 2.19.2
>
>
> with MNG-3507 fixed, adding colors to tests results would improve readability



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