В Activiti все сложные объекты сериализуются и хранятся в базе данных с использованием сериализации Java. Я хочу переопределить это поведение для своих пользовательских типов и сохранить объекты как JSON. Это поможет мне получить больше контроля над сохраненным объектом.Проблема с переменной переменной Activiti
Я создал свой собственный VariableType для этого. Ниже приведен фрагмент кода
public class CustomVariableType extends ByteArrayType{
// overrided all the needed method.
}
Эти типы настроены в Activiti осущ конфигурации, как показано ниже:
public class WorklistConfigurationService {
private ProcessEngineConfigurationImpl processEngineConfigurationImpl;
private List<CustomVariableType> customVarsTypes;
public void init(){
logger.debug("inside init");
for(VOVariableType varType : voVars){
logger.debug("adding type {}", varType.getTypeName());
processEngineConfigurationImpl.getVariableTypes().addType(varType, 0);
}
}
// getter and setters...
}
Ниже, как я инъекционного значения выше в Спринг
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="worklistConfigurationService"
class="...WorklistConfigurationService" init-method="init">
<property name="customVarTypes">
<list>
<bean id="var1" class="...CustomVariableType">
<constructor-arg type="java.lang.String" value="custom" />
<constructor-arg type="java.lang.Class"
value="..CustomType" />
</bean>
</list>
</property>
<property name="processEngineConfigurationImpl" ref="processEngineConfiguration" />
</bean>
Но новый Механизм сериализации никогда не используется двигателем activiti. Вместо этого используется стандартная сериализация по умолчанию. Может кто-то помочь в решении этой проблемы.
Вы также переопределили метод 'isAbleToStore' в' CustomVariableType'? А что такое voVar? – matts
@matts Я просто пытался скрыть имена моих бизнес-классов. переименовали voVars в пользовательские типы. Да, я переопределил метод isAbleToStore. – ajjain
Я не знаю, как работает тот же кусок кода. Мой плохой, может кто-то закрыть эту проблему. BTW Я планирую поделиться этим с GIST, чтобы это можно было отнести. Это одна из наименее задокументированных, но очень полезных функций. Будет обновлен здесь, когда он будет выполнен с помощью GIST. Модератор, пожалуйста, сообщите, не разрешено ли использование кодовых ссылок. – ajjain