protected void loadAndRegisterQueryDefinitions(InputStream qdStream, org.kie.server.api.marshalling.Marshaller marshaller, String containerId) throws IOException { if (qdStream != null) { String qdString = IOUtils.toString(qdStream, Charset.forName("UTF-8")); try { QueryDefinition[] queryDefinitionList = marshaller.unmarshall(qdString, QueryDefinition[].class); List<String> queries = new ArrayList<>(); Arrays.asList(queryDefinitionList).forEach(qd -> { queryService.replaceQuery(QueryDataServiceBase.build(context, qd)); queries.add(qd.getName()); logger.debug("Registered '{}' query from container '{}' successfully", qd.getName(), containerId); }); if (containerId != null) { containerQueries.put(containerId, queries); } } catch (MarshallingException e) { logger.error("Error when unmarshalling query definitions from stream.", e); } } }
public QueryDefinition registerQuery(String queryName, String payload, String marshallingType) throws QueryAlreadyRegisteredException { logger.debug("About to unmarshal queryDefinition from payload: '{}'", payload); QueryDefinition queryDefinition = marshallerHelper.unmarshal(payload, marshallingType, QueryDefinition.class); queryDefinition.setName(queryName); SqlQueryDefinition actualDefinition = build(context, queryDefinition); logger.debug("Built sql query definition for {} with content {}", queryName, actualDefinition); queryService.registerQuery(actualDefinition); return convertQueryDefinition(actualDefinition); }
public QueryDefinition replaceQuery(String queryName, String payload, String marshallingType) { logger.debug("About to unmarshal queryDefinition from payload: '{}'", payload); QueryDefinition queryDefinition = marshallerHelper.unmarshal(payload, marshallingType, QueryDefinition.class); queryDefinition.setName(queryName); SqlQueryDefinition actualDefinition = build(context, queryDefinition); logger.debug("Built sql query definition for {} with content {}", queryName, actualDefinition); queryService.replaceQuery(actualDefinition); return convertQueryDefinition(actualDefinition); }