Dan Haywood created ISIS-1860:
---------------------------------
Summary: CommandReification.DISABLED is broken / incorrectly
documented.
Key: ISIS-1860
URL: https://issues.apache.org/jira/browse/ISIS-1860
Project: Isis
Issue Type: Documentation
Affects Versions: 1.16.0
Reporter: Dan Haywood
Fix For: 1.16.1
Don't intend to change the implementation, but what I observe is that setting
commandReification=DISABLED does not necessarily prevent a command from being
persisted. All it does is prevent a CommandFacet from being installed on the
corresponding action or property in the metamodel.
A Command object is always created by CommandContext. If there is a
CommandService implementation, then it delegates to that to act as the factory
of the Command. So reification always occurs.
If an action invocation or property edit causes objects to be modified, then
the Command#setPersistHint(...) is set to true. And, if there is no command
facet, then the CommandServiceJdo will default the Command#setPersistence(...)
to PERSIST_IF_HINTED.
The net result is that if commandReification is DISABLED, then commands are
still persisted if they cause any objects to be dirtied.
To prevent commands being persisted, instead use
@Action(commandPersistence=NOT_PERSISTED), and make sure that
@Action(command=ENABLED).
object is updated with a persist hint. In the case of the incode platform's
Command module, the CommandService#complete(Command) is called, its
implementation will
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)