{"action":"created","comment":{"url":"https://api.github.com/repos/infinispan/infinispan/pulls/comments/61049615","id":61049615,"diff_hunk":"@@ -0,0 +1,28 @@\n+#!/bin/bash\n+\n+echo \"==== Removing old files ====\"\n+find . -name \"*.jks\" -exec rm -rf {} \\;\n+\n+echo \"==== Generating private keys ====\"\n+keytool -genkey -noprompt -trustcacerts -keyalg RSA -alias \"default\" -dname \"CN=HotRod_1, OU=Infinispan, O=JBoss, L=Red Hat, ST=World, C=WW\" -keypass \"secret\" -storepass \"secret\" -keypass \"secret2\" -keystore \"password_server_keystore.jks\"","path":"server/hotrod/src/test/resources/create_certs.sh","position":7,"original_position":7,"commit_id":"94fffcfc7869ba3964ebce45e4d7cc8b26175afd","original_commit_id":"24c0b60061d57eaf758e4fa79cecca50bbaefef2","user":{"login":"vjuranek","id":494573,"avatar_url":"https://avatars.githubusercontent.com/u/494573?v=3","gravatar_id":"","url":"https://api.github.com/users/vjuranek","html_url":"https://github.com/vjuranek","followers_url":"https://api.github.com/users/vjuranek/followers","following_url":"https://api.github.com/users/vjuranek/following{/other_user}","gists_url":"https://api.github.com/users/vjuranek/gists{/gist_id}","starred_url":"https://api.github.com/users/vjuranek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vjuranek/subscriptions","organizations_url":"https://api.github.com/users/vjuranek/orgs","repos_url":"https://api.github.com/users/vjuranek/repos","events_url":"https://api.github.com/users/vjuranek/events{/privacy}","received_events_url":"https://api.github.com/users/vjuranek/received_events","type":"User","site_admin":false},"body":"well, I have no strong opinion, but I'd incline to @tristantarrant proposal. Tests are sometimes source of knowledge how to configure some functionality and for security setup, which is quite often source of confusion, complex/descriptive tests can have this added value that in case of questions/confusion we can easily point users to the test suite to explain how to use/setup given feature.","created_at":"2016-04-26T08:53:22Z","updated_at":"2016-04-26T08:53:22Z","html_url":"https://github.com/infinispan/infinispan/pull/4255#discussion_r61049615","pull_request_url":"https://api.github.com/repos/infinispan/infinispan/pulls/4255","_links":{"self":{"href":"https://api.github.com/repos/infinispan/infinispan/pulls/comments/61049615"},"html":{"href":"https://github.com/infinispan/infinispan/pull/4255#discussion_r61049615"},"pull_request":{"href":"https://api.github.com/repos/infinispan/infinispan/pulls/4255"}}},"pull_request":{"url":"https://api.github.com/repos/infinispan/infinispan/pulls/4255","id":67350268,"html_url":"https://github.com/infinispan/infinispan/pull/4255","diff_url":"https://github.com/infinispan/infinispan/pull/4255.diff","patch_url":"https://github.com/infinispan/infinispan/pull/4255.patch","issue_url":"https://api.github.com/repos/infinispan/infinispan/issues/4255","number":4255,"state":"open","locked":false,"title":"SNI support for Hotrod server","user":{"login":"slaskawi","id":8417158,"avatar_url":"https://avatars.githubusercontent.com/u/8417158?v=3","gravatar_id":"","url":"https://api.github.com/users/slaskawi","html_url":"https://github.com/slaskawi","followers_url":"https://api.github.com/users/slaskawi/followers","following_url":"https://api.github.com/users/slaskawi/following{/other_user}","gists_url":"https://api.github.com/users/slaskawi/gists{/gist_id}","starred_url":"https://api.github.com/users/slaskawi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slaskawi/subscriptions","organizations_url":"https://api.github.com/users/slaskawi/orgs","repos_url":"https://api.github.com/users/slaskawi/repos","events_url":"https://api.github.com/users/slaskawi/events{/privacy}","received_events_url":"https://api.github.com/users/slaskawi/received_events","type":"User","site_admin":false},"body":"https://issues.jboss.org/browse/ISPN-5721\r\n\r\nTasks: \r\n* https://issues.jboss.org/browse/ISPN-6517\r\n* https://issues.jboss.org/browse/ISPN-6520\r\n* https://issues.jboss.org/browse/ISPN-6523\r\n\r\nHighlights\r\n* Netty upgrade to `4.1.0.CR7`\r\n* Added `SniHandler` to Hotrod server with proper configuration bits:\r\n```\r\nbuilder.ssl.enable()\r\n   .sniHostName(\"www.example.com\")\r\n      .keyStoreFileName(\"some_file\")\r\n      .keyStorePassword(\"password\")\r\n   .sniHostName(\"www.example2.com\")\r\n      ...\r\n```\r\n* Added Hotrod server XML configuration:\r\n```\r\n<hotrod-connector name=\"hotrod5\" socket-binding=\"hotrod\" cache-container=\"default\">\r\n    <encryption security-realm=\"other\">\r\n         <sni host-name=\"example.com\" security-realm=\"other\" />\r\n         <sni host-name=\"example2.com\" security-realm=\"other2\" />\r\n     </encryption>\r\n</hotrod-connector>\r\n```\r\n* The client decides to which SNI domain it wants to connect using [SSLParameters#setServerNames] (https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLParameters.html#setServerNames-java.util.List-) method. \r\n \r\n\r\nSince this Pull Request is very large, additional tasks will be implemented separately:\r\n* Hotrod client support for SNI: https://issues.jboss.org/browse/ISPN-6524\r\n* Documentation update: https://issues.jboss.org/browse/ISPN-6525\r\n\r\nI highly recommend reviewing it commit by commit and starting with the tests.\r\n","created_at":"2016-04-21T13:05:21Z","updated_at":"2016-04-26T08:53:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cdf80650490b7eeedac8d4a9a3601d9c4057436f","assignee":null,"milestone":{"url":"https://api.github.com/repos/infinispan/infinispan/milestones/54","html_url":"https://github.com/infinispan/infinispan/milestones/9.0.0.Alpha2","labels_url":"https://api.github.com/repos/infinispan/infinispan/milestones/54/labels","id":1705877,"number":54,"title":"9.0.0.Alpha2","description":null,"creator":{"login":"pruivo","id":1492066,"avatar_url":"https://avatars.githubusercontent.com/u/1492066?v=3","gravatar_id":"","url":"https://api.github.com/users/pruivo","html_url":"https://github.com/pruivo","followers_url":"https://api.github.com/users/pruivo/followers","following_url":"https://api.github.com/users/pruivo/following{/other_user}","gists_url":"https://api.github.com/users/pruivo/gists{/gist_id}","starred_url":"https://api.github.com/users/pruivo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pruivo/subscriptions","organizations_url":"https://api.github.com/users/pruivo/orgs","repos_url":"https://api.github.com/users/pruivo/repos","events_url":"https://api.github.com/users/pruivo/events{/privacy}","received_events_url":"https://api.github.com/users/pruivo/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":3,"state":"open","created_at":"2016-04-14T12:34:01Z","updated_at":"2016-04-25T09:02:38Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/infinispan/infinispan/pulls/4255/commits","review_comments_url":"https://api.github.com/repos/infinispan/infinispan/pulls/4255/comments","review_comment_url":"https://api.github.com/repos/infinispan/infinispan/pulls/comments{/number}","comments_url":"https://api.github.com/repos/infinispan/infinispan/issues/4255/comments","statuses_url":"https://api.github.com/repos/infinispan/infinispan/statuses/94fffcfc7869ba3964ebce45e4d7cc8b26175afd","head":{"label":"slaskawi:SNI","ref":"SNI","sha":"94fffcfc7869ba3964ebce45e4d7cc8b26175afd","user":{"login":"slaskawi","id":8417158,"avatar_url":"https://avatars.githubusercontent.com/u/8417158?v=3","gravatar_id":"","url":"https://api.github.com/users/slaskawi","html_url":"https://github.com/slaskawi","followers_url":"https://api.github.com/users/slaskawi/followers","following_url":"https://api.github.com/users/slaskawi/following{/other_user}","gists_url":"https://api.github.com/users/slaskawi/gists{/gist_id}","starred_url":"https://api.github.com/users/slaskawi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slaskawi/subscriptions","organizations_url":"https://api.github.com/users/slaskawi/orgs","repos_url":"https://api.github.com/users/slaskawi/repos","events_url":"https://api.github.com/users/slaskawi/events{/privacy}","received_events_url":"https://api.github.com/users/slaskawi/received_events","type":"User","site_admin":false},"repo":{"id":23697744,"name":"infinispan","full_name":"slaskawi/infinispan","owner":{"login":"slaskawi","id":8417158,"avatar_url":"https://avatars.githubusercontent.com/u/8417158?v=3","gravatar_id":"","url":"https://api.github.com/users/slaskawi","html_url":"https://github.com/slaskawi","followers_url":"https://api.github.com/users/slaskawi/followers","following_url":"https://api.github.com/users/slaskawi/following{/other_user}","gists_url":"https://api.github.com/users/slaskawi/gists{/gist_id}","starred_url":"https://api.github.com/users/slaskawi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slaskawi/subscriptions","organizations_url":"https://api.github.com/users/slaskawi/orgs","repos_url":"https://api.github.com/users/slaskawi/repos","events_url":"https://api.github.com/users/slaskawi/events{/privacy}","received_events_url":"https://api.github.com/users/slaskawi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/slaskawi/infinispan","description":"Infinispan is an open source data grid platform and highly scalable NoSQL cloud data store.","fork":true,"url":"https://api.github.com/repos/slaskawi/infinispan","forks_url":"https://api.github.com/repos/slaskawi/infinispan/forks","keys_url":"https://api.github.com/repos/slaskawi/infinispan/keys{/key_id}","collaborators_url":"https://api.github.com/repos/slaskawi/infinispan/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/slaskawi/infinispan/teams","hooks_url":"https://api.github.com/repos/slaskawi/infinispan/hooks","issue_events_url":"https://api.github.com/repos/slaskawi/infinispan/issues/events{/number}","events_url":"https://api.github.com/repos/slaskawi/infinispan/events","assignees_url":"https://api.github.com/repos/slaskawi/infinispan/assignees{/user}","branches_url":"https://api.github.com/repos/slaskawi/infinispan/branches{/branch}","tags_url":"https://api.github.com/repos/slaskawi/infinispan/tags","blobs_url":"https://api.github.com/repos/slaskawi/infinispan/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/slaskawi/infinispan/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/slaskawi/infinispan/git/refs{/sha}","trees_url":"https://api.github.com/repos/slaskawi/infinispan/git/trees{/sha}","statuses_url":"https://api.github.com/repos/slaskawi/infinispan/statuses/{sha}","languages_url":"https://api.github.com/repos/slaskawi/infinispan/languages","stargazers_url":"https://api.github.com/repos/slaskawi/infinispan/stargazers","contributors_url":"https://api.github.com/repos/slaskawi/infinispan/contributors","subscribers_url":"https://api.github.com/repos/slaskawi/infinispan/subscribers","subscription_url":"https://api.github.com/repos/slaskawi/infinispan/subscription","commits_url":"https://api.github.com/repos/slaskawi/infinispan/commits{/sha}","git_commits_url":"https://api.github.com/repos/slaskawi/infinispan/git/commits{/sha}","comments_url":"https://api.github.com/repos/slaskawi/infinispan/comments{/number}","issue_comment_url":"https://api.github.com/repos/slaskawi/infinispan/issues/comments{/number}","contents_url":"https://api.github.com/repos/slaskawi/infinispan/contents/{+path}","compare_url":"https://api.github.com/repos/slaskawi/infinispan/compare/{base}...{head}","merges_url":"https://api.github.com/repos/slaskawi/infinispan/merges","archive_url":"https://api.github.com/repos/slaskawi/infinispan/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/slaskawi/infinispan/downloads","issues_url":"https://api.github.com/repos/slaskawi/infinispan/issues{/number}","pulls_url":"https://api.github.com/repos/slaskawi/infinispan/pulls{/number}","milestones_url":"https://api.github.com/repos/slaskawi/infinispan/milestones{/number}","notifications_url":"https://api.github.com/repos/slaskawi/infinispan/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/slaskawi/infinispan/labels{/name}","releases_url":"https://api.github.com/repos/slaskawi/infinispan/releases{/id}","deployments_url":"https://api.github.com/repos/slaskawi/infinispan/deployments","created_at":"2014-09-05T09:35:13Z","updated_at":"2015-01-22T12:12:41Z","pushed_at":"2016-04-25T10:45:02Z","git_url":"git://github.com/slaskawi/infinispan.git","ssh_url":"git@github.com:slaskawi/infinispan.git","clone_url":"https://github.com/slaskawi/infinispan.git","svn_url":"https://github.com/slaskawi/infinispan","homepage":"http://www.infinispan.org","size":79378,"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":"master"}},"base":{"label":"infinispan:master","ref":"master","sha":"fbfc367430a851d300fc563544f956c0eef354c0","user":{"login":"infinispan","id":458093,"avatar_url":"https://avatars.githubusercontent.com/u/458093?v=3","gravatar_id":"","url":"https://api.github.com/users/infinispan","html_url":"https://github.com/infinispan","followers_url":"https://api.github.com/users/infinispan/followers","following_url":"https://api.github.com/users/infinispan/following{/other_user}","gists_url":"https://api.github.com/users/infinispan/gists{/gist_id}","starred_url":"https://api.github.com/users/infinispan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infinispan/subscriptions","organizations_url":"https://api.github.com/users/infinispan/orgs","repos_url":"https://api.github.com/users/infinispan/repos","events_url":"https://api.github.com/users/infinispan/events{/privacy}","received_events_url":"https://api.github.com/users/infinispan/received_events","type":"Organization","site_admin":false},"repo":{"id":1050944,"name":"infinispan","full_name":"infinispan/infinispan","owner":{"login":"infinispan","id":458093,"avatar_url":"https://avatars.githubusercontent.com/u/458093?v=3","gravatar_id":"","url":"https://api.github.com/users/infinispan","html_url":"https://github.com/infinispan","followers_url":"https://api.github.com/users/infinispan/followers","following_url":"https://api.github.com/users/infinispan/following{/other_user}","gists_url":"https://api.github.com/users/infinispan/gists{/gist_id}","starred_url":"https://api.github.com/users/infinispan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/infinispan/subscriptions","organizations_url":"https://api.github.com/users/infinispan/orgs","repos_url":"https://api.github.com/users/infinispan/repos","events_url":"https://api.github.com/users/infinispan/events{/privacy}","received_events_url":"https://api.github.com/users/infinispan/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/infinispan/infinispan","description":"Infinispan is an open source data grid platform and highly scalable NoSQL cloud data store.","fork":false,"url":"https://api.github.com/repos/infinispan/infinispan","forks_url":"https://api.github.com/repos/infinispan/infinispan/forks","keys_url":"https://api.github.com/repos/infinispan/infinispan/keys{/key_id}","collaborators_url":"https://api.github.com/repos/infinispan/infinispan/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/infinispan/infinispan/teams","hooks_url":"https://api.github.com/repos/infinispan/infinispan/hooks","issue_events_url":"https://api.github.com/repos/infinispan/infinispan/issues/events{/number}","events_url":"https://api.github.com/repos/infinispan/infinispan/events","assignees_url":"https://api.github.com/repos/infinispan/infinispan/assignees{/user}","branches_url":"https://api.github.com/repos/infinispan/infinispan/branches{/branch}","tags_url":"https://api.github.com/repos/infinispan/infinispan/tags","blobs_url":"https://api.github.com/repos/infinispan/infinispan/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/infinispan/infinispan/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/infinispan/infinispan/git/refs{/sha}","trees_url":"https://api.github.com/repos/infinispan/infinispan/git/trees{/sha}","statuses_url":"https://api.github.com/repos/infinispan/infinispan/statuses/{sha}","languages_url":"https://api.github.com/repos/infinispan/infinispan/languages","stargazers_url":"https://api.github.com/repos/infinispan/infinispan/stargazers","contributors_url":"https://api.github.com/repos/infinispan/infinispan/contributors","subscribers_url":"https://api.github.com/repos/infinispan/infinispan/subscribers","subscription_url":"https://api.github.com/repos/infinispan/infinispan/subscription","commits_url":"https://api.github.com/repos/infinispan/infinispan/commits{/sha}","git_commits_url":"https://api.github.com/repos/infinispan/infinispan/git/commits{/sha}","comments_url":"https://api.github.com/repos/infinispan/infinispan/comments{/number}","issue_comment_url":"https://api.github.com/repos/infinispan/infinispan/issues/comments{/number}","contents_url":"https://api.github.com/repos/infinispan/infinispan/contents/{+path}","compare_url":"https://api.github.com/repos/infinispan/infinispan/compare/{base}...{head}","merges_url":"https://api.github.com/repos/infinispan/infinispan/merges","archive_url":"https://api.github.com/repos/infinispan/infinispan/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/infinispan/infinispan/downloads","issues_url":"https://api.github.com/repos/infinispan/infinispan/issues{/number}","pulls_url":"https://api.github.com/repos/infinispan/infinispan/pulls{/number}","milestones_url":"https://api.github.com/repos/infinispan/infinispan/milestones{/number}","notifications_url":"https://api.github.com/repos/infinispan/infinispan/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/infinispan/infinispan/labels{/name}","releases_url":"https://api.github.com/repos/infinispan/infinispan/releases{/id}","deployments_url":"https://api.github.com/repos/infinispan/infinispan/deployments","created_at":"2010-11-04T12:33:19Z","updated_at":"2016-04-19T13:16:28Z","pushed_at":"2016-04-25T20:08:58Z","git_url":"git://github.com/infinispan/infinispan.git","ssh_url":"git@github.com:infinispan/infinispan.git","clone_url":"https://github.com/infinispan/infinispan.git","svn_url":"https://github.com/infinispan/infinispan","homepage":"http://www.infinispan.org","size":92744,"stargazers_count":462,"watchers_count":462,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":341,"mirror_url":null,"open_issues_count":24,"forks":341,"open_issues":24,"watchers":462,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/infinispan/infinispan/pulls/4255"},"html":{"href":"https://github.com/infinispan/infinispan/pull/4255"},"issue":{"href":"https://api.github.com/repos/infinispan/infinispan/issues/4255"},"comments":{"href":"https://api.github.com/repos/infinispan/infinispan/issues/4255/comments"},"review_comments":{"href":"https://api.github.com/repos/infinispan/infinispan/pulls/4255/comments"},"review_comment":{"href":"https://api.github.com/repos/infinispan/infinispan/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/infinispan/infinispan/pulls/4255/commits"},"statuses":{"href":"https://api.github.com/repos/infinispan/infinispan/statuses/94fffcfc7869ba3964ebce45e4d7cc8b26175afd"}}}}