package br.uff.ic.gems.peixeespadacliente.action.demo;
import br.uff.ic.gems.peixeespadacliente.action.*;
import br.uff.ic.gems.peixeespadacliente.model.ProjectVCS;
import br.uff.ic.gems.peixeespadacliente.model.agent.LocalManagerAgent;
import br.uff.ic.oceano.core.exception.ServiceException;
import br.uff.ic.oceano.core.exception.VCSException;
import br.uff.ic.oceano.util.file.PathUtil;
import translation.Translate;
/**
*
* @author Heliomar
*/
public class DoCheckoutDemoLocal extends AbstractAction {
@Override
public LocalManagerAgent execute(LocalManagerAgent agentPeixeEspada) throws ServiceException {
Translate translate = Translate.getTranslate();
//executa
agentPeixeEspada.appendMessage(translate.doingCheckout(
agentPeixeEspada.getProjectVCS().getName()
));
agentPeixeEspada.appendMessage(translate.checkoutVersion(
clientService.doCheckout(agentPeixeEspada)
));
agentPeixeEspada.appendMessage(translate.workspace(
agentPeixeEspada.getProjectVCS().getLocalPath()
));
String branch = PathUtil.getWellFormedURL(agentPeixeEspada.getProjectUser().getProject().getConfigurationItem().getBaseUrl(), "branches", "peixeespadateste", "" + System.currentTimeMillis());
// String branch = repositoryUrl.substring(repositoryUrl.lastIndexOf("/"))+"branch/peixeespadalocaltest/"+System.currentTimeMillis();
Long commit = null;
try {
ProjectVCS vcs = agentPeixeEspada.getProjectVCS();
vcs.doCopyTo(branch);
vcs.doSwitchTo(branch);
commit = vcs.doCommit("created to run tests");
} catch (VCSException vCSException) {
throw new ServiceException(vCSException);
}
agentPeixeEspada.getProjectUser().getProject().setRepositoryUrl(branch);
agentPeixeEspada.getProjectVCS().setRepositoryUrl(branch);
agentPeixeEspada.appendMessage(translate.branchCreated(branch, commit));
return agentPeixeEspada;
}
}