Conversation
Codecov Report
@@ Coverage Diff @@
## main #1566 +/- ##
=============================================
+ Coverage 56.13% 76.24% +20.11%
- Complexity 0 2084 +2084
=============================================
Files 150 281 +131
Lines 4949 12644 +7695
Branches 420 1006 +586
=============================================
+ Hits 2778 9641 +6863
- Misses 2029 2528 +499
- Partials 142 475 +333
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
3b9b544 to
f73cbcf
Compare
rymurr
left a comment
There was a problem hiding this comment.
A few minor comments. Overall i think it looks good.
servers/services/src/main/java/org/projectnessie/services/rest/ContentsResource.java
Show resolved
Hide resolved
...ces/src/main/java/org/projectnessie/services/rest/NessieJaxRsJsonMappingExceptionMapper.java
Show resolved
Hide resolved
servers/services/src/test/java/org/projectnessie/services/rest/AbstractTestRest.java
Show resolved
Hide resolved
servers/services/src/test/java/org/projectnessie/services/rest/TestJerseyRest.java
Outdated
Show resolved
Hide resolved
4fb41df to
3ab28aa
Compare
d6b5682 to
9b34beb
Compare
Co-authored-by: Laurent Goujon <laurent@dremio.com> Add JAX-RS tests for Nessie server implementation. Tests use Jersey and Weld as a alternative container environment.
snazy
left a comment
There was a problem hiding this comment.
+1
Just make sure to run ./mvnw clean install -pl servers/quarkus-server -Pnative locally.
More changes in this PR in following commits. Replace Gradle plugin with new JUnit extension. See [Add JAX-RS tests and add JUnit/Jupyter extension](projectnessie/nessie#1566)
More changes in this PR in following commits. Replace Gradle plugin with new JUnit extension. See [Add JAX-RS tests and add JUnit/Jupyter extension](projectnessie/nessie#1566)
* Bump Nessie to 0.8.2 + replace Gradle plugin with new JUnit extension More changes in this PR in following commits. Replace Gradle plugin with new JUnit extension. See [Add JAX-RS tests and add JUnit/Jupyter extension](projectnessie/nessie#1566) * Changes required by Nessie-API changes Apply changes to Iceberg required by API changes in Nessie: * [Re-introduce wrapper classes for query params of CommitLog/Entries](projectnessie/nessie#1595) * [Server-side commit range filtering](projectnessie/nessie#1596) * [Add hashOnRef query param to support time travel on a named ref](projectnessie/nessie#1589) * [Only accept NamedRefs in REST API](projectnessie/nessie#1583) * Bugfix: must send the Contents.id of the existing table Nessie's `Contents.id` is a random ID generated when the `Contents.Key` is first used (think: CREATE TABLE) and must not be changed. This change addresses a bug in the Iceberg-Nesie code that caused a new id for every change. * Throw `CommitStateUnknownException` for `renameTable` as well Follow-up of #2515 * Fix race-condition & save one roundtrip to Nessie during "commit" When commiting a change, the Nessie-API now returns the hash of the commit for the change. This returned hash should then be used as the "expected hash" for the next commit. The previous approach was to commit the change to Nessie and then do another request to retrieve the new hash of HEAD. This old approach is prone to a race condition, namely when another commit happens after "this" commit but before retrieving the "new HEAD", so "this" instance would wrongly ignore the other commit's changes during conflict checks. See [Let VersionStore.create()+commit() return the current hash](projectnessie/nessie#1089)
* Bump Nessie to 0.8.2 + replace Gradle plugin with new JUnit extension More changes in this PR in following commits. Replace Gradle plugin with new JUnit extension. See [Add JAX-RS tests and add JUnit/Jupyter extension](projectnessie/nessie#1566) * Changes required by Nessie-API changes Apply changes to Iceberg required by API changes in Nessie: * [Re-introduce wrapper classes for query params of CommitLog/Entries](projectnessie/nessie#1595) * [Server-side commit range filtering](projectnessie/nessie#1596) * [Add hashOnRef query param to support time travel on a named ref](projectnessie/nessie#1589) * [Only accept NamedRefs in REST API](projectnessie/nessie#1583) * Bugfix: must send the Contents.id of the existing table Nessie's `Contents.id` is a random ID generated when the `Contents.Key` is first used (think: CREATE TABLE) and must not be changed. This change addresses a bug in the Iceberg-Nesie code that caused a new id for every change. * Throw `CommitStateUnknownException` for `renameTable` as well Follow-up of apache#2515 * Fix race-condition & save one roundtrip to Nessie during "commit" When commiting a change, the Nessie-API now returns the hash of the commit for the change. This returned hash should then be used as the "expected hash" for the next commit. The previous approach was to commit the change to Nessie and then do another request to retrieve the new hash of HEAD. This old approach is prone to a race condition, namely when another commit happens after "this" commit but before retrieving the "new HEAD", so "this" instance would wrongly ignore the other commit's changes during conflict checks. See [Let VersionStore.create()+commit() return the current hash](projectnessie/nessie#1089)
Add JAX-RS tests for Nessie server implementation. Tests use Jersey and
Weld as a alternative container environment.
This change is