At the moment, data formats are managed globally. That means each process application has access to the same data format instances. This can be problematic when data formats need to be configured in a process-application-specific way.
For example, a Jackson serializer for a specific class should be registered with the ObjectMapper the Spin json dataformat uses. As of now, this forces users to declare configurators on the classpath of the Spin process engine plugin and therefore requires these custom classes to be present there as well. It is not possible to customize serialization of instances of classes that are contained in a process application.
Apart from the effort of implementation, the current implementation makes configuration in certain scenarios impossible. For example, on WebLogic the joda-time library is always present in the system's classpath. It is not possible that an application brings a custom version of joda-time (for the reason mentioned in the paragraph above) and it is also not possible to deploy the custom joda-time version in a location that is accessible to both, the spin plugin as well as the process application.
Implementation idea:
- cache and resolve data format instances like EL resolvers in the process application instance
This is the controller panel for Smart Panels app
- is related to
-
CAM-5244 I cannot use a process-application-local data format to serialize object variables
- Closed
-
CAM-5246 I can use process-application-specific data formats for native JSON/XML variables
- Open
-
CAM-5245 I can use process-application-specific data formats for Spin standalone invocations
- Closed
- links to