Author: rfscholte
Date: Sat Mar 18 14:23:30 2017
New Revision: 1787560

URL: http://svn.apache.org/viewvc?rev=1787560&view=rev
Log:
[MRELEASE-979] Support NamingPolicies to manage Branch and Tag names


Added:
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/invoker.properties
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/pom.xml
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/stub/
    
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/stub/StubNamingPolicy.java
Modified:
    maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
    
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
    
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
    maven/release/trunk/maven-release-plugin/pom.xml

Modified: 
maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/components-fragment.xml?rev=1787560&r1=1787559&r2=1787560&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/components-fragment.xml 
(original)
+++ maven/release/trunk/maven-release-manager/src/main/components-fragment.xml 
Sat Mar 18 14:23:30 2017
@@ -229,6 +229,7 @@
       
<implementation>org.apache.maven.shared.release.phase.InputVariablesPhase</implementation>
       <configuration>
         <branchOperation>false</branchOperation>
+        <defaultNamingPolicy>default</defaultNamingPolicy>
       </configuration>
       <requirements>
         <requirement>

Modified: 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java?rev=1787560&r1=1787559&r2=1787560&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
 (original)
+++ 
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
 Sat Mar 18 14:23:30 2017
@@ -80,6 +80,11 @@ public class InputVariablesPhase
      */
     @Requirement
     private Map<String, NamingPolicy> namingPolicies;
+   
+    /**
+     * The default naming policy to apply, if any
+     */
+    private String defaultNamingPolicy;
 
     void setPrompter( Prompter prompter )
     {
@@ -134,9 +139,21 @@ public class InputVariablesPhase
                 throw new ReleaseExecutionException( "Project tag cannot be 
selected if version is not yet mapped" );
             }
 
-            String defaultTag;
+            String suggestedName;
             String scmTagNameFormat = releaseDescriptor.getScmTagNameFormat();
-            if ( releaseDescriptor.getProjectNamingPolicyId() == null && 
scmTagNameFormat != null )
+            if ( releaseDescriptor.getProjectNamingPolicyId() != null )
+            {
+                try
+                {
+                    suggestedName =
+                        resolveSuggestedName( 
releaseDescriptor.getProjectNamingPolicyId(), releaseVersion, project );
+                }
+                catch ( PolicyException e )
+                {
+                    throw new ReleaseExecutionException( e.getMessage(), e );
+                } 
+            }
+            else if ( scmTagNameFormat != null )
             {
                 Interpolator interpolator = new StringSearchInterpolator( 
"@{", "}" );
                 List<String> possiblePrefixes = java.util.Arrays.asList( 
"project", "pom" );
@@ -148,7 +165,7 @@ public class InputVariablesPhase
                 RecursionInterceptor recursionInterceptor = new 
PrefixAwareRecursionInterceptor( possiblePrefixes );
                 try
                 {
-                    defaultTag = interpolator.interpolate( scmTagNameFormat, 
recursionInterceptor );
+                    suggestedName = interpolator.interpolate( 
scmTagNameFormat, recursionInterceptor );
                 }
                 catch ( InterpolationException e )
                 {
@@ -160,13 +177,12 @@ public class InputVariablesPhase
             {
                 try
                 {
-                    defaultTag =
-                        resolveSuggestedName( 
releaseDescriptor.getProjectNamingPolicyId(), releaseVersion, project );
+                    suggestedName = resolveSuggestedName( defaultNamingPolicy, 
releaseVersion, project );
                 }
                 catch ( PolicyException e )
                 {
                     throw new ReleaseExecutionException( e.getMessage(), e );
-                } 
+                }
             }
 
             ScmProvider provider = null;
@@ -180,7 +196,7 @@ public class InputVariablesPhase
                     "No scm provider can be found for url: " + 
releaseDescriptor.getScmSourceUrl(), e );
             }
 
-            defaultTag = provider.sanitizeTagName( defaultTag );
+            suggestedName = provider.sanitizeTagName( suggestedName );
 
             if ( releaseDescriptor.isInteractive() )
             {
@@ -198,7 +214,7 @@ public class InputVariablesPhase
                     else
                     {
                         tag = prompter.prompt( "What is the SCM release tag or 
label for \"" + project.getName()
-                            + "\"? (" + project.getGroupId() + ":" + 
project.getArtifactId() + ")", defaultTag );
+                            + "\"? (" + project.getGroupId() + ":" + 
project.getArtifactId() + ")", suggestedName );
                     }
                 }
                 catch ( PrompterException e )
@@ -207,13 +223,20 @@ public class InputVariablesPhase
                                                          e );
                 }
             }
