For IntelliJ IDEA and
Android Studio


@Override public ServiceResponse<KieContainerResourceList> listContainers(KieContainerResourceFilter containerFilter) { KieContainerResource containerResource = new KieContainerResource(containerInstance.getContainerId(), containerInstance.getResource().getReleaseId(), containerInstance.getStatus()); List<KieContainerResource> containers = new ArrayList<KieContainerResource>(); containers.add(containerResource); KieContainerResourceList list = new KieContainerResourceList(containers); return new ServiceResponse<KieContainerResourceList>(ServiceResponse.ResponseType.SUCCESS, "", list); }
@Override public String locateContainer(String alias, List<? extends KieContainerInstance> containerInstances) { if (containerInstances.isEmpty()) { return alias; } logger.debug("Searching for latest container for alias {} within available containers {}", alias, containerInstances); List<ComparableVersion> comparableVersions = new ArrayList<ComparableVersion>(); Map<String, String> versionToIdentifier = new HashMap<String, String>(); containerInstances.forEach(c -> { if (c.getStatus().equals(KieContainerStatus.STARTED)) { comparableVersions.add(new ComparableVersion(c.getKieContainer().getReleaseId().getVersion())); versionToIdentifier.put(c.getKieContainer().getReleaseId().getVersion(), c.getContainerId()); } } ); ComparableVersion latest = Collections.max(comparableVersions); logger.debug("Latest version for alias {} is {}", alias, comparableVersions); return versionToIdentifier.get(latest.toString()); }
public ExecutionResults call(KieContainerInstance kci, BatchExecutionCommand executionCommand) { BatchExecutionCommandImpl command = (BatchExecutionCommandImpl) executionCommand; if (kci != null && kci.getKieContainer() != null) { // find the session CommandExecutor ks = null; if( command.getLookup() != null ) { ks = context.getKieSessionLookupManager().lookup(command.getLookup(), kci, context); } else { // if no session ID is defined, then the default is a stateful session ks = ((KieContainerInstanceImpl)kci).getKieContainer().getKieSession(); } if (ks != null) { ExecutionResults results = ks.execute(command); return results; } else { throw new IllegalStateException("Session '" + command.getLookup() + "' not found on container '" + kci.getContainerId() + "'."); } } throw new IllegalStateException("Unable to execute command " + command); } }
@Override public void afterContainerStarted(KieServer kieServer, KieContainerInstance containerInstance) { if (routerURL == null) { logger.debug("KieServer router url not given, skipping"); return; } routers().forEach(url -> { String alias = getContainerAlias(containerInstance.getResource()); String containerIdPayload = "{" + MessageFormat.format(CONTAINER_JSON, containerInstance.getContainerId(), alias, serverURL, serverId, containerInstance.getResource().getReleaseId().toExternalForm()) + "}"; boolean success = send(url + ROUTER_ADD_URL, containerInstance.getContainerId(), containerIdPayload, true, true); if (success) { logger.info("Added '{}' as server location for container id '{}'", serverURL, containerInstance.getContainerId()); } }); }
if (container.getStatus().equals(KieContainerStatus.FAILED)) { healthMessages.add(new Message(Severity.ERROR, String.format("KIE Container '%s' is in FAILED state", container.getContainerId()) ));
@Override public void afterContainerStopped(KieServer kieServer, KieContainerInstance containerInstance) { if (routerURL == null) { logger.debug("KieServer router url not given, skipping"); return; } routers().forEach(url -> { String alias = getContainerAlias(containerInstance.getResource()); String containerIdPayload = "{" + MessageFormat.format(CONTAINER_JSON, containerInstance.getContainerId(), alias, serverURL, serverId, containerInstance.getResource().getReleaseId().toExternalForm()) + "}"; boolean success = send(url + ROUTER_REMOVE_URL, containerInstance.getContainerId(), containerIdPayload, false, true); if (success) { logger.info("Removed '{}' as server location for container id '{}'", serverURL, containerInstance.getContainerId()); } }); }