[!!!][TASK] Remove canValidate() from GenericObjectValidator

The canValidate() method on the GenericObjectValidator has been around
for years in various forms, but is not used anymore.

Marked as breaking because it had been annotated as @api for no real
reason.

Change-Id: Icba6fa9fa86a4c253e546aeb4c5f0f082d2eabb3
Releases: master
[BUGFIX] Keep array keys with nested _descendAll in JsonView

When nesting _descendAll the JsonView discards array keys. This change
fixes that.

Change-Id: I84ff434cd3e6768c8e58815d1329a36de8d9e6b7
Fixes: #46046
Releases: master, 2.0
[TASK] Tweak some unit tests

Basically a non-functional change that simply gets rid of some
warnings and a skipped test.

Change-Id: I670b775b20e133784aec3314abbff721ec0b49d1
Releases: master
[TASK] Two tweaks to the documentation

Add a hint on setting the default collation for MySQL and tweak the
installation instructions a tiny bit.

Change-Id: Iebc885354224e0f4ab9bf2e9a593b2a4162f49ec
Releases: master, 2.0
[BUGFIX] Reintroduce support for entities with custom id properties

This adjusts the pointcut expressions of the PersistenceMagicAspect
to introduce UUID identifiers only to entities that do not contain custom
identifier properties (annotated with @ORM\Id).

This change also refactors the unit tests and adds functional tests for
the aspect.

Change-Id: I0da12aefeeaa0e92b48b85a79e774efa738a2e49
Fixes: #46883
Releases: master, 2.0
[FEATURE] Allow split configuration sources

With this change it is possible to allow split configuration sources
when defining a custom configuration type. This allows to use multiple
YAML for a type (when using the bundled YamlSource), which will be
merged together.

Change-Id: Ifb957d182fe8d2f417f5ff1f695215df9666d287
Related: #37854
Releases: 2.0, master
[TASK] Cleaned up configuration:validate command

Related: #44990
Releases: master, 2.0
Change-Id: I7ab217f3ba59b71fe0cfa163f809026765963e4e
Merge "[BUGFIX] Reintroduce support for entities with custom id properties"
[!!!][FEATURE] Handle roles consistently as objects

With this change roles are consistently used as objects.

To prevent naming conflicts between roles from different packages the
package key is added to the role names.

The handling of roles now is more strict and does not allow the use of
not configured (non-existent) roles anymore.

Roles are now referenced as real instances instead of their string
identifiers in models. Roles which were defined in policies are now
automatically mirrored to the RoleRepository (usually stored as a
table in a database).

The getRoles() method has been removed from TokenInterface.

Change-Id: I39f335baa01fbe9b883e98e85cb1f063bbaf5744
Resolves: #28862
Resolves: #43578
Related: #37451
Related: #27698
Releases: 2.0, master
Merge "[FEATURE] Allow split configuration sources"
Merge "[!!!][FEATURE] Handle roles consistently as objects"
[BUGFIX] Initialize $roleRepository correctly

The $roleRepository is set "manually" in initializeRolesFromPolicy() -
only if caches are outdated. But the $roleRepository is needed even if
the caches are up to date, so this breaks.

This change moves the initialization outside the check.

Change-Id: Ia7d0261a315a362d52063ee4dbfe04053bde5679
Fixes: #47115
Releases: master, 2.0
Merge "[!!!][TASK] Remove canValidate() from GenericObjectValidator"
Merge "[BUGFIX] Keep array keys with nested _descendAll in JsonView"
Merge "[TASK] Tweak some unit tests"
[TASK] Re-add Testing Routes.yaml

This partly reverts I9aa80105cf05e675fbb6ca26bd99f377f52254c8
which rendered functional routing tests useless (they are skipped if
the testing routes are not available).

Now, if Flow Subroutes are included in a distribution, Routing tests
will be executed again.

Change-Id: I5001e1fc764335e5e67a75cfc0ce02760585de04
Releases: master, 2.0
[TASK] Throw exception on lacking @var annotation

In the Validation\ValidationResolver now an
exception is thrown if the validated
property does not have an @var annotation
which is mandatory.

This prevents a Notice exception when
accessing the not present 'var' key
on the tag values array, and gives instead
a more helpful exception message.

Releases: master, 2.0
Change-Id: I293006d1bbe9d069e9f64aff57ae47a243009927
Merge "[TASK] Two tweaks to the documentation"
[FEATURE] Static compilation of compile time data

Implement a CompileStatic annotation for static methods that will be
evaluated by the proxy builder in production. Update bootstrap and some
classes to enable efficient caching of reflection information and lazy
loading of the reflection service.

Note: It is not possible to give a type hint to those static methods,
since it could be a DependencyProxy that is actually passed.

Change-Id: Ic29505a98a04091320294c5e389cc4e09d514fcd
Related: #46371
Releases: master
[TASK] Remove @-operator again in SimpleFileBackend and ClassLoader

This change removes the shut-up operator again from include_once()
calls in the ClassLoader and SimpleFileBackend in order to provide
meaningful error messages to the developer if class files or cache
entries were not found.

Change-Id: I45a338cca7bd221ba88eeb4eb699796a2447b16c
Related: #46689
Releases: 2.0, master