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 | +*--------------------------------+----------+-------------------+------------------------------------------+ + +