/** * Copyright (c) 2010 Perforce Software. All rights reserved. */ package com.perforce.maven.scm.provider.p4.command.edit; import java.util.List; import org.apache.maven.scm.ScmException; import org.apache.maven.scm.ScmFileSet; import org.apache.maven.scm.ScmResult; import org.apache.maven.scm.command.edit.AbstractEditCommand; import org.apache.maven.scm.command.edit.EditScmResult; import org.apache.maven.scm.provider.ScmProviderRepository; import com.perforce.maven.scm.provider.p4.command.P4Command; import com.perforce.maven.scm.provider.p4.util.P4Utils; import com.perforce.p4java.client.IClient; import com.perforce.p4java.core.file.IFileSpec; import com.perforce.p4java.exception.P4JavaException; import com.perforce.p4java.option.client.EditFilesOptions; /** * The class uses the Perforce edit command to open existing files for edit. */ public class P4EditCommand extends AbstractEditCommand implements P4Command { /** The Constant command. */ public static final String command = "Perforce edit command"; private IClient client; public void setClient( IClient client ) { this.client = client; } /** * @see org.apache.maven.scm.command.edit.AbstractEditCommand#executeEditCommand * (org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet) */ protected ScmResult executeEditCommand( ScmProviderRepository repo, ScmFileSet files ) throws ScmException { P4EditResult p4Result = new P4EditResult(); List<IFileSpec> fileSpecs = P4Utils.scmFileSet2P4FileSpecs( files ); if ( !fileSpecs.isEmpty() ) { try { EditFilesOptions editFilesOptions = new EditFilesOptions(); List<IFileSpec> retFileSpecs = client.editFiles( fileSpecs, editFilesOptions ); P4Utils.checkForError( retFileSpecs, this.getLogger() ); p4Result.process( retFileSpecs ); } catch ( P4JavaException e ) { throw new ScmException( e.getLocalizedMessage(), e ); } } return new EditScmResult( command, p4Result.isSuccess() ? "Edit successful" : "Unable to edit", p4Result.getCommandOutput(), p4Result.isSuccess() ); } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#3 | 9562 | dantran | remove P4Utils.checkForError(), it should be under P4Result.process | ||
#2 | 9548 | dantran |
- pickup P4PORT form env and system properties to support multi site using proxy - add development doc - check for error after each action |
||
#1 | 9519 | dantran | folder rename to match with its artifactId | ||
//guest/dantran/p4maven/com.perforce.maven/src/main/java/com/perforce/maven/scm/provider/p4/command/edit/P4EditCommand.java | |||||
#7 | 9295 | dantran | More migratoin using P4Utils.scmFileSet2P4FileSpecs | ||
#6 | 9290 | dantran | Introduce the reusable P4Utils.scmFileSet2P4FileSpecs util, and have edit and checkin command to use it | ||
#5 | 9267 | dantran | More swapping of P4Executor for P4Utils | ||
#4 | 9266 | dantran |
fixed up P4EditCommand to comply ScmFileSpec where the internal filelist is always relative to its basedir. When Creating P4 FileSpec, must convert the relative path to absolute path otherwise p4 would use it currently directory to calculate the path. Will need to apply the same principal to all commands |
||
#3 | 9251 | dantran | Use P4Utils instead of P4Executor which will be retire | ||
#2 | 9250 | dantran | caching client across mutiple commands | ||
#1 | 9167 | dantran |
Populate //guest/dantran/p4maven/... from //guest/perforce_software/p4maven/main/.... |
||
//guest/perforce_software/p4maven/main/com.perforce.maven/src/main/java/com/perforce/maven/scm/provider/p4/command/edit/P4EditCommand.java | |||||
#1 | 8496 | Matt Attaway | Move P4Ant and P4Maven into their proper homes | ||
//public/perforce/p4maven/main/com.perforce.maven/src/main/java/com/perforce/maven/scm/provider/p4/command/edit/P4EditCommand.java | |||||
#1 | 8270 | Matt Attaway | Initial add of P4Maven source code |