{"action":"opened","issue":{"url":"https://api.github.com/repos/jooby-project/jooby/issues/25","labels_url":"https://api.github.com/repos/jooby-project/jooby/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/jooby-project/jooby/issues/25/comments","events_url":"https://api.github.com/repos/jooby-project/jooby/issues/25/events","html_url":"https://github.com/jooby-project/jooby/issues/25","id":54261303,"number":25,"title":"add path and contextPath vars as request locals","user":{"login":"jknack","id":1301129,"avatar_url":"https://avatars.githubusercontent.com/u/1301129?v=3","gravatar_id":"","url":"https://api.github.com/users/jknack","html_url":"https://github.com/jknack","followers_url":"https://api.github.com/users/jknack/followers","following_url":"https://api.github.com/users/jknack/following{/other_user}","gists_url":"https://api.github.com/users/jknack/gists{/gist_id}","starred_url":"https://api.github.com/users/jknack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jknack/subscriptions","organizations_url":"https://api.github.com/users/jknack/orgs","repos_url":"https://api.github.com/users/jknack/repos","events_url":"https://api.github.com/users/jknack/events{/privacy}","received_events_url":"https://api.github.com/users/jknack/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/jooby-project/jooby/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/jooby-project/jooby/milestones/3","labels_url":"https://api.github.com/repos/jooby-project/jooby/milestones/3/labels","id":932108,"number":3,"title":"0.4.0","description":"","creator":{"login":"jknack","id":1301129,"avatar_url":"https://avatars.githubusercontent.com/u/1301129?v=3","gravatar_id":"","url":"https://api.github.com/users/jknack","html_url":"https://github.com/jknack","followers_url":"https://api.github.com/users/jknack/followers","following_url":"https://api.github.com/users/jknack/following{/other_user}","gists_url":"https://api.github.com/users/jknack/gists{/gist_id}","starred_url":"https://api.github.com/users/jknack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jknack/subscriptions","organizations_url":"https://api.github.com/users/jknack/orgs","repos_url":"https://api.github.com/users/jknack/repos","events_url":"https://api.github.com/users/jknack/events{/privacy}","received_events_url":"https://api.github.com/users/jknack/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":0,"state":"open","created_at":"2015-01-12T19:27:22Z","updated_at":"2015-01-13T23:01:55Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-01-13T23:01:55Z","updated_at":"2015-01-13T23:01:55Z","closed_at":null,"body":"These properties should be present in any request by default:\r\n\r\n* path: request path (req.path())\r\n* contextPath: application path (application.path)\r\n\r\nthese two vars must be saved as request locals\r\n\r\n```java\r\nassertEquals(req.path(), req.get(\"path\"));\r\nassertEquals(req.require(Config.class).getString(\"application.path\"), req.get(\"application.path\"));\r\n```"}}