Add independent classes from ssh plugin

This commit is contained in:
René Pfeuffer
2019-03-04 13:22:40 +01:00
parent 5abc8f1790
commit ffbf9e4fba
5 changed files with 71 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
package sonia.scm.protocolcommand;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.io.InputStream;
import java.io.OutputStream;
@Getter
@AllArgsConstructor
public class CommandContext {
private String command;
private String[] args;
private InputStream inputStream;
private OutputStream outputStream;
private OutputStream errorStream;
}

View File

@@ -0,0 +1,8 @@
package sonia.scm.protocolcommand;
@FunctionalInterface
public interface CommandParser {
String[] parse(String command);
}

View File

@@ -0,0 +1,23 @@
package sonia.scm.protocolcommand;
import sonia.scm.repository.Repository;
import java.nio.file.Path;
public class RepositoryContext {
private Repository repository;
private Path directory;
public RepositoryContext(Repository repository, Path directory) {
this.repository = repository;
this.directory = directory;
}
public Repository getRepository() {
return repository;
}
public Path getDirectory() {
return directory;
}
}

View File

@@ -0,0 +1,11 @@
package sonia.scm.protocolcommand;
import sonia.scm.plugin.ExtensionPoint;
@FunctionalInterface
@ExtensionPoint
public interface RepositoryContextResolver {
RepositoryContext resolve(String[] args);
}

View File

@@ -0,0 +1,9 @@
package sonia.scm.protocolcommand;
import java.io.IOException;
public interface ScmSshProtocol {
void handle(CommandContext context, RepositoryContext repositoryContext) throws IOException;
}