private void verifyContainerId(String containerId, String caseId) { String caseContainerId; try { caseContainerId = (new ByCaseIdContainerLocator(caseId)).locateContainer(containerId, null); } catch (IllegalArgumentException e) { throw new CaseNotFoundException(e.getMessage()); } KieContainerInstanceImpl taskContainer = context.getContainer(caseContainerId); List<KieContainerInstanceImpl> containersByAlias = context.getContainersForAlias(containerId); // The container id is either a non-existent one or is not a valid alias for the container id the task is associated with. Both scenarios should raise an exception. if (context.getContainer(containerId) == null && !containersByAlias.contains(taskContainer)) { throw new DeploymentNotFoundException("CaseId: " + caseId + " is not associated with the provided container id: " + containerId + " or its alias."); } }
public String marshal(String containerId, String marshallingFormat, Object entity, ContainerLocator locator) { MarshallingFormat format = getFormat(marshallingFormat); if (format == null) { throw new IllegalArgumentException("Unknown marshalling format " + marshallingFormat); } KieContainerInstance containerInstance = registry.getContainer(containerId, locator); if (containerInstance == null) { throw new IllegalArgumentException("No container found for id " + containerId + " ."); } Marshaller marshaller = containerInstance.getMarshaller(format); if (marshaller == null) { throw new IllegalArgumentException("No marshaller found for format " + format); } return marshaller.marshall(entity); }
public ServiceResponse<ReleaseId> getContainerReleaseId(String id) { try { KieContainerInstanceImpl ci = context.getContainer(id); if (ci != null) { return new ServiceResponse<ReleaseId>(ServiceResponse.ResponseType.SUCCESS, "ReleaseId for container " + id, ci.getResource().getReleaseId()); } return new ServiceResponse<ReleaseId>(ServiceResponse.ResponseType.FAILURE, "Container " + id + " is not instantiated."); } catch (Exception e) { logger.error("Error retrieving releaseId for container '" + id + "'", e); return new ServiceResponse<ReleaseId>(ServiceResponse.ResponseType.FAILURE, "Error retrieving container releaseId: " + e.getClass().getName() + ": " + e.getMessage()); } }
@POST @Path("/run/{id}") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Ticket runSession(@PathParam("id") String id, Ticket quoteRequest) { try { KieContainerInstance kci = registry.getContainer(id); ChtijbugObjectRequest chtijbugObjectRequest = new ChtijbugObjectRequest(); chtijbugObjectRequest.setObjectRequest(quoteRequest); ChtijbugObjectRequest chtijbutObjectResponse = (ChtijbugObjectRequest) rulesExecutionService.FireAllRulesAndStartProcess(kci, chtijbugObjectRequest, "swimmingpool.P000"); String jsonInString = mapper.writeValueAsString(chtijbutObjectResponse.getSessionLogging()); Ticket response = (Ticket) chtijbutObjectResponse.getObjectRequest(); logger.debug("Returning OK response with content '{}'", quoteRequest); return response; } catch (Exception e) { // in case marshalling failed return the FireAllRulesAndStartProcess container response to keep backward compatibility String response = "Execution failed with error : " + e.getMessage(); logger.debug("Returning Failure response with content '{}'", response); return quoteRequest; } } }
@POST @Path("/run/{id}") @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public QuoteRequest runSession(@PathParam("id") String id, QuoteRequest quoteRequest) { try { KieContainerInstance kci = registry.getContainer(id); ChtijbugObjectRequest chtijbugObjectRequest = new ChtijbugObjectRequest(); chtijbugObjectRequest.setObjectRequest(quoteRequest); ChtijbugObjectRequest chtijbutObjectResponse = (ChtijbugObjectRequest) rulesExecutionService.FireAllRulesAndStartProcess(kci, chtijbugObjectRequest, "swimmingpool.P000"); ObjectMapper mapper = new ObjectMapper(); String jsonInString = mapper.writeValueAsString(chtijbutObjectResponse.getSessionLogging()); QuoteRequest response = (QuoteRequest) chtijbutObjectResponse.getObjectRequest(); //response.setSessionLogging(jsonInString); logger.debug("Returning OK response with content '{}'", quoteRequest); return response; } catch (Exception e) { // in case marshalling failed return the FireAllRulesAndStartProcess container response to keep backward compatibility String response = "Execution failed with error : " + e.getMessage(); logger.debug("Returning Failure response with content '{}'", response); return quoteRequest; } } }
public ServiceResponse<KieContainerResource> getContainerInfo(String id) { try { KieContainerInstanceImpl ci = context.getContainer(id); if (ci != null) { setMessages(ci); return new ServiceResponse<KieContainerResource>(ServiceResponse.ResponseType.SUCCESS, "Info for container " + id, ci.getResource()); } return new ServiceResponse<KieContainerResource>(ServiceResponse.ResponseType.FAILURE, "Container " + id + " is not instantiated."); } catch (Exception e) { logger.error("Error retrieving info for container '" + id + "'", e); return new ServiceResponse<KieContainerResource>(ServiceResponse.ResponseType.FAILURE, "Error retrieving container info: " + e.getClass().getName() + ": " + e.getMessage()); } }
public <T> T unmarshal(String containerId, String data, String marshallingFormat, Class<T> unmarshalType, ContainerLocator locator) { if (data == null || data.isEmpty()) { return null; } MarshallingFormat format = getFormat(marshallingFormat); KieContainerInstance containerInstance = registry.getContainer(containerId, locator); if (containerInstance == null || format == null) { throw new IllegalArgumentException("No container found for id " + containerId + " or unknown marshalling format " + marshallingFormat); } Marshaller marshaller = containerInstance.getMarshaller(format); if (marshaller == null) { throw new IllegalArgumentException("No marshaller found for format " + format); } Object instance = marshaller.unmarshall(data, unmarshalType); if (instance instanceof Wrapped) { return (T) ((Wrapped) instance).unwrap(); } return (T) instance; }
KieContainerInstance kci = registry.getContainer(id); Set<Class<?>> classes = kci.getExtraClasses(); Class foundClass=this.getClassFromName(classes,className);
public ServiceResponse<KieScannerResource> getScannerInfo(String id) { try { KieContainerInstanceImpl kci = context.getContainer(id); if (kci != null && kci.getKieContainer() != null) { KieScannerResource info = getScannerResource(kci); return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.SUCCESS, "Scanner info successfully retrieved", info); } else { return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Unknown container " + id + "."); } } catch (Exception e) { logger.error("Error retrieving scanner info for container '" + id + "'.", e); return new ServiceResponse<KieScannerResource>(ServiceResponse.ResponseType.FAILURE, "Error retrieving scanner info for container '" + id + "': " + e.getClass().getName() + ": " + e.getMessage()); } }
public String getRequestById(long requestId, boolean withErrors, boolean withData, String marshallingType) { String result = null; RequestInfo request = executorService.getRequestById(requestId); if (request == null) { throw new IllegalArgumentException("Request with id: " + requestId + " doesn't exist"); } else { RequestInfoInstance requestInstance = convertToRequestInfo(request, withErrors, withData); String deploymentId = ((org.jbpm.executor.entities.RequestInfo) request).getDeploymentId(); if (deploymentId != null && context.getContainer(deploymentId) != null) { result = marshallerHelper.marshal(deploymentId, marshallingType, requestInstance); } else { result = marshallerHelper.marshal(marshallingType, requestInstance); } } return result; }
public ServiceResponse<DMNModelInfoList> getModels(String containerId) { try { KieContainerInstanceImpl kContainer = context.getContainer(containerId, ContainerLocatorProvider.get().getLocator()); KieSession kieSession = kContainer.getKieContainer().newKieSession(); DMNRuntime kieRuntime = kieSession.getKieRuntime(DMNRuntime.class); List<DMNModel> models = kieRuntime.getModels(); List<DMNModelInfo> result = models.stream().map(ModelEvaluatorServiceBase::modelToInfo).collect(Collectors.toList()); kieSession.dispose(); return new ServiceResponse<DMNModelInfoList>( ServiceResponse.ResponseType.SUCCESS, "OK models successfully retrieved from container '" + containerId + "'", new DMNModelInfoList( result ) ); } catch ( Exception e ) { LOG.error( "Error retrieving models from container '" + containerId + "'", e ); return new ServiceResponse<DMNModelInfoList>( ServiceResponse.ResponseType.FAILURE, "Error retrieving models from container '" + containerId + "'" + e.getMessage(), null ); } }
KieContainerInstanceImpl kci = context.getContainer(id); if (kci != null && kci.getKieContainer() != null) {
@Test public void testGetCaseDefinitions(){ String filter = null; Integer page = 0; Integer pageSize= 10; String sort = "CaseId"; boolean sortOrder = true; when(runtimeDataService.getCaseDefinitions(filter, page, pageSize, sort, sortOrder)).thenReturn(new CaseDefinitionList()); caseQueryResource.getCaseDefinitions(httpHeaders, filter, page, pageSize, sort, sortOrder); verify(kieServerRegistry).getContainer(""); verify(runtimeDataService).getCaseDefinitions(filter, page, pageSize, sort, sortOrder); }
@Test public void testGetCaseInstances(){ List<String> status = null; Integer page = 0; Integer pageSize= 10; String sort = "CorrelationKey"; boolean sortOrder = true; when(runtimeDataService.getCaseInstances(status, page, pageSize, sort, sortOrder)).thenReturn(new CaseInstanceList()); caseQueryResource.getCaseInstances(httpHeaders, null, null, null, status, page, pageSize, sort, sortOrder); verify(kieServerRegistry).getContainer(""); verify(runtimeDataService).getCaseInstancesAnyRole(status, page, pageSize, sort, sortOrder); }
public String scheduleRequest(String containerId, String payload, String marshallingType) { ClassLoader classLoader = this.getClass().getClassLoader(); JobRequestInstance jobRequest = null; if (containerId != null && !containerId.isEmpty()) { logger.debug("About to unmarshal job request from payload: '{}' using container {} marshaller", payload, containerId); jobRequest = marshallerHelper.unmarshal(containerId, payload, marshallingType, JobRequestInstance.class); // set deployment id which is given by container id jobRequest.getData().put("deploymentId", containerId); classLoader = context.getContainer(containerId).getKieContainer().getClassLoader(); } else { logger.debug("About to unmarshal job request from payload: '{}' using server marshaller", payload); jobRequest = marshallerHelper.unmarshal(payload, marshallingType, JobRequestInstance.class); } Long requestId = null; if(!validateCommand(jobRequest.getCommand(), classLoader)){ throw new IllegalArgumentException("Invalid command type "+jobRequest.getCommand()); } if (jobRequest.getScheduledDate() != null) { logger.debug("Scheduling job at future date '{}' for request {}", jobRequest.getScheduledDate(), jobRequest); requestId = executorService.scheduleRequest(jobRequest.getCommand(), jobRequest.getScheduledDate(), new CommandContext(jobRequest.getData())); } else { logger.debug("Scheduling job at current date '{}' for request {}", new Date(), jobRequest); requestId = executorService.scheduleRequest(jobRequest.getCommand(), new CommandContext(jobRequest.getData())); } // return response String response = marshallerHelper.marshal(marshallingType, requestId); return response; }
KieContainerInstanceImpl kci = context.getContainer(containerId); if (kci != null && kci.getStatus().equals(KieContainerStatus.STARTED)) {
@Test public void buildConversationIdHeaderCreatingContainer() { String kieServerId = "KieServerId"; KieServerEnvironment.setServerId(kieServerId); KieContainerInstanceImpl containerInstanceImpl = new KieContainerInstanceImpl(CONTAINER_ID, KieContainerStatus.CREATING); when(registry.getContainer(CONTAINER_ID)).thenReturn(containerInstanceImpl); Header conversationIdHeader = RestUtils.buildConversationIdHeader(CONTAINER_ID, registry, headers); assertNull(conversationIdHeader); } }
KieContainerInstanceImpl kci = (KieContainerInstanceImpl) context.getContainer( containerId, ContainerLocatorProvider.get().getLocator());
@Test public void buildConversationIdHeaderRunningContainer() { String kieServerId = "KieServerId"; KieServerEnvironment.setServerId(kieServerId); String groupId = "org.kie"; String artifactId = "testArtifact"; String version = "1.0"; ReleaseId releaseId = new ReleaseId(groupId, artifactId, version); KieContainerInstanceImpl containerInstanceImpl = new KieContainerInstanceImpl(CONTAINER_ID, KieContainerStatus.STARTED); containerInstanceImpl.getResource().setReleaseId(releaseId); when(registry.getContainer(CONTAINER_ID)).thenReturn(containerInstanceImpl); Header conversationIdHeader = RestUtils.buildConversationIdHeader(CONTAINER_ID, registry, headers); assertEquals(KieServerConstants.KIE_CONVERSATION_ID_TYPE_HEADER, conversationIdHeader.getName()); assertNotNull(conversationIdHeader.getValue()); assertTrue(conversationIdHeader.getValue().contains(groupId)); assertTrue(conversationIdHeader.getValue().contains(artifactId)); assertTrue(conversationIdHeader.getValue().contains(version)); assertTrue(conversationIdHeader.getValue().contains(CONTAINER_ID)); assertTrue(conversationIdHeader.getValue().contains(kieServerId)); }
String deploymentId = ((org.jbpm.executor.entities.RequestInfo) request).getDeploymentId(); if (deploymentId != null && context.getContainer(deploymentId) != null) { KieContainerInstanceImpl containerInstance = context.getContainer(deploymentId); classLoader = containerInstance.getKieContainer().getClassLoader();