task {
  recovery-dir = work
  step {
    retry-delay = 5 seconds
    execution-threads = 32
  }
}

xl {
  deploy {
    websockets {
      message-broker {
        input-buffer-size = 32768 # in Kb
      }
      threadpool {
        core-pool-size = 10
        daemon = false
        keep-alive-seconds = 60
        max-pool-size = 24
        queue-capacity = 500
      }
    }

    license {
      daysBeforeWarning = 10
    }
  }

  repository {
    database {
      db-driver-classname = "org.apache.derby.jdbc.AutoloadedDriver"
      db-url = "jdbc:derby:db;create=true"
    }
  }

  server {
    # The public hostname of this system.
    # Must be resolvable for all satellites.
    # If empty, the name of the system will be resolved and the returned address will be used.
    #
    hostname = "127.0.0.1"

    # The host name to listen on.
    # The default setting will listen on all network interfaces.
    # A specific interface can be targeted by name or address.
    #
    bind-hostname = "0.0.0.0"

    port = 8180

    ssl {
      enabled = yes
      port = 8280

      key-store = "keystore"
      key-password = "changeme"
      key-store-password = "changeme"

      trust-store = "truststore"
      trust-store-password = "changeme"

      # Protocol to use for SSL encryption, choose from:
      # Java 7:
      #   'TLSv1.1', 'TLSv1.2'
      protocol = "TLSv1.2"

      # Example: ["TLS_RSA_WITH_AES_128_CBC_SHA", "TLS_RSA_WITH_AES_256_CBC_SHA"]
      # You need to install the JCE Unlimited Strength Jurisdiction Policy
      # Files to use AES 256.
      # More info here:
      # http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#SunJCEP
      enabled-algorithms = ["TLS_RSA_WITH_AES_128_CBC_SHA"]

      # There are three options, in increasing order of security:
      # "" or SecureRandom => (default)
      # "SHA1PRNG" => Can be slow because of blocking issues on Linux
      # "AES128CounterSecureRNG" => fastest startup and based on AES encryption
      # "AES256CounterSecureRNG"
      # The following use one of 3 possible seed sources, depending on
      # availability: /dev/random, random.org and SecureRandom (provided by Java)
      # "AES128CounterInetRNG"
      # "AES256CounterInetRNG" (Install JCE Unlimited Strength Jurisdiction
      # Policy Files first)
      # Setting a value here may require you to supply the appropriate cipher
      # suite (see enabled-algorithms section above)
      random-number-generator = ""
    }
  }

  satellite {
    enabled = yes

    timeout {
      info = "10 seconds"
      ping = "5 seconds"
      upload.idle = "300 seconds"
      streaming = "10 seconds"
    }

    streaming {
      # Maximum amount of concurrent uploads per task
      max-uploads = 10
    }

  }

  jmx {
    enabled = no # when 'yes' then also hostname is required:
    # hostname = changeme
    port = 1099

    ssl {
      enabled = no
    }

    kamon {
      show-aspectj-missing-warning = "yes"

      metric {
        track-unmatched-entities = yes
        filters {
          akka-dispatcher {
            includes = ["PlannerActorSystem/**", "task-sys/**", "xl-scheduler-system/**"]
            excludes = []
          }
        }
      }

      kamon-mxbeans {
        mbeans = [],
        identify-delay-interval-ms = 1000,
        identify-interval-ms = 1000,
        value-check-interval-ms = 1000
      }
    }
  }
}

### The following section is optional, and will default to a standard (standalone) setup
# cluster {

  ### mode: "default", "hot-standby", "full" (not implemented yet)
  ### "default" means no clustering, and the rest of this config will not be taken into account
  # mode = "default"

  ### the name of the akka cluster. Optional - defaults to 'xld-hotstandby-cluster'
  # name = "xld-hotstandby-cluster"


  # membership {

    ### heartbeat and ttl are optional settings, defaulting to 10s and 60s respectively. ttl should be > heartbeat.
    # heartbeat = 10 seconds
    # ttl = 60 seconds

    ### the jdbc section tells XL Deploy where to find cluster bootstrapping information. Required when running non-standalone
    # jdbc {
      # url = "jdbc:mysql://db/example?useSSL=false"
      # username = "some_db_user"
      # password = "t0pS3cr3t"
    # }
  # }

  ### These are optional. See the docs for their meaning.
  # akka {
  #   actor.provider = "akka.cluster.ClusterActorRefProvider"
  #   cluster.auto-down-unreachable-after = 15s
  # }
# }
