{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/issues/81","repository_url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/issues/81/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/issues/81/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/issues/81/events","html_url":"https://github.com/GoogleCloudPlatform/app-tools-lib-for-java/pull/81","id":156378988,"number":81,"title":"Trying to get less inhertiancy, request for feedback","user":{"login":"loosebazooka","id":1304826,"avatar_url":"https://avatars.githubusercontent.com/u/1304826?v=3","gravatar_id":"","url":"https://api.github.com/users/loosebazooka","html_url":"https://github.com/loosebazooka","followers_url":"https://api.github.com/users/loosebazooka/followers","following_url":"https://api.github.com/users/loosebazooka/following{/other_user}","gists_url":"https://api.github.com/users/loosebazooka/gists{/gist_id}","starred_url":"https://api.github.com/users/loosebazooka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/loosebazooka/subscriptions","organizations_url":"https://api.github.com/users/loosebazooka/orgs","repos_url":"https://api.github.com/users/loosebazooka/repos","events_url":"https://api.github.com/users/loosebazooka/events{/privacy}","received_events_url":"https://api.github.com/users/loosebazooka/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/labels/cla:%20yes","name":"cla: yes","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-05-23T22:16:07Z","updated_at":"2016-05-24T14:06:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/pulls/81","html_url":"https://github.com/GoogleCloudPlatform/app-tools-lib-for-java/pull/81","diff_url":"https://github.com/GoogleCloudPlatform/app-tools-lib-for-java/pull/81.diff","patch_url":"https://github.com/GoogleCloudPlatform/app-tools-lib-for-java/pull/81.patch"},"body":"@meltsufin @patflynn @etanshaul \r\n\r\nLooking at a review of the concept more than the actual code for this.\r\n\r\nTake a look at DeployExample.java to start\r\n\r\nthe structure of the composition is basically :\r\n\r\n- GcloudAppDeploy (Type: Deploy)\r\n  - [required] CloudSdk\r\n  - [optional] CliProcessStarter (Type: ProcesStarter)\r\n  - [optional] DeployConfigurationTranslator (Type: ConfigurationTranslator)\r\n\r\n1. CloudSdk right now if from the existing code, not much will change, execution is taken out of it though.\r\n1. CliProcessStarter can configure two things, the jvm shutdown hook (most only disabled when running the devappserver in background mode) and the process environment\r\n1. DeployConfigurationTranslator translates a deploy configuration to a cli\r\n\r\n\r\nTheres some notes in the source files too. You can ignore build errors, some methods I just made up.\r\n\r\nAlso some of this stuff might conflict with things I preferred in earlier code reviews (like: inheritted stdout/stderr in process builder), so, yeah, sorry."},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/issues/comments/221281708","html_url":"https://github.com/GoogleCloudPlatform/app-tools-lib-for-java/pull/81#issuecomment-221281708","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/app-tools-lib-for-java/issues/81","id":221281708,"user":{"login":"etanshaul","id":1735744,"avatar_url":"https://avatars.githubusercontent.com/u/1735744?v=3","gravatar_id":"","url":"https://api.github.com/users/etanshaul","html_url":"https://github.com/etanshaul","followers_url":"https://api.github.com/users/etanshaul/followers","following_url":"https://api.github.com/users/etanshaul/following{/other_user}","gists_url":"https://api.github.com/users/etanshaul/gists{/gist_id}","starred_url":"https://api.github.com/users/etanshaul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/etanshaul/subscriptions","organizations_url":"https://api.github.com/users/etanshaul/orgs","repos_url":"https://api.github.com/users/etanshaul/repos","events_url":"https://api.github.com/users/etanshaul/events{/privacy}","received_events_url":"https://api.github.com/users/etanshaul/received_events","type":"User","site_admin":false},"created_at":"2016-05-24T14:06:45Z","updated_at":"2016-05-24T14:06:45Z","body":"I am also a little confused about the goal. Looking through the current design I don't really find much \"bad\" inheritance. What I see is a basic strategy pattern with interfaces for the actions, and concrete CloudSdk implementations for them which compose config classes. \r\n\r\nI think the future idea could be good though - i.e. to solve things like @patflynn comment here: https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/674#discussion_r64275222"}}
{"actor":{"display_login":"etanshaul"}}