Commit edbe322
Oak 12219 - upgrade azure sdk v8 to v12 for oak blob azure rework (#3014)
* OAK-12287: Update to Apache Parent POM to version 39
* OAK-12287: Update to Apache Parent POM to version 39 - revert removal of bundle-plugin version
* OAK-12289 : disabled blob id tracking for document node store (#2987)
* OAK-12289 : disabled blob id tracking for document node store
* OAK-12289 : fixed test case
* OAK-12259: oak-http: OakServlet mis-parses HTTP Basic credentials
* OAK-12293 : bump commons-io to 2.21.0 (#2997)
* OAK-12293 : bump commons-io to 2.22.0
* OAK-12293 : bump commons-io to 2.21.0
* OAK-12294 : bump commons-codec to 1.20.0 (#2998)
* OAK-12295 : bump mongo-driver-sync to 5.3.1 (#3001)
* OAK-12295 : bump mongo-driver-sync to 5.3.1
* OAK-12295 : fixed the compilation issues
* OAK-12296 : bump testcontainers version to 2.0.3 (#3002)
* OAK-12296 : bump testcontainers version to 2.0.3
* OAK-12296 : fixed the junit 4 compatibility issues
* OAK-12296 : fixed compatibulity issues with Junit 4
* OAK-12296 : fixed compatibulity issues with ES tests
* OAK-12296 : incorporated review comments to use withEnv override for ElasticTestServer
* OAK-12244: index nodes that gain a mixin rule, delete stale docs when… (#2949)
* OAK-12244: index nodes that gain a mixin rule, delete stale docs when mixin rule is lost (#2938)
When an existing node's applicable indexing rule changes at runtime (e.g. jcr:mixinTypes
added or removed), FulltextIndexEditor did not update the index because propertiesChanged
was never set — jcr:mixinTypes is not normally listed in a rule's property definitions.
Track wasIndexable (rule matched before) alongside isIndexable() (rule matches after).
In leave(), act on transitions:
- !wasIndexable && isIndexable(): node gained a rule → addOrUpdate
- wasIndexable && !isIndexable(): node lost a rule → deleteDocuments
Tests added:
- PropertyIndexCommonTest: two end-to-end integration tests (all backends)
- LuceneIndexEditor2Test: two unit tests verifying writer.docs / writer.deletedPaths
* OAK-12244: fix mixin type changes not reflected in fulltext index (#2953)
Root cause: when a node gains or loses a mixin type at runtime,
FulltextIndexEditor did not update the index because propertiesChanged
was never set — jcr:mixinTypes is not normally listed in a rule's
property definitions.
Fix: track wasIndexable (rule matched before) alongside isIndexable()
(rule matches after). In leave(), act on the indexing-rule transition:
- !wasIndexable && isIndexable(): node gained a rule → addOrUpdate
- wasIndexable && !isIndexable(): node lost a rule → deleteDocument
Split FulltextIndexWriter into two explicit operations:
- deleteDocumentTree(path): node physically removed; cascade is correct
- deleteDocument(path): node lost indexability at runtime; exact only
The original deleteDocuments used a PrefixQuery that cascaded to all
descendants; in the mixin-loss branch this was a bug — children carrying
their own mixin types were incorrectly evicted from the index.
Additional changes:
- Snapshot FT_OAK_12244_DISABLE once per commit cycle in FulltextIndexEditorContext
as typeChangeTrackingEnabled so enter() and leave() always agree
- Skip getApplicableIndexingRule(before) on the hot path via hasNodeTypeChange
guard when neither jcr:primaryType nor jcr:mixinTypes changed
- Register FT_OAK_12244 toggle in ElasticIndexProviderService
- Reuse CommitFailedException code 5 for the deleteDocument error path
Tests:
- PropertyIndexCommonTest: end-to-end integration tests (all backends)
- LuceneIndexEditor2Test: unit tests verifying writer.docs / writer.deletedPaths
- Verified: 1245 tests, 0 failures in oak-lucene
---------
Co-authored-by: Benjamin Habegger <bhabegger@adobe.com>
* OAK-12282 : defining a fixed bound for the AbstractDiskCache (#2978)
* OAK-12282 defining a fixed bound for the AbstractDiskCache
---------
Co-authored-by: patlego <patriquelegault@gmail.com>
* OAK-12303: Update mina-core dependency version to 2.1.15 (#3008) (#3010)
ack @telegrapher
Co-authored-by: Jose Antonio Insua <ungoliant@gmail.com>
* Revert "OAK-12295 : bump mongo-driver-sync to 5.3.1 (#3001)" (#3012)
This reverts commit 480eb14.
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
Ai-Assisted-By: claude
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- Sonar fixes
Ai-Assisted-By: claude
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- Sonar fixes
Ai-Assisted-By: claude
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- pin jackson version to the one in AEM to prevent transitive dep download.
Ai-Assisted-By: claude
* OAK-12219: fix Sonar annotations from PR #2989 CI run
AzureBlobStoreBackendV12:
- RuntimeException -> IllegalStateException in getMetadataRecord/getAllMetadataRecords/deleteAllMetadataRecords
- chain DataStoreException (not unwrapped IOException cause) in write() catch block
- .collect(Collectors.toList()) -> .toList() in commitBlocksAndGetSize
- instanceof pattern matching for BlobStorageException in completeHttpUpload
- nested ternary -> if-else for operation string in presigned URI error log
- return new byte[0] instead of null in readMetadataBytes; update caller check
RegressionCSOV8Test:
- swap assertEquals args to (actual, expected) order per Sonar S3415
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ai-Assisted-By: claude-code
* OAK-12219: raise unit-test coverage on new V12 code to clear Sonar gate
PR #2989 failed the quality gate at 67.9% coverage on new code (need 80%).
The Azure ITs that cover blob CRUD don't run in CI, so the new V12 classes
were largely uncovered. Add mock-based unit tests (Mockito mocks the Azure
BlobContainerClient/BlockBlobClient chain) so the SDK-call paths are covered
without a live Azurite endpoint.
New/expanded tests:
- AzureBlobStoreBackendV12MockTest (new): read/getRecord/exists/deleteRecord
success + 404 + storage-error paths; metadata get/exists/delete; init()
config parsing (concurrent-request clamping, secondary location, presigned
URI config); getAllIdentifiers/getAllRecords meta+no-dash filtering;
getAllMetadataRecords success; write exists/missing/length-collision;
addMetadataRecord(File); initiateHttpUpload arg validation; data record getters
- AzureHttpRequestLoggingPolicyV12Test (new): verbose on/off process() paths
- AzureDataStoreWrapperTest: createDataStore v8/v12, getDescription, init
delegation, 3-arg upload, statistics provider getter/setter
- AzureBlobContainerProviderV12Test: service-principal credential branch,
getEndpointUrl variants
Blended new-code coverage (line+branch) on the new files now ~82% locally.
Also make getOrCreateReferenceKey tolerate a null from a readMetadataBytes
override (production returns empty array; test subclasses may return null).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ai-Assisted-By: claude
* Oak 12219 upgrade azure sdk v8 to v12 for oak blob azure rework (#2992)
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fix blob upload/download related constants that control memory and streaming behavior
Ai-Assisted-By: claude
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fix blob block size, prevent size zero
Ai-Assisted-By: claude
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- removed oak-run-commons dependency on azure sdk v8 from oak-blob-cloud-azure
Ai-Assisted-By: claude
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- cached the UserDelegationKey to avoid repeated calls to get it from Azure for every URI.
Ai-Assisted-By: claude
* Oak 12219 upgrade azure sdk v8 to v12 for oak blob azure rework (#2994)
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fix blob upload/download related constants that control memory and streaming behavior
Ai-Assisted-By: claude
Ai-Assisted-By: claude-code
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fix blob block size, prevent size zero
Ai-Assisted-By: claude
Ai-Assisted-By: claude-code
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fixed automated code review findings
Ai-Assisted-By: claude-code
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- PropertiesUtil.populate() uses reflection to inject config properties (e.g. cacheSize) into the DataStore returned by createDataStore(). When the class is package-private, Java's reflection access control
blocks it because the caller is in a different package — even if the individual setter methods are public. Making the class itself public fixes that
Ai-Assisted-By: claude
Ai-Assisted-By: claude-code
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fix blob upload/download related constants that control memory and streaming behavior
Ai-Assisted-By: claude
Ai-Assisted-By: claude-code
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fix blob block size, prevent size zero
Ai-Assisted-By: claude
Ai-Assisted-By: claude-code
* Remove internal service reference from comment
Drop 'e.g. oak-repository-service' — internal detail, not relevant to Apache OSS.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ai-Assisted-By: claude-code
* OAK-12219: cache HttpClient in AzureBlobContainerProviderV12
Build the Netty HTTP client once at construction instead of on every
getBlobContainer() call. Also drops dead Properties threading and
duplicate proxy/connection-string overloads in UtilsV12.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ai-Assisted-By: claude-code
* OAK-12219: replace wildcard imports with explicit imports
Ai-Assisted-By: claude-code
* OAK-12219: move retryOptions into provider, drop getBlobContainerFromServicePrincipals
retryOptions is now a field built at construction instead of passed
per-call. Service-principal auth reuses the cached BlobServiceClient
instead of rebuilding a client on every call.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ai-Assisted-By: claude-code
* OAK-12219: address remaining PR #2982 review comments
Use SystemPropertySupplier for the JVM-property override (reschke),
rename registerService to registerDataStoreService (joerghoh), and
match the suggested "falling back to v8" log wording.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ai-Assisted-By: claude,claude-code
Ai-Assisted-By: claude-code
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fixed comments from #2982
* OAK-12219: Upgrade Azure SDK V8 to V12 for oak-blob-azure - rework
- fixed comments from #2989
---------
Co-authored-by: Julian Reschke <julian.reschke@gmx.de>
Co-authored-by: Rishabh Kumar <rishabhdaim1991@gmail.com>
Co-authored-by: Julian Reschke <reschke@apache.org>
Co-authored-by: Thomas Mueller <thomasm@apache.org>
Co-authored-by: Benjamin Habegger <bhabegger@adobe.com>
Co-authored-by: Patrique Legault <patrique.legault@gmail.com>
Co-authored-by: patlego <patriquelegault@gmail.com>
Co-authored-by: Jose Antonio Insua <ungoliant@gmail.com>1 parent 7c57aad commit edbe322
46 files changed
Lines changed: 670 additions & 144 deletions
File tree
- oak-auth-ldap
- oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage
- oak-doc/src/site/markdown
- plugins
- oak-http/src
- main/java/org/apache/jackrabbit/oak/http
- test/java/org/apache/jackrabbit/oak/http
- oak-it-osgi
- oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob
- oak-lucene/src
- main/java/org/apache/jackrabbit/oak/plugins/index/lucene
- hybrid
- writer
- test/java/org/apache/jackrabbit/oak/plugins/index/lucene
- writer
- oak-parent
- oak-run-commons
- src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined
- oak-run-elastic
- oak-run/src/test/java/org/apache/jackrabbit/oak/index
- oak-search-elastic
- src
- main/java/org/apache/jackrabbit/oak/plugins/index/elastic
- index
- test
- java/org/apache/jackrabbit/oak/plugins/index/elastic
- index
- resources
- oak-search/src
- main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/editor
- test/java/org/apache/jackrabbit/oak/plugins/index
- oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache
- oak-segment-tar/src
- main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache
- test/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache
- oak-store-document
- src
- main/java/org/apache/jackrabbit/oak/plugins/document
- test/java/org/apache/jackrabbit/oak/plugins/document/mongo
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | | - | |
17 | 15 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
36 | 39 | | |
37 | 40 | | |
38 | 41 | | |
| |||
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
81 | 84 | | |
82 | 85 | | |
83 | 86 | | |
| |||
189 | 192 | | |
190 | 193 | | |
191 | 194 | | |
192 | | - | |
| 195 | + | |
| 196 | + | |
193 | 197 | | |
194 | 198 | | |
195 | 199 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
232 | | - | |
233 | | - | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
234 | 235 | | |
235 | 236 | | |
236 | 237 | | |
| |||
262 | 263 | | |
263 | 264 | | |
264 | 265 | | |
265 | | - | |
| 266 | + | |
266 | 267 | | |
267 | 268 | | |
268 | 269 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
240 | | - | |
241 | | - | |
242 | | - | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
243 | 245 | | |
244 | 246 | | |
245 | 247 | | |
| |||
Lines changed: 27 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
21 | 19 | | |
22 | 20 | | |
| 21 | + | |
| 22 | + | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
52 | 72 | | |
53 | 73 | | |
54 | 74 | | |
| |||
Lines changed: 62 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
54 | | - | |
55 | | - | |
| 53 | + | |
56 | 54 | | |
57 | 55 | | |
58 | 56 | | |
| |||
64 | 62 | | |
65 | 63 | | |
66 | 64 | | |
67 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
68 | 125 | | |
69 | | - | |
70 | 126 | | |
71 | 127 | | |
72 | 128 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
201 | | - | |
| 201 | + | |
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
66 | 69 | | |
67 | 70 | | |
68 | 71 | | |
| |||
0 commit comments