Search in sources :

Example 1 with GetRevisionsResponse

use of org.eclipse.che.plugin.svn.shared.GetRevisionsResponse in project che by eclipse.

the class ExportPresenter method onExportClicked.

/** {@inheritDoc} */
@Override
public void onExportClicked() {
    final Project project = appContext.getRootProject();
    checkState(project != null);
    final Resource[] resources = appContext.getResources();
    checkState(!Arrays.isNullOrEmpty(resources));
    checkState(resources.length == 1);
    final String givenRevision = view.isRevisionSpecified() ? view.getRevision() : null;
    final StatusNotification notification = new StatusNotification(constants.exportStarted(resources[0].getLocation().toString()), PROGRESS, FLOAT_MODE);
    notificationManager.notify(notification);
    view.onClose();
    if (!isNullOrEmpty(givenRevision)) {
        service.getRevisions(project.getLocation(), toRelative(project, resources[0]), "1:HEAD").then(new Operation<GetRevisionsResponse>() {

            @Override
            public void apply(GetRevisionsResponse response) throws OperationException {
                final List<String> pathRevisions = response.getRevisions();
                if (pathRevisions.size() > 0) {
                    final String pathFirstRevision = pathRevisions.get(0);
                    final String pathLastRevision = pathRevisions.get(pathRevisions.size() - 1);
                    final int givenRevisionNb = Integer.valueOf(givenRevision);
                    final int pathFirstRevisionNb = Integer.valueOf(pathFirstRevision.substring(1));
                    final int pathLastRevisionNb = Integer.valueOf(pathLastRevision.substring(1));
                    final List<String> errOutput = response.getErrOutput();
                    if (errOutput != null && !errOutput.isEmpty()) {
                        printErrors(errOutput, constants.commandInfo());
                        notification.setTitle(constants.exportCommandExecutionError());
                        notification.setStatus(FAIL);
                    } else if (givenRevisionNb < pathFirstRevisionNb || givenRevisionNb > pathLastRevisionNb) {
                        notification.setTitle(constants.exportRevisionDoNotExistForPath(givenRevision, toRelative(project, resources[0]).toString()));
                        notification.setStatus(FAIL);
                    } else {
                        openExportPopup(project.getLocation(), toRelative(project, resources[0]), givenRevision, notification);
                    }
                } else {
                    notification.setTitle(constants.exportNoRevisionForPath(toRelative(project, resources[0]).toString()));
                    notification.setStatus(FAIL);
                }
            }
        }).catchError(new Operation<PromiseError>() {

            @Override
            public void apply(PromiseError error) throws OperationException {
                notification.setTitle(constants.exportCommandExecutionError() + "\n" + error.getMessage());
                notification.setStatus(FAIL);
            }
        });
    } else {
        openExportPopup(project.getLocation(), toRelative(project, resources[0]), null, notification);
    }
}
Also used : GetRevisionsResponse(org.eclipse.che.plugin.svn.shared.GetRevisionsResponse) Resource(org.eclipse.che.ide.api.resources.Resource) StatusNotification(org.eclipse.che.ide.api.notification.StatusNotification) Operation(org.eclipse.che.api.promises.client.Operation) Project(org.eclipse.che.ide.api.resources.Project) PromiseError(org.eclipse.che.api.promises.client.PromiseError) OperationException(org.eclipse.che.api.promises.client.OperationException)

Example 2 with GetRevisionsResponse

use of org.eclipse.che.plugin.svn.shared.GetRevisionsResponse in project che by eclipse.

the class SubversionApi method getRevisions.

