LPS-49146 Define a common interface for all Document Library DisplayContexts. If we see it fits we can further generalize this pattern to the whole portal but I prefer to start with document library as a prototype first.
LPS-49146 Create a base implementation class for the DLDisplayContext interfaces. DLDisplayContext can be chained linearly (like servlet filters, for instance) so that overriders can delegate in the default portal implementation and also to be able to install more than one overriding plugin. Thus, they always receive a parent display context. Also, a DLDisplayContext is always be associated to a request and a response (given that it lives in the presentation layer).
LPS-49146 Create a base implementation class for the DLFileEntryActionsDisplayContext interface. A DLFileEntryActionsDisplayContext is always associated with a FileEntry and a FileVersion, representing the business objects from which we want to query available actions.
LPS-49146 Create the DLFileEntryActionsDisplayContext. This type of display context is used to know which actions are available in the UI for a given FileEntry and FileVersion.
LPS-49146 Create an interface to register factories for DLFileEntryActionsDisplayContext as OSGi components. This is the interface that extension plugins will use. The factory can wrap the given parentDLFileEntryActionsDisplayContext inside a decorator or return it without modification if it cannot handle the given FileEntry and FileVersion.
LPS-49146 Adapt the old DLFileEntryActionsDisplayContext class to the newly created interface. I rename it to DefaultDLFileEntryActionsDisplayContext since it will be the default portal implementation of DLFileEntryActionsDisplayContext. I also remove the method getDLActionsDisplayContext() since we need to decouple the different display contexts to be able to override them via OSGi easily.
LPS-49146 Create a helper class for the portal to chain the DefaultDLFileEntryActionsDisplayContext with the DLFileEntryActionsDisplayContexts coming from OSGi extension plugins.
LPS-49146 Adapt JSPs to the new DLFileEntryActionsDisplayContext lifecycle.
LPS-49146 add public
LPS-49146 make it private?
LPS-49146 SF
LPS-49146 SF
LPS-49146 sort
LPS-49357 SF
LPS-49357 SF