use java 5 annotation and add context path support