{"action":"created","issue":{"url":"https://api.github.com/repos/junit-team/junit5/issues/175","repository_url":"https://api.github.com/repos/junit-team/junit5","labels_url":"https://api.github.com/repos/junit-team/junit5/issues/175/labels{/name}","comments_url":"https://api.github.com/repos/junit-team/junit5/issues/175/comments","events_url":"https://api.github.com/repos/junit-team/junit5/issues/175/events","html_url":"https://github.com/junit-team/junit5/issues/175","id":139692838,"number":175,"title":"Simplify TestSource Class","user":{"login":"jlink","id":103937,"avatar_url":"https://avatars.githubusercontent.com/u/103937?v=3","gravatar_id":"","url":"https://api.github.com/users/jlink","html_url":"https://github.com/jlink","followers_url":"https://api.github.com/users/jlink/followers","following_url":"https://api.github.com/users/jlink/following{/other_user}","gists_url":"https://api.github.com/users/jlink/gists{/gist_id}","starred_url":"https://api.github.com/users/jlink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlink/subscriptions","organizations_url":"https://api.github.com/users/jlink/orgs","repos_url":"https://api.github.com/users/jlink/repos","events_url":"https://api.github.com/users/jlink/events{/privacy}","received_events_url":"https://api.github.com/users/jlink/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/junit-team/junit5/labels/in%20progress","name":"in progress","color":"eb6420"},{"url":"https://api.github.com/repos/junit-team/junit5/labels/task","name":"task","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"bechte","id":453673,"avatar_url":"https://avatars.githubusercontent.com/u/453673?v=3","gravatar_id":"","url":"https://api.github.com/users/bechte","html_url":"https://github.com/bechte","followers_url":"https://api.github.com/users/bechte/followers","following_url":"https://api.github.com/users/bechte/following{/other_user}","gists_url":"https://api.github.com/users/bechte/gists{/gist_id}","starred_url":"https://api.github.com/users/bechte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bechte/subscriptions","organizations_url":"https://api.github.com/users/bechte/orgs","repos_url":"https://api.github.com/users/bechte/repos","events_url":"https://api.github.com/users/bechte/events{/privacy}","received_events_url":"https://api.github.com/users/bechte/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/junit-team/junit5/milestones/2","html_url":"https://github.com/junit-team/junit5/milestones/5.0%20M1","labels_url":"https://api.github.com/repos/junit-team/junit5/milestones/2/labels","id":1455861,"number":2,"title":"5.0 M1","description":"First major milestone release for JUnit 5 after the Alpha release\r\n\r\n**Epics:**\r\n\r\n- Stable, documented IDE-facing APIs (Launcher and Engine API)\r\n- Dynamic tests\r\n","creator":{"login":"sbrannen","id":104798,"avatar_url":"https://avatars.githubusercontent.com/u/104798?v=3","gravatar_id":"","url":"https://api.github.com/users/sbrannen","html_url":"https://github.com/sbrannen","followers_url":"https://api.github.com/users/sbrannen/followers","following_url":"https://api.github.com/users/sbrannen/following{/other_user}","gists_url":"https://api.github.com/users/sbrannen/gists{/gist_id}","starred_url":"https://api.github.com/users/sbrannen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbrannen/subscriptions","organizations_url":"https://api.github.com/users/sbrannen/orgs","repos_url":"https://api.github.com/users/sbrannen/repos","events_url":"https://api.github.com/users/sbrannen/events{/privacy}","received_events_url":"https://api.github.com/users/sbrannen/received_events","type":"User","site_admin":false},"open_issues":14,"closed_issues":50,"state":"open","created_at":"2015-12-11T12:28:52Z","updated_at":"2016-05-09T15:39:08Z","due_on":"2016-05-30T22:00:00Z","closed_at":null},"comments":15,"created_at":"2016-03-09T20:32:19Z","updated_at":"2016-05-10T12:23:55Z","closed_at":null,"body":"`TestSource` with its two concrete implementations is difficult to use since a cast to one of the implementations is required. I suggest to merge the interface and the two subclasses into a single interface with subclasses as needed along the following lines:\r\n```\r\npublic interface TestSource extends Serializable {\r\n   SourceType getType();\r\n   Optional<Class<?>> getJavaClass();\r\n   Optional<Method> getJavaMethod();\r\n   Optional<Path> getFileOrDirectory();\r\n   Optional<FilePosition> getFilePosition();\r\n   enum SourceType { JavaClass, JavaMethod, Directory, File, FilePosition }\r\n}\r\n```"},"comment":{"url":"https://api.github.com/repos/junit-team/junit5/issues/comments/218141514","html_url":"https://github.com/junit-team/junit5/issues/175#issuecomment-218141514","issue_url":"https://api.github.com/repos/junit-team/junit5/issues/175","id":218141514,"user":{"login":"mmerdes","id":9845887,"avatar_url":"https://avatars.githubusercontent.com/u/9845887?v=3","gravatar_id":"","url":"https://api.github.com/users/mmerdes","html_url":"https://github.com/mmerdes","followers_url":"https://api.github.com/users/mmerdes/followers","following_url":"https://api.github.com/users/mmerdes/following{/other_user}","gists_url":"https://api.github.com/users/mmerdes/gists{/gist_id}","starred_url":"https://api.github.com/users/mmerdes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmerdes/subscriptions","organizations_url":"https://api.github.com/users/mmerdes/orgs","repos_url":"https://api.github.com/users/mmerdes/repos","events_url":"https://api.github.com/users/mmerdes/events{/privacy}","received_events_url":"https://api.github.com/users/mmerdes/received_events","type":"User","site_admin":false},"created_at":"2016-05-10T12:23:55Z","updated_at":"2016-05-10T12:23:55Z","body":"Looks good to me.\r\n(I assume the return type of JavaPackageSource.getPackageName() should be a String rather than a Class?)"}}