List of usage examples for org.eclipse.jgit.transport PacketLineIn readString
public String readString() throws IOException
From source file:com.google.gerrit.acceptance.ssh.UploadArchiveIT.java
License:Apache License
@Test public void zipFormat() throws Exception { PushOneCommit.Result r = createChange(); String abbreviated = r.getCommitId().abbreviate(8).name(); String c = command(r, abbreviated); InputStream out = sshSession.exec2("git-upload-archive " + project.get(), argumentsToInputStream(c)); // Wrap with PacketLineIn to read ACK bytes from output stream PacketLineIn in = new PacketLineIn(out); String tmp = in.readString(); assertThat(tmp).isEqualTo("ACK"); tmp = in.readString();/*from w w w . j a v a 2 s . co m*/ // Skip length (4 bytes) + 1 byte // to position the output stream to the raw zip stream byte[] buffer = new byte[5]; IO.readFully(out, buffer, 0, 5); Set<String> entryNames = new TreeSet<>(); try (ZipArchiveInputStream zip = new ZipArchiveInputStream(out)) { ZipArchiveEntry zipEntry = zip.getNextZipEntry(); while (zipEntry != null) { String name = zipEntry.getName(); entryNames.add(name); zipEntry = zip.getNextZipEntry(); } } assertThat(entryNames.size()).isEqualTo(1); assertThat(Iterables.getOnlyElement(entryNames)) .isEqualTo(String.format("%s/%s", abbreviated, PushOneCommit.FILE_NAME)); }
From source file:com.google.gerrit.acceptance.ssh.UploadArchiveIT.java
License:Apache License
private void archiveNotPermitted() throws Exception { PushOneCommit.Result r = createChange(); String abbreviated = r.getCommitId().abbreviate(8).name(); String c = command(r, abbreviated); InputStream out = sshSession.exec2("git-upload-archive " + project.get(), argumentsToInputStream(c)); // Wrap with PacketLineIn to read ACK bytes from output stream PacketLineIn in = new PacketLineIn(out); String tmp = in.readString(); assertThat(tmp).isEqualTo("ACK"); tmp = in.readString();//from w w w.j ava 2 s . c om tmp = in.readString(); tmp = tmp.substring(1); assertThat(tmp).isEqualTo("fatal: upload-archive not permitted"); }
From source file:com.google.gerrit.sshd.commands.UploadArchive.java
License:Apache License
/** * Read and parse arguments from input stream. * This method gets the arguments from input stream, in Pkt-line format, * then parses them to fill the options object. *//*w ww. ja va 2 s . c om*/ protected void readArguments() throws IOException, Failure { String argCmd = "argument "; List<String> args = Lists.newArrayList(); // Read arguments in Pkt-Line format PacketLineIn packetIn = new PacketLineIn(in); for (;;) { String s = packetIn.readString(); if (s == PacketLineIn.END) { break; } if (!s.startsWith(argCmd)) { throw new Failure(1, "fatal: 'argument' token or flush expected"); } String[] parts = s.substring(argCmd.length()).split("=", 2); for (String p : parts) { args.add(p); } } try { // Parse them into the 'options' field CmdLineParser parser = new CmdLineParser(options); parser.parseArgument(args); if (options.path == null || Arrays.asList(".").equals(options.path)) { options.path = Collections.emptyList(); } } catch (CmdLineException e) { throw new Failure(2, "fatal: unable to parse arguments, " + e); } }
From source file:it.com.atlassian.labs.speakeasy.util.jgit.FixedTransportHttp.java
License:Eclipse Distribution License
private void readSmartHeaders(final InputStream in, final String service) throws IOException { // A smart reply will have a '#' after the first 4 bytes, but // a dumb reply cannot contain a '#' until after byte 41. Do a // quick check to make sure its a smart reply before we parse // as a pkt-line stream. ///* w w w . j a va 2s . c om*/ final byte[] magic = new byte[5]; IO.readFully(in, magic, 0, magic.length); if (magic[4] != '#') { throw new TransportException(uri, MessageFormat.format(JGitText.get().expectedPktLineWithService, RawParseUtils.decode(magic))); } final PacketLineIn pckIn = new PacketLineIn(new UnionInputStream(new ByteArrayInputStream(magic), in)); final String exp = "# service=" + service; //$NON-NLS-1$ final String act = pckIn.readString(); if (!exp.equals(act)) { throw new TransportException(uri, MessageFormat.format(JGitText.get().expectedGot, exp, act)); } while (pckIn.readString() != PacketLineIn.END) { // for now, ignore the remaining header lines } }