private void append(final StringBuilder string, final StreamsQuery query) { requireNonNull(string); requireNonNull(query); string.append(" Streams Query {\n") .append(" Query ID: ").append(query.getQueryId()).append(",\n") .append(" Is Active: ").append(query.isActive()).append(",\n") .append(" SPARQL: ").append(query.getSparql()).append("\n") .append(" }"); }
/** * Pretty formats a {@link StreamsQuery}. * * @param query - The query to format. (not null) * @return The pretty formatted string. * @throws Exception A problem was encountered while pretty formatting the SPARQL. */ public static String format(final StreamsQuery query) throws Exception { requireNonNull(query); // Pretty format the SPARQL query. final ParsedQuery parsedQuery = new SPARQLParser().parseQuery(query.getSparql(), null); final String prettySparql = new SPARQLQueryRenderer().render(parsedQuery); final String[] lines = prettySparql.split("\n"); // Create the formatted string. query.getQueryId(); query.isActive(); String.format(" QueryId: %s", query.getQueryId()); final StringBuilder builder = new StringBuilder(); builder.append(" Query ID: ").append( query.getQueryId() ) .append("\n"); builder.append("Is Active: ").append( query.isActive() ).append("\n"); builder.append("Is Insert: ").append( query.isInsert() ).append("\n"); builder.append(" SPARQL: ").append( lines[0] ).append("\n"); for(int i = 1; i < lines.length; i++) { builder.append(" ").append(lines[i]).append("\n"); } return builder.toString(); }
final String sparql = query.get().getSparql(); final TopologyBuilder topologyBuilder; try {
final StreamsQuery updated = new StreamsQuery( old.getQueryId(), old.getSparql(), change.getIsActive().get(), old.isInsert());
@Override public KafkaStreams make(final String ryaInstance, final StreamsQuery query) throws KafkaStreamsFactoryException { requireNonNull(ryaInstance); requireNonNull(query); // Setup the Kafka Stream program. final Properties streamsProps = new Properties(); // Configure the Kafka servers that will be talked to. streamsProps.setProperty(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServersConfig); // Use the Query ID as the Application ID to ensure we resume where we left off the last time this command was run. streamsProps.put(StreamsConfig.APPLICATION_ID_CONFIG, "RyaStreams-Query-" + query.getQueryId()); // Always start at the beginning of the input topic. streamsProps.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); // Setup the topology that processes the Query. final String statementsTopic = KafkaTopics.statementsTopic(ryaInstance); final String resultsTopic = KafkaTopics.queryResultsTopic(ryaInstance, query.getQueryId()); try { final TopologyBuilder topologyBuilder = topologyFactory.build(query.getSparql(), statementsTopic, resultsTopic, new RandomUUIDFactory()); return new KafkaStreams(topologyBuilder, new StreamsConfig(streamsProps)); } catch (final MalformedQueryException | TopologyBuilderException e) { throw new KafkaStreamsFactoryException("Could not create a KafkaStreams processing topology for query " + query.getQueryId(), e); } } }
final StreamsQuery updated = new StreamsQuery( old.getQueryId(), old.getSparql(), change.getIsActive().get()); queriesCache.put(queryId, updated);