package Ġcom . examples . helloworld . resources Ċ Ċ import Ġcom . examples . helloworld . core . Say ing ; Ċ import Ġcom . co da h ale . metrics . annotation . Timed ; Ċ Ċ import Ġjavax . ws . rs . GET ; Ċ import Ġjavax . ws . rs . Path ; Ċ import Ġjavax . ws . rs . Produces ; Ċ import Ġjavax . ws . rs . QueryParam ; Ċ import Ġjavax . ws . rs . core . MediaType ; Ċ import Ġjava . util . concurrent . atomic . Atomic Long ; Ċ Ċ @ Path ("/ hello - world ") Ċ @ Produces ( MediaType . APPLICATION _ JSON ) Ċ class ĠHello World Resource ( val Ġtemplate Ġ: ĠString ? Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Name Ġ: ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcounter Ġ: ĠAtomic Long Ġ= ĠĠ ĠAtomic Long ()) Ġ{ ĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Timed ĊĠĠĠ Ġfun Ġ Ġsay Hello (@ QueryParam (" name ") Ġname Ġ: ĠString ?) Ġ: ĠS ay ing Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ: ĠString Ġ= Ġtemplate !! Ġ Ġformat Ġ( name Ġ?: Ġdefault Name ) ĊĠĠĠĠĠĠĠ Ġreturn ĠS ay ing ( counter . increment AndGet (), Ġvalue ) ĊĠĠĠ Ġ} Ċ }