package com.asolutions.scmsshd.commands.git; import java.io.File; import java.io.IOException; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.spearce.jgit.lib.Repository; public class GitSCMRepositoryProvider { protected final Logger log = LoggerFactory.getLogger(getClass()); private static HashMap<String, Repository> repositoryCache = new HashMap<String, Repository>(); public Repository provide(File base, String argument) throws IOException { synchronized (repositoryCache) { if (repositoryCache.containsKey(argument)){ log.info("Using Cached Repo " + argument); return repositoryCache.get(argument); } File pathToRepo = new File(base, argument); log.info("Creating Repo: " + pathToRepo.getAbsolutePath()); Repository repo = new Repository(pathToRepo); log.info("...created"); repositoryCache.put(argument, repo); return repo; } } }