Captain-P-Goldfish/SCIM (de.captaingoldfish:scim-sdk-client)
### [`v1.22.0`](https://togithub.com/Captain-P-Goldfish/SCIM-SDK/releases/tag/1.22.0)
[Compare Source](https://togithub.com/Captain-P-Goldfish/SCIM/compare/1.21.1...1.22.0)
### SCIM Server
#### Features
- MsAzure sub-attribute-path-references in resource-patch-requests are now supported natively and do not require the workaround-implementation anymore.
- It is now possible to implement and inject custom-workarounds for the patch-implementation if needed. see: https://github.com/Captain-P-Goldfish/SCIM-SDK/wiki/Patching-resources#adding-and-modifying-custom-patch-workarounds-since-1220
- Patch is by default getting the current state of the resource from the `ResourceHandler.getResource(...)`-method and is passing the patched-result to `ResourceHandler.updateResource(...)`. It is now possible to handle the patch-operations manually. This can be used to reduce the overall payload on the requests and reduce problems with concurrent-patch-requests. see: https://github.com/Captain-P-Goldfish/SCIM-SDK/wiki/Patching-resources#catch-patch-operations-and-handle-them-manually-since-1220
- You can now access the complete attribute-register directly from the `ResourceType` object. Several attribute registers were added:
```java
@Getter(AccessLevel.PUBLIC)
private Map> complexRegister = new HashMap<>();
@Getter(AccessLevel.PUBLIC)
private Map> multivaluedComplexRegister = new HashMap<>();
@Getter(AccessLevel.PUBLIC)
private List readOnlyAttributeRegister = new ArrayList<>();
@Getter(AccessLevel.PUBLIC)
private List immutableAttributeRegister = new ArrayList<>();
```
the same attribute-registers are available from the `Schema`-object
- Introduced an interceptor concept with the help of [@alexandertokarev](https://togithub.com/alexandertokarev). This might e.g. be used to add a partial transactional concept to your implementation if you do not want to make the whole request transactional.
#### Change of behaviour
- Patch Operations on readOnly-attributes will no longer fail but will be ignored. They will not be passed to the patchHandler anymore. This applies also to sub-attributes of readOnly complex-attributes. So if the sub-attribute has a mutability of readWrite, the parent-attribute is readOnly though the patch-operation is ignored.
#### Bug Fixes
- Fixed [#335](https://togithub.com/Captain-P-Goldfish/SCIM/issues/335)
- an error was fixed that caused a `BadRequestException` if a multivalued-complex-attribute was patched with the `replace` operation that marked a new element as primary.
### SCIM Client
#### Features
- A `MetaConfigLoaderBuilder` was added. It is now possible to call `scimRequestBuilder.loadMetaConfiguration()` or `scimRequestBuilder.loadMetaConfiguration(MetaConfigRequestDetails metaConfigLoaderDetails)` to retrieve all meta-data from the discovery-endpoints of the remote-provider.
#### Change of behaviour
- The `getAll`-method of the `ListBuilder` will now correctly stop to retrieve resources when the configured `count`-limit is reached. If you set a count-value that exceeds the `maxCount` value of the remote provider the `getAll` method will continue to send get-requests until the number of configured resources is retrieved as you have configured it.
#### Bug Fixes
- Fixed a possible `StackOverflow` if the `getAll`-method of the `ListBuilder` was called.
- Fixed lost `BulkResponse`-operations due to a concurrency conflict with handling lists. This did only occur if a lot of bulk-requests were sent with the parameter `runSplittedRequestsParallel=true`. From my experience of operations splitted into 6 parallel requests 4 to 6 `BulkResponseOperations` were lost. So we have had 100 operations and got 94 to 96 in the result-list.
- Patch requests will now also accept responseCode `204`.
### Common Modul
#### Feature
- A new implementation was added to compare `ResourceNodes` based on specific criteria. The class `ResourceComparator` can be used to compare `ResourceNodes` partially by adding the `SchemaAttritbutes` that should be compared or that should not be compared. You can choose if the given attributes should be included or excluded during comparison.
Configuration
📅 Schedule: Branch creation - "every weekend" in timezone US/Eastern, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
â™» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
1.21.1
->1.22.0
Release Notes
Captain-P-Goldfish/SCIM (de.captaingoldfish:scim-sdk-client)
### [`v1.22.0`](https://togithub.com/Captain-P-Goldfish/SCIM-SDK/releases/tag/1.22.0) [Compare Source](https://togithub.com/Captain-P-Goldfish/SCIM/compare/1.21.1...1.22.0) ### SCIM Server #### Features - MsAzure sub-attribute-path-references in resource-patch-requests are now supported natively and do not require the workaround-implementation anymore. - It is now possible to implement and inject custom-workarounds for the patch-implementation if needed. see: https://github.com/Captain-P-Goldfish/SCIM-SDK/wiki/Patching-resources#adding-and-modifying-custom-patch-workarounds-since-1220 - Patch is by default getting the current state of the resource from the `ResourceHandler.getResource(...)`-method and is passing the patched-result to `ResourceHandler.updateResource(...)`. It is now possible to handle the patch-operations manually. This can be used to reduce the overall payload on the requests and reduce problems with concurrent-patch-requests. see: https://github.com/Captain-P-Goldfish/SCIM-SDK/wiki/Patching-resources#catch-patch-operations-and-handle-them-manually-since-1220 - You can now access the complete attribute-register directly from the `ResourceType` object. Several attribute registers were added: ```java @Getter(AccessLevel.PUBLIC) private MapConfiguration
📅 Schedule: Branch creation - "every weekend" in timezone US/Eastern, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
â™» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.