| | |
| | | import java.lang.reflect.Field; |
| | | import java.net.URI; |
| | | import java.net.URISyntaxException; |
| | | import java.nio.charset.Charset; |
| | | import java.text.MessageFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | |
| | | import org.eclipse.jgit.storage.file.WindowCacheConfig; |
| | | import org.eclipse.jgit.util.FS; |
| | | import org.eclipse.jgit.util.FileUtils; |
| | | import org.eclipse.jgit.util.RawParseUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | |
| | | } |
| | | } |
| | | return r; |
| | | } |
| | | |
| | | /** |
| | | * Returns the list of all repository models. |
| | | * |
| | | * @return list of all repository models |
| | | */ |
| | | @Override |
| | | public List<RepositoryModel> getRepositoryModels() { |
| | | long methodStart = System.currentTimeMillis(); |
| | | List<String> list = getRepositoryList(); |
| | | List<RepositoryModel> repositories = new ArrayList<RepositoryModel>(); |
| | | for (String repo : list) { |
| | | RepositoryModel model = getRepositoryModel(repo); |
| | | if (model != null) { |
| | | repositories.add(model); |
| | | } |
| | | } |
| | | long duration = System.currentTimeMillis() - methodStart; |
| | | logger.info(MessageFormat.format("{0} repository models loaded in {1} msecs", duration)); |
| | | return repositories; |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | protected void configureLuceneIndexing() { |
| | | luceneExecutor = new LuceneService(settings, this); |
| | | int period = 2; |
| | | scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, period, TimeUnit.MINUTES); |
| | | logger.info("Lucene will process indexed branches every {} minutes.", period); |
| | | String frequency = settings.getString(Keys.web.luceneFrequency, "2 mins"); |
| | | int mins = TimeUtils.convertFrequencyToMinutes(frequency, 2); |
| | | scheduledExecutor.scheduleAtFixedRate(luceneExecutor, 1, mins, TimeUnit.MINUTES); |
| | | logger.info("Lucene will process indexed branches every {} minutes.", mins); |
| | | } |
| | | |
| | | protected void configureGarbageCollector() { |
| | |
| | | protected void configureMirrorExecutor() { |
| | | mirrorExecutor = new MirrorService(settings, this); |
| | | if (mirrorExecutor.isReady()) { |
| | | int mins = TimeUtils.convertFrequencyToMinutes(settings.getString(Keys.git.mirrorPeriod, "30 mins")); |
| | | if (mins < 5) { |
| | | mins = 5; |
| | | } |
| | | int mins = TimeUtils.convertFrequencyToMinutes(settings.getString(Keys.git.mirrorPeriod, "30 mins"), 5); |
| | | int delay = 1; |
| | | scheduledExecutor.scheduleAtFixedRate(mirrorExecutor, delay, mins, TimeUnit.MINUTES); |
| | | logger.info("Mirror service will fetch updates every {} minutes.", mins); |
| | |
| | | } catch (IllegalArgumentException e) { |
| | | logger.error("Failed to configure JGit parameters!", e); |
| | | } |
| | | |
| | | try { |
| | | // issue-486/ticket-151: UTF-9 & UTF-18 |
| | | Field field = RawParseUtils.class.getDeclaredField("encodingAliases"); |
| | | field.setAccessible(true); |
| | | Map<String, Charset> encodingAliases = (Map<String, Charset>) field.get(null); |
| | | encodingAliases.put("utf-9", RawParseUtils.UTF8_CHARSET); |
| | | encodingAliases.put("utf-18", RawParseUtils.UTF8_CHARSET); |
| | | logger.info("Alias UTF-9 & UTF-18 encodings as UTF-8 in JGit"); |
| | | } catch (Throwable t) { |
| | | logger.error("Failed to inject UTF-9 & UTF-18 encoding aliases into JGit", t); |
| | | } |
| | | } |
| | | |
| | | protected void configureCommitCache() { |