blob: 6fad4d82da4b09ab2d408bd62b5376b01ab8c829 [file] [log] [blame]
/*
* 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.streampipes.client.example;
import org.apache.commons.collections.MapUtils;
import org.apache.streampipes.client.StreamPipesClient;
import org.apache.streampipes.client.StreamPipesCredentials;
import org.apache.streampipes.client.credentials.CredentialsProvider;
import org.apache.streampipes.client.live.KafkaConfig;
import org.apache.streampipes.model.SpDataStream;
import org.apache.streampipes.model.graph.DataSinkInvocation;
import org.apache.streampipes.model.pipeline.Pipeline;
import org.apache.streampipes.model.pipeline.PipelineOperationStatus;
import org.apache.streampipes.model.template.PipelineElementTemplate;
import java.util.List;
public class
StreamPipesClientExample {
public static void main(String[] args) {
// First, go to the StreamPipes UI and create an API key (user -> profile in the upper right corner)
// Create credentials by providing a user (the email) and the API key
CredentialsProvider credentials = StreamPipesCredentials
.withApiKey(System.getenv("user"), System.getenv("apiKey"));
// Create an instance of the StreamPipes client
StreamPipesClient client = StreamPipesClient
.create("localhost", 80, credentials, true);
// Get all pipelines
List<Pipeline> pipelines = client.pipelines().all();
// Start a pipeline
PipelineOperationStatus message = client.pipelines().start(pipelines.get(0));
// Get all pipeline element templates
List<PipelineElementTemplate> templates = client.pipelineElementTemplates().all();
// Get all data sinks
List<DataSinkInvocation> dataSinks = client.sinks().all();
// Get all data streams
List<SpDataStream> dataStreams = client.streams().all();
// Subscribe to a data stream
client.streams().subscribe(dataStreams.get(0), event -> MapUtils.debugPrint(System.out, "event", event.getRaw()));
// Subscribe to a data stream and provide an additional Kafka config (e.g., for access from outside the StreamPipes network)
client.streams().subscribe(dataStreams.get(0), KafkaConfig.create("localhost", 9094), event -> {
MapUtils.debugPrint(System.out, "event", event.getRaw());
});
}
}