*/\r
public ForkModel getForkNetwork(String repository) {\r
if (settings.getBoolean(Keys.git.cacheRepositoryList, true)) {\r
- // find the root\r
+ // find the root, cached\r
RepositoryModel model = repositoryListCache.get(repository.toLowerCase());\r
while (model.originRepository != null) {\r
model = repositoryListCache.get(model.originRepository);\r
}\r
+ ForkModel root = getForkModelFromCache(model.name);\r
+ return root;\r
+ } else {\r
+ // find the root, non-cached\r
+ RepositoryModel model = getRepositoryModel(repository.toLowerCase());\r
+ while (model.originRepository != null) {\r
+ model = getRepositoryModel(model.originRepository);\r
+ }\r
ForkModel root = getForkModel(model.name);\r
return root;\r
}\r
- return null;\r
}\r
\r
- private ForkModel getForkModel(String repository) {\r
+ private ForkModel getForkModelFromCache(String repository) {\r
RepositoryModel model = repositoryListCache.get(repository.toLowerCase());\r
ForkModel fork = new ForkModel(model);\r
+ if (!ArrayUtils.isEmpty(model.forks)) {\r
+ for (String aFork : model.forks) {\r
+ ForkModel fm = getForkModelFromCache(aFork);\r
+ fork.forks.add(fm);\r
+ }\r
+ }\r
+ return fork;\r
+ }\r
+ \r
+ private ForkModel getForkModel(String repository) {\r
+ RepositoryModel model = getRepositoryModel(repository.toLowerCase());\r
+ ForkModel fork = new ForkModel(model);\r
if (!ArrayUtils.isEmpty(model.forks)) {\r
for (String aFork : model.forks) {\r
ForkModel fm = getForkModel(aFork);\r