{"action":"closed","number":226,"pull_request":{"url":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/226","id":28409350,"html_url":"https://github.com/gemini-hlsw/ocs/pull/226","diff_url":"https://github.com/gemini-hlsw/ocs/pull/226.diff","patch_url":"https://github.com/gemini-hlsw/ocs/pull/226.patch","issue_url":"https://api.github.com/repos/gemini-hlsw/ocs/issues/226","number":226,"state":"closed","locked":false,"title":"OCSADV-215: Use enums and types from spModel in TeleParameters","user":{"login":"fnussber","id":7856060,"avatar_url":"https://avatars.githubusercontent.com/u/7856060?v=3","gravatar_id":"","url":"https://api.github.com/users/fnussber","html_url":"https://github.com/fnussber","followers_url":"https://api.github.com/users/fnussber/followers","following_url":"https://api.github.com/users/fnussber/following{/other_user}","gists_url":"https://api.github.com/users/fnussber/gists{/gist_id}","starred_url":"https://api.github.com/users/fnussber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fnussber/subscriptions","organizations_url":"https://api.github.com/users/fnussber/orgs","repos_url":"https://api.github.com/users/fnussber/repos","events_url":"https://api.github.com/users/fnussber/events{/privacy}","received_events_url":"https://api.github.com/users/fnussber/received_events","type":"User","site_admin":false},"body":"As a long term goal all (or at least most) stringly typed values in ITC should be replaced with the corresponding values from spModel.\r\n\r\nApart from general type-safety this will also make it easier the keep ITC in sync with changes in the model (e.g. new instrument capabilities like filters etc) and integrate it into the OT and PIT. Furthermore I want to use the enums for a more automated approach in the translation from and to string values for the HTML pages using the enum class and value names. This should also simplify a potential future rewrite of the web front end since it will be easier to create option drop downs etc from the enums in the spModel.\r\n\r\nThis is a first step exercising these changes with the TeleParameters object. This PR also includes a rework of the Exception handling, mainly a change from checked exceptions to unchecked ones and the removal of catching and re-throwing exceptions when parsing input parameter objects. Missing parameter exceptions (which result from errors in the html pages) etc are now allowed to bubble all the way up to the servlet before being caught. All user relevant configuration problem exceptions (e.g invalid instrument configurations) have been changed into IllegalArgumentExceptions and are presented to the user as before.\r\n\r\nAnother bunch of obsolete data files has been identified and eliminated. And occasionally some more code has been cleaned up here and there.\r\n\r\nAdditional remark: I did some manual testing and found an error that went undetected by the current tests. In addition to fixing the error I also improved the test infrastructure to also take the resulting spectra files into account when calculating / comparing the baselines. Hopefully this will catch any future unintentional changes.\r\n\r\nAnother add-on: I fixed a problem which caused sometimes the same chart to be displayed twice instead of the two different ones for spectroscopy. This was caused by a race condition in the servlet (filename was \"shared\" between different threads executing doGet()). This includes also a first refactoring/simplification step of the charts in the recipes.","created_at":"2015-01-31T04:14:24Z","updated_at":"2015-02-06T01:00:09Z","closed_at":"2015-02-06T01:00:09Z","merged_at":"2015-02-06T01:00:09Z","merge_commit_sha":"8704394977395ec3bf9849f6da0a5b0bf202cf28","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/226/commits","review_comments_url":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/226/comments","review_comment_url":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/comments/{number}","comments_url":"https://api.github.com/repos/gemini-hlsw/ocs/issues/226/comments","statuses_url":"https://api.github.com/repos/gemini-hlsw/ocs/statuses/ddc95cfce2c60ec5cca731e5cf2b851aab0bbab4","head":{"label":"fnussber:feature/OCSADV-215","ref":"feature/OCSADV-215","sha":"ddc95cfce2c60ec5cca731e5cf2b851aab0bbab4","user":{"login":"fnussber","id":7856060,"avatar_url":"https://avatars.githubusercontent.com/u/7856060?v=3","gravatar_id":"","url":"https://api.github.com/users/fnussber","html_url":"https://github.com/fnussber","followers_url":"https://api.github.com/users/fnussber/followers","following_url":"https://api.github.com/users/fnussber/following{/other_user}","gists_url":"https://api.github.com/users/fnussber/gists{/gist_id}","starred_url":"https://api.github.com/users/fnussber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fnussber/subscriptions","organizations_url":"https://api.github.com/users/fnussber/orgs","repos_url":"https://api.github.com/users/fnussber/repos","events_url":"https://api.github.com/users/fnussber/events{/privacy}","received_events_url":"https://api.github.com/users/fnussber/received_events","type":"User","site_admin":false},"repo":{"id":23975511,"name":"ocs","full_name":"fnussber/ocs","owner":{"login":"fnussber","id":7856060,"avatar_url":"https://avatars.githubusercontent.com/u/7856060?v=3","gravatar_id":"","url":"https://api.github.com/users/fnussber","html_url":"https://github.com/fnussber","followers_url":"https://api.github.com/users/fnussber/followers","following_url":"https://api.github.com/users/fnussber/following{/other_user}","gists_url":"https://api.github.com/users/fnussber/gists{/gist_id}","starred_url":"https://api.github.com/users/fnussber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fnussber/subscriptions","organizations_url":"https://api.github.com/users/fnussber/orgs","repos_url":"https://api.github.com/users/fnussber/repos","events_url":"https://api.github.com/users/fnussber/events{/privacy}","received_events_url":"https://api.github.com/users/fnussber/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fnussber/ocs","description":"Gemini's Observatory Control System","fork":true,"url":"https://api.github.com/repos/fnussber/ocs","forks_url":"https://api.github.com/repos/fnussber/ocs/forks","keys_url":"https://api.github.com/repos/fnussber/ocs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fnussber/ocs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fnussber/ocs/teams","hooks_url":"https://api.github.com/repos/fnussber/ocs/hooks","issue_events_url":"https://api.github.com/repos/fnussber/ocs/issues/events{/number}","events_url":"https://api.github.com/repos/fnussber/ocs/events","assignees_url":"https://api.github.com/repos/fnussber/ocs/assignees{/user}","branches_url":"https://api.github.com/repos/fnussber/ocs/branches{/branch}","tags_url":"https://api.github.com/repos/fnussber/ocs/tags","blobs_url":"https://api.github.com/repos/fnussber/ocs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fnussber/ocs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fnussber/ocs/git/refs{/sha}","trees_url":"https://api.github.com/repos/fnussber/ocs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fnussber/ocs/statuses/{sha}","languages_url":"https://api.github.com/repos/fnussber/ocs/languages","stargazers_url":"https://api.github.com/repos/fnussber/ocs/stargazers","contributors_url":"https://api.github.com/repos/fnussber/ocs/contributors","subscribers_url":"https://api.github.com/repos/fnussber/ocs/subscribers","subscription_url":"https://api.github.com/repos/fnussber/ocs/subscription","commits_url":"https://api.github.com/repos/fnussber/ocs/commits{/sha}","git_commits_url":"https://api.github.com/repos/fnussber/ocs/git/commits{/sha}","comments_url":"https://api.github.com/repos/fnussber/ocs/comments{/number}","issue_comment_url":"https://api.github.com/repos/fnussber/ocs/issues/comments/{number}","contents_url":"https://api.github.com/repos/fnussber/ocs/contents/{+path}","compare_url":"https://api.github.com/repos/fnussber/ocs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fnussber/ocs/merges","archive_url":"https://api.github.com/repos/fnussber/ocs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fnussber/ocs/downloads","issues_url":"https://api.github.com/repos/fnussber/ocs/issues{/number}","pulls_url":"https://api.github.com/repos/fnussber/ocs/pulls{/number}","milestones_url":"https://api.github.com/repos/fnussber/ocs/milestones{/number}","notifications_url":"https://api.github.com/repos/fnussber/ocs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fnussber/ocs/labels{/name}","releases_url":"https://api.github.com/repos/fnussber/ocs/releases{/id}","created_at":"2014-09-12T20:20:20Z","updated_at":"2015-02-06T00:59:02Z","pushed_at":"2015-02-06T00:59:46Z","git_url":"git://github.com/fnussber/ocs.git","ssh_url":"git@github.com:fnussber/ocs.git","clone_url":"https://github.com/fnussber/ocs.git","svn_url":"https://github.com/fnussber/ocs","homepage":"","size":256914,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"gemini-hlsw:develop","ref":"develop","sha":"0103dbea92fd911e20dca363aa417bcd22de605f","user":{"login":"gemini-hlsw","id":8593735,"avatar_url":"https://avatars.githubusercontent.com/u/8593735?v=3","gravatar_id":"","url":"https://api.github.com/users/gemini-hlsw","html_url":"https://github.com/gemini-hlsw","followers_url":"https://api.github.com/users/gemini-hlsw/followers","following_url":"https://api.github.com/users/gemini-hlsw/following{/other_user}","gists_url":"https://api.github.com/users/gemini-hlsw/gists{/gist_id}","starred_url":"https://api.github.com/users/gemini-hlsw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gemini-hlsw/subscriptions","organizations_url":"https://api.github.com/users/gemini-hlsw/orgs","repos_url":"https://api.github.com/users/gemini-hlsw/repos","events_url":"https://api.github.com/users/gemini-hlsw/events{/privacy}","received_events_url":"https://api.github.com/users/gemini-hlsw/received_events","type":"Organization","site_admin":false},"repo":{"id":23963494,"name":"ocs","full_name":"gemini-hlsw/ocs","owner":{"login":"gemini-hlsw","id":8593735,"avatar_url":"https://avatars.githubusercontent.com/u/8593735?v=3","gravatar_id":"","url":"https://api.github.com/users/gemini-hlsw","html_url":"https://github.com/gemini-hlsw","followers_url":"https://api.github.com/users/gemini-hlsw/followers","following_url":"https://api.github.com/users/gemini-hlsw/following{/other_user}","gists_url":"https://api.github.com/users/gemini-hlsw/gists{/gist_id}","starred_url":"https://api.github.com/users/gemini-hlsw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gemini-hlsw/subscriptions","organizations_url":"https://api.github.com/users/gemini-hlsw/orgs","repos_url":"https://api.github.com/users/gemini-hlsw/repos","events_url":"https://api.github.com/users/gemini-hlsw/events{/privacy}","received_events_url":"https://api.github.com/users/gemini-hlsw/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gemini-hlsw/ocs","description":"Observatory Control Software","fork":false,"url":"https://api.github.com/repos/gemini-hlsw/ocs","forks_url":"https://api.github.com/repos/gemini-hlsw/ocs/forks","keys_url":"https://api.github.com/repos/gemini-hlsw/ocs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gemini-hlsw/ocs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gemini-hlsw/ocs/teams","hooks_url":"https://api.github.com/repos/gemini-hlsw/ocs/hooks","issue_events_url":"https://api.github.com/repos/gemini-hlsw/ocs/issues/events{/number}","events_url":"https://api.github.com/repos/gemini-hlsw/ocs/events","assignees_url":"https://api.github.com/repos/gemini-hlsw/ocs/assignees{/user}","branches_url":"https://api.github.com/repos/gemini-hlsw/ocs/branches{/branch}","tags_url":"https://api.github.com/repos/gemini-hlsw/ocs/tags","blobs_url":"https://api.github.com/repos/gemini-hlsw/ocs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gemini-hlsw/ocs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gemini-hlsw/ocs/git/refs{/sha}","trees_url":"https://api.github.com/repos/gemini-hlsw/ocs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gemini-hlsw/ocs/statuses/{sha}","languages_url":"https://api.github.com/repos/gemini-hlsw/ocs/languages","stargazers_url":"https://api.github.com/repos/gemini-hlsw/ocs/stargazers","contributors_url":"https://api.github.com/repos/gemini-hlsw/ocs/contributors","subscribers_url":"https://api.github.com/repos/gemini-hlsw/ocs/subscribers","subscription_url":"https://api.github.com/repos/gemini-hlsw/ocs/subscription","commits_url":"https://api.github.com/repos/gemini-hlsw/ocs/commits{/sha}","git_commits_url":"https://api.github.com/repos/gemini-hlsw/ocs/git/commits{/sha}","comments_url":"https://api.github.com/repos/gemini-hlsw/ocs/comments{/number}","issue_comment_url":"https://api.github.com/repos/gemini-hlsw/ocs/issues/comments/{number}","contents_url":"https://api.github.com/repos/gemini-hlsw/ocs/contents/{+path}","compare_url":"https://api.github.com/repos/gemini-hlsw/ocs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gemini-hlsw/ocs/merges","archive_url":"https://api.github.com/repos/gemini-hlsw/ocs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gemini-hlsw/ocs/downloads","issues_url":"https://api.github.com/repos/gemini-hlsw/ocs/issues{/number}","pulls_url":"https://api.github.com/repos/gemini-hlsw/ocs/pulls{/number}","milestones_url":"https://api.github.com/repos/gemini-hlsw/ocs/milestones{/number}","notifications_url":"https://api.github.com/repos/gemini-hlsw/ocs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gemini-hlsw/ocs/labels{/name}","releases_url":"https://api.github.com/repos/gemini-hlsw/ocs/releases{/id}","created_at":"2014-09-12T14:20:23Z","updated_at":"2015-02-05T17:54:45Z","pushed_at":"2015-02-06T01:00:09Z","git_url":"git://github.com/gemini-hlsw/ocs.git","ssh_url":"git@github.com:gemini-hlsw/ocs.git","clone_url":"https://github.com/gemini-hlsw/ocs.git","svn_url":"https://github.com/gemini-hlsw/ocs","homepage":"","size":262546,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":8,"mirror_url":null,"open_issues_count":2,"forks":8,"open_issues":2,"watchers":1,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/226"},"html":{"href":"https://github.com/gemini-hlsw/ocs/pull/226"},"issue":{"href":"https://api.github.com/repos/gemini-hlsw/ocs/issues/226"},"comments":{"href":"https://api.github.com/repos/gemini-hlsw/ocs/issues/226/comments"},"review_comments":{"href":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/226/comments"},"review_comment":{"href":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/gemini-hlsw/ocs/pulls/226/commits"},"statuses":{"href":"https://api.github.com/repos/gemini-hlsw/ocs/statuses/ddc95cfce2c60ec5cca731e5cf2b851aab0bbab4"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"fnussber","id":7856060,"avatar_url":"https://avatars.githubusercontent.com/u/7856060?v=3","gravatar_id":"","url":"https://api.github.com/users/fnussber","html_url":"https://github.com/fnussber","followers_url":"https://api.github.com/users/fnussber/followers","following_url":"https://api.github.com/users/fnussber/following{/other_user}","gists_url":"https://api.github.com/users/fnussber/gists{/gist_id}","starred_url":"https://api.github.com/users/fnussber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fnussber/subscriptions","organizations_url":"https://api.github.com/users/fnussber/orgs","repos_url":"https://api.github.com/users/fnussber/repos","events_url":"https://api.github.com/users/fnussber/events{/privacy}","received_events_url":"https://api.github.com/users/fnussber/received_events","type":"User","site_admin":false},"comments":2,"review_comments":0,"commits":15,"additions":5508,"deletions":271488,"changed_files":127}}