{"action":"opened","number":327,"pull_request":{"url":"https://api.github.com/repos/datastax/java-driver/pulls/327","id":33636758,"html_url":"https://github.com/datastax/java-driver/pull/327","diff_url":"https://github.com/datastax/java-driver/pull/327.diff","patch_url":"https://github.com/datastax/java-driver/pull/327.patch","issue_url":"https://api.github.com/repos/datastax/java-driver/issues/327","number":327,"state":"open","locked":false,"title":"Add driver-integration for testing with different package configs.","user":{"login":"tolbertam","id":6889771,"avatar_url":"https://avatars.githubusercontent.com/u/6889771?v=3","gravatar_id":"","url":"https://api.github.com/users/tolbertam","html_url":"https://github.com/tolbertam","followers_url":"https://api.github.com/users/tolbertam/followers","following_url":"https://api.github.com/users/tolbertam/following{/other_user}","gists_url":"https://api.github.com/users/tolbertam/gists{/gist_id}","starred_url":"https://api.github.com/users/tolbertam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tolbertam/subscriptions","organizations_url":"https://api.github.com/users/tolbertam/orgs","repos_url":"https://api.github.com/users/tolbertam/repos","events_url":"https://api.github.com/users/tolbertam/events{/privacy}","received_events_url":"https://api.github.com/users/tolbertam/received_events","type":"User","site_admin":false},"body":"Since the behavior of the driver may be altered based on libraries that are present we need a mechanism for testing with these configurations in an automated fashion. The 'osgi' example provides most of this functionality as it loads up OSGi containers with different library configurations, but this is not adequate in some cases, particularly the 'shaded' case where some classes use a different packaging namespace.\r\n\r\nThis is a first attempt and is far from perfect, but wanted to get this opened up to get some feedback with regards to whether i'm on the right path here.\r\n\r\nSome concerns/questions:\r\n\r\n0. Is this the right place for something like this?  Does it need to be in the java-driver repository proper, or should it be a separate project?\r\n1. Is the module name 'driver-integration' appropriate?  Can you think of a better name?\r\n2. Can you think of a better way of testing different library configurations other than creating a separate module for each config?\r\n3. The integration-shaded module uses the netty shaded package structure which is problematic at least in IntelliJ.  I think this may be annoying for those who like to keep clean environments.  You can work around it by adding driver-integration/integration-shaded/pom.xml as an [Ignored File](https://www.jetbrains.com/idea/help/maven-ignored-files.html).\r\n4. Another thought I had was that maybe we could customize our existing tests in driver-core to have a base Cluster.Builder that can be configured on a per-module basis, that way we can run all tests under these different configurations.  That may be too exhaustive, but may uncover some unknown issues.\r\n\r\nThe timeline for review on this is not urgent, this can be something should wait to look at until after release.","created_at":"2015-04-20T05:37:25Z","updated_at":"2015-04-20T05:37:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"caa996f4f5df0bc7784beba30be7fd83f28a9c2f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/datastax/java-driver/pulls/327/commits","review_comments_url":"https://api.github.com/repos/datastax/java-driver/pulls/327/comments","review_comment_url":"https://api.github.com/repos/datastax/java-driver/pulls/comments{/number}","comments_url":"https://api.github.com/repos/datastax/java-driver/issues/327/comments","statuses_url":"https://api.github.com/repos/datastax/java-driver/statuses/c4f7c5696ed323ff1d7f6a3c5170bfaff69a47ba","head":{"label":"tolbertam:driver-integration","ref":"driver-integration","sha":"c4f7c5696ed323ff1d7f6a3c5170bfaff69a47ba","user":{"login":"tolbertam","id":6889771,"avatar_url":"https://avatars.githubusercontent.com/u/6889771?v=3","gravatar_id":"","url":"https://api.github.com/users/tolbertam","html_url":"https://github.com/tolbertam","followers_url":"https://api.github.com/users/tolbertam/followers","following_url":"https://api.github.com/users/tolbertam/following{/other_user}","gists_url":"https://api.github.com/users/tolbertam/gists{/gist_id}","starred_url":"https://api.github.com/users/tolbertam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tolbertam/subscriptions","organizations_url":"https://api.github.com/users/tolbertam/orgs","repos_url":"https://api.github.com/users/tolbertam/repos","events_url":"https://api.github.com/users/tolbertam/events{/privacy}","received_events_url":"https://api.github.com/users/tolbertam/received_events","type":"User","site_admin":false},"repo":{"id":27726791,"name":"java-driver","full_name":"tolbertam/java-driver","owner":{"login":"tolbertam","id":6889771,"avatar_url":"https://avatars.githubusercontent.com/u/6889771?v=3","gravatar_id":"","url":"https://api.github.com/users/tolbertam","html_url":"https://github.com/tolbertam","followers_url":"https://api.github.com/users/tolbertam/followers","following_url":"https://api.github.com/users/tolbertam/following{/other_user}","gists_url":"https://api.github.com/users/tolbertam/gists{/gist_id}","starred_url":"https://api.github.com/users/tolbertam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tolbertam/subscriptions","organizations_url":"https://api.github.com/users/tolbertam/orgs","repos_url":"https://api.github.com/users/tolbertam/repos","events_url":"https://api.github.com/users/tolbertam/events{/privacy}","received_events_url":"https://api.github.com/users/tolbertam/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tolbertam/java-driver","description":"DataStax Java Driver for Apache Cassandra","fork":true,"url":"https://api.github.com/repos/tolbertam/java-driver","forks_url":"https://api.github.com/repos/tolbertam/java-driver/forks","keys_url":"https://api.github.com/repos/tolbertam/java-driver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tolbertam/java-driver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tolbertam/java-driver/teams","hooks_url":"https://api.github.com/repos/tolbertam/java-driver/hooks","issue_events_url":"https://api.github.com/repos/tolbertam/java-driver/issues/events{/number}","events_url":"https://api.github.com/repos/tolbertam/java-driver/events","assignees_url":"https://api.github.com/repos/tolbertam/java-driver/assignees{/user}","branches_url":"https://api.github.com/repos/tolbertam/java-driver/branches{/branch}","tags_url":"https://api.github.com/repos/tolbertam/java-driver/tags","blobs_url":"https://api.github.com/repos/tolbertam/java-driver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tolbertam/java-driver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tolbertam/java-driver/git/refs{/sha}","trees_url":"https://api.github.com/repos/tolbertam/java-driver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tolbertam/java-driver/statuses/{sha}","languages_url":"https://api.github.com/repos/tolbertam/java-driver/languages","stargazers_url":"https://api.github.com/repos/tolbertam/java-driver/stargazers","contributors_url":"https://api.github.com/repos/tolbertam/java-driver/contributors","subscribers_url":"https://api.github.com/repos/tolbertam/java-driver/subscribers","subscription_url":"https://api.github.com/repos/tolbertam/java-driver/subscription","commits_url":"https://api.github.com/repos/tolbertam/java-driver/commits{/sha}","git_commits_url":"https://api.github.com/repos/tolbertam/java-driver/git/commits{/sha}","comments_url":"https://api.github.com/repos/tolbertam/java-driver/comments{/number}","issue_comment_url":"https://api.github.com/repos/tolbertam/java-driver/issues/comments{/number}","contents_url":"https://api.github.com/repos/tolbertam/java-driver/contents/{+path}","compare_url":"https://api.github.com/repos/tolbertam/java-driver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tolbertam/java-driver/merges","archive_url":"https://api.github.com/repos/tolbertam/java-driver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tolbertam/java-driver/downloads","issues_url":"https://api.github.com/repos/tolbertam/java-driver/issues{/number}","pulls_url":"https://api.github.com/repos/tolbertam/java-driver/pulls{/number}","milestones_url":"https://api.github.com/repos/tolbertam/java-driver/milestones{/number}","notifications_url":"https://api.github.com/repos/tolbertam/java-driver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tolbertam/java-driver/labels{/name}","releases_url":"https://api.github.com/repos/tolbertam/java-driver/releases{/id}","created_at":"2014-12-08T17:39:35Z","updated_at":"2014-12-08T17:39:36Z","pushed_at":"2015-04-20T05:34:20Z","git_url":"git://github.com/tolbertam/java-driver.git","ssh_url":"git@github.com:tolbertam/java-driver.git","clone_url":"https://github.com/tolbertam/java-driver.git","svn_url":"https://github.com/tolbertam/java-driver","homepage":null,"size":7987,"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":"2.1"}},"base":{"label":"datastax:2.0","ref":"2.0","sha":"f861d80995a8686356ff0d0ddb61ae770e39cead","user":{"login":"datastax","id":573369,"avatar_url":"https://avatars.githubusercontent.com/u/573369?v=3","gravatar_id":"","url":"https://api.github.com/users/datastax","html_url":"https://github.com/datastax","followers_url":"https://api.github.com/users/datastax/followers","following_url":"https://api.github.com/users/datastax/following{/other_user}","gists_url":"https://api.github.com/users/datastax/gists{/gist_id}","starred_url":"https://api.github.com/users/datastax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datastax/subscriptions","organizations_url":"https://api.github.com/users/datastax/orgs","repos_url":"https://api.github.com/users/datastax/repos","events_url":"https://api.github.com/users/datastax/events{/privacy}","received_events_url":"https://api.github.com/users/datastax/received_events","type":"Organization","site_admin":false},"repo":{"id":6765281,"name":"java-driver","full_name":"datastax/java-driver","owner":{"login":"datastax","id":573369,"avatar_url":"https://avatars.githubusercontent.com/u/573369?v=3","gravatar_id":"","url":"https://api.github.com/users/datastax","html_url":"https://github.com/datastax","followers_url":"https://api.github.com/users/datastax/followers","following_url":"https://api.github.com/users/datastax/following{/other_user}","gists_url":"https://api.github.com/users/datastax/gists{/gist_id}","starred_url":"https://api.github.com/users/datastax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datastax/subscriptions","organizations_url":"https://api.github.com/users/datastax/orgs","repos_url":"https://api.github.com/users/datastax/repos","events_url":"https://api.github.com/users/datastax/events{/privacy}","received_events_url":"https://api.github.com/users/datastax/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/datastax/java-driver","description":"DataStax Java Driver for Apache Cassandra","fork":false,"url":"https://api.github.com/repos/datastax/java-driver","forks_url":"https://api.github.com/repos/datastax/java-driver/forks","keys_url":"https://api.github.com/repos/datastax/java-driver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/datastax/java-driver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/datastax/java-driver/teams","hooks_url":"https://api.github.com/repos/datastax/java-driver/hooks","issue_events_url":"https://api.github.com/repos/datastax/java-driver/issues/events{/number}","events_url":"https://api.github.com/repos/datastax/java-driver/events","assignees_url":"https://api.github.com/repos/datastax/java-driver/assignees{/user}","branches_url":"https://api.github.com/repos/datastax/java-driver/branches{/branch}","tags_url":"https://api.github.com/repos/datastax/java-driver/tags","blobs_url":"https://api.github.com/repos/datastax/java-driver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/datastax/java-driver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/datastax/java-driver/git/refs{/sha}","trees_url":"https://api.github.com/repos/datastax/java-driver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/datastax/java-driver/statuses/{sha}","languages_url":"https://api.github.com/repos/datastax/java-driver/languages","stargazers_url":"https://api.github.com/repos/datastax/java-driver/stargazers","contributors_url":"https://api.github.com/repos/datastax/java-driver/contributors","subscribers_url":"https://api.github.com/repos/datastax/java-driver/subscribers","subscription_url":"https://api.github.com/repos/datastax/java-driver/subscription","commits_url":"https://api.github.com/repos/datastax/java-driver/commits{/sha}","git_commits_url":"https://api.github.com/repos/datastax/java-driver/git/commits{/sha}","comments_url":"https://api.github.com/repos/datastax/java-driver/comments{/number}","issue_comment_url":"https://api.github.com/repos/datastax/java-driver/issues/comments{/number}","contents_url":"https://api.github.com/repos/datastax/java-driver/contents/{+path}","compare_url":"https://api.github.com/repos/datastax/java-driver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/datastax/java-driver/merges","archive_url":"https://api.github.com/repos/datastax/java-driver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/datastax/java-driver/downloads","issues_url":"https://api.github.com/repos/datastax/java-driver/issues{/number}","pulls_url":"https://api.github.com/repos/datastax/java-driver/pulls{/number}","milestones_url":"https://api.github.com/repos/datastax/java-driver/milestones{/number}","notifications_url":"https://api.github.com/repos/datastax/java-driver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/datastax/java-driver/labels{/name}","releases_url":"https://api.github.com/repos/datastax/java-driver/releases{/id}","created_at":"2012-11-19T18:44:41Z","updated_at":"2015-04-18T17:36:58Z","pushed_at":"2015-04-20T05:37:25Z","git_url":"git://github.com/datastax/java-driver.git","ssh_url":"git@github.com:datastax/java-driver.git","clone_url":"https://github.com/datastax/java-driver.git","svn_url":"https://github.com/datastax/java-driver","homepage":null,"size":19259,"stargazers_count":443,"watchers_count":443,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":292,"mirror_url":null,"open_issues_count":27,"forks":292,"open_issues":27,"watchers":443,"default_branch":"2.1"}},"_links":{"self":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/327"},"html":{"href":"https://github.com/datastax/java-driver/pull/327"},"issue":{"href":"https://api.github.com/repos/datastax/java-driver/issues/327"},"comments":{"href":"https://api.github.com/repos/datastax/java-driver/issues/327/comments"},"review_comments":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/327/comments"},"review_comment":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/327/commits"},"statuses":{"href":"https://api.github.com/repos/datastax/java-driver/statuses/c4f7c5696ed323ff1d7f6a3c5170bfaff69a47ba"}},"merged":false,"mergeable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":1480,"deletions":0,"changed_files":14}}