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/06/16 19:40:48 UTC

[maven] branch MNG-6656 updated (020b503 -> 1737d23)

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

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


    from 020b503  Adjust apache-maven-wrapper pom for IT
     add 2537e53  [MNG-6828] DependencyResolutionException breaks serialization
     add b4725db  Fix maven-checkstyle-plugin 3.1.1 reported error
     add ef8c95e  [MNG-6937] StringSearchModelInterpolatorTest fails on symlinked paths
     new dc1d8c7  Merge branch 'master' into MNG-6656
     new cc620d2  Adjust code based on review comments
     new 1737d23  ReAdd DefaultModelSourceTransformer

The 3 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:
 .../apache/maven/artifact/ArtifactScopeEnum.java   |   2 +-
 .../metadata/io/DefaultMetadataReader.java         |   4 +-
 .../aether/ConsumerModelSourceTransformer.java     |   3 +-
 .../DefaultRepositorySystemSessionFactory.java     |   9 +-
 .../maven/project/DefaultProjectBuilder.java       |  10 +-
 .../project/DependencyResolutionException.java     |   2 +-
 .../apache/maven/project/ProjectModelResolver.java |   6 +-
 .../org/apache/maven/project/ReactorModelPool.java |   3 -
 .../toolchain/io/DefaultToolchainsReader.java      |   4 +-
 .../toolchain/io/DefaultToolchainsWriter.java      |   2 +-
 .../DefaultConsumerPomXMLFilterFactory.java        |   2 +
 .../building/AbstractModelSourceTransformer.java   |   2 +
 ...ormer.java => BuildModelSourceTransformer.java} |   3 +-
 .../building/DefaultModelBuildingRequest.java      |   2 +-
 .../building/DefaultModelSourceTransformer.java    |  58 +----
 .../maven/model/building/TransformerContext.java   |  26 +-
 .../apache/maven/model/io/DefaultModelReader.java  |   4 +-
 .../apache/maven/model/io/DefaultModelWriter.java  |   4 +-
 .../DefaultInheritanceAssemblerTest.java           |  21 +-
 .../StringSearchModelInterpolatorTest.java         |   2 +-
 .../internal/DefaultVersionRangeResolver.java      |   2 +-
 .../internal/DefaultVersionResolver.java           |   2 +-
 .../maven/settings/io/DefaultSettingsReader.java   |   4 +-
 .../maven/settings/io/DefaultSettingsWriter.java   |   4 +-
 .../xml/sax/filter/BuildPomXMLFilterFactory.java   |   4 +-
 .../xml/sax/filter/BuildPomXMLFilterListener.java  |   2 +
 .../maven/xml/sax/LexicalHandlerVerifier.java      | 277 ---------------------
 27 files changed, 93 insertions(+), 371 deletions(-)
 copy maven-model-builder/src/main/java/org/apache/maven/model/building/{DefaultModelSourceTransformer.java => BuildModelSourceTransformer.java} (95%)
 delete mode 100644 maven-xml/src/test/java/org/apache/maven/xml/sax/LexicalHandlerVerifier.java


[maven] 02/03: Adjust code based on review comments

Posted by rf...@apache.org.
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

commit cc620d2f0cea7cd40aee60b3a72582c5c4fde3f1
Author: rfscholte <rf...@apache.org>
AuthorDate: Tue Jun 16 21:39:50 2020 +0200

    Adjust code based on review comments
