You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2018/12/29 21:19:45 UTC

[maven] branch MNG-6401 updated (f20312a -> 5884f05)

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a change to branch MNG-6401
in repository https://gitbox.apache.org/repos/asf/maven.git.


 discard f20312a  [MNG-6401] Cannot interpolate property in proxy port of settings.xml
     add 9f07b03  [MNG-6261] - using File apis to compare
     add e4e33f7  [MNG-6261] Relative parent POM resolution failing in 3.5.0 with complex multimodule builds
     add 732e7de  [MNG-6529] ProjectBuilder.build(List<Project> ...) honor request.isResolveDependency
     add c6bdafe  [MNG-5965] Parallel build multiplies work if multiple goals are given
     add 6c4c2e3  Change to keep only 5 artifacts on master and on branches only 1 artifact.
     add c7ab987  [MNG-6544] Replace CacheUtils#{eq,hash} with Objects
     add 71128cb  spelling: vertices
     add 9c94626  [MNG-6213] Validate scope in dependencyManagement
     new 5884f05  [MNG-6401] Cannot interpolate property in proxy port of settings.xml

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (f20312a)
            \
             N -- N -- N   refs/heads/MNG-6401 (5884f05)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Jenkinsfile                                        |  2 +-
 .../multithreaded/ConcurrencyDependencyGraph.java  |  9 +--
 .../multithreaded/MultiThreadedBuilder.java        | 10 +--
 .../java/org/apache/maven/plugin/CacheUtils.java   | 53 ++++++++-------
 .../maven/project/DefaultProjectBuilder.java       | 15 +++--
 .../org/apache/maven/project/ProjectSorter.java    |  2 +-
 .../internal/ConcurrencyDependencyGraphTest.java   |  2 +-
 .../apache/maven/project/ProjectBuilderTest.java   | 42 ++++++++++++
 .../projects/basic-resolveDependencies.xml         | 15 +++++
 .../maven/model/building/DefaultModelBuilder.java  |  3 +-
 .../maven/model/building/FileModelSource.java      | 23 +++++++
 .../model/validation/DefaultModelValidator.java    | 10 ++-
 .../maven/model/building/FileModelSourceTest.java  | 75 ++++++++++++++++++++++
 .../validation/DefaultModelValidatorTest.java      | 10 +++
 ...ier.xml => bad-dependency-management-scope.xml} | 38 ++++++++++-
 pom.xml                                            |  3 +
 16 files changed, 270 insertions(+), 42 deletions(-)
 create mode 100644 maven-core/src/test/resources/projects/basic-resolveDependencies.xml
 create mode 100644 maven-model-builder/src/test/java/org/apache/maven/model/building/FileModelSourceTest.java
 copy maven-model-builder/src/test/resources/poms/validation/{bad-import-scope-classifier.xml => bad-dependency-management-scope.xml} (53%)


[maven] 01/01: [MNG-6401] Cannot interpolate property in proxy port of settings.xml

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch MNG-6401
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 5884f05ed6684a39e7f52c8017c57ce88e37bd2e
Author: KATADA Junya <jk...@gmail.com>
AuthorDate: Tue May 1 18:28:28 2018 +0900

    [MNG-6401] Cannot interpolate property in proxy port of settings.xml
    
    This closes #163
---
 .../settings/building/DefaultSettingsBuilder.java  | 57 +++++++++-------------
 1 file changed, 22 insertions(+), 35 deletions(-)

diff --git a/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java b/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
index 3cdae7d..cb77e95 100644
--- a/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
+++ b/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
@@ -21,14 +21,13 @@ package org.apache.maven.settings.building;
 
 import java.io.File;
 import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.maven.building.FileSource;
 import org.apache.maven.building.Source;
+import org.apache.maven.building.StringSource;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.settings.TrackableBase;
 import org.apache.maven.settings.io.SettingsParseException;
@@ -43,6 +42,8 @@ import org.codehaus.plexus.interpolation.InterpolationException;
 import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
 import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
 import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.XmlStreamReader;
 
 /**
  * Builds the effective settings from a user settings file and/or a global settings file.
@@ -101,8 +102,6 @@ public class DefaultSettingsBuilder
 
         problems.setSource( "" );
 
-        userSettings = interpolate( userSettings, request, problems );
-
         // for the special case of a drive-relative Windows path, make sure it's absolute to save plugins from trouble
         String localRepository = userSettings.getLocalRepository();
         if ( localRepository != null && localRepository.length() > 0 )
@@ -161,6 +160,19 @@ public class DefaultSettingsBuilder
 
         problems.setSource( settingsSource.getLocation() );
 
+        Source interpolatedSettingsSource;
+        try ( XmlStreamReader xmlStreamReader = new XmlStreamReader( settingsSource.getInputStream() ) )
+        {
+            String serializedSettings = IOUtil.toString( xmlStreamReader );
+            interpolatedSettingsSource = new StringSource( interpolate( serializedSettings, request, problems ) );
+        }
+        catch ( IOException e )
+        {
+            problems.add( SettingsProblem.Severity.FATAL, "Non-readable settings " + settingsSource.getLocation()
+                + ": " + e.getMessage(), -1, -1, e );
+            return new Settings();
+        }
+
         Settings settings;
 
         try
@@ -169,13 +181,13 @@ public class DefaultSettingsBuilder
 
             try
             {
-                settings = settingsReader.read( settingsSource.getInputStream(), options );
+                settings = settingsReader.read( interpolatedSettingsSource.getInputStream(), options );
             }
             catch ( SettingsParseException e )
             {
                 options = Collections.singletonMap( SettingsReader.IS_STRICT, Boolean.FALSE );
 
-                settings = settingsReader.read( settingsSource.getInputStream(), options );
+                settings = settingsReader.read( interpolatedSettingsSource.getInputStream(), options );
 
                 problems.add( SettingsProblem.Severity.WARNING, e.getMessage(), e.getLineNumber(), e.getColumnNumber(),
                               e );
@@ -199,22 +211,9 @@ public class DefaultSettingsBuilder
         return settings;
     }
 
-    private Settings interpolate( Settings settings, SettingsBuildingRequest request,
+    private String interpolate( String serializedSettings, SettingsBuildingRequest request,
                                   SettingsProblemCollector problems )
     {
-        StringWriter writer = new StringWriter( 1024 * 4 );
-
-        try
-        {
-            settingsWriter.write( writer, null, settings );
-        }
-        catch ( IOException e )
-        {
-            throw new IllegalStateException( "Failed to serialize settings to memory", e );
-        }
-
-        String serializedSettings = writer.toString();
-
         RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
 
         interpolator.addValueSource( new PropertiesBasedValueSource( request.getUserProperties() ) );
@@ -246,29 +245,17 @@ public class DefaultSettingsBuilder
             }
         } );
 
+        String result;
         try
         {
-            serializedSettings = interpolator.interpolate( serializedSettings, "settings" );
+            result = interpolator.interpolate( serializedSettings, "settings" );
         }
         catch ( InterpolationException e )
         {
             problems.add( SettingsProblem.Severity.ERROR, "Failed to interpolate settings: " + e.getMessage(), -1, -1,
                           e );
 
-            return settings;
-        }
-
-        Settings result;
-        try
-        {
-            Map<String, ?> options = Collections.singletonMap( SettingsReader.IS_STRICT, Boolean.FALSE );
-            result = settingsReader.read( new StringReader( serializedSettings ), options );
-        }
-        catch ( IOException e )
-        {
-            problems.add( SettingsProblem.Severity.ERROR, "Failed to interpolate settings: " + e.getMessage(), -1, -1,
-                          e );
-            return settings;
+            return serializedSettings;
         }
 
         return result;