From fee0600989ccc271e3f3b44a06599682698c425f Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 17 Aug 2012 15:17:16 -0400 Subject: [PATCH] Optionally cache repository list for improved performance --- src/com/gitblit/client/RepositoriesPanel.java | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) diff --git a/src/com/gitblit/client/RepositoriesPanel.java b/src/com/gitblit/client/RepositoriesPanel.java index cbe1874..54158e8 100644 --- a/src/com/gitblit/client/RepositoriesPanel.java +++ b/src/com/gitblit/client/RepositoriesPanel.java @@ -82,6 +82,8 @@ private JTextField filterTextfield; + private JButton clearCache; + public RepositoriesPanel(GitblitClient gitblit) { super(); this.gitblit = gitblit; @@ -103,6 +105,13 @@ refreshRepositories.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { refreshRepositories(); + } + }); + + clearCache = new JButton(Translation.get("gb.clearCache")); + clearCache.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + clearCache(); } }); @@ -242,6 +251,7 @@ repositoryTablePanel.add(new JScrollPane(table), BorderLayout.CENTER); JPanel repositoryControls = new JPanel(new FlowLayout(FlowLayout.CENTER, Utils.MARGIN, 0)); + repositoryControls.add(clearCache); repositoryControls.add(refreshRepositories); repositoryControls.add(browseRepository); repositoryControls.add(createRepository); @@ -285,6 +295,7 @@ protected abstract void updateTeamsTable(); protected void disableManagement() { + clearCache.setVisible(false); createRepository.setVisible(false); editRepository.setVisible(false); delRepository.setVisible(false); @@ -348,6 +359,26 @@ }; worker.execute(); } + + protected void clearCache() { + GitblitWorker worker = new GitblitWorker(RepositoriesPanel.this, + RpcRequest.CLEAR_REPOSITORY_CACHE) { + @Override + protected Boolean doRequest() throws IOException { + if (gitblit.clearRepositoryCache()) { + gitblit.refreshRepositories(); + return true; + } + return false; + } + + @Override + protected void onSuccess() { + updateTable(false); + } + }; + worker.execute(); + } /** * Displays the create repository dialog and fires a SwingWorker to update -- Gitblit v1.9.1