Class Daemon

java.lang.Object
org.eclipse.jgit.transport.Daemon

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

  • Constructor Details

    • 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 Details

    • 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.
    • start

      public void start() throws IOException
      Start this daemon on a background thread.
      Throws:
      IOException - the server socket could not be opened.
      IllegalStateException - the daemon is already running.
    • clearThread

      private void clearThread()
    • 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
    • startClient

      void startClient(Socket s)
    • matchService

      DaemonService matchService(String cmd)
    • openRepository

      Repository openRepository(DaemonClient client, String name) throws ServiceMayNotContinueException
      Throws:
      ServiceMayNotContinueException