@Override public Git getGit() { return cachedSupplier.get().getGit(); }
@Override public Path getPath(String first, String... more) throws InvalidPathException { return cachedSupplier.get().getPath(first, more); }
@Before public void setup() { when(fs.getSeparator()).thenReturn("/"); when(fs.provider()).thenReturn(fsp); when(fsp.isDefault()).thenReturn(false); when(fsp.getScheme()).thenReturn("git"); }
private void firePostponedBatchEvents(JGitFileSystem fileSystem) { synchronized (postponedEventsLock) { if (fileSystem.hasPostponedEvents()) { fileSystem.publishEvents(fileSystem.getRootDirectories().iterator().next(), fileSystem.getPostponedWatchEvents()); } fileSystem.clearPostponedWatchEvents(); int value = fileSystem.incrementAndGetCommitCount(); if (value >= config.getCommitLimit()) { fileSystem.getGit().gc(); fileSystem.resetCommitCount(); } } }
@Override public Path getPath(final String first, final String... more) throws InvalidPathException { checkClose(); checkNotEmpty("first", first); if (more == null || more.length == 0) { return JGitPathImpl.create(this, first, JGitPathImpl.DEFAULT_REF_TREE + "@" + name, false); } final StringBuilder sb = new StringBuilder(); for (final String segment : more) { if (segment.length() > 0) { if (sb.length() > 0) { sb.append(getSeparator()); } sb.append(segment); } } return JGitPathImpl.create(this, sb.toString(), first + "@" + name, false); }
doReturn(directory).when(repository).getDirectory(); doReturn(repository).when(git).getRepository(); doReturn(git).when(fileSystem).getGit(); doReturn(fsPath).when(fileSystem).getPath(""); doReturn(fileSystem).when(configPath).getFileSystem(); doReturn(configPath).when(ioService).get(any(URI.class));
private void postCommitHook(final JGitFileSystem fileSystem) { ProcessResult result = detectedFS.runHookIfPresent(fileSystem.getGit().getRepository(), "post-commit", new String[0]); if(result.getStatus().equals(ProcessResult.Status.OK)) { fileSystem.notifyPostCommit(result.getExitCode()); } }
@Override protected void execute(final FileSystemUser user, final Repository repository, final InputStream in, final OutputStream out, final OutputStream err, final JGitFileSystem fileSystem) { try { final ReceivePack rp = receivePackFactory.create(this, repository); rp.receive(in, out, err); rp.setPostReceiveHook((rp1, commands) -> { fileSystem.getGit().gc(); fileSystem.resetCommitCount(); }); } catch (final Exception ignored) { } } }
@Test public void testSimpleBranchedGitRoot() { when(fs.getSeparator()).thenReturn("/"); final Path path = JGitPathImpl.create(fs, "/", "master@my-host", false); assertThat(path).isNotNull(); assertThat(path.isAbsolute()).isTrue(); assertThat(path.toString()).isEqualTo("/"); assertThat(path.toUri().toString()).isEqualTo("git://master@my-host/"); assertThat(path.getRoot().toString()).isEqualTo("/"); assertThat(path.getNameCount()).isEqualTo(0); }
final JGitFileSystem fs = mock(JGitFileSystem.class); final FileSystemProvider provider = mock(FileSystemProvider.class); when(fs.provider()).thenReturn(provider); final org.uberfire.java.nio.file.Path exampleRootNioPath = JGitPathImpl.create(fs, "/example", true); final org.uberfire.java.nio.file.Path repoRoot = exampleRootNioPath.getParent(); when(fs.getRootDirectories()).thenReturn(() -> Stream.of(repoRoot).iterator()); when(pathUtil.convert(exampleRoot)).thenReturn(exampleRootNioPath); when(pathUtil.stripProtocolAndBranch(any())).then(inv -> realPathUtil.stripProtocolAndBranch(inv.getArgumentAt(0,
@Override public FileSystemProvider provider() { return cachedSupplier.get().provider(); }
List<WatchEvent<?>> notifyDiffs(final JGitFileSystem fs, final String _tree, final String sessionId, final String userName, final String message, final ObjectId oldHead, final ObjectId newHead) { List<WatchEvent<?>> watchEvents = compareDiffs(fs, _tree, sessionId, userName, message, oldHead, newHead); final String tree; if (_tree.startsWith("refs/")) { tree = _tree.substring(_tree.lastIndexOf("/") + 1); } else { tree = _tree; } final String host = tree + "@" + fs.getName(); final Path root = JGitPathImpl.createRoot(fs, "/", host, false); if (!watchEvents.isEmpty()) { fs.publishEvents(root, watchEvents); } return watchEvents; }
@Override public int getNumberOfCommitsSinceLastGC() { return cachedSupplier.get().getNumberOfCommitsSinceLastGC(); }
@Override public Iterable<Path> getRootDirectories() { return cachedSupplier.get().getRootDirectories(); }
doReturn(directory).when(repository).getDirectory(); doReturn(repository).when(git).getRepository(); doReturn(git).when(fileSystem).getGit(); doReturn(fsPath).when(fileSystem).getPath(""); doReturn(fileSystem).when(configPath).getFileSystem(); doReturn(configPath).when(ioService).get(any(URI.class));