Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The idea of AppContext is to expose functionality to the App. That is, to an instance of an app.

    It should not expose methods that are only used by AppControllerImpl. These should be hidden from all other classes.

    If necessary AppControllerImpl#runningApps should be changed to <String, AppContextImpl>. Also if the intention of AppContextImpl is unclear it should be renamed to reflect the fact that is not just the default implementation of AppContext, it does much more and in fact fullfils much of the contract defined by AppController.

  • rename the AppController to AppLauncher or similar, introduce a new AppController class which takes care of the contract to the AppLauncher and keep the AppContext as thin as possible, only serving contextual information to the actual App
  • Move some of the functionality of AppContext into the info.magnolia.ui.framework.app.launcherlayout.AppLauncherGroupEntry
    • info.magnolia.ui.admincentral.app.simple.AppContextImpl#getDefaultSubAppDescriptor
    • info.magnolia.ui.admincentral.app.simple.AppContextImpl#getSubAppDescriptorById

SubAppContext

Basically in good shape - just offers a little too much.

Abstract

The SubAppContext serves multiple different purposes:

Open Issues

Eliminate methods only relevant for the implementing types - not for someone writing an app.

Basically we should question all setters on this interface.

  • e.g. setAppContext(AppContext)
    • this should automatically happen behind the scenes (in the impl) - don't see why someone should explicitly call it from outside

Tasks

Jira
serverMagnolia
jqlQuerylabels = app-api

...