LPS-48993 ConfigurationActions registered from OSGI don't dynamically cause a portlet to enable configuration UIs
LPS-48993 SF
LPS-45541 Merge should fail on this case
LPS-48965 Properly mock all input combinations
LPS-48919 Simplify
LPS-48919 Add unit tests
LPS-48919 Add DDMFormValuesToField converter
LPS-48994 add some missing features to osgi portlet support
LPS-48994 SF
LPS-48994 SF
LPS-48728 add repository registry core classes

The idea is to be able to register new repositories (each with different
sets of capabilities) at runtime. For that, people will need to implement
the RepositoryRegistryPlugin. The portal will call the registry plugin
to register a repository creator (the name RepositoryFactory was already
taken) and its capabilities.
LPS-48728 add skeleton plugin for liferay repositories
LPS-48728 move LiferayRepository initialization logic into factory

Create the LiferayRepositoryCreator and move all Liferay*Repository
initialization logic into it.

Use the new repository creator inside the factory. Note that this is a
temporary step to keep tests passing; once finished, I'll remove all
this hardcoded code (and the spring beans).
LPS-48728 add skeleton plugin for external repositories
LPS-48728 move external repository initialization code
LPS-48728 use plugins to create repositories
LPS-48728 wire capabilities in the registry plugins
LPS-48728 add repository events core classes

The event system has three main concepts:

  - RepositoryEventType: Represents the different kinds of events that
    repositories can trigger. By using intefaces instead of an enum to
    represent event types, we're able to check at compile time that
    listeners are wired to the correct event type (i.e. it is a compile
    time error to try, for example, to register a delete listener to an
    "update" event). This is important because, internally, events are
    saved into a map where that type information is lost.

  - RepositoryEventListener: An event listener for a particular event
    type.

  - RepositoryEventHandler: Allow consumers of the API to trigger
    events of the supported types. The CapabilityRepository will use
    this to trigger events when adding/deleting/etc elements.
LPS-48728 replace hardcoded code by events
LPS-48728 don't expose implementation details

The `deleteTrashEntry` methods are implementation details of Liferay's
trash capability. Don't expose them in the interface and register the
events in the capability itself.