public ITopologyBuilder GetTopologyBuilder()
        {
            TransactionalTopologyBuilder topologyBuilder = new TransactionalTopologyBuilder("HybridTopologyTx_javaSpout_csharpBolt");

            // Demo how to use clojure code (in string) to initialize the constructor of Java Spout/Bolt
            JavaComponentConstructor constructor = JavaComponentConstructor.CreateFromClojureExpr("(microsoft.scp.example.HybridTopology.TxGenerator. 100 \"test\" nil)");
            topologyBuilder.SetJavaSpout(
                "generator",
                constructor,
                1);

            // Demo how to set a customized JSON Serializer to serialize a Java object (emitted by Java Spout) into JSON string
            // Here, fullname of the Java JSON Serializer class is required
            List<string> javaSerializerInfo = new List<string>() { "microsoft.scp.storm.multilang.CustomizedInteropJSONSerializer" };
            topologyBuilder.SetBolt(
                "displayer",
                SCPTxBolt.SCP_TX_COMMIT_BOLT,
                TxDisplayer.Get,
                new Dictionary<string, List<string>>(),
                1).
                DeclareCustomizedJavaSerializer(javaSerializerInfo).
                shuffleGrouping("generator");

            // Demo how to set topology config
            topologyBuilder.SetTopologyConfig(new Dictionary<string, string>()
            {
                {"topology.kryo.register","[\"[B\"]"}
            });

            return topologyBuilder;
        }
Beispiel #2
0
        public ITopologyBuilder GetTopologyBuilder()
        {
            TransactionalTopologyBuilder topologyBuilder = new TransactionalTopologyBuilder(typeof(HybridTopologyTx_javaSpout_csharpBolt).Name + DateTime.Now.ToString("yyyyMMddHHmmss"));

            // Demo how to use clojure code (in string) to initialize the constructor of Java Spout/Bolt
            JavaComponentConstructor constructor = JavaComponentConstructor.CreateFromClojureExpr("(microsoft.scp.example.HybridTopology.TxGenerator. 100 \"test\" nil)");

            topologyBuilder.SetJavaSpout(
                "generator",
                constructor,
                1);

            // Demo how to set a customized JSON Serializer to serialize a Java object (emitted by Java Spout) into JSON string
            // Here, fullname of the Java JSON Serializer class is required
            List <string> javaSerializerInfo = new List <string>()
            {
                "microsoft.scp.storm.multilang.CustomizedInteropJSONSerializer"
            };

            topologyBuilder.SetBolt(
                "displayer",
                SCPTxBolt.SCP_TX_COMMIT_BOLT,
                TxDisplayer.Get,
                new Dictionary <string, List <string> >(),
                1).
            DeclareCustomizedJavaSerializer(javaSerializerInfo).
            shuffleGrouping("generator");

            topologyBuilder.SetTopologyConfig(new Dictionary <string, string>()
            {
                { "topology.kryo.register", "[\"[B\"]" }
            });

            return(topologyBuilder);
        }
        public ITopologyBuilder GetTopologyBuilder()
        {
            TransactionalTopologyBuilder topologyBuilder = new TransactionalTopologyBuilder("HybridTopologyTx_csharpSpout_javaBolt");

            // Demo how to set a customized JSON Deserializer to deserialize a JSON string into Java object (to send to a Java Bolt)
            // Here, fullname of the Java JSON Deserializer class and target deserialized class are required
            List<string> javaDeserializerInfo = new List<string>() { "microsoft.scp.storm.multilang.CustomizedInteropJSONDeserializer", "microsoft.scp.example.HybridTopology.Person" };

            topologyBuilder.SetSpout(
                "generator",
                TxGenerator.Get,
                new Dictionary<string, List<string>>()
                {
                    {Constants.DEFAULT_STREAM_ID, new List<string>(){"person"}}
                },
                1,
                null).DeclareCustomizedJavaDeserializer(javaDeserializerInfo);

            // Demo how to use clojure code (from a text file) to initialize the constructor of Java Spout/Bolt
            JavaComponentConstructor constructor = JavaComponentConstructor.CreateFromClojureFile("Clojure.txt");
            topologyBuilder.SetJavaBolt(
                "displayer",
                constructor,
                1).shuffleGrouping("generator");

            // Demo how to set topology config
            topologyBuilder.SetTopologyConfig(new Dictionary<string, string>()
            {
                {"topology.kryo.register","[\"[B\"]"}
            });

            return topologyBuilder;
        }
        public ITopologyBuilder GetTopologyBuilder()
        {
            TransactionalTopologyBuilder topologyBuilder = new TransactionalTopologyBuilder("HybridTopologyTx_csharpSpout_javaBolt");

            // Demo how to set a customized JSON Deserializer to deserialize a JSON string into Java object (to send to a Java Bolt)
            // Here, fullname of the Java JSON Deserializer class and target deserialized class are required
            List <string> javaDeserializerInfo = new List <string>()
            {
                "microsoft.scp.storm.multilang.CustomizedInteropJSONDeserializer", "microsoft.scp.example.HybridTopology.Person"
            };

            topologyBuilder.SetSpout(
                "generator",
                TxGenerator.Get,
                new Dictionary <string, List <string> >()
            {
                { Constants.DEFAULT_STREAM_ID, new List <string>()
                  {
                      "person"
                  } }
            },
                1,
                null).DeclareCustomizedJavaDeserializer(javaDeserializerInfo);

            // Demo how to use clojure code (from a text file) to initialize the constructor of Java Spout/Bolt
            JavaComponentConstructor constructor = JavaComponentConstructor.CreateFromClojureFile("Clojure.txt");

            topologyBuilder.SetJavaBolt(
                "displayer",
                constructor,
                1).shuffleGrouping("generator");

            // Demo how to set topology config
            topologyBuilder.SetTopologyConfig(new Dictionary <string, string>()
            {
                { "topology.kryo.register", "[\"[B\"]" }
            });

            return(topologyBuilder);
        }