@Test
public void testMultiKBaseKSessionAndKAgents() throws IOException, URISyntaxException {
setupLocalCache();
final ServiceConfig config = new ServiceConfig() {{
final ServiceKBaseConfig kbase1 = new ServiceKBaseConfig("kbase1");
kbase1.addModels(models);
kbase1.addResources(resources);
kbase1.setAssetsUser("admin");
kbase1.setAssetsPassword("admin");
kbase1.setAssertBehavior(IDENTITY);
final ServiceKSessionConfig ksession1 = new ServiceKSessionConfig("ksession1");
ksession1.setType(STATEFUL);
ksession1.setUrl("myksession1");
ksession1.setKeepReference(true);
ksession1.setClockType(PSEUDO);
final ServiceKSessionConfig ksession2 = new ServiceKSessionConfig("ksession2");
ksession2.setUrl("myksession2");
ksession2.setKeepReference(false);
ksession2.setMarshalling(JAXB);
kbase1.addKsession(ksession1);
kbase1.addKsession(ksession2);
final ServiceKAgentConfig kagent1 = new ServiceKAgentConfig("kagent1");
kagent1.setNewInstance(false);
kagent1.setUseKBaseClassloader(true);
kagent1.addResource(resources.get(0));
kagent1.addResource(resources.get(1));
final ServiceKAgentConfig kagent2 = new ServiceKAgentConfig("kagent2");
kagent2.setNewInstance(false);
kbase1.addKagent(kagent1);
kbase1.addKagent(kagent2);
addKBase(kbase1);
final ServiceKBaseConfig kbase2 = new ServiceKBaseConfig("kbase2");
kbase2.addResource(new AssetReference("myPkg", "ax", "changeset", "http://localhost/cd/source", "uuidx9"));
kbase2.setAssetsUser("admin");
kbase2.setAssetsPassword("admin");
kbase2.setMbeans(true);
kbase2.setEventProcessingMode(STREAM);
final ServiceKSessionConfig ksession3 = new ServiceKSessionConfig("ksession3");
ksession3.setUrl("myksession3");
ksession3.setProtocol(WEB_SERVICE);
ksession3.setClockType(REALTIME);
final ServiceKSessionConfig ksession4 = new ServiceKSessionConfig("ksession4");
ksession4.setProtocol(WEB_SERVICE);
ksession4.setMarshalling(JSON);
kbase2.addKsession(ksession3);
kbase2.addKsession(ksession4);
final ServiceKAgentConfig kagent3 = new ServiceKAgentConfig("kagent3");
kagent3.setUseKBaseClassloader(true);
final ServiceKAgentConfig kagent4 = new ServiceKAgentConfig("kagent4");
kagent4.setUseKBaseClassloader(true);
kagent4.setNewInstance(true);
final ServiceKAgentConfig kagent5 = new ServiceKAgentConfig("kagent5");
kagent5.addResource(resources.get(2));
kbase2.addKagent(kagent3);
kbase2.addKagent(kagent4);
kbase2.addKagent(kagent5);
addKBase(kbase2);
}};
final File temp = File.createTempFile("drools-service", ".jar");