Author: evenisse
Date: Fri May  9 02:44:45 2008
New Revision: 654743

URL: http://svn.apache.org/viewvc?rev=654743&view=rev
Log:
[SCM-354] Allow attaching a Job to the Perforce changlist on check-in
Submitted by: ajbanck


Modified:
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommandTest.java
    maven/scm/trunk/maven-scm-site/src/site/apt/perforce.apt

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java?rev=654743&r1=654742&r2=654743&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommand.java
 Fri May  9 02:44:45 2008
@@ -59,13 +59,15 @@
         PerforceCheckInConsumer consumer = new PerforceCheckInConsumer();
         try
         {
+            String jobs = System.getProperty( "maven.scm.jobs" );
+
             getLogger().debug( PerforceScmProvider.clean( "Executing " + 
cl.toString() ) );
             Process proc = cl.execute();
             OutputStream out = proc.getOutputStream();
             DataOutputStream dos = new DataOutputStream( out );
             PerforceScmProviderRepository prepo = 
(PerforceScmProviderRepository) repo;
             String changes = createChangeListSpecification( prepo, files, 
message, PerforceScmProvider.getRepoPath(
-                getLogger(), prepo, files.getBasedir() ) );
+                getLogger(), prepo, files.getBasedir() ), jobs );
             getLogger().debug( "Sending changelist:\n" + changes );
             dos.write( changes.getBytes() );
             dos.close();
@@ -103,11 +105,17 @@
     private static final String NEWLINE = "\r\n";
 
     public static String createChangeListSpecification( 
PerforceScmProviderRepository repo, ScmFileSet files,
-                                                        String msg, String 
canonicalPath )
+                                                        String msg, String 
canonicalPath, String jobs )
     {
         StringBuffer buf = new StringBuffer();
         buf.append( "Change: new" ).append( NEWLINE ).append( NEWLINE );
         buf.append( "Description:" ).append( NEWLINE ).append( "\t" ).append( 
msg ).append( NEWLINE ).append( NEWLINE );
+        if ( jobs != null && jobs.length() != 0 )
+        {
+            // Multiple jobs are not handled with this implementation
+            buf.append( "Jobs:" ).append( NEWLINE ).append( "\t" ).append( 
jobs ).append( NEWLINE ).append( NEWLINE );
+        }
+
         buf.append( "Files:" ).append( NEWLINE );
         try
         {

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommandTest.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommandTest.java?rev=654743&r1=654742&r2=654743&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommandTest.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInCommandTest.java
 Fri May  9 02:44:45 2008
@@ -73,10 +73,11 @@
         assertEquals( commandLine, cl.toString() );
 
         String change = PerforceCheckInCommand.createChangeListSpecification( 
svnRepository, files, "Test checkin",
-                                                                              
"//depot/projects/pathname" );
+                                                                              
"//depot/projects/pathname", "testjob" );
         assertContains( change, "//depot/projects/pathname/foo.xml" );
         assertContains( change, "//depot/projects/pathname/bar.xml" );
         assertContains( change, "Test checkin" );
+        assertContains( change, "testjob" );
     }
 
     private void assertContains( String block, String element )

Modified: maven/scm/trunk/maven-scm-site/src/site/apt/perforce.apt
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-site/src/site/apt/perforce.apt?rev=654743&r1=654742&r2=654743&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-site/src/site/apt/perforce.apt (original)
+++ maven/scm/trunk/maven-scm-site/src/site/apt/perforce.apt Fri May  9 
02:44:45 2008
@@ -29,3 +29,18 @@
 -------
 scm:perforce://depot/modules/myproject
 -------
+
+* Associating Jobs with checkin changelist
+    Many Perforce installation have a 'require job' rule/trigger turned on.
+    To allow checkin when such a rule is defined, the system property 
maven.scm.jobs 
+    can be set to specify a job that will be associated with the changelist on 
checkin.
+    Handling of multiple jobs is currently not implemented.
+    Sample: -Dmaven.scm.jobs=JOB1234
+
+*--------------------------------+----------+-------------------+------------------------------------------+
+| Key                            |location  |Type               | Description  
                            |
+*--------------------------------+----------+-------------------+------------------------------------------+
+| maven.scm.jobs                 |properties|word, The job name | Job name     
                            |
+*--------------------------------+----------+-------------------+------------------------------------------+
+
+


Reply via email to