# configuration instances available in the system:
instances:
  server:
    type: javaNode # this is a pointer to a "JavaNode" type defined in @types

  server.printer:
    type: ConsolePrinter
    inputs:
      input:
        - chan

    groups:
      sync:
        params:
          isMaster: true

  sync: CentralizedWSGroup

  chan:
    # but you are not forced to point to a globally defined @types
    # you can also inline it directly like this:
    type:
      name: RemoteWSChan
      version: 1
      platforms:
        js: kevoree-chan-remotews@5.3.3-beta.3
        java: org.kevoree.library:chan-remotews:5.5.0-SNAPSHOT

# this is something you can refer from a .kevs using @<name>
# eg. "add newClient: @client"
# this would add a new JavascriptNode named "newClient"
# using the template conf named "client" (just below)
templates:
  client:
    type: JavascriptNode
    components:
      ticker:
        type: Ticker
        params:
          period: 150
          random: true
        outputs:
          tick:
            - chan
    groups:
      sync:
        params:
          masterNet: 'ip.lo'

# globally defined @types (the goal here is to shorten the overall conf)
types:
  # yes this is the pointer
  javaNode:
    name: JavaNode
    version: 2
    platforms:
      java: org.kevoree.library:org.kevoree.library.javaNode:5.5.0-SNAPSHOT

  JavascriptNode:
    version: 1
    platforms:
      js: @kevoree/node-nodejs@^1.0.0

  CentralizedWSGroup:
    version: 1
    platforms:
      js: kevoree-group-centralizedws@1.0.0-alpha.9
      java: org.kevoree.library:org.kevoree.library.centralizedwsgroup:5.5.0-SNAPSHOT

  Ticker:
    version: 1
    platforms:
      js: /home/leiko/dev/kevoree-js/libraries/comps/ticker
      java: /home/leiko/dev/kevoree/kevoree-library/toys/target/org.kevoree.library.toys-5.5.0-SNAPSHOT.jar

  ConsolePrinter:
    version: 1
    platforms:
      js: kevoree-chan-remotews@5.3.3-beta.3
      java: org.kevoree.library:chan-remotews:5.5.0-SNAPSHOT

  customType:
    namespace: mynamespace
    name: MyTicker
    version: 42
    platforms:
      js: @mynamespace/my-ticker@^2.0.0
