Search in sources :

Example 6 with QueryExecutor

use of org.apache.rya.streams.querymanager.QueryExecutor in project incubator-rya by apache.

the class LocalQueryExecutorTest method getRunningQueryIds_noneStopped.

@Test
public void getRunningQueryIds_noneStopped() throws Exception {
    // Test values.
    final String ryaInstance = "rya";
    final StreamsQuery query1 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    final StreamsQuery query2 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    final StreamsQuery query3 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    // Mock the streams factory so that we can figure out what is started.
    final KafkaStreamsFactory jobFactory = mock(KafkaStreamsFactory.class);
    when(jobFactory.make(eq(ryaInstance), eq(query1))).thenReturn(mock(KafkaStreams.class));
    when(jobFactory.make(eq(ryaInstance), eq(query2))).thenReturn(mock(KafkaStreams.class));
    when(jobFactory.make(eq(ryaInstance), eq(query3))).thenReturn(mock(KafkaStreams.class));
    // Start the executor that will be tested.
    final QueryExecutor executor = new LocalQueryExecutor(mock(CreateKafkaTopic.class), jobFactory);
    executor.startAndWait();
    try {
        // Start the queries.
        executor.startQuery(ryaInstance, query1);
        executor.startQuery(ryaInstance, query2);
        executor.startQuery(ryaInstance, query3);
        // All of those query IDs should be reported as running.
        final Set<UUID> expected = Sets.newHashSet(query1.getQueryId(), query2.getQueryId(), query3.getQueryId());
        assertEquals(expected, executor.getRunningQueryIds());
    } finally {
        executor.stopAndWait();
    }
}
Also used : KafkaStreams(org.apache.kafka.streams.KafkaStreams) StreamsQuery(org.apache.rya.streams.api.entity.StreamsQuery) CreateKafkaTopic(org.apache.rya.streams.kafka.interactor.CreateKafkaTopic) QueryExecutor(org.apache.rya.streams.querymanager.QueryExecutor) KafkaStreamsFactory(org.apache.rya.streams.kafka.KafkaStreamsFactory) UUID(java.util.UUID) Test(org.junit.Test)

Example 7 with QueryExecutor

use of org.apache.rya.streams.querymanager.QueryExecutor in project incubator-rya by apache.

the class LocalQueryExecutorTest method getRunningQueryIds_noneStarted.

@Test
public void getRunningQueryIds_noneStarted() throws Exception {
    // Start an executor.
    final QueryExecutor executor = new LocalQueryExecutor(mock(CreateKafkaTopic.class), mock(KafkaStreamsFactory.class));
    executor.startAndWait();
    try {
        // Get the list of running queries.
        final Set<UUID> runningQueries = executor.getRunningQueryIds();
        // Show no queries are reported as running.
        assertTrue(runningQueries.isEmpty());
    } finally {
        executor.stopAndWait();
    }
}
Also used : CreateKafkaTopic(org.apache.rya.streams.kafka.interactor.CreateKafkaTopic) QueryExecutor(org.apache.rya.streams.querymanager.QueryExecutor) KafkaStreamsFactory(org.apache.rya.streams.kafka.KafkaStreamsFactory) UUID(java.util.UUID) Test(org.junit.Test)

Example 8 with QueryExecutor

use of org.apache.rya.streams.querymanager.QueryExecutor in project incubator-rya by apache.

the class LocalQueryExecutorTest method getRunningQueryIds_stoppedNoLongerListed.

@Test
public void getRunningQueryIds_stoppedNoLongerListed() throws Exception {
    // Test values.
    final String ryaInstance = "rya";
    final StreamsQuery query1 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    final StreamsQuery query2 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    final StreamsQuery query3 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    // Mock the streams factory so that we can figure out what is started.
    final KafkaStreamsFactory jobFactory = mock(KafkaStreamsFactory.class);
    when(jobFactory.make(eq(ryaInstance), eq(query1))).thenReturn(mock(KafkaStreams.class));
    when(jobFactory.make(eq(ryaInstance), eq(query2))).thenReturn(mock(KafkaStreams.class));
    when(jobFactory.make(eq(ryaInstance), eq(query3))).thenReturn(mock(KafkaStreams.class));
    // Start the executor that will be tested.
    final QueryExecutor executor = new LocalQueryExecutor(mock(CreateKafkaTopic.class), jobFactory);
    executor.startAndWait();
    try {
        // Start the queries.
        executor.startQuery(ryaInstance, query1);
        executor.startQuery(ryaInstance, query2);
        executor.startQuery(ryaInstance, query3);
        // Stop the second query.
        executor.stopQuery(query2.getQueryId());
        // Only the first and third queries are running.
        final Set<UUID> expected = Sets.newHashSet(query1.getQueryId(), query3.getQueryId());
        assertEquals(expected, executor.getRunningQueryIds());
    } finally {
        executor.stopAndWait();
    }
}
Also used : KafkaStreams(org.apache.kafka.streams.KafkaStreams) StreamsQuery(org.apache.rya.streams.api.entity.StreamsQuery) CreateKafkaTopic(org.apache.rya.streams.kafka.interactor.CreateKafkaTopic) QueryExecutor(org.apache.rya.streams.querymanager.QueryExecutor) KafkaStreamsFactory(org.apache.rya.streams.kafka.KafkaStreamsFactory) UUID(java.util.UUID) Test(org.junit.Test)

Example 9 with QueryExecutor

use of org.apache.rya.streams.querymanager.QueryExecutor in project incubator-rya by apache.

the class LocalQueryExecutorTest method stopAll_serviceNotStarted.

@Test(expected = IllegalStateException.class)
public void stopAll_serviceNotStarted() throws Exception {
    final QueryExecutor executor = new LocalQueryExecutor(mock(CreateKafkaTopic.class), mock(KafkaStreamsFactory.class));
    executor.stopAll("rya");
}
Also used : CreateKafkaTopic(org.apache.rya.streams.kafka.interactor.CreateKafkaTopic) QueryExecutor(org.apache.rya.streams.querymanager.QueryExecutor) KafkaStreamsFactory(org.apache.rya.streams.kafka.KafkaStreamsFactory) Test(org.junit.Test)

Example 10 with QueryExecutor

use of org.apache.rya.streams.querymanager.QueryExecutor in project incubator-rya by apache.

the class LocalQueryExecutorTest method stopAll_noneForThatRyaInstance.

@Test
public void stopAll_noneForThatRyaInstance() throws Exception {
    // Test values.
    final String ryaInstance = "rya";
    final StreamsQuery query1 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    final StreamsQuery query2 = new StreamsQuery(UUID.randomUUID(), "SELECT * WHERE { ?a ?b ?c. }", true, false);
    // Mock the streams factory so that we can tell if the stop function is invoked by the executor.
    final KafkaStreamsFactory jobFactory = mock(KafkaStreamsFactory.class);
    final KafkaStreams queryJob1 = mock(KafkaStreams.class);
    final KafkaStreams queryJob2 = mock(KafkaStreams.class);
    when(jobFactory.make(eq(ryaInstance), eq(query1))).thenReturn(queryJob1);
    when(jobFactory.make(eq(ryaInstance), eq(query2))).thenReturn(queryJob2);
    // Start the executor that will be tested.
    final QueryExecutor executor = new LocalQueryExecutor(mock(CreateKafkaTopic.class), jobFactory);
    executor.startAndWait();
    try {
        // Tell the executor to start the queries.
        executor.startQuery(ryaInstance, query1);
        executor.startQuery(ryaInstance, query2);
        // Verify both are running.
        verify(queryJob1).start();
        verify(queryJob2).start();
        // Tell the executor to stop queries running under rya2.
        executor.stopAll("someOtherRyaInstance");
        // Show none of the queries were stopped.
        verify(queryJob1, never()).close();
        verify(queryJob2, never()).close();
    } finally {
        executor.stopAndWait();
    }
}
Also used : KafkaStreams(org.apache.kafka.streams.KafkaStreams) StreamsQuery(org.apache.rya.streams.api.entity.StreamsQuery) CreateKafkaTopic(org.apache.rya.streams.kafka.interactor.CreateKafkaTopic) QueryExecutor(org.apache.rya.streams.querymanager.QueryExecutor) KafkaStreamsFactory(org.apache.rya.streams.kafka.KafkaStreamsFactory) Test(org.junit.Test)

Aggregations

KafkaStreamsFactory (org.apache.rya.streams.kafka.KafkaStreamsFactory)13 CreateKafkaTopic (org.apache.rya.streams.kafka.interactor.CreateKafkaTopic)13 QueryExecutor (org.apache.rya.streams.querymanager.QueryExecutor)13 Test (org.junit.Test)13 StreamsQuery (org.apache.rya.streams.api.entity.StreamsQuery)8 KafkaStreams (org.apache.kafka.streams.KafkaStreams)6 UUID (java.util.UUID)3 ArrayList (java.util.ArrayList)1 VisibilityBindingSet (org.apache.rya.api.model.VisibilityBindingSet)1 VisibilityStatement (org.apache.rya.api.model.VisibilityStatement)1 LoadStatements (org.apache.rya.streams.api.interactor.LoadStatements)1 SingleThreadKafkaStreamsFactory (org.apache.rya.streams.kafka.SingleThreadKafkaStreamsFactory)1 KafkaLoadStatements (org.apache.rya.streams.kafka.interactor.KafkaLoadStatements)1 ValueFactory (org.openrdf.model.ValueFactory)1 ValueFactoryImpl (org.openrdf.model.impl.ValueFactoryImpl)1 MapBindingSet (org.openrdf.query.impl.MapBindingSet)1