---
 .../aether/ConsumerModelSourceTransformer.java     |   3 +-
 .../DefaultRepositorySystemSessionFactory.java     |   9 +-
 .../maven/project/DefaultProjectBuilder.java       |  10 +-
 .../apache/maven/project/ProjectModelResolver.java |   6 +-
 .../org/apache/maven/project/ReactorModelPool.java |   3 -
 .../DefaultConsumerPomXMLFilterFactory.java        |   2 +
 .../building/AbstractModelSourceTransformer.java   |   2 +
 ...ormer.java => BuildModelSourceTransformer.java} |   3 +-
 .../building/DefaultModelBuildingRequest.java      |   2 +-
 .../maven/model/building/TransformerContext.java   |  26 +-
 .../DefaultInheritanceAssemblerTest.java           |  21 +-
 .../xml/sax/filter/BuildPomXMLFilterFactory.java   |   4 +-
 .../xml/sax/filter/BuildPomXMLFilterListener.java  |   2 +
 .../maven/xml/sax/LexicalHandlerVerifier.java      | 277 ---------------------
 14 files changed, 66 insertions(+), 304 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/ConsumerModelSourceTransformer.java b/maven-core/src/main/java/org/apache/maven/internal/aether/ConsumerModelSourceTransformer.java
index 8ca0ca6..728c78e 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/ConsumerModelSourceTransformer.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/ConsumerModelSourceTransformer.java
@@ -55,9 +55,8 @@ class ConsumerModelSourceTransformer extends AbstractModelSourceTransformer
      * This transformer will ensure that encoding and version are kept.
      * However, it cannot prevent:
      * <ul>
-     *   <li>line-endings will be unix-style(LF)</li>
      *   <li>attributes will be on one line</li>
-     *   <li>Unnecessary whitespace before the rootelement will be remove</li> 
+     *   <li>Unnecessary whitespace before the rootelement will be removed</li> 
      * </ul>
      */
     @Override
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index d90c1d8..28f75cd 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -26,6 +26,7 @@ import org.apache.maven.eventspy.internal.EventSpyDispatcher;
 import org.apache.maven.execution.MavenExecutionRequest;
 import org.apache.maven.feature.Features;
 import org.apache.maven.model.building.TransformerContext;
+import org.apache.maven.model.building.TransformerException;
 import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
 import org.apache.maven.settings.Mirror;
 import org.apache.maven.settings.Proxy;
@@ -41,6 +42,7 @@ import org.eclipse.aether.ConfigurationProperties;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.SessionData;
+import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
 import org.eclipse.aether.repository.RepositoryPolicy;
@@ -280,7 +282,7 @@ public class DefaultRepositorySystemSessionFactory
         return props.getProperty( "version", "unknown-version" );
     }
     
