[ https://issues.apache.org/jira/browse/RYA-440?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16341592#comment-16341592 ]
ASF GitHub Bot commented on RYA-440: ------------------------------------ Github user meiercaleb commented on a diff in the pull request: https://github.com/apache/incubator-rya/pull/267#discussion_r164218885 --- Diff: extras/indexing/src/main/java/org/apache/rya/api/client/SetRyaStreamsConfigurationBase.java --- @@ -0,0 +1,82 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.rya.api.client; + +import static java.util.Objects.requireNonNull; + +import org.apache.rya.api.instance.RyaDetails; +import org.apache.rya.api.instance.RyaDetails.RyaStreamsDetails; +import org.apache.rya.api.instance.RyaDetailsRepository; +import org.apache.rya.api.instance.RyaDetailsRepository.RyaDetailsRepositoryException; +import org.apache.rya.api.instance.RyaDetailsUpdater; +import org.apache.rya.api.instance.RyaDetailsUpdater.RyaDetailsMutator.CouldNotApplyMutationException; + +import edu.umd.cs.findbugs.annotations.DefaultAnnotation; +import edu.umd.cs.findbugs.annotations.NonNull; + +/** + * A base class that implements the core functionality of the {@link SetRyaStreamsConfiguration} interactor. + * Subclasses just need to implement {@link #getRyaDetailsRepo(String)} so that the common code may update + * any implementation of that repository. + */ +@DefaultAnnotation(NonNull.class) +public abstract class SetRyaStreamsConfigurationBase implements SetRyaStreamsConfiguration { + + private final InstanceExists instanceExists; + + /** + * Constructs an instance of {@link SetRyaStreamsConfigurationBase}. + * + * @param instanceExists - The interactor used to verify Rya instances exist. (not null) + */ + public SetRyaStreamsConfigurationBase(final InstanceExists instanceExists) { + this.instanceExists = requireNonNull(instanceExists); + } + + /** + * Get a {@link RyaDetailsRepository} that is connected to a specific instance of Rya. + * + * @param ryaInstance - The Rya instance the repository must be connected to. (not null) + * @return A {@link RyaDetailsRepository} connected to the specified Rya instance. + */ + protected abstract RyaDetailsRepository getRyaDetailsRepo(String ryaInstance); + + @Override + public void setRyaStreamsConfiguration(final String ryaInstance, final RyaStreamsDetails streamsDetails) throws InstanceDoesNotExistException, RyaClientException{ --- End diff -- Null check on ryaInstance > Rya Streams: Integration with the existing Rya Shell. > ----------------------------------------------------- > > Key: RYA-440 > URL: https://issues.apache.org/jira/browse/RYA-440 > Project: Rya > Issue Type: Task > Reporter: Kevin Chilton > Assignee: Kevin Chilton > Priority: Major > > We need a way to interact with Rya Streams. The shell should include the > following commands: > * *streams-configure*: Lets you change which Rya Streams system an instance > of Rya is configured to use. For example, if you are using Kafka Streams, > this command would let you configure where the Kafka services are found. > * *streams-details*: Prints to the screen the currently configured values. > * *streams-queries-add*: Tells Rya Streams that it needs to maintain a query > * *streams-queries-delete*: Tells Rya Streams that it no longer needs to > maintain a query. > * *streams-queries-start*: Tells Rya Streams to start maintaining a query. > * *streams-queries-stop*: Tells Rya Streams to stop maintaining a query. > * *streams-queries-list*: Lists the queries that are being maintained by Rya > Streams as well as their start/stop state. > * *streams-queries-details*: Prints details about the query. > For this iteration, no PCJ integration will be supported. -- This message was sent by Atlassian JIRA (v7.6.3#76005)