You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by GitBox <gi...@apache.org> on 2017/10/26 07:40:09 UTC

[GitHub] asfgit closed pull request #17: Added support for reading banned exclusions from a URL

asfgit closed pull request #17: Added support for reading banned exclusions from a URL
URL: https://github.com/apache/maven-enforcer/pull/17
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/enforcer-api/pom.xml b/enforcer-api/pom.xml
index 4859da5..9c2b5f4 100644
--- a/enforcer-api/pom.xml
+++ b/enforcer-api/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.maven.enforcer</groupId>
     <artifactId>enforcer</artifactId>
-    <version>1.4.2-SNAPSHOT</version>
+    <version>1.0.0-SNAPSHOT-walmart-01</version>
   </parent>
 
   <artifactId>enforcer-api</artifactId>
diff --git a/enforcer-rules/pom.xml b/enforcer-rules/pom.xml
index de311e3..5c40bbd 100644
--- a/enforcer-rules/pom.xml
+++ b/enforcer-rules/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.maven.enforcer</groupId>
     <artifactId>enforcer</artifactId>
-    <version>1.4.2-SNAPSHOT</version>
+    <version>1.0.0-SNAPSHOT-walmart-01</version>
   </parent>
 
   <artifactId>enforcer-rules</artifactId>
@@ -93,9 +93,20 @@
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-i18n</artifactId>
       <version>1.0-beta-6</version>
-    </dependency>    
+    </dependency>  
+    <!-- httpclient 4.4+ or takari webserver cannot be used since enforcer is restricted to JDK 1.5 (enforced by enforce-bytecode-version)--> 
+	<dependency>
+         <groupId>org.apache.httpcomponents</groupId>
+         <artifactId>httpclient</artifactId>
+         <version>4.3.6</version>
+     </dependency> 
+     <!-- Jetty 7 is needed since enforcer is restricted to JDK 1.5 and hence cannot run with Jetty 9 (enforced by enforce-bytecode-version)-->
+     <dependency>
+		<groupId>org.eclipse.jetty</groupId>
+		<artifactId>jetty-server</artifactId>
+		<version>7.6.19.v20160209</version>
+	</dependency>
   </dependencies>
-
   <build>
     <plugins>
       <plugin>
@@ -109,6 +120,15 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+         <groupId>org.apache.rat</groupId>
+         <artifactId>apache-rat-plugin</artifactId>
+         <configuration>
+           <excludes combine.children="append">
+             <exclude>src/test/resources/testBannedDependencies/blacklist.txt</exclude>
+           </excludes>
+         </configuration>
+       </plugin>
     </plugins>
   </build>
 </project>
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
index dce00e7..8122c6f 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
@@ -137,6 +137,13 @@ else if ( node.getChildren() != null )
                     dependencies.add( depNode.getArtifact() );
                 }
             }
+            
+            //add the parent artifact to the list of dependencies to check, since the parent could be a banned artifact
+            if ( project.getParentArtifact() != null )
+            {
+              dependencies.add( project.getParentArtifact() );
+            }
+            
         }
         catch ( DependencyGraphBuilderException e )
         {
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedDependencies.java
index 25ed2dd..aa96f60 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedDependencies.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedDependencies.java
@@ -20,12 +20,24 @@
  */
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
+import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugins.enforcer.utils.ArtifactMatcher;
 import org.apache.maven.plugins.enforcer.utils.ArtifactMatcher.Pattern;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -40,6 +52,8 @@
     extends AbstractBanDependencies
 {
 
+    private static final Integer STATUS_SUCCESS = 200;
+    
     /**
      * Specify the banned dependencies. This can be a list of artifacts in the format
      * <code>groupId[:artifactId][:version]</code>. Any of the sections can be a wildcard 
@@ -49,8 +63,25 @@
      * 
      * @see {@link #setExcludes(List)}
      * @see {@link #getExcludes()}
+     * 
+     * @see {@link #excludesUrl}
      */
     private List<String> excludes = null;
+    
+    /**
+     * URL pointing to a list of banned dependencies at a specific location. This can be 
+     * a list of artifacts in the format <code>groupId[:artifactId][:version]</code>. 
+     * Any of the sections can be a wildcard by using '*' (ie group:*:1.0) <br> 
+     * Either <b>excludes</b> or <b>excludesUrl</b> or both can be used.
+     * If both are used, all banned dependencies specified at this <b>excludesUrl</b> location 
+     * will be combined with the list of banned dependencies specified in <b>excludes</b>.
+     * The rule will fail if any dependency matches any exclude, unless it also matches 
+     * an include rule.
+     * 
+     * @see {@link #setExcludesUrl(String)}
+     * @see {@link #getExcludesUrl()}
+     */
+    private String excludesUrl = null;
 
     /**
      * Specify the allowed dependencies. This can be a list of artifacts in the format
@@ -65,16 +96,28 @@
      * @see {@link #getIncludes()}
      */
     private List<String> includes = null;
-
+    
     /**
      * {@inheritDoc}
      */
     protected Set<Artifact> checkDependencies( Set<Artifact> theDependencies, Log log )
         throws EnforcerRuleException
     {
-
+        log.info( "excludesUrl=" + excludesUrl + ", excludes=" + excludes );
+        log.info( "No of excludes before reading from excludesUrl=" 
+                      + ( ( excludes != null ) ? excludes.size() : "0" ) );
+        
+        if ( excludesUrl != null && !excludesUrl.isEmpty() )
+        {
+          fetchExcludedList( log );
+        }
+        
+        log.info( "No of excludes after reading from excludesUrl=" + ( ( excludes != null ) ? excludes.size() : "0" ) );
+        
         Set<Artifact> excluded = checkDependencies( theDependencies, excludes );
-
+        
+        log.debug( "No of excluded artifacts = " + ( excluded != null ? excluded.size() : 0 ) ); 
+        
         // anything specifically included should be removed
         // from the ban list.
         if ( excluded != null )
@@ -89,6 +132,88 @@
         return excluded;
 
     }
+    
+    private void fetchExcludedList ( Log logger ) throws EnforcerRuleException
+    {
+      logger.debug( "Inside getExcludedList()..." );
+      int timeout = 3 * 1000; // milliseconds
+      CloseableHttpClient httpClient = null;
+      HttpRequestBase httpRequest = null;
+      try
+      {
+       
+        RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout( timeout )
+                                                      .setSocketTimeout( timeout ).build();
+        httpClient = HttpClientBuilder.create()
+                              .setDefaultRequestConfig( requestConfig )
+                              .setMaxConnPerRoute( 1000 ).setMaxConnTotal( 1000 )
+                              .setRetryHandler( new DefaultHttpRequestRetryHandler() )
+                              .build( );
+      
+        httpRequest = new HttpGet( excludesUrl );
+        
+        HttpResponse response = httpClient.execute( httpRequest );
+        int statusCode = 0;
+        String line = null;
+        if ( response != null )
+        {
+          if ( response.getStatusLine( ) != null )
+          {
+            statusCode = response.getStatusLine( ).getStatusCode( );
+            logger.info( "Response status code from excludesUrl: " + statusCode );
+          }
+          
+          if ( statusCode == STATUS_SUCCESS && response.getEntity() != null )
+          {
+            BufferedReader br = new BufferedReader( new InputStreamReader( response.getEntity().getContent() ) );
+      
+            if ( br != null ) 
+            {
+              while ( ( line = br.readLine() ) != null ) 
+              {
+                if ( excludes == null )
+                {
+                  excludes = new ArrayList<String>();
+                }
+                if ( line != null && !line.trim().isEmpty() )
+                {
+                  logger.debug( "blacklisted artifact=" + line );
+                  excludes.add( line );
+                }
+              }
+                
+            }
+          }
+        }
+        
+      }
+      catch ( UnknownHostException uhe )
+      {
+        logger.info( "Invalid excludesUrl value --> " + excludesUrl );
+        throw new EnforcerRuleException( "Invalid excludesUrl value --> " + excludesUrl, uhe );
+      }
+      catch ( Exception e )
+      {
+        logger.info( "Error while reading from excludesUrl, error=" + e.getMessage() );
+        throw new EnforcerRuleException( "Error reading blacklist artifacts from url " + excludesUrl, e );
+      }
+      finally
+      {
+        httpRequest.releaseConnection();
+        try 
+        {
+          if ( httpClient != null )
+          {
+            httpClient.close();
+          }
+        } 
+        catch ( Exception e ) 
+        {
+          logger.info( "Error occured while closing http client, error=" + e.getMessage() );
+        }
+      }
+      
+    }
 
     /**
      * Checks the set of dependencies against the list of patterns.
@@ -102,7 +227,7 @@
         throws EnforcerRuleException
     {
         Set<Artifact> foundMatches = null;
-
+        
         if ( thePatterns != null && thePatterns.size() > 0 )
         {
 
@@ -209,4 +334,18 @@ public void setIncludes( List<String> theIncludes )
         this.includes = theIncludes;
     }
 
+    public String getExcludesUrl() 
+    {
+      return excludesUrl;
+    }
+    
+
+    public void setExcludesUrl( String excludesUrl ) 
+    {
+      this.excludesUrl = excludesUrl;
+    }
+    
+    
+    
+
 }
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java
index 1d36ef7..37646d0 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/BannedDependenciesTestSetup.java
@@ -37,13 +37,19 @@ public BannedDependenciesTestSetup()
     {
         this.excludes = new ArrayList<String>();
         this.includes = new ArrayList<String>();
-
+        this.excludesUrl = null;
+        
         ArtifactStubFactory factory = new ArtifactStubFactory();
 
         MockProject project = new MockProject();
         project.setArtifacts( factory.getMixedArtifacts() );
         project.setDependencyArtifacts( factory.getScopedArtifacts() );
-
+        
+        MockProject project1 = new MockProject();
+        project1.setArtifact( factory.createArtifact( "pg1", "pa1", "4.0",Artifact.SCOPE_COMPILE, "pom","") );
+        project.setParent( project1 );
+        project.setParentArtifact( factory.createArtifact( "pg1", "pa1", "4.0",Artifact.SCOPE_COMPILE, "pom","") );    
+        
         this.helper = EnforcerTestUtils.getHelper( project );
 
         this.rule = newBannedDependenciesRule();
@@ -51,11 +57,13 @@ public BannedDependenciesTestSetup()
 
         this.rule.setExcludes( this.excludes );
         this.rule.setIncludes( this.includes );
+        this.rule.setExcludesUrl( this.excludesUrl );
     }
 
     private List<String> excludes;
     private List<String> includes;
-
+    private String excludesUrl;
+    
     private BannedDependencies rule;
 
     private EnforcerRuleHelper helper;
@@ -71,6 +79,15 @@ public void addExcludeAndRunRule( String toAdd )
         excludes.add( toAdd );
         rule.execute( helper );
     }
+    
+    public void addExcludeUrlAndRunRule( String url )
+      throws EnforcerRuleException
+  {
+      excludesUrl = url;
+      rule.setExcludesUrl(excludesUrl);
+      rule.execute( helper );
+  
+  }
 
     public void addIncludeExcludeAndRunRule (String incAdd, String excAdd) throws EnforcerRuleException {
         excludes.add( excAdd );
@@ -87,6 +104,16 @@ public void setExcludes( List<String> excludes )
     {
         this.excludes = excludes;
     }
+    
+    public String getExcludesUrl()
+    {
+        return excludesUrl;
+    }
+
+    public void setExcludesUrl( String excludesUrl )
+    {
+        this.excludesUrl = excludesUrl;
+    }
 
     private BannedDependencies newBannedDependenciesRule()
     {
@@ -98,7 +125,14 @@ private BannedDependencies newBannedDependenciesRule()
             {
                 // the integration with dependencyGraphTree is verified with the integration tests
                 // for unit-testing
-                return isSearchTransitive() ? project.getArtifacts() : project.getDependencyArtifacts();
+                Set<Artifact> artifacts1 = project.getArtifacts();
+                artifacts1.add(project.getParentArtifact());
+                
+                Set<Artifact> artifacts2 = project.getDependencyArtifacts();
+                artifacts2.add(project.getParentArtifact());
+                
+                //return isSearchTransitive() ? project.getArtifacts() : project.getDependencyArtifacts();
+                return isSearchTransitive() ? artifacts1 : artifacts2;
             }
         };
         return rule;
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockProject.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockProject.java
index 2a025f2..3f02e86 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockProject.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/MockProject.java
@@ -1483,7 +1483,10 @@ public Map getExtensionArtifactMap()
      */
     public void setParentArtifact( Artifact artifact )
     {
-
+      if (parent !=null)
+      {
+        parent.setArtifact(artifact);
+      }
     }
 
     /*
diff --git a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestBannedDependencies.java b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestBannedDependencies.java
index 06f2b55..a91c369 100644
--- a/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestBannedDependencies.java
+++ b/enforcer-rules/src/test/java/org/apache/maven/plugins/enforcer/TestBannedDependencies.java
@@ -22,6 +22,13 @@
 import java.io.IOException;
 
 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
+
+import org.codehaus.plexus.util.FileUtils;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.runners.Enclosed;
@@ -149,6 +156,7 @@ public void groupIdArtifactIdVersionTypeScope()
     {
 
         private BannedDependenciesTestSetup setup;
+        
 
         @Before
         public void beforeMethod()
@@ -157,7 +165,7 @@ public void beforeMethod()
             this.setup = new BannedDependenciesTestSetup();
             this.setup.setSearchTransitive( true );
         }
-
+        
         private void addExcludeAndRunRule( String toAdd )
             throws EnforcerRuleException
         {
@@ -191,6 +199,203 @@ public void testWildcardForGroupIdArtifactIdWildcardForVersion()
         {
             addExcludeAndRunRule( "*:release:*" );
         }
+        
+    }
+    
+    public static class ExcludesUsingExcludesUrl
+    {
+
+        private BannedDependenciesTestSetup setup;
+        private Server server = null;
+        private String excludesUrl = "http://localhost:8081/";
+        private String invalidExcludesUrl = "http://hgggkhkh";
+        private String blacklistFilename = "./target/test-classes/testBannedDependencies/blacklist.txt";
+        
+        @Before
+        public void beforeMethod()
+            throws Exception
+        {
+            this.setup = new BannedDependenciesTestSetup();
+            this.setup.setSearchTransitive( true );
+            startEmbeddedJettyServer();
+        }
+        
+        private void startEmbeddedJettyServer() throws Exception{
+          
+          if (server == null) {
+            server = new Server(8081);
+            server.setStopAtShutdown(true);
+            ResourceHandler resourceHandler = new ResourceHandler();
+            resourceHandler.setResourceBase(blacklistFilename);
+
+            HandlerList handlers = new HandlerList();
+            handlers.setHandlers(new Handler[] { resourceHandler });
+            server.setHandler(handlers);
+            server.start();
+            //System.out.println("Jetty server started..isServerRunning="+server.isRunning());  
+          }
+        }
+ 
+        private void addExcludeUrlAndRunRule( String url )
+            throws EnforcerRuleException
+        { 
+            this.setup.addExcludeUrlAndRunRule( url);
+        }
+        
+        @Test( expected = EnforcerRuleException.class ) 
+        public void testInvalidExcludesUrl()
+            throws Exception
+        {
+          addExcludeUrlAndRunRule( invalidExcludesUrl );
+        }
+        
+        @Test( expected = EnforcerRuleException.class )
+        public void testBlacklistedParent()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\npg1:pa1:[4.0]" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+        
+        @Test( expected = EnforcerRuleException.class )
+        public void testWildcardBlacklistedParent()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\npg1:pa1:*" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test
+        public void testWildcardForGroupIdArtifactIdVersion()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\n*:release:1.2" );
+          addExcludeUrlAndRunRule( excludesUrl );
+          
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void testWildCardForGroupIdArtifactId()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\n*:release" );
+          addExcludeUrlAndRunRule( excludesUrl );
+          
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void testWildcardForGroupIdWildcardForArtifactIdVersion()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\n*:*:1.0" );
+          addExcludeUrlAndRunRule( excludesUrl );
+          
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void testWildcardForGroupIdArtifactIdWildcardForVersion()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\n*:release:*" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+        
+        @Test( expected = EnforcerRuleException.class )
+        public void testGroupId()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ntestGroupId" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+        
+        @Test( expected = EnforcerRuleException.class )
+        public void testGroupIdArtifactIdVersion()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ntestGroupId:release:1.0" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void testGroupIdArtifactId()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ntestGroupId:release" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void testSpaceTrimmingGroupIdArtifactIdVersion()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\n  testGroupId  :  release   :   1.0    " );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void groupIdArtifactIdVersionType()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ng:a:1.0:war" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void groupIdArtifactIdVersionTypeScope()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ng:a:1.0:war:compile" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+        
+        @Test( expected = IllegalArgumentException.class )
+        public void onlyThreeColonsWithoutAnythingElse()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\n:::" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test( expected = IllegalArgumentException.class )
+        public void onlySevenColonsWithoutAnythingElse()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\n:::::::" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+        
+        @Test( expected = EnforcerRuleException.class )
+        public void groupIdArtifactIdWithWildcard()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ntestGroupId:re*" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void groupIdArtifactIdVersionTypeWildcardScope()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ng:a:1.0:war:co*" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+
+        @Test( expected = EnforcerRuleException.class )
+        public void groupIdArtifactIdVersionWildcardTypeScope()
+            throws Exception
+        {
+          FileUtils.fileAppend( blacklistFilename, "\ng:a:1.0:w*:compile" );
+          addExcludeUrlAndRunRule( excludesUrl );
+        }
+        
+        @After
+        public void shutDownEmbeddedJettyServer() throws Exception{
+          if (server != null)
+          {
+            server.stop();
+          }
+          FileUtils.fileDelete(blacklistFilename);
+        }
 
     }
 
diff --git a/enforcer-rules/src/test/resources/testBannedDependencies/blacklist.txt b/enforcer-rules/src/test/resources/testBannedDependencies/blacklist.txt
new file mode 100644
index 0000000..e69de29
diff --git a/maven-enforcer-plugin/pom.xml b/maven-enforcer-plugin/pom.xml
index 1074896..5441659 100644
--- a/maven-enforcer-plugin/pom.xml
+++ b/maven-enforcer-plugin/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.maven.enforcer</groupId>
     <artifactId>enforcer</artifactId>
-    <version>1.4.2-SNAPSHOT</version>
+    <version>1.0.0-SNAPSHOT-walmart-01</version>
   </parent>
 
   <groupId>org.apache.maven.plugins</groupId>
diff --git a/pom.xml b/pom.xml
index 91628a0..d727420 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
   </parent>
   <groupId>org.apache.maven.enforcer</groupId>
   <artifactId>enforcer</artifactId>
-  <version>1.4.2-SNAPSHOT</version>
+  <version>1.0.0-SNAPSHOT-walmart-01</version>
   <packaging>pom</packaging>
 
   <name>Apache Maven Enforcer</name>


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org