Class Daemon


  • public class Daemon
    extends Object
    Basic daemon for the anonymous git:// transport protocol.
    • Field Detail

      • DEFAULT_PORT

        public static final int DEFAULT_PORT
        9418: IANA assigned port number for Git.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Daemon

        public Daemon()
        Configure a daemon to listen on any available network port.
      • Daemon

        public Daemon​(InetSocketAddress addr)
        Configure a new daemon for the specified network address.
        Parameters:
        addr - address to listen for connections on. If null, any available port will be chosen on all network interfaces.
    • Method Detail

      • getAddress

        public InetSocketAddress getAddress()
        Get the address connections are received on.
        Returns:
        the address connections are received on.
      • getService

        public DaemonService getService​(String name)
        Lookup a supported service so it can be reconfigured.
        Parameters:
        name - name of the service; e.g. "receive-pack"/"git-receive-pack" or "upload-pack"/"git-upload-pack".
        Returns:
        the service; null if this daemon implementation doesn't support the requested service type.
      • getTimeout

        public int getTimeout()
        Get timeout (in seconds) before aborting an IO operation.
        Returns:
        timeout (in seconds) before aborting an IO operation.
      • setTimeout

        public void setTimeout​(int seconds)
        Set the timeout before willing to abort an IO call.
        Parameters:
        seconds - number of seconds to wait (with no data transfer occurring) before aborting an IO read or write operation with the connected client.
      • getPackConfig

        public PackConfig getPackConfig()
        Get configuration controlling packing, may be null.
        Returns:
        configuration controlling packing, may be null.
      • setPackConfig

        public void setPackConfig​(PackConfig pc)
        Set the configuration used by the pack generator.
        Parameters:
        pc - configuration controlling packing parameters. If null the source repository's settings will be used.
      • setRepositoryResolver

        public void setRepositoryResolver​(RepositoryResolver<DaemonClient> resolver)
        Set the resolver used to locate a repository by name.
        Parameters:
        resolver - the resolver instance.
      • setUploadPackFactory

        public void setUploadPackFactory​(UploadPackFactory<DaemonClient> factory)
        Set the factory to construct and configure per-request UploadPack.
        Parameters:
        factory - the factory. If null upload-pack is disabled.
      • getReceivePackFactory

        public ReceivePackFactory<DaemonClient> getReceivePackFactory()
        Get the factory used to construct per-request ReceivePack.
        Returns:
        the factory.
        Since:
        4.3
      • setReceivePackFactory

        public void setReceivePackFactory​(ReceivePackFactory<DaemonClient> factory)
        Set the factory to construct and configure per-request ReceivePack.
        Parameters:
        factory - the factory. If null receive-pack is disabled.
      • isRunning

        public boolean isRunning()
        Whether this daemon is receiving connections.
        Returns:
        true if this daemon is receiving connections.
      • stop

        public void stop()
        Stop this daemon.
      • stopAndWait

        public void stopAndWait()
                         throws InterruptedException
        Stops this daemon and waits until it's acceptor thread has finished.
        Throws:
        InterruptedException - if waiting for the acceptor thread is interrupted
        Since:
        4.9