@Override public RequestContext createContext() { return delegate.createContext(); }
@Override public RequestContext execute( Executable executable, RequestContext ctx ) { try { if (delegate == null) { ExecutableRunner<RequestContext> runner = ExecutableRunner.create(); RequestContext context = runner.createContext().with( runtime.getKieSession() ); return runner.execute( executable, context ); } else { return delegate.execute(executable); } } catch (RuntimeException e) { if (retry) { return delegate.execute(executable, ctx); } else { throw e; } } }
@Override public RequestContext createContext() { return delegate.createContext(); }
@Before public void setup() { InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); ksession = kbase.newKieSession(); runner = ExecutableRunner.create(); context = ( (RegistryContext) runner.createContext() ).register( KieSession.class, ksession ); }
@Test public void testDifferentConversationIds() { ExecutableRunner<RequestContext> runner = ExecutableRunner.create(); RequestContext requestContext = runner.createContext(); ExecutableBuilder f = ExecutableBuilder.create(); f.newApplicationContext("app1").startConversation() .getKieContainer(releaseId).newSession() .insert("h1") .fireAllRules() .dispose(); runner.execute(f.getExecutable(), requestContext); String conversationId = requestContext.getConversationContext().getName(); runner.execute(f.getExecutable(), requestContext); assertNotEquals(conversationId, requestContext.getConversationContext().getName()); }
@Override public RequestContext execute( Executable executable, RequestContext ctx ) { try { if (delegate == null) { ExecutableRunner<RequestContext> runner = ExecutableRunner.create(); RequestContext context = runner.createContext().with( runtime.getKieSession() ); return runner.execute( executable, context ); } else { return delegate.execute(executable); } } catch (RuntimeException e) { if (retry) { return delegate.execute(executable, ctx); } else { throw e; } } }