@Override public KieSession initKieSession(Context<?> context, InternalRuntimeManager manager, RuntimeEngine engine) { RuntimeEngine inUse = local.get().get(identifier); if (inUse != null && ((RuntimeEngineImpl) inUse).internalGetKieSession() != null) { return inUse.getKieSession(); } KieSession ksession = factory.newKieSession(); ((RuntimeEngineImpl)engine).internalSetKieSession(ksession); registerDisposeCallback(engine, new DisposeSessionTransactionSynchronization(manager, engine), ksession.getEnvironment()); registerDisposeCallback(engine, new DestroySessionTransactionSynchronization(ksession), ksession.getEnvironment()); registerItems(engine); attachManager(engine); return ksession; }
registerDisposeCallback(runtime, new DestroySessionTransactionSynchronization(runtime.getKieSession()), runtime.getKieSession().getEnvironment()); registerItems(runtime); attachManager(runtime); } else { runtime = new RuntimeEngineImpl(context, new PerRequestInitializer());
@Override public KieSession initKieSession(Context<?> context, InternalRuntimeManager manager, RuntimeEngine engine) { RuntimeEngine inUse = local.get().get(identifier); if (inUse != null && ((RuntimeEngineImpl) inUse).internalGetKieSession() != null) { return inUse.getKieSession(); } KieSession ksession = factory.newKieSession(); ((RuntimeEngineImpl)engine).internalSetKieSession(ksession); registerDisposeCallback(engine, new DisposeSessionTransactionSynchronization(manager, engine), ksession.getEnvironment()); registerDisposeCallback(engine, new DestroySessionTransactionSynchronization(ksession), ksession.getEnvironment()); registerItems(engine); attachManager(engine); return ksession; }
registerDisposeCallback(runtime, new DestroySessionTransactionSynchronization(runtime.getKieSession()), runtime.getKieSession().getEnvironment()); registerItems(runtime); attachManager(runtime); } else { runtime = new RuntimeEngineImpl(context, new PerRequestInitializer());