Versions Compared

Key

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

...

  • To define new (more logical?) structure of where commands are implemented and defined.
  • Allow easier use of commands by the App developers.
  • Remove command pooling.

Further (future) goals:

  • Better documentation (list of commands with description, and for each command a list of parameters).
  • Remove command pooling.
  • Get rid of the Commons Chain library (see Greg's comment).
  • Allow commands to be injected.
  • Allow configuration-by-code for commands.

...

Old pathNew pathNote
/modules/adminInterface/commands/default/activate/modules/activation/commands/default/activate 
/modules/adminInterface/commands/default/deactivate/modules/activation/commands/default/deactivate 
/modules/adminInterface/commands/website/activate/modules/ui-pages-app/commands/website/activateComposite command, composed of 'version' and 'default-activate' command.
/modules/adminInterface/commands/website/delete/modules/ui-pages-app/commands/website/delete 
/modules/dms/commands/dms/activate/modules/dam-app-assets/commands/dms/activateComposite command, composed of 'version' and 'default-activate' command.
/modules/dms/commands/dms/delete/modules/dam-app-assets/commands/dms/delete 

Remove Command Pooling

The pooling capabilities will be removed from the MgnlCommand base class, and the CommandsManager will be changed to create new instance for each getCommand() or executeCommand() call. 

Proposals for future goals (not to be implemented in this sprint):

...

New interface Command (a 'copy' of the one from the Commons Chain library) will be defined in the info.magnolia.commands package. (Option: simply remove 'implements Command' from the MgnlCommand class definition.)

The MgnlCatalog class will be rewritten to provide the functionality of the org.apache.commons.chain.impl.CatalogBase class.

This will also require to remove the dependency to org.apache.commons.chain.Context interface from the interface info.magnolia.context.Context, and cross-check for this dependency throughout the code.

...