Example usage for org.eclipse.jgit.transport Daemon setRepositoryResolver

List of usage examples for org.eclipse.jgit.transport Daemon setRepositoryResolver

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport Daemon setRepositoryResolver.

Prototype

public void setRepositoryResolver(RepositoryResolver<DaemonClient> resolver) 

Source Link

Document

Set the resolver used to locate a repository by name.

Usage

From source file:com.benhumphreys.jgitcassandra.Server.java

License:Apache License

public static void main(String[] args) {
    // Create the Cassandra Store Connection
    if (args.length < 1) {
        System.err.println("Must specify one or more Cassandra nodes");
        return;/*from   w  w w.j a  v a2 s.  c om*/
    }
    StoreConnection conn = new StoreConnection(Arrays.asList(args));

    // Start the Git server
    Daemon server = new Daemon(new InetSocketAddress(9418));
    boolean uploadsEnabled = true;
    server.getService("git-receive-pack").setEnabled(uploadsEnabled);
    //server.setRepositoryResolver(new InMemoryRepositoryResolver()); // For testing
    server.setRepositoryResolver(new CassandraRepositoryResolver(conn));
    try {
        server.start();
    } catch (IOException e) {
        System.out.println("Failed to start server: " + e.getMessage());
        e.printStackTrace();
    }
}

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();/*ww w . j  a v  a 2  s .  com*/
        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()));
}