-
Notifications
You must be signed in to change notification settings - Fork 188
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The goal is to reduce working with undefined (null) intents as much as possible; and clarify the meaning of `defaultForKind` and `defaultForObjectClass` flags in object type definition. 1. Cleaned up, organized, and documented definition of lookup methods in ResourceSchema and ResourceSchemaUtil. The ones in ResourceSchema are preferred. (The latter ones may be removed/changed in the future.) The class ResourceObjectDefinitionResolver that originally contained some of these methods is now hidden (package-private). 2. Universal (and too fuzzy) ResourceShadowDiscriminator was replaced by more specialized classes, each of which has different fields, invariants, and algorithms for use (e.g. matching proj. contexts): - ResourceShadowCoordinates (this has existed before), - ResourceOperationCoordinates, - ProjectionContextKey, - ProjectionContextFilter, - ConstructionTargetKey. 3. Schema change: removed default values for kind and intent from ShadowDiscriminatorType. 4. Lens: There are many changes at places where projection contexts are looked for. Originally all lookups were done by RSD, now it's more diverse (situation-specific). 5. The management of LensProjectionContext#key (originally called resourceShadowDiscriminator) has been reworked. Now it's determined more eagerly than before. Also, all shadows that enter the clockwork (in ways other than via SynchronizationServiceImpl or by client as full objects) are now tried to be classified. See ProjectionContextKeyFactory#createKey. 6. "Partially classified" contexts, i.e. those that contain known kind but unknown intent, are no longer supported. The type identification is either complete (kind+intent) or none at all (objectClass only, or even not that). 7. ContextLoader/ProjectionLoadOperation were heavily refactored. These changes were necessary to adapt to changed keying of projection contexts. Also, some layering was introduced in the projection loading: see LinkLevelOperation and ShadowLevelOperation inner classes. 8. DependencyProcessor was heavily refactored. The reason is that the projection lookup mechanisms have been changed. 9. ProvisioningService#getObject now classifies shadows fetched, just like methods for searching or live sync/async update do. This resolves MID-7910. 10. Added missing "no fetch" option when updating projection contexts from sync deltas. This was omitted by mistake somewhere around 4.4. ...plus other smaller code rearrangements, improvements and fixes. Incompatible changes: 1. All new shadows that are explicitly created or linked ("by value" i.e. not from repository) must be fully classified. The client is responsible for providing both kind and intent values in them. 2. Dependency specification must contain the intent. (To be discussed.) 3. Methods in ProvisioningService have minor changes in parameter types (ResourceShadowCoordinates -> ResourceOperationCoordinates). 4. ContextLoader is now in "...model.impl.lens.projector.loader" package (relevant for logging config & trace analysis). Unrelated changes: - Trying to reduce the size of traces when embedded clockwork (typically because of the discovery) is executed. The problem is that the shadow contains the whole processing in the fetchResult. So, OperationResult#createBeanReduced was created, as well as some reduction in shadow cloning during saving of the trace is now done.
- Loading branch information
Showing
298 changed files
with
6,485 additions
and
4,830 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.