JBPM4.4源码与设计模式

processEnginee中有2个
transient protected ThreadLocal<List<UserProvidedEnvironmentObject>> userProvidedEnvironmentObjectsThreadLocal = new ThreadLocal<List<UserProvidedEnvironmentObject>>();
  transient protected ThreadLocal<String> authenticatedUserIdThreadLocal = new ThreadLocal<String>();
 
看来是在这个地方进行多线程处理

在进这个之前,发现有一个地方,出现classnotfound的错误,但是在console的端口上没有显示。

执行这个内容的时候
   userCommandService.execute(new CheckDbCmd());

出现Throwable的问题。估计是拦截器进行了拦截。

public class WireParser extends Parser {

  public static final String[] DEFAULT_WIRE_BINDING_RESOURCES = new String[]{
    "jbpm.wire.bindings.xml",
    "jbpm.user.wire.bindings.xml"
  };

构建责任链的位置
在CommandServiceDescriptor类中的
public Object construct(WireContext wireContext) 方法中有
Interceptor interceptor = (Interceptor) descriptor.construct(wireContext);

2013年3月22日,补充。
Hibernate的xml配置中,发现taskimpl类中的
protected Long executionDbid;
  protected Long superTaskDbid;
protected boolean isNew;
在xml中,没有映射。那么就是没有在数据库中进行存储。
另外,有几个属性是父类的属性,他也进行了xml配置映射到数据库的列中。

taskimpl是属于领域对象,它与dbsession之间形成双重依赖。与贫血模式的架构明显不同

猜你喜欢

转载自sunsteven.iteye.com/blog/1580995
今日推荐