Example usage for org.eclipse.jgit.transport.resolver RepositoryResolver RepositoryResolver

List of usage examples for org.eclipse.jgit.transport.resolver RepositoryResolver RepositoryResolver

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport.resolver RepositoryResolver RepositoryResolver.

Prototype

RepositoryResolver

Source Link

Usage

From source file:co.bledo.gitmin.servlet.Git.java

License:Apache License

@Override
public void init(final ServletConfig config) throws ServletException {
    log.entry(config);//w  w  w  .j a v a  2s  .  com

    setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {

        protected RepositoryBuilder builder = new RepositoryBuilder();

        @Override
        public Repository open(HttpServletRequest arg0, String arg1) throws RepositoryNotFoundException,
                ServiceNotAuthorizedException, ServiceNotEnabledException, ServiceMayNotContinueException {
            log.debug("RESOLVING REPO: {}", arg1);

            File path = new File(GitminConfig.getGitRepositoriesPath() + "/" + arg1);
            Repository repo;
            try {
                repo = builder.setGitDir(path).readEnvironment().findGitDir().build();
            } catch (IOException e) {
                log.catching(e);
                throw log.throwing(new RepositoryNotFoundException(path));
            }

            return log.exit(repo);
        }
    });

    super.init(new ServletConfig() {
        @Override
        public String getServletName() {
            return config.getServletName();
        }

        @Override
        public ServletContext getServletContext() {
            return config.getServletContext();
        }

        @Override
        public Enumeration<String> getInitParameterNames() {
            return config.getInitParameterNames();
        }

        @Override
        public String getInitParameter(String arg0) {
            if ("base-path".equals(arg0)) {
                return GitminConfig.getGitRepositoriesPath();
            } else if ("eport-all".equals(arg0)) {
                return GitminConfig.getGitExportAll();
            }

            return config.getInitParameter(arg0);
        }
    });

    log.exit();
}

From source file:com.google.gitiles.GitilesFilter.java

License:Open Source License

private static RepositoryResolver<HttpServletRequest> wrapResolver(
        final RepositoryResolver<HttpServletRequest> resolver) {
    checkNotNull(resolver, "resolver");
    return new RepositoryResolver<HttpServletRequest>() {
        @Override//from  ww  w  .  j  a  v a2s.c  o m
        public Repository open(HttpServletRequest req, String name) throws RepositoryNotFoundException,
                ServiceNotAuthorizedException, ServiceNotEnabledException, ServiceMayNotContinueException {
            return resolver.open(req, ViewFilter.trimLeadingSlash(getRegexGroup(req, 1)));
        }
    };
}

From source file:com.google.gitiles.TestGitilesServlet.java

License:Open Source License

/**
 * Create a servlet backed by a single test repository.
 * <p>/*from  w  w w  . j  ava  2s. c o m*/
 * The servlet uses the same filter lists as a real servlet, but only knows
 * about a single repo, having the name returned by
 * {@link org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription#getRepositoryName()}.
 * Pass a {@link FakeHttpServletRequest} and {@link FakeHttpServletResponse}
 * to the servlet's {@code service} method to test.
 *
 * @param repo the test repo backing the servlet.
 * @param gitwebRedirect optional redirect filter for gitweb URLs.
 * @return a servlet.
 */
public static GitilesServlet create(final TestRepository<DfsRepository> repo,
        GitwebRedirectFilter gitwebRedirect) throws ServletException {
    final String repoName = repo.getRepository().getDescription().getRepositoryName();
    GitilesServlet servlet = new GitilesServlet(new Config(),
            new DefaultRenderer(GitilesServlet.STATIC_PREFIX, ImmutableList.<URL>of(), repoName + " test site"),
            TestGitilesUrls.URLS, new TestGitilesAccess(repo.getRepository()),
            new RepositoryResolver<HttpServletRequest>() {
                @Override
                public Repository open(HttpServletRequest req, String name) throws RepositoryNotFoundException {
                    if (!repoName.equals(name)) {
                        throw new RepositoryNotFoundException(name);
                    }
                    return repo.getRepository();
                }
            }, null, null, null, gitwebRedirect);

    servlet.init(new ServletConfig() {
        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Enumeration<String> getInitParameterNames() {
            return Collections.enumeration(ImmutableList.<String>of());
        }

        @Override
        public ServletContext getServletContext() {
            return null;
        }

        @Override
        public String getServletName() {
            return TestGitilesServlet.class.getName();
        }
    });
    return servlet;
}

From source file:com.sap.poc.jgit.storage.jdbc.pgm.JdbcDaemon.java

License:Eclipse Distribution License

@Override
protected void run() throws Exception {
    final PackConfig packConfig = new PackConfig();

    if (configFile != null) {
        if (!configFile.exists())
            throw die(MessageFormat.format(CLIText.get().configFileNotFound, configFile.getAbsolutePath()));

        final FileBasedConfig cfg = new FileBasedConfig(configFile, FS.DETECTED);
        cfg.load();//from   w  w w .  j av a 2 s .  c  o  m
        packConfig.fromConfig(cfg);
    }

    int threads = packConfig.getThreads();
    if (threads <= 0)
        threads = Runtime.getRuntime().availableProcessors();
    if (1 < threads)
        packConfig.setExecutor(Executors.newFixedThreadPool(threads));

    final org.eclipse.jgit.transport.Daemon d;

    d = new org.eclipse.jgit.transport.Daemon(
            host != null ? new InetSocketAddress(host, port) : new InetSocketAddress(port));

    final JdbcDatabase db = new JdbcDatabaseBuilder().setURI(uri).build();

    final RepositoryResolver<DaemonClient> resolver = new RepositoryResolver<DaemonClient>() {
        @Override
        public Repository open(DaemonClient req, String name) throws RepositoryNotFoundException {
            try {
                return new JdbcRepositoryBuilder().setDatabase(db).setRepositoryName(name).build();
            } catch (DhtException e) {
                throw new RepositoryNotFoundException(name, e);
            }
        }
    };

    d.setPackConfig(packConfig);
    d.setRepositoryResolver(resolver);
    if (0 <= timeout)
        d.setTimeout(timeout);

    for (final String n : enable)
        service(d, n).setEnabled(true);
    for (final String n : disable)
        service(d, n).setEnabled(false);

    for (final String n : canOverride)
        service(d, n).setOverridable(true);
    for (final String n : forbidOverride)
        service(d, n).setOverridable(false);

    d.start();
    out.println(MessageFormat.format(CLIText.get().listeningOn, d.getAddress()));
}