{"action":"created","comment":{"url":"https://api.github.com/repos/paypal/SeLion/pulls/comments/123816385","pull_request_review_id":46059700,"id":123816385,"diff_hunk":"@@ -0,0 +1,127 @@\n+/*-------------------------------------------------------------------------------------------------------------------*\\\n+|  Copyright (C) 2017 PayPal                                                                                          |\n+|                                                                                                                     |\n+|  Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance     |\n+|  with the License.                                                                                                  |\n+|                                                                                                                     |\n+|  You may obtain a copy of the License at                                                                            |\n+|                                                                                                                     |\n+|       http://www.apache.org/licenses/LICENSE-2.0                                                                    |\n+|                                                                                                                     |\n+|  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed   |\n+|  on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for  |\n+|  the specific language governing permissions and limitations under the License.                                     |\n+\\*-------------------------------------------------------------------------------------------------------------------*/\n+\n+package com.paypal.selion.plugins;\n+\n+import com.google.common.annotations.VisibleForTesting;\n+import org.apache.maven.plugin.logging.Log;\n+import org.apache.maven.plugin.logging.SystemStreamLog;\n+\n+public class CodeGeneratorMojoLogger implements CodeGeneratorLogger, Log {\n+    private final Log instance;\n+\n+    public CodeGeneratorMojoLogger() {\n+        this.instance = new SystemStreamLog();\n+    }\n+\n+    public CodeGeneratorMojoLogger(Log instance) {\n+        this.instance = instance;\n+    }","path":"codegen-maven/src/main/java/com/paypal/selion/plugins/CodeGeneratorMojoLogger.java","position":31,"original_position":31,"commit_id":"8cbff622c07ef71aa821b02e428568fd42877d4d","original_commit_id":"8cbff622c07ef71aa821b02e428568fd42877d4d","user":{"login":"mach6","id":3238999,"avatar_url":"https://avatars2.githubusercontent.com/u/3238999?v=3","gravatar_id":"","url":"https://api.github.com/users/mach6","html_url":"https://github.com/mach6","followers_url":"https://api.github.com/users/mach6/followers","following_url":"https://api.github.com/users/mach6/following{/other_user}","gists_url":"https://api.github.com/users/mach6/gists{/gist_id}","starred_url":"https://api.github.com/users/mach6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mach6/subscriptions","organizations_url":"https://api.github.com/users/mach6/orgs","repos_url":"https://api.github.com/users/mach6/repos","events_url":"https://api.github.com/users/mach6/events{/privacy}","received_events_url":"https://api.github.com/users/mach6/received_events","type":"User","site_admin":false},"body":"The reason the class `CodeGeneratorMojoLogger` exists is because `Log` is an interface in a maven plugin artifact dependency. I didn't want the SeLion Code Generator CLI to have any maven artifact dependencies. So, the CLI version defines the interface `CodeGeneratorLogger` ...\r\n\r\nThis class bridges `CodeGeneratorLogger` and `Log` so  the SeLion Code Generator maven plugin can have a`Log` and the code it depends on (SeLion Code Generator CLI) can have a `CodeGeneratorLogger` -- both as the same logger instance.","created_at":"2017-06-23T18:30:33Z","updated_at":"2017-06-23T18:30:33Z","html_url":"https://github.com/paypal/SeLion/pull/354#discussion_r123816385","pull_request_url":"https://api.github.com/repos/paypal/SeLion/pulls/354","_links":{"self":{"href":"https://api.github.com/repos/paypal/SeLion/pulls/comments/123816385"},"html":{"href":"https://github.com/paypal/SeLion/pull/354#discussion_r123816385"},"pull_request":{"href":"https://api.github.com/repos/paypal/SeLion/pulls/354"}}},"pull_request":{"url":"https://api.github.com/repos/paypal/SeLion/pulls/354","id":120715793,"html_url":"https://github.com/paypal/SeLion/pull/354","diff_url":"https://github.com/paypal/SeLion/pull/354.diff","patch_url":"https://github.com/paypal/SeLion/pull/354.patch","issue_url":"https://api.github.com/repos/paypal/SeLion/issues/354","number":354,"state":"open","locked":false,"title":"Refactor codegen and add a cli-only version of it","user":{"login":"mach6","id":3238999,"avatar_url":"https://avatars2.githubusercontent.com/u/3238999?v=3","gravatar_id":"","url":"https://api.github.com/users/mach6","html_url":"https://github.com/mach6","followers_url":"https://api.github.com/users/mach6/followers","following_url":"https://api.github.com/users/mach6/following{/other_user}","gists_url":"https://api.github.com/users/mach6/gists{/gist_id}","starred_url":"https://api.github.com/users/mach6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mach6/subscriptions","organizations_url":"https://api.github.com/users/mach6/orgs","repos_url":"https://api.github.com/users/mach6/repos","events_url":"https://api.github.com/users/mach6/events{/privacy}","received_events_url":"https://api.github.com/users/mach6/received_events","type":"User","site_admin":false},"body":"- Existing 'codegen' directory becomes codegen cli\r\n- New 'codegen-maven' directory depends on cli variant and adds maven\r\n  plugin specifics\r\n- Refactor several classes to minimize code duplication\r\n- Add a few tests\r\n- Bump maven-plugin dependencies in parent pom\r\n- Unrelated typo correction in 'client' AbstractElement.java\r\n\r\n\r\n ---\r\n\r\n- [X] By placing an `X` in the preceding checkbox, I verify that I am a PayPal employee or\r\nI have signed the [Contributor License Agreement](https://github.com/paypal/SeLion#contributing)\r\n\r\n---\r\n\r\n__Example usage__\r\n```shell\r\n$ java -jar target/SeLion-Code-Generator-CLI-2.0.0-SNAPSHOT-jar-with-dependencies.jar -h\r\nUsage: <main class> [options]\r\n  Options:\r\n    -androidCustomElements\r\n       Comma separated list of \"android\" custom elements to be included during\r\n       code generation. For example: bar.foo.A,bar.foo.B\r\n       Default: []\r\n    -baseFolder\r\n       Represents the base folder used for reading page asset files such as\r\n       PageYAML.\r\n       Default: GUIData\r\n    -basePackage\r\n       Represents the base package used for generated java classes.\r\n       Default: com.paypal.selion.testcomponents\r\n    -excludeDomains\r\n       Comma separated list of \"domains\" to exclude during code generation. For\r\n       example: foo,bar,baz\r\n       Default: []\r\n    -generatedSourcesDir\r\n       The generated source directory to output to.\r\n       Default: target/generated-test-sources\r\n    -htmlCustomElements\r\n       Comma separated list of \"html\" custom elements to be included during code\r\n       generation. For example: bar.foo.A,bar.foo.B\r\n       Default: []\r\n    -iosCustomElements\r\n       Comma separated list of \"ios\" custom elements to be included during code\r\n       generation. For example: bar.foo.A,bar.foo.B\r\n       Default: []\r\n    -mobileCustomElements\r\n       Comma separated list of \"mobile\" custom elements to be included during\r\n       code generation. For example: bar.foo.A,bar.foo.B\r\n       Default: []\r\n    -resourcesDir\r\n       The resources directory which contains the -baseFolder.\r\n       Default: src/test/resources\r\n    -sourceDir\r\n       The source directory for classes which might depend on generated code\r\n       (E.g. {PageObject}Ext classes)\r\n       Default: src/test/java\r\n    -workingDir\r\n       The working directory.\r\n       Default: ./\r\n```","created_at":"2017-05-15T23:26:19Z","updated_at":"2017-06-23T18:30:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"35e75712a2ab3a932df9f5f06f71554ba052ce44","assignee":null,"assignees":[],"requested_reviewers":[{"login":"sundaramrajendran","id":8651916,"avatar_url":"https://avatars1.githubusercontent.com/u/8651916?v=3","gravatar_id":"","url":"https://api.github.com/users/sundaramrajendran","html_url":"https://github.com/sundaramrajendran","followers_url":"https://api.github.com/users/sundaramrajendran/followers","following_url":"https://api.github.com/users/sundaramrajendran/following{/other_user}","gists_url":"https://api.github.com/users/sundaramrajendran/gists{/gist_id}","starred_url":"https://api.github.com/users/sundaramrajendran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sundaramrajendran/subscriptions","organizations_url":"https://api.github.com/users/sundaramrajendran/orgs","repos_url":"https://api.github.com/users/sundaramrajendran/repos","events_url":"https://api.github.com/users/sundaramrajendran/events{/privacy}","received_events_url":"https://api.github.com/users/sundaramrajendran/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/paypal/SeLion/milestones/6","html_url":"https://github.com/paypal/SeLion/milestone/6","labels_url":"https://api.github.com/repos/paypal/SeLion/milestones/6/labels","id":1933647,"number":6,"title":"2.0.0","description":"SeLion Release 2.0.0. First release with Selenium 3.x support","creator":{"login":"mach6","id":3238999,"avatar_url":"https://avatars2.githubusercontent.com/u/3238999?v=3","gravatar_id":"","url":"https://api.github.com/users/mach6","html_url":"https://github.com/mach6","followers_url":"https://api.github.com/users/mach6/followers","following_url":"https://api.github.com/users/mach6/following{/other_user}","gists_url":"https://api.github.com/users/mach6/gists{/gist_id}","starred_url":"https://api.github.com/users/mach6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mach6/subscriptions","organizations_url":"https://api.github.com/users/mach6/orgs","repos_url":"https://api.github.com/users/mach6/repos","events_url":"https://api.github.com/users/mach6/events{/privacy}","received_events_url":"https://api.github.com/users/mach6/received_events","type":"User","site_admin":false},"open_issues":15,"closed_issues":9,"state":"open","created_at":"2016-08-09T22:49:23Z","updated_at":"2017-06-07T18:44:17Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/paypal/SeLion/pulls/354/commits","review_comments_url":"https://api.github.com/repos/paypal/SeLion/pulls/354/comments","review_comment_url":"https://api.github.com/repos/paypal/SeLion/pulls/comments{/number}","comments_url":"https://api.github.com/repos/paypal/SeLion/issues/354/comments","statuses_url":"https://api.github.com/repos/paypal/SeLion/statuses/8cbff622c07ef71aa821b02e428568fd42877d4d","head":{"label":"mach6:codegen-cli","ref":"codegen-cli","sha":"8cbff622c07ef71aa821b02e428568fd42877d4d","user":{"login":"mach6","id":3238999,"avatar_url":"https://avatars2.githubusercontent.com/u/3238999?v=3","gravatar_id":"","url":"https://api.github.com/users/mach6","html_url":"https://github.com/mach6","followers_url":"https://api.github.com/users/mach6/followers","following_url":"https://api.github.com/users/mach6/following{/other_user}","gists_url":"https://api.github.com/users/mach6/gists{/gist_id}","starred_url":"https://api.github.com/users/mach6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mach6/subscriptions","organizations_url":"https://api.github.com/users/mach6/orgs","repos_url":"https://api.github.com/users/mach6/repos","events_url":"https://api.github.com/users/mach6/events{/privacy}","received_events_url":"https://api.github.com/users/mach6/received_events","type":"User","site_admin":false},"repo":{"id":24708086,"name":"SeLion","full_name":"mach6/SeLion","owner":{"login":"mach6","id":3238999,"avatar_url":"https://avatars2.githubusercontent.com/u/3238999?v=3","gravatar_id":"","url":"https://api.github.com/users/mach6","html_url":"https://github.com/mach6","followers_url":"https://api.github.com/users/mach6/followers","following_url":"https://api.github.com/users/mach6/following{/other_user}","gists_url":"https://api.github.com/users/mach6/gists{/gist_id}","starred_url":"https://api.github.com/users/mach6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mach6/subscriptions","organizations_url":"https://api.github.com/users/mach6/orgs","repos_url":"https://api.github.com/users/mach6/repos","events_url":"https://api.github.com/users/mach6/events{/privacy}","received_events_url":"https://api.github.com/users/mach6/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mach6/SeLion","description":"Enabling Test Automation in Java","fork":true,"url":"https://api.github.com/repos/mach6/SeLion","forks_url":"https://api.github.com/repos/mach6/SeLion/forks","keys_url":"https://api.github.com/repos/mach6/SeLion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mach6/SeLion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mach6/SeLion/teams","hooks_url":"https://api.github.com/repos/mach6/SeLion/hooks","issue_events_url":"https://api.github.com/repos/mach6/SeLion/issues/events{/number}","events_url":"https://api.github.com/repos/mach6/SeLion/events","assignees_url":"https://api.github.com/repos/mach6/SeLion/assignees{/user}","branches_url":"https://api.github.com/repos/mach6/SeLion/branches{/branch}","tags_url":"https://api.github.com/repos/mach6/SeLion/tags","blobs_url":"https://api.github.com/repos/mach6/SeLion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mach6/SeLion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mach6/SeLion/git/refs{/sha}","trees_url":"https://api.github.com/repos/mach6/SeLion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mach6/SeLion/statuses/{sha}","languages_url":"https://api.github.com/repos/mach6/SeLion/languages","stargazers_url":"https://api.github.com/repos/mach6/SeLion/stargazers","contributors_url":"https://api.github.com/repos/mach6/SeLion/contributors","subscribers_url":"https://api.github.com/repos/mach6/SeLion/subscribers","subscription_url":"https://api.github.com/repos/mach6/SeLion/subscription","commits_url":"https://api.github.com/repos/mach6/SeLion/commits{/sha}","git_commits_url":"https://api.github.com/repos/mach6/SeLion/git/commits{/sha}","comments_url":"https://api.github.com/repos/mach6/SeLion/comments{/number}","issue_comment_url":"https://api.github.com/repos/mach6/SeLion/issues/comments{/number}","contents_url":"https://api.github.com/repos/mach6/SeLion/contents/{+path}","compare_url":"https://api.github.com/repos/mach6/SeLion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mach6/SeLion/merges","archive_url":"https://api.github.com/repos/mach6/SeLion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mach6/SeLion/downloads","issues_url":"https://api.github.com/repos/mach6/SeLion/issues{/number}","pulls_url":"https://api.github.com/repos/mach6/SeLion/pulls{/number}","milestones_url":"https://api.github.com/repos/mach6/SeLion/milestones{/number}","notifications_url":"https://api.github.com/repos/mach6/SeLion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mach6/SeLion/labels{/name}","releases_url":"https://api.github.com/repos/mach6/SeLion/releases{/id}","deployments_url":"https://api.github.com/repos/mach6/SeLion/deployments","created_at":"2014-10-02T05:57:34Z","updated_at":"2017-06-13T16:40:59Z","pushed_at":"2017-05-16T21:51:24Z","git_url":"git://github.com/mach6/SeLion.git","ssh_url":"git@github.com:mach6/SeLion.git","clone_url":"https://github.com/mach6/SeLion.git","svn_url":"https://github.com/mach6/SeLion","homepage":"http://selion.io","size":6823,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"paypal:develop","ref":"develop","sha":"c8f214b6a492eef716dc7dee11e858cc2023f0e1","user":{"login":"paypal","id":476675,"avatar_url":"https://avatars2.githubusercontent.com/u/476675?v=3","gravatar_id":"","url":"https://api.github.com/users/paypal","html_url":"https://github.com/paypal","followers_url":"https://api.github.com/users/paypal/followers","following_url":"https://api.github.com/users/paypal/following{/other_user}","gists_url":"https://api.github.com/users/paypal/gists{/gist_id}","starred_url":"https://api.github.com/users/paypal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paypal/subscriptions","organizations_url":"https://api.github.com/users/paypal/orgs","repos_url":"https://api.github.com/users/paypal/repos","events_url":"https://api.github.com/users/paypal/events{/privacy}","received_events_url":"https://api.github.com/users/paypal/received_events","type":"Organization","site_admin":false},"repo":{"id":22930887,"name":"SeLion","full_name":"paypal/SeLion","owner":{"login":"paypal","id":476675,"avatar_url":"https://avatars2.githubusercontent.com/u/476675?v=3","gravatar_id":"","url":"https://api.github.com/users/paypal","html_url":"https://github.com/paypal","followers_url":"https://api.github.com/users/paypal/followers","following_url":"https://api.github.com/users/paypal/following{/other_user}","gists_url":"https://api.github.com/users/paypal/gists{/gist_id}","starred_url":"https://api.github.com/users/paypal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paypal/subscriptions","organizations_url":"https://api.github.com/users/paypal/orgs","repos_url":"https://api.github.com/users/paypal/repos","events_url":"https://api.github.com/users/paypal/events{/privacy}","received_events_url":"https://api.github.com/users/paypal/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/paypal/SeLion","description":"Enabling Test Automation in Java","fork":false,"url":"https://api.github.com/repos/paypal/SeLion","forks_url":"https://api.github.com/repos/paypal/SeLion/forks","keys_url":"https://api.github.com/repos/paypal/SeLion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/paypal/SeLion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/paypal/SeLion/teams","hooks_url":"https://api.github.com/repos/paypal/SeLion/hooks","issue_events_url":"https://api.github.com/repos/paypal/SeLion/issues/events{/number}","events_url":"https://api.github.com/repos/paypal/SeLion/events","assignees_url":"https://api.github.com/repos/paypal/SeLion/assignees{/user}","branches_url":"https://api.github.com/repos/paypal/SeLion/branches{/branch}","tags_url":"https://api.github.com/repos/paypal/SeLion/tags","blobs_url":"https://api.github.com/repos/paypal/SeLion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/paypal/SeLion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/paypal/SeLion/git/refs{/sha}","trees_url":"https://api.github.com/repos/paypal/SeLion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/paypal/SeLion/statuses/{sha}","languages_url":"https://api.github.com/repos/paypal/SeLion/languages","stargazers_url":"https://api.github.com/repos/paypal/SeLion/stargazers","contributors_url":"https://api.github.com/repos/paypal/SeLion/contributors","subscribers_url":"https://api.github.com/repos/paypal/SeLion/subscribers","subscription_url":"https://api.github.com/repos/paypal/SeLion/subscription","commits_url":"https://api.github.com/repos/paypal/SeLion/commits{/sha}","git_commits_url":"https://api.github.com/repos/paypal/SeLion/git/commits{/sha}","comments_url":"https://api.github.com/repos/paypal/SeLion/comments{/number}","issue_comment_url":"https://api.github.com/repos/paypal/SeLion/issues/comments{/number}","contents_url":"https://api.github.com/repos/paypal/SeLion/contents/{+path}","compare_url":"https://api.github.com/repos/paypal/SeLion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/paypal/SeLion/merges","archive_url":"https://api.github.com/repos/paypal/SeLion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/paypal/SeLion/downloads","issues_url":"https://api.github.com/repos/paypal/SeLion/issues{/number}","pulls_url":"https://api.github.com/repos/paypal/SeLion/pulls{/number}","milestones_url":"https://api.github.com/repos/paypal/SeLion/milestones{/number}","notifications_url":"https://api.github.com/repos/paypal/SeLion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/paypal/SeLion/labels{/name}","releases_url":"https://api.github.com/repos/paypal/SeLion/releases{/id}","deployments_url":"https://api.github.com/repos/paypal/SeLion/deployments","created_at":"2014-08-13T20:52:57Z","updated_at":"2017-06-22T22:36:33Z","pushed_at":"2017-06-13T06:40:54Z","git_url":"git://github.com/paypal/SeLion.git","ssh_url":"git@github.com:paypal/SeLion.git","clone_url":"https://github.com/paypal/SeLion.git","svn_url":"https://github.com/paypal/SeLion","homepage":"http://selion.io","size":45014,"stargazers_count":117,"watchers_count":117,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":137,"mirror_url":null,"open_issues_count":25,"forks":137,"open_issues":25,"watchers":117,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/paypal/SeLion/pulls/354"},"html":{"href":"https://github.com/paypal/SeLion/pull/354"},"issue":{"href":"https://api.github.com/repos/paypal/SeLion/issues/354"},"comments":{"href":"https://api.github.com/repos/paypal/SeLion/issues/354/comments"},"review_comments":{"href":"https://api.github.com/repos/paypal/SeLion/pulls/354/comments"},"review_comment":{"href":"https://api.github.com/repos/paypal/SeLion/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/paypal/SeLion/pulls/354/commits"},"statuses":{"href":"https://api.github.com/repos/paypal/SeLion/statuses/8cbff622c07ef71aa821b02e428568fd42877d4d"}}}}
{"actor":{"display_login":"mach6"}}