@Override public ServiceResponsesList handleResponse(String selector, Connection connection, Session session, Queue responseQueue, KieServicesConfiguration config, Marshaller marshaller, KieServicesClient owner) { ServiceResponse messageSentResponse = new ServiceResponse(ServiceResponse.ResponseType.NO_RESPONSE, "Message sent"); return new ServiceResponsesList(Arrays.asList(messageSentResponse)); }
@Override public ServiceResponsesList handleResponse(String selector, Connection connection, Session session, Queue responseQueue, KieServicesConfiguration config, Marshaller marshaller, KieServicesClient owner) { if (callback == null) { throw new IllegalStateException("There is no callback defined, can't continue..."); } MessageConsumer consumer = null; try { consumer = session.createConsumer(responseQueue, selector); consumer.setMessageListener(new AsyncMessageListener(connection, session, selector, consumer, marshaller, owner)); logger.debug("Message listener for async message retrieval successfully registered on consumer {}", consumer); } catch( JMSException jmse ) { throw new KieServicesException("Unable to retrieve JMS response from queue " + responseQueue + " with selector " + selector, jmse); } ServiceResponse messageSentResponse = new ServiceResponse(ServiceResponse.ResponseType.NO_RESPONSE, "Message sent"); return new ServiceResponsesList(Arrays.asList(messageSentResponse)); }
protected ServiceResponsesList sendCommand(CommandScript script, WebSocketServiceResponse response) { logger.debug("About to send command {} to kie server located at {}", script, url); List<Session> sessions = manager.getByUrl(url); Session session = sessions.get(0); logger.debug("Web Socket session ({}) is open {}", session.getId(), session.isOpen()); String content = WebSocketUtils.marshal(script); logger.debug("Content to be sent over Web Socket '{}'", content); try { manager.getHandler(session.getId()).addHandler(response); session.getBasicRemote().sendText(content); logger.debug("Message successfully sent to kie server"); return new ServiceResponsesList(Arrays.asList(response)); } catch (IOException e) { throw new RuntimeException(e); } }
protected ServiceResponsesList sendCommandToAllSessions(CommandScript script, WebSocketServiceResponse response) { logger.debug("About to send command {} to kie server located at {}", script, url); List<Session> sessions = manager.getByUrl(url); List<ServiceResponse<?>> responses = new ArrayList<>(); ServiceResponsesList result = new ServiceResponsesList(responses); for (Session session : sessions) { logger.debug("Web Socket session ({}) is open {}", session.getId(), session.isOpen()); String content = WebSocketUtils.marshal(script); logger.debug("Content to be sent over Web Socket '{}'", content); try { manager.getHandler(session.getId()).addHandler(response); session.getBasicRemote().sendText(content); logger.debug("Message successfully sent to kie server"); responses.add(response); } catch (IOException e) { throw new RuntimeException(e); } } return result; }
return new ServiceResponsesList(responses);
@Override public ServiceResponsesList handleResponse(String selector, Connection connection, Session session, Queue responseQueue, KieServicesConfiguration config, Marshaller marshaller, KieServicesClient owner) { MessageConsumer consumer = null; try { consumer = session.createConsumer(responseQueue, selector); Message response = consumer.receive( config.getTimeout() ); if( response == null ) { logger.warn("Response is empty"); // return actual instance to avoid null points on client side List<ServiceResponse<? extends Object>> responses = new ArrayList<ServiceResponse<? extends Object>>(); responses.add(new ServiceResponse(ServiceResponse.ResponseType.FAILURE, "Response is empty")); return new ServiceResponsesList(responses); } ((KieServicesClientImpl)owner).setConversationId(response.getStringProperty(JMSConstants.CONVERSATION_ID_PROPERTY_NAME)); String responseStr = ((TextMessage) response).getText(); logger.debug("Received response from server '{}'", responseStr); ServiceResponsesList cmdResponse = marshaller.unmarshall(responseStr, ServiceResponsesList.class); return cmdResponse; } catch( JMSException jmse ) { throw new KieServicesException("Unable to retrieve JMS response from queue " + responseQueue + " with selector " + selector, jmse); } finally { if (consumer != null) { try { consumer.close(); } catch (JMSException e) { logger.warn("Error when closing JMS consumer due to {}", e.getMessage()); } } } }
return new ServiceResponsesList(responses);
return new ServiceResponsesList(responses);
return new ServiceResponsesList(responses);
return new ServiceResponsesList(responses);
public ServiceResponsesList executeScript(CommandScript commands) { List<ServiceResponse<? extends Object>> responses = new ArrayList<ServiceResponse<? extends Object>>(); if( commands != null ) { for (KieServerCommand command : commands.getCommands()) { if (command instanceof CreateContainerCommand) { responses.add(createContainer(((CreateContainerCommand) command).getContainer().getContainerId(), ((CreateContainerCommand) command).getContainer())); } else if (command instanceof GetServerInfoCommand) { responses.add(getInfo()); } else if (command instanceof ListContainersCommand) { responses.add(listContainers()); } else if (command instanceof CallContainerCommand) { responses.add(callContainer(((CallContainerCommand) command).getContainerId(), ((CallContainerCommand) command).getPayload())); } else if (command instanceof DisposeContainerCommand) { responses.add(disposeContainer(((DisposeContainerCommand) command).getContainerId())); } else if (command instanceof GetContainerInfoCommand ) { responses.add(getContainerInfo(((GetContainerInfoCommand) command).getContainerId())); } else if (command instanceof GetScannerInfoCommand ) { responses.add(getScannerInfo(((GetScannerInfoCommand) command).getContainerId())); } else if (command instanceof UpdateScannerCommand ) { responses.add(updateScanner(((UpdateScannerCommand) command).getContainerId(), ((UpdateScannerCommand) command).getScanner())); } else if (command instanceof UpdateReleaseIdCommand ) { responses.add(updateContainerReleaseId(((UpdateReleaseIdCommand) command).getContainerId(), ((UpdateReleaseIdCommand) command).getReleaseId())); } } } return new ServiceResponsesList(responses); }
return new ServiceResponsesList(responses);
return new ServiceResponsesList(responses);