]> source.dussan.org Git - gitblit.git/commitdiff
Eliminated unnecessary repository enumeration (issue 103)
authorJames Moger <james.moger@gitblit.com>
Fri, 17 Aug 2012 19:35:38 +0000 (15:35 -0400)
committerJames Moger <james.moger@gitblit.com>
Fri, 17 Aug 2012 19:35:38 +0000 (15:35 -0400)
docs/04_releases.mkd
src/com/gitblit/wicket/pages/RootPage.java

index 5c89d9a4c0cc53ad15c07ddf99363b75fa2bebcb..af70dff5332b83627c912fc382da7e1e6434e22a 100644 (file)
@@ -11,6 +11,7 @@ If you are updating from an earlier release AND you have indexed branches with t
 \r
 #### fixes\r
 \r
+- Eliminated an unnecessary reopsitory enumeration call on the root page which should result in faster page loads (issue 103) \r
 - Gitblit could not delete a Lucene index in a working copy on index upgrade \r
 - Do not index submodule links (issue 119)\r
 - Restore original user or team object on failure to update (issue 118)\r
index 636ed00e8d9520d328daa314b1ac2c2bcaa364f3..eaa25425c940b88527d31be193f2faae82891981 100644 (file)
@@ -64,6 +64,7 @@ public abstract class RootPage extends BasePage {
 \r
        IModel<String> username = new Model<String>("");\r
        IModel<String> password = new Model<String>("");\r
+       List<RepositoryModel> repositoryModels = new ArrayList<RepositoryModel>();\r
 \r
        public RootPage() {\r
                super();\r
@@ -223,6 +224,15 @@ public abstract class RootPage extends BasePage {
                        }\r
                }\r
        }\r
+       \r
+       protected List<RepositoryModel> getRepositoryModels() {\r
+               if (repositoryModels.isEmpty()) {\r
+                       final UserModel user = GitBlitWebSession.get().getUser();\r
+                       List<RepositoryModel> repositories = GitBlit.self().getRepositoryModels(user);\r
+                       repositoryModels.addAll(repositories);\r
+               }\r
+               return repositoryModels;\r
+       }\r
 \r
        protected void addDropDownMenus(List<PageRegistration> pages) {\r
 \r
@@ -231,7 +241,7 @@ public abstract class RootPage extends BasePage {
        protected List<DropDownMenuItem> getRepositoryFilterItems(PageParameters params) {\r
                final UserModel user = GitBlitWebSession.get().getUser();\r
                Set<DropDownMenuItem> filters = new LinkedHashSet<DropDownMenuItem>();\r
-               List<RepositoryModel> repositories = GitBlit.self().getRepositoryModels(user);\r
+               List<RepositoryModel> repositories = getRepositoryModels();\r
 \r
                // accessible repositories by federation set\r
                Map<String, AtomicInteger> setMap = new HashMap<String, AtomicInteger>();\r
@@ -307,9 +317,8 @@ public abstract class RootPage extends BasePage {
        }\r
 \r
        protected List<RepositoryModel> getRepositories(PageParameters params) {\r
-               final UserModel user = GitBlitWebSession.get().getUser();\r
                if (params == null) {\r
-                       return GitBlit.self().getRepositoryModels(user);\r
+                       return getRepositoryModels();\r
                }\r
 \r
                boolean hasParameter = false;\r
@@ -319,7 +328,7 @@ public abstract class RootPage extends BasePage {
                String team = WicketUtils.getTeam(params);\r
                int daysBack = params.getInt("db", 0);\r
 \r
-               List<RepositoryModel> availableModels = GitBlit.self().getRepositoryModels(user);\r
+               List<RepositoryModel> availableModels = getRepositoryModels();\r
                Set<RepositoryModel> models = new HashSet<RepositoryModel>();\r
 \r
                if (!StringUtils.isEmpty(repositoryName)) {\r