use of org.kie.server.services.impl.storage.KieServerState in project droolsjbpm-integration by kiegroup.
the class KieControllerCrashIntegrationTest method testCrashAfterRegistered.
@Test
public void testCrashAfterRegistered() throws Exception {
final String SERVER_TEMPLATE_ID = "template-id";
final String SERVER_NAME = "server-name";
KieServerEnvironment.setServerId(SERVER_TEMPLATE_ID);
ServerTemplate serverTemplate = new ServerTemplate(SERVER_TEMPLATE_ID, SERVER_NAME);
controllerClient.saveServerTemplate(serverTemplate);
ServerTemplateList instanceList = controllerClient.listServerTemplates();
assertEquals(1, instanceList.getServerTemplates().length);
// Register kie server in controller.
KieServerInfo kieServerInfo = new KieServerInfo(SERVER_TEMPLATE_ID, "1.0.0");
kieServerInfo.setLocation("http://127.0.0.1:20000");
kieServerInfo.setMode(KieServerMode.PRODUCTION);
kieServerInfo.setName(SERVER_NAME);
KieServerRegistry registry = new KieServerRegistryImpl();
KieServerStateRepository dummyKieServerStateRepository = new KieServerStateRepository() {
@Override
public void store(String serverId, KieServerState kieServerState) {
}
@Override
public KieServerState load(String serverId) {
KieServerState kieServerState = new KieServerState();
kieServerState.setControllers(Collections.singleton(TestConfig.getControllerHttpUrl()));
kieServerState.setConfiguration(new KieServerConfig());
if (TestConfig.isLocalServer()) {
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_USER, "", null));
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_PASSWORD, "", null));
} else {
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_USER, TestConfig.getUsername(), null));
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_PASSWORD, TestConfig.getPassword(), null));
}
return kieServerState;
}
};
registry.registerStateRepository(dummyKieServerStateRepository);
KieServerController controller = new DefaultRestControllerImpl(registry);
controller.connect(kieServerInfo);
// Check that kie server is registered.
serverUp.await(5, TimeUnit.SECONDS);
ServerInstanceKeyList list = controllerClient.getServerInstances(instanceList.getServerTemplates()[0].getId());
if (list.getServerInstanceKeys().length == 0) {
// Race condition when health check deleted server instance sooner than we were able to check. Resubmitting server instance again.
serverUp = new CountDownLatch(1);
serverDown = new CountDownLatch(1);
controller.connect(kieServerInfo);
serverUp.await(5, TimeUnit.SECONDS);
list = controllerClient.getServerInstances(instanceList.getServerTemplates()[0].getId());
}
assertNotNull(list.getServerInstanceKeys());
assertEquals(1, list.getServerInstanceKeys().length);
// Check that kie server is deregistered automatically.
serverDown.await(5, TimeUnit.SECONDS);
list = controllerClient.getServerInstances(instanceList.getServerTemplates()[0].getId());
assertNotNull(list.getServerInstanceKeys());
assertEquals(0, list.getServerInstanceKeys().length);
}
use of org.kie.server.services.impl.storage.KieServerState in project droolsjbpm-integration by kiegroup.
the class KieControllerValidationIntegrationTest method init.
@Before
public void init() {
dummyKieServerStateRepository = new KieServerStateRepository() {
@Override
public void store(String serverId, KieServerState kieServerState) {
}
@Override
public KieServerState load(String serverId) {
KieServerState kieServerState = new KieServerState();
kieServerState.setControllers(Collections.singleton(TestConfig.getControllerHttpUrl()));
kieServerState.setConfiguration(new KieServerConfig());
if (TestConfig.isLocalServer()) {
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_USER, "", null));
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_PASSWORD, "", null));
} else {
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_USER, TestConfig.getUsername(), null));
kieServerState.getConfiguration().addConfigItem(new KieServerConfigItem(KieServerConstants.CFG_KIE_CONTROLLER_PASSWORD, TestConfig.getPassword(), null));
}
return kieServerState;
}
};
registry = new KieServerRegistryImpl();
registry.registerStateRepository(dummyKieServerStateRepository);
}
use of org.kie.server.services.impl.storage.KieServerState in project droolsjbpm-integration by kiegroup.
the class AbstractKieServerImplTest method testPersistScannerState.
@Test
public // https://issues.jboss.org/browse/RHBPMS-4087
void testPersistScannerState() {
String containerId = "persist-scanner-state";
createEmptyKjar(containerId);
// create the container and update the scanner
KieContainerResource kieContainerResource = new KieContainerResource(containerId, new ReleaseId(releaseId));
kieServer.createContainer(containerId, kieContainerResource);
KieScannerResource kieScannerResource = new KieScannerResource(KieScannerStatus.STARTED, 20000L);
kieServer.updateScanner(containerId, kieScannerResource);
KieServerStateRepository stateRepository = new KieServerStateFileRepository(REPOSITORY_DIR);
KieServerState state = stateRepository.load(KIE_SERVER_ID);
Set<KieContainerResource> containers = state.getContainers();
Assertions.assertThat(containers).hasSize(1);
KieContainerResource container = containers.iterator().next();
Assertions.assertThat(container.getScanner()).isEqualTo(kieScannerResource);
KieScannerResource updatedKieScannerResource = new KieScannerResource(KieScannerStatus.DISPOSED);
kieServer.updateScanner(containerId, updatedKieScannerResource);
// create new state repository instance to avoid caching via 'knownStates'
// this simulates the server restart (since the status is loaded from filesystem after restart)
stateRepository = new KieServerStateFileRepository(REPOSITORY_DIR);
state = stateRepository.load(KIE_SERVER_ID);
containers = state.getContainers();
Assertions.assertThat(containers).hasSize(1);
container = containers.iterator().next();
Assertions.assertThat(container.getScanner()).isEqualTo(updatedKieScannerResource);
kieServer.disposeContainer(containerId);
}
use of org.kie.server.services.impl.storage.KieServerState in project droolsjbpm-integration by kiegroup.
the class KieServerImplOperationTest method testActivateAndDeactivateContainer.
@Test
public void testActivateAndDeactivateContainer() {
InternalKieContainer mockedKieContainer = Mockito.mock(InternalKieContainer.class);
Mockito.when(mockedKieContainer.getReleaseId()).thenReturn(new ReleaseId("g", "a", "v"));
KieContainerResource container = new KieContainerResource("id", new ReleaseId("g", "a", "v"));
KieContainerInstanceImpl kieContainerInstance = Mockito.mock(KieContainerInstanceImpl.class);
Mockito.when(kieContainerInstance.getContainerId()).thenReturn("id");
Mockito.when(kieContainerInstance.getStatus()).thenReturn(KieContainerStatus.STARTED);
Mockito.when(kieContainerInstance.getKieContainer()).thenReturn(mockedKieContainer);
Mockito.when(kieContainerInstance.getResource()).thenReturn(container);
kieServer.getServerRegistry().registerContainer("id", kieContainerInstance);
KieServerState currentState = repository.load(KIE_SERVER_ID);
currentState.getContainers().add(container);
repository.store(KIE_SERVER_ID, currentState);
kieServer.deactivateContainer("id");
currentState = repository.load(KIE_SERVER_ID);
assertNotNull(currentState);
assertNotNull(currentState.getContainers());
assertEquals(1, currentState.getContainers().size());
container = currentState.getContainers().iterator().next();
assertNotNull(container);
assertEquals(KieContainerStatus.DEACTIVATED, container.getStatus());
Mockito.when(kieContainerInstance.getStatus()).thenReturn(KieContainerStatus.DEACTIVATED);
kieServer.activateContainer("id");
currentState = repository.load(KIE_SERVER_ID);
assertNotNull(currentState);
assertNotNull(currentState.getContainers());
assertEquals(1, currentState.getContainers().size());
container = currentState.getContainers().iterator().next();
assertNotNull(container);
assertEquals(KieContainerStatus.STARTED, container.getStatus());
}
use of org.kie.server.services.impl.storage.KieServerState in project droolsjbpm-integration by kiegroup.
the class KieServerStateTest method testLoadKieServerState.
@Test
public void testLoadKieServerState() {
KieServerStateRepository repository = new KieServerStateFileRepository(REPOSITORY_DIR);
String serverId = UUID.randomUUID().toString();
KieServerState state = repository.load(serverId);
Assert.assertNotNull(state);
KieServerConfig config = state.getConfiguration();
Assert.assertNotNull(config);
Assert.assertNull(config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DIALECT));
Assert.assertNull(config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DS));
Assert.assertNull(config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_TM));
System.setProperty(KieServerConstants.CFG_PERSISTANCE_DIALECT, "org.hibernate.dialect.PostgreSQLDialect");
System.setProperty(KieServerConstants.CFG_PERSISTANCE_DS, "jdbc/jbpm");
System.setProperty(KieServerConstants.CFG_PERSISTANCE_TM, "JBossTS");
repository.store(serverId, state);
repository = new KieServerStateFileRepository(REPOSITORY_DIR);
state = repository.load(serverId);
Assert.assertNotNull(state);
config = state.getConfiguration();
Assert.assertNotNull(config);
Assert.assertEquals("org.hibernate.dialect.PostgreSQLDialect", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DIALECT));
Assert.assertEquals("jdbc/jbpm", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DS));
Assert.assertEquals("JBossTS", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_TM));
}
Aggregations