-    private Collection<FileTransformer> getTransformersForArtifact( final org.eclipse.aether.artifact.Artifact artifact,
+    private Collection<FileTransformer> getTransformersForArtifact( final Artifact artifact,
                                                                     final SessionData sessionData )
     {
         TransformerContext context = (TransformerContext) sessionData.get( TransformerContext.KEY );
@@ -299,15 +301,14 @@ public class DefaultRepositorySystemSessionFactory
                     {
                         return new ConsumerModelSourceTransformer().transform( pomFile.toPath(), context );
                     }
-                    catch ( org.apache.maven.model.building.TransformerException e )
+                    catch ( TransformerException e )
                     {
                         throw new TransformException( e );
                     }
                 }
                 
                 @Override
-                public org.eclipse.aether.artifact.Artifact transformArtifact( 
-                                                                   org.eclipse.aether.artifact.Artifact artifact )
+                public Artifact transformArtifact( Artifact artifact )
                 {
                     return artifact;
                 }
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 f09941b..624f6ad 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
@@ -161,7 +161,7 @@ public class DefaultProjectBuilder
 
             if ( project == null )
             {
-                ModelBuildingRequest request = getModelBuildingRequest( config, pomFile );
+                ModelBuildingRequest request = getModelBuildingRequest( config );
 
                 project = new MavenProject();
                 project.setFile( pomFile );
@@ -273,7 +273,7 @@ public class DefaultProjectBuilder
         return ids;
     }
 
-    private ModelBuildingRequest getModelBuildingRequest( InternalConfig config, File pomFile )
+    private ModelBuildingRequest getModelBuildingRequest( InternalConfig config )
     {
         ProjectBuildingRequest configuration = config.request;
 
@@ -444,7 +444,7 @@ public class DefaultProjectBuilder
     @SuppressWarnings( "checkstyle:parameternumber" )
     private boolean build( List<ProjectBuildingResult> results, List<InterimResult> interimResults,
                            Map<String, MavenProject> projectIndex, List<File> pomFiles, Set<File> aggregatorFiles,
-                           boolean isRoot, boolean recursive, InternalConfig config,
+                           boolean root, boolean recursive, InternalConfig config,
                            ReactorModelPool.Builder poolBuilder )
     {
         boolean noErrors = true;
@@ -453,7 +453,7 @@ public class DefaultProjectBuilder
         {
             aggregatorFiles.add( pomFile );
 
-            if ( !build( results, interimResults, projectIndex, pomFile, aggregatorFiles, isRoot, recursive, config,
+            if ( !build( results, interimResults, projectIndex, pomFile, aggregatorFiles, root, recursive, config,
                          poolBuilder ) )
             {
                 noErrors = false;
@@ -473,7 +473,7 @@ public class DefaultProjectBuilder
     {
         boolean noErrors = true;
 
-        ModelBuildingRequest request = getModelBuildingRequest( config, pomFile );
+        ModelBuildingRequest request = getModelBuildingRequest( config );
 
         MavenProject project = new MavenProject();
         project.setFile( pomFile );
diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
index 3b027e5..bcc3730 100644
--- a/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
+++ b/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Optional;
 import java.util.Set;
 
 import org.apache.maven.model.Dependency;
@@ -278,8 +277,9 @@ public class ProjectModelResolver
             
             if ( modelPool != null )
             {
-                Model model = Optional.ofNullable( modelPool.get( dependency.getGroupId(), dependency.getArtifactId(),
-                                                                  dependency.getVersion() ) ).orElse( null );
+                Model model =
+                    modelPool.get( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion() );
+
                 if ( model != null )
                 {
                     return new FileModelSource( model.getPomFile() );
diff --git a/maven-core/src/main/java/org/apache/maven/project/ReactorModelPool.java b/maven-core/src/main/java/org/apache/maven/project/ReactorModelPool.java
index 3a788e6..b96b14b 100644
--- a/maven-core/src/main/java/org/apache/maven/project/ReactorModelPool.java
+++ b/maven-core/src/main/java/org/apache/maven/project/ReactorModelPool.java
@@ -25,7 +25,6 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
-import java.util.NoSuchElementException;
 import java.util.Objects;
 import java.util.Set;
 
@@ -52,10 +51,8 @@ class ReactorModelPool
      * @param version, can be {@code null}
      * @return the matching model or {@code null}
      * @throws IllegalStateException if version was null and multiple modules share the same groupId + artifactId
-     * @throws NoSuchElementException if model could not be found
      */
     public Model get( String groupId, String artifactId, String version )
-        throws IllegalStateException, NoSuchElementException
     {
         return modelsByGa.getOrDefault( new GAKey( groupId, artifactId ), Collections.emptySet() ).stream()
                         .filter( m -> version == null || version.equals( getVersion( m ) ) )
diff --git a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java b/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
index f686ac2..f49e62d 100644
--- a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
@@ -26,6 +26,8 @@ import org.apache.maven.model.building.TransformerContext;
 import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilterFactory;
 
 /**
+ * The default implementation of the {@link ConsumerPomXMLFilterFactory}
+ * It will provide several values for the consumer pom based on its context.
  * 
  * @author Robert Scholte
  * @since 3.7.0
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelSourceTransformer.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelSourceTransformer.java
index 6fedada..0cf6f7a 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelSourceTransformer.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelSourceTransformer.java
@@ -44,6 +44,8 @@ import org.apache.maven.xml.sax.filter.AbstractSAXFilter;
 import org.xml.sax.SAXException;
 
 /**
+ * Offers a transformation implementation based on PipelineStreams.
+ * Subclasses are responsible for providing the right SAXFilter.
  * 
  * @author Robert Scholte
  * @since 3.7.0
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/BuildModelSourceTransformer.java
similarity index 95%
rename from maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java
rename to maven-model-builder/src/main/java/org/apache/maven/model/building/BuildModelSourceTransformer.java
index f410551..dbf9211 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/BuildModelSourceTransformer.java
@@ -37,13 +37,14 @@ import org.eclipse.sisu.Nullable;
 import org.xml.sax.SAXException;
 
 /**
+ * ModelSourceTransformer for the build pom
  * 
  * @author Robert Scholte
  * @since 3.7.0
  */
 @Named
 @Singleton
-public class DefaultModelSourceTransformer extends AbstractModelSourceTransformer
+class BuildModelSourceTransformer extends AbstractModelSourceTransformer
 {
     @Inject
     @Nullable
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
index b347eb4..2012bb1 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
@@ -38,7 +38,7 @@ import org.apache.maven.model.resolution.WorkspaceModelResolver;
 public class DefaultModelBuildingRequest
     implements ModelBuildingRequest
 {
-    private transient Model fileModel;
+    private Model fileModel;
 
     private Model rawModel;
 
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerContext.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerContext.java
index f012220..2f763a2 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerContext.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerContext.java
@@ -24,17 +24,41 @@ import java.nio.file.Path;
 import org.apache.maven.model.Model;
 
 /**
+ * Context used to transform a pom file.
+ * 
  * 
  * @author Robert Scholte
  * @since 3.7.0
  */
 public interface TransformerContext
 {
+    /**
+     * Key to get the TransformerContext from the SessionData
+     */
     Object KEY = TransformerContext.class;
     
+    /**
+     * Get the value of the commandline argument {@code -Dkey=value}
+     * @param key
+     * @return
+     */
     String getUserProperty( String key );
     
+    /**
+     * Get the model based on the path, will be used to resolve the parent based on relativePath
+     * 
+     * @param p the path
+     * @return the model, otherwise {@code null}
+     */
     Model getRawModel( Path p );
     
-    Model getRawModel( String groupId, String artifactId );
+    /**
+     * Get the model from the reactor based on the groupId and artifactId, will be used for reactor dependencies
+     * 
+     * @param groupId the groupId
+     * @param artifactId the artifactId
+     * @return the model, otherwise {@code null}
+     * @throws IllegalStateException if multiple versions of the same GA are part of the reactor
+     */
+    Model getRawModel( String groupId, String artifactId ) throws IllegalStateException;
 }
diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
index 54c178e..9924471 100644
--- a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
@@ -20,19 +20,24 @@ package org.apache.maven.model.inheritance;
  */
 
 import org.apache.maven.model.Model;
-import org.apache.maven.model.building.DefaultModelSourceTransformer;
+import org.apache.maven.model.building.AbstractModelSourceTransformer;
 import org.apache.maven.model.building.SimpleProblemCollector;
+import org.apache.maven.model.building.TransformerContext;
 import org.apache.maven.model.io.DefaultModelReader;
 import org.apache.maven.model.io.DefaultModelWriter;
-import org.apache.maven.model.io.ModelReader;
 import org.apache.maven.model.io.ModelWriter;
-
+import org.apache.maven.xml.sax.filter.AbstractSAXFilter;
+import org.xml.sax.SAXException;
 import org.xmlunit.matchers.CompareMatcher;
 
 import junit.framework.TestCase;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.Path;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerConfigurationException;
 
 import static org.junit.Assert.assertThat;
 
@@ -55,7 +60,15 @@ public class DefaultInheritanceAssemblerTest
         super.setUp();
 
         reader = new DefaultModelReader();
-        reader.setTransformer( new DefaultModelSourceTransformer() );
+        reader.setTransformer( new AbstractModelSourceTransformer()
+        {
+            @Override
+            protected AbstractSAXFilter getSAXFilter( Path pomFile, TransformerContext context )
+                throws TransformerConfigurationException, SAXException, ParserConfigurationException
+            {
+                return null;
+            }
+        } );
         writer = new DefaultModelWriter();
         assembler = new DefaultInheritanceAssembler();
     }
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java
index 910bc16..6f3f319 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java
@@ -35,11 +35,9 @@ import org.xml.sax.XMLReader;
 import org.xml.sax.ext.LexicalHandler;
 
 /**
- * Base class for third parties to extend. When annotating it with Named("somecustomname"),
- * Maven will pick this up as  instead of the DefaultBuildPomXMLFilterFactory 
+ * Base implementation for providing the BuildPomXML.
  * 
  * @author Robert Scholte
- * 
  * @since 3.7.0
  */
 public class BuildPomXMLFilterFactory
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java
index e984640..b97c757 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java
@@ -22,10 +22,12 @@ package org.apache.maven.xml.sax.filter;
 import java.nio.file.Path;
 
 /**
+ * Listener can be used to capture the result of the build pom
  * 
  * @author Robert Scholte
  * @since 3.7.0
  */
+@FunctionalInterface
 public interface BuildPomXMLFilterListener
 {
     /**
diff --git a/maven-xml/src/test/java/org/apache/maven/xml/sax/LexicalHandlerVerifier.java b/maven-xml/src/test/java/org/apache/maven/xml/sax/LexicalHandlerVerifier.java
deleted file mode 100644
index 49eb772..0000000
--- a/maven-xml/src/test/java/org/apache/maven/xml/sax/LexicalHandlerVerifier.java
+++ /dev/null
@@ -1,277 +0,0 @@
-package org.apache.maven.xml.sax;
-
-/*
- * 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 static org.xmlunit.assertj.XmlAssert.assertThat;
-
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Arrays;
-
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.maven.xml.Factories;
-import org.apache.maven.xml.sax.filter.AbstractSAXFilter;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLFilter;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.helpers.XMLFilterImpl;
-
-/**
- * Some tests to help understand the chain of events regarding XMLFilters, XMLReaders, LexicalHandlers and Transformers
- * 
- * @author Robert Scholte
- *
- */
-public class LexicalHandlerVerifier
-{
-    private static final String SAX_PROPERTIES_LEXICAL_HANDLER = "http://xml.org/sax/properties/lexical-handler";
-    
-    @Rule
-    public ExpectedException expectedException = ExpectedException.none();
-
-    @Test
-    public void parseXmlReader() throws Exception
-    {
-        expectedException.expect( UnsupportedOperationException.class );
-        expectedException.expectMessage( "LexicalHandlerVerifier" );
-
-        XMLReader reader = Factories.newXMLReader();
-        reader.setProperty( SAX_PROPERTIES_LEXICAL_HANDLER, new UnsupportedOperationExceptionLexicalHandler() );
-
-        InputSource inputSource = new InputSource( new StringReader( "<root><!-- COMMENT --></root>" ) ); 
-        reader.parse( inputSource );
-    }
-
-    @Test
-    public void parseXmlFilter() throws Exception
-    {
-        expectedException.expect( UnsupportedOperationException.class );
-        expectedException.expectMessage( "LexicalHandlerVerifier" );
-
-        XMLReader reader = Factories.newXMLReader();
-        reader.setProperty( SAX_PROPERTIES_LEXICAL_HANDLER, new UnsupportedOperationExceptionLexicalHandler() );
-        
-        XMLFilter filter = new XMLFilterImpl( reader );
-
-        InputSource inputSource = new InputSource( new StringReader( "<root><!-- COMMENT --></root>" ) ); 
-        filter.parse( inputSource );
-    }
-    
-    @Test
-    public void transformXmlReader() throws Exception
-    {
-        Writer writer = new StringWriter();
-        StreamResult result = new StreamResult( writer );
-
-        SAXTransformerFactory transformerFactory = (SAXTransformerFactory) Factories.newTransformerFactory();
-        TransformerHandler transformerHandler = transformerFactory.newTransformerHandler();
-        transformerHandler.setResult( result );
-        Transformer transformer = transformerFactory.newTransformer();
-        transformer.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "yes" );
-        
-        Source xmlSource = new StreamSource( new StringReader( "<root><!--COMMENT--></root>" ) );
-        
-        SAXResult transformResult = new SAXResult( transformerHandler );
-        transformResult.setLexicalHandler( new SortCommentLexicalHandler( transformerHandler ) );
-        transformer.transform( xmlSource, transformResult );
-        
-        assertThat( writer.toString() ).and( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
-            + "<root><!--CEMMNOT--></root>" ).areIdentical();
-    }
-
-    @Test
-    public void transformXmlFilter() throws Exception
-    {
-        Writer writer = new StringWriter();
-        StreamResult result = new StreamResult( writer );
-
-        SAXTransformerFactory transformerFactory = (SAXTransformerFactory) Factories.newTransformerFactory();
-        TransformerHandler transformerHandler = transformerFactory.newTransformerHandler();
-        transformerHandler.getTransformer().setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "yes" );
-        transformerHandler.setResult( result );
-        Transformer transformer = transformerFactory.newTransformer();
-
-        XMLReader reader = Factories.newXMLReader();
-        // in wrong order result will be CONNENT -->
-        AbstractSAXFilter filter2 = new M2NLexicalXMLFilter();
-        filter2.setParent( reader );
-        filter2.setLexicalHandler( transformerHandler );
-        
-        AbstractSAXFilter filter1 = new N2CLexicalXMLFilter( filter2 );
-
-        SAXSource transformSource = new SAXSource( filter1, new InputSource( new StringReader( "<root><!-- COMMENT --></root>" ) ) );
-
-        SAXResult transformResult = new SAXResult( transformerHandler );
-        transformResult.setLexicalHandler( filter1 );
-        transformer.transform( transformSource, transformResult );
-
-        assertThat( writer.toString() ).and( "<root><!-- CONNECT --></root>" ).areIdentical();
-    }
-
-    /**
-     * A LexicalHandler that'll throw an UnsupportedOperationException on every call.
-     * 
-     * @author Robert Scholte
-     */
-    static class UnsupportedOperationExceptionLexicalHandler implements LexicalHandler
-    {
-        @Override
-        public void startDTD( String name, String publicId, String systemId )
-            throws SAXException
-        {
-            throw new UnsupportedOperationException( "LexicalHandlerVerifier" );
-        }
-
-        @Override
-        public void endDTD()
-            throws SAXException
-        {
-            throw new UnsupportedOperationException( "LexicalHandlerVerifier" );
-        }
-
-        @Override
-        public void startEntity( String name )
-            throws SAXException
-        {
-            throw new UnsupportedOperationException( "LexicalHandlerVerifier" );
-        }
-
-        @Override
-        public void endEntity( String name )
-            throws SAXException
-        {
-            throw new UnsupportedOperationException( "LexicalHandlerVerifier" );
-        }
-
-        @Override
-        public void startCDATA()
-            throws SAXException
-        {
-            throw new UnsupportedOperationException( "LexicalHandlerVerifier" );
-        }
-
-        @Override
-        public void endCDATA()
-            throws SAXException
-        {
-            throw new UnsupportedOperationException( "LexicalHandlerVerifier" );
-        }
-
-        @Override
-        public void comment( char[] ch, int start, int length )
-            throws SAXException
-        {
-            throw new UnsupportedOperationException( "LexicalHandlerVerifier" );
-        }
-    }
-    
-    /**
-     * Sorts the comment chars,will throw an UnsupportedOperationException on every other method
-     * 
-     * @author Robert Scholte
-     *
-     */
-    static class SortCommentLexicalHandler extends UnsupportedOperationExceptionLexicalHandler
-    {
-        private final LexicalHandler lexicalHandler;
-        
-        public SortCommentLexicalHandler( LexicalHandler lexicalHandler )
-        {
-            this.lexicalHandler = lexicalHandler;
-        }
-
-
-        @Override
-        public void comment( char[] ch, int start, int length )
-            throws SAXException
-        {
-            char[] chars = new String( ch, start, length ).toCharArray();
-            Arrays.sort(chars);
-            lexicalHandler.comment( chars, 0, chars.length );
-        }
-    }
-    
-    /**
-     * AbstractSAXFilter implements both XMLReader and LexicalHandler
-     * 
-     * @author Robert Scholte
-     *
-     */
-    static class N2CLexicalXMLFilter extends AbstractSAXFilter
-    {
-        public N2CLexicalXMLFilter()
-        {
-            super( null );
-        }
-        
-        public <T extends XMLReader & LexicalHandler> N2CLexicalXMLFilter( T parent )
-        {
-            super( parent );
-        }
-
-        @Override
-        public void comment( char[] ch, int start, int length )
-            throws SAXException
-        {
-            super.comment( new String( ch, start, length ).replace( 'N', 'C' ).toCharArray(), start, length );
-        }
-    }
-    
-    /**
-     * AbstractSAXFilter implements both XMLReader and LexicalHandler
-     * 
-     * @author Robert Scholte
-     *
-     */
-    static class M2NLexicalXMLFilter extends AbstractSAXFilter
-    {
-        public M2NLexicalXMLFilter()
-        {
-            super( null );
-        }
-        
-        public <T extends XMLReader & LexicalHandler> M2NLexicalXMLFilter( T parent )
-        {
-            super( parent );
-        }
-
-        @Override
-        public void comment( char[] ch, int start, int length )
-            throws SAXException
-        {
-            super.comment( new String( ch, start, length ).replace( 'M', 'N' ).toCharArray(), start, length );
-        }
-    }
-}


[maven] 01/03: Merge branch 'master' into MNG-6656

Posted by rf...@apache.org.
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

commit dc1d8c7da313fe77552ee378b0e7d0eac5512caf
Merge: 020b503 ef8c95e
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Jun 13 10:46:12 2020 +0200

    Merge branch 'master' into MNG-6656

 .../src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java    | 2 +-
 .../maven/artifact/repository/metadata/io/DefaultMetadataReader.java  | 4 ++--
 .../java/org/apache/maven/project/DependencyResolutionException.java  | 2 +-
 .../java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java   | 4 ++--
 .../java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java   | 2 +-
 .../src/main/java/org/apache/maven/model/io/DefaultModelReader.java   | 4 ++--
 .../src/main/java/org/apache/maven/model/io/DefaultModelWriter.java   | 4 ++--
 .../maven/model/interpolation/StringSearchModelInterpolatorTest.java  | 2 +-
 .../apache/maven/repository/internal/DefaultVersionRangeResolver.java | 2 +-
 .../org/apache/maven/repository/internal/DefaultVersionResolver.java  | 2 +-
 .../main/java/org/apache/maven/settings/io/DefaultSettingsReader.java | 4 ++--
 .../main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java | 4 ++--
 12 files changed, 18 insertions(+), 18 deletions(-)



[maven] 03/03: ReAdd DefaultModelSourceTransformer

Posted by rf...@apache.org.
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

commit 1737d23574f7361450c2a94dd135f085c9bf8e45
Author: rfscholte <rf...@apache.org>
AuthorDate: Tue Jun 16 21:40:35 2020 +0200

    ReAdd DefaultModelSourceTransformer
---
 .../building/DefaultModelSourceTransformer.java    | 43 ++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java
new file mode 100644
index 0000000..50ad04b
--- /dev/null
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java
@@ -0,0 +1,43 @@
+package org.apache.maven.model.building;
+
+/*
+ * 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 java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+/**
+ * Default ModelSourceTransformer, provides pomFile as inputStream and ignores the context 
+ * 
+ * @author Robert Scholte
+ * @since 3.7.0
+ */
+public class DefaultModelSourceTransformer implements ModelSourceTransformer
+{
+
+    @Override
+    public InputStream transform( Path pomFile, TransformerContext context )
+        throws IOException, TransformerException
+    {
+        return Files.newInputStream( pomFile );
+    }
+
+}