@Override public CommandExecutor lookupKieSession(String kieSessionId, KieContainerInstance containerInstance, KieServerRegistry registry) { CommandExecutor ks = null; if( kieSessionId != null ) { KieSessionModel ksm = ((KieContainerImpl)containerInstance.getKieContainer()).getKieSessionModel(kieSessionId); if( ksm != null ) { switch (ksm.getType() ) { case STATEFUL: ks = ((KieContainerImpl)containerInstance.getKieContainer()).getKieSession(kieSessionId); break; case STATELESS: ks = ((KieContainerImpl)containerInstance.getKieContainer()).getStatelessKieSession(kieSessionId); break; } } return ks; } return null; } }
Collection<String> kbases = kieContainerInstance.getKieContainer().getKieBaseNames(); for (String kbase : kbases) { kieContainerInstance.getKieContainer().getKieBase(kbase); try { logger.debug("Adding {} type into extra jaxb classes set", type); Class<?> clazz = Class.forName(type, true, kieContainerInstance.getKieContainer().getClassLoader());
Collection<String> kbases = kieContainerInstance.getKieContainer().getKieBaseNames(); for (String kbase : kbases) { kieContainerInstance.getKieContainer().getKieBase(kbase); try { logger.debug("Adding {} type into extra jaxb classes set", type); Class<?> clazz = kieContainerInstance.getKieContainer().getClassLoader().loadClass(type);
@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()); }
@SuppressWarnings("unchecked") @Override public void createContainer(String id, KieContainerInstance kieContainerInstance, Map<String, Object> parameters) { if (!initialized) { return; } List<Message> messages = (List<Message>) parameters.get(KieServerConstants.KIE_SERVER_PARAM_MESSAGES); try { DeployedUnit deployedUnit = deploymentService.getDeployedUnit(id); if(deployedUnit != null) { String kieBaseName = ((KModuleDeploymentUnit)deployedUnit.getDeploymentUnit()).getKbaseName(); KieContainer kieContainer = kieContainerInstance.getKieContainer(); imageReferences.putIfAbsent(id, new ImageReference(kieContainer, kieBaseName)); formRendererBase.indexDeploymentForms(id); } } catch (Exception e) { messages.add(new Message(Severity.WARN, "Unable to create image reference for container " + id +" by extension " + this + " due to " + e.getMessage())); logger.warn("Unable to create image reference for container {} due to {}", id, e.getMessage(), e); } }
public ChtijbugObjectRequest FireAllRulesAndStartProcess(KieContainerInstance kci, ChtijbugObjectRequest chtijbugObjectRequest, String processID, String sessionName) { Object result = null; try { if (kci != null && kci.getKieContainer() != null) { KieContainer kieContainer = kci.getKieContainer(); ruleBasePackage = new RuleBaseSingleton(kieContainer, 20000); } ChtijbugHistoryListener chtijbugHistoryListener = new ChtijbugHistoryListener(); RuleBaseSession session = ruleBasePackage.createRuleBaseSession(20000, chtijbugHistoryListener, sessionName); result = session.fireAllRulesAndStartProcess(chtijbugObjectRequest.getObjectRequest(), processID); SessionContext sessionContext = this.messageHandlerResolver.getSessionFromHistoryEvent(chtijbugHistoryListener.getHistoryEventLinkedList()); chtijbugObjectRequest.setSessionLogging(sessionContext); chtijbugObjectRequest.setObjectRequest(result); logger.debug("Returning OK response with content '{}'", chtijbugObjectRequest.getObjectRequest()); return chtijbugObjectRequest; } catch (DroolsChtijbugException e) { e.printStackTrace(); } throw new IllegalStateException("Unable to execute command " + chtijbugObjectRequest.getObjectRequest()); } }
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) { applyListeners(ks); 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); }
boolean hasDefaultSession = false; InternalKieContainer kieContainer = (InternalKieContainer)kieContainerInstance.getKieContainer(); Collection<String> kbaseNames = kieContainer.getKieBaseNames(); Collection<String> ksessionNames = new ArrayList<String>(); return; ReleaseId releaseId = kieContainerInstance.getKieContainer().getReleaseId();