use of org.apache.maven.scm.provider.integrity.repository.IntegrityScmProviderRepository in project maven-scm by apache.
the class IntegrityUnEditCommand method executeUnEditCommand.
/**
* {@inheritDoc}
*/
@Override
public UnEditScmResult executeUnEditCommand(ScmProviderRepository repository, ScmFileSet fileSet) throws ScmException {
getLogger().info("Attempting to revert members in sandbox " + fileSet.getBasedir().getAbsolutePath());
IntegrityScmProviderRepository iRepo = (IntegrityScmProviderRepository) repository;
UnEditScmResult result;
try {
Sandbox siSandbox = iRepo.getSandbox();
Response res = siSandbox.revertMembers();
int exitCode = res.getExitCode();
boolean success = (exitCode == 0 ? true : false);
result = new UnEditScmResult(res.getCommandString(), "", "Exit Code: " + exitCode, success);
} catch (APIException aex) {
ExceptionHandler eh = new ExceptionHandler(aex);
getLogger().error("MKS API Exception: " + eh.getMessage());
getLogger().info(eh.getCommand() + " exited with return code " + eh.getExitCode());
result = new UnEditScmResult(eh.getCommand(), eh.getMessage(), "Exit Code: " + eh.getExitCode(), false);
}
return result;
}
use of org.apache.maven.scm.provider.integrity.repository.IntegrityScmProviderRepository in project maven-scm by apache.
the class IntegrityUpdateCommand method executeUpdateCommand.
/**
* {@inheritDoc}
*/
@Override
public UpdateScmResult executeUpdateCommand(ScmProviderRepository repository, ScmFileSet fileSet, ScmVersion scmVersion) throws ScmException {
getLogger().info("Attempting to synchronize sandbox in " + fileSet.getBasedir().getAbsolutePath());
List<ScmFile> updatedFiles = new ArrayList<ScmFile>();
IntegrityScmProviderRepository iRepo = (IntegrityScmProviderRepository) repository;
Sandbox siSandbox = iRepo.getSandbox();
try {
// Make sure we've got a valid sandbox, otherwise create it...
if (siSandbox.create()) {
Response res = siSandbox.resync();
// Lets capture what we got from running this resync
WorkItemIterator wit = res.getWorkItems();
while (wit.hasNext()) {
WorkItem wi = wit.next();
if (wi.getModelType().equals(SIModelTypeName.MEMBER)) {
Result message = wi.getResult();
getLogger().debug(wi.getDisplayId() + " " + (null != message ? message.getMessage() : ""));
if (null != message && message.getMessage().length() > 0) {
updatedFiles.add(new ScmFile(wi.getDisplayId(), message.getMessage().equalsIgnoreCase("removed") ? ScmFileStatus.DELETED : ScmFileStatus.UPDATED));
}
}
}
return new UpdateScmResult(res.getCommandString(), updatedFiles);
} else {
return new UpdateScmResult("si resync", "Failed to synchronize workspace", "", false);
}
} catch (APIException aex) {
ExceptionHandler eh = new ExceptionHandler(aex);
getLogger().error("MKS API Exception: " + eh.getMessage());
getLogger().info(eh.getCommand() + " exited with return code " + eh.getExitCode());
return new UpdateScmResult(eh.getCommand(), eh.getMessage(), "Exit Code: " + eh.getExitCode(), false);
}
}
use of org.apache.maven.scm.provider.integrity.repository.IntegrityScmProviderRepository in project maven-scm by apache.
the class IntegrityLoginCommand method executeLoginCommand.
/**
* {@inheritDoc}
*/
@Override
public LoginScmResult executeLoginCommand(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters params) throws ScmException {
getLogger().info("Attempting to connect with the MKS Integrity Server");
LoginScmResult result;
IntegrityScmProviderRepository iRepo = (IntegrityScmProviderRepository) repository;
APISession api = iRepo.getAPISession();
try {
// First we will establish a connection to the MKS Integrity Server
Response res = api.connect(iRepo.getHost(), iRepo.getPort(), iRepo.getUser(), iRepo.getPassword());
int exitCode = res.getExitCode();
boolean success = (exitCode == 0 ? true : false);
result = new LoginScmResult(res.getCommandString(), "", "Exit Code: " + exitCode, success);
// Next we will prepare the Project and Sandbox for the other commands
Project siProject = new Project(api, iRepo.getConfigruationPath());
Sandbox siSandbox = new Sandbox(api, siProject, fileSet.getBasedir().getAbsolutePath());
iRepo.setProject(siProject);
iRepo.setSandbox(siSandbox);
} catch (APIException aex) {
ExceptionHandler eh = new ExceptionHandler(aex);
getLogger().error("MKS API Exception: " + eh.getMessage());
getLogger().info(eh.getCommand() + " exited with return code " + eh.getExitCode());
result = new LoginScmResult(eh.getCommand(), eh.getMessage(), "Exit Code: " + eh.getExitCode(), false);
}
return result;
}
use of org.apache.maven.scm.provider.integrity.repository.IntegrityScmProviderRepository in project maven-scm by apache.
the class IntegrityRemoveCommand method executeRemoveCommand.
/**
* {@inheritDoc}
*/
@Override
public RemoveScmResult executeRemoveCommand(ScmProviderRepository repository, ScmFileSet fileSet, String message) throws ScmException {
getLogger().info("Attempting to un-register sandbox in directory " + fileSet.getBasedir().getAbsolutePath());
RemoveScmResult result;
IntegrityScmProviderRepository iRepo = (IntegrityScmProviderRepository) repository;
try {
Sandbox siSandbox = iRepo.getSandbox();
Response res = siSandbox.drop();
int exitCode = res.getExitCode();
boolean success = (exitCode == 0 ? true : false);
result = new RemoveScmResult(res.getCommandString(), "", "Exit Code: " + exitCode, success);
} catch (APIException aex) {
ExceptionHandler eh = new ExceptionHandler(aex);
getLogger().error("MKS API Exception: " + eh.getMessage());
getLogger().info(eh.getCommand() + " exited with return code " + eh.getExitCode());
result = new RemoveScmResult(eh.getCommand(), eh.getMessage(), "Exit Code: " + eh.getExitCode(), false);
}
return result;
}
use of org.apache.maven.scm.provider.integrity.repository.IntegrityScmProviderRepository in project maven-scm by apache.
the class IntegrityTagCommand method executeTagCommand.
/**
* {@inheritDoc}
*/
@Override
public TagScmResult executeTagCommand(ScmProviderRepository repository, ScmFileSet fileSet, String tagName, ScmTagParameters scmTagParameters) throws ScmException {
getLogger().info("Attempting to checkpoint project associated with sandbox " + fileSet.getBasedir().getAbsolutePath());
TagScmResult result;
String message = scmTagParameters.getMessage();
IntegrityScmProviderRepository iRepo = (IntegrityScmProviderRepository) repository;
try {
// First validate the checkpoint label string by evaluating the groovy script
String chkptLabel = evalGroovyExpression(tagName);
Project.validateTag(chkptLabel);
String msg = ((null == message || message.length() == 0) ? System.getProperty("message") : message);
// Get information about the Project
Project siProject = iRepo.getProject();
// Ensure this is not a build project configuration
if (!siProject.isBuild()) {
Response res = siProject.checkpoint(msg, chkptLabel);
int exitCode = res.getExitCode();
boolean success = (exitCode == 0 ? true : false);
WorkItem wi = res.getWorkItem(siProject.getConfigurationPath());
String chkpt = wi.getResult().getField("resultant").getItem().getId();
getLogger().info("Successfully checkpointed project " + siProject.getConfigurationPath() + " with label '" + chkptLabel + "', new revision is " + chkpt);
result = new TagScmResult(res.getCommandString(), wi.getResult().getMessage(), "Exit Code: " + exitCode, success);
} else {
getLogger().error("Cannot checkpoint a build project configuration: " + siProject.getConfigurationPath() + "!");
result = new TagScmResult("si checkpoint", "Cannot checkpoint a build project configuration!", "", false);
}
} catch (CompilationFailedException cfe) {
getLogger().error("Groovy Compilation Exception: " + cfe.getMessage());
result = new TagScmResult("si checkpoint", cfe.getMessage(), "", false);
} catch (APIException aex) {
ExceptionHandler eh = new ExceptionHandler(aex);
getLogger().error("MKS API Exception: " + eh.getMessage());
getLogger().info(eh.getCommand() + " exited with return code " + eh.getExitCode());
result = new TagScmResult(eh.getCommand(), eh.getMessage(), "Exit Code: " + eh.getExitCode(), false);
} catch (Exception e) {
getLogger().error("Failed to checkpoint project! " + e.getMessage());
result = new TagScmResult("si checkpoint", e.getMessage(), "", false);
}
return result;
}
Aggregations