public GetRevisionsResponse getRevisions(GetRevisionsRequest request) throws IOException, SubversionException, UnauthorizedException {
    final File projectPath = new File(request.getProjectPath());
    final List<String> uArgs = defaultArgs();
    addOption(uArgs, "--revision", request.getRevisionRange());
    uArgs.add("log");
    final CommandLineResult result = runCommand(null, uArgs, projectPath, Arrays.asList(request.getPath()));
    final GetRevisionsResponse response = DtoFactory.getInstance().createDto(GetRevisionsResponse.class).withCommand(result.getCommandLine().toString()).withOutput(result.getStdout()).withErrOutput(result.getStderr());
    if (result.getExitCode() == 0) {
        List<String> revisions = result.getStdout().parallelStream().filter(line -> line.split("\\|").length == 4).map(line -> line.split("\\|")[0].trim()).collect(Collectors.toList());
        response.withRevisions(revisions);
    }
    return response;
}
Also used : CheckoutRequest(org.eclipse.che.plugin.svn.shared.CheckoutRequest) PropertySetRequest(org.eclipse.che.plugin.svn.shared.PropertySetRequest) UpdateRequest(org.eclipse.che.plugin.svn.shared.UpdateRequest) Arrays(java.util.Arrays) LineConsumerFactory(org.eclipse.che.api.core.util.LineConsumerFactory) InfoRequest(org.eclipse.che.plugin.svn.shared.InfoRequest) PropertyGetRequest(org.eclipse.che.plugin.svn.shared.PropertyGetRequest) ListResponse(org.eclipse.che.plugin.svn.shared.ListResponse) Date(java.util.Date) CopyRequest(org.eclipse.che.plugin.svn.shared.CopyRequest) LoggerFactory(org.slf4j.LoggerFactory) RemoveRequest(org.eclipse.che.plugin.svn.shared.RemoveRequest) CLIOutputResponse(org.eclipse.che.plugin.svn.shared.CLIOutputResponse) Collections.singletonList(java.util.Collections.singletonList) SubversionUtils(org.eclipse.che.plugin.svn.server.utils.SubversionUtils) ZipUtils(org.eclipse.che.commons.lang.ZipUtils) ListRequest(org.eclipse.che.plugin.svn.shared.ListRequest) CleanupRequest(org.eclipse.che.plugin.svn.shared.CleanupRequest) Map(java.util.Map) CommitRequest(org.eclipse.che.plugin.svn.shared.CommitRequest) UnauthorizedException(org.eclipse.che.api.core.UnauthorizedException) Path(java.nio.file.Path) PropertyDeleteRequest(org.eclipse.che.plugin.svn.shared.PropertyDeleteRequest) RepositoryUrlProvider(org.eclipse.che.plugin.svn.server.repository.RepositoryUrlProvider) ResolveRequest(org.eclipse.che.plugin.svn.shared.ResolveRequest) SwitchRequest(org.eclipse.che.plugin.svn.shared.SwitchRequest) DtoFactory.newDto(org.eclipse.che.dto.server.DtoFactory.newDto) NotNull(javax.validation.constraints.NotNull) Collectors(java.util.stream.Collectors) Nullable(org.eclipse.che.commons.annotation.Nullable) IoUtil(org.eclipse.che.commons.lang.IoUtil) SshScriptProvider(org.eclipse.che.plugin.ssh.key.script.SshScriptProvider) List(java.util.List) HttpHeaders(javax.ws.rs.core.HttpHeaders) Response(javax.ws.rs.core.Response) Predicate(com.google.common.base.Predicate) MergeRequest(org.eclipse.che.plugin.svn.shared.MergeRequest) InfoUtils.getRelativeUrl(org.eclipse.che.plugin.svn.server.utils.InfoUtils.getRelativeUrl) ShowLogRequest(org.eclipse.che.plugin.svn.shared.ShowLogRequest) InfoResponse(org.eclipse.che.plugin.svn.shared.InfoResponse) CommandLineResult(org.eclipse.che.plugin.svn.server.upstream.CommandLineResult) SubversionItem(org.eclipse.che.plugin.svn.shared.SubversionItem) Singleton(com.google.inject.Singleton) SubversionUtils.recognizeProjectUri(org.eclipse.che.plugin.svn.server.utils.SubversionUtils.recognizeProjectUri) Iterables(com.google.common.collect.Iterables) LockRequest(org.eclipse.che.plugin.svn.shared.LockRequest) CLIOutputResponseList(org.eclipse.che.plugin.svn.shared.CLIOutputResponseList) GetRevisionsRequest(org.eclipse.che.plugin.svn.shared.GetRevisionsRequest) Strings.isNullOrEmpty(com.google.common.base.Strings.isNullOrEmpty) HashMap(java.util.HashMap) CLIOutputWithRevisionResponse(org.eclipse.che.plugin.svn.shared.CLIOutputWithRevisionResponse) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) ApiException(org.eclipse.che.api.core.ApiException) Files(com.google.common.io.Files) SshEnvironment(org.eclipse.che.plugin.svn.server.utils.SshEnvironment) InfoUtils.getRepositoryRoot(org.eclipse.che.plugin.svn.server.utils.InfoUtils.getRepositoryRoot) DtoFactory(org.eclipse.che.dto.server.DtoFactory) MediaType(com.google.common.net.MediaType) GetRevisionsResponse(org.eclipse.che.plugin.svn.shared.GetRevisionsResponse) Logger(org.slf4j.Logger) ErrorCodes(org.eclipse.che.api.core.ErrorCodes) Iterator(java.util.Iterator) IOException(java.io.IOException) StatusRequest(org.eclipse.che.plugin.svn.shared.StatusRequest) File(java.io.File) InfoUtils(org.eclipse.che.plugin.svn.server.utils.InfoUtils) PropertyListRequest(org.eclipse.che.plugin.svn.shared.PropertyListRequest) ShowDiffRequest(org.eclipse.che.plugin.svn.shared.ShowDiffRequest) ServerException(org.eclipse.che.api.core.ServerException) UpstreamUtils(org.eclipse.che.plugin.svn.server.upstream.UpstreamUtils) AddRequest(org.eclipse.che.plugin.svn.shared.AddRequest) RevertRequest(org.eclipse.che.plugin.svn.shared.RevertRequest) DeleteOnCloseFileInputStream(org.eclipse.che.api.vfs.util.DeleteOnCloseFileInputStream) MoveRequest(org.eclipse.che.plugin.svn.shared.MoveRequest) CommandLineResult(org.eclipse.che.plugin.svn.server.upstream.CommandLineResult) GetRevisionsResponse(org.eclipse.che.plugin.svn.shared.GetRevisionsResponse) File(java.io.File)

Aggregations

GetRevisionsResponse (org.eclipse.che.plugin.svn.shared.GetRevisionsResponse)2 Predicate (com.google.common.base.Predicate)1 Strings.isNullOrEmpty (com.google.common.base.Strings.isNullOrEmpty)1 Iterables (com.google.common.collect.Iterables)1 Files (com.google.common.io.Files)1 MediaType (com.google.common.net.MediaType)1 Singleton (com.google.inject.Singleton)1 File (java.io.File)1 IOException (java.io.IOException)1 Path (java.nio.file.Path)1 ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Collections.singletonList (java.util.Collections.singletonList)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 List (java.util.List)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1 Inject (javax.inject.Inject)1