package Ġcom . ro ber thor ro x . apis erver . resources ĊĊ Ċ import Ġjavax . ws . rs . Path Ċ import Ġjavax . ws . rs . Produces Ċ import Ġjavax . ws . rs . core . MediaType Ċ import Ġjava . util . concurrent . atomic . Atomic Long Ċ import Ġcom . co da h ale . metrics . annotation . Timed Ċ import Ġjavax . ws . rs . GET Ċ import Ġcom . google . common . base . Optional Ċ import Ġjavax . ws . rs . QueryParam Ċ import Ġcom . ro ber thor ro x . apis erver . api . Say ing Ċ Ċ @ Path ("/ hello - world ") Ċ @ Produces ( MediaType . APPLICATION _ JSON ) Ċ class ĠAp iser ver Resource ( val Ġtemplate : ĠString , Ġval Ġdefault Name : ĠString ) Ġ{ ĊĠĠĠ Ġvar Ġcounter Ġ= ĠAtomic Long () ĊĊĠĠĠ Ġ@ Timed ĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġfun Ġsay Hello (@ QueryParam (" name ") Ġname : ĠOptional < String >): ĠS ay ing Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġjava . lang . String . format ( template , Ġname . or ( default Name )) ĊĠĠĠĠĠĠĠ Ġreturn ĠS ay ing ( counter . increment AndGet (), Ġvalue ) ĊĠĠĠ Ġ} Ċ } Ċ