* Fix Error/Success Conditions not evaluated case. Fix 'Cancel' final status not mapped - now mapped to Error. Fix Delete Action does not update properly group count and percentage evaluation.
Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
* Add ThreshholdRolloutGroupSuccessCondition
Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
* Cancel Action not included in ERROR/SUCCESS. Trigger SuccessAction on SuccessCondition/GroupFINISHED.
Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
* Review Findings add comments to tests
Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
---------
Signed-off-by: vasilchev <vasil.ilchev@bosch.com>
* Fix test assertions that depend on undefined row ordering
Several tests use containsExactly() or index-based comparison on query
results that have no ORDER BY clause. SQL does not guarantee row ordering
without explicit ORDER BY, and databases like YugabyteDB return results
in a different (but valid) order than PostgreSQL/H2.
These tests verify set membership (correct targets assigned, correct
actions stored), not ordering. Changed to order-independent assertions:
- AutoAssignTest: containsExactly -> containsExactlyInAnyOrder
- ControllerManagementTest: index-based loop -> containsExactlyInAnyOrderElementsOf
- TargetFilterQueryManagementTest: containsExactly -> containsExactlyInAnyOrder
Verified passing on H2 (default) and YugabyteDB (PostgreSQL-compatible).
* Trigger ECA re-check
Notes:
1. (!) Eclipselink shall be migrated to 5.0 (in 4.0.8 there are incompatible classes, e.g EJBQueryImpl doesn't implement some newer methods). In the moment is with beta (5.0.0-B12) - JUST for testing!
2. (!) Ethlo plugin doesn't work with Eclipselink 5.0, it builds with Eclipselink 4.0.8 (could be a problem)
3. Dependencies - new starters, test starters changes, some dependencies refactoring
4. Auto-configs split - package changes, some properties classes changes
5. Spring nullable org.springframework.lang.Nullable/NonNull are depecated and replaced with jspcify -> org.jspecify.annotations.Nullable/NonNull (NullMarked)
6. Lombok config - adding lombok.addNullAnnotations=jspecify - to do not mess annotations
7. Distributed lock table changes - SP_LOCK table db migration
8. Spring Retry replaced with Spring Core Retry - does repace retry in hawkbit
9. Specifications -> added Update/Delete(/Predicate) Specifications and JpaSpecificationExecutor changed
10. HawkbitBaseRepositoryFactoryBean modified to register properly
11. Jackson - 2 -> 3, package migrations, finals are not deserialized by default(enable finals deserialization, consider make non-final), too ‘smart’ tries to set complex objects instead of using non args constructor (-> @JsonIgnore), some other default configs made
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
* Modify TargetPollEvent to be per batch update (not per target)
Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
* Get use of remote event's timestame for targetPollEvent
Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
* Revert "Get use of remote event's timestame for targetPollEvent"
This reverts commit 27e3b740e2bb0b02cad1d5a6137db7928901f069.
---------
Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
* Tenant Configuration values varchar to text - support bigger values for configs
access_control_context varchar to text - support bigger values for configs
* Add size constraint in App for Tenant 'conf.value' and rollout/target_filter_query 'access_control_context
* add explicitly not null constraint for clarity
* Fix some compile warnings
* Some classes made final
* JPA entities made not serializable
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
* Refactor hawkbit core and security
* improve access to the base core features - static
* thus easiear access
* and less boilerplate passing of instances
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
* Refactor context classes
* make JSON context serialization default
* AccessContext
* Split hawkbit-security-core to other modules and remove it
---------
Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>