11 Collaborator |
Sylvain Lebresne , Tyler Hobbs , Stefania Alborghetti , Alexandre Dutra , Bret McGuire , Erik Merkle , Andrew Tolbert , Tomasz Lelek , Greg Bestland , Kevin Gallardo , GregBestland |
965 Patch |
1 Review |
cf76ac66af4344acaaf44f8dec3ef584cff79bf2,
a3d8375a2b9da5145fb413bb2314a1142fba6c46,
2a705683df13f28eba2fb76ec9cdd8f1e8774df7,
3506c24a4fdbb954915fdd44d8ca96c3ca2317bb,
c8e7fc8e402a75c6d437b3b030555121b2092918,
37b48e11762edc8366d38405d9e8d738c9b8e39e,
7f17bbcc379474c452be22018881bb303d32e9bf,
14277cb60c4a461feb81a1f839c127e480a3aaae,
f877d551934a637d3c10a9622cff8f60ac1838a0,
023278b183e48b2d515b6b85c54e5f446a7addb9,
89f92e1ba1a49aa5603b894812eece4961366526,
0ee273993fb320242413c77517023549313183ac,
a8c3638837e05aba3ae0307b438a552295fab9f6,
60dde9b223de36ebbaaf0d72061282895a48ed8c,
8160e70378a7a38cec9adad4a71928d3a3c12a61,
27f6f449b9d90a54d9f69812b7b1723b54a716c8,
addeb9a55dd2489f6537afe46e6e626947ebdb89,
9032edc98e36a30f60d0f933047df9f538479d34,
a1e8dfd7df91d28ed81724509cf9bdbb64d2ab22,
a8b7223d39f78c02fcb9d9f884bfc6cccca15590,
abd82873501eea51c2710f3bd3a2ba8b254213bc,
5d0a22737e3ce81b723dda3ab184b531f93929d6,
45b12254d47320d8a325f013c4faf6b7014807ec,
2ddfae061c8ce115e088f8c2ec2e2607f1e55427,
b85e20856825a8c22eb168302cecbbf854e27dc9,
842ca7695b9f707b24ee132ba7220b14e108487a,
9bc2ac8e9db470e7c25744b175ecf0014c13a6ff,
94aae4a6dbe4bda6f951e4629fe229aeafe80b86,
255bdf7fbcff3fb834239c75950647364e22313f,
534dbc1e94018265ec210e3756b26243f3f47354,
3d2ec671465cdc99987bfc5a74cb776d507ee7d9,
57234900c5b221f87d497e00ce8f78d925ce964d,
ab52296c67c0f305acd4abb9ca3590ac76c198fb,
29a6c9a7f1b3523d70e60b06e981e59f012d392b,
eb93f72929820740e00e32461b31669ab4a40a7d,
505c0b1c568e517e4faeb46fe3325be32ea0242d,
df4de3caf056c44552299deb5516ea8fa4b4db64,
67da538ead8dc0303439bde205fef605287b2652,
3fb67c6e28e16c4f2df22544aae533ecd631106f,
ca871adf50f7e3848c37f31c6ebe983ae4458e01,
b98d789cba987372122e6a5f2d6ea5b7e273b634,
cd463d838bf0e5c7fbdfbd363a0b6c243b1be07a,
7754f5ad2abadd44023ea4c1329b9a3a93dd71bc,
66b6dcd418cb67480fd527874c7e084f2b120801,
b2b9bee9152fecfdbefda654ccf578325e2a36d8,
a90dca5e5414aac558aa899bd406df0151e194db,
b5d2c1b30f8d928e9e430102fccd054d845ea8cf,
05befa5d709ca24596e4eee2769103e4fe5ac499,
02bdecee8394e4e34a63cc9eef665735b6c54961,
e68bd4f76e48e849f45a98addc1707acfff76419,
e9b51112658f1c3f69fe989b6d4e2f99912428d3,
56454fa1dd121e708e25921e2280212d4022ce82,
ca7da15567b8ab5ae92ff3b37246b88dd44d2421,
6babe4b6ab6c5e379b4e7aadea67b875ec6f8ecd,
957bfd5cb677c14bd025db4ae7057ca1712e1704,
a8e8795df679e03f1be8a0627845be0a06a72694,
57b9488b82cdb1ca8560cac7931d6a71efccc755,
d45744a60485e9e9326f59125554c618b24ff90e,
a79018cbe08e324cd4bb7347b05a7d464fca32d9,
361fa82e4d94bd09dd9d6de132e59d00983d13e1,
529c4eb54308d26c8763d3376b25fc56d6b8a6f5,
150c5e03629922bd64d3e0589bb4a10f69da2e88,
2997d775a091cfee614e49d20c98f5b29518d7c0,
bfbf82734c734e311cc9869ec351cbd3f127df4e,
d523e9a95e63a740bc6af4645130e438fba248df,
f4e6f78c5cf2ff3628d285e1149d37f90050a459,
6cb6c2426efd3e2b86d2485e9e15720cc929d877,
c626997b7afbd1bfe1edbf22b345b34ecb6161fd,
e852545bbeb51f8fee0df4c38e37fff039224382,
603eb2d00ea0a8b6cf4e8a4b13cdcc042d9b350c,
4c9a03853c9260f93887d6e4c9b5e1fe0f14b76c,
4e6a5cf0f074e4437f8eaedd473e467e5d3c6e9e,
bc95909ce0f51f0c0b1cb04de18e29059193f4a3,
5b53b0de17bb7feac2a321090a3f96ba151da879,
671bc5ebb7d702fc96a19bf19d62dc3b323ed6a0,
64a3d93fad9789e6f73cf2e277c81a8bd88ec44b,
5e543f9650a563f957c9e462adac44636caf1a0e,
12570ea462f12ce48b474764b73ddb9fa251f55b,
d54a5108b30b0c2948bd29f0d00f0c934001a76b,
434660e522e6bd47e4806981894cedcc64d8f99f,
5ee71a3477bee2b75580f921bdb42d6e950b544e,
057fe5d2d58a953caade26786f98c1a75ed089b1,
f3728a0e05ec48ca496c0259513364da8f7951bc,
1bf39fa262124e45566bd1438d635884656f3969,
a5a32004e1b39a713d1698ac12f1b5a1e4e36f24,
b5e27a82e1bd8bb6198aec530c439c651f58ad4c,
6e39fb62928e6ab149ae5b89785a6d85373fa803,
db2fabe86794186fcabbaa3a4d8b79da1f219b77,
1f83ccf927b554cd7e1f09d4b2c5d5188109a6b8,
9372ebb876391c93fe3995ea47ba7dd17d3ab136,
532074ed66b71fb4c8632a3a635114e5faab71c0,
55d202e8ae7b0dbe590fc96fb77353e760f0c98a,
64c33e297f9567b53beb7051c89f00fa193b9d3c,
d49132b39a3fb4cca410151c29b2cc8fd73fd161,
952fdeff25912cbb63e071c2deeb7f710448daa1,
ffc49562eeb3b3b583719279c551e7f848e94724,
09364c26f1d47193d6f492657d67e191708fc57d,
a33f23cf3fe6a8cbc357a8bad3366c04a1808856,
3b386ee64c59c0fd32a5bcb10d4a2dc22378ce1c,
4e08500aa205ef2e3d4c305e2e4ed4b1f15b1503,
8beeb07eb457e2babee744b23dfbf8250c14d369,
1f6a58e22d808770aeeec02d7c4547bb891d073b,
1463f0f13e118c9dddb55eab6c9cba4c7f199f6b,
9e46299e6efe59cd842c6cc408d8adb5ff21b33f,
4ef98e3dd2d66093b15dfde02622d0d5b778e7b6,
b436fd8076536b77b48c3be35627c785eb35b89b,
da5560f0f6cbf95d9bb76f4d844cc5e94113af96,
bf272380fe374980253f3c4f1f5c526e27f5708b,
0d2ec0ed359f45848b4b91908308e0ba6b7ff052,
140e48239973144b20dc3dfa55c3742318249626,
bcda412cfd73d058600a18d1275142de058e638e,
c3a6e6b30c4be2ad72986a5dd1e458fc13c2d2a1,
bea702f3cae935b891f5bdcfd781c13ac468ac56,
69fe94c17e841252b92fe8d8efbf6a6b2c741e9e,
e084ac1c4ddbdbec96056af798c8c5e534204773,
72a8ae886a4e68795665a3a8c7f5b970d58dc5f5,
1155605aa02769c8d2edc648c1b5236eaf04a27c,
0d9da9d9c9432b2a401d358f8a7dcf12c7177103,
309f3b9276fcce0e27312b723bd36ba6523ac202,
0880a97105aa57da6881b73c93dab534d7407360,
a4f47d8f95ac9d0c8dfde145f1e1be8e8a40bafe,
c225588811a85e25d98790ce4b4f399e0ca066e4,
31996a0913ade83ebc43d47b6376202b245000e1,
2ac7f8315a3e4b52de080220dbb4e3210f5cf8b2,
e26e1d3e5bcd6750592d548edf6de732826e3084,
4a685bfb32ac7e66e84b6271e55ca50b5fc88856,
e512276fdd4e1f83f152e00185ff4e523c4878f6,
e7e3f846dbdd0b9af658a440791b7e08f9a15b40,
48b894311ccde75318ccfa4da294a38ce453b203,
b9aceae9a5f826ee285758ff2545e25426b1080c,
c56b87b1fd1614f0c9114575ced3a01baca5d211,
5002dd03f52bece08ea9ea2f7c87ed0f36f18a99,
2357a43f121283efbf66ed1b4f5db8931bd7e234,
bcde4b1c0cb4787989a2c36a3d9c354aee8a27e9,
659a67b1396e00d21ae1a4571b570e91aec17a78,
38961f3330fa87ddf8aa7449f6773fae87204d3e,
6a98e173f4bf325b21cf141a85c78a588f63c1a2,
11178b4dae8e247dfbfef08046a1bacc01fe13a6,
dea8be728aafb60775055640a41eeb936e568a0e,
8f8e2e766d596d84b459245987ea5c81cd72bf64,
24757424b70b3e7bd889e94e8d1acf313ba70fec,
9ff4095ba6e3d61cad3303db5bfb86452258a6d4,
45e84ff292c1e46c265a3f739731a0ef5c4c0bf7,
e9eefad1be13f56589dff6400631679e2ec01bab,
c5a50b89add65abee3436b4034bdc28094db2385,
9a897ccc3309dc50dff9517faf790125663a2d9d,
bbc6926a7a076f629e12bc143c9897ba89bbade0,
ad87a0df0f3cd471cc2275fa0b7d3a56e19cdc4b,
1ef3506037200cee3a0795cc9a0fddd5a2d17af9,
2863100b736f01b77f7347d17536da6f151b4583,
eb289473a5811c802ba1986889a3e8a1791e8582,
fdad137c26eb21aa2b89d145f56bc47e0d50a95b,
08a3b65e08b889ca18b93c783ee9025e52eb70e4,
fac21320bd0f3eba179eab7aeb03f63c03c1c9fb,
d3631922b0625da855f363334180613ccb536bf8,
00109b63d4b8a48f8073b5f7b1a4eea4edf68f76,
d4f45752f03c782bd209410b485dd36b0ae56888,
f6c270ebc1b7c60e6c4b15cd089668f76cdd4b87,
a695330f2435648ae4c08aa361e2577bb9540d5c,
01a223db42088ffc38cdf995658d448f6c45bc20,
f9f14841fafdaa0118d17751ace09b328965c7ce,
843450fff004ffe4f5664c3e149a53a01cb64f3b,
c70472436bb7da5858b8114077dad417863b457b,
cb1d934fa6220095975a98e361c20c8cbdb8d908,
35f22901f43ccc20f401012a50d99e91b7678579,
57156d86eb5ca6d2221ab0d8762f5b0ef7cdbb82,
540443a95fe237b2d47c1023869a573126994de1,
fb15a8285f9996dbe848a396d2f24074a6ed48b5,
2d439848ec3147a3b9956802d69c03e7d0f10ac6,
29af6e13b6bd8bda18b6404d4d46a290b15fee90,
aa511253cbdfae872820ae96ad98affba5afa3c2,
24adef39ab90e71b021d5307574f9dd8126cced0,
0527ceb49f9c37d9b089add12d997a3994c17e6d,
20eec0dbc4e1f2959765fe9f70e92d87f685d333,
363e8885bc56b4017fda971ca343358111fbfda6,
2bc7b1b164681217bf496f9e6d638d32ca4bab6f,
3e7d809c5716aa6a9fdb80539d326c0ff513d5cf,
ee5ad885f3915cc854073cf4a5717597f73dee94,
adc4aeb62d9c133fd596967305141344bbfd5441,
92b53b0df6215b0844985fb000072d0cca168f08,
7a4405adc343c741a5887c5c229c9f3c3861b550,
4ca63d754e263e6992ad7dae7bfc8ce4de43befe,
4995974b32f5cfe296ba387c8d414004446c3777,
454613c6b167b6c959ec4a0867f863588c4c8ef9,
4ded36ecda9b42c390704c0836da57ab87f68db4,
6d7965fa3dc0a5ad37bb91a09a58547356b1c11f,
03840d1e179d3ac0f2625169be203d30653f60d1,
1c55e2489f716d95a6768e953645ecdcf5a00404,
0bb8d0d380f13da9cb96bf44f75d4c99f924973a,
e5606668107d8dad2aa2ba43cdfb3b3db63912a8,
29067ed6209a66475ec404f5f7f686a38feb4143,
f593f467413bbdd5ccd4d999def31365627f5e4e,
f803aa0210b14e923e83481915e3cd27de4a9b09,
76b0cdd5d882d54c305d7cdf645ab768ea9a4fa6,
61c05755ab889c92b0aa3a3025b59314a3cadeda,
c94537aed3758a79a9c9bf888ee0a6f2a4648630,
226664055d85c004ae013bb4fe86857f6eccb7d8,
fe16714ee932606058a6ae674ac19c9a6eec41d1,
f1a7b0c02bcde8d205e9c364f0991149b459f42a,
a8a1691bcff84efefa94192a644a5b005cf4ae92,
4af0061baabe1bcc03a9a6eea0028c12a6bd2e88,
c42b415279eefcda6d03a42a49f9240bc55e8228,
814add6b1370e9f01bc211cc795c771f462d3bb0,
9eafb65aca719af60f709dc1afcd9d56897057f2,
38d94c3b3dec68ba6ce2abb05416d2976499a989,
139aa1737beb762990d8eb5ab960bc2ede9b5261,
365d6958f1ca9e2bdab59eddfb972f137fa8b8a8,
e7be2e9cdc060c9a41c2afe8ea76ab7fbf948de1,
beaad5f4bc669b6099c7e6c21f73be4a542023fe,
37545e6ef5863947b63333f9fe95f405802731cd,
c1aea83765b5971510cc44da32334f977fbd4dee,
972bd0bb3d0bc2f56511dcc3475da90b4a21c235,
07238d39aa2427550d1ba497933feeb7a2e80fce,
4d380600bbfff362150a8706ebe9e6c0ce890a6b,
99d18779ab58db596f65e5b2eec1a7eb341b3313,
817c8d6abd90d43772a9f6fbed5089c668378451,
b0d2fcaa42c28762ff5af0cde787f6e4016b4cb6,
16209514c210fd71a4397745f86d5b0d726941e3,
15d737ba9f4fbc79b2220d87f9184272370a6ba3,
6b4ebea645f7ffb90f4a79d18b07c93d7e6a99d7,
797c608c54896fdc6a58dd4dbc9409e7ffc9e449,
7a27ab1f99e62b9ca61ae0c7a48968b131446b59,
3f6320767bf296d31eb8155e04da0a0a6592c29f,
14a063a004c7dfcf3586528881cfbe310e1f936a,
40f5b592efe50b588997fe3e3b3ccbf9967fb922,
c410e11fffb2f01b816223100c2773fb09791d8a,
060af118ae3a41a7df7cc136a8c2d1685f524cca,
5291c56199144d1c57a8072f8e632ac2cea55941,
b2d5f1460c979c15426221254118d1f163faef0c,
ff0764eab63a4dbf5378e55e22b8f4ee5e16f33e,
a645d499630243c7caca815a026f411f89b24bf5,
b5d2127be49c65f9d3fd5e763fc70838a7698fff,
ccb47943ea2d41b0ae1b9417cbae2ea7b39b30e9,
60dd30073ee0ff2b7662657975f67a0cd90e8703,
03d97598d8bd20f31856016615c881d1c06b4acb,
7655e03324b5b046339e92b1dd1c12bb775d0b48,
57aaa73da3fdbfe5ccec2375f9dc889caa9484c0,
2f2e69a6b443c55111deeb32f8068ab26324f2e0,
82a8c06850ed3b721646aaabe7fd81813fbd42c5,
3b98df2f1c83a93b3dd4d6641d8a43c84cdae335,
650a8011b2dc4c36320408e863b058ac49257c11,
dcdcbeae99092b53d54852415a1c9cc245db33fb,
6bbc525380963c8d210c135820ee321c5785725b,
6c2df6ed499c637bc3a4829c72ee6c5f58e33e2c,
a3e5e320a801b636a8e1c8243668920b50fe2f8e,
d91d7419ae1e6e3a74464f92155e6d4a90bcd10b,
94aa9913b03e192abe7627999897263542f60572,
7f02d20b137bf2bb330509372212eab9d9dc04fe,
061266109b95ea33da76d23e6994c9d001108362,
d14cbbac8aeb4815917d90305476e9c826327fa0,
4c25704f06b46a044ac2d7db1e235198be99d641,
8da400d1769fae375fc5ff373e566d18598ac378,
64cfb8df92d33ece21593037d2a22225ed183a28,
67f650040872fe9dd6d2cb46a6f6e737cd5c044a,
bfce1bec6f00c9f52a4680a083e2a3f5e4faef58,
23fd104c6b8d11424a05a941c98143866ba9d7a8,
340f3505108911feff2deb911387bee1c06bcb74,
0902662d418fa3fe6ac256831faecdf4754589d1,
f6052fe388c89c7e8681f5a134eb96c104cfce24,
fd665bcd0bfe98572e7e2fbaa929fe176b92b1e6,
07550431e7b0628bdda0ac26f0fd8191fdf282c2,
1a5abb1036cb671a2e6874e13cda6c11c4720f51,
d5ffa10709479371492b8df7cf19829d52fc8d6b,
a3d2ef2a3bc1052cd0c09d6af415db20ce30f11c,
8e42676d6a2d7db7b8912409f63a72e92cd7e151,
bde0a900ce33df5b95a60c2b11b58501cc0d6166,
38cb05a1a00bb22f6de116111729b36bf9150321,
41521dd64ecd21493aaacff361da5e0aaf6ad084,
d322a949e6229ff3aed0da93d4b4eaf04aa5b381,
daeecd7d81f0b44731e3aa250d02cbbee13c4741,
5abbe0318e9cb2999bf64069d0e3e783c4e54edb,
b9e44c0f3b82851d4324b638adc4308830f97d78,
4b83aa3b88bd4d067004e5dd00630427a1f9d5e9,
1e08237899f971fc5722c552202039e97590194a,
ba5bf9a9b42e1126ce4b0ceb75bde3603f4f48bb,
d95f9654599970357f35dafe23b61e9ff0106341,
b9709a15e3e2e05a84348bd9480f80c820ca1cfc,
7404f4956f2b4fdfab666671dc16ab46e7927b30,
05a55cc2d1bd697b27eb6651cc58720ca22655b3,
0dbf86570ff29ad66e4ea280ba7f0808bb917254,
fd7a7a61b33317e0fcd0865cb389e66eafa2698f,
37dee5af2dcafa81cded49425fcd8ef1c13ce311,
b66f064ec8423e4da97c729a46c9e81a7166444f,
1fc9869e95e1e9521a9e5a5cca95c38db1fd99b7,
8d7a6ac85505dcecdf0417e18caf845d6c8fb3c0,
b8474df3699df2f7e695fd9a43c108782d5fb61b,
321696b492add84aa7126acf685dded040ebc647,
ca4a7e3bef27c7fb56cf8f834478ca01cb47207d,
4f295098c0757f4580264c852ae0798a66d6a379,
fb664b3667a1a0011465b05e0a0cba59f808f7a5,
c1e3b0894563538ba5976406957096310ac13dca,
6c32beece5bc595c98c4be3490f0d43226e39a72,
e2131575921577743df8d1181b9411ddd90649b8,
8e1d9955ff28c482b448742bdc90ed1ceeb278b9,
b4aa02da3282198f21e9b32f82be2ff0d35e69fd,
434c93fb6c6edd4dacdd37be9d02fef05be3e4be,
0927315e7abdc7c8c0c7da5b3a1761cda5707192,
fff24ce1b23818cf31d70e4451b254e3f8055935,
cb19d372a8547db0dc86f4305d06fe609858d0e4,
7d6de1769c621d394569ce9fa367a4cbb4950cb0,
2c8a6f63d4173657bf3327ca6c8ec8128f8fe0a8,
8eaa5ebc7bfaac8c1f11ed9c6e2a68ec8e941af5,
5edd077a0e78e62fa132123c2148f7b6937d2492,
e5109362e58d9b9d0b40cf32eb48cc59cf0885bb,
5e245ef9a17c84ab424cd503e5eba0a63654629b,
25314d92f16caf47d2c16eb31ecf1963863dcb6d,
38b313eb60bdd00599432df5bcb40998edd723a3,
9288d41671e6c0cecaba4d2a9c885b7900641354,
08b6e6e88afcf33c2118dbb42e041c07d0e8ce1a,
effdcd6eeded94ebac9bf835d799988f3c671c0e,
257f2969866134aca1d70ba6d7d8cf00b19acd53,
7c37f3266363c2f63a7d9f469976534b742961ab,
3189a803293832a432c9d5e6a117cf62ce26e7c7,
0c8427e34904943334ad82242677aa7b3f93ec99,
a40eff5fe1a78ba351b22330a485008e01d8e145,
861b5ac30d5811da4d18057e401db54b8394d687,
f4f044613c314dde0fbe626dc64124adc551d4f6,
32d2675a05f52c9769fe5ebc9c4efa3bed5f34e5,
fc97202b9c9f837b506bf80552d09339d9ced1e1,
f636b6d35b09f92c778138ee348ee0830e0ceaa5,
32460db0e7c9c0f7f184933141d7241e6ad99aef,
23c0d2574d0e2cfed09453e7a40a3552b8a457bb,
668d30478c578322fa8ac7a226880af90ee6e756,
47250af818e49822055f95b358a983852b54499e,
f52df1343dfc51cec7a83d14cdea053aeae9bd9b,
54528d23f320e2c93536feca81a45d7c0429072d,
3555997f04b66c757f6933117badbb998617751c,
9311875af46a083a304b9b0b9deabdd496c447f0,
b1cbb3eda16976a21c02c0d4c1586cddb41bb42e,
cbaea458856e37bc9c9c68634b6367b359a8c75b,
46f59f5e7d394461d36b09415a91f6b5e51d0507,
bc409445ccd2d6ccc2af013349735f977d181b9c,
38cb3f36cc577abafe8fcba7aaafe19a92af2b15,
526f1ff72128b4755a175b8f5cef11b1f86cf166,
6ab2931b8fc82012d8875c4dd4343e89712e3e5c,
1e8a11d73d1f6ced2b477009cc8bb3640e1d771e,
cdc883c49fe05bde9aaba02b52f296713f4c9296,
a4b1a511c029ea4c107c4bd4a9a2cc6259b050b2,
32c30d4bf809ab534e437c4d39b24dea1941de45,
7a47dad833f0c8b86bda225bb76d8db32e67add5,
f191371234ce7d876eb3f048faafda04f11a6fd8,
99a1989b34d2c7e0243c1cbc12b478f86a27608b,
d7ac7a7ec257460349b942406ef8804391903e5b,
47c70cbaf7ad27986d462ab299373efbae83ffa3,
75bb17d00b31325c63ff4116a9ff7c1e6e30f5d4,
f1f631f190f184997f47f0ebb16fe4e2b5e611b0,
42b16f34a37efca658900dc68bab8703ed17d75a,
b2cb0d928c16ae18bd26288d835a966d712e8135,
784949d0a6cf45448815f14accca0e49b7721209,
26e8c05633bf6d95214503617ab41d66cc1eeb16,
2838543af4170cfb1bdc1af18746e45455626f35,
478535dd78b81cd4636338280752fe8bce45f5d2,
7f4c45997ce65db7d609a6a5e874b422c3c796a2,
874d7514dd5d81e066129634c32547952f822a98,
34f2c4fc83a45e867f4b076bca185b89cd3fad21,
646bd78bd02987f8bafa10a9c5a6791622da5304,
45625760edd3178fba071c82efe2e12c3702fde0,
a19b66803a7e5001e297fbb15d7b1c32f8c44ddf,
0e15cfb2766ae7ad15f1945fcb77e7620d6e0b51,
fef5c9f14888235ec5244fd3f58f49864e9dcdb0,
91f45a0415789be2f7e5b9bed99ee34f3783e85b,
7323492503d543e61223bbbd67def20d20c80e93,
e0ed4d6501c4283df3103552a1fffc6c36862d4a,
05cee6af2a8f98f4445d9ac2d139f7729a17ea03,
83df78740694b8a92d5eba5e9240d44fbfb63754,
7c5a8611f6447f966c03fee6c4bb4d29790ea2cd,
8a568cd6c8aa90a42dbc32d6e8c1d304f7eb502f,
ce77bb16e1475bf98315e6aab70e74c56da4f00d,
81d0054a2068617d4af1fe3a6f4a6937e90d58f8,
33d18cf554cfefd7c7b3893bd1e3aa65d8dcd00d,
f5e7f9b8fcb9fa8f9b7ef8dca55976d777df26c3,
c0e61c78290a73ae7b3c99dea339581e5233919e,
6f3465e1f8a9c4a53eb0320e72bfd1ecc4a6e3e5,
ab875368e7ebc3f5b9d3fc84e6812973ba90e3fc,
9343a8f37c9644e3911cbc7cf00eccad9f7a39f9,
28aabfd27288735996630b4d28a4ceb486d67958,
5fa72483ea2f2c6481009eb010c48ce374413370,
5f7d0c3be8d9db9b8555f8c2b4cc1e9d20538641,
c188a60d64c74fa9d25b2fdc0eaa24113e9c278f,
39388918f3091e6166d9a0aa05222ccadcaafae0,
bd9f0bdfb225ca67baf0b280bdbb6d9edececa76,
d0ea482a477e1285c5f9a817f3245b127561d142,
704ec9d6f755932c4b0037e25d57d4cef19ff804,
f617003688fa2a0fdff870b80812082e724700a4,
6fadcfbd340033aafdc63ac78d9e08e1d21cd1b3,
e635e3a307f849052304a037b50056df1e0f2b99,
89a32b1b0d67233bb395afba69a48242e4e9fb5e,
fbe24cb2190b097d4c3dcf39eef63b3da078b0f3,
c976bbf5df3e9a16dd91a4d78b84e2467db812dc,
3829323d78ccd8ba64bcabfbb4ece1210e5efa22,
4485e5d75a404eb6f7d9f536087c70847562cc09,
35d2a4eef837d26926d18c60e26a46a9f0dbcd0d,
c2973f0ae46106ff5f7673100341d6d73e766454,
dea9270c1479c9a06c40b99311190e9a2333655f,
e98d1534422208a09d57158399ba09981c1e94b2,
a86b022f3d6adb1eed3e398ef3993c4bd3e4f580,
9101295d5e4f84236be693c92cdd3ef3d0152bc4,
e45a0e2c6c8732a23da04f0b837a6cec72bb1adc,
1694ed421bab8e381561b7190b4c8b067b03f517,
4df64135349508b39c60e622f636bf65e5b09048,
4642bcf23bf2e62d81c1a20f41249e0e3521786d,
9cde59ce4d52d6aaf71913f2cc897095211cd297,
5c283df62a16fee50dcadbaa8281ac64b3ea4bc6,
c0ce01512e6ce90c3babd9b51b287e096ff4feed,
732c4d9cc85fa5cb1aadf6fddcae47054234caea,
10993713ba60eb442a78ec6a49f51ddb3c2d6e21,
ffeae096d1ca0c5e01d648145a5261073cdaf7c0,
a69ab3c0aa971efcaa117dbd1241ea393edbe484,
f6d589addf1c58e2e1ff0e7e103f3f40c066a363,
66415c83282d13a1d1a6c8488dd6c6440d608935,
75a12e0381ed7a85ca18034dd22381ae657872c0,
76e3dd92a4041804bcacf74a014e47062bc43efe,
c79ce49ed12e2b9f415b83252450b9a4c0fb2fb9,
9f0d89799a8a1e4cd1022dd7c43333924c36a648,
9bdb5255af36de197b3f526340aa723bddffd55c,
8402f53eb4dc96413137ddfe741193ce380f2dc4,
3f5ce4528ffc2e1f19c80dad26e5766cd082bd45,
183cae4ff7f4858110b39d7cdfe9b947ad8ce28a,
f342ae94974b7e9ac1c95210c5a8eecbdfa60160,
4bad94de6a15eb5e3396c032b803bef6ace1a5e5,
4c3aa932fc76566e998e0bddb17a3589977d33b3,
43ccaed6b178430f1283db54f2484a4df8f8249a,
643c374b77a10203d1e8c33fbb271e52877b937c,
d451ef9f91cb07aa819084ea445a3405f5999a4e,
bebff8b6d69a15a646e6801bc58457e72a794a5c,
1d9bcf4eb2e2f00614b7373985b85e7c0d7213fd,
6214b81de2ad6b969a55c65579ffd0be26c66733,
e44a3c93998cc4fd7f38193f39f6f61baa74f87e,
7be8465e5301524ad377d730f88088a006fb068c,
5fbf2b8144a7759914fb6cb755fe3ec6d01dad88,
5b2db904cf51f4c7745cb08951a7254efd31bc60,
6194b1d9bbdd5522997bfb2ffcef0642e40dfc87,
c7958201f7c1aea45e8077695685c062edf03dd6,
c6d3e0a3de7dfffcf510a5483e626fb7619a0149,
0e51bcb5fe086549e71416c6dcd1e59e779afef7,
3f92fb78856710275672850b0bd21d4643a21cf0,
89cb84565aea46b92954735e4c62602370d2dbdb,
16eb2b18d1b77011113072a0cd829d47173bff7f,
5856eaab620be51ee9337a9f23ffe2a28388edb7,
101a4c2d82b61b667f85cb747da79f052b855973,
68815e06c8dd87bcdd707f3b6572ff01efbb60ed,
a2d3a4ec25acdfb643d653b847233d92b23d8df1,
4ad1b1bc90eeb2a96cfd3893ba763ba2a58bda6a,
e0e0d42f05cb780060c1499cb0fac334805c9ae0,
26083e502a4c22ae3f0c5985a5d57c6db6dd8c6f,
c6054fba784346005e199315d11ba1707b5a1379,
bb04e9254ee1b7702c8002f075d49a326f7ca57f,
9150b02e86578d8bb93e37a63c0ab61707e8a7b7,
2177de63e946f3de28437f71cdcf1a6b407f84b9,
d65dbe296a6284abdbb735c0841e1088e5cb3713,
1262240711ffdb654d4ef8d077e2ebc0c08a4c3f,
5fc73d6556360bcf543eee93304d21a82cda43cb,
d6cb615e82c991810b12095b795377e594e1ebe3,
a2af2edcc8f3f52983ef54122983fca8da8ea91a,
5a9a6d65d93b4fd52dbc72e8168ae8566e607abc,
0a0efd3ba4849f9d8314e20dd9eea80de8f6b3db,
c4b6b56438427d56ff6d454254ec698d6fa1ead0,
6b0e299a1f9a82e82a5a4e56cd335991f950b07f,
4f889cc6451b996ae5a43cedad96de36016d46f0,
8ef41a902013cf78ead2ec501f1befae379ad934,
71efaaf4585457cc188c0ce505e8e0974d00449b,
5ad20cacaa0b2ae3d5b8d703bb52f5fd9745cb0e,
e5d78c3b3912a67b060460373144367bd96292d6,
5ad43011e4b3ad7a367ace4c60ffbedf3a1bd16c,
4065ffadb801325ce71fcb5b8f39d56d43d40bcc,
1313a33406e3924fc72b28930fe2ece1448a3f2e,
e1d4d1c8483c8cf5ef8027998f685ff09695f30a,
59bae7025d67f39ed4c4f710b650b1a347ae1ba9,
0037cd355b98782dce2169d593d35bbf7d9680b0,
72fee2275e77b17e24afadaabe1ba85412de22bf,
505f4e6a69e20e3f1db2c77baf2ae943b049ea5a,
9ae52e46e9451e03dfeb3935897ad2d4fa99ab0a,
835ae1b18fc4e77d908bee18e17a481b3dba7436,
9e8816131d6003423f17b3519712bd175469be8e,
00480b4d1f4c3b9116ff2bd601095d290175c207,
8daf99771b0f71c26ffc31dc8b562a92efbc824c,
23df2d723e8739e97ca5caae59244bd6525946db,
fcd57ad0e1e97b4b601da1fc2e44cfe218ab51d3,
abd77668df8459fd0b3fea84b3cfe45373c5d31f,
bcf5e1238c9cb4aa9246b3fcb0da4f9b45dd8093,
0871cd46277653a1065d44b576fa3f233830ba81,
f83f483cd99d660379fac9ccf58961387cdb7ecf,
164fbc4331fdfc961b7c98167e8311a86536acc8,
75b9d1ff5e9ba7d159cdd8aff32caa91e8f03fb2,
ba8c09220b17ffa87fd19580255ba6a8d9906268,
f12f0fbc6ff804af08b44f42da937b61af367c95,
c5f24418f4148f858c177ebfcca51c206ed3014a,
1134c709f64a0d15664713f375e5d0d3850c4522,
f1697b9857bb08b7c067bbb44b5ef77550f95143,
d4bc1762d02394c9fd5950e6cb48b6cf7f1f2933,
2d41ed03a4b9ae5e9ab0625ac9f87888190929af,
8cb77c493c3ac30b9bdeff1195e28df0b1ba7c52,
39bf5e363e79d0184b5897d65197202391967bae,
0fb742ac8ee29144e249dee264c499baf01455e5,
0d305a34f25c14f9a53ef1def8bd7c37c552ea59,
24e27dd9415456338510d2cf18ac9a6c5428e677,
b0bb2136b5f9e52d98c17c0ef22cf8cb40b1a33f,
8f09dcb07b4f036d35deb357bdda132b04764c25,
1e10cdcd8044a48c630d739baadc0aafeb802732,
29c68c6a466bb59b9e5593d602aa0d47cdbabe31,
34a7900365d3a28184541c2cc8b620767b21d126,
e5d58b03c08a43756abaeafccd8fd8518e9a50aa,
9028caaa780c5dfaf9d7d576f4472415fef6eca9,
9949467d404642d8b135b798d905d4d5b887c678,
070aa552d2fa78f39b41d54f3bf56a7c231f6209,
a559b4ec04220d70b9ab9234c8d604a0866cab3e,
de127a4cdab2c5979625d8dd52e4420a2157e513,
75df423c74d83b08a4a450dda44be7ce84855411,
b618409536d0f8dcdc15c6c3868a92a94d435739,
7116344344dd327976b4a8cbb23b4212795f0a66,
aaefe1c54b0767ca43744a4e55d03e34a1027bb8,
575992a00e599b298e6872908a826f21b2906ab1,
1a646b73f3cab775a975b594f8d58a3f6fe3eaef,
fe1407d44378e1ccabb0864f8284feab52e72f4a,
7382540be7ca838d394a98f6c6fa0416db64a41c,
5b89342b1211aa70d3635e73cf264a74e1c7015e,
02d9aa3e093ad2c4c9862e985399882564feb867,
daf2f63cf08f994f66c1d808ebb540c755c54d85,
3db9882858a7ca6cef39fc531962d0fcf8588e22,
6608902901d942bb9482ebaf2337673c5af4a359,
d837d42e108bd396d7daeb80feffb4cc1b597584,
a5e961fd133c7a12f47175889acc35cc799d8d16,
3e03034f61bd584c335032337436abdb5e9360a2,
0df59acbd263c4649f1d9164605ed091028266d2,
c103fc73536ccbf64cf1fefb126e011cba5f1caa,
068cded86fff33cd02107e31e2845eb12dd1a928,
cfea08cf757a9be89bd0f242cf9966edf987621d,
59d0f5c593239089d9c319d2b508e61f6145fdee,
4e760fa55a578b805b0e0c9fe07a4410974809ba,
31abbec2bb8061885e4b07e6af0d1881b8cbf188,
c23ce0eabf0d282791c157d82b28b449808fb3d3,
6b04c21b0bdb7e1a6fd731fef8766e3b0a20edaa,
318122dad26dc21eb023132f0a4fe7ca9f063759,
96d1c38d7be540dd081e08d6b27b2758b0d3f9e4,
c99cec29b19547b0761077a3cabf21dbec5034c1,
634408bef32fa212d68c887b88b4b4d8c458acdd,
2e1461cf817a5cef5bd08aae7adbc11f13b41781,
dead2818e0c6ccba99ee5d5c0ab2cf18d559ab60,
de439f49ba594ad526ce4eca34d47adb55778118,
e77aca05a19ec626241ad30afaa2bb86d287947f,
250f88cb8f798c0d34d556f0e8c5efcce5e2c49e,
441d9c587ccc0c6cfc1a7c7038c9f636141fa720,
56db54b553249bd3643118da6a1d246302a37a7a,
63706fa87a2342867c78076db9d328130cd53f89,
4429a8a4f46d0ab626e1f807000cca722a66b24e,
88feb904ace9068beeac2d392f0a91562fa8b81d,
fa0af91a9adaf6a6fcb748e84c4eaee129f78ae3,
cbedaef2ee4eb8d5a50a212517bb3c6ba4b5fc5c,
14f088cdec041dc1ea7926bd5f1a0598839e167f,
a9d02ca2bdd62170b1c64032d16c90e26d9f8789,
d40ac56ac739c4a8f5598aa86a67d256ee86e4a2,
47643a0de3967664746c6ae9f13eece33f98d8b8,
3db7a8399d2f06afac5d97401f15c8c44f94510e,
ff7066f6371f799141774181ae20b58d49584d36,
548994df18cc986d7cb7f0b4e4569ff662b16bc8,
119e29dfef7c230a7c8ae6f939ddfa20b1831a86,
f0fbbe04d1b5ce9e576f15b2dae43298a0c52df9,
81784e803ab45b3ff2ef0f6edd7bb9792c04e2a1,
a8735d14fe6a85e8a526bcf7ae20555c93d5abe0,
b3d97be0e0c90fe94460bac9a62e5750d0dbd579,
637390755ce791370c40fce0ef8660c4dd22d793,
44de06261f5d18e54c2002279212fbb2e34a8e65,
697bdce70289659d6f37b6e255fd9601ad6c7aa8,
e201cd1d5c6b18091c0bf504ba5a07c30782ece2,
3a555d330e47ed742a578c38a5e5163585cc0ec5,
b45cf27d8cd66492f133672f36ac42d4995c4671,
24fb887e43989cd097afe715c69c68207107f632,
588ccb31dde4129663d3fe0e37fc01725d443f31,
d7dcf3eace0da02fe95f9e60c8ef869d3f4ee14f,
356f1665998a09071d76fe65a03a59820b6f00b9,
0d8be655ae544e097552b9b8e7b44bf447ffb4bc,
8c8cc095e6158dacb2433a9c503479e9e2a91367,
258acf3332ab7782a06909d9a9b25b01ad445c26,
b483e9ab04053de0fd397b18cb8af5a45bc4ca3b,
436c4d20028e24fb1193e2af1c506629e41f7283,
ebb24d898950dff0690a411841dd6ca1aa7ddd5b,
69c06579c707aea0467b4624c17071985eb384f8,
1ae316791d9b7192bb27f6aacaf54be30ab8e474,
c4733d74c6b9bf2126a3234a0b8f9a346c367df8,
aa91ab482a11ccc3cb168b2b3d83b30ea86dd2c8,
f0687c0a3901afec1b4ce65792f9f02dece04bdc,
4e248141775a6c8e6a592c86d581c4dae7639d27,
0ca916c585cf3b870fffbb719fabd7e3e85699e4,
899e12e42c475d13112d86cb7a1b9ff4337b3788,
e60c803343a6eb670507260d61febfa572ad3a14,
bcb06219b445f60c19dead9823bc73b0e0f4c9d5,
64a6e9101b9fee10ab0bcd3c9739c12fa72e0013,
a0a0ff932e0e916fbd65e3fcf338eb955a950326,
53f5cc7189299c41cd0b9c336a8e566e07a26542,
60a2090d91d59f6dadf480124b53c5068cd74d16,
d4f1f26c7b34e6665d81f03e9ef615bd1cf437b5,
44aa8355830b892f27c34c70343279e06cedc41c,
28af14402c0e852b04a655c2717fdc1f06533443,
5001781d6294ec2dada99b2dd84f4a8ea63b946e,
7482fcaa7850898c3d9504aa0724fac6864c553c,
c87c3cf1cd09f025781198ed9602c7bb5f640b86,
f494c67f31aad269dc51b303f3cb6665f787d336,
8369a9ddfa83461484539a627f583082988f67af,
6cb161855ec21209fc0514895b6dc98c0a903cd6,
77d121596864d46a6d7a063e81b11722414581ba,
cc822dcbe05fc2c699c6b2a365c580c474363112,
26fe5aa18fcf8f5c762dffc89de9259d4ed06cc2,
4b7ec8771af76c6db63035f9698025ec0414350b,
b3d63936b4ab928d459647214882360bc0ff963f,
ef0592b9287669df23f6562c2a88172819545ef7,
1ebde656422d6f96333ff3ffb032041a8af4e992,
d3d742bbaf287d331486aafe7ad8200d9bbf0fe1,
a2bc0bab15f379f9a8d173fe4e5a7afb60eddba2,
e3d11688d5e6fc8c3ffbfe324788166f54cdfa87,
f58efd53deef835e098d0640a3961c2071b2ea48,
55178885cc42facfcc564dd8d20f68fcb414e584,
0f3e4ddb9acc407cea11a9eb2adafb6cb2dafd0d,
fe135b8a2d124019ff31ebc4507c16cfaa8b26d0,
d4e5ea4a502930a1b4b088aa087c412b7207f38c,
1842a32213539dce735fedaa5ec890e93be9a5ca,
f7518326857bf6c25b8d224221c3d772e9c8dc48,
e0bb2259810672258381865447df282a8a02c3f0,
bcddf8e3547361a67bc1c40300b4bd52ae052a91,
546b28c4e37079c3df6eed2d6b77ea934c623065,
d99bcf3226450db224826ab5c4faa238f248712a,
fdf75369719e6c9787581ae0143266208cf663e3,
586d9ffbb6fa3f7b053e95abe620c2c33f972ed1,
6c6bc4a3ca7cc59aacd1ef1f26cc9c2f7ed2463a,
f0bf713d2ed7a007a16bd071522bd2f61696c206,
909ee5fd2cd7767e05c67743d218716c2cd4dd65,
7cc0cb1b2e5c4d1ef852277722b71bfc81468ea0,
4cc5e6b2b7f7e522cfd5ae67318bcdbd2505ec14,
cd3bbd577049d2b49c56bfd76ddb093868ae70ef,
cc88c8f470d39b4c7ec84c1b4ebb401b1606ed39,
58858148a65ef37e08d3f37245c4c3eb772dad22,
f633064150cef925c044973d5482ebf1d24d94e1,
5d80a4696a8f9c6ad54633ca4f5b3057fd4832d8,
2db67b80625319ef27a296aa21314fa550a98a6c,
7a2b1f575fcf3f3834110b1ab4d48029ee564cb4,
0b47c2ba9e3403e77f211b1b8df13329d6036222,
fd5e75da1a126382a1dae83d5917c2dba6ae1775,
44e4b7e3b4a0fe2bb806782016482ec119c6679e,
82e883e708d2d7c63acf85e2fcc30e3cf1bf1d34,
47db4c75a7003128e7cdd6b9afe7a3b92ca9477e,
1b91481a568e0f571229a61a720300f9a2788230,
db7ccfd0fdf402b087d7fc5e5d02dff8a88ce21c,
c562085161e9bb62d84434365b4437323bf6c4e1,
8c97b287a5dece044e5ff84879fc63e3c307f4dd,
36edd7999dbbd570dae6d4ac24439a53edeca287,
242bb2bcb47b303545fdc435842ea6dd1fc0ac1e,
acbec227d66f1efe7404ea84ade47a7364655e70,
f1527f8e7d9d5d24195dfb5caef6a16b1f8bedac,
7057301b5869e1f07af6da14743733b5e3823a3a,
c6bdbb430a36ebf5b03c9fcd25ff2062b554240f,
57e3223a62b0f5d9ba0d83d636f122bd63524cb3,
020bc534c4baa86f9f0a04d88d7a7d3a7fa84d93,
e999158954507c67d40e36b1489a309ed8e07484,
8257234d8cdf83b7489d68219ffc15b1defda016,
e6bfdd31cf3b65edda7578e1c3023889cb83bb2f,
b90f79f1b93a6d0330e4179c6f9f69b65d65bda7,
da48cc3467db925615fd7e8e957f97a3595ac45d,
1a5e60ae23ec473066c3331f23758cbd2f9e018d,
30175741abb3eee9301bad22ccaf9d52d343cdde,
fa6b1ce0cd50a7accf0455652b77e10f55c3fca3,
3eb827c0671995e64dc94eb2f2ccf9dadb5f7fc4,
58a3076cb16a3b814a6d022a6f518731f0f03275,
9fe0475203c036fa4a0bdffe1d8de9ea0a3556cc,
4daf59b65c379ceb5c2f3a37da30b64be150b7cb,
f261e77e7094c6e44cf4245e978dd9fce5c44b55,
ff395d0c5e66eb98cdaca18aae1ee4cafa1f5bf6,
51a09ac60625d5d1ca33cce6bb3af0c560f3f8be,
678f9eeebf33d639ea48b72611fe6654481debe3,
5ae220f90417bc291b46cd9d84bd67c6c2ef0638,
991b8b010ccea5bafa494d70295315136a42e441,
e0c6b2fee1e8a1238dcf0fb9bb0ab199b295c6ea,
81dc3b00bd33213411143b6d11c8b930feed4a53,
fec06894231e49846cc22f53f1c3ea8cbbbbbef3,
82d0d280078cb10ec043c544c9cd7e3d8dea6b02,
6d248ffb55b1efeb22a2462fcd5e856b972972a1,
94f0e111cb8ac1fabc90289259fb9063f2096ed1,
ec28433d6559cca9233ce12b5ce060d90adcc905,
d6893f26c63975d4ba5f197cc0c0a8d904536672,
25017dd48410d91016eb2d18bccebff17a7b5a05,
bbd2d530055cb3949248f1b2095e79f0af284fa0,
3366ea5e6b814930cfd36cdabccfeaee903f33ba,
cf9fed2277ca2c9ba291bd5dfec400a10d4a9df1,
ba71dc166924a395d0bf1153b5abb9a25abad71c,
94a345a987ddfacc3edde102b1112e371be92c66,
bb0f325da93a88e841b1a0739578f327292776d7,
f70c27ea9278766f59ebe3aa88b0f9c828561a2e,
f0da92dea98d8ad570b5a46f8a2ff5c1cb02c933,
b15dc894d7f355dc6621a07b086f0d15a4e12def,
aaa56037419f32f9bd0b5f3003135cb3b62864c5,
1eb20d787ac967a80342985bf352da15908c705d,
e746b152255731d2ea7d9f52b4bd65561d201f3c,
a2c2b9eccd5b60a585e8a65335b79354cc54e96a,
01e47b5b7ee9bdab6d6afe50aafad006269c24c7,
fd17fe09b68f1765481e9832972ba54314411d16,
2681bd7393306192fe3422d8ab1e0ddf17787233,
9ec5ee6419567819f36390c4fae808f3ed9090b3,
3423e01496763490b7ec8782765cbc72d60457b2,
adebb9215d4342fd569c60b59f28f66bf3e3948a,
6a51aab120a92931da7be1a5fb6de9966176ff70,
b8819250faeba0b91f1e0e0c1dec84f4bfb958b9,
0dc32102088a0dd1ca94d81327907801d963a158,
590630d85759215e4ae8d1c9de49fbbd94467cc8,
9030a7a1f1409923a6215849ce74288bff394660,
8a6b736a9f295aa5888e07b59965ccdaff86e76b,
1e9d9396a2ccc7a5d2feead4c126cef33ea53563,
ee0628b4ef12e04e9fe873160ab89f8b41ed791a,
1dae69b10c05336c49046bcab619c77f6e25d647,
316ab058a7855c96ad029d98fe398902ee27957b,
4d79ac8e09d4e1b08b0828aac931474554941b6e,
de0e0a8d5af32690c7eb333d0dd8917aaa679084,
05aa94c4844ff7ff9aeefea28bbfec4e92048f59,
15894e1706403fd023ee5856169a6731957a3d25,
3088de2e9e156d8934adc86d53c8e6d2364cef16,
61630b3cf52328099b27bea4bb6aee699ce47032,
22d382deed753a16f8b32ff3b626afc099e975e8,
a97e4843e6bf3519f5a833d18cc121774e9f90f2,
f7256a07d7a7ffdf64a5a39cc29fa4374ddc704e,
873bf867fd293268326d6e68d38c1d7aa31c847c,
43e855ab8c60a952c1f56038b396c82185836006,
4c6b5acf2408b32c7d6b27e4e7b6dd4561c54fa0,
530a5c5b72906c566d4c3e755274966cc3db3595,
ace2004ba53ce0f6262cd7243be7ed9f1a7eb33a,
66c7dde972b3a96554ef2f23f09eb41a2368b0e7,
51666fbf3ddda1935b3cb1e93a2bdb847219458b,
f5caaa696eaddc5a7707d344f03514ffd1c050c8,
c0e3b53a268d6843e1053bd54a53ad3a44c2c242,
6999f9a725b41ebf90b403bc38a6d46525416fe0,
c87e3854d117812bb958e5e7be2ef563a1829c98,
fcb8356574cdcc8c788696e3c046e97fc92d813e,
e5766265e501c49503e81a9f7ae780154a210eed,
54bca91de43f73c0a45ef6db31b7546e9c01eda7,
dc5cadb8abe9b3c25733ed332d5e25c6f23a5c07,
6371592ff2366a3eff6311a894a6600def3f2e17,
6319d727f99589ecb300002c6524b1a73c8418d2,
f47f891bfe361c071df0d2a677be90e715f1a181,
7dc612b78479e30a54de29aac69d59b7bc10c1ab,
2a24edac331169feffca899d9b2bc19146390bf8,
af75775ce6c4db98b84730bca7858aa708670af1,
6dd01db9d8a9c7b40ebbb6d7d501547f716d7954,
5cc7c9732e01ff940e349a540bea6cfcacaf599f,
7f39cb63b4cb381ac44fd07075b0b5d25fd2e52f,
046368bdd8be2ae93b8c2b45628f11f7f80e9763,
c027b2063c9f7cc96a1946bcbed72f192ae1540c,
1ce22a9d737547fefd5b05c4d5708863d44a5a30,
2bfe49409ed0bec601d6d1247c00961087213ab4,
9f0edeba2bb0e5e3859e72cd8edcebae80b3d055,
7d6b98e6659acaf771a499fb66f5248e70fb137b,
8dcea3fcbff21bd0ee31861bc04d84b8a59f62c2,
1bf93dcc221aa36b09fbb898dd171250d06fa6d2,
38b009fd892b66922b70d7f55fc065bc0cf0594e,
679107939fbb00eccb8e0a9a659bd1152dc7a26c,
135fee22e8ae694077cf6d2b1d4a858910e6a500,
0c6114b18ad5219e7bf0de120ade73eb25cfece0,
0b3561714ba84d1f2d896ef8831e8ef7eb9611f9,
cfeaae4b9c1ed39cd9588078f25f3b0168a2b0c0,
015779612f9669f4fae0f7e4d4022c255f314e02,
725eb6e55a92e4ff4313712db7c5acab11d233ab,
ecd201269e52d209c25c6b03aeadc09f7113ec40,
29e13f9c63abc5489408b5f89949e52269dbf8cd,
fd814f8f3104e4c8d9526e848f8df3ab0f0700c2,
f75a9b56c4aa87da84a1d5f0a2b943043e717058,
296a53a05a4c1dbec38b24b428ec358ee75f2d58,
5ca67fc1b70d7b3ab73935fa1883c4857d5606d7,
36a5a7d25062ededfa631b79130dd13e68a2f6f8,
d0b800b7b9741154575c0750ae0dae5f80dc7240,
aa9a6773efd2eebaf630b2d11002acaa4669ea5c,
0386c499ea762172205138a7753fd68e498d6d08,
b159b2d31fe996282b5e119f1919057398bbe3ca,
61dfe29764f949ce05a7f83f9ade89e024a4d6e4,
fa7625e6c3c52b8f7eff66bacfc0ddef3719630c,
21d7a7a18e525b7d73fd41ccd69bd3828f2b9b57,
046c36733f797911f5531653fe0278027f132f54,
812913a5a8ec47ee14f0095845a75e6a9fbc800c,
a637a8f8a58e9a76e5a28a161566891b6b66a28b,
9f49bb606c9660f84a747ac2c47494ffb364fd97,
40e71ef7eab55a4828af51684a7aec17e07f70cd,
5e45e6fc99595bf2f616288722b72a743b2cec4c,
a927578784a4530baf5c8f485491301bfd5dcf83,
743e583792f4ec42ed98804532838a4df16231ac,
edbcf78ae4885ab528b00b1411f211f5b7ecc386,
0f05296b41e3b9d6afa78356d08311aeb35df0a6,
864fe0b2cf31ada7338df6ee363e97fc88267005,
c9225c7f66aed151b4fdf6cab068c3d8bedf5295,
886668616c92e04e2255ebc06cc209136101ff3a,
5e597444ecf40b7c797500dab75296f50611379d,
87621115f0cd4e03f32f148629aa26da191fe0d1,
43605b5dd046a3e0cca44232856ed0a1775060a0,
d555cfd90c9cccb40cb6a690a928a948c1045518,
fcff8e6906700e9a516fcaecdfeab5bfa46ac58b,
3e72da22bc1ba4532926caf8c749f2f3f96c598b,
eb037bb8ce99e47450a3e73e104abaa8d4c09eca,
1024fd99b93176c0ccd8c7e1561b201fb8a78318,
dbcf9fff2d6dca913823bf73f427239d16ace05c,
a85074c0f344700464fdac7e31684c9af7d2f520,
ce99768a0178e10243d4c310d45e22170aa55bee,
9ecc00432c1c03c2ea4e9c8a96994f01d1af7901,
c5e8de6f87708d0054ca772bec07260d5cf01110,
0ba327287dd8eff9dddddd0fd8f8fd76ab5222eb,
629a0a08aa7ccf811c4d8564df6b208182a6e206,
d774781e18d2f088cb34c62b46eae3f357b60ae1,
109ea0b6cdffad42bc4ef27aad3913a89619b4c3,
27aecf1b8d63004238ea4d291fd4ec8fcfce613c,
54673bb04e9ae2aa6b54e3d1d77254fd7d72dfe1,
46e6a2d804de751c5e659b98da57613cd4204d87,
13b2567b837bd06ee6fb436d0fbfcd0f646f703b,
86ada75804b505134ce82a80f070c3538a16ec48,
4d1efd15b7791ca417e602c02094ce63ce5552bb,
9b0317cf14d14c99a4b1ab17fc6aa37b9230296f,
db1ae9adb5b4a7b2fa79a45e7976a43b78332176,
c3d2c1edb49bb887d80199faec5969ffb75a31c6,
e43a5e922dc67c15491a9dbff140ed0ca75032c4,
d49b57776b0d3a7fec938c854a4ab939c67b5fe8,
ce045eb13036bfbc6adc89c46ea5eadb99ecb81f,
ad17ef7ece0c76f79bbf9f00f8aef6f0c9872261,
e1d046520eb20f811d016f931a025ff1002865b5,
5f4b65a6d79482fbcab20deaaec777ea7488edfb,
35de1a8ebc8eeff831d13ee06290f76a84cbb7c0,
8d6eedd8a58204243f3500e5e46e6c0289d63879,
faece8f67e9bd44a52b32a51c9e0f52b7e60fdff,
2bc7afe7ea82f518e27f3e7399a5d96a4be7c9d4,
4db24b50f5fccd2fe58dd5b7874ccf8a490b8f3e,
4623db3ff2ebb452d126ea80660215ae9e04a60f,
390dfd9842f7e7909e5f540152bd7693f02c09a7,
98d77cbf623751e3fd841531f69e15e1dd277e07,
7daa9a3435c07f8117c672f649d0ae3811667605,
4f7fc826e659ee11c9274dffc827cca3f2b78bbc,
4569b93937c1404d4458f49bb147547f85a63a4d,
aee8174340ce9490d850d77845b9ead80e6adf49,
b6baa6a370ef8b1b17b757daad412a964b204fb0,
293035bf1a1f8c537743d7dfec2a09ec768bc486,
1f40079d31c7d9f5f33858e4ed7f6b3fe6049fb2,
a44bb8ad9b3fea6b26d85e1d58e4383d665983d0,
279e79e06ac3fae660d370f94a8586177fd3595a,
329c549df46a3a0b0aebdf2d15973132f575dcbf,
0defd5ea68c5105b774b535437b6693c991af1df,
d2e5b3d17775c6c3e1c7798dd2532413028c4900,
3e736be7dac5f70e6513dcc1d141c35ad7075174,
ceeeb8b10bc10d3cd847a4ce52e40c2270e0d8f3,
c4e4047c9ce0525fe76d1e31e226f655a759cb41,
4412ec4200998648300b62444ba88269aec85b1d,
501d09ff5fec87ef65462bfeaa53cf1d04c9cbc0,
36a096d77d0559310d30447ef32a62e911207809,
befdd353af71f2c7e87f800ec50c4d97b261a447,
4a066b2bf4c80bd85f0897410cf9ff20e4f90da0,
7d962af9291f69f0da6115375efd5bd5224a2353,
0cfc799aef366e4e27849d87436f3032e1530a18,
bd5ca14aa9dc608b67818e65c6e71f69f3aa18d1,
f4c777a86a609c068f6d5f5a7cad66107b2886a8,
8195ac7c06ec30edb1e2a76ec29a69e545480006,
938576cadc746bd91054024c729070aead447ef4,
5357a45df46e56c5a9431c4e5a6c03341e1cb6a0,
1b6c73d766e79915de457ca312562684ecdfd108,
53c97e3bf15eb8b2c6e404906c6399c8e44f4a00,
1f65734fb52173b5b6159f69d9f08bb542940165,
fdc7e29a6214c7341bc3dde451b5a8cca4da4fe6,
632e358fe783b50e039caff43fdd18d0cb721b7b,
2665b39c34c0229ed0a1bf0e02c4b0241fd1b740,
f75366b18c2eb7ceab5f21df8c93765cf2228b2d,
4e680fbde94366b9a213f12253cfabf7c4aea239,
8eef5992623f6f5bd971084aeacd8706a6fab633,
abbae455ab2af7e51154aa517d7fd35d37f49cdc,
a6112afaf44021359c92b399f6b1ebf70454e123,
4f69c82cb6f162a3c057bcea1f96c5183ec2365a,
011ecd2be1933334942e70d25836df0ab904fd6b,
23c336d235ca0a73988df472861d43599410ab3b,
3a14f38affbddf9ca34bdd9f7ed2dcd8b49a236f,
6e4d7df781f7c44a4011a2bed661de012da5b61c,
ab64cba7f2c6b0fc41d0591bef23742b2f3fb6e7,
ca5b91f41947ccf2e58509653c6ae068aeb1fde0,
8b675bfc5e5e47be4be0a61febea51954da71ac2,
4784cfb79c955e3fb2aaefe63c3f267d737c85ad,
ca1bd98233144ee2ffa4245f9d9ade3d4911cb33,
8d32f4b67448362bca736fdb94bf6477b930ff00,
b5f6842a6a2fe478846f0f689509f497d0f9f24b,
76aae9954ff167013007d01aeabef7fa04ebaccf,
97cf3856e9a35f82d514b4d3838aec6e055f5b89,
6c1fee6f0b0ca8674116a70ba6d2b78f22b2a5b2,
6e099d84b4ac4b599b33abd67ca73f0d9fbb4130,
d9514a00b1ef3cf6966beab457ff8e04c5197832,
acbbff9c75192089991715b97b2af02e7aa5e447,
5887fcadd72db66db1fb6e859c2578ba4e92a715,
3c43b7973ed853805fdad7f6536c5cce7f7c23e3,
727455f7da5d62a26a1cebefcf044ad4e7291370,
7df79426eb9f3448737a064b18c338060bdd3f24,
8e2e99ec6815b10f636f550c591a793ba39803b0,
45cecbe3d231d7dcb9deb45dc2d5102a56f7dacd,
a810250bf3609c1f8963d57bf554e8467efebbf6,
8d7ae3b0c51fb6634e38cb0395df3e1416c6e8c2,
589775ebf0aaea2c88d21d2bba1402b66a0da421,
8ba7c64b989b5ab072e0af3782e7f262481abeea,
00193939c82a1c2627229d16e4763afc34c0267b,
4683b78277ce4cc7f9bc099ae9774b8ea6e309cc,
9b5a45f90407160882a22da06fc8bb4c647bb9d7,
02b90744be440e7df429eccc230df179baa5a10c,
abfe314959531d888d87dfedf49ba12fbe406d4b,
6827760c3fb465264fb8ba96a46e885b6ef887b3,
6052bcef676daea9f54b44139aec859584f21ac8,
30121daa37df6ec32558bf2189b9cf218e236cd9,
c87146511e216819e62beb40d87eeaf9ad552722,
a6b6f68ea5252367ec6ac3c5b2c663f272602f21,
1ffdcc737c34cb39c1f74be6bb48e8acb445c45b,
9689ad8be67901f77ffc266cff56e9d5d761f0c6,
d730bbd04e8fdd24e457503f36e44d5a6e28a2e2,
ef2b0b98e07f3740d44f248816a2627fc1d75463,
979ded95ab3c14fad405be6f738e8a7d2d5c0b09,
fe97e04156a6e992db2c7296054501abe2eb24af,
d022c5428bcf23b0cc978183dfa4c1cffa099b8f,
f4680e68b861f2942dc3b124d1c80fe86f163592,
20c88f44cc56e3ca212bd16e5480607e26ac5e3b,
7044739916fcbc6e5a6675c247c4720a0978a062,
574dd08a8be599d641787e4952bf5bcfc252945a,
b3f52c681524d06f66687a215d14e275f1d1d2f2,
2eb5811b6522c3755ef5f17aff80a44839585db2,
556a800a3faa386ba483df826b5ff6abd7ed2ce0,
d3334b02d3468edeaf55bdb51eb5b3820e2732a3,
b2bd03b6da199c1af511805032995e3455a5c40a,
1f873daeef8043549f69c2262a2ed88ad8961679,
cc1ade736992eefa1bc54dba69769a1d893e2f13,
8ab5ae66bd2cb5a0c465c42f95fdb28d8bb06fb6,
b10555c5e57b1dc55760834e1dac80fc750acd5e,
ea6652615cf6afc25d587a4044c93e8b8091ba92,
c7c2d71210a42e6d0a035fbb04ba6317a41ae610,
707e41312bab6582db28734f018cdc9cb544db57,
1d7114dcb734f0e8e9346078174d3961ee88aecd,
6ee2eb889b20c2a7738552e0deeaf73c96c405ff,
afca2b61485749204e6f405341a96d2b380515ae,
65184cd42ce3d84edd3d8dde39ed9b29cf7df500,
973db7db0fe7faf247ccb4585d4aedcbc44cbb78,
f3b666ff038710455dcb3c8a3ab578723dc63a14,
5902846a1d8c6440cfe465b4c9e69ae55e3e6cad,
fe287e4b4be6d3df4be7df77b64f098397f6bb83,
658419da1725e4632a159d25a33d93f9a2f41a36,
8c6479a85b46149554738b93561d86fa8194040a,
c05e014dcf8569de79c78cb70119f8e4dd806de2,
a9c4c03a37a132d73fb2c4c8cd3c07a287ca48df,
260d441f5368ec3acab409fee1707192a5ef3318,
6948449c7cf42c5cca29f9b77b34cf0888fd6331,
1045e6813c19d333ec1e08286c573c840a885d35,
585063101d33dac59852cc6e803c2361d9937803,
a82fd4e892f388f1abcdb9cf9ee5b54dfa8c7998,
630e36acd4a271abce858e06ae3ea9f89de154f8,
c609b5f9e80ac19d66033364533e40b7c746e8ef,
f1f37c953744205e54026052e0e641afa4f6323e,
c4b16b23be910d40b966d21e60ae8415c21de068,
c1e96c0cb96f3dfe7099c87448d1a3600928059b,
c172bf6d9bb99eb319e4a1748182abee935123aa,
3294e299157f2ae5bcf0c74452e8a54b02b5bcb8,
d708d9ccf93e41fb2afb035cc293b9d91103e144,
dc2dd48bb9c3f1fdfa4b85d98df79f0820325885,
a74dcb5530d28febe38f24986913d1151e70a429,
d971b32d2c094edd7c2aed2aae39729f9fc0ab9a,
88a91ff5cc9c35f6508194e694498eeb4d805e33,
904b5fe274cd79ce95072be079ea36775f9d368f,
03a22737173329c8bd5b566e86859cb050af79af,
d2e5c42d61db98bc767806699f49b1b5b2d84c30,
1e7d46e108c3f3a9a17648beead13980b89878e8,
194d6f87bbe5ec8876407044bc17518d1fd03f88,
b8394cc8d55883200bb8b6b12db76bdb76c4a225,
9d3e50130f0adcc00b3582e53ff6e65af36e20bd,
17c7ab66cd8db2259db64364b8638f01a622ba14,
210cc7ff72594a95accdd531b82b2fbc6ebb5cdf,
76ef0a2d045fc2bfd7e25269fd7d89f4c129ff8d,
719a288dda31c7c3117f2b9a568b63855b26aa68,
fa4885341de2e969aa7d7814c228cb85bd7deeb0,
f2a92e41d1d47c4071d4f84a2a85429764b77f23,
baa39930ac95ac422951fbc537278d09b7266597 |
f6cab37d5ee42313c7a5618c5d0694f312c9c194 |
2a705683df13f28eba2fb76ec9cdd8f1e8774df7 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2020-12-18 09:38:25-08:00
JAVA-2877: Allow skipping validation for individual mapped entities (#1502)
Co-authored-by: Alexandre Dutra <adutra@users.noreply.github.com>
3506c24a4fdbb954915fdd44d8ca96c3ca2317bb | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2020-12-18 08:44:43-08:00
JAVA-2871: Allow keyspace exclusions in the metadata, and exclude system keyspaces by default (#1500)
Co-authored-by: Alexandre Dutra <adutra@users.noreply.github.com>
37b48e11762edc8366d38405d9e8d738c9b8e39e | Author: olim7t <omichallat+github@gmail.com>
| 2020-09-03 16:11:45-07:00
Revert incorrect doc changes
Validation errors are in fact surfaced as IllegalArgumentException. We
only warn if no table or UDT can be found.
b85e20856825a8c22eb168302cecbbf854e27dc9 | Author: olim7t <omichallat+github@gmail.com>
| 2020-08-18 17:20:58-07:00
JAVA-2863: Reintroduce mapper processor dependency to SLF4J
Motivation:
In JAVA-2800 we removed that dependency to avoid SLF4J's "defaulting to
NOP" warning when the processor in configured via `-processorpath`.
However, the processor depends on driver core classes that sometimes
declare a logger. If SLF4J is missing, this will cause a
ClassNotFoundException while processing annotations.
Some more background:
- in theory the processor should be completely isolated from SLF4J (its
only output is compiler messages). But sometimes reusing core classes
is convenient, we wouldn't want to rewrite them from scratch. A NOP
implementation that ignores the logs is what we want, it's just the
warning that is undesirable.
- we can't declare slf4j-nop as an explicit dependency of the processor,
because then it would collide with the application's binding if the
processor is configured via the regular classpath instead of
`-processorpath`.
Modifications:
Revert JAVA-2800 to reintroduce the dependency.
Add a snippet in the manual to explain how users can add slf4j-nop to
their processorpath to avoid the "defaulting to NOP" warning.
Result:
No more risk of ClassNotFoundException.
The warning is back, but it's not harmful and users have a workaround to
remove it.
b98d789cba987372122e6a5f2d6ea5b7e273b634 | Author: olim7t <omichallat+github@gmail.com>
| 2020-07-17 15:37:03-07:00
Remove explicit dependency to javatuples
It is a transitive dependency of Tinkerpop. We do reference it directly
from the driver code (CqlCollectionPredicate), so in theory we should
redeclare it, but it's only used to deserialize graph stuff and not
exposed in our public API.
The advantage of not declaring it explicitly is that it's one less
thing to exclude manually if you're not using graph.
b2b9bee9152fecfdbefda654ccf578325e2a36d8 | Author: olim7t <omichallat+github@gmail.com>
| 2020-07-13 10:05:33-07:00
JAVA-2835: Correctly handle unresolved addresses in DefaultEndPoint.equals
Motivation:
In InitialNodeListRefresh, the driver tries to match contact points
Nodes with system.peers rows, in order to refresh their data. Because
the Nodes's hostIds are not known yet, we match by EndPoint (which for
the Nodes are the addresses passed by the user, and for the peers rows
are the values in rpc_address).
The default TopologyMonitor parses rpc_address into *resolved*
InetSocketAddress instances. If one of the contact points was passed as
an *unresolved* address, the comparison fails. The contact point is
considered removed, and the row gets added as a new node.
In addition, this will issue the DC mismatch warning ("some contact
points are from a different DC"), because the contact point's datacenter
was never filled.
Modifications:
In DefaultEndPoint.equals, if one of the addresses is unresolved but the
other is, resolve the former.
Result:
The comparison in InitialNodeListRefresh succeeds. The contact point
Node matches its system.peers row, and gets refreshed properly.
Note that:
* if both addresses are unresolved, we don't need to resolve. This
can happen if the user has a custom AddressTranslator (or a custom
TopologyMonitor) that parses system.peers addresses as unresolved
addresses.
* this EndPoint comparison only happens during the initial refresh.
After that, we know the Nodes' hostIds, so we use that instead (see
FullNodeListRefresh).
57234900c5b221f87d497e00ce8f78d925ce964d | Author: olim7t <omichallat+github@gmail.com>
| 2020-06-22 16:19:52-07:00
JAVA-2773: Support new protocol v5 message format
https://issues.apache.org/jira/browse/CASSANDRA-15299
a8e8795df679e03f1be8a0627845be0a06a72694 | Author: olim7t <omichallat+github@gmail.com>
| 2020-06-15 10:07:52-07:00
Add missing changelog entries
- JAVA-2663 from f4ea838b7650ab5bb10d089e1ea8613ba2592b05
- JAVA-2803 from 4cd369548e32eabbf772ed4e497a151ca225e28e
d45744a60485e9e9326f59125554c618b24ff90e | Author: olim7t <omichallat+github@gmail.com>
| 2020-06-12 17:38:29-07:00
Fix outdated defaults in OptionsMap
Also revisit the unit test: it was comparing just the keys, not the
values.
361fa82e4d94bd09dd9d6de132e59d00983d13e1 | Author: olim7t <omichallat+github@gmail.com>
| 2020-06-05 11:41:15-07:00
Follow up to JAVA-2792: Allow custom results in the mapper
- parse supertypes when looking for mapped entities in custom result
types
- only pass Exception to MapperResultProducer.wrapError
- remove <EntityT> from signature of MapperResultProducer.execute: it's
rarely useful
- update examples
This amends d523e9a.
2997d775a091cfee614e49d20c98f5b29518d7c0 | Author: olim7t <omichallat+github@gmail.com>
| 2020-06-05 10:38:20-07:00
Stop publishing integration-tests module
This was intended for the DSE driver when it was separate. Now that the
drivers are unified, it's not needed anymore so don't waste space on
Central.
f3728a0e05ec48ca496c0259513364da8f7951bc | Author: Erik Merkle <erik.merkle@datastax.com>
| 2020-04-21 12:32:52-05:00
Fix various issues with tests
* Add Awaitility version for OSGi tests
* Remove broken graph paging test
The test was trying to pause the server between two continuous pages.
That can't be done reliably since the server replies asynchronously.
* Use Awaitility for Metadata Manager tests
Co-authored-by: olim7t <omichallat+github@gmail.com>
5ee71a3477bee2b75580f921bdb42d6e950b544e | Author: olim7t <omichallat+github@gmail.com>
| 2020-04-20 11:16:47-07:00
Add 'add' and 'decommission' commands to CcmBridge
Co-authored-by: Alexandre Dutra <alexdut@gmail.com>
057fe5d2d58a953caade26786f98c1a75ed089b1 | Author: olim7t <omichallat+github@gmail.com>
| 2020-04-15 18:38:11-07:00
JAVA-2700: Revisit execution profile parameters in mapper
This amends JAVA-2633 (5e1e5107c91c3546e5cc81a29cbccdbbaff0f82b).
d49132b39a3fb4cca410151c29b2cc8fd73fd161 | Author: olim7t <omichallat+github@gmail.com>
| 2020-04-06 14:15:30-07:00
JAVA-2727: Also disable javadoc plugin for test phase
api-plumber-doclet runs on the process-classes phase, and it's currently
not compatible with Java 11 (JAVA-2610).
a33f23cf3fe6a8cbc357a8bad3366c04a1808856 | Author: olim7t <omichallat+github@gmail.com>
| 2020-04-03 17:34:44-07:00
Fix install_snapshots.sh
Since the introduction of the BOM (8f8e2e7), the native protocol version
is no longer expressed as a property in the parent POM.
Use the dependency plugin instead, this is more robust than a simple
grep.
3b386ee64c59c0fd32a5bcb10d4a2dc22378ce1c | Author: olim7t <omichallat+github@gmail.com>
| 2020-04-03 17:23:41-07:00
Fix dependency plugin configuration
Only redirect to a file for the `generate-dependency-list` execution, so
that command line invocations (e.g. `mvn dependency:tree`) still use the
standard output as expected.
1f6a58e22d808770aeeec02d7c4547bb891d073b | Author: olim7t <omichallat+github@gmail.com>
| 2020-03-26 08:54:58-07:00
Adjust debug log in ControlConnection
Log the channel instead of the node, as in ChannelPool. This shows the
local port, which can be useful when debugging.
c3a6e6b30c4be2ad72986a5dd1e458fc13c2d2a1 | Author: olim7t <omichallat+github@gmail.com>
| 2020-02-27 15:23:12-08:00
Reformat NodeState javadocs
Bullet lists in the title line do not render well in the HTML output.
72a8ae886a4e68795665a3a8c7f5b970d58dc5f5 | Author: olim7t <omichallat+github@gmail.com>
| 2020-02-25 10:52:50-08:00
Adapt materialized view statements in SchemaChangesIT for DSE 6.8
DSE 6.8 adds additional constraints on MV creation:
- columns in the PRIMARY KEY directive must all be selected
- the WITH CLUSTERING ORDER directive must match the clustering columns
in the primary key.
e512276fdd4e1f83f152e00185ff4e523c4878f6 | Author: olim7t <omichallat+github@gmail.com>
| 2020-02-13 14:16:48-08:00
Sanitize Tinkerpop version in OSGi tests instead of using separate property
Co-authored-by: Bret McGuire <absurdfarce@users.noreply.github.com>
24757424b70b3e7bd889e94e8d1acf313ba70fec | Author: olim7t <omichallat+github@gmail.com>
| 2020-02-03 16:22:59-08:00
JAVA-2637: Bump Netty to 4.1.45
This required adjustements in a few unit tests, where
`waitForPendingAdminTasks` methods relied on the fact that a task
scheduled on the event loop with a short delay would be executed after
any current immediate task.
This doesn't work anymore, possibly after the event loop refactoring in
Netty 4.1.44. It was replaced with a combination of Awaitility and
timeouts in `Mockito.verify` calls.
f593f467413bbdd5ccd4d999def31365627f5e4e | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2020-01-08 10:06:17-08:00
JAVA-2442: Don't check for schema agreement twice when completing a DDL query (#1372)
Motivation:
When we process a SCHEMA_CHANGE response to a DDL query, we check for
schema agreement, and then trigger a schema refresh. But the refresh
itself also checks for agreement, so we end up doing it twice.
Modifications:
Only check for agreement during the refresh. Introduce a new
RefreshSchemaResult type, so that we can surface the outcome of the
agreement in addition to the new metadata.
Remove the agreement check in CqlRequestHandler, use the value surfaced
by the refresh instead.
Result:
Schema agreement runs only once.
f803aa0210b14e923e83481915e3cd27de4a9b09 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2020-01-08 10:01:14-08:00
JAVA-2473: Don't reconnect control connection if protocol is downgraded (#1369)
Motivation:
In theory, the control connection is an implementation detail of the
topology monitor and metadata manager. If those components are
overridden with custom versions that use another way to get the data,
the rest of the driver should be able to function without initializing
the control connection at all.
This is currently not the case: DefaultSession references the control
connection, in order to reconnect if the protocol version was
downgraded after the initial connection (JAVA-1295).
Modifications:
Do not reconnect the control connection in that case; it's not really
needed because none of the control queries use any protocol-dependent
feature.
This also allows us to remove MetadataManager.firstSchemaRefreshFuture()
and slightly simplify session initialization.
Result:
DefaultSession does not reference ControlConnection.
If the protocol version is downgraded, the control connection keeps
using the initial version. It might switch to the "correct" version
later if it reconnects to another node.
Co-authored-by: Alexandre Dutra <adutra@users.noreply.github.com>
b436fd8076536b77b48c3be35627c785eb35b89b | Author: olim7t <omichallat+github@gmail.com>
| 2020-01-06 14:48:07-08:00
Pass class option explicitly when building per-profile policies
Building an option on the fly is brittle because it is not equal to the
original option.
c94537aed3758a79a9c9bf888ee0a6f2a4648630 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-12-02 01:22:20-08:00
JAVA-2546: Abort schema refresh if a query fails (#1365)
* Always warn on schema query errors
The `warnIfMissing` flag was introduced to handle inconsistencies in
some DSE versions, but since JAVA-2471 we check that beforehand and
select the appropriate `SchemaQueries` implementation.
* JAVA-2546: Abort schema refresh if a query fails
Motivation:
The current strategy is "best effort": ignore query errors and keep
parsing as much as we can.
However this has undesirable consequences: we observed a case where the
query to `system_schema.keyspaces` times out. Parsing proceeds with an
empty keyspace list, `SchemaRefresh` thinks all keyspaces have been
removed and notifies schema listeners.
Modifications:
If a query fails, propagate the error to the schema rows future. Ignore
any remaining queries.
Result:
The refresh is aborted and the previous version of the schema metadata
stays in place.
This is either logged, or surfaced directly if the refresh was triggered
manually (by mechanisms that were already in place before this commit).
01a223db42088ffc38cdf995658d448f6c45bc20 | Author: olim7t <omichallat+github@gmail.com>
| 2019-11-25 08:56:37-08:00
Fix package of DseSessionMetric
This is a breaking change compared to DSE driver 2.3, but this was a
legitimate mistake and it's likely that the enum is referenced directly
in 3rd-party code.
ee5ad885f3915cc854073cf4a5717597f73dee94 | Author: olim7t <omichallat+github@gmail.com>
| 2019-11-04 13:11:21-08:00
Merge protocol version registries
- always register all protocol versions in the frame codec
- merge ProtocolVersionRegistry implementations into a single one:
negotiation will always start at DSE_V2, and downgrade to the OSS
versions if the server is not DSE.
- remove a couple of unused methods on ProtocolVersionRegistry
adc4aeb62d9c133fd596967305141344bbfd5441 | Author: olim7t <omichallat+github@gmail.com>
| 2019-11-01 10:59:49-07:00
Merge schema parser factories
Propagate the control node in SchemaRows in order to have a single
factory that can select the correct parser.
If the control node is a DSE node, then schema metadata objects can be
cast to their DSE counterparts.
f1a7b0c02bcde8d205e9c364f0991149b459f42a | Author: olim7t <omichallat+github@gmail.com>
| 2019-10-30 17:32:40-07:00
Revisit cloud manual page
Simplify structure, fix formatting.
Remove DSE content (should be moved to the DSE manual).
365d6958f1ca9e2bdab59eddfb972f137fa8b8a8 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-10-23 03:42:55-07:00
JAVA-2476: Improve error message when codec registry inspects a collection with a null element (#1351)
29af6e13b6bd8bda18b6404d4d46a290b15fee90 | Author: olim7t <omichallat+github@gmail.com>
| 2019-10-16 20:17:26-07:00
Add reactive support to the OSS mapper
Adapted from the DSE mapper in riptano/java-dse-driver@191f065ff.
972bd0bb3d0bc2f56511dcc3475da90b4a21c235 | Author: olim7t <omichallat+github@gmail.com>
| 2019-10-14 15:25:55-07:00
Revisit DefaultNode.toString to avoid NPE
hostId can be null in the early stages of initialization. See also
JAVA-2505.
03840d1e179d3ac0f2625169be203d30653f60d1 | Author: olim7t <omichallat+github@gmail.com>
| 2019-10-09 16:16:29-07:00
Add missing elements in POMs
Dependencies, mentions of driver packages in POMs.
The code compiles.
e5606668107d8dad2aa2ba43cdfb3b3db63912a8 | Author: olim7t <omichallat+github@gmail.com>
| 2019-10-09 15:14:24-07:00
Copy sources from riptano/java-dse-driver@0a187cec6 (except mapper)
cp -R ../java-dse-driver-2.x/core/src/* core/src
cp -R ../java-dse-driver-2.x/integration-tests/src/* integration-tests/src
cp -R ../java-dse-driver-2.x/query-builder/src/* query-builder/src
bcde4b1c0cb4787989a2c36a3d9c354aee8a27e9 | Author: olim7t <omichallat+github@gmail.com>
| 2019-10-08 15:01:56-07:00
Upgrade OSS driver to 4.2.2
Also revert erroneous test changes that were based on an OSS 4.x preview
build.
9eafb65aca719af60f709dc1afcd9d56897057f2 | Author: olim7t <omichallat+github@gmail.com>
| 2019-09-25 17:25:45-07:00
JAVA-2464: Fix initial schema refresh when reconnect-on-init is enabled
Motivation:
When reconnect-on-init is enabled and the driver does not connect
immediately, the schema metadata is empty.
This is because the initial schema refresh is chained on
ControlConnection.firstConnectionAttemptFuture. The goal was to allow
the session to initialize without waiting for the control connection (if
there is a custom topology monitor that uses another mechanism). But in
the scenario above, firstConnectionAttemptFuture is failed.
Modifications:
Chain the schema refresh to ControlConnection.initFuture (complete,
successful connection).
Remove firstConnectionAttemptFuture.
Result:
The schema is present at startup.
Note that if a custom topology monitor is in place, and it is the
metadata manager that initializes the control connection, the first
schema refresh (and therefore the whole session initialization) will
have to wait for the control connection to successfully connect. All
things considered, this is pretty logical.
a645d499630243c7caca815a026f411f89b24bf5 | Author: olim7t <omichallat+github@gmail.com>
| 2019-09-23 11:41:04-07:00
JAVA-2455: Improve logging of schema refresh errors
Motivation:
While debugging JAVA-2454, we noticed that the error wasn't surfaced in
the logs as expected. MetadataManager.startSchemaRequest has a listener
for that purpose, but it's on the wrong future; parsing errors will
surface on currentSchemaRefresh.
Modifications:
Don't try to log errors in MetadataManager. Instead, handle it on all
call sites of MetadataManager.refreshSchema, *if* the future is not
returned to the client.
Result:
If a user-initiated refresh fails, they will get back a failed future.
If an internal refresh fails, it will be logged.
03d97598d8bd20f31856016615c881d1c06b4acb | Author: olim7t <omichallat+github@gmail.com>
| 2019-09-16 11:19:15-07:00
JAVA-2430: Use variable metadata to infer the routing keyspace on bound statements
The previous version was erroneously using the result metadata, which is
empty for non-conditional mutations.
7a27ab1f99e62b9ca61ae0c7a48968b131446b59 | Author: olim7t <omichallat+github@gmail.com>
| 2019-09-05 11:43:09-07:00
JAVA-2196: Convert TableOptionsIT into a unit test
Table options vary across server versions, it's hard to write robust
integration tests. TableOptionsIT only covered two basic text options
added in Cassandra 4 (JAVA-2090), this can be addressed equally well by
a unit test.
a3e5e320a801b636a8e1c8243668920b50fe2f8e | Author: olim7t <omichallat+github@gmail.com>
| 2019-08-26 10:36:53-07:00
Add revapi ignores for new annotations on Version constants
See a3b2a28d1d0f6afa16f4666aac695f2046194e9e.
7f02d20b137bf2bb330509372212eab9d9dc04fe | Author: olim7t <omichallat+github@gmail.com>
| 2019-08-15 09:29:32-07:00
Upgrade Netty to 4.1.39.Final
This version fixes multiple HTTP/2 security issues. We don't use HTTP/2
in the driver, but this will avoid triggering CVE warnings.
d14cbbac8aeb4815917d90305476e9c826327fa0 | Author: olim7t <omichallat+github@gmail.com>
| 2019-08-14 11:17:24-07:00
Pass endpoint and authenticator name to PlainTextAuthProviderBase.getCredentials
Even though they aren't used by the current implementations, they could
theoretically influence the generation of the credentials.
8da400d1769fae375fc5ff373e566d18598ac378 | Author: olim7t <omichallat+github@gmail.com>
| 2019-08-14 10:00:27-07:00
Make PlainTextAuthProviderBase.Credentials public
This will be slightly more flexible if custom implementations want to
create instances outside of the provider subclass.
fd665bcd0bfe98572e7e2fbaa929fe176b92b1e6 | Author: olim7t <omichallat+github@gmail.com>
| 2019-08-08 06:54:36-07:00
JAVA-2153: Standardize test rule usage in ITs
- favor class rules over method rules (when possible).
- split tests that were using CcmRule and SimulacronRule within the same
class.
- use upper snake case for class rule names.
- update contribution guidelines.
a3d2ef2a3bc1052cd0c09d6af415db20ce30f11c | Author: olim7t <omichallat+github@gmail.com>
| 2019-08-05 15:02:52-07:00
Don't wrap unchecked exceptions in DriverExecutionException
Per DriverExecutionException's contract.
This reverts 4d79ac8e09d4e1b08b0828aac931474554941b6e.
d5ffa10709479371492b8df7cf19829d52fc8d6b | Author: olim7t <omichallat+github@gmail.com>
| 2019-08-05 11:39:10-07:00
Generify AdminRequestHandler
Motivation:
We now have a need to read the response for message types other than
ROWS. AdminResult is not well-suited for this; we could introduce
subclasses, but that would require awkward casting.
Modifications:
Generify AdminRequestHandler over the element type of the returned
future. That type is provided at construction time (this is abstracted
behind the static factory methods).
Result:
Clients use the factory method matching their expected response type;
they get a future that contains the right object directly.
0dbf86570ff29ad66e4ea280ba7f0808bb917254 | Author: olim7t <omichallat+github@gmail.com>
| 2019-07-31 08:09:52-07:00
Force Trusty distribution in Travis build
The current default distribution doesn't have jdk_switcher anymore.
1fc9869e95e1e9521a9e5a5cca95c38db1fd99b7 | Author: olim7t <omichallat+github@gmail.com>
| 2019-07-24 17:44:37-07:00
JAVA-2365: Redeclare default constants when an enum is abstracted behind an interface
c1e3b0894563538ba5976406957096310ac13dca | Author: olim7t <omichallat+github@gmail.com>
| 2019-07-24 16:53:07-07:00
Don't reference current version in POM snippets
The latest version is now displayed in the root README thanks to the
maven badge. We don't need to repeat it in every POM snippet. Show a
Maven variable instead: it should be pretty clear that it's a
placeholder.
That way we don't need to search and replace through the whole manual
before each release.
4f295098c0757f4580264c852ae0798a66d6a379 | Author: olim7t <omichallat+github@gmail.com>
| 2019-07-24 15:46:18-07:00
JAVA-2358: Fix list of reserved CQL keywords
These are the words that cannot be passed to CqlIdentifier.fromCql(),
unless they are quoted.
8d7a6ac85505dcecdf0417e18caf845d6c8fb3c0 | Author: olim7t <omichallat+github@gmail.com>
| 2019-07-19 17:09:59-07:00
JAVA-2302: Better target mapper errors and warnings for inherited methods
Motivation:
If
- the mapper processes a class or interface that inherits from another
type
- that parent type is not part of the current compilation round (e.g.
it's in a JAR dependency of the current project)
- that parent type is not annotated correctly
Then the errors or warnings issued by the mapper processor do not
provide enough context, because they can't be linked to a source file
and line number.
Modifications:
Detect that situation in DecoratedMessager, and issue the messages on
the child type instead.
Result:
The errors or warnings will appear on a source file, with a contextual
prefix like "[getId() inherited from BaseEntity]".
5edd077a0e78e62fa132123c2148f7b6937d2492 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-07-04 06:41:31-07:00
JAVA-2312: Handle UDTs with names that clash with collection types (#1284)
e5109362e58d9b9d0b40cf32eb48cc59cf0885bb | Author: olim7t <omichallat+github@gmail.com>
| 2019-06-27 17:08:13-07:00
JAVA-2315: Improve extensibility of session builder
Motivation:
Every time we add a new programmatic argument to the session builder,
there is a breaking change on SessionBuilder#buildContext.
This extends to DefaultDriverContext's constructor (even though
DefaultDriverContext is an internal class, it would be wise to be
conservative about its API, because plugging something through a custom
context subclass is one of the most basic "advanced" extensions).
Modifications:
Create a new class ProgrammaticArguments to wrap the arguments to
buildContext. Also pass it to the context constructor.
Preserve backward compatibility with the previous signatures.
Result:
We can now add new arguments to ProgrammaticArguments, which is not a
breaking change.
89a32b1b0d67233bb395afba69a48242e4e9fb5e | Author: olim7t <omichallat+github@gmail.com>
| 2019-06-21 10:36:28-07:00
Revisit NettyOptions#onClose
`new PromiseCombiner()` is deprecated (see netty/netty@625c4e8).
PromiseCombiner is not thread-safe, all of its methods must be invoked
from the same event loop.
We can't use any of the driver's event loops since we're shutting them
down, so use GlobalEventExecutor.INSTANCE.
To respect the contract of PromiseCombiner, schedule its construction on
that event loop instead of doing it from the current thread.
fbe24cb2190b097d4c3dcf39eef63b3da078b0f3 | Author: olim7t <omichallat+github@gmail.com>
| 2019-06-19 14:16:27-07:00
JAVA-2297: Set socket options from NettyOptions#afterBootstrapInitialized
Motivation:
Setting socket options on the bootstrap is currently hardcoded in
ChannelFactory. This can cause warnings if the transport is overridden
with an implementation that does not support some of these options (ex:
TCP_NODELAY for Unix domain sockets).
Modifications:
Move the code to NettyOptions#afterBootstrapInitialized.
Result:
Custom NettyOptions implementations can decide which socket options to
set. Note that they will now have to copy over the code from
DefaultNettyOptions to get the default behavior.
668d30478c578322fa8ac7a226880af90ee6e756 | Author: olim7t <omichallat+github@gmail.com>
| 2019-06-05 15:47:39-07:00
JAVA-2289: Revisit keyspace and table handling in entity helpers
- resolve the final values (context or default) in the constructor and
cache the results in fields.
- expose this information on the public interface (might be useful for
custom query providers).
- use the default keyspace in `@Query` methods.
- simplify error handling in `@Query` methods.
f636b6d35b09f92c778138ee348ee0830e0ceaa5 | Author: olim7t <omichallat+github@gmail.com>
| 2019-06-03 15:31:48-07:00
JAVA-2272: Make DAO method return types pluggable
Motivation:
We want to allow some degree of extensibility in the mapper. In
particular, it would be nice if a custom mapper extension could handle
new result types for DAO methods (e.g. `@Select`), without having to
rewrite the whole method generator.
Modifications:
Extract a superinterface DaoReturnTypeKind from the current enum.
Introduce a pluggable DaoReturnTypeParser in CodeGeneratorFactory.
Modify DAO method generators, so that the set of supported return type
kinds can be customized by overriding a method.
Result:
To support new return types, downstream projects will:
- write their own implementation of DaoReturnTypeKind (most likely as
another enum)
- write their own DaoReturnTypeParser implementation
- extend the default method generators to override
getSupportedReturnTypes()
- write their own CodeGeneratorFactory to return all those custom
elements.
38cb3f36cc577abafe8fcba7aaafe19a92af2b15 | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-24 15:24:54-07:00
Separate MapperContext into interface and implementation
This allows us to hide the details of how contexts are mutated, which
are irrelevant to end users.
In the generated code, Mapper implementations use DefaultMapperContext,
but DAO implementations only need MapperContext because they don't
mutate it.
d7ac7a7ec257460349b942406ef8804391903e5b | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-22 09:52:09-07:00
Rename test methods in Update IT
TTL and timestamp aren't technically "bound" when we use literals.
c976bbf5df3e9a16dd91a4d78b84e2467db812dc | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-17 16:20:40-07:00
JAVA-2260: Handle empty collections in PreparedStatement.bind(...)
Motivation:
`preparedStatement.bind(new HashSet<>())` fails with a
CodecNotFoundException.
This is because the codec registry defaults to Set<Boolean> when it
tries to infer the type of the value (this works fine for lookups by
Java type only, because all empty collections are encoded in the same
way, so any collection codec will do -- but here we happen to also know
the CQL type, and it doesn't match).
Modifications:
Special-case empty collections at the beginning of codecFor(CqlType,
value): simply look up a collection codec for an arbitrary element type.
Result:
We return a codec that can encode the provided value.
Note that it doesn't accept the CQL type, nor the declared Java type of
the value, but the contract of the method doesn't say that it should.
Co-authored-by: Alexandre Dutra <alexandre.dutra@datastax.com>
47c70cbaf7ad27986d462ab299373efbae83ffa3 | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-17 13:20:12-07:00
JAVA-2257: Revisit Insert syntax for USING clauses
Expose two separate ttl and timestamp elements, instead of a free-form
clause.
f1f631f190f184997f47f0ebb16fe4e2b5e611b0 | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-17 11:12:04-07:00
JAVA-2258: Revisit custom clauses in Delete and Select
* use whereRaw / ifRaw in the generated code, instead of simple string
concatenation
* now the provided strings MUST NOT contain the WHERE/IF keyword
b2cb0d928c16ae18bd26288d835a966d712e8135 | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-17 10:45:09-07:00
Fix description of entity property discovery mechanism
A field is actually not required.
26e8c05633bf6d95214503617ab41d66cc1eeb16 | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-13 17:41:07-07:00
Refactor mapper tests
- use a dedicated DAO (shorter, easier to read) per integration test
- cover all valid method signatrues in ITs
- get rid of "fixtures" boilerplate, in favor of simpler inheritance
- remove valid signatures from unit tests (compiling in-process is slow,
we already cover those signatures in ITs anyway).
2838543af4170cfb1bdc1af18746e45455626f35 | Author: olim7t <omichallat+github@gmail.com>
| 2019-05-08 14:38:10-07:00
Revisit Insert methods
- introduce separate ifNotExists() property
- fix bug when return type is entity and conditional insert succeeds
- allow Optional return types
646bd78bd02987f8bafa10a9c5a6791622da5304 | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-25 18:46:11-07:00
Add PartitionKey and ClusteringColumn annotations and process them when parsing entities.
7323492503d543e61223bbbd67def20d20c80e93 | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-24 17:44:09-07:00
Move validation to execute() in all method generators
This limits the number of places where we have to handle
SkipGenerationException.
e0ed4d6501c4283df3103552a1fffc6c36862d4a | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-24 17:03:12-07:00
Require annotation for DAO factory methods
This allows us to use the same generator selection strategy everywhere
(use the annotation instead of guessing based on the signature).
Also, it leaves the door for more types of methods on the main mapper
interface.
05cee6af2a8f98f4445d9ac2d139f7729a17ea03 | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-24 12:33:46-07:00
Change mapper processor's supported source version to latest
Otherwise we can only use 8 because that's what we build with, and that
causes a warning when running against more recent versions.
7c5a8611f6447f966c03fee6c4bb4d29790ea2cd | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-23 18:21:57-07:00
JAVA-2131: Add mapper processor unit tests with compile-testing library
Co-authored-by: tomekl007 <tomasz.lelek@datastax.com>
81d0054a2068617d4af1fe3a6f4a6937e90d58f8 | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-11 16:57:12-07:00
Remove PartialClassGenerator
Instead, have class generators expose callbacks if the underlying method
generators need to generate other class-level members.
9343a8f37c9644e3911cbc7cf00eccad9f7a39f9 | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-08 10:19:05-07:00
Apply latest core changes after rebase on 4.0.1-SNAPSHOT
- withExecutionProfile => setExecutionProfile
75a12e0381ed7a85ca18034dd22381ae657872c0 | Author: olim7t <omichallat+github@gmail.com>
| 2019-04-05 11:13:44-07:00
Correct explanation about identifiers in query builder manual
"case-sensitive identifiers or case-insensitive strings" is incorrect,
because raw strings can be case sensitive too if they're quoted.
4c3aa932fc76566e998e0bddb17a3589977d33b3 | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-19 11:44:41-07:00
JAVA-2081: Fix reference configuration page
Abandon the idea of inlining the file's contents, this complicates our
documentation pipeline too much (it requires reStructuredText and
additional Python libraries).
Instead, link to the file in our GitHub repo. The link will have to be
updated before every release, but this already happens in other places
so we do a global search and replace.
f342ae94974b7e9ac1c95210c5a8eecbdfa60160 | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-14 16:23:01-07:00
Revisit upgrade guide
Expand contents, include more code examples, add more links to relevant
sections in the manual.
643c374b77a10203d1e8c33fbb271e52877b937c | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-13 09:40:23-07:00
Remove oldArchive field in revapi.json
It is not mandatory, and can make the check fail if a custom build has a
version that resolves as "more recent" than the declared version (e.g.
4.0.0-rc1-internal > 4.0.0-rc1).
bebff8b6d69a15a646e6801bc58457e72a794a5c | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-11 10:26:50-07:00
Re-enable WARN logs by default in integration tests
Disabling warnings can hide non-fatal bugs, such as token map refresh
issues. Since JAVA-2053, re-preparing the same query doesn't warn
anymore, so that should not pollute the logs anymore.
5fbf2b8144a7759914fb6cb755fe3ec6d01dad88 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-03-11 03:47:43-07:00
JAVA-2143: Rename Statement.setTimestamp() to setQueryTimestamp() (#1210)
c6d3e0a3de7dfffcf510a5483e626fb7619a0149 | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-08 08:41:28-08:00
Force the version of versions-maven-plugin through pluginManagement
In version 2.7, the `display-dependency-updates` goal has useful new
`-DallowXxxUpdates` filters.
7be8465e5301524ad377d730f88088a006fb068c | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-07 18:41:55-08:00
JAVA-2177: Don't exclude down nodes when initializing LBPs
Motivation:
In driver 4, the LBP "pushes" the distances to the driver, not the other
way around. So if we don't set the distance of a node in init(), it will
stay at IGNORED and the driver won't try to connect to it.
Therefore all nodes should be passed to init().
Modifications:
Don't filter the nodes in LoadBalancingPolicyWrapper.
Update the javadocs of LoadBalancingPolicy to explain the contract.
Update DefaultLoadBalancingPolicy to only add UP nodes to its live set.
Result:
Down nodes don't stay ignored anymore.
5fa72483ea2f2c6481009eb010c48ce374413370 | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-05 19:25:26-08:00
Configure Revapi for mapper modules
Co-authored-by: tomekl007 <tomasz.lelek@datastax.com>
5b2db904cf51f4c7745cb08951a7254efd31bc60 | Author: olim7t <omichallat+github@gmail.com>
| 2019-03-04 12:47:22-08:00
JAVA-2165: Abstract node connection information
Motivation:
Until now, the only information used to connect to a node was its socket
address (host+port). Internally, the driver also used this address as a
unique node identifier (it was the key in the Metadata.nodes map).
However, there are more complex deployment scenarios where the address
might not be sufficient: for example, if nodes are accessed through a
proxy that uses SNI routing, the connection information becomes
host+port+sni_server_name, and the host+port part is no longer unique.
We need to support those alternative connection methods, and use a
different unique node identifier.
Modifications:
- Introduce EndPoint as an abstract wrapper around connection
information. EndPoint.resolve() returns the socket address that will
be used to open connections, but an endpoint may also contain
additional pieces of information that will be used in other places
(for example a custom SslHandlerFactory).
- Add Node.getEndPoint(), and modify DefaultTopologyMonitor to fill it.
Allow contact points to be specified as EndPoints (preserving legacy
methods).
- Replace InetSocketAddress by EndPoint everywhere that it was used to
identify a node.
- Index Metadata.nodes by the true unique node identifier: host_id from
system tables. This has two consequences:
- we can't put contact points in Metadata.nodes directly, because we
don't know their host_id yet. Store them separately
(MetadataManager.contactPoints) and transfer them during the first
node list refresh.
- when we receive a status event, we can't use a simple map lookup
anymore, so do a linear traversal to find the node with a matching
broadcast_rpc_address (side effect: we don't need to translate it).
Result:
We no longer depend on nodes having a unique socket address.
We can plug in custom EndPoint implementations.
3f92fb78856710275672850b0bd21d4643a21cf0 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-02-28 02:10:19-08:00
JAVA-2158: Allow BuildableQuery to build statement with values (#1193)
4ad1b1bc90eeb2a96cfd3893ba763ba2a58bda6a | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-02-28 01:56:27-08:00
JAVA-2150: Improve query builder error message on unsupported literal type (#1194)
26083e502a4c22ae3f0c5985a5d57c6db6dd8c6f | Author: olim7t <omichallat+github@gmail.com>
| 2019-02-20 12:54:05-08:00
Reinitialize Revapi ignores
So that `revapi.json` files only document breaking changes between RCs
and GA.
What changed across beta versions is less relevant to end users, so
don't pollute the files with that information.
16eb2b18d1b77011113072a0cd829d47173bff7f | Author: olim7t <omichallat+github@gmail.com>
| 2019-02-19 16:05:42-08:00
Remove Java import contribution guidelines
The Google formatter now handles imports.
2177de63e946f3de28437f71cdcf1a6b407f84b9 | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-02-12 02:50:54-08:00
JAVA-2144: Expose internal API to hook into the session lifecycle (#1186)
d65dbe296a6284abdbb735c0841e1088e5cb3713 | Author: olim7t <omichallat+github@gmail.com>
| 2019-01-30 10:17:31-08:00
Fix Revapi exception for JAVA-2077
This was introduced by 6b0e299a1f9a82e82a5a4e56cd335991f950b07f.
1262240711ffdb654d4ef8d077e2ebc0c08a4c3f | Author: olim7t <omichallat+github@gmail.com>
| 2019-01-30 10:10:25-08:00
Fix wrong assertion in test
This was introduced by JAVA-2077 (6b0e299a1f9a82e82a5a4e56cd335991f950b07f).
a2af2edcc8f3f52983ef54122983fca8da8ea91a | Author: Olivier Michallat <olim7t@users.noreply.github.com>
| 2019-01-29 04:10:10-08:00
JAVA-2084: Fix session.executeAsync examples in the docs to reflect current API (#1179)
Since eb4dcda2 it returns CompletionStage<? extends AsyncResultSet>.
e635e3a307f849052304a037b50056df1e0f2b99 | Author: olim7t <omichallat+github@gmail.com>
| 2018-12-27 17:50:51+01:00
Initialize object mapper structure
Generation of basic Mapper and Dao classes, no query methods yet.
6b0e299a1f9a82e82a5a4e56cd335991f950b07f | Author: olim7t <omichallat+github@gmail.com>
| 2018-12-27 11:50:08+01:00
JAVA-2077: Allow reconnection policy to distinguish first connection attempt
This allows the policy to generate a different schedule for the initial
connection attempt: that is, when it failed to reach any contact point
at startup, and reconnect-on-init is set.
e1d4d1c8483c8cf5ef8027998f685ff09695f30a | Author: olim7t <omichallat+github@gmail.com>
| 2018-12-12 23:21:10+01:00
JAVA-2058: Make programmatic config reloading part of the public API
Motivation:
Until now this was only possible via the internal API (by firing an
event on the bus). However this not such an exotic use case, it sounds
reasonable to expect that it will be commonly needed.
Modifications:
- add DriverConfigLoader.reload() and supportsReloading().
- remove ForceReloadConfigEvent, now obsolete since that was the only
reason for its existence.
Result:
DriverConfigLoader is part of the public API and accessible through
DriverContext, so this does not require any internal imports anymore.
1313a33406e3924fc72b28930fe2ece1448a3f2e | Author: olim7t <omichallat+github@gmail.com>
| 2018-12-06 09:56:16-08:00
Remove RequestHandler interface
Motivation:
The current API forces the concept of a "handler" on every
RequestProcessor implementation. This is not really necessary because
the driver does not manipulate this object other than directly calling
handle() on it.
Modifications:
Replace RequestProcessor.newHandler() by process(), which returns the
result directly -- in other words, the equivalent of
newHandler().handle().
Remove the RequestHandler interface.
Result:
Existing processors still use a separate handler (and this will probably
remain a common pattern) but they are not forced to do so.
In particular, it is now easier to implement a processor that caches its
results.
9ae52e46e9451e03dfeb3935897ad2d4fa99ab0a | Author: olim7t <omichallat+github@gmail.com>
| 2018-11-30 09:25:55-08:00
Delay query plan computation until throttling ready
Motivation:
If a request is throttled, there will be a delay between the handler's
construction and the time it starts sending requests. So the handler
might operate on a query plan that is slightly out of date. Even though
the delay should be short, and handlers are resilient to stale plans, it
would be better to get the query plan as late as possible.
Modifications:
Build the query plan in onThrottleReady instead of the constructor. It
can't be a final field anymore, so pass it around as a method parameter
instead.
Result:
The query plan is built right before the first call to sendRequest.
bcf5e1238c9cb4aa9246b3fcb0da4f9b45dd8093 | Author: olim7t <omichallat+github@gmail.com>
| 2018-11-06 10:58:06-08:00
JAVA-1995: Use rule chains to enforce JUnit rule order
Motivation:
Currently we don't control the execution order of the rules in our
integration tests. But in order to open a session, we need Cassandra to
be running, so we call cassandraResource.setUp() in
Sessionrule.before().
The problem is when this is coupled with a CassandraRequirement that
isn't met: cassandraResource.setUp() does not re-check the requirements,
so SessionRule forces the initialization of a cluster for a test that's
going to be ignored.
Modifications:
Use RuleChain to ensure that the server rule (CCM or Simulacron) always
initializes before the SessionRule.
Result:
No need to force the initialization of the server rule anymore.
Additionally, error handling in SessionRule.after() is simplified, since
the server rule is guaranteed to still be running.
8cb77c493c3ac30b9bdeff1195e28df0b1ba7c52 | Author: olim7t <omichallat+github@gmail.com>
| 2018-10-23 14:57:08-07:00
JAVA-2000: Fix ConcurrentModificationException during channel shutdown
Motivation:
When a channel is shut down abruptly we iterate the inFlight map in
abortAllInFlight() to fail all pending queries. But in some cases,
failing a query will also indirectly mutate the map, causing a
ConcurrentModificationException.
We ran into this particular scenario:
- the channel initializes and the write of the initial STARTUP query is
scheduled (but the write future is not complete yet)
- during the actual write task, an IOException is thrown ("connection
reset by peer"). exceptionCaught() is called and invokes
abortAllInFlight().
- abortAllInFlight() calls onFailure() on the
ProtocolInitHandler.InitRequest corresponding to the STARTUP request.
That calls ConnectInitHandler.setConnectFailure(), which closes the
channel.
- closing the channel fails the write future of the STARTUP query, which
invokes the write listener synchronously. The listener calls release()
which removes the callback from inFlight.
- the initial iteration resumes and finds out that the map was modified.
Similar issues could happen if one of the aborted requests is a
SetKeyspaceRequest that calls abortAllInFlight() recursively.
Modifications:
- don't iterate inFlight directly, make a copy to avoid concurrent
modifications.
- clear it immediately so that recursive invocations of
abortAllInFlight() have no effect.
- ensure release() is lenient if the callback is not in inFlight. For
clarity, also change it to never return the callback, the caller has
to retrieve it itself (as already done in channelRead).
Result:
The initial call to abortInFlight() clear inFlight and fails the STARTUP
query. When the write listener invokes release(), that's a no-op because
the callback is not in the map anymore.
Co-authored-by: Greg Bestland <Greg.Bestland@datastax.com>
8f09dcb07b4f036d35deb357bdda132b04764c25 | Author: olim7t <omichallat+github@gmail.com>
| 2018-10-16 18:19:59-07:00
Generate empty javadoc JAR for the shaded core module
Motivation:
It looks like Maven Central has become less permissive, we used to
deploy the shaded core without a javadocs JAR but that's not accepted
anymore.
Modifications:
Generate a javadocs JAR during the build.
For now it's a dummy, empty JAR, users can refer to the javadocs of the
unshaded one. One downside is that this won't work in IDEs; if there's a
strong demand, we can look into generating the actual javadocs later.
Result:
The driver can be deployed into Maven central again.
aaefe1c54b0767ca43744a4e55d03e34a1027bb8 | Author: olim7t <omichallat+github@gmail.com>
| 2018-09-06 09:38:18-07:00
Extract utility method resolveExecutionProfile()
Co-authored-by: Kevin Gallardo <kevin.gallardo@datastax.com>
1a646b73f3cab775a975b594f8d58a3f6fe3eaef | Author: olim7t <omichallat+github@gmail.com>
| 2018-08-28 16:25:58-07:00
Fix Revapi configuration issues
- change exclusion pattern to also exclude root package
- exclude native-protocol and Simulacron
7382540be7ca838d394a98f6c6fa0416db64a41c | Author: olim7t <omichallat+github@gmail.com>
| 2018-08-26 14:26:13-07:00
Improve error when writing on a closed DriverChannel
Returns a failed future instead of throwing directly. This allows
clients to handle it in their existing write listener.
02d9aa3e093ad2c4c9862e985399882564feb867 | Author: olim7t <omichallat+github@gmail.com>
| 2018-08-23 09:23:48-07:00
Amend Import-Package directive for query-builder
Explicitly exclude Findbugs annotations (just for clarity, they seem to
be excluded anyway).
Add `.*` at the end of excluded packages, for consistency with other
POMs.
daf2f63cf08f994f66c1d808ebb540c755c54d85 | Author: olim7t <omichallat+github@gmail.com>
| 2018-08-20 15:26:04-07:00
Suppress ErrorProne's GuardedBy error more precisely
Use annotations on the relevant methods instead of desactivating it
globally in the POM.
31abbec2bb8061885e4b07e6af0d1881b8cbf188 | Author: olim7t <omichallat+github@gmail.com>
| 2018-07-16 09:54:17-07:00
Revert Node.getLastResponseTimeNanos()
This is a bit too specific to be included in the driver out of the box.
It can still be implemented relatively easily with a custom
RequestTracker.
441d9c587ccc0c6cfc1a7c7038c9f636141fa720 | Author: olim7t <omichallat+github@gmail.com>
| 2018-07-05 11:05:52-07:00
Improve policy javadocs
Include a sample configuration snippet for each implementation.
de439f49ba594ad526ce4eca34d47adb55778118 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-27 07:49:22-07:00
JAVA-1897: Improve extensibility of schema metadata classes
Motivation:
Custom extensions of the server might add new fields to schema system
tables, calling for dedicated classes, e.g. MyCustomKeyspaceMetadata.
If Metadata methods declare exact types, converting to those custom
types will require a cast.
Modifications:
Use bounded types for all Metadata methods, e.g.
Map<CqlIdentifier, ? extends KeyspaceMetadata> getKeyspaces();
Adapt internal classes so that custom schema parsing logic can be
plugged in more easily.
Result:
Custom extensions can now extend the interfaces to specialize the types:
interface MyCustomSession extends Session {
MyCustomMetadata getMetadata();
}
interface MyCustomMetadata extends Metadata {
Map<CqlIdentifier, ? extends MyCustomKeyspaceMetadata> getKeyspaces();
}
The client doesn't need to cast anymore.
a8735d14fe6a85e8a526bcf7ae20555c93d5abe0 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-13 10:50:23-07:00
JAVA-1858: Implement Serializable in implementations, not interfaces
Motivation:
A few of our types are serializable (row, data types, etc.), this is
mainly for integration with Spark. By making our interfaces extend
Serializable, we signal that all possible implementations should do it,
this is not necessarily the case if someone writes their own version in
an application that doesn't use Spark.
Modifications:
Remove `extends Serializable` from the interfaces, have the default
classes implement it instead.
Document in the interfaces that serializability is recommended, but not
strictly mandatory.
Result:
Less burden on implementors if they're not interested in Spark
integration.
b3d97be0e0c90fe94460bac9a62e5750d0dbd579 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-13 07:48:41-07:00
JAVA-1851: Make dependency to JCIP annotations non optional
Also switch to an Apache-licensed implementation, to avoid issues with
the Creative-Commons license.
119e29dfef7c230a7c8ae6f939ddfa20b1831a86 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-08 14:14:14-07:00
Remove DriverOption.required()
Motivation:
It doesn't really work: most options aren't really required, since
any component's configuration can be completely bypassed by extending
the DriverContext and overriding the corresponding buildXxx method.
We can't validate configuration in a central place, instead each
component needs to check that its own options are valid.
Modifications:
Remove DriverOption.required(). Don't require a list of options when
building the configuration.
Result:
No more validation when loading the configuration, each component has to
do it itself.
The only goal of DriverOption (and its enum implementations) is now to
provide an easy way to find the references to a particular option in the
code.
69c06579c707aea0467b4624c17071985eb384f8 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-06 13:47:42-07:00
JAVA-1853: Allow bulk-setting values for tuples, UDTs and boundStatementBuilder
Created:
- TupleType.newValue(Object...)
- UserDefinedType.newValue(Object...)
Modified: boundStatementBuilder(Object...)
0ca916c585cf3b870fffbb719fabd7e3e85699e4 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-02 14:56:50-07:00
Run DefaultRetryPolicyIT serially
This test counts the number of messages logged by the retry policy, so
it breaks if other tests trigger retries simultaneously.
899e12e42c475d13112d86cb7a1b9ff4337b3788 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-01 22:08:34-07:00
Fix random failure in RequestLoggerIT
It's the request logger that is invoked asynchronously, so emitting
another log message is completely decorrelated. The only way to check
that there are no logs is to wait.
a0a0ff932e0e916fbd65e3fcf338eb955a950326 | Author: olim7t <omichallat+github@gmail.com>
| 2018-06-01 11:19:23-07:00
Use a CustomCcmRule in HeapCompressionIT
We have a check that CcmRule is used only in parallelizable test
(actually it would work in isolated tests as well, but it's just as easy
to change this test).
28af14402c0e852b04a655c2717fdc1f06533443 | Author: olim7t <omichallat+github@gmail.com>
| 2018-05-17 11:37:25-07:00
Handle default config profile like a regular profile
Return it from named profile methods, under its special key. It avoids
special-casing it in client code.
5001781d6294ec2dada99b2dd84f4a8ea63b946e | Author: olim7t <omichallat+github@gmail.com>
| 2018-05-14 16:41:07-07:00
JAVA-1824: Make policies overridable in profiles
Co-authored-by: Andrew Tolbert <andrew.tolbert@datastax.com>
d3d742bbaf287d331486aafe7ad8200d9bbf0fe1 | Author: olim7t <omichallat+github@gmail.com>
| 2018-05-07 13:44:12-07:00
JAVA-1803: Log driver version on first use
Co-authored-by: Alexandre Dutra <alexandre.dutra@datastax.com>
e0bb2259810672258381865447df282a8a02c3f0 | Author: olim7t <omichallat+github@gmail.com>
| 2018-04-16 16:40:07-07:00
Fix errors in SimpleStatementIT
When adding named variables to a statement, the ':' prefix must be
omitted.
The test was already wrong but the failure was masked. JAVA-1799
(4cc5e6b2b7f7e522cfd5ae67318bcdbd2505ec14) made it apparent.
55178885cc42facfcc564dd8d20f68fcb414e584 | Author: olim7t <omichallat+github@gmail.com>
| 2018-04-16 16:11:57-07:00
JAVA-1774: Standardize policy locations
For all the policies that are customizable through the configuration:
- the interface is in an 'api' package
- the implementations are in the corresponding 'internal' package
909ee5fd2cd7767e05c67743d218716c2cd4dd65 | Author: olim7t <omichallat+github@gmail.com>
| 2018-04-12 14:07:45-07:00
Address minor issues on query builder
- use shaded Guava artifact
- fix javadoc errors
7a2b1f575fcf3f3834110b1ab4d48029ee564cb4 | Author: olim7t <omichallat+github@gmail.com>
| 2018-04-02 11:57:01-07:00
Remove versions from in-tree docs.yaml
The version used for online docs is now stored in a dedicated docs_yaml
branch.
fdf75369719e6c9787581ae0143266208cf663e3 | Author: olim7t <omichallat+github@gmail.com>
| 2018-03-29 08:51:50-07:00
JAVA-1759: Revisit metrics API
- allow excluding Dropwizard completely if metrics are disabled
- expose methods to access individual metrics programatically
- open the door to switch metrics framework
c6bdbb430a36ebf5b03c9fcd25ff2062b554240f | Author: olim7t <omichallat+github@gmail.com>
| 2018-03-13 10:29:54-07:00
Add string overloads for API methods that take CqlIdentifier arguments
This is friendly to users who follow the good practice of using only
case-insensitive identifiers.
0b47c2ba9e3403e77f211b1b8df13329d6036222 | Author: olim7t <omichallat+github@gmail.com>
| 2018-03-07 10:55:31-08:00
JAVA-1515: Add query builder
Co-authored-by: Andrew Tolbert <andrew.tolbert@datastax.com>
Co-authored-by: GregBestland <Greg.Bestland@datastax.com>
8257234d8cdf83b7489d68219ffc15b1defda016 | Author: olim7t <omichallat+github@gmail.com>
| 2018-02-28 17:11:06-08:00
JAVA-1772: Revisit multi-response callbacks
Motivation:
In the previous version, multi-response ResponseCallback implementations
had to explicitly indicate when to release the stream id. It's simpler
to do it directly in InFlightHandler, provided that we have a simple way
to test when a Frame is the last that the server will send (and we
should ensure that this is always the case for future multi-response
requests).
Modifications:
Replace ResponseCallback.holdStreamId() by isLastResponse(Frame).
Remove DriverChannel.release(int).
Keep track of orphaned ResponseCallbacks in InFlightHandler, and release
them (and the stream id) when their last response is received.
Result:
ResponseCallbacks now only need to indicate how to identify the last
frame, InFlightHandler handles the rest.
Cancelled multi-response callbacks will be properly released.
7057301b5869e1f07af6da14743733b5e3823a3a | Author: olim7t <omichallat+github@gmail.com>
| 2018-02-16 10:27:06-08:00
Pass AdminRequestHandler's custom payload at construction time
This allows having a single start() method, which will simplify
throttling those requests.
94a345a987ddfacc3edde102b1112e371be92c66 | Author: olim7t <omichallat+github@gmail.com>
| 2018-02-05 09:52:57-08:00
Always look up the Category annotation on the test class
This ensures that the check introduced in datastax/java-driver@b15dc894d
works even when CcmRule is used as a method Rule.
aaa56037419f32f9bd0b5f3003135cb3b62864c5 | Author: olim7t <omichallat+github@gmail.com>
| 2018-02-01 15:47:38-08:00
Handle session wrappers in NodeStateIT
It the test suite is run with a different `session.builder` (see
SessionUtils), the session could be a wrapper.
e746b152255731d2ea7d9f52b4bd65561d201f3c | Author: olim7t <omichallat+github@gmail.com>
| 2018-01-26 13:41:33-08:00
Turn RequestProcessorRegistry into a singleton in the context
Now that there is only one Session, we don't need to create a new one on
each call. This is functionally equivalent, but we don't rely anymore on
the fact that the method is called exactly once.
01e47b5b7ee9bdab6d6afe50aafad006269c24c7 | Author: olim7t <omichallat+github@gmail.com>
| 2018-01-26 09:19:33-08:00
Fix bug in ArrayUtils.shuffleHead
If n is too large, but the random generator produced the same index for
all out-of-bound indices, swap() is a no-op and no exception would be
thrown.
8a6b736a9f295aa5888e07b59965ccdaff86e76b | Author: olim7t <omichallat+github@gmail.com>
| 2018-01-08 09:25:35-08:00
Fix visibility of ReplicationStrategy
Now that replication strategies are pluggable, this must be public.
ee0628b4ef12e04e9fe873160ab89f8b41ed791a | Author: olim7t <omichallat+github@gmail.com>
| 2017-12-15 14:40:35-08:00
Revisit custom request processor example in integration tests
- separate in api/internal packages
- declare the additional methods as default implementations on an
interface
- don't expose a concrete Cluster implementation
d6893f26c63975d4ba5f197cc0c0a8d904536672 | Author: olim7t <omichallat+github@gmail.com>
| 2017-12-04 11:25:42-08:00
Keep track of the node that caused a speculative execution
This allows us to pass that information to the policy (like in 3.x), and
possibly to keep internal stats for each node.
c0e3b53a268d6843e1053bd54a53ad3a44c2c242 | Author: olim7t <omichallat+github@gmail.com>
| 2017-11-22 11:33:50-08:00
Fix parallel execution bug in NodeStateIT
When tests are executed in parallel, the method to find an "unused"
address would occasionnally generate the address of a node in the
cluster of another test.
6999f9a725b41ebf90b403bc38a6d46525416fe0 | Author: olim7t <omichallat+github@gmail.com>
| 2017-11-22 11:12:05-08:00
Fix random failure in HeartBeatIT
`nonControlNode.acceptConnections()` is the actual fix, but also
switching SimulacronRule to class-level as a generic good practice.
c87e3854d117812bb958e5e7be2ef563a1829c98 | Author: olim7t <omichallat+github@gmail.com>
| 2017-11-22 10:06:55-08:00
Allow skipping IT categories
This can be useful when investigating a flaky test that only fails on
the command line.
43e855ab8c60a952c1f56038b396c82185836006 | Author: olim7t <omichallat+github@gmail.com>
| 2017-10-27 10:54:36-07:00
Fix bug in DefaultSession
If a node's distance was set to IGNORED but it was already IGNORED, the
session would open a new pool.
0b3561714ba84d1f2d896ef8831e8ef7eb9611f9 | Author: olim7t <omichallat+github@gmail.com>
| 2017-10-18 11:04:01-07:00
Reorganize integration tests
- use parallelizable/non-parallelizable terminology instead of
short/long.
- make non-parallelizable the default.
- run all tests in the default profile.
- run tests by default in the build, only skip for release.
edbcf78ae4885ab528b00b1411f211f5b7ecc386 | Author: olim7t <omichallat+github@gmail.com>
| 2017-10-09 11:46:41-07:00
Remove spurious warning when session creation fails
The error is already handled in whenCompleteAsync, no need to warn.
4c6b5acf2408b32c7d6b27e4e7b6dd4561c54fa0 | Author: olim7t <omichallat+github@gmail.com>
| 2017-10-02 13:03:45-07:00
Remove DriverOption#concat
Since we're moving away from the "chainable policy" pattern for load
balancing policies, relative options are not necessary anymore.
40e71ef7eab55a4828af51684a7aec17e07f70cd | Author: olim7t <omichallat+github@gmail.com>
| 2017-09-30 21:14:30-07:00
Fix bug when native library is not in the classpath
We still want Native to initialize correctly, so use an inner class
(like in 3.x).
743e583792f4ec42ed98804532838a4df16231ac | Author: olim7t <omichallat+github@gmail.com>
| 2017-09-28 13:39:50-07:00
JAVA-1605: Refactor request execution model
Motivation:
Request types encapsulate their sync and async result types. This is too
restrictive: not all requests will have exactly those two types of
results. For example, if we add a CQL reactive processor, it would be
nice to reuse the Statement classes, not create new ones.
Modifications:
Make Request non generic. Change the generic Session execution method
to: execute(RequestT request, GenericType<ResultT> resultType)
Result:
Each request processor now handles exactly one (RequestT, ResponseT)
pair, so it is possible to add new response types for existing requests.
As a consequence, the number of built-in processor has doubled
(sync/async variants for each).
886668616c92e04e2255ebc06cc209136101ff3a | Author: olim7t <omichallat+github@gmail.com>
| 2017-08-10 14:27:13-07:00
Extract ProtocolVersionRegistry interface, add method to find cluster's optimal version
43605b5dd046a3e0cca44232856ed0a1775060a0 | Author: olim7t <omichallat+github@gmail.com>
| 2017-08-08 14:26:21-07:00
Allow usage of a Runnable in ConditionChecker
The condition is considered true if the runnable doesn't throw.
fcff8e6906700e9a516fcaecdfeab5bfa46ac58b | Author: olim7t <omichallat+github@gmail.com>
| 2017-08-06 12:03:17-07:00
JAVA-1565: Mark node down when it loses its last connection and was already reconnecting
eb037bb8ce99e47450a3e73e104abaa8d4c09eca | Author: olim7t <omichallat+github@gmail.com>
| 2017-08-04 11:57:35-07:00
JAVA-1593: Reconnect control connection if current node is removed, forced down or ignored
ce99768a0178e10243d4c310d45e22170aa55bee | Author: olim7t <omichallat+github@gmail.com>
| 2017-08-02 23:10:07-07:00
JAVA-1568: Handle Reconnection#reconnectNow/stop while the current attempt is still in progress
109ea0b6cdffad42bc4ef27aad3913a89619b4c3 | Author: olim7t <omichallat+github@gmail.com>
| 2017-08-01 16:07:35-07:00
JAVA-1576: Expose AsyncResultSet's iterator through a currentPage() method
The goal is to make it more explicit that it does not return the whole
result set.
5f4b65a6d79482fbcab20deaaec777ea7488edfb | Author: olim7t <omichallat+github@gmail.com>
| 2017-07-28 14:33:58-07:00
Refactor ClusterRule to create exactly 1 instance
Introduce ClusterUtils for tests that need to create instances
themselves.
2bc7afe7ea82f518e27f3e7399a5d96a4be7c9d4 | Author: olim7t <omichallat+github@gmail.com>
| 2017-07-26 11:52:00-07:00
JAVA-1541: Reorganize configuration
connection.max-frame-length => protocol.max-frame-length
auth-provider => protocol.auth-provider
pooling.local.connections => connection.pool.local.size
pooling.remote.connections => connection.pool.remote.size
retry-policy => request.retry-policy
speculative-execution-policy => request.speculative-execution-policy
timestamp-generator => request.timestamp-generator
a44bb8ad9b3fea6b26d85e1d58e4383d665983d0 | Author: olim7t <omichallat+github@gmail.com>
| 2017-07-20 09:40:09-07:00
Rename TypeCodec's canEncode and canDecode methods
In hindsight these are not good names because each type can be the
source or the target depending on which way we're going. Revert to
`accepts()` like in 3.x.
4a066b2bf4c80bd85f0897410cf9ff20e4f90da0 | Author: olim7t <omichallat+github@gmail.com>
| 2017-07-14 12:07:42-07:00
Adjust configuration API
- rename methods
- provide a way to get all the named profiles
ceeeb8b10bc10d3cd847a4ce52e40c2270e0d8f3 | Author: olim7t <omichallat+github@gmail.com>
| 2017-07-11 16:31:23-07:00
JAVA-1498: Add a cache above Typesafe config
Motivation:
Typesafe config re-parses the option from their string representation
each time a getXxx method is called.
Modifications:
Add a cache in the config profile, to only call Typesafe config once,
and cache the result (until the config gets reloaded).
Result:
Slight performance improvement (halves the execution time of
session.executeAsync, even though that was already a fast method).
4e680fbde94366b9a213f12253cfabf7c4aea239 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-30 10:15:06-07:00
JAVA-1519: Close channel if number of "orphan" stream ids exceeds a configurable threshold
Motivation:
Sometimes the driver might stop waiting for a response on a particular
channel (for example if the request timed out, or was completed by
another speculative execution). Before this change we just kept the
response callback in our inflight map, which is a problem if we never
get the response: it creates a memory leak, and if this keeps happening
we'll eventually run out of stream ids on the channel.
Modifications:
Add a channel method to cancel a response callback, indicating that the
caller is not interested in the response anymore. Modify existing
clients to cancel their callbacks.
Track the number of "orphan" stream ids (cancelled and have not yet
received a response from the server). Initiate a graceful shutdown if
this number exceeds a threshold.
Improve the way the channel pool manages channel shutdowns: start the
reconnection as soon as an orderly shutdown has *started*, not when it
finishes.
Result:
Cancelled callbacks are not leaked anymore. When the number of orphan
ids exceed the threshold, the channel is closed gracefully and the pool
starts replacing it immediately.
abbae455ab2af7e51154aa517d7fd35d37f49cdc | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-28 15:53:16-07:00
Change cluster builder method to add type codecs
For consistency with contact points, and upcoming node state listeners.
ca1bd98233144ee2ffa4245f9d9ade3d4911cb33 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-23 15:01:37-07:00
Properly initialize pool when a node gets added
The LBP must change the distance to LOCAL (it starts as IGNORED) in
order to create the initialization of the pool in DefaultSession.
Additionally, improve NodeStateManager to avoid a duplicate refresh for
added nodes.
76aae9954ff167013007d01aeabef7fa04ebaccf | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-22 16:08:23-07:00
JAVA-1531: Merge CqlSession and Session
The CQL-specific overloads of `execute` used to be defined in a
sub-interface, which in retrospect was more confusing than helpful.
d9514a00b1ef3cf6966beab457ff8e04c5197832 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-22 09:52:45-07:00
Add builder method for a single contact point
Mostly for nicer examples in the manual.
3c43b7973ed853805fdad7f6536c5cce7f7c23e3 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-21 15:50:32-07:00
Use id of UNPREPARED response to reprepare on the fly
Motivation:
When we execute a prepared statement and find out that the coordinator
doesn't have it in its cache, it's not always practical to rely on the
original statement to find out what to reprepare: in particular, it
could be batch and we would have to traverse all children to identify
the corresponding bound statement.
Modifications:
Use the id returned in the UNPREPARED response to look up the payload to
reprepare in a cache. Because we don't want to introduce a dependency
between CqlRequestHandler and CqlPrepareHandler, that cache is owned by
the Session, and contains only protocol-level data, in a class that is
agnostic to the PreparedStatement implementation.
Result:
Reprepare on the fly without inspecting the original statement. In
addition, having reprepare data at the session level will prove useful
if we decide to implement the "reprepare on up" feature.
7df79426eb9f3448737a064b18c338060bdd3f24 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-19 19:07:25-07:00
Reuse text codec in ProtocolInitHandler
It duplicated the code because it was initially written before the
codecs.
8d7ae3b0c51fb6634e38cb0395df3e1416c6e8c2 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-16 16:56:19-07:00
JAVA-1496: Improve log messages
Add normalized prefix to every log message.
Add more log messages.
00193939c82a1c2627229d16e4763afc34c0267b | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-15 15:49:04-07:00
JAVA-1499: Wait for load balancing policy at cluster initialization
Motivation:
In the previous version, the cluster was marked as initialized as soon
as the topology monitor had initialized. This created a race condition
where a session could be created before the LBP was initialized, observe
all nodes in the initial IGNORED state and not create any pool.
Modifications:
Don't complete the cluster init future until the LBP has initialized.
Result:
Cluster.connect is now guaranteed to see the node distances initialized
by the LBP.
02b90744be440e7df429eccc230df179baa5a10c | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-15 09:11:32-07:00
Don't throw Exception from close methods
It is not needed since the driver throws runtime exceptions only. It
avoids having to catch it in try-with-resources blocks.
30121daa37df6ec32558bf2189b9cf218e236cd9 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-14 16:11:08-07:00
Revisit request-level configuration
- add missing parameters (tracing, custom payload, etc.)
- add idempotence and use it in CqlRequestHandler
- add named parameters to SimpleStatement and move to a builder
1ffdcc737c34cb39c1f74be6bb48e8acb445c45b | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-13 09:44:47-07:00
Remove config.getDuration variant
Having two variants is confusing in unit tests because you need to mock
the exact one used in the test. It's easy enough to convert to the
desired unit from client code.
ef2b0b98e07f3740d44f248816a2627fc1d75463 | Author: olim7t <omichallat+github@gmail.com>
| 2017-06-09 10:46:39-07:00
Implement synchronous CQL result set
Paging is temporarily disabled because it would cause a failure when the
result set initializes. It will be reestablished in the next commit.
1f873daeef8043549f69c2262a2ed88ad8961679 | Author: olim7t <omichallat+github@gmail.com>
| 2017-05-10 13:08:53-07:00
Revert "Pass the node in response callbacks"
This reverts commit 8ab5ae66bd2cb5a0c465c42f95fdb28d8bb06fb6.
8ab5ae66bd2cb5a0c465c42f95fdb28d8bb06fb6 | Author: olim7t <omichallat+github@gmail.com>
| 2017-05-09 16:44:31-07:00
Pass the node in response callbacks
This will simplify request handler implementations.
c7c2d71210a42e6d0a035fbb04ba6317a41ae610 | Author: olim7t <omichallat+github@gmail.com>
| 2017-05-03 17:41:10-07:00
Fix concurrency issue in event filter
List needs to be concurrent because it is updated by multiple "readers".
65184cd42ce3d84edd3d8dde39ed9b29cf7df500 | Author: olim7t <omichallat+github@gmail.com>
| 2017-04-26 15:23:47-07:00
Init pool with a node instead of an address
As a consequence, channel events can now use a node as well.
658419da1725e4632a159d25a33d93f9a2f41a36 | Author: olim7t <omichallat+github@gmail.com>
| 2017-04-26 08:57:00-07:00
Add cluster shutdown
Introduce AsyncAutoCloseable and have all driver components implement
it.
Note: user-provided components like LBP and AddressTranslator are not
closed yet.
c05e014dcf8569de79c78cb70119f8e4dd806de2 | Author: olim7t <omichallat+github@gmail.com>
| 2017-04-25 13:56:17-07:00
Optimize codec registry hot path
- test UDT and tuple after primitives in codecFor(Object)
- use instanceof in canEncode(Object) where possible
- use Class#isAssignableFrom or `==` in canEncode(Class) where possible
c4b16b23be910d40b966d21e60ae8415c21de068 | Author: olim7t <omichallat+github@gmail.com>
| 2017-04-19 12:46:20-07:00
Check that timeout future is not null before cancelling it
onResponse can apparently be invoked before onWriteComplete (observed it
in tests).
dc2dd48bb9c3f1fdfa4b85d98df79f0820325885 | Author: olim7t <omichallat+github@gmail.com>
| 2017-04-06 09:11:15-07:00
Set up metadata infrastructure
This commit still contains a lot of work in progress, but it adds the
beginning of the initialization sequence, where the driver connects to
the cluster and retrieves the list of nodes.
The control connection should be close to its final implementation, and
is fully tested.
76ef0a2d045fc2bfd7e25269fd7d89f4c129ff8d | Author: olim7t <omichallat+github@gmail.com>
| 2017-04-03 16:18:25-07:00
Add write and flush coalescing
This required a few changes to DriverChannel so that coalescing does not
mess with the close/forceClose sequence.
f6cab37d5ee42313c7a5618c5d0694f312c9c194 | Author: Stefania Alborghetti <stefania.alborghetti@datastax.com>
| 2015-09-30 10:46:34-05:00
Suppress some pushed events when rpc_address is shared
Patch by Stefania Alborghetti; reviewed by Olivier Michallat and Tyler Hobbs for
CASSANDRA-10052