{"action":"created","comment":{"url":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/comments/207286383","pull_request_review_id":142868205,"id":207286383,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNzI4NjM4Mw==","diff_hunk":"@@ -0,0 +1,49 @@\n+<!--","path":"dev/com.ibm.ws.microprofile.reactive.streams.operators/findbugs.exclude.xml","position":null,"original_position":1,"commit_id":"b57426105071e6c342633b5ef13ed2ecd6c195c2","original_commit_id":"339f87be9323e60e900345c2d0f0efaae5a40e01","user":{"login":"hutchig","id":2861921,"node_id":"MDQ6VXNlcjI4NjE5MjE=","avatar_url":"https://avatars2.githubusercontent.com/u/2861921?v=4","gravatar_id":"","url":"https://api.github.com/users/hutchig","html_url":"https://github.com/hutchig","followers_url":"https://api.github.com/users/hutchig/followers","following_url":"https://api.github.com/users/hutchig/following{/other_user}","gists_url":"https://api.github.com/users/hutchig/gists{/gist_id}","starred_url":"https://api.github.com/users/hutchig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hutchig/subscriptions","organizations_url":"https://api.github.com/users/hutchig/orgs","repos_url":"https://api.github.com/users/hutchig/repos","events_url":"https://api.github.com/users/hutchig/events{/privacy}","received_events_url":"https://api.github.com/users/hutchig/received_events","type":"User","site_admin":false},"body":"Done.","created_at":"2018-08-02T16:11:23Z","updated_at":"2018-08-02T16:11:23Z","html_url":"https://github.com/OpenLiberty/open-liberty/pull/4249#discussion_r207286383","pull_request_url":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/comments/207286383"},"html":{"href":"https://github.com/OpenLiberty/open-liberty/pull/4249#discussion_r207286383"},"pull_request":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249"}},"in_reply_to_id":207206626},"pull_request":{"url":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249","id":201030080,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAxMDMwMDgw","html_url":"https://github.com/OpenLiberty/open-liberty/pull/4249","diff_url":"https://github.com/OpenLiberty/open-liberty/pull/4249.diff","patch_url":"https://github.com/OpenLiberty/open-liberty/pull/4249.patch","issue_url":"https://api.github.com/repos/OpenLiberty/open-liberty/issues/4249","number":4249,"state":"open","locked":false,"title":"MicroProfile Reactive Streams 1.0","user":{"login":"hutchig","id":2861921,"node_id":"MDQ6VXNlcjI4NjE5MjE=","avatar_url":"https://avatars2.githubusercontent.com/u/2861921?v=4","gravatar_id":"","url":"https://api.github.com/users/hutchig","html_url":"https://github.com/hutchig","followers_url":"https://api.github.com/users/hutchig/followers","following_url":"https://api.github.com/users/hutchig/following{/other_user}","gists_url":"https://api.github.com/users/hutchig/gists{/gist_id}","starred_url":"https://api.github.com/users/hutchig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hutchig/subscriptions","organizations_url":"https://api.github.com/users/hutchig/orgs","repos_url":"https://api.github.com/users/hutchig/repos","events_url":"https://api.github.com/users/hutchig/events{/privacy}","received_events_url":"https://api.github.com/users/hutchig/received_events","type":"User","site_admin":false},"body":"#### Short description of what this provides:\r\nThis pull request allows users to include the \"mpReactiveStreams-1.0\" feature in Liberty server.xml files. \r\n\r\nThe server will then place API classes from the MicroProfile Reactive Streams Operators project \r\non the classpath enabling users to use MicroProfile Stream Operators classes in their applications. \r\nIt will also place the fundamental classes from the Org.ReactiveStreams that mpReactiveStreams uses in the classpath: { Publisher, Processor, Subscriber, Subscription }\r\n\r\nIt is envisaged that most users will not use this feature directly but via other high level features\r\nsuch as the MicroProfile Reactive Messaging specification but this feature is an enabler - both for mpReactiveMessaging-1.0 and for user experimentation. \r\n\r\n### Approach Used\r\n\r\nThe approached used can be laid out as follows: \r\n\r\n#### 1 - Make The Org.ReactiveStreams Classes Available in the Build and for Apps.\r\n\r\n##### dev/com.ibm.websphere.org.reactivestreams.reactive-streams.1.0.2\r\nThis project will include ```@${repo;org.reactivestreams:reactive-streams;1.0.2;EXACT}```\r\nin a singleton bundle called \"com.ibm.websphere.org.reactivestreams.reactive-streams.1.0.2\"\r\nThis bundle can be consumed elsewhere in Liberty. \r\n\r\n##### dev/com.ibm.ws.org.reactivestreams.interfaces\r\nThis contrains the access to classes in com.ibm.websphere.org.reactivestreams.reactive-streams.1.0.2 to the API classes in the package org.reactivestreams.* as a bundle called \"com.ibm.ws.org.reactivestreams.interfaces\" and prevents end user access to another other parts of the maven/artefactory jar. This bundle will not have its own feature but will be on the classpath if mpReactiveStreams-1.0 is specified.\r\n\r\n##### dev/com.ibm.websphere.appserver.features/visibility/private/com.ibm.websphere.appserver.org.reactivestreams.1.0.2.feature\r\nThis is a private feature \"com.ibm.websphere.org.reactivestreams-1.0.2\" that allows to the unconstrained contents of the com.ibm.websphere.org.reactivestreams.1.0.2 bundle (I had though this would includes for example TCK classes as these are in the git project - but these are not included in the jar). I am now not sure if this feature is needed or if the mpReactiveStreams feature can pull in the Org.ReactiveStreams via the bundle and build time use of TCK etc will not need this feature? However ALL the other microprofile jars consumed have an equivalent private feature (as well as the public ones) and these do not appear to do anything different from this PR's.\r\n\r\n#### 2 - Make The Org.Eclipse.MicroProfile.ReactiveStreamsOperators Classes Available in the Build and for Apps.\r\n\r\n##### dev/com.ibm.websphere.org.eclipse.microprofile.reactive.streams.operators.1.0\r\nEventually, this project will include ```@${repo;org.eclipse.microprofile.reactive.streams:microprofile-reactive-streams-operators;1.0;EXACT}``` but as this does not exist yet - we temporary have cloned the\r\nsrc tree of MicroProfile Reactive Streams Operators until a jar is available. This project\r\nproduces a singleton bundle called: ```com.ibm.websphere.org.eclipse.microprofile.reactive.streams.operators.1.0```\r\n\r\n##### dev/com.ibm.ws.microprofile.reactive.streams.operators\r\nThis is the actual IBM implementation and glue code that is referenced by the mpReactiveStreams-1.0 feature. It exports a bundle called com.ibm.ws.microprofile.reactive.streams.operators. It also contains the Unit Tests\r\nfor the feature. \r\n\r\n#### 3 - Add Open Liberty \"Implementation\" and Unit Tests\r\n##### dev/com.ibm.ws.microprofile.reactive.streams.operators\r\nThis will glue in a bundle of the lightbend implementartion that is modified as little\r\nas possible (as it is still changing) but providing the Libert hooks to start\r\nthe feature\r\n#### 4 - Bundlise https://github.com/lightbend/microprofile-reactive-streams/tree/master/zerodep\r\n##### dev/com.ibm.ws.com.lightbend.microprofile.reactive.streams.zerodep\r\nThis is a minimally changed bundle of the lightbend zero dependancy implementation\r\n\r\n### Declarative Services [Annotations]\r\n\r\n### Test Approach\r\nFeature test summary is at #4087\r\n#### Unit Tests in com.ibm.ws.microprofile.reactive.streams.operators\r\n#### TCK in Org.ReactiveStreams\r\n#### TCK in MicroProfile Reactive Streams Operators\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","created_at":"2018-07-12T14:57:30Z","updated_at":"2018-08-02T16:11:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"14e79b9a650c3568aaae78b853e668403ab9873b","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":706052599,"node_id":"MDU6TGFiZWw3MDYwNTI1OTk=","url":"https://api.github.com/repos/OpenLiberty/open-liberty/labels/CLA%20Signed","name":"CLA Signed","color":"ededed","default":false},{"id":989330508,"node_id":"MDU6TGFiZWw5ODkzMzA1MDg=","url":"https://api.github.com/repos/OpenLiberty/open-liberty/labels/DO%20NOT%20MERGE","name":"DO NOT MERGE","color":"8867bf","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249/commits","review_comments_url":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249/comments","review_comment_url":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenLiberty/open-liberty/issues/4249/comments","statuses_url":"https://api.github.com/repos/OpenLiberty/open-liberty/statuses/b57426105071e6c342633b5ef13ed2ecd6c195c2","head":{"label":"hutchig:4081-microprofile-reactive-streams","ref":"4081-microprofile-reactive-streams","sha":"b57426105071e6c342633b5ef13ed2ecd6c195c2","user":{"login":"hutchig","id":2861921,"node_id":"MDQ6VXNlcjI4NjE5MjE=","avatar_url":"https://avatars2.githubusercontent.com/u/2861921?v=4","gravatar_id":"","url":"https://api.github.com/users/hutchig","html_url":"https://github.com/hutchig","followers_url":"https://api.github.com/users/hutchig/followers","following_url":"https://api.github.com/users/hutchig/following{/other_user}","gists_url":"https://api.github.com/users/hutchig/gists{/gist_id}","starred_url":"https://api.github.com/users/hutchig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hutchig/subscriptions","organizations_url":"https://api.github.com/users/hutchig/orgs","repos_url":"https://api.github.com/users/hutchig/repos","events_url":"https://api.github.com/users/hutchig/events{/privacy}","received_events_url":"https://api.github.com/users/hutchig/received_events","type":"User","site_admin":false},"repo":{"id":104084960,"node_id":"MDEwOlJlcG9zaXRvcnkxMDQwODQ5NjA=","name":"open-liberty","full_name":"hutchig/open-liberty","owner":{"login":"hutchig","id":2861921,"node_id":"MDQ6VXNlcjI4NjE5MjE=","avatar_url":"https://avatars2.githubusercontent.com/u/2861921?v=4","gravatar_id":"","url":"https://api.github.com/users/hutchig","html_url":"https://github.com/hutchig","followers_url":"https://api.github.com/users/hutchig/followers","following_url":"https://api.github.com/users/hutchig/following{/other_user}","gists_url":"https://api.github.com/users/hutchig/gists{/gist_id}","starred_url":"https://api.github.com/users/hutchig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hutchig/subscriptions","organizations_url":"https://api.github.com/users/hutchig/orgs","repos_url":"https://api.github.com/users/hutchig/repos","events_url":"https://api.github.com/users/hutchig/events{/privacy}","received_events_url":"https://api.github.com/users/hutchig/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hutchig/open-liberty","description":"Open Liberty is a highly composable, fast to start, dynamic application server runtime environment ","fork":true,"url":"https://api.github.com/repos/hutchig/open-liberty","forks_url":"https://api.github.com/repos/hutchig/open-liberty/forks","keys_url":"https://api.github.com/repos/hutchig/open-liberty/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hutchig/open-liberty/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hutchig/open-liberty/teams","hooks_url":"https://api.github.com/repos/hutchig/open-liberty/hooks","issue_events_url":"https://api.github.com/repos/hutchig/open-liberty/issues/events{/number}","events_url":"https://api.github.com/repos/hutchig/open-liberty/events","assignees_url":"https://api.github.com/repos/hutchig/open-liberty/assignees{/user}","branches_url":"https://api.github.com/repos/hutchig/open-liberty/branches{/branch}","tags_url":"https://api.github.com/repos/hutchig/open-liberty/tags","blobs_url":"https://api.github.com/repos/hutchig/open-liberty/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hutchig/open-liberty/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hutchig/open-liberty/git/refs{/sha}","trees_url":"https://api.github.com/repos/hutchig/open-liberty/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hutchig/open-liberty/statuses/{sha}","languages_url":"https://api.github.com/repos/hutchig/open-liberty/languages","stargazers_url":"https://api.github.com/repos/hutchig/open-liberty/stargazers","contributors_url":"https://api.github.com/repos/hutchig/open-liberty/contributors","subscribers_url":"https://api.github.com/repos/hutchig/open-liberty/subscribers","subscription_url":"https://api.github.com/repos/hutchig/open-liberty/subscription","commits_url":"https://api.github.com/repos/hutchig/open-liberty/commits{/sha}","git_commits_url":"https://api.github.com/repos/hutchig/open-liberty/git/commits{/sha}","comments_url":"https://api.github.com/repos/hutchig/open-liberty/comments{/number}","issue_comment_url":"https://api.github.com/repos/hutchig/open-liberty/issues/comments{/number}","contents_url":"https://api.github.com/repos/hutchig/open-liberty/contents/{+path}","compare_url":"https://api.github.com/repos/hutchig/open-liberty/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hutchig/open-liberty/merges","archive_url":"https://api.github.com/repos/hutchig/open-liberty/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hutchig/open-liberty/downloads","issues_url":"https://api.github.com/repos/hutchig/open-liberty/issues{/number}","pulls_url":"https://api.github.com/repos/hutchig/open-liberty/pulls{/number}","milestones_url":"https://api.github.com/repos/hutchig/open-liberty/milestones{/number}","notifications_url":"https://api.github.com/repos/hutchig/open-liberty/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hutchig/open-liberty/labels{/name}","releases_url":"https://api.github.com/repos/hutchig/open-liberty/releases{/id}","deployments_url":"https://api.github.com/repos/hutchig/open-liberty/deployments","created_at":"2017-09-19T14:21:53Z","updated_at":"2018-07-18T15:40:49Z","pushed_at":"2018-08-02T16:11:20Z","git_url":"git://github.com/hutchig/open-liberty.git","ssh_url":"git@github.com:hutchig/open-liberty.git","clone_url":"https://github.com/hutchig/open-liberty.git","svn_url":"https://github.com/hutchig/open-liberty","homepage":"http://openliberty.io","size":137977,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"epl-1.0","name":"Eclipse Public License 1.0","spdx_id":"EPL-1.0","url":"https://api.github.com/licenses/epl-1.0","node_id":"MDc6TGljZW5zZTc="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"integration"}},"base":{"label":"OpenLiberty:integration","ref":"integration","sha":"cf91dce7030d0cd1ddf08666e982f1e9c153ba9e","user":{"login":"OpenLiberty","id":28316667,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MzE2NjY3","avatar_url":"https://avatars2.githubusercontent.com/u/28316667?v=4","gravatar_id":"","url":"https://api.github.com/users/OpenLiberty","html_url":"https://github.com/OpenLiberty","followers_url":"https://api.github.com/users/OpenLiberty/followers","following_url":"https://api.github.com/users/OpenLiberty/following{/other_user}","gists_url":"https://api.github.com/users/OpenLiberty/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenLiberty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenLiberty/subscriptions","organizations_url":"https://api.github.com/users/OpenLiberty/orgs","repos_url":"https://api.github.com/users/OpenLiberty/repos","events_url":"https://api.github.com/users/OpenLiberty/events{/privacy}","received_events_url":"https://api.github.com/users/OpenLiberty/received_events","type":"Organization","site_admin":false},"repo":{"id":103694377,"node_id":"MDEwOlJlcG9zaXRvcnkxMDM2OTQzNzc=","name":"open-liberty","full_name":"OpenLiberty/open-liberty","owner":{"login":"OpenLiberty","id":28316667,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MzE2NjY3","avatar_url":"https://avatars2.githubusercontent.com/u/28316667?v=4","gravatar_id":"","url":"https://api.github.com/users/OpenLiberty","html_url":"https://github.com/OpenLiberty","followers_url":"https://api.github.com/users/OpenLiberty/followers","following_url":"https://api.github.com/users/OpenLiberty/following{/other_user}","gists_url":"https://api.github.com/users/OpenLiberty/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenLiberty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenLiberty/subscriptions","organizations_url":"https://api.github.com/users/OpenLiberty/orgs","repos_url":"https://api.github.com/users/OpenLiberty/repos","events_url":"https://api.github.com/users/OpenLiberty/events{/privacy}","received_events_url":"https://api.github.com/users/OpenLiberty/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenLiberty/open-liberty","description":"Open Liberty is a highly composable, fast to start, dynamic application server runtime environment ","fork":false,"url":"https://api.github.com/repos/OpenLiberty/open-liberty","forks_url":"https://api.github.com/repos/OpenLiberty/open-liberty/forks","keys_url":"https://api.github.com/repos/OpenLiberty/open-liberty/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenLiberty/open-liberty/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenLiberty/open-liberty/teams","hooks_url":"https://api.github.com/repos/OpenLiberty/open-liberty/hooks","issue_events_url":"https://api.github.com/repos/OpenLiberty/open-liberty/issues/events{/number}","events_url":"https://api.github.com/repos/OpenLiberty/open-liberty/events","assignees_url":"https://api.github.com/repos/OpenLiberty/open-liberty/assignees{/user}","branches_url":"https://api.github.com/repos/OpenLiberty/open-liberty/branches{/branch}","tags_url":"https://api.github.com/repos/OpenLiberty/open-liberty/tags","blobs_url":"https://api.github.com/repos/OpenLiberty/open-liberty/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenLiberty/open-liberty/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenLiberty/open-liberty/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenLiberty/open-liberty/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenLiberty/open-liberty/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenLiberty/open-liberty/languages","stargazers_url":"https://api.github.com/repos/OpenLiberty/open-liberty/stargazers","contributors_url":"https://api.github.com/repos/OpenLiberty/open-liberty/contributors","subscribers_url":"https://api.github.com/repos/OpenLiberty/open-liberty/subscribers","subscription_url":"https://api.github.com/repos/OpenLiberty/open-liberty/subscription","commits_url":"https://api.github.com/repos/OpenLiberty/open-liberty/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenLiberty/open-liberty/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenLiberty/open-liberty/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenLiberty/open-liberty/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenLiberty/open-liberty/contents/{+path}","compare_url":"https://api.github.com/repos/OpenLiberty/open-liberty/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenLiberty/open-liberty/merges","archive_url":"https://api.github.com/repos/OpenLiberty/open-liberty/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenLiberty/open-liberty/downloads","issues_url":"https://api.github.com/repos/OpenLiberty/open-liberty/issues{/number}","pulls_url":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenLiberty/open-liberty/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenLiberty/open-liberty/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenLiberty/open-liberty/labels{/name}","releases_url":"https://api.github.com/repos/OpenLiberty/open-liberty/releases{/id}","deployments_url":"https://api.github.com/repos/OpenLiberty/open-liberty/deployments","created_at":"2017-09-15T19:34:25Z","updated_at":"2018-08-02T14:40:49Z","pushed_at":"2018-08-02T16:11:21Z","git_url":"git://github.com/OpenLiberty/open-liberty.git","ssh_url":"git@github.com:OpenLiberty/open-liberty.git","clone_url":"https://github.com/OpenLiberty/open-liberty.git","svn_url":"https://github.com/OpenLiberty/open-liberty","homepage":"http://openliberty.io","size":137530,"stargazers_count":325,"watchers_count":325,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":260,"mirror_url":null,"archived":false,"open_issues_count":522,"license":{"key":"epl-1.0","name":"Eclipse Public License 1.0","spdx_id":"EPL-1.0","url":"https://api.github.com/licenses/epl-1.0","node_id":"MDc6TGljZW5zZTc="},"forks":260,"open_issues":522,"watchers":325,"default_branch":"integration"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249"},"html":{"href":"https://github.com/OpenLiberty/open-liberty/pull/4249"},"issue":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/issues/4249"},"comments":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/issues/4249/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/pulls/4249/commits"},"statuses":{"href":"https://api.github.com/repos/OpenLiberty/open-liberty/statuses/b57426105071e6c342633b5ef13ed2ecd6c195c2"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"hutchig"}}