Change workflow classes to Serializable (part 1)
------------------------------------------------
Key: JSPWIKI-305
URL: https://issues.apache.org/jira/browse/JSPWIKI-305
Project: JSPWiki
Issue Type: Improvement
Components: Core & storage
Affects Versions: 2.8
Environment: All
Reporter: Andrew Jaquith
Assignee: Andrew Jaquith
Priority: Minor
Fix For: 2.8
This is a placeholder for reminding ourselves to make workflow package types
Serializable. This will, at a future date, allow workflows to be serialized to
disk between WikiEngine restarts.
This particular filing ("part 1") proposes to make the following types
Serializable:
- UserProfile/DefaultUserProfile
- UserManager.SaveUserProfileTask
- PageManager.PreSaveWikiPageTask
- PageManager.SaveWikiPageTask
This filing also proposes to make the following method parameters and return
types Serializable:
- All of the types in package com.ecyrd.jspwiki.workflow, except for
WorkflowManager
- Parameters passed to Workflow.addMessageArgument(): change from Object to
Serializable
- Parameters passed to Step.addMessageArgument() and all implementations:
change from Object to Serializable
- Values returned by Workflow.getMessageArguments(): change from Object[] to
Serializable[]
- Values returned by Step.getMessageArguments() and all implementations:
change from Object[] to Serializable[]
These changes will be made for the 2.8 release cycle. Because few workflow
implementations exist today, any backwards compatibility problems due to
narrowing scope (from Object to Serializable) are minimal.
Note that because of the fact that the current "page save" workflow Tasks in
PageManager do not all pass Serializable objects (in particular, WikiContext
which resists Serialization), certain methods must keep Object parameters and
return types -- for now. These are:
- Parameters passed to Workflow.setAttribute(String,Object)
- Parameters passed to Step.setAttribute(String,Object) and all implementations
- Value returned by Workflow.getAttribute(String)
- Value returned by Step.getAttribute(String) and all implementations
In 3.0, these parameters/return types of type Object *will be changed* to
Serializable. The issue is the lack of a proper metadata API in 2.8. Once this
is fixed, we will make these changes as "part 2" of the strategy as described
in JSPWIKI-304.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.