You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/05/05 09:51:29 UTC

[maven] branch MNG-6656 updated: [MNG-6656] Move creation of TransformerContext to proper location Fix indentation for reactor dependencies

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

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


The following commit(s) were added to refs/heads/MNG-6656 by this push:
     new 1af5ee7  [MNG-6656] Move creation of TransformerContext to proper location Fix indentation for reactor dependencies
1af5ee7 is described below

commit 1af5ee7a36335e87f49553ee4ea8dc02a2fbb2b6
Author: rfscholte <rf...@apache.org>
AuthorDate: Tue May 5 11:51:20 2020 +0200

    [MNG-6656] Move creation of TransformerContext to proper location
    Fix indentation for reactor dependencies
---
 .../maven/project/DefaultProjectBuilder.java       | 57 ++++++++++------------
 .../xml/sax/filter/ReactorDependencyXMLFilter.java | 23 ++++++---
 2 files changed, 44 insertions(+), 36 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index 265633d..9645ca1 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -296,35 +296,6 @@ public class DefaultProjectBuilder
 
         RequestTrace trace = RequestTrace.newChild( null, configuration ).newChild( request );
 
-        if ( Features.buildConsumer().isActive() )
-        {
-            TransformerContext context = new TransformerContext()
-            {
-                @Override
-                public String getUserProperty( String key )
-                {
-                    return config.session.getUserProperties().get( key );
-                }
-
-                @Override
-                public Model getRawModel( Path p )
-                {
-                    ReactorModelPool pool = config.modelPool;
-                    return pool != null ? pool.get( p ) : null;
-                }
-
-                @Override
-                public Model getRawModel( String groupId, String artifactId )
-                {
-                    ReactorModelPool pool = config.modelPool;
-                    return pool != null ? pool.get( groupId, artifactId, null ) : null;
-                }
-            };
-            config.session.getData().set( TransformerContext.class, context );
-            
-            request.setTransformerContext( context );
-        }
-        
         ModelResolver resolver =
             new ProjectModelResolver( config.session, trace, repoSystem, repositoryManager, config.repositories,
                                       configuration.getRepositoryMerging(), config.modelPool );
@@ -339,6 +310,7 @@ public class DefaultProjectBuilder
         request.setBuildStartTime( configuration.getBuildStartTime() );
         request.setModelResolver( resolver );
         request.setModelCache( config.modelCache );
+        request.setTransformerContext( (TransformerContext) config.session.getData().get( TransformerContext.class ) );
 
         return request;
     }
@@ -427,7 +399,32 @@ public class DefaultProjectBuilder
         List<InterimResult> interimResults = new ArrayList<>();
 
         ReactorModelPool.Builder poolBuilder = new ReactorModelPool.Builder();
-        ReactorModelPool modelPool = poolBuilder.build();
+        final ReactorModelPool modelPool = poolBuilder.build();
+        
+        if ( Features.buildConsumer().isActive() )
+        {
+            final TransformerContext context = new TransformerContext()
+            {
+                @Override
+                public String getUserProperty( String key )
+                {
+                    return request.getUserProperties().getProperty( key );
+                }
+    
+                @Override
+                public Model getRawModel( Path p )
+                {
+                    return modelPool.get( p );
+                }
+    
+                @Override
+                public Model getRawModel( String groupId, String artifactId )
+                {
+                    return modelPool.get( groupId, artifactId, null );
+                }
+            };
+            request.getRepositorySession().getData().set( TransformerContext.class, context );
+        }
 
         InternalConfig config = new InternalConfig( request, modelPool,
                 useGlobalModelCache() ? getModelCache() : new ReactorModelCache() );
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java
index 6f80f5a..38f8fb8 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java
@@ -37,6 +37,9 @@ public class ReactorDependencyXMLFilter extends AbstractEventXMLFilter
 
     // states
     private String state;
+    
+    // whiteSpace after <dependency>, to be used to position <version>
+    private String dependencyWhitespace = "";
 
     private boolean hasVersion;
 
@@ -78,6 +81,9 @@ public class ReactorDependencyXMLFilter extends AbstractEventXMLFilter
             final String eventState = state;
             switch ( eventState )
             {
+                case "dependency":
+                    dependencyWhitespace = new String( ch, start, length );
+                    break;
                 case "groupId":
                     groupId = new String( ch, start, length );
                     break;
@@ -107,11 +113,16 @@ public class ReactorDependencyXMLFilter extends AbstractEventXMLFilter
                         // dependency is not part of reactor, probably it is managed
                         if ( version != null )
                         {
-                            String versionQName = SAXEventUtils.renameQName( qName, "version" );
-                            
-                            super.startElement( uri, "version", versionQName, null );
-                            super.characters( version.toCharArray(), 0, version.length() );
-                            super.endElement( uri, "version", versionQName );
+                            try ( Includer i = super.include() )
+                            {
+                                super.characters( dependencyWhitespace.toCharArray(), 0,
+                                                  dependencyWhitespace.length() );
+                                String versionQName = SAXEventUtils.renameQName( qName, "version" );
+                                
+                                super.startElement( uri, "version", versionQName, null );
+                                super.characters( version.toCharArray(), 0, version.length() );
+                                super.endElement( uri, "version", versionQName );
+                            }
                         }
                     }
                     super.executeEvents();
@@ -131,7 +142,7 @@ public class ReactorDependencyXMLFilter extends AbstractEventXMLFilter
 
         super.endElement( uri, localName, qName );
         
-        state = "dependency";
+        state = "";
     }
 
     private String getVersion()