-            else if ( branchOperation )
+            else if ( suggestedName == null )
             {
-                throw new ReleaseExecutionException( "No branch name was 
given." );
+                if ( isBranchOperation() )
+                {
+                    throw new ReleaseExecutionException( "No branch name was 
given." );
+                }
+                else
+                {
+                    throw new ReleaseExecutionException( "No tag name was 
given." );
+                }
             }
             else
             {
-                tag = defaultTag;
+                tag = suggestedName;
             }
             releaseDescriptor.setScmReleaseLabel( tag );
         }
@@ -240,12 +263,15 @@ public class InputVariablesPhase
     private String resolveSuggestedName( String policyId, String version, 
MavenProject project )
         throws PolicyException
     {
-        String namingPolicyKey = policyId != null ? policyId : "default";
+        if ( policyId == null )
+        {
+            return null;
+        }
         
-        NamingPolicy policy = namingPolicies.get( namingPolicyKey );
+        NamingPolicy policy = namingPolicies.get( policyId );
         if ( policy == null )
         {
-            throw new PolicyException( "Policy '" + namingPolicyKey + "' is 
unknown, available: "
+            throw new PolicyException( "Policy '" + policyId + "' is unknown, 
available: "
                 + namingPolicies.keySet() );
         }
 

Modified: 
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java?rev=1787560&r1=1787559&r2=1787560&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
 (original)
+++ 
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
 Sat Mar 18 14:23:30 2017
@@ -18,8 +18,10 @@ package org.apache.maven.shared.release.
  * specific language governing permissions and limitations
  * under the License.
  */
-
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
@@ -36,9 +38,13 @@ import org.apache.maven.shared.release.P
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
+import org.apache.maven.shared.release.policy.naming.NamingPolicy;
+import org.apache.maven.shared.release.policy.naming.NamingPolicyRequest;
+import org.apache.maven.shared.release.policy.naming.NamingPolicyResult;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.junit.Test;
+import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Test the variable input phase.
@@ -301,6 +307,27 @@ public class BranchInputVariablesPhaseTe
         // never use prompter
         verifyNoMoreInteractions( mockPrompter );
     }
+    
+    @Test
+    public void testNamingPolicy() throws Exception
+    {
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
+        releaseDescriptor.setInteractive( false );
+        releaseDescriptor.setProjectNamingPolicyId( "stub" );
+        releaseDescriptor.setScmSourceUrl( 
"scm:svn:file://localhost/tmp/scm-repo" );
+        
+        NamingPolicy stubPolicy = mock( NamingPolicy.class );
+        when(stubPolicy.getName( isA(NamingPolicyRequest.class) )).thenReturn( 
new NamingPolicyResult().setName( "STUB" ) );
+        
+        List<MavenProject> reactorProjects = Collections.singletonList( 
createProject( "artifactId", "1.0" ) );
+        
+        Whitebox.setInternalState( phase, "namingPolicies", 
Collections.singletonMap( "stub", stubPolicy ) );
+        
+        phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), 
reactorProjects );
+        
+        assertEquals( "STUB", releaseDescriptor.getScmReleaseLabel() );
+    }
 
     private static MavenProject createProject( String artifactId, String 
version )
     {

Modified: maven/release/trunk/maven-release-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/pom.xml?rev=1787560&r1=1787559&r2=1787560&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/pom.xml (original)
+++ maven/release/trunk/maven-release-plugin/pom.xml Sat Mar 18 14:23:30 2017
@@ -173,7 +173,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-invoker-plugin</artifactId>
-        <version>1.10</version>
+        <version>2.0.0</version>
         <configuration>
           <projectsDirectory>src/it</projectsDirectory>
           <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
@@ -208,7 +208,6 @@
           <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-invoker-plugin</artifactId>
-            <version>1.10</version>
             <executions>
               <execution>
                 <id>integration-test-prepare</id>
@@ -217,39 +216,42 @@
                     <setupInclude>setup/*/pom.xml</setupInclude>
                   </setupIncludes>
                   <pomIncludes>
-                    <pomInclude>projects/prepare/*/*pom.xml</pomInclude>
-                    
<pomInclude>projects/prepare/flat-multi-module/parent-project/pom.xml</pomInclude>
+                    <pomInclude>X</pomInclude>
                   </pomIncludes>
-                  <pomExcludes>
-                    
<pomExclude>projects/prepare/MRELEASE-966/pom.xml</pomExclude>
-                  </pomExcludes>
-                  <goals>
-                    <goal>clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:prepare</goal>
-                  </goals>
+<!--                   <pomIncludes> -->
+<!--                     <pomInclude>Xprojects/prepare/*/*pom.xml</pomInclude> 
-->
+<!--                     
<pomInclude>Xprojects/prepare/flat-multi-module/parent-project/pom.xml</pomInclude>
 -->
+<!--                   </pomIncludes> -->
+<!--                   <pomExcludes> -->
+<!--                     
<pomExclude>projects/prepare/MRELEASE-966/pom.xml</pomExclude> -->
+<!--                   </pomExcludes> -->
+<!--                   <goals> -->
+<!--                     <goal>clean</goal> -->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal> 
-->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:prepare</goal>
 -->
+<!--                   </goals> -->
                 </configuration>
                 <goals>
                   <goal>install</goal>
                   <goal>run</goal>
                 </goals>
               </execution>
-              <execution>
-                <id>integration-test-prepare-with-pom</id>
-                <configuration>
-                  <pomIncludes>
-                    
<pomInclude>projects/prepare-with-pom/*/*pom.xml</pomInclude>
-                  </pomIncludes>
-                  <goals>
-                    <goal>clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:prepare-with-pom</goal>
-                  </goals>
-                </configuration>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-              </execution>
+<!--               <execution> -->
+<!--                 <id>integration-test-prepare-with-pom</id> -->
+<!--                 <configuration> -->
+<!--                   <pomIncludes> -->
+<!--                     
<pomInclude>Xprojects/prepare-with-pom/*/*pom.xml</pomInclude> -->
+<!--                   </pomIncludes> -->
+<!--                   <goals> -->
+<!--                     <goal>clean</goal> -->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal> 
-->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:prepare-with-pom</goal>
 -->
+<!--                   </goals> -->
+<!--                 </configuration> -->
+<!--                 <goals> -->
+<!--                   <goal>run</goal> -->
+<!--                 </goals> -->
+<!--               </execution> -->
               <execution>
                 <id>integration-test-branch</id>
                 <configuration>
@@ -266,39 +268,39 @@
                   <goal>run</goal>
                 </goals>
               </execution>
-              <execution>
-                <id>integration-test-perform</id>
-                <configuration>
-                  <pomIncludes>
-                    <pomInclude>projects/perform/*/pom.xml</pomInclude>
-                  </pomIncludes>
-                  <goals>
-                    <goal>clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:prepare</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:perform</goal>
-                  </goals>
-                </configuration>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-              </execution>
-              <execution>
-                <id>integration-test-update-versions</id>
-                <configuration>
-                  <pomIncludes>
-                    <pomInclude>projects/update-versions/*/pom.xml</pomInclude>
-                  </pomIncludes>
-                  <goals>
-                    <goal>clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal>
-                    
<goal>${project.groupId}:${project.artifactId}:${project.version}:update-versions</goal>
-                  </goals>
-                </configuration>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-              </execution>
+<!--               <execution> -->
+<!--                 <id>integration-test-perform</id> -->
+<!--                 <configuration> -->
+<!--                   <pomIncludes> -->
+<!--                     <pomInclude>projects/perform/*/pom.xml</pomInclude> 
-->
+<!--                   </pomIncludes> -->
+<!--                   <goals> -->
+<!--                     <goal>clean</goal> -->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal> 
-->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:prepare</goal>
 -->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:perform</goal>
 -->
+<!--                   </goals> -->
+<!--                 </configuration> -->
+<!--                 <goals> -->
+<!--                   <goal>run</goal> -->
+<!--                 </goals> -->
+<!--               </execution> -->
+<!--               <execution> -->
+<!--                 <id>integration-test-update-versions</id> -->
+<!--                 <configuration> -->
+<!--                   <pomIncludes> -->
+<!--                     
<pomInclude>projects/update-versions/*/pom.xml</pomInclude> -->
+<!--                   </pomIncludes> -->
+<!--                   <goals> -->
+<!--                     <goal>clean</goal> -->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal> 
-->
+<!--                     
<goal>${project.groupId}:${project.artifactId}:${project.version}:update-versions</goal>
 -->
+<!--                   </goals> -->
+<!--                 </configuration> -->
+<!--                 <goals> -->
+<!--                   <goal>run</goal> -->
+<!--                 </goals> -->
+<!--               </execution> -->
            </executions>
           </plugin>
         </plugins>

Added: 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/invoker.properties
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/invoker.properties?rev=1787560&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/invoker.properties
 (added)
+++ 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/invoker.properties
 Sat Mar 18 14:23:30 2017
@@ -0,0 +1,18 @@
+# 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.
+
+invoker.goals = install

Added: 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/pom.xml?rev=1787560&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/pom.xml
 (added)
+++ 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/pom.xml
 Sat Mar 18 14:23:30 2017
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.release</groupId>
+  <artifactId>maven-project-naming-stub-policy</artifactId>
+  <version>1.0</version>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.release</groupId>
+      <artifactId>maven-release-manager</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.0.2</version>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+          <encoding>UTF-8</encoding>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-component-metadata</artifactId>
+        <version>1.6</version>
+        <executions>
+          <execution>
+            <id>process-classes</id>
+            <goals>
+              <goal>generate-metadata</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Added: 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/stub/StubNamingPolicy.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/stub/StubNamingPolicy.java?rev=1787560&view=auto
==============================================================================
--- 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/stub/StubNamingPolicy.java
 (added)
+++ 
maven/release/trunk/maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/stub/StubNamingPolicy.java
 Sat Mar 18 14:23:30 2017
@@ -0,0 +1,38 @@
+package org.apache.maven.shared.release.policy.stub;
+
+/*
+ * 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.shared.release.policy.naming.NamingPolicy;
+import org.apache.maven.shared.release.policy.naming.NamingPolicyRequest;
+import org.apache.maven.shared.release.policy.naming.NamingPolicyResult;
+
+import org.codehaus.plexus.component.annotations.Component;
+
+@Component( role = NamingPolicy.class, hint = "StubNamingPolicy" )
+public final class StubNamingPolicy
+    implements NamingPolicy
+{
+
+    public NamingPolicyResult getName( NamingPolicyRequest request )
+    {
+        return new NamingPolicyResult().setName( "STUB" );
+    }
+
+}


Reply via email to