Source code

    001package bluemix;
    002
    003import java.io.File;
    004import java.math.BigInteger;
    005import java.util.HashMap;
    006import java.util.Map;
    007
    008import com.ibm.streamsx.topology.Topology;
    009import com.ibm.streamsx.topology.context.AnalyticsServiceProperties;
    010import com.ibm.streamsx.topology.context.JobProperties;
    011import com.ibm.streamsx.topology.context.StreamsContext;
    012import com.ibm.streamsx.topology.context.StreamsContext.Type;
    013import com.ibm.streamsx.topology.context.StreamsContextFactory;
    014import com.ibm.streamsx.topology.jobconfig.JobConfig;
    015
    016/**
    017 * Sample demonstrating submission of a topology
    018 * to Streaming Analytic service on IBM Cloud..
    019 *
    020 */
    021public class Submit2StreamingAnalyticService {
    022
    023    public static void main(String[] args) throws Exception {
    024
    025        String vcapFile = args[0];
    026        String serviceName = args[1];
    027
    028        /*
    029         * Create a simple topology, focus of the
    030         * sample is the submission of the job
    031         * to the service.
    032         *
    033         * This topology is just like simple.HelloWorld
    034         * with different values printed to the console log.
    035         */
    036        Topology topology = new Topology("Submit2StreamingAnalyticService");
    037        topology.strings(
    038                "Hello", "Streaming Analytic Service",
    039                serviceName, "running on IBM Cloud").print();
    040
    041        // Require a configuration object.
    042        Map<String,Object> config = new HashMap<>();
    043
    044        // Here the VCAP_SERVICES information is in a local file
    045        // (as serialized JSON)
    046        config.put(AnalyticsServiceProperties.VCAP_SERVICES, new File(vcapFile));
    047
    048        // Explicitly state which service is the job will be submitted to
    049        // The service must be in the Streaming Analytic Service section
    050        // of the VCAP services.
    051        config.put(AnalyticsServiceProperties.SERVICE_NAME, serviceName);
    052
    053        // Optionally we can specify a job name
    054        // (note job names must be unique within the instance).
    055        JobConfig jco = new JobConfig();
    056        jco.setJobName("StreamingAnalyticsSubmitSample");
    057
    058        config.put(JobProperties.CONFIG, jco);
    059
    060        // Submit to the ANALYICS_SERVICE context
    061        @SuppressWarnings("unchecked")
    062        StreamsContext<BigInteger> context =
    063             (StreamsContext<BigInteger>) StreamsContextFactory.getStreamsContext(Type.STREAMING_ANALYTICS_SERVICE);
    064
    065        BigInteger jobId = context.submit(topology, config).get();
    066
    067        System.out.println("Submitted job with jobId=" + jobId);
    068
    069    }
    070}