{"action":"created","comment":{"url":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/comments/32298606","id":32298606,"diff_hunk":"@@ -0,0 +1,110 @@\n+/*\n+ * Copyright 2015 the original author or authors.\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\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\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package org.springframework.xd.sink.cassandra;\n+\n+import javax.validation.constraints.AssertFalse;\n+import javax.validation.constraints.AssertTrue;\n+import javax.validation.constraints.Min;\n+import javax.validation.constraints.NotNull;\n+\n+import org.springframework.cassandra.core.ConsistencyLevel;\n+import org.springframework.cassandra.core.RetryPolicy;\n+import org.springframework.integration.cassandra.outbound.CassandraMessageHandler;\n+import org.springframework.util.StringUtils;\n+import org.springframework.xd.module.options.mixin.CassandraConnectionMixin;\n+import org.springframework.xd.module.options.spi.Mixin;\n+import org.springframework.xd.module.options.spi.ModuleOption;\n+\n+/**\n+ * @author Artem Bilan\n+ */\n+@Mixin(CassandraConnectionMixin.class)\n+public class CassandraSinkOptionsMetaData {\n+\n+\tprivate ConsistencyLevel consistencyLevel;\n+\n+\tprivate RetryPolicy retryPolicy;\n+\n+\tprivate Integer ttl;","path":"cassandra-sink/src/main/java/org/springframework/xd/sink/cassandra/CassandraSinkOptionsMetaData.java","position":41,"original_position":41,"commit_id":"a2569082c162f1f5251c24609218e82773280cbe","original_commit_id":"a2569082c162f1f5251c24609218e82773280cbe","user":{"login":"ericbottard","id":313494,"avatar_url":"https://avatars.githubusercontent.com/u/313494?v=3","gravatar_id":"","url":"https://api.github.com/users/ericbottard","html_url":"https://github.com/ericbottard","followers_url":"https://api.github.com/users/ericbottard/followers","following_url":"https://api.github.com/users/ericbottard/following{/other_user}","gists_url":"https://api.github.com/users/ericbottard/gists{/gist_id}","starred_url":"https://api.github.com/users/ericbottard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ericbottard/subscriptions","organizations_url":"https://api.github.com/users/ericbottard/orgs","repos_url":"https://api.github.com/users/ericbottard/repos","events_url":"https://api.github.com/users/ericbottard/events{/privacy}","received_events_url":"https://api.github.com/users/ericbottard/received_events","type":"User","site_admin":false},"body":"use `int` instead of Integer, that way prevents `null`s","created_at":"2015-06-12T08:36:27Z","updated_at":"2015-06-12T08:36:27Z","html_url":"https://github.com/spring-projects/spring-xd-modules/pull/21#discussion_r32298606","pull_request_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21","_links":{"self":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/comments/32298606"},"html":{"href":"https://github.com/spring-projects/spring-xd-modules/pull/21#discussion_r32298606"},"pull_request":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21"}}},"pull_request":{"url":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21","id":37531923,"html_url":"https://github.com/spring-projects/spring-xd-modules/pull/21","diff_url":"https://github.com/spring-projects/spring-xd-modules/pull/21.diff","patch_url":"https://github.com/spring-projects/spring-xd-modules/pull/21.patch","issue_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/issues/21","number":21,"state":"open","locked":false,"title":"XD-2130: Add Cassandra Sink Module","user":{"login":"artembilan","id":1071590,"avatar_url":"https://avatars.githubusercontent.com/u/1071590?v=3","gravatar_id":"","url":"https://api.github.com/users/artembilan","html_url":"https://github.com/artembilan","followers_url":"https://api.github.com/users/artembilan/followers","following_url":"https://api.github.com/users/artembilan/following{/other_user}","gists_url":"https://api.github.com/users/artembilan/gists{/gist_id}","starred_url":"https://api.github.com/users/artembilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artembilan/subscriptions","organizations_url":"https://api.github.com/users/artembilan/orgs","repos_url":"https://api.github.com/users/artembilan/repos","events_url":"https://api.github.com/users/artembilan/events{/privacy}","received_events_url":"https://api.github.com/users/artembilan/received_events","type":"User","site_admin":false},"body":"JIRA: https://jira.spring.io/browse/XD-2130\r\n\r\nThis change provides a Cassandra XD Sink module in Java `@Configuration` style.\r\nExtract common classes for options mixin and for common beans like `CassandraTemplate`.\r\nThis can be used as a foundation for other Cassandra XD modules types.\r\n\r\n**TODO**\r\n* Testing against real XD\r\n* Docs after real tests","created_at":"2015-06-12T04:51:06Z","updated_at":"2015-06-12T08:36:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bc362b9243969fb5cce5bae44d489acf562f724d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21/commits","review_comments_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21/comments","review_comment_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/comments{/number}","comments_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/issues/21/comments","statuses_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/statuses/a2569082c162f1f5251c24609218e82773280cbe","head":{"label":"artembilan:XD-2130","ref":"XD-2130","sha":"a2569082c162f1f5251c24609218e82773280cbe","user":{"login":"artembilan","id":1071590,"avatar_url":"https://avatars.githubusercontent.com/u/1071590?v=3","gravatar_id":"","url":"https://api.github.com/users/artembilan","html_url":"https://github.com/artembilan","followers_url":"https://api.github.com/users/artembilan/followers","following_url":"https://api.github.com/users/artembilan/following{/other_user}","gists_url":"https://api.github.com/users/artembilan/gists{/gist_id}","starred_url":"https://api.github.com/users/artembilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artembilan/subscriptions","organizations_url":"https://api.github.com/users/artembilan/orgs","repos_url":"https://api.github.com/users/artembilan/repos","events_url":"https://api.github.com/users/artembilan/events{/privacy}","received_events_url":"https://api.github.com/users/artembilan/received_events","type":"User","site_admin":false},"repo":{"id":36520204,"name":"spring-xd-modules","full_name":"artembilan/spring-xd-modules","owner":{"login":"artembilan","id":1071590,"avatar_url":"https://avatars.githubusercontent.com/u/1071590?v=3","gravatar_id":"","url":"https://api.github.com/users/artembilan","html_url":"https://github.com/artembilan","followers_url":"https://api.github.com/users/artembilan/followers","following_url":"https://api.github.com/users/artembilan/following{/other_user}","gists_url":"https://api.github.com/users/artembilan/gists{/gist_id}","starred_url":"https://api.github.com/users/artembilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artembilan/subscriptions","organizations_url":"https://api.github.com/users/artembilan/orgs","repos_url":"https://api.github.com/users/artembilan/repos","events_url":"https://api.github.com/users/artembilan/events{/privacy}","received_events_url":"https://api.github.com/users/artembilan/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/artembilan/spring-xd-modules","description":"","fork":true,"url":"https://api.github.com/repos/artembilan/spring-xd-modules","forks_url":"https://api.github.com/repos/artembilan/spring-xd-modules/forks","keys_url":"https://api.github.com/repos/artembilan/spring-xd-modules/keys{/key_id}","collaborators_url":"https://api.github.com/repos/artembilan/spring-xd-modules/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/artembilan/spring-xd-modules/teams","hooks_url":"https://api.github.com/repos/artembilan/spring-xd-modules/hooks","issue_events_url":"https://api.github.com/repos/artembilan/spring-xd-modules/issues/events{/number}","events_url":"https://api.github.com/repos/artembilan/spring-xd-modules/events","assignees_url":"https://api.github.com/repos/artembilan/spring-xd-modules/assignees{/user}","branches_url":"https://api.github.com/repos/artembilan/spring-xd-modules/branches{/branch}","tags_url":"https://api.github.com/repos/artembilan/spring-xd-modules/tags","blobs_url":"https://api.github.com/repos/artembilan/spring-xd-modules/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/artembilan/spring-xd-modules/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/artembilan/spring-xd-modules/git/refs{/sha}","trees_url":"https://api.github.com/repos/artembilan/spring-xd-modules/git/trees{/sha}","statuses_url":"https://api.github.com/repos/artembilan/spring-xd-modules/statuses/{sha}","languages_url":"https://api.github.com/repos/artembilan/spring-xd-modules/languages","stargazers_url":"https://api.github.com/repos/artembilan/spring-xd-modules/stargazers","contributors_url":"https://api.github.com/repos/artembilan/spring-xd-modules/contributors","subscribers_url":"https://api.github.com/repos/artembilan/spring-xd-modules/subscribers","subscription_url":"https://api.github.com/repos/artembilan/spring-xd-modules/subscription","commits_url":"https://api.github.com/repos/artembilan/spring-xd-modules/commits{/sha}","git_commits_url":"https://api.github.com/repos/artembilan/spring-xd-modules/git/commits{/sha}","comments_url":"https://api.github.com/repos/artembilan/spring-xd-modules/comments{/number}","issue_comment_url":"https://api.github.com/repos/artembilan/spring-xd-modules/issues/comments{/number}","contents_url":"https://api.github.com/repos/artembilan/spring-xd-modules/contents/{+path}","compare_url":"https://api.github.com/repos/artembilan/spring-xd-modules/compare/{base}...{head}","merges_url":"https://api.github.com/repos/artembilan/spring-xd-modules/merges","archive_url":"https://api.github.com/repos/artembilan/spring-xd-modules/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/artembilan/spring-xd-modules/downloads","issues_url":"https://api.github.com/repos/artembilan/spring-xd-modules/issues{/number}","pulls_url":"https://api.github.com/repos/artembilan/spring-xd-modules/pulls{/number}","milestones_url":"https://api.github.com/repos/artembilan/spring-xd-modules/milestones{/number}","notifications_url":"https://api.github.com/repos/artembilan/spring-xd-modules/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/artembilan/spring-xd-modules/labels{/name}","releases_url":"https://api.github.com/repos/artembilan/spring-xd-modules/releases{/id}","created_at":"2015-05-29T17:52:20Z","updated_at":"2015-05-29T17:52:20Z","pushed_at":"2015-06-12T04:48:54Z","git_url":"git://github.com/artembilan/spring-xd-modules.git","ssh_url":"git@github.com:artembilan/spring-xd-modules.git","clone_url":"https://github.com/artembilan/spring-xd-modules.git","svn_url":"https://github.com/artembilan/spring-xd-modules","homepage":null,"size":2194,"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":"spring-projects:master","ref":"master","sha":"d15be583c507c99dbe1486a36142430abb3b540b","user":{"login":"spring-projects","id":317776,"avatar_url":"https://avatars.githubusercontent.com/u/317776?v=3","gravatar_id":"","url":"https://api.github.com/users/spring-projects","html_url":"https://github.com/spring-projects","followers_url":"https://api.github.com/users/spring-projects/followers","following_url":"https://api.github.com/users/spring-projects/following{/other_user}","gists_url":"https://api.github.com/users/spring-projects/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-projects/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-projects/subscriptions","organizations_url":"https://api.github.com/users/spring-projects/orgs","repos_url":"https://api.github.com/users/spring-projects/repos","events_url":"https://api.github.com/users/spring-projects/events{/privacy}","received_events_url":"https://api.github.com/users/spring-projects/received_events","type":"Organization","site_admin":false},"repo":{"id":18411862,"name":"spring-xd-modules","full_name":"spring-projects/spring-xd-modules","owner":{"login":"spring-projects","id":317776,"avatar_url":"https://avatars.githubusercontent.com/u/317776?v=3","gravatar_id":"","url":"https://api.github.com/users/spring-projects","html_url":"https://github.com/spring-projects","followers_url":"https://api.github.com/users/spring-projects/followers","following_url":"https://api.github.com/users/spring-projects/following{/other_user}","gists_url":"https://api.github.com/users/spring-projects/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-projects/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-projects/subscriptions","organizations_url":"https://api.github.com/users/spring-projects/orgs","repos_url":"https://api.github.com/users/spring-projects/repos","events_url":"https://api.github.com/users/spring-projects/events{/privacy}","received_events_url":"https://api.github.com/users/spring-projects/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/spring-projects/spring-xd-modules","description":"","fork":false,"url":"https://api.github.com/repos/spring-projects/spring-xd-modules","forks_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/forks","keys_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/teams","hooks_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/hooks","issue_events_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/issues/events{/number}","events_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/events","assignees_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/assignees{/user}","branches_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/branches{/branch}","tags_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/tags","blobs_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/git/refs{/sha}","trees_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/statuses/{sha}","languages_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/languages","stargazers_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/stargazers","contributors_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/contributors","subscribers_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/subscribers","subscription_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/subscription","commits_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/commits{/sha}","git_commits_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/git/commits{/sha}","comments_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/comments{/number}","issue_comment_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/issues/comments{/number}","contents_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/contents/{+path}","compare_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/merges","archive_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/downloads","issues_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/issues{/number}","pulls_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls{/number}","milestones_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/milestones{/number}","notifications_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/labels{/name}","releases_url":"https://api.github.com/repos/spring-projects/spring-xd-modules/releases{/id}","created_at":"2014-04-03T17:28:35Z","updated_at":"2015-05-18T13:31:50Z","pushed_at":"2015-06-12T04:51:07Z","git_url":"git://github.com/spring-projects/spring-xd-modules.git","ssh_url":"git@github.com:spring-projects/spring-xd-modules.git","clone_url":"https://github.com/spring-projects/spring-xd-modules.git","svn_url":"https://github.com/spring-projects/spring-xd-modules","homepage":null,"size":2047,"stargazers_count":11,"watchers_count":11,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":2,"forks":20,"open_issues":2,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21"},"html":{"href":"https://github.com/spring-projects/spring-xd-modules/pull/21"},"issue":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/issues/21"},"comments":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/issues/21/comments"},"review_comments":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21/comments"},"review_comment":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/pulls/21/commits"},"statuses":{"href":"https://api.github.com/repos/spring-projects/spring-xd-modules/statuses/a2569082c162f1f5251c24609218e82773280cbe"}}}}