├── .asf.yaml ├── .bazelrc ├── .bazelversion ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md ├── .gitignore ├── .rat-excludes ├── .travis.yml ├── ADOPTERS.md ├── BUILD ├── DISCLAIMER ├── LICENSE ├── NOTICE ├── README.md ├── RETIRED.txt ├── WORKSPACE ├── bazel_configure.py ├── config ├── BUILD ├── autogen.sh ├── configure.ac ├── empty.cc ├── heron.def └── m4 │ ├── acx_pthread.m4 │ └── gxx_stdio_filebuf.m4 ├── contrib ├── bolts │ ├── README.md │ └── kafka │ │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── bolts │ │ │ └── kafka │ │ │ ├── DefaultKafkaProducerFactory.java │ │ │ ├── KafkaBolt.java │ │ │ ├── KafkaProducerFactory.java │ │ │ └── TupleTransformer.java │ │ └── test │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── bolts │ │ └── kafka │ │ ├── DefaultKafkaProducerFactoryTest.java │ │ └── KafkaBoltTest.java └── spouts │ ├── README.md │ └── kafka │ ├── doc │ └── README.md │ ├── sample │ └── src │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── spouts │ │ └── kafka │ │ └── sample │ │ └── HeronKafkaSpoutSampleTopology.java │ ├── src │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── spouts │ │ └── kafka │ │ ├── ConsumerRecordTransformer.java │ │ ├── DefaultConsumerRecordTransformer.java │ │ ├── DefaultKafkaConsumerFactory.java │ │ ├── DefaultTopicPatternProvider.java │ │ ├── KafkaConsumerFactory.java │ │ ├── KafkaMetricDecorator.java │ │ ├── KafkaSpout.java │ │ └── TopicPatternProvider.java │ └── test │ └── java │ ├── BUILD │ └── org │ └── apache │ └── heron │ └── spouts │ └── kafka │ ├── DefaultConsumerRecordTransformerTest.java │ ├── DefaultKafkaConsumerFactoryTest.java │ ├── DefaultTopicPatternProviderTest.java │ ├── KafkaMetricDecoratorTest.java │ └── KafkaSpoutTest.java ├── deploy ├── docker │ ├── README.md │ └── sandbox.sh └── kubernetes │ ├── general │ ├── README.md │ ├── apiserver.yaml │ ├── bookkeeper.statefulset.yaml │ ├── bookkeeper.statefulset_empty.yaml │ ├── bookkeeper.yaml │ ├── tools.yaml │ └── zookeeper.yaml │ ├── gke │ ├── gcs-apiserver.yaml │ ├── medium.yaml │ └── small.yaml │ ├── helm │ ├── .helmignore │ ├── BUILD │ ├── Chart.yaml.template │ ├── templates │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── bookie.yaml │ │ ├── tools.yaml │ │ └── zookeeper.yaml │ └── values.yaml.template │ └── minikube │ ├── README.md │ ├── apiserver.yaml │ ├── bookkeeper.yaml │ ├── tools.yaml │ └── zookeeper.yaml ├── docker ├── .tarignore ├── Readme.md ├── base │ ├── Dockerfile.base.debian11 │ ├── conf │ │ ├── sandbox.conf │ │ └── zookeeper.conf │ └── scripts │ │ ├── generate-zookeeper-config.sh │ │ ├── install-zookeeper.sh │ │ ├── start-zookeeper.sh │ │ ├── wait-for-zookeeper.sh │ │ └── zookeeper-ruok.sh ├── compile │ ├── Dockerfile.centos7 │ ├── Dockerfile.debian11 │ ├── Dockerfile.rocky8 │ ├── Dockerfile.ubuntu18.04 │ ├── Dockerfile.ubuntu20.04 │ └── Dockerfile.ubuntu22.04 ├── dist │ ├── Dockerfile.dist.centos7 │ ├── Dockerfile.dist.debian11 │ ├── Dockerfile.dist.rocky8 │ ├── Dockerfile.dist.ubuntu18.04 │ ├── Dockerfile.dist.ubuntu20.04 │ ├── Dockerfile.dist.ubuntu22.04 │ ├── conf │ │ ├── sandbox.conf │ │ └── zookeeper.conf │ └── scripts │ │ ├── generate-zookeeper-config.sh │ │ ├── install-zookeeper.sh │ │ ├── start-zookeeper.sh │ │ ├── wait-for-zookeeper.sh │ │ └── zookeeper-ruok.sh ├── scripts │ ├── build-artifacts.sh │ ├── build-base.sh │ ├── build-docker.sh │ ├── build-exec-docker.sh │ ├── ci-docker.sh │ ├── cleanup-dockers.sh │ ├── compile-docker.sh │ ├── compile-platform.sh │ ├── dev-env-create.sh │ ├── dev-env-run.sh │ ├── test-docker.sh │ ├── test-platform.sh │ └── test-unittest.sh └── test │ ├── Dockerfile.centos7 │ ├── Dockerfile.rocky8 │ └── Dockerfile.ubuntu18.04 ├── eco-heron-examples └── src │ └── java │ ├── BUILD │ └── org │ └── apache │ └── heron │ └── examples │ └── eco │ ├── EvenAndOddBolt.java │ ├── LogInfoBolt.java │ ├── RandomString.java │ ├── StatefulConsumerBolt.java │ ├── StatefulNumberSpout.java │ ├── StatefulRandomIntSpout.java │ ├── StatefulWindowSumBolt.java │ ├── TestFibonacciSpout.java │ ├── TestIBasicPrintBolt.java │ ├── TestNameCounter.java │ ├── TestNameSpout.java │ ├── TestPrintBolt.java │ ├── TestPropertyHolder.java │ ├── TestUnits.java │ ├── TestWindowBolt.java │ ├── WordSpout.java │ ├── heron_fibonacci.yaml │ ├── heron_stateful_windowing.yaml │ ├── heron_stateful_word_count.yaml │ ├── heron_windowing.yaml │ ├── heron_wordcount.yaml │ └── sample.properties ├── eco-storm-examples └── src │ └── java │ ├── BUILD │ └── org │ └── apache │ └── heron │ └── examples │ └── eco │ ├── EvenAndOddBolt.java │ ├── LogInfoBolt.java │ ├── TestFibonacciSpout.java │ ├── TestIBasicPrintBolt.java │ ├── TestNameCounter.java │ ├── TestNameSpout.java │ ├── TestPrintBolt.java │ ├── TestPropertyHolder.java │ ├── TestUnits.java │ ├── TestWindowBolt.java │ ├── sample.properties │ ├── storm_fibonacci.yaml │ ├── storm_windowing.yaml │ └── storm_wordcount.yaml ├── eco ├── src │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── eco │ │ ├── Eco.java │ │ ├── builder │ │ ├── BoltBuilder.java │ │ ├── BuilderUtility.java │ │ ├── ComponentBuilder.java │ │ ├── ConfigBuilder.java │ │ ├── ObjectBuilder.java │ │ ├── heron │ │ │ ├── EcoBuilder.java │ │ │ ├── SpoutBuilder.java │ │ │ └── StreamBuilder.java │ │ └── storm │ │ │ ├── EcoBuilder.java │ │ │ ├── SpoutBuilder.java │ │ │ └── StreamBuilder.java │ │ ├── definition │ │ ├── BeanDefinition.java │ │ ├── BeanListReference.java │ │ ├── BeanReference.java │ │ ├── BoltDefinition.java │ │ ├── ComponentStream.java │ │ ├── ConfigurationMethodDefinition.java │ │ ├── EcoExecutionContext.java │ │ ├── EcoTopologyDefinition.java │ │ ├── GroupingDefinition.java │ │ ├── ObjectDefinition.java │ │ ├── PropertyDefinition.java │ │ ├── SpoutDefinition.java │ │ └── StreamDefinition.java │ │ ├── parser │ │ └── EcoParser.java │ │ └── submit │ │ └── EcoSubmitter.java └── tests │ └── java │ ├── BUILD │ └── org │ └── apache │ └── heron │ └── eco │ ├── EcoTest.java │ ├── builder │ ├── BoltBuilderTest.java │ ├── BuilderUtilityTest.java │ ├── ComponentBuilderTest.java │ ├── ConfigBuilderTest.java │ ├── ObjectBuilderTest.java │ ├── heron │ │ ├── HeronEcoBuilderTest.java │ │ ├── HeronSpoutBuilderTest.java │ │ └── HeronStreamBuilderTest.java │ └── storm │ │ ├── StormEcoBuilderTest.java │ │ ├── StormSpoutBuilderTest.java │ │ └── StormStreamBuilderTest.java │ ├── parser │ └── EcoParserTest.java │ └── submit │ └── EcoSubmitterTest.java ├── examples └── src │ ├── cpp │ ├── BUILD │ ├── ackfail │ │ └── ackfail-topology.cpp │ ├── exclamation │ │ └── exclamation-topology.cpp │ └── spouts │ │ └── test-word-spout.h │ ├── java │ ├── BUILD │ └── org │ │ └── apache │ │ └── heron │ │ └── examples │ │ ├── api │ │ ├── AckingTopology.java │ │ ├── ComponentConfigTopology.java │ │ ├── ComponentJVMOptionsTopology.java │ │ ├── CustomGroupingTopology.java │ │ ├── ExampleResources.java │ │ ├── ExclamationTopology.java │ │ ├── MultiSpoutExclamationTopology.java │ │ ├── MultiStageAckingTopology.java │ │ ├── SentenceWordCountTopology.java │ │ ├── SlidingWindowTopology.java │ │ ├── StatefulSlidingWindowTopology.java │ │ ├── StatefulTumblingWindowTopology.java │ │ ├── StatefulWordCountTopology.java │ │ ├── TaskHookTopology.java │ │ ├── WindowedWordCountTopology.java │ │ ├── WordCountTopology.java │ │ ├── bolt │ │ │ ├── PrinterBolt.java │ │ │ └── SlidingWindowSumBolt.java │ │ └── spout │ │ │ ├── RandomIntegerSpout.java │ │ │ └── TestWordSpout.java │ │ └── streamlet │ │ ├── ComponentConfigTopology.java │ │ ├── FilesystemSinkTopology.java │ │ ├── FormattedOutputTopology.java │ │ ├── ImpressionsAndClicksTopology.java │ │ ├── IntegerProcessingTopology.java │ │ ├── RepartitionTopology.java │ │ ├── SimplePulsarSourceTopology.java │ │ ├── SmartWatchTopology.java │ │ ├── StreamletCloneTopology.java │ │ ├── TransformsTopology.java │ │ ├── WindowedWordCountTopology.java │ │ ├── WireRequestsTopology.java │ │ └── utils │ │ └── StreamletUtils.java │ ├── python │ ├── BUILD │ ├── __init__.py │ ├── bolt │ │ ├── __init__.py │ │ ├── consume_bolt.py │ │ ├── count_bolt.py │ │ ├── half_ack_bolt.py │ │ ├── stateful_count_bolt.py │ │ ├── stream_aggregate_bolt.py │ │ └── window_size_bolt.py │ ├── custom_grouping_topology.py │ ├── half_acking_topology.py │ ├── join_streamlet_topology.py │ ├── misc │ │ ├── __init__.py │ │ └── test_task_hook.py │ ├── multi_stream_topology.py │ ├── pulsar_word_count_streamlet.py │ ├── spout │ │ ├── __init__.py │ │ ├── multi_stream_spout.py │ │ ├── stateful_word_spout.py │ │ └── word_spout.py │ ├── stateful_word_count_topology.py │ ├── window_size_topology.py │ ├── word_count_streamlet.py │ └── word_count_topology.py │ └── scala │ ├── BUILD │ ├── compile.sh │ └── org │ └── apache │ └── heron │ └── examples │ ├── SomeHeronBolt.scala │ ├── SomeStormBolt.scala │ └── streamlet │ └── scala │ ├── ScalaClassicalMusicTopology.scala │ ├── ScalaIntegerProcessingTopology.scala │ ├── ScalaRepartitionTopology.scala │ ├── ScalaTransformsAndCloneTopology.scala │ ├── ScalaWindowedWordCountTopology.scala │ └── common │ └── ScalaTopologyExampleUtils.scala ├── heron ├── api │ ├── src │ │ ├── BUILD │ │ ├── META-INF │ │ │ └── services │ │ │ │ └── javax.annotation.processing.Processor │ │ ├── cpp │ │ │ ├── BUILD │ │ │ ├── bolt │ │ │ │ ├── base-basic-bolt.h │ │ │ │ ├── base-rich-bolt.h │ │ │ │ ├── basic-bolt-collector.h │ │ │ │ ├── ibasic-bolt.h │ │ │ │ ├── ibolt-output-collector.h │ │ │ │ ├── ibolt.h │ │ │ │ └── irich-bolt.h │ │ │ ├── config │ │ │ │ ├── config.cpp │ │ │ │ └── config.h │ │ │ ├── exceptions │ │ │ │ ├── already-alive-exception.h │ │ │ │ ├── invalid-topology-exception.h │ │ │ │ └── serialization-exception.h │ │ │ ├── metric │ │ │ │ ├── assignable-metric.h │ │ │ │ ├── count-metric.h │ │ │ │ ├── imetric.h │ │ │ │ ├── imetrics-registrar.h │ │ │ │ ├── imulti-metric.h │ │ │ │ ├── mean-metric.h │ │ │ │ ├── multi-count-metric.h │ │ │ │ └── multi-mean-metric.h │ │ │ ├── serializer │ │ │ │ ├── cereal-serializer.h │ │ │ │ ├── ipluggable-serializer.cpp │ │ │ │ ├── ipluggable-serializer.h │ │ │ │ ├── string-serializer.h │ │ │ │ └── tuple-serializer-utils.h │ │ │ ├── spout │ │ │ │ ├── base-rich-spout.h │ │ │ │ ├── irich-spout.h │ │ │ │ ├── ispout-output-collector.h │ │ │ │ └── ispout.h │ │ │ ├── topology │ │ │ │ ├── base-component-declarer.h │ │ │ │ ├── bolt-declarer.h │ │ │ │ ├── heron-submitter.h │ │ │ │ ├── icomponent.h │ │ │ │ ├── output-fields-declarer.h │ │ │ │ ├── output-fields-getter.h │ │ │ │ ├── spout-declarer.h │ │ │ │ ├── task-context.h │ │ │ │ ├── topology-builder.h │ │ │ │ └── topology-context.h │ │ │ ├── tuple │ │ │ │ ├── fields.h │ │ │ │ └── tuple.h │ │ │ └── utils │ │ │ │ ├── utils.cpp │ │ │ │ └── utils.h │ │ ├── java │ │ │ ├── BUILD │ │ │ ├── org │ │ │ │ └── apache │ │ │ │ │ └── heron │ │ │ │ │ ├── api │ │ │ │ │ ├── Config.java │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── HeronSubmitter.java │ │ │ │ │ ├── HeronTopology.java │ │ │ │ │ ├── Pair.java │ │ │ │ │ ├── bolt │ │ │ │ │ │ ├── BaseBasicBolt.java │ │ │ │ │ │ ├── BaseRichBolt.java │ │ │ │ │ │ ├── BaseStatefulWindowedBolt.java │ │ │ │ │ │ ├── BaseWindowedBolt.java │ │ │ │ │ │ ├── BasicBoltExecutor.java │ │ │ │ │ │ ├── BasicOutputCollector.java │ │ │ │ │ │ ├── IBasicBolt.java │ │ │ │ │ │ ├── IBasicOutputCollector.java │ │ │ │ │ │ ├── IBolt.java │ │ │ │ │ │ ├── IErrorReporter.java │ │ │ │ │ │ ├── IOutputCollector.java │ │ │ │ │ │ ├── IRichBolt.java │ │ │ │ │ │ ├── IStatefulWindowedBolt.java │ │ │ │ │ │ ├── IWindowedBolt.java │ │ │ │ │ │ ├── OutputCollector.java │ │ │ │ │ │ ├── StatefulWindowedBoltExecutor.java │ │ │ │ │ │ └── WindowedBoltExecutor.java │ │ │ │ │ ├── exception │ │ │ │ │ │ ├── AlreadyAliveException.java │ │ │ │ │ │ ├── FailedException.java │ │ │ │ │ │ ├── InvalidTopologyException.java │ │ │ │ │ │ ├── ReportedFailedException.java │ │ │ │ │ │ └── TopologySubmissionException.java │ │ │ │ │ ├── grouping │ │ │ │ │ │ ├── AllStreamGrouping.java │ │ │ │ │ │ ├── CustomStreamGrouping.java │ │ │ │ │ │ ├── DirectStreamGrouping.java │ │ │ │ │ │ ├── FieldsStreamGrouping.java │ │ │ │ │ │ ├── GlobalStreamGrouping.java │ │ │ │ │ │ ├── NoneStreamGrouping.java │ │ │ │ │ │ ├── ShuffleStreamGrouping.java │ │ │ │ │ │ └── StreamGrouping.java │ │ │ │ │ ├── hooks │ │ │ │ │ │ ├── BaseTaskHook.java │ │ │ │ │ │ ├── ITaskHook.java │ │ │ │ │ │ └── info │ │ │ │ │ │ │ ├── BoltAckInfo.java │ │ │ │ │ │ │ ├── BoltExecuteInfo.java │ │ │ │ │ │ │ ├── BoltFailInfo.java │ │ │ │ │ │ │ ├── EmitInfo.java │ │ │ │ │ │ │ ├── SpoutAckInfo.java │ │ │ │ │ │ │ └── SpoutFailInfo.java │ │ │ │ │ ├── metric │ │ │ │ │ │ ├── AssignableMetric.java │ │ │ │ │ │ ├── CombinedMetric.java │ │ │ │ │ │ ├── ConcurrentCountMetric.java │ │ │ │ │ │ ├── CountMetric.java │ │ │ │ │ │ ├── CountStatAndMetric.java │ │ │ │ │ │ ├── CumulativeCountMetric.java │ │ │ │ │ │ ├── GlobalMetrics.java │ │ │ │ │ │ ├── ICombiner.java │ │ │ │ │ │ ├── IMetric.java │ │ │ │ │ │ ├── IMetricsRegister.java │ │ │ │ │ │ ├── IReducer.java │ │ │ │ │ │ ├── LatencyStatAndMetric.java │ │ │ │ │ │ ├── MeanReducer.java │ │ │ │ │ │ ├── MeanReducerState.java │ │ │ │ │ │ ├── MetricStatTimer.java │ │ │ │ │ │ ├── MultiAssignableMetric.java │ │ │ │ │ │ ├── MultiCountMetric.java │ │ │ │ │ │ ├── MultiReducedMetric.java │ │ │ │ │ │ └── ReducedMetric.java │ │ │ │ │ ├── serializer │ │ │ │ │ │ ├── DefaultKryoFactory.java │ │ │ │ │ │ ├── IKryoDecorator.java │ │ │ │ │ │ ├── IKryoFactory.java │ │ │ │ │ │ ├── IPluggableSerializer.java │ │ │ │ │ │ ├── JavaSerializer.java │ │ │ │ │ │ ├── KryoSerializer.java │ │ │ │ │ │ └── SerializableSerializer.java │ │ │ │ │ ├── spout │ │ │ │ │ │ ├── BaseRichSpout.java │ │ │ │ │ │ ├── IMultiSchemableSpout.java │ │ │ │ │ │ ├── IRichSpout.java │ │ │ │ │ │ ├── ISchemableSpout.java │ │ │ │ │ │ ├── ISpout.java │ │ │ │ │ │ ├── ISpoutOutputCollector.java │ │ │ │ │ │ ├── MultiScheme.java │ │ │ │ │ │ ├── RawMultiScheme.java │ │ │ │ │ │ ├── RawScheme.java │ │ │ │ │ │ ├── Scheme.java │ │ │ │ │ │ ├── SchemeAsMultiScheme.java │ │ │ │ │ │ └── SpoutOutputCollector.java │ │ │ │ │ ├── state │ │ │ │ │ │ ├── HashMapState.java │ │ │ │ │ │ └── State.java │ │ │ │ │ ├── topology │ │ │ │ │ │ ├── BaseComponent.java │ │ │ │ │ │ ├── BaseComponentDeclarer.java │ │ │ │ │ │ ├── BaseConfigurationDeclarer.java │ │ │ │ │ │ ├── BoltDeclarer.java │ │ │ │ │ │ ├── ComponentConfigurationDeclarer.java │ │ │ │ │ │ ├── GeneralTopologyContext.java │ │ │ │ │ │ ├── IComponent.java │ │ │ │ │ │ ├── IStatefulComponent.java │ │ │ │ │ │ ├── ITwoPhaseStatefulComponent.java │ │ │ │ │ │ ├── IUpdatable.java │ │ │ │ │ │ ├── OutputFieldsDeclarer.java │ │ │ │ │ │ ├── OutputFieldsGetter.java │ │ │ │ │ │ ├── SpoutDeclarer.java │ │ │ │ │ │ ├── TopologyBuilder.java │ │ │ │ │ │ └── TopologyContext.java │ │ │ │ │ ├── tuple │ │ │ │ │ │ ├── Fields.java │ │ │ │ │ │ ├── Tuple.java │ │ │ │ │ │ └── Values.java │ │ │ │ │ ├── utils │ │ │ │ │ │ ├── DefaultMaxSpoutPendingTuner.java │ │ │ │ │ │ ├── Slf4jUtils.java │ │ │ │ │ │ ├── TopologyUtils.java │ │ │ │ │ │ ├── TupleUtils.java │ │ │ │ │ │ └── Utils.java │ │ │ │ │ └── windowing │ │ │ │ │ │ ├── DefaultEvictionContext.java │ │ │ │ │ │ ├── Event.java │ │ │ │ │ │ ├── EventImpl.java │ │ │ │ │ │ ├── EvictionContext.java │ │ │ │ │ │ ├── EvictionPolicy.java │ │ │ │ │ │ ├── TimestampExtractor.java │ │ │ │ │ │ ├── TriggerHandler.java │ │ │ │ │ │ ├── TriggerPolicy.java │ │ │ │ │ │ ├── TupleFieldTimestampExtractor.java │ │ │ │ │ │ ├── TupleWindow.java │ │ │ │ │ │ ├── TupleWindowImpl.java │ │ │ │ │ │ ├── WaterMarkEvent.java │ │ │ │ │ │ ├── WaterMarkEventGenerator.java │ │ │ │ │ │ ├── Window.java │ │ │ │ │ │ ├── WindowLifecycleListener.java │ │ │ │ │ │ ├── WindowManager.java │ │ │ │ │ │ ├── WindowingConfigs.java │ │ │ │ │ │ ├── evictors │ │ │ │ │ │ ├── CountEvictionPolicy.java │ │ │ │ │ │ ├── TimeEvictionPolicy.java │ │ │ │ │ │ ├── WatermarkCountEvictionPolicy.java │ │ │ │ │ │ └── WatermarkTimeEvictionPolicy.java │ │ │ │ │ │ └── triggers │ │ │ │ │ │ ├── AbstractBaseTriggerPolicy.java │ │ │ │ │ │ ├── CountTriggerPolicy.java │ │ │ │ │ │ ├── TimeTriggerPolicy.java │ │ │ │ │ │ ├── WatermarkCountTriggerPolicy.java │ │ │ │ │ │ └── WatermarkTimeTriggerPolicy.java │ │ │ │ │ ├── classification │ │ │ │ │ ├── HeronAnnotationProcessor.java │ │ │ │ │ ├── InterfaceAudience.java │ │ │ │ │ └── InterfaceStability.java │ │ │ │ │ └── streamlet │ │ │ │ │ ├── Builder.java │ │ │ │ │ ├── Config.java │ │ │ │ │ ├── Context.java │ │ │ │ │ ├── IStreamletBasicOperator.java │ │ │ │ │ ├── IStreamletOperator.java │ │ │ │ │ ├── IStreamletRichOperator.java │ │ │ │ │ ├── IStreamletWindowOperator.java │ │ │ │ │ ├── JoinType.java │ │ │ │ │ ├── KVStreamlet.java │ │ │ │ │ ├── KeyValue.java │ │ │ │ │ ├── KeyedWindow.java │ │ │ │ │ ├── Runner.java │ │ │ │ │ ├── SerializableBiFunction.java │ │ │ │ │ ├── SerializableBinaryOperator.java │ │ │ │ │ ├── SerializableConsumer.java │ │ │ │ │ ├── SerializableFunction.java │ │ │ │ │ ├── SerializablePredicate.java │ │ │ │ │ ├── SerializableSupplier.java │ │ │ │ │ ├── SerializableTransformer.java │ │ │ │ │ ├── Sink.java │ │ │ │ │ ├── Source.java │ │ │ │ │ ├── Streamlet.java │ │ │ │ │ ├── StreamletBase.java │ │ │ │ │ ├── StreamletReducers.java │ │ │ │ │ ├── Window.java │ │ │ │ │ ├── WindowConfig.java │ │ │ │ │ └── impl │ │ │ │ │ ├── BuilderImpl.java │ │ │ │ │ ├── ContextImpl.java │ │ │ │ │ ├── KVStreamletShadow.java │ │ │ │ │ ├── KryoSerializer.java │ │ │ │ │ ├── StreamletBaseImpl.java │ │ │ │ │ ├── StreamletImpl.java │ │ │ │ │ ├── StreamletShadow.java │ │ │ │ │ ├── groupings │ │ │ │ │ ├── JoinCustomGrouping.java │ │ │ │ │ ├── ReduceByKeyAndWindowCustomGrouping.java │ │ │ │ │ └── RemapCustomGrouping.java │ │ │ │ │ ├── operators │ │ │ │ │ ├── FilterOperator.java │ │ │ │ │ ├── FlatMapOperator.java │ │ │ │ │ ├── GeneralReduceByKeyAndWindowOperator.java │ │ │ │ │ ├── GeneralReduceByKeyOperator.java │ │ │ │ │ ├── JoinOperator.java │ │ │ │ │ ├── KeyByOperator.java │ │ │ │ │ ├── MapOperator.java │ │ │ │ │ ├── ReduceByKeyAndWindowOperator.java │ │ │ │ │ ├── ReduceByKeyOperator.java │ │ │ │ │ ├── SplitOperator.java │ │ │ │ │ ├── StreamletOperator.java │ │ │ │ │ ├── StreamletWindowOperator.java │ │ │ │ │ ├── TransformOperator.java │ │ │ │ │ └── UnionOperator.java │ │ │ │ │ ├── sinks │ │ │ │ │ ├── ComplexSink.java │ │ │ │ │ ├── ConsumerSink.java │ │ │ │ │ └── LogSink.java │ │ │ │ │ ├── sources │ │ │ │ │ ├── ComplexSource.java │ │ │ │ │ ├── StreamletSource.java │ │ │ │ │ └── SupplierSource.java │ │ │ │ │ ├── streamlets │ │ │ │ │ ├── ConsumerStreamlet.java │ │ │ │ │ ├── CountByKeyAndWindowStreamlet.java │ │ │ │ │ ├── CountByKeyStreamlet.java │ │ │ │ │ ├── CustomStreamlet.java │ │ │ │ │ ├── FilterStreamlet.java │ │ │ │ │ ├── FlatMapStreamlet.java │ │ │ │ │ ├── GeneralReduceByKeyAndWindowStreamlet.java │ │ │ │ │ ├── GeneralReduceByKeyStreamlet.java │ │ │ │ │ ├── JoinStreamlet.java │ │ │ │ │ ├── KeyByStreamlet.java │ │ │ │ │ ├── LogStreamlet.java │ │ │ │ │ ├── MapStreamlet.java │ │ │ │ │ ├── ReduceByKeyAndWindowStreamlet.java │ │ │ │ │ ├── ReduceByKeyStreamlet.java │ │ │ │ │ ├── RemapStreamlet.java │ │ │ │ │ ├── SinkStreamlet.java │ │ │ │ │ ├── SourceStreamlet.java │ │ │ │ │ ├── SplitStreamlet.java │ │ │ │ │ ├── SpoutStreamlet.java │ │ │ │ │ ├── SupplierStreamlet.java │ │ │ │ │ ├── TransformStreamlet.java │ │ │ │ │ └── UnionStreamlet.java │ │ │ │ │ ├── utils │ │ │ │ │ └── StreamletUtils.java │ │ │ │ │ └── windowings │ │ │ │ │ ├── CountWindowConfig.java │ │ │ │ │ ├── CustomWindowConfig.java │ │ │ │ │ └── TimeWindowConfig.java │ │ │ └── shade.conf │ │ └── scala │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── streamlet │ │ │ └── scala │ │ │ ├── Builder.scala │ │ │ ├── KVStreamlet.scala │ │ │ ├── Runner.scala │ │ │ ├── SerializableTransformer.scala │ │ │ ├── Sink.scala │ │ │ ├── Source.scala │ │ │ ├── Streamlet.scala │ │ │ ├── StreamletBase.scala │ │ │ ├── StreamletReducers.scala │ │ │ ├── converter │ │ │ └── ScalaToJavaConverter.scala │ │ │ └── impl │ │ │ ├── BuilderImpl.scala │ │ │ ├── KVStreamletImpl.scala │ │ │ ├── StreamletBaseImpl.scala │ │ │ └── StreamletImpl.scala │ └── tests │ │ ├── cpp │ │ ├── BUILD │ │ └── serialization_unittest.cpp │ │ ├── java │ │ ├── BUILD │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ ├── api │ │ │ ├── ConfigTest.java │ │ │ ├── HeronSubmitterTest.java │ │ │ ├── bolt │ │ │ │ ├── BaseWindowedBoltTest.java │ │ │ │ └── WindowedBoltExecutorTest.java │ │ │ ├── metric │ │ │ │ ├── CountStatAndMetricTest.java │ │ │ │ └── LatencyStatAndMetricTest.java │ │ │ ├── utils │ │ │ │ └── UtilsTest.java │ │ │ └── windowing │ │ │ │ ├── WaterMarkEventGeneratorTest.java │ │ │ │ └── WindowManagerTest.java │ │ │ ├── resource │ │ │ ├── TestBasicBolt.java │ │ │ ├── TestBolt.java │ │ │ ├── TestSpout.java │ │ │ └── TestWindowBolt.java │ │ │ └── streamlet │ │ │ ├── StreamletReducersTest.java │ │ │ └── impl │ │ │ ├── KVStreamletShadowTest.java │ │ │ ├── StreamletImplTest.java │ │ │ ├── StreamletShadowTest.java │ │ │ ├── operators │ │ │ ├── GeneralReduceByKeyAndWindowOperatorTest.java │ │ │ ├── JoinOperatorTest.java │ │ │ ├── KeyByOperatorTest.java │ │ │ └── ReduceByKeyAndWindowOperatorTest.java │ │ │ └── utils │ │ │ └── StreamletUtilsTest.java │ │ └── scala │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ ├── resource │ │ ├── TestBasicBolt.scala │ │ ├── TestBolt.scala │ │ ├── TestSpout.scala │ │ └── TestWindowBolt.scala │ │ └── streamlet │ │ └── scala │ │ ├── SinkTest.scala │ │ ├── SourceTest.scala │ │ ├── StreamletReducersTest.scala │ │ ├── common │ │ ├── BaseFunSuite.scala │ │ ├── TestContext.scala │ │ ├── TestIncrementSerializableTransformer.scala │ │ └── TestListBufferSink.scala │ │ ├── converter │ │ └── ScalaToJavaConverterTest.scala │ │ └── impl │ │ ├── BuilderImplTest.scala │ │ └── StreamletImplTest.scala ├── ckptmgr │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ ├── org │ │ │ └── apache │ │ │ │ └── heron │ │ │ │ └── ckptmgr │ │ │ │ ├── CheckpointManager.java │ │ │ │ ├── CheckpointManagerConfig.java │ │ │ │ ├── CheckpointManagerConfigKey.java │ │ │ │ ├── CheckpointManagerException.java │ │ │ │ └── CheckpointManagerServer.java │ │ │ └── shade.conf │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── ckptmgr │ │ └── CheckpointManagerServerTest.java ├── common │ ├── src │ │ ├── cpp │ │ │ ├── basics │ │ │ │ ├── BUILD │ │ │ │ ├── basics.cpp │ │ │ │ ├── basics.h │ │ │ │ ├── callback.h │ │ │ │ ├── callback1.h │ │ │ │ ├── classcallback.h │ │ │ │ ├── classcallback1.h │ │ │ │ ├── execmeta.cpp │ │ │ │ ├── execmeta.h │ │ │ │ ├── fileutils.cpp │ │ │ │ ├── fileutils.h │ │ │ │ ├── iputils.cpp │ │ │ │ ├── iputils.h │ │ │ │ ├── mempool.cpp │ │ │ │ ├── mempool.h │ │ │ │ ├── modinit.cpp │ │ │ │ ├── modinit.h │ │ │ │ ├── processutils.cpp │ │ │ │ ├── processutils.h │ │ │ │ ├── randutils.cpp │ │ │ │ ├── randutils.h │ │ │ │ ├── ridgen.cpp │ │ │ │ ├── ridgen.h │ │ │ │ ├── sockutils.cpp │ │ │ │ ├── sockutils.h │ │ │ │ ├── spconsts.h │ │ │ │ ├── spfuncs.h │ │ │ │ ├── sphash.h │ │ │ │ ├── sprcodes.h │ │ │ │ ├── sptest.h │ │ │ │ ├── sptypes.h │ │ │ │ ├── strutils.cpp │ │ │ │ └── strutils.h │ │ │ ├── config │ │ │ │ ├── BUILD │ │ │ │ ├── allconfig.h │ │ │ │ ├── cluster-config-reader.cpp │ │ │ │ ├── cluster-config-reader.h │ │ │ │ ├── cluster-config-vars.cpp │ │ │ │ ├── cluster-config-vars.h │ │ │ │ ├── helper.h │ │ │ │ ├── heron-internals-config-reader.cpp │ │ │ │ ├── heron-internals-config-reader.h │ │ │ │ ├── heron-internals-config-vars.cpp │ │ │ │ ├── heron-internals-config-vars.h │ │ │ │ ├── metrics-sinks-reader.cpp │ │ │ │ ├── metrics-sinks-reader.h │ │ │ │ ├── metrics-sinks-vars.cpp │ │ │ │ ├── metrics-sinks-vars.h │ │ │ │ ├── operational-config-reader.cpp │ │ │ │ ├── operational-config-reader.h │ │ │ │ ├── operational-config-vars.cpp │ │ │ │ ├── operational-config-vars.h │ │ │ │ ├── physical-plan-helper.cpp │ │ │ │ ├── physical-plan-helper.h │ │ │ │ ├── reader.h │ │ │ │ ├── topology-config-helper.cpp │ │ │ │ ├── topology-config-helper.h │ │ │ │ ├── topology-config-vars.cpp │ │ │ │ ├── topology-config-vars.h │ │ │ │ ├── yaml-file-reader.cpp │ │ │ │ └── yaml-file-reader.h │ │ │ ├── errors │ │ │ │ ├── BUILD │ │ │ │ ├── errors.h │ │ │ │ ├── gexception.cpp │ │ │ │ ├── gexception.h │ │ │ │ ├── modinit.cpp │ │ │ │ ├── modinit.h │ │ │ │ ├── sperrimpl.cpp │ │ │ │ ├── sperrimpl.h │ │ │ │ ├── sperrmod.h │ │ │ │ ├── sperror.cpp │ │ │ │ ├── sperror.h │ │ │ │ ├── spexcept.cpp │ │ │ │ ├── spexcept.h │ │ │ │ ├── sys-errors.dat │ │ │ │ └── syserr.h │ │ │ ├── metrics │ │ │ │ ├── BUILD │ │ │ │ ├── assignable-metric.cpp │ │ │ │ ├── assignable-metric.h │ │ │ │ ├── count-metric.cpp │ │ │ │ ├── count-metric.h │ │ │ │ ├── imetric.h │ │ │ │ ├── mean-metric.cpp │ │ │ │ ├── mean-metric.h │ │ │ │ ├── metrics-mgr-st.cpp │ │ │ │ ├── metrics-mgr-st.h │ │ │ │ ├── metrics.h │ │ │ │ ├── metricsmgr-client.cpp │ │ │ │ ├── metricsmgr-client.h │ │ │ │ ├── multi-assignable-metric.cpp │ │ │ │ ├── multi-assignable-metric.h │ │ │ │ ├── multi-count-metric.cpp │ │ │ │ ├── multi-count-metric.h │ │ │ │ ├── multi-mean-metric.cpp │ │ │ │ ├── multi-mean-metric.h │ │ │ │ ├── time-spent-metric.cpp │ │ │ │ ├── time-spent-metric.h │ │ │ │ ├── tmanager-metrics.cpp │ │ │ │ └── tmanager-metrics.h │ │ │ ├── network │ │ │ │ ├── BUILD │ │ │ │ ├── asyncdns.cpp │ │ │ │ ├── asyncdns.h │ │ │ │ ├── baseclient.cpp │ │ │ │ ├── baseclient.h │ │ │ │ ├── baseconnection.cpp │ │ │ │ ├── baseconnection.h │ │ │ │ ├── baseserver.cpp │ │ │ │ ├── baseserver.h │ │ │ │ ├── client.cpp │ │ │ │ ├── client.h │ │ │ │ ├── connection.cpp │ │ │ │ ├── connection.h │ │ │ │ ├── event_loop.h │ │ │ │ ├── event_loop_impl.cpp │ │ │ │ ├── event_loop_impl.h │ │ │ │ ├── httpclient.cpp │ │ │ │ ├── httpclient.h │ │ │ │ ├── httpserver.cpp │ │ │ │ ├── httpserver.h │ │ │ │ ├── httputils.cpp │ │ │ │ ├── httputils.h │ │ │ │ ├── misc │ │ │ │ │ ├── echoclient-main.cpp │ │ │ │ │ ├── echoclient.cpp │ │ │ │ │ ├── echoclient.h │ │ │ │ │ ├── echoserver-main.cpp │ │ │ │ │ ├── echoserver.cpp │ │ │ │ │ ├── echoserver.h │ │ │ │ │ ├── samplehttpclient-main.cpp │ │ │ │ │ ├── samplehttpserver-main.cpp │ │ │ │ │ ├── samplehttpserver.cpp │ │ │ │ │ ├── samplehttpserver.h │ │ │ │ │ └── tests.proto │ │ │ │ ├── modinit.cpp │ │ │ │ ├── modinit.h │ │ │ │ ├── network.h │ │ │ │ ├── network_error.h │ │ │ │ ├── networkoptions.cpp │ │ │ │ ├── networkoptions.h │ │ │ │ ├── packet.cpp │ │ │ │ ├── packet.h │ │ │ │ ├── piper.cpp │ │ │ │ ├── piper.h │ │ │ │ ├── regevent.h │ │ │ │ ├── server.cpp │ │ │ │ └── server.h │ │ │ ├── setup │ │ │ │ ├── BUILD │ │ │ │ └── zk-setup.cpp │ │ │ ├── threads │ │ │ │ ├── BUILD │ │ │ │ ├── modinit.cpp │ │ │ │ ├── modinit.h │ │ │ │ ├── pcqueue.h │ │ │ │ ├── spcountdownlatch.cpp │ │ │ │ ├── spcountdownlatch.h │ │ │ │ └── threads.h │ │ │ └── zookeeper │ │ │ │ ├── BUILD │ │ │ │ ├── mock_zkclient.h │ │ │ │ ├── zkclient.cpp │ │ │ │ ├── zkclient.h │ │ │ │ └── zkclient_factory.h │ │ ├── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── heron │ │ │ │ └── common │ │ │ │ ├── basics │ │ │ │ ├── ByteAmount.java │ │ │ │ ├── CPUShare.java │ │ │ │ ├── Communicator.java │ │ │ │ ├── DryRunFormatType.java │ │ │ │ ├── ExecutorLooper.java │ │ │ │ ├── FileUtils.java │ │ │ │ ├── ISelectHandler.java │ │ │ │ ├── NIOLooper.java │ │ │ │ ├── PackageType.java │ │ │ │ ├── Pair.java │ │ │ │ ├── ResourceMeasure.java │ │ │ │ ├── SingletonRegistry.java │ │ │ │ ├── SysUtils.java │ │ │ │ ├── TypeUtils.java │ │ │ │ └── WakeableLooper.java │ │ │ │ ├── config │ │ │ │ ├── ConfigReader.java │ │ │ │ ├── SystemConfig.java │ │ │ │ └── SystemConfigKey.java │ │ │ │ ├── network │ │ │ │ ├── BufferHelper.java │ │ │ │ ├── HeronClient.java │ │ │ │ ├── HeronServer.java │ │ │ │ ├── HeronSocketOptions.java │ │ │ │ ├── IncomingPacket.java │ │ │ │ ├── OutgoingPacket.java │ │ │ │ ├── REQID.java │ │ │ │ ├── SocketChannelHelper.java │ │ │ │ └── StatusCode.java │ │ │ │ ├── testhelpers │ │ │ │ ├── CommunicatorTestHelper.java │ │ │ │ └── HeronServerTester.java │ │ │ │ └── utils │ │ │ │ ├── logging │ │ │ │ ├── ErrorReportLoggingHandler.java │ │ │ │ └── LoggingHelper.java │ │ │ │ ├── metrics │ │ │ │ ├── BoltMetrics.java │ │ │ │ ├── ComponentMetrics.java │ │ │ │ ├── FullBoltMetrics.java │ │ │ │ ├── FullSpoutMetrics.java │ │ │ │ ├── IBoltMetrics.java │ │ │ │ ├── ISpoutMetrics.java │ │ │ │ ├── JVMMetrics.java │ │ │ │ ├── MetricsCollector.java │ │ │ │ └── SpoutMetrics.java │ │ │ │ ├── misc │ │ │ │ ├── CustomStreamGroupingHelper.java │ │ │ │ ├── PhysicalPlanHelper.java │ │ │ │ ├── SerializeDeSerializeHelper.java │ │ │ │ ├── ThreadNames.java │ │ │ │ └── TupleKeyGenerator.java │ │ │ │ ├── topology │ │ │ │ ├── GeneralTopologyContextImpl.java │ │ │ │ ├── TopologyContextImpl.java │ │ │ │ └── TopologyTests.java │ │ │ │ └── tuple │ │ │ │ ├── TickTuple.java │ │ │ │ └── TupleImpl.java │ │ └── python │ │ │ ├── BUILD │ │ │ ├── __init__.py │ │ │ ├── pex_loader.py │ │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── log.py │ │ │ └── proc.py │ └── tests │ │ ├── cpp │ │ ├── basics │ │ │ ├── BUILD │ │ │ ├── fileutils_unittest.cpp │ │ │ ├── rid_unittest.cpp │ │ │ ├── strutils_unittest.cpp │ │ │ └── utils_unittest.cpp │ │ ├── config │ │ │ ├── BUILD │ │ │ └── topology-config-helper_unittest.cpp │ │ ├── errors │ │ │ ├── BUILD │ │ │ ├── errors.dat │ │ │ ├── errors_unittest.cpp │ │ │ ├── module_unittest.cpp │ │ │ └── syserrs_unittest.cpp │ │ ├── metrics │ │ │ ├── BUILD │ │ │ ├── count-metric_unittest.cpp │ │ │ ├── mean-metric_unittest.cpp │ │ │ ├── multi-count-metric_unittest.cpp │ │ │ ├── multi-mean-metric_unittest.cpp │ │ │ └── time-spent-metric_unittest.cpp │ │ ├── network │ │ │ ├── BUILD │ │ │ ├── client_unittest.cpp │ │ │ ├── client_unittest.h │ │ │ ├── host_unittest.h │ │ │ ├── http_client_unittest.cpp │ │ │ ├── http_server_unittest.cpp │ │ │ ├── http_server_unittest.h │ │ │ ├── http_unittest.cpp │ │ │ ├── oclient_unittest.cpp │ │ │ ├── oclient_unittest.h │ │ │ ├── order_unittest.cpp │ │ │ ├── oserver_unittest.cpp │ │ │ ├── oserver_unittest.h │ │ │ ├── packet_unittest.cpp │ │ │ ├── piper_unittest.cpp │ │ │ ├── rate_limit_unittest.cpp │ │ │ ├── server_unittest.cpp │ │ │ ├── server_unittest.h │ │ │ ├── switch_unittest.cpp │ │ │ └── unittests.proto │ │ ├── threads │ │ │ ├── BUILD │ │ │ └── spcountdownlatch_unittest.cpp │ │ └── zookeeper │ │ │ └── simpletest.cpp │ │ ├── java │ │ ├── BUILD │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── common │ │ │ ├── basics │ │ │ ├── ByteAmountTest.java │ │ │ ├── CommunicatorTest.java │ │ │ ├── FileUtilsTest.java │ │ │ ├── PackageTypeTest.java │ │ │ ├── SysUtilsTest.java │ │ │ └── WakeableLooperTest.java │ │ │ ├── config │ │ │ ├── ConfigReaderTest.java │ │ │ └── SystemConfigTest.java │ │ │ ├── test │ │ │ ├── EchoTest.java │ │ │ └── HeronServerTest.java │ │ │ └── utils │ │ │ └── TopologyUtilsTest.java │ │ ├── python │ │ └── pex_loader │ │ │ ├── BUILD │ │ │ ├── constants.py │ │ │ ├── pex_loader_unittest.py │ │ │ └── testdata │ │ │ ├── pex │ │ │ ├── README │ │ │ └── sample_pex.pex │ │ │ └── src │ │ │ ├── BUILD │ │ │ └── sample.py │ │ └── resources │ │ ├── BUILD │ │ ├── defaults.yaml │ │ └── sysconfig.yaml ├── config │ └── src │ │ └── yaml │ │ ├── BUILD │ │ └── conf │ │ ├── aurora │ │ ├── README │ │ ├── client.yaml │ │ ├── downloader.yaml │ │ ├── heron.aurora │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── examples │ │ ├── README.md │ │ ├── aurora_scheduler.yaml │ │ ├── downloader.yaml │ │ ├── heron_internals.yaml │ │ ├── local_scheduler.yaml │ │ ├── local_stateful.yaml │ │ ├── localfs_statemgr.yaml │ │ ├── localfs_uploader.yaml │ │ ├── metrics_sinks.yaml │ │ └── roundrobin_packing.yaml │ │ ├── kubernetes │ │ ├── client.yaml │ │ ├── downloader.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── local │ │ ├── client.yaml │ │ ├── downloader.yaml │ │ ├── healthmgr.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── localzk │ │ ├── README │ │ ├── client.yaml │ │ ├── downloader.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── marathon │ │ ├── client.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── mesos │ │ ├── client.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── nomad │ │ ├── client.yaml │ │ ├── cluster.yaml │ │ ├── downloader.yaml │ │ ├── heron_internals.yaml │ │ ├── heron_nomad.sh │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── sandbox │ │ ├── client.yaml │ │ ├── downloader.yaml │ │ ├── healthmgr.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── slurm │ │ ├── client.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── slurm.sh │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml │ │ ├── test │ │ ├── README.md │ │ ├── test_heron_internals.yaml │ │ ├── test_metrics_sinks.yaml │ │ └── test_override.yaml │ │ └── yarn │ │ ├── client.yaml │ │ ├── downloader.yaml │ │ ├── healthmgr.yaml │ │ ├── heron_internals.yaml │ │ ├── metrics_sinks.yaml │ │ ├── packing.yaml │ │ ├── scheduler.yaml │ │ ├── stateful.yaml │ │ ├── statemgr.yaml │ │ └── uploader.yaml ├── downloaders │ ├── src │ │ ├── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── heron │ │ │ │ └── downloader │ │ │ │ ├── DLDownloader.java │ │ │ │ ├── DownloadRunner.java │ │ │ │ ├── Downloader.java │ │ │ │ ├── Extractor.java │ │ │ │ ├── FileDownloader.java │ │ │ │ ├── HttpDownloader.java │ │ │ │ └── Registry.java │ │ └── shell │ │ │ ├── BUILD │ │ │ ├── heron-downloader-config.sh │ │ │ └── heron-downloader.sh │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── downloader │ │ ├── DLDownloaderTest.java │ │ ├── ExtractorTests.java │ │ └── RegistryTest.java ├── executor │ ├── src │ │ └── python │ │ │ ├── BUILD │ │ │ └── heron_executor.py │ └── tests │ │ └── python │ │ ├── BUILD │ │ └── heron_executor_unittest.py ├── healthmgr │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── healthmgr │ │ │ ├── HealthManager.java │ │ │ ├── HealthManagerMetrics.java │ │ │ ├── HealthPolicyConfig.java │ │ │ ├── HealthPolicyConfigReader.java │ │ │ ├── common │ │ │ ├── HealthManagerEvents.java │ │ │ ├── InvalidStateException.java │ │ │ ├── MetricsStats.java │ │ │ ├── PackingPlanProvider.java │ │ │ └── PhysicalPlanProvider.java │ │ │ ├── detectors │ │ │ ├── BackPressureDetector.java │ │ │ ├── BaseDetector.java │ │ │ ├── GrowingWaitQueueDetector.java │ │ │ ├── LargeWaitQueueDetector.java │ │ │ ├── ProcessingRateSkewDetector.java │ │ │ ├── SkewDetector.java │ │ │ └── WaitQueueSkewDetector.java │ │ │ ├── diagnosers │ │ │ ├── BaseDiagnoser.java │ │ │ ├── DataSkewDiagnoser.java │ │ │ ├── SlowInstanceDiagnoser.java │ │ │ └── UnderProvisioningDiagnoser.java │ │ │ ├── policy │ │ │ ├── AutoRestartBackpressureContainerPolicy.java │ │ │ ├── DynamicResourceAllocationPolicy.java │ │ │ └── ToggleablePolicy.java │ │ │ ├── resolvers │ │ │ ├── RestartContainerResolver.java │ │ │ └── ScaleUpResolver.java │ │ │ └── sensors │ │ │ ├── BackPressureSensor.java │ │ │ ├── BaseSensor.java │ │ │ ├── BufferSizeSensor.java │ │ │ ├── ExecuteCountSensor.java │ │ │ ├── MetricsCacheMetricsProvider.java │ │ │ └── TrackerMetricsProvider.java │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── healthmgr │ │ ├── HealthManagerTest.java │ │ ├── HealthPolicyConfigReaderTest.java │ │ ├── common │ │ └── PackingPlanProviderTest.java │ │ ├── detectors │ │ ├── BackPressureDetectorTest.java │ │ ├── GrowingWaitQueueDetectorTest.java │ │ ├── LargeWaitQueueDetectorTest.java │ │ ├── ProcessingRateSkewDetectorTest.java │ │ └── WaitQueueSkewDetectorTest.java │ │ ├── diagnosers │ │ ├── DataSkewDiagnoserTest.java │ │ ├── SlowInstanceDiagnoserTest.java │ │ └── UnderProvisioningDiagnoserTest.java │ │ ├── resolvers │ │ └── ScaleUpResolverTest.java │ │ └── sensors │ │ ├── BackPressureSensorTest.java │ │ ├── BufferSizeSensorTest.java │ │ ├── ExecuteCountSensorTest.java │ │ ├── MetricsCacheMetricsProviderTest.java │ │ └── TrackerMetricsProviderTest.java ├── instance │ ├── src │ │ ├── cpp │ │ │ ├── BUILD │ │ │ ├── boltimpl │ │ │ │ ├── bolt-instance.cpp │ │ │ │ ├── bolt-instance.h │ │ │ │ ├── bolt-metrics.cpp │ │ │ │ ├── bolt-metrics.h │ │ │ │ ├── bolt-output-collector-impl.cpp │ │ │ │ ├── bolt-output-collector-impl.h │ │ │ │ ├── tick-tuple.cpp │ │ │ │ ├── tick-tuple.h │ │ │ │ ├── tuple-impl.cpp │ │ │ │ └── tuple-impl.h │ │ │ ├── executor │ │ │ │ ├── executor.cpp │ │ │ │ ├── executor.h │ │ │ │ ├── imetrics-registrar-impl.cpp │ │ │ │ ├── imetrics-registrar-impl.h │ │ │ │ ├── instance-base.h │ │ │ │ ├── outgoing-tuple-collection.cpp │ │ │ │ ├── outgoing-tuple-collection.h │ │ │ │ ├── task-context-impl.cpp │ │ │ │ └── task-context-impl.h │ │ │ ├── gateway │ │ │ │ ├── gateway-metrics.cpp │ │ │ │ ├── gateway-metrics.h │ │ │ │ ├── gateway.cpp │ │ │ │ ├── gateway.h │ │ │ │ ├── stmgr-client.cpp │ │ │ │ └── stmgr-client.h │ │ │ ├── instance-main.cpp │ │ │ ├── spoutimpl │ │ │ │ ├── root-tuple-info.h │ │ │ │ ├── spout-instance.cpp │ │ │ │ ├── spout-instance.h │ │ │ │ ├── spout-metrics.cpp │ │ │ │ ├── spout-metrics.h │ │ │ │ ├── spout-output-collector-impl.cpp │ │ │ │ └── spout-output-collector-impl.h │ │ │ └── utils │ │ │ │ ├── communicator.h │ │ │ │ └── notifying-communicator.h │ │ ├── java │ │ │ ├── BUILD │ │ │ ├── org │ │ │ │ └── apache │ │ │ │ │ └── heron │ │ │ │ │ ├── instance │ │ │ │ │ ├── AbstractOutputCollector.java │ │ │ │ │ ├── Executor.java │ │ │ │ │ ├── Gateway.java │ │ │ │ │ ├── HeronInstance.java │ │ │ │ │ ├── IInstance.java │ │ │ │ │ ├── InstanceControlMsg.java │ │ │ │ │ ├── OutgoingTupleCollection.java │ │ │ │ │ ├── bolt │ │ │ │ │ │ ├── BoltInstance.java │ │ │ │ │ │ └── BoltOutputCollectorImpl.java │ │ │ │ │ ├── spout │ │ │ │ │ │ ├── RootTupleInfo.java │ │ │ │ │ │ ├── SpoutInstance.java │ │ │ │ │ │ └── SpoutOutputCollectorImpl.java │ │ │ │ │ └── util │ │ │ │ │ │ ├── InstanceUtils.java │ │ │ │ │ │ └── JvmVersion.java │ │ │ │ │ ├── metrics │ │ │ │ │ └── GatewayMetrics.java │ │ │ │ │ └── network │ │ │ │ │ ├── MetricsManagerClient.java │ │ │ │ │ └── StreamManagerClient.java │ │ │ └── shade.conf │ │ └── python │ │ │ ├── BUILD │ │ │ ├── basics │ │ │ ├── __init__.py │ │ │ ├── base_instance.py │ │ │ ├── bolt_instance.py │ │ │ └── spout_instance.py │ │ │ ├── instance.py │ │ │ ├── network │ │ │ ├── __init__.py │ │ │ ├── event_looper.py │ │ │ ├── gateway_looper.py │ │ │ ├── heron_client.py │ │ │ ├── metricsmgr_client.py │ │ │ ├── protocol.py │ │ │ ├── socket_options.py │ │ │ └── st_stmgr_client.py │ │ │ └── utils │ │ │ ├── __init__.py │ │ │ ├── metrics │ │ │ ├── __init__.py │ │ │ ├── metrics_helper.py │ │ │ └── py_metrics.py │ │ │ ├── misc │ │ │ ├── __init__.py │ │ │ ├── communicator.py │ │ │ ├── custom_grouping_helper.py │ │ │ ├── outgoing_tuple_helper.py │ │ │ ├── pplan_helper.py │ │ │ └── serializer_helper.py │ │ │ ├── system_config.py │ │ │ ├── system_constants.py │ │ │ ├── topology │ │ │ ├── __init__.py │ │ │ └── topology_context_impl.py │ │ │ └── tuple.py │ └── tests │ │ ├── java │ │ ├── BUILD │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ ├── grouping │ │ │ ├── AbstractTupleRoutingTest.java │ │ │ ├── CustomGroupingTest.java │ │ │ ├── EmitDirectBoltTest.java │ │ │ ├── EmitDirectRoundRobinBolt.java │ │ │ ├── EmitDirectRoundRobinSpout.java │ │ │ └── EmitDirectSpoutTest.java │ │ │ ├── instance │ │ │ ├── CommunicatorTester.java │ │ │ ├── ExecutorTester.java │ │ │ ├── bolt │ │ │ │ ├── BoltInstanceTest.java │ │ │ │ └── BoltStatefulInstanceTest.java │ │ │ └── spout │ │ │ │ ├── ActivateDeactivateTest.java │ │ │ │ ├── SpoutInstanceTest.java │ │ │ │ └── SpoutStatefulInstanceTest.java │ │ │ ├── metrics │ │ │ ├── GlobalMetricsTest.java │ │ │ └── MultiAssignableMetricTest.java │ │ │ ├── network │ │ │ ├── AbstractNetworkTest.java │ │ │ ├── ConnectTest.java │ │ │ ├── HandleReadTest.java │ │ │ └── HandleWriteTest.java │ │ │ └── resource │ │ │ ├── Constants.java │ │ │ ├── MockPhysicalPlansBuilder.java │ │ │ ├── TestBolt.java │ │ │ ├── TestSpout.java │ │ │ ├── TestStatefulBolt.java │ │ │ ├── TestStatefulSpout.java │ │ │ ├── TestTwoPhaseStatefulBolt.java │ │ │ ├── TestTwoPhaseStatefulSpout.java │ │ │ └── UnitTestHelper.java │ │ └── python │ │ ├── BUILD │ │ ├── mock_protobuf.py │ │ ├── network │ │ ├── BUILD │ │ ├── event_looper_unittest.py │ │ ├── gateway_looper_unittest.py │ │ ├── heron_client_unittest.py │ │ ├── metricsmgr_client_unittest.py │ │ ├── mock_generator.py │ │ ├── mock_generator_client.py │ │ ├── protocol_unittest.py │ │ └── st_stmgr_client_unittest.py │ │ └── utils │ │ ├── BUILD │ │ ├── communicator_unittest.py │ │ ├── custom_grouping_unittest.py │ │ ├── global_metrics_unittest.py │ │ ├── log_unittest.py │ │ ├── metrics_helper_unittest.py │ │ ├── mock_generator.py │ │ ├── outgoing_tuple_helper_unittest.py │ │ ├── pplan_helper_unittest.py │ │ ├── py_metrics_unittest.py │ │ ├── topology_context_impl_unittest.py │ │ └── tuple_helper_unittest.py ├── io │ └── dlog │ │ ├── README.md │ │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── dlog │ │ │ ├── DLInputStream.java │ │ │ ├── DLOutputStream.java │ │ │ └── Util.java │ │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── dlog │ │ ├── DLInputStreamTest.java │ │ └── DLOutputStreamTest.java ├── metricscachemgr │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── metricscachemgr │ │ │ ├── MetricsCacheManager.java │ │ │ ├── MetricsCacheManagerHttpServer.java │ │ │ ├── MetricsCacheManagerServer.java │ │ │ └── metricscache │ │ │ ├── CacheCore.java │ │ │ ├── MetricsCache.java │ │ │ ├── MetricsCacheQueryUtils.java │ │ │ ├── query │ │ │ ├── ExceptionDatum.java │ │ │ ├── ExceptionRequest.java │ │ │ ├── ExceptionResponse.java │ │ │ ├── MetricDatum.java │ │ │ ├── MetricGranularity.java │ │ │ ├── MetricRequest.java │ │ │ ├── MetricResponse.java │ │ │ └── MetricTimeRangeValue.java │ │ │ └── store │ │ │ ├── ExceptionDatapoint.java │ │ │ └── MetricDatapoint.java │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── metricscachemgr │ │ └── metricscache │ │ ├── CacheCoreTest.java │ │ ├── MetricsCacheQueryUtilsTest.java │ │ └── MetricsCacheTest.java ├── metricsmgr │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── metricsmgr │ │ │ ├── MetricsManager.java │ │ │ ├── MetricsManagerServer.java │ │ │ ├── MetricsSinksConfig.java │ │ │ ├── MetricsUtil.java │ │ │ ├── executor │ │ │ └── SinkExecutor.java │ │ │ └── sink │ │ │ ├── AbstractWebSink.java │ │ │ ├── FileSink.java │ │ │ ├── GraphiteSink.java │ │ │ ├── PrometheusSink.java │ │ │ ├── SinkContextImpl.java │ │ │ ├── WebSink.java │ │ │ ├── metricscache │ │ │ ├── MetricsCacheClient.java │ │ │ └── MetricsCacheSink.java │ │ │ └── tmanager │ │ │ ├── TManagerClient.java │ │ │ └── TManagerSink.java │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── metricsmgr │ │ ├── HandleTManagerLocationTest.java │ │ ├── LatchedMultiCountMetric.java │ │ ├── MetricsManagerServerTest.java │ │ ├── MetricsUtilTests.java │ │ ├── executor │ │ └── SinkExecutorTest.java │ │ └── sink │ │ ├── FileSinkTest.java │ │ ├── PrometheusSinkTests.java │ │ ├── WebSinkTest.java │ │ ├── metricscache │ │ └── MetricsCacheSinkTest.java │ │ └── tmanager │ │ └── TManagerSinkTest.java ├── packing │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── packing │ │ │ ├── AbstractPacking.java │ │ │ ├── binpacking │ │ │ └── FirstFitDecreasingPacking.java │ │ │ ├── builder │ │ │ ├── Container.java │ │ │ ├── ContainerIdScorer.java │ │ │ ├── HomogeneityScorer.java │ │ │ ├── InstanceCountScorer.java │ │ │ ├── PackingPlanBuilder.java │ │ │ ├── ResourceRequirement.java │ │ │ ├── Scorer.java │ │ │ └── SortingStrategy.java │ │ │ ├── constraints │ │ │ ├── InstanceConstraint.java │ │ │ ├── InstanceDensityConstraint.java │ │ │ ├── MinCpuConstraint.java │ │ │ ├── MinRamConstraint.java │ │ │ ├── PackingConstraint.java │ │ │ └── ResourceConstraint.java │ │ │ ├── exceptions │ │ │ ├── ConstraintViolationException.java │ │ │ ├── MinResourceNotSatisfiedException.java │ │ │ ├── ResourceExceededException.java │ │ │ └── TooManyInstancesException.java │ │ │ ├── roundrobin │ │ │ ├── ResourceCompliantRRPacking.java │ │ │ ├── RoundRobinPacking.java │ │ │ └── RoundRobinPackingV2.java │ │ │ └── utils │ │ │ └── PackingUtils.java │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── packing │ │ ├── AssertPacking.java │ │ ├── CommonPackingTests.java │ │ ├── PackingTestHelper.java │ │ ├── binpacking │ │ └── FirstFitDecreasingPackingTest.java │ │ ├── builder │ │ ├── PackingPlanBuilderTest.java │ │ └── ScorerTest.java │ │ ├── roundrobin │ │ ├── ResourceCompliantRRPackingTest.java │ │ ├── RoundRobinPackingTest.java │ │ └── RoundRobinPackingV2Test.java │ │ └── utils │ │ └── PackingUtilsTest.java ├── proto │ ├── BUILD │ ├── Empty.java │ ├── ckptmgr.proto │ ├── common.proto │ ├── empty.cc │ ├── execution_state.proto │ ├── messages.h │ ├── metrics.proto │ ├── networktests.proto │ ├── packing_plan.proto │ ├── physical_plan.proto │ ├── scheduler.proto │ ├── stats.proto │ ├── stmgr.proto │ ├── tmanager.proto │ ├── topology.proto │ └── tuple.proto ├── scheduler-core │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── scheduler │ │ │ ├── Command.java │ │ │ ├── ExecutorFlag.java │ │ │ ├── LaunchRunner.java │ │ │ ├── RuntimeManagerMain.java │ │ │ ├── RuntimeManagerRunner.java │ │ │ ├── SchedulerMain.java │ │ │ ├── SubmitterMain.java │ │ │ ├── TopologyRuntimeManagementException.java │ │ │ ├── TopologySubmissionException.java │ │ │ ├── UpdateTopologyManager.java │ │ │ ├── client │ │ │ ├── HttpServiceSchedulerClient.java │ │ │ ├── ISchedulerClient.java │ │ │ ├── LibrarySchedulerClient.java │ │ │ └── SchedulerClientFactory.java │ │ │ ├── dryrun │ │ │ ├── DryRunRender.java │ │ │ ├── DryRunResponse.java │ │ │ ├── FormatterUtils.java │ │ │ ├── JsonFormatterUtils.java │ │ │ ├── SubmitDryRunResponse.java │ │ │ ├── SubmitJsonDryRunRenderer.java │ │ │ ├── SubmitRawDryRunRenderer.java │ │ │ ├── SubmitTableDryRunRenderer.java │ │ │ ├── UpdateDryRunResponse.java │ │ │ ├── UpdateJsonDryRunRenderer.java │ │ │ ├── UpdateRawDryRunRenderer.java │ │ │ └── UpdateTableDryRunRenderer.java │ │ │ ├── server │ │ │ ├── ExceptionalRequestHandler.java │ │ │ ├── KillRequestHandler.java │ │ │ ├── RestartRequestHandler.java │ │ │ ├── SchedulerServer.java │ │ │ ├── TerminateSchedulerException.java │ │ │ └── UpdateRequestHandler.java │ │ │ └── utils │ │ │ ├── DryRunRenders.java │ │ │ ├── LauncherUtils.java │ │ │ ├── Runtime.java │ │ │ ├── SchedulerConfigUtils.java │ │ │ ├── SchedulerUtils.java │ │ │ ├── Shutdown.java │ │ │ └── SubmitterUtils.java │ └── tests │ │ ├── java │ │ ├── BUILD │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── scheduler │ │ │ ├── LaunchRunnerTest.java │ │ │ ├── RuntimeManagerMainTest.java │ │ │ ├── RuntimeManagerRunnerTest.java │ │ │ ├── SchedulerMainTest.java │ │ │ ├── SubmitterMainTest.java │ │ │ ├── UpdateTopologyManagerTest.java │ │ │ ├── client │ │ │ ├── HttpServiceSchedulerClientTest.java │ │ │ ├── LibrarySchedulerClientTest.java │ │ │ └── SchedulerClientFactoryTest.java │ │ │ ├── dryrun │ │ │ ├── JsonFormatterUtilsTest.java │ │ │ ├── SubmitDryRunRenderTest.java │ │ │ └── UpdateDryRunRenderTest.java │ │ │ ├── server │ │ │ └── SchedulerServerTest.java │ │ │ └── utils │ │ │ ├── LauncherUtilsTest.java │ │ │ └── SchedulerUtilsTest.java │ │ └── resources │ │ ├── BUILD │ │ ├── JsonFormatterUtilsExpectedJson.txt │ │ ├── SubmitDryRunOutputATable.txt │ │ ├── SubmitDryRunOutputATableNonRich.txt │ │ ├── UpdateDryRunOutputATable.txt │ │ ├── UpdateDryRunOutputATableNonRich.txt │ │ ├── UpdateDryRunOutputBTable.txt │ │ └── UpdateDryRunOutputBTableNonRich.txt ├── schedulers │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── scheduler │ │ │ ├── NullLauncher.java │ │ │ ├── NullScheduler.java │ │ │ ├── aurora │ │ │ ├── AuroraCLIController.java │ │ │ ├── AuroraContext.java │ │ │ ├── AuroraController.java │ │ │ ├── AuroraField.java │ │ │ ├── AuroraHeronShellController.java │ │ │ ├── AuroraLauncher.java │ │ │ └── AuroraScheduler.java │ │ │ ├── kubernetes │ │ │ ├── KubernetesConstants.java │ │ │ ├── KubernetesContext.java │ │ │ ├── KubernetesController.java │ │ │ ├── KubernetesLauncher.java │ │ │ ├── KubernetesScheduler.java │ │ │ ├── KubernetesShim.java │ │ │ ├── KubernetesUtils.java │ │ │ ├── StatefulSet.java │ │ │ └── Volumes.java │ │ │ ├── local │ │ │ ├── LocalContext.java │ │ │ ├── LocalKey.java │ │ │ ├── LocalLauncher.java │ │ │ └── LocalScheduler.java │ │ │ ├── marathon │ │ │ ├── MarathonConstants.java │ │ │ ├── MarathonContext.java │ │ │ ├── MarathonController.java │ │ │ ├── MarathonLauncher.java │ │ │ └── MarathonScheduler.java │ │ │ ├── mesos │ │ │ ├── MesosContext.java │ │ │ ├── MesosLauncher.java │ │ │ ├── MesosScheduler.java │ │ │ └── framework │ │ │ │ ├── BaseContainer.java │ │ │ │ ├── LaunchableTask.java │ │ │ │ ├── MesosFramework.java │ │ │ │ ├── TaskResources.java │ │ │ │ └── TaskUtils.java │ │ │ ├── nomad │ │ │ ├── NomadConstants.java │ │ │ ├── NomadContext.java │ │ │ ├── NomadKey.java │ │ │ ├── NomadLauncher.java │ │ │ └── NomadScheduler.java │ │ │ ├── slurm │ │ │ ├── SlurmContext.java │ │ │ ├── SlurmController.java │ │ │ ├── SlurmLauncher.java │ │ │ └── SlurmScheduler.java │ │ │ ├── utils │ │ │ └── HttpJsonClient.java │ │ │ └── yarn │ │ │ ├── HeronClientConfiguration.java │ │ │ ├── HeronConfigurationOptions.java │ │ │ ├── HeronDriverConfiguration.java │ │ │ ├── HeronExecutorTask.java │ │ │ ├── HeronMasterDriver.java │ │ │ ├── HeronMasterDriverProvider.java │ │ │ ├── HeronReefUtils.java │ │ │ ├── HeronTaskConfiguration.java │ │ │ ├── ReefClientSideHandlers.java │ │ │ ├── YarnContext.java │ │ │ ├── YarnKey.java │ │ │ ├── YarnLauncher.java │ │ │ └── YarnScheduler.java │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── scheduler │ │ ├── aurora │ │ ├── AuroraCLIControllerTest.java │ │ ├── AuroraContextTest.java │ │ ├── AuroraLauncherTest.java │ │ └── AuroraSchedulerTest.java │ │ ├── kubernetes │ │ ├── KubernetesContextTest.java │ │ ├── KubernetesControllerTest.java │ │ ├── KubernetesLauncherTest.java │ │ ├── KubernetesSchedulerTest.java │ │ ├── KubernetesShimTest.java │ │ ├── KubernetesUtilsTest.java │ │ ├── StatefulSetTest.java │ │ └── VolumesTests.java │ │ ├── local │ │ ├── LocalLauncherTest.java │ │ └── LocalSchedulerTest.java │ │ ├── marathon │ │ ├── MarathonControllerTest.java │ │ ├── MarathonLauncherTest.java │ │ └── MarathonSchedulerTest.java │ │ ├── mesos │ │ ├── MesosLauncherTest.java │ │ ├── MesosSchedulerTest.java │ │ └── framework │ │ │ ├── LaunchableTaskTest.java │ │ │ ├── MesosFrameworkTest.java │ │ │ ├── TaskResourcesTest.java │ │ │ └── TaskUtilsTest.java │ │ ├── nomad │ │ └── NomadSchedulerTest.java │ │ ├── slurm │ │ ├── SlurmControllerTest.java │ │ ├── SlurmLauncherTest.java │ │ └── SlurmSchedulerTest.java │ │ └── yarn │ │ ├── HeronExecutorTaskTest.java │ │ ├── HeronMasterDriverTest.java │ │ ├── YarnLauncherTest.java │ │ └── YarnSchedulerTest.java ├── shell │ ├── assets │ │ ├── BUILD │ │ ├── bootstrap.css │ │ ├── browse.html │ │ ├── favicon.png │ │ ├── file.html │ │ ├── jquery.js │ │ └── jquery.pailer.js │ └── src │ │ └── python │ │ ├── BUILD │ │ ├── handlers │ │ ├── __init__.py │ │ ├── browsehandler.py │ │ ├── downloadhandler.py │ │ ├── filedatahandler.py │ │ ├── filehandler.py │ │ ├── filestatshandler.py │ │ ├── healthhandler.py │ │ ├── jmaphandler.py │ │ ├── jstackhandler.py │ │ ├── killexecutorhandler.py │ │ ├── memoryhistogramhandler.py │ │ ├── pidhandler.py │ │ └── pmaphandler.py │ │ ├── main.py │ │ └── utils.py ├── simulator │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ ├── org │ │ │ └── apache │ │ │ │ └── heron │ │ │ │ └── simulator │ │ │ │ ├── Simulator.java │ │ │ │ ├── SimulatorRunner.java │ │ │ │ ├── executors │ │ │ │ ├── InstanceExecutor.java │ │ │ │ ├── MetricsExecutor.java │ │ │ │ └── StreamExecutor.java │ │ │ │ ├── grouping │ │ │ │ ├── AllGrouping.java │ │ │ │ ├── CustomGrouping.java │ │ │ │ ├── FieldsGrouping.java │ │ │ │ ├── Grouping.java │ │ │ │ ├── LowestGrouping.java │ │ │ │ └── ShuffleGrouping.java │ │ │ │ ├── instance │ │ │ │ ├── BoltInstance.java │ │ │ │ ├── README │ │ │ │ ├── RootTupleInfo.java │ │ │ │ └── SpoutInstance.java │ │ │ │ └── utils │ │ │ │ ├── RotatingMap.java │ │ │ │ ├── TopologyManager.java │ │ │ │ ├── TupleCache.java │ │ │ │ └── XORManager.java │ │ │ └── shade.conf │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── simulator │ │ ├── SimulatorTest.java │ │ ├── executors │ │ └── InstanceExecutorTest.java │ │ ├── grouping │ │ ├── AllGroupingTest.java │ │ ├── CustomGroupingTest.java │ │ ├── FieldsGroupingTest.java │ │ ├── LowestGroupingTest.java │ │ └── ShuffleGroupingTest.java │ │ └── utils │ │ ├── RotatingMapTest.java │ │ ├── TopologyManagerTest.java │ │ ├── TupleCacheTest.java │ │ └── XORManagerTest.java ├── spi │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── spi │ │ │ ├── common │ │ │ ├── Config.java │ │ │ ├── ConfigLoader.java │ │ │ ├── Context.java │ │ │ ├── Key.java │ │ │ └── TokenSub.java │ │ │ ├── metricsmgr │ │ │ ├── metrics │ │ │ │ ├── ExceptionInfo.java │ │ │ │ ├── MetricsFilter.java │ │ │ │ ├── MetricsInfo.java │ │ │ │ └── MetricsRecord.java │ │ │ └── sink │ │ │ │ ├── IMetricsSink.java │ │ │ │ └── SinkContext.java │ │ │ ├── packing │ │ │ ├── IPacking.java │ │ │ ├── IRepacking.java │ │ │ ├── InstanceId.java │ │ │ ├── PackingException.java │ │ │ ├── PackingPlan.java │ │ │ ├── PackingPlanProtoDeserializer.java │ │ │ ├── PackingPlanProtoSerializer.java │ │ │ └── Resource.java │ │ │ ├── scheduler │ │ │ ├── ILauncher.java │ │ │ ├── IScalable.java │ │ │ ├── IScheduler.java │ │ │ ├── LauncherException.java │ │ │ └── SchedulerException.java │ │ │ ├── statefulstorage │ │ │ ├── Checkpoint.java │ │ │ ├── CheckpointInfo.java │ │ │ ├── CheckpointMetadata.java │ │ │ ├── IStatefulStorage.java │ │ │ └── StatefulStorageException.java │ │ │ ├── statemgr │ │ │ ├── IStateManager.java │ │ │ ├── Lock.java │ │ │ ├── SchedulerStateManagerAdaptor.java │ │ │ └── WatchCallback.java │ │ │ ├── uploader │ │ │ ├── IUploader.java │ │ │ └── UploaderException.java │ │ │ └── utils │ │ │ ├── NetworkUtils.java │ │ │ ├── PackingTestUtils.java │ │ │ ├── ReflectionUtils.java │ │ │ ├── ShellUtils.java │ │ │ ├── TManagerException.java │ │ │ ├── TManagerUtils.java │ │ │ └── UploaderUtils.java │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── spi │ │ ├── common │ │ ├── ConfigLoaderTest.java │ │ ├── ConfigTest.java │ │ ├── ContextTest.java │ │ ├── KeysTest.java │ │ ├── TokenSubTest.java │ │ └── testdata │ │ │ └── local │ │ │ ├── cluster.yaml │ │ │ ├── healthmgr.yaml │ │ │ ├── packing.yaml │ │ │ ├── scheduler.yaml │ │ │ ├── stateful.yaml │ │ │ ├── statemgr.yaml │ │ │ └── uploader.yaml │ │ ├── metricsmgr │ │ └── metrics │ │ │ ├── ExceptionInfoTest.java │ │ │ ├── MetricsInfoTest.java │ │ │ └── MetricsRecordTest.java │ │ ├── packing │ │ ├── PackingPlanTest.java │ │ └── ResourceTest.java │ │ └── utils │ │ ├── NetworkUtilsTest.java │ │ ├── ShellUtilsTest.java │ │ └── UploaderUtilsTest.java ├── statefulstorages │ ├── src │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── statefulstorage │ │ │ ├── dlog │ │ │ └── DlogStorage.java │ │ │ ├── hdfs │ │ │ └── HDFSStorage.java │ │ │ └── localfs │ │ │ └── LocalFileSystemStorage.java │ └── tests │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── statefulstorage │ │ ├── StatefulStorageTestContext.java │ │ ├── dlog │ │ └── DlogStorageTest.java │ │ ├── hdfs │ │ └── HDFSStorageTest.java │ │ └── localfs │ │ └── LocalFileSystemStorageTest.java ├── statemgrs │ ├── src │ │ ├── cpp │ │ │ ├── BUILD │ │ │ └── statemgr │ │ │ │ ├── heron-localfilestatemgr.cpp │ │ │ │ ├── heron-localfilestatemgr.h │ │ │ │ ├── heron-statemgr.cpp │ │ │ │ ├── heron-statemgr.h │ │ │ │ ├── heron-zkstatemgr.cpp │ │ │ │ └── heron-zkstatemgr.h │ │ ├── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ │ └── apache │ │ │ │ └── heron │ │ │ │ └── statemgr │ │ │ │ ├── FileSystemStateManager.java │ │ │ │ ├── NullStateManager.java │ │ │ │ ├── localfs │ │ │ │ ├── LocalFileSystemContext.java │ │ │ │ ├── LocalFileSystemKey.java │ │ │ │ └── LocalFileSystemStateManager.java │ │ │ │ └── zookeeper │ │ │ │ ├── ZkContext.java │ │ │ │ ├── ZkUtils.java │ │ │ │ ├── ZkWatcherCallback.java │ │ │ │ └── curator │ │ │ │ └── CuratorStateManager.java │ │ └── python │ │ │ ├── BUILD │ │ │ ├── config.py │ │ │ ├── configloader.py │ │ │ ├── filestatemanager.py │ │ │ ├── log.py │ │ │ ├── stateexceptions.py │ │ │ ├── statemanager.py │ │ │ ├── statemanagerfactory.py │ │ │ └── zkstatemanager.py │ └── tests │ │ ├── cpp │ │ ├── BUILD │ │ ├── statetest.cpp │ │ └── zkstatemgr_unittest.cpp │ │ ├── java │ │ ├── BUILD │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── statemgr │ │ │ ├── localfs │ │ │ └── LocalFileSystemStateManagerTest.java │ │ │ └── zookeeper │ │ │ ├── ZkUtilsTest.java │ │ │ └── curator │ │ │ └── CuratorStateManagerTest.java │ │ └── python │ │ ├── BUILD │ │ ├── configloader_unittest.py │ │ ├── statemanagerfactory_unittest.py │ │ └── zkstatemanager_unittest.py ├── stmgr │ ├── src │ │ └── cpp │ │ │ ├── BUILD │ │ │ ├── grouping │ │ │ ├── all-grouping.cpp │ │ │ ├── all-grouping.h │ │ │ ├── custom-grouping.cpp │ │ │ ├── custom-grouping.h │ │ │ ├── direct-grouping.cpp │ │ │ ├── direct-grouping.h │ │ │ ├── fields-grouping.cpp │ │ │ ├── fields-grouping.h │ │ │ ├── grouping.cpp │ │ │ ├── grouping.h │ │ │ ├── lowest-grouping.cpp │ │ │ ├── lowest-grouping.h │ │ │ ├── shuffle-grouping.cpp │ │ │ └── shuffle-grouping.h │ │ │ ├── manager │ │ │ ├── checkpoint-gateway.cpp │ │ │ ├── checkpoint-gateway.h │ │ │ ├── ckptmgr-client.cpp │ │ │ ├── ckptmgr-client.h │ │ │ ├── instance-server.cpp │ │ │ ├── instance-server.h │ │ │ ├── stateful-restorer.cpp │ │ │ ├── stateful-restorer.h │ │ │ ├── stmgr-client.cpp │ │ │ ├── stmgr-client.h │ │ │ ├── stmgr-clientmgr.cpp │ │ │ ├── stmgr-clientmgr.h │ │ │ ├── stmgr-server.cpp │ │ │ ├── stmgr-server.h │ │ │ ├── stmgr.cpp │ │ │ ├── stmgr.h │ │ │ ├── stream-consumers.cpp │ │ │ ├── stream-consumers.h │ │ │ ├── tmanager-client.cpp │ │ │ └── tmanager-client.h │ │ │ ├── server │ │ │ └── stmgr-main.cpp │ │ │ └── util │ │ │ ├── neighbour-calculator.cpp │ │ │ ├── neighbour-calculator.h │ │ │ ├── rotating-map.cpp │ │ │ ├── rotating-map.h │ │ │ ├── tuple-cache.cpp │ │ │ ├── tuple-cache.h │ │ │ ├── xor-manager.cpp │ │ │ └── xor-manager.h │ └── tests │ │ └── cpp │ │ ├── grouping │ │ ├── BUILD │ │ ├── all-grouping_unittest.cpp │ │ ├── custom-grouping_unittest.cpp │ │ ├── fields-grouping_unittest.cpp │ │ ├── lowest-grouping_unittest.cpp │ │ └── shuffle-grouping_unittest.cpp │ │ ├── server │ │ ├── BUILD │ │ ├── checkpoint-gateway_unittest.cpp │ │ ├── dummy_ckptmgr_client.cpp │ │ ├── dummy_ckptmgr_client.h │ │ ├── dummy_instance.cpp │ │ ├── dummy_instance.h │ │ ├── dummy_instance_server.h │ │ ├── dummy_metricsmgr.cpp │ │ ├── dummy_metricsmgr.h │ │ ├── dummy_stmgr.cpp │ │ ├── dummy_stmgr.h │ │ ├── dummy_stmgr_clientmgr.h │ │ ├── dummy_tuple_cache.h │ │ ├── stateful-restorer_unittest.cpp │ │ └── stmgr_unittest.cpp │ │ └── util │ │ ├── BUILD │ │ ├── neighbour_calculator_unittest.cpp │ │ ├── rotating-map_unittest.cpp │ │ ├── tuple-cache_unittest.cpp │ │ └── xor-manager_unittest.cpp ├── tmanager │ ├── src │ │ └── cpp │ │ │ ├── BUILD │ │ │ ├── manager │ │ │ ├── ckptmgr-client.cpp │ │ │ ├── ckptmgr-client.h │ │ │ ├── stateful-checkpointer.cpp │ │ │ ├── stateful-checkpointer.h │ │ │ ├── stateful-controller.cpp │ │ │ ├── stateful-controller.h │ │ │ ├── stateful-restorer.cpp │ │ │ ├── stateful-restorer.h │ │ │ ├── stats-interface.cpp │ │ │ ├── stats-interface.h │ │ │ ├── stmgrstate.cpp │ │ │ ├── stmgrstate.h │ │ │ ├── tcontroller.cpp │ │ │ ├── tcontroller.h │ │ │ ├── tmanager.cpp │ │ │ ├── tmanager.h │ │ │ ├── tmanagerserver.cpp │ │ │ ├── tmanagerserver.h │ │ │ ├── tmetrics-collector.cpp │ │ │ └── tmetrics-collector.h │ │ │ ├── processor │ │ │ ├── processor.h │ │ │ ├── stmgr-heartbeat-processor.cpp │ │ │ ├── stmgr-heartbeat-processor.h │ │ │ ├── stmgr-register-processor.cpp │ │ │ ├── stmgr-register-processor.h │ │ │ ├── tmanager-processor.cpp │ │ │ └── tmanager-processor.h │ │ │ └── server │ │ │ └── tmanager-main.cpp │ └── tests │ │ └── cpp │ │ └── server │ │ ├── BUILD │ │ ├── dummystmgr.cpp │ │ ├── dummystmgr.h │ │ ├── dummytmanager.cpp │ │ ├── dummytmanager.h │ │ ├── stateful_checkpointer_unittest.cpp │ │ ├── stateful_restorer_unittest.cpp │ │ ├── tcontroller_unittest.cpp │ │ └── tmanager_unittest.cpp ├── tools │ ├── apiserver │ │ ├── src │ │ │ ├── java │ │ │ │ ├── BUILD │ │ │ │ └── org │ │ │ │ │ └── apache │ │ │ │ │ └── heron │ │ │ │ │ └── apiserver │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── Resources.java │ │ │ │ │ ├── Runtime.java │ │ │ │ │ ├── actions │ │ │ │ │ ├── Action.java │ │ │ │ │ ├── ActionFactory.java │ │ │ │ │ ├── ActionFactoryImpl.java │ │ │ │ │ ├── ActionType.java │ │ │ │ │ ├── Keys.java │ │ │ │ │ ├── SubmitTopologyAction.java │ │ │ │ │ └── TopologyRuntimeAction.java │ │ │ │ │ ├── resources │ │ │ │ │ ├── ConfigurationResource.java │ │ │ │ │ ├── FileResource.java │ │ │ │ │ ├── Forms.java │ │ │ │ │ ├── HeronResource.java │ │ │ │ │ ├── NotFoundExceptionHandler.java │ │ │ │ │ └── TopologyResource.java │ │ │ │ │ └── utils │ │ │ │ │ ├── ConfigUtils.java │ │ │ │ │ ├── FileHelper.java │ │ │ │ │ ├── Logging.java │ │ │ │ │ └── Utils.java │ │ │ └── shell │ │ │ │ ├── BUILD │ │ │ │ └── heron-apiserver.sh │ │ └── tests │ │ │ └── java │ │ │ ├── BUILD │ │ │ └── org │ │ │ └── apache │ │ │ └── heron │ │ │ └── apiserver │ │ │ ├── resources │ │ │ └── TopologyResourceTests.java │ │ │ └── utils │ │ │ └── ConfigUtilsTests.java │ ├── cli │ │ ├── src │ │ │ └── python │ │ │ │ ├── BUILD │ │ │ │ ├── activate.py │ │ │ │ ├── args.py │ │ │ │ ├── cdefs.py │ │ │ │ ├── cli_helper.py │ │ │ │ ├── cliconfig.py │ │ │ │ ├── config.py │ │ │ │ ├── deactivate.py │ │ │ │ ├── execute.py │ │ │ │ ├── help.py │ │ │ │ ├── jars.py │ │ │ │ ├── kill.py │ │ │ │ ├── main.py │ │ │ │ ├── opts.py │ │ │ │ ├── rest.py │ │ │ │ ├── restart.py │ │ │ │ ├── result.py │ │ │ │ ├── submit.py │ │ │ │ ├── update.py │ │ │ │ └── version.py │ │ └── tests │ │ │ └── python │ │ │ ├── BUILD │ │ │ ├── client_command_unittest.py │ │ │ └── opts_unittest.py │ ├── common │ │ └── src │ │ │ └── python │ │ │ ├── BUILD │ │ │ ├── clients │ │ │ ├── __init__.py │ │ │ └── tracker.py │ │ │ └── utils │ │ │ ├── classpath.py │ │ │ └── config.py │ ├── config │ │ └── src │ │ │ └── yaml │ │ │ ├── BUILD │ │ │ └── tracker │ │ │ └── heron_tracker.yaml │ ├── explorer │ │ ├── src │ │ │ └── python │ │ │ │ ├── BUILD │ │ │ │ ├── logicalplan.py │ │ │ │ ├── main.py │ │ │ │ ├── physicalplan.py │ │ │ │ └── topologies.py │ │ └── tests │ │ │ └── python │ │ │ ├── BUILD │ │ │ ├── explorer_unittest.py │ │ │ ├── info.json │ │ │ ├── logicalplan.json │ │ │ ├── metrics.json │ │ │ ├── physicalplan.json │ │ │ └── topologies.json │ ├── tracker │ │ ├── src │ │ │ └── python │ │ │ │ ├── BUILD │ │ │ │ ├── app.py │ │ │ │ ├── config.py │ │ │ │ ├── constants.py │ │ │ │ ├── main.py │ │ │ │ ├── metricstimeline.py │ │ │ │ ├── query.py │ │ │ │ ├── query_operators.py │ │ │ │ ├── routers │ │ │ │ ├── container.py │ │ │ │ ├── metrics.py │ │ │ │ └── topologies.py │ │ │ │ ├── state.py │ │ │ │ ├── topology.py │ │ │ │ ├── tracker.py │ │ │ │ └── utils.py │ │ └── tests │ │ │ └── python │ │ │ ├── BUILD │ │ │ ├── app_unittest.py │ │ │ ├── mock_proto.py │ │ │ ├── query_operator_unittest.py │ │ │ ├── query_unittest.py │ │ │ ├── topology_unittest.py │ │ │ └── tracker_unittest.py │ └── ui │ │ ├── resources │ │ ├── BUILD │ │ ├── static │ │ │ ├── css │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.min.css │ │ │ │ ├── main.css │ │ │ │ └── visstyle.css │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ ├── robotoslab-regular.eot │ │ │ │ ├── robotoslab-regular.svg │ │ │ │ ├── robotoslab-regular.ttf │ │ │ │ ├── robotoslab-regular.woff │ │ │ │ └── robotoslab-regular.woff2 │ │ │ ├── img │ │ │ │ ├── edit-icon.png │ │ │ │ ├── glyphicons-halflings-white.png │ │ │ │ ├── glyphicons-halflings.png │ │ │ │ ├── hue.png │ │ │ │ ├── icn-green.png │ │ │ │ ├── icn-red.png │ │ │ │ ├── logo54x54.png │ │ │ │ └── trash-icon.png │ │ │ └── js │ │ │ │ ├── JSXTransformer.0.10.0.js │ │ │ │ ├── alltopologies.js │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ ├── colors.js │ │ │ │ ├── common.js │ │ │ │ ├── config.js │ │ │ │ ├── d3-tip.min.0.6.3.js │ │ │ │ ├── d3.min.3.4.11.js │ │ │ │ ├── exceptions.js │ │ │ │ ├── graphic.js │ │ │ │ ├── html5-trunk.js │ │ │ │ ├── jquery-ui-1.8.23.custom.min.js │ │ │ │ ├── jquery.min.js │ │ │ │ ├── jquery.pailer.js │ │ │ │ ├── list.min.1.1.1.js │ │ │ │ ├── logical-plan.js │ │ │ │ ├── moment.min.2.8.3.js │ │ │ │ ├── physical-plan.js │ │ │ │ ├── plan-controller.js │ │ │ │ ├── plan-stats.js │ │ │ │ ├── react.0.10.0.js │ │ │ │ ├── stat-trendlines.js │ │ │ │ ├── topologies.js │ │ │ │ ├── topology-details.js │ │ │ │ ├── underscore-min.1.6.0.js │ │ │ │ └── underscore-min.map │ │ └── templates │ │ │ ├── application.html │ │ │ ├── browse.html │ │ │ ├── config.html │ │ │ ├── error.html │ │ │ ├── exception.html │ │ │ ├── file.html │ │ │ ├── nav.html │ │ │ ├── shell.snip.html │ │ │ ├── topologies.html │ │ │ └── topology.html │ │ └── src │ │ └── python │ │ ├── BUILD │ │ └── main.py └── uploaders │ ├── src │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── heron │ │ └── uploader │ │ ├── NullUploader.java │ │ ├── dlog │ │ ├── Copier.java │ │ ├── DLContext.java │ │ ├── DLCopier.java │ │ └── DLUploader.java │ │ ├── gcs │ │ ├── GcsContext.java │ │ ├── GcsController.java │ │ └── GcsUploader.java │ │ ├── hdfs │ │ ├── HdfsContext.java │ │ ├── HdfsController.java │ │ ├── HdfsUploader.java │ │ └── sample.yaml │ │ ├── http │ │ ├── HttpUploader.java │ │ └── HttpUploaderContext.java │ │ ├── localfs │ │ ├── LocalFileSystemContext.java │ │ ├── LocalFileSystemKey.java │ │ └── LocalFileSystemUploader.java │ │ ├── s3 │ │ ├── S3Context.java │ │ ├── S3Uploader.java │ │ └── sample.yaml │ │ └── scp │ │ ├── ScpContext.java │ │ ├── ScpController.java │ │ ├── ScpUploader.java │ │ └── sample.yaml │ └── tests │ └── java │ ├── BUILD │ └── org │ └── apache │ └── heron │ └── uploader │ ├── dlog │ └── DlogUploaderTest.java │ ├── gcs │ └── GcsUploaderTests.java │ ├── hdfs │ └── HdfsUploaderTest.java │ ├── http │ └── HttpUploaderTest.java │ ├── localfs │ ├── LocalFileSystemConfigTest.java │ ├── LocalFileSystemConstantsTest.java │ ├── LocalFileSystemContextTest.java │ ├── LocalFileSystemUploaderTest.java │ └── testdata │ │ └── some-topology.tar │ ├── s3 │ └── S3UploaderTest.java │ └── scp │ └── ScpUploaderTest.java ├── heronpy ├── api │ ├── BUILD │ ├── __init__.py │ ├── api_constants.py │ ├── bolt │ │ ├── __init__.py │ │ ├── base_bolt.py │ │ ├── bolt.py │ │ └── window_bolt.py │ ├── component │ │ ├── __init__.py │ │ ├── base_component.py │ │ └── component_spec.py │ ├── custom_grouping.py │ ├── global_metrics.py │ ├── metrics.py │ ├── serializer.py │ ├── spout │ │ ├── __init__.py │ │ ├── base_spout.py │ │ └── spout.py │ ├── state │ │ ├── __init__.py │ │ ├── state.py │ │ └── stateful_component.py │ ├── stream.py │ ├── task_hook.py │ ├── tests │ │ └── python │ │ │ ├── BUILD │ │ │ ├── component_unittest.py │ │ │ ├── metrics_unittest.py │ │ │ ├── serializer_unittest.py │ │ │ ├── stream_unittest.py │ │ │ └── topology_unittest.py │ ├── topology.py │ ├── topology_context.py │ └── tuple.py ├── connectors │ ├── BUILD │ ├── __init__.py │ ├── mock │ │ ├── __init__.py │ │ └── arraylooper.py │ ├── pulsar │ │ ├── __init__.py │ │ ├── pulsarspout.py │ │ └── pulsarstreamlet.py │ └── textfiles │ │ ├── __init__.py │ │ └── textfilesgenerator.py ├── proto │ ├── BUILD │ └── __init__.py └── streamlet │ ├── BUILD │ ├── __init__.py │ ├── builder.py │ ├── config.py │ ├── context.py │ ├── generator.py │ ├── impl │ ├── __init__.py │ ├── consumebolt.py │ ├── contextimpl.py │ ├── filterbolt.py │ ├── flatmapbolt.py │ ├── generatorspout.py │ ├── joinbolt.py │ ├── logbolt.py │ ├── mapbolt.py │ ├── reducebykeyandwindowbolt.py │ ├── reducebywindowbolt.py │ ├── repartitionbolt.py │ ├── streamletboltbase.py │ ├── streamletspoutbase.py │ ├── supplierspout.py │ ├── transformbolt.py │ └── unionbolt.py │ ├── keyedwindow.py │ ├── resources.py │ ├── runner.py │ ├── streamlet.py │ ├── transformoperator.py │ ├── window.py │ └── windowconfig.py ├── index.html ├── integration_test ├── README.md └── src │ ├── __init__.py │ ├── java │ ├── BUILD │ └── org │ │ └── apache │ │ └── heron │ │ ├── integration_test │ │ ├── common │ │ │ ├── AbstractTestTopology.java │ │ │ ├── BasicConfig.java │ │ │ ├── HdfsHelper.java │ │ │ ├── bolt │ │ │ │ ├── CountAggregatorBolt.java │ │ │ │ ├── DoubleTuplesBolt.java │ │ │ │ ├── IdentityBolt.java │ │ │ │ ├── IncrementBolt.java │ │ │ │ ├── JSONTweetFilterBolt.java │ │ │ │ ├── LocalWriteBolt.java │ │ │ │ ├── MapAggregatorBolt.java │ │ │ │ ├── PartialUniquerBolt.java │ │ │ │ ├── TweetPropertyBolt.java │ │ │ │ └── WordCountBolt.java │ │ │ └── spout │ │ │ │ ├── ABSpout.java │ │ │ │ ├── HdfsStringSpout.java │ │ │ │ ├── LocalFileSpout.java │ │ │ │ └── PausedLocalFileSpout.java │ │ ├── core │ │ │ ├── AggregatorBolt.java │ │ │ ├── BaseBatchBolt.java │ │ │ ├── Condition.java │ │ │ ├── Constants.java │ │ │ ├── EmitUntilConditionTestSpout.java │ │ │ ├── HttpGetCondition.java │ │ │ ├── HttpUtils.java │ │ │ ├── IBatchBolt.java │ │ │ ├── ITerminalBolt.java │ │ │ ├── IntegrationTestBolt.java │ │ │ ├── IntegrationTestSpout.java │ │ │ ├── LocalAggregatorBolt.java │ │ │ ├── MultiPhaseTestSpout.java │ │ │ ├── StatefulIntegrationTestBolt.java │ │ │ ├── StatefulIntegrationTestSpout.java │ │ │ ├── TestTopologyBuilder.java │ │ │ └── TestTopologyContext.java │ │ └── topology │ │ │ ├── all_grouping │ │ │ ├── AllGrouping.java │ │ │ └── AllGroupingResults.json │ │ │ ├── basic_topology_one_task │ │ │ ├── BasicTopologyOneTask.java │ │ │ └── BasicTopologyOneTaskResults.json │ │ │ ├── bolt_double_emit_tuples │ │ │ ├── BoltDoubleEmitTuples.java │ │ │ └── BoltDoubleEmitTuplesResults.json │ │ │ ├── fields_grouping │ │ │ ├── FieldsGrouping.java │ │ │ └── FieldsGroupingResults.json │ │ │ ├── global_grouping │ │ │ ├── GlobalGrouping.java │ │ │ └── GlobalGroupingResults.json │ │ │ ├── multi_spouts_multi_tasks │ │ │ ├── MultiSpoutsMultiTasks.java │ │ │ └── MultiSpoutsMultiTasksResults.json │ │ │ ├── non_grouping │ │ │ ├── NonGrouping.java │ │ │ └── NonGroupingResults.json │ │ │ ├── one_bolt_multi_tasks │ │ │ ├── OneBoltMultiTasks.java │ │ │ └── OneBoltMultiTasksResults.json │ │ │ ├── one_spout_bolt_multi_tasks │ │ │ ├── OneSpoutBoltMultiTasks.java │ │ │ └── OneSpoutBoltMultiTasksResults.json │ │ │ ├── one_spout_multi_tasks │ │ │ ├── OneSpoutMultiTasks.java │ │ │ └── OneSpoutMultiTasksResults.json │ │ │ ├── one_spout_two_bolts │ │ │ ├── OneSpoutTwoBolts.java │ │ │ └── OneSpoutTwoBoltsResults.json │ │ │ ├── serialization │ │ │ ├── CustomCheckBolt.java │ │ │ ├── CustomObject.java │ │ │ ├── CustomSpout.java │ │ │ ├── KryoSerializationTopology.java │ │ │ ├── KryoSerializationTopologyResults.json │ │ │ ├── SerializationTopology.java │ │ │ ├── SerializationTopologyResults.json │ │ │ ├── UnserializableCustomCheckBolt.java │ │ │ ├── UnserializableCustomObject.java │ │ │ └── UnserializableCustomSpout.java │ │ │ ├── shuffle_grouping │ │ │ ├── ShuffleGrouping.java │ │ │ └── ShuffleGroupingResults.json │ │ │ ├── streamlet_with_filter_and_transform │ │ │ ├── StreamletWithFilterAndTransform.java │ │ │ └── StreamletWithFilterAndTransformResults.json │ │ │ ├── streamlet_with_keyby_count_and_reduce │ │ │ ├── StreamletWithKeybyCountAndReduce.java │ │ │ └── StreamletWithKeybyCountAndReduceResults.json │ │ │ ├── streamlet_with_map_and_flatmap_and_filter_and_clone │ │ │ ├── StreamletWithMapAndFlatMapAndFilterAndClone.java │ │ │ └── StreamletWithMapAndFlatMapAndFilterAndCloneResults.json │ │ │ ├── streamlet_with_split_and_with_stream │ │ │ ├── StreamletWithSplitAndWithStream.java │ │ │ └── StreamletWithSplitAndWithStreamResults.json │ │ │ └── windowing │ │ │ ├── WindowTestBase.java │ │ │ ├── count │ │ │ ├── SlidingCountWindowTest1.java │ │ │ ├── SlidingCountWindowTest1Results.json │ │ │ ├── SlidingCountWindowTest2.java │ │ │ ├── SlidingCountWindowTest2Results.json │ │ │ ├── SlidingCountWindowTest3.java │ │ │ ├── SlidingCountWindowTest3Results.json │ │ │ ├── TumblingCountWindowTest1.java │ │ │ ├── TumblingCountWindowTest1Results.json │ │ │ ├── TumblingCountWindowTest2.java │ │ │ ├── TumblingCountWindowTest2Results.json │ │ │ ├── TumblingCountWindowTest3.java │ │ │ └── TumblingCountWindowTest3Results.json │ │ │ ├── stateful │ │ │ ├── StatefulWindowingTest.java │ │ │ └── StatefulWindowingTestResults.json │ │ │ ├── time │ │ │ ├── SlidingTimeWindowTest1.java │ │ │ └── SlidingTimeWindowTest1Results.json │ │ │ └── watermark │ │ │ ├── SlidingWatermarkEventTimeWindowTest1.java │ │ │ └── SlidingWatermarkEventTimeWindowTest1Results.json │ │ ├── integration_topology_test │ │ ├── common │ │ │ ├── AbstractTestTopology.java │ │ │ ├── BasicConfig.java │ │ │ ├── bolt │ │ │ │ └── StatefulIdentityBolt.java │ │ │ └── spout │ │ │ │ └── StatefulABSpout.java │ │ ├── core │ │ │ ├── HttpUtils.java │ │ │ ├── StatefulBolt.java │ │ │ ├── StatefulIntegrationTopologyTestBolt.java │ │ │ ├── StatefulIntegrationTopologyTestSpout.java │ │ │ ├── StatefulSpout.java │ │ │ └── TopologyTestTopologyBuilder.java │ │ └── topology │ │ │ ├── basic_topology_one_task_scale_down │ │ │ ├── BasicTopologyOneTask.java │ │ │ └── BasicTopologyOneTaskResults.json │ │ │ ├── basic_topology_one_task_scale_up │ │ │ ├── BasicTopologyOneTask.java │ │ │ └── BasicTopologyOneTaskResults.json │ │ │ ├── basic_topology_one_task_scale_up_down │ │ │ ├── BasicTopologyOneTask.java │ │ │ └── BasicTopologyOneTaskResults.json │ │ │ ├── fields_grouping │ │ │ ├── FieldsGrouping.java │ │ │ └── FieldsGroupingResults.json │ │ │ └── stateful_basic_topology_one_task │ │ │ ├── StatefulBasicTopologyOneTask.java │ │ │ ├── StatefulBasicTopologyOneTaskState.json │ │ │ └── StatefulBasicTopologyOneTaskTopo.json │ │ └── local_integration_test │ │ └── topology │ │ └── local_readwrite │ │ └── LocalReadWriteTopology.java │ ├── python │ ├── __init__.py │ ├── common │ │ ├── BUILD │ │ └── status.py │ ├── http_server │ │ ├── BUILD │ │ └── main.py │ ├── integration_test │ │ ├── __init__.py │ │ ├── common │ │ │ ├── BUILD │ │ │ ├── __init__.py │ │ │ ├── bolt │ │ │ │ ├── __init__.py │ │ │ │ ├── count_aggregator_bolt.py │ │ │ │ ├── double_tuples_bolt.py │ │ │ │ ├── identity_bolt.py │ │ │ │ └── word_count_bolt.py │ │ │ └── spout │ │ │ │ ├── __init__.py │ │ │ │ └── ab_spout.py │ │ ├── core │ │ │ ├── BUILD │ │ │ ├── __init__.py │ │ │ ├── aggregator_bolt.py │ │ │ ├── batch_bolt.py │ │ │ ├── constants.py │ │ │ ├── integration_test_bolt.py │ │ │ ├── integration_test_spout.py │ │ │ ├── terminal_bolt.py │ │ │ ├── test_runner.py │ │ │ └── test_topology_builder.py │ │ └── topology │ │ │ ├── BUILD │ │ │ ├── __init__.py │ │ │ ├── all_grouping │ │ │ ├── __init__.py │ │ │ ├── all_grouping.py │ │ │ └── all_grouping_result.json │ │ │ ├── basic_one_task │ │ │ ├── __init__.py │ │ │ ├── basic_one_task.py │ │ │ └── basic_one_task_result.json │ │ │ ├── bolt_double_emit_tuples │ │ │ ├── __init__.py │ │ │ ├── bolt_double_emit_tuples.py │ │ │ └── bolt_double_emit_tuples_result.json │ │ │ ├── fields_grouping │ │ │ ├── __init__.py │ │ │ ├── fields_grouping.py │ │ │ └── fields_grouping_result.json │ │ │ ├── global_grouping │ │ │ ├── __init__.py │ │ │ ├── global_grouping.py │ │ │ └── global_grouping_result.json │ │ │ ├── multi_spouts_multi_tasks │ │ │ ├── __init__.py │ │ │ ├── multi_spouts_multi_tasks.py │ │ │ └── multi_spouts_multi_tasks_result.json │ │ │ ├── none_grouping │ │ │ ├── __init__.py │ │ │ ├── none_grouping.py │ │ │ └── none_grouping_result.json │ │ │ ├── one_bolt_multi_tasks │ │ │ ├── __init__.py │ │ │ ├── one_bolt_multi_tasks.py │ │ │ └── one_bolt_multi_tasks_result.json │ │ │ ├── one_spout_bolt_multi_tasks │ │ │ ├── __init__.py │ │ │ ├── one_spout_bolt_multi_tasks.py │ │ │ └── one_spout_bolt_multi_tasks_result.json │ │ │ ├── one_spout_multi_tasks │ │ │ ├── __init__.py │ │ │ ├── one_spout_multi_tasks.py │ │ │ └── one_spout_multi_tasks_result.json │ │ │ ├── one_spout_two_bolts │ │ │ ├── __init__.py │ │ │ ├── one_spout_two_bolts.py │ │ │ └── one_spout_two_bolts_result.json │ │ │ ├── shuffle_grouping │ │ │ ├── __init__.py │ │ │ ├── shuffle_grouping.py │ │ │ └── shuffle_grouping_result.json │ │ │ ├── streamlet │ │ │ ├── __init__.py │ │ │ ├── word_count_streamlet.py │ │ │ └── word_count_streamlet_results.json │ │ │ └── test_topology_main.py │ ├── local_test_runner │ │ ├── BUILD │ │ ├── README │ │ ├── main.py │ │ ├── resources │ │ │ └── test.conf │ │ ├── test_explorer.py │ │ ├── test_kill_bolt.py │ │ ├── test_kill_metricsmgr.py │ │ ├── test_kill_stmgr.py │ │ ├── test_kill_stmgr_metricsmgr.py │ │ ├── test_kill_tmanager.py │ │ ├── test_scale_up.py │ │ └── test_template.py │ ├── test_runner │ │ ├── BUILD │ │ ├── main.py │ │ └── resources │ │ │ └── test.json │ └── topology_test_runner │ │ ├── BUILD │ │ ├── main.py │ │ └── resources │ │ └── test.json │ └── scala │ ├── BUILD │ └── org │ └── apache │ └── heron │ └── integration_test │ ├── common │ ├── ClassicalMusicDataset.scala │ └── ScalaIntegrationTestBase.scala │ └── topology │ ├── scala_streamlet_with_filter_and_transform │ ├── ScalaStreamletWithFilterAndTransform.scala │ └── ScalaStreamletWithFilterAndTransformResults.json │ ├── scala_streamlet_with_keyby_count_and_reduce │ ├── ScalaStreamletWithKeybyCountAndReduce.scala │ └── ScalaStreamletWithKeybyCountAndReduceResults.json │ ├── scala_streamlet_with_map_and_filter_and_union │ ├── ScalaStreamletWithMapAndFilterAndUnion.scala │ └── ScalaStreamletWithMapAndFilterAndUnionResults.json │ ├── scala_streamlet_with_map_and_flatmap_and_filter_and_clone │ ├── ScalaStreamletWithMapAndFlatMapAndFilterAndClone.scala │ └── ScalaStreamletWithMapAndFlatMapAndFilterAndCloneResults.json │ └── scala_streamlet_with_split_and_with_stream │ ├── ScalaStreamletWithSplitAndWithStream.scala │ └── ScalaStreamletWithSplitAndWithStreamResults.json ├── licenses ├── LICENSE-Docusaurus-1.13.0.txt ├── LICENSE-JQuery.txt ├── LICENSE-JSXTransformer_js_apache.txt ├── LICENSE-JSXTransformer_js_bsd.txt ├── LICENSE-JSXTransformer_js_mit.txt ├── LICENSE-Modernizr.txt ├── LICENSE-RobotoSlab.txt ├── LICENSE-Sizzle.txt ├── LICENSE-Underscore.js-1.6.0.txt ├── LICENSE-autogen.sh.txt ├── LICENSE-bazel_authors.txt ├── LICENSE-bazel_jar_jar.txt ├── LICENSE-bazel_rules_pex-0.3.0.txt ├── LICENSE-bootstrap-2.2.2.txt ├── LICENSE-bootstrap-3.0.0.txt ├── LICENSE-bootstrap-3.1.1.txt ├── LICENSE-d3-3.4.11.txt ├── LICENSE-d3-tip-0.6.3.txt ├── LICENSE-gerrit.txt ├── LICENSE-html5shiv-3.6.2pre.md ├── LICENSE-jQuery-UI-1.8.23.txt ├── LICENSE-jarjar.txt ├── LICENSE-k8s-zookeeper-docker.txt ├── LICENSE-list.js-1.1.1.txt ├── LICENSE-moment-2.8.3.txt ├── LICENSE-normalize.css.md └── LICENSE-react.txt ├── maven_install.json ├── release ├── maven │ ├── heron-kafka.template.pom │ ├── heron-no-kryo.template.pom │ ├── heron-with-kryo.template.pom │ └── maven-pom-version.sh ├── release-process.md └── release.spec ├── scripts ├── ci │ ├── README.md │ ├── build_docker_image.sh │ ├── build_maven_artifacts.sh │ ├── build_release_packages.sh │ └── setup_bazel.sh ├── compile │ ├── BUILD │ ├── README.md │ └── errors.sh ├── get_all_heron_paths.sh ├── images │ └── BUILD ├── packages │ ├── BUILD │ ├── bin_common.sh │ ├── debian │ │ └── description │ ├── heronpy │ │ ├── README.txt │ │ ├── __apiinit__.py.template │ │ ├── __connectorsinit__.py.template │ │ ├── __streamletinit__.py.template │ │ ├── requirements.txt │ │ └── setup.py.template │ ├── package_info_generator.sh │ ├── self_extract_binary.bzl │ ├── template_bin.sh │ └── tests_template_bin.sh ├── publish.sh ├── release │ ├── BUILD │ ├── README.md │ ├── common.sh │ ├── docker-images │ ├── release.sh │ ├── relnotes.sh │ └── status.sh ├── release_check │ ├── README.md │ ├── build.sh │ ├── build_docker.sh │ ├── full_release_check.sh │ ├── license_check.sh │ └── run_test_topology.sh ├── resources │ └── idea │ │ ├── .name │ │ ├── codeStyleSettings.xml │ │ ├── compiler.xml │ │ ├── copyright │ │ ├── heron.xml │ │ └── profiles_settings.xml │ │ ├── libraries │ │ └── hp_dep.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ └── vcs.xml ├── run_integration_test.sh ├── run_integration_topology_test.sh ├── setup-eclipse.sh ├── setup-intellij.sh ├── shutils │ ├── common.sh │ └── save-logs.py └── travis │ ├── build.sh │ ├── check.sh │ ├── ci.sh │ ├── k8s.sh │ ├── k8s.sh.kind.yaml │ └── test.sh ├── storm-compatibility-examples ├── v0.10.2 │ └── src │ │ └── java │ │ ├── BUILD │ │ └── org │ │ └── apache │ │ └── storm │ │ └── examples │ │ ├── AckingTopology.java │ │ ├── CustomGroupingTopology.java │ │ ├── ExclamationTopology.java │ │ ├── MultiSpoutExclamationTopology.java │ │ ├── MultiStageAckingTopology.java │ │ ├── SentenceWordCountTopology.java │ │ ├── SlidingWindowTopology.java │ │ ├── TaskHookTopology.java │ │ ├── WordCountTopology.java │ │ ├── bolt │ │ ├── PrinterBolt.java │ │ └── SlidingWindowSumBolt.java │ │ └── spout │ │ ├── RandomIntegerSpout.java │ │ └── TestWordSpout.java └── v2.2.0 │ └── src │ └── java │ ├── BUILD │ └── org │ └── apache │ └── storm │ └── starter │ └── ExclamationTopology.java ├── storm-compatibility ├── v0.10.2 │ └── src │ │ └── java │ │ ├── BUILD │ │ ├── backtype │ │ └── storm │ │ │ ├── Config.java │ │ │ ├── Constants.java │ │ │ ├── ILocalCluster.java │ │ │ ├── LocalCluster.java │ │ │ ├── StormSubmitter.java │ │ │ ├── generated │ │ │ ├── AlreadyAliveException.java │ │ │ ├── GlobalStreamId.java │ │ │ ├── InvalidTopologyException.java │ │ │ ├── NotAliveException.java │ │ │ └── StormTopology.java │ │ │ ├── grouping │ │ │ ├── CustomStreamGrouping.java │ │ │ └── CustomStreamGroupingDelegate.java │ │ │ ├── hooks │ │ │ ├── BaseTaskHook.java │ │ │ ├── ITaskHook.java │ │ │ ├── ITaskHookDelegate.java │ │ │ └── info │ │ │ │ ├── BoltAckInfo.java │ │ │ │ ├── BoltExecuteInfo.java │ │ │ │ ├── BoltFailInfo.java │ │ │ │ ├── EmitInfo.java │ │ │ │ ├── SpoutAckInfo.java │ │ │ │ └── SpoutFailInfo.java │ │ │ ├── metric │ │ │ └── api │ │ │ │ ├── AssignableMetric.java │ │ │ │ ├── CombinedMetric.java │ │ │ │ ├── CountMetric.java │ │ │ │ ├── GlobalMetrics.java │ │ │ │ ├── ICombiner.java │ │ │ │ ├── IMetric.java │ │ │ │ ├── IMetricsConsumer.java │ │ │ │ ├── IReducer.java │ │ │ │ ├── MeanReducer.java │ │ │ │ ├── MetricDelegate.java │ │ │ │ ├── MultiCountMetric.java │ │ │ │ ├── MultiReducedMetric.java │ │ │ │ └── ReducedMetric.java │ │ │ ├── serialization │ │ │ ├── DefaultKryoFactory.java │ │ │ ├── HeronPluggableSerializerDelegate.java │ │ │ ├── IKryoDecorator.java │ │ │ ├── IKryoFactory.java │ │ │ ├── SerializableSerializer.java │ │ │ └── SerializationFactory.java │ │ │ ├── spout │ │ │ ├── IMultiSchemableSpout.java │ │ │ ├── ISpout.java │ │ │ ├── ISpoutOutputCollector.java │ │ │ ├── ISpoutWaitStrategy.java │ │ │ ├── MultiScheme.java │ │ │ ├── NothingEmptyEmitStrategy.java │ │ │ ├── RawMultiScheme.java │ │ │ ├── RawScheme.java │ │ │ ├── Scheme.java │ │ │ ├── SchemeAsMultiScheme.java │ │ │ ├── SleepSpoutWaitStrategy.java │ │ │ ├── SpoutOutputCollector.java │ │ │ └── SpoutOutputCollectorImpl.java │ │ │ ├── task │ │ │ ├── BoltTopologyContext.java │ │ │ ├── GeneralTopologyContext.java │ │ │ ├── IBolt.java │ │ │ ├── IErrorReporter.java │ │ │ ├── IMetricsContext.java │ │ │ ├── IOutputCollector.java │ │ │ ├── OutputCollector.java │ │ │ ├── OutputCollectorImpl.java │ │ │ ├── SpoutTopologyContext.java │ │ │ ├── TopologyContext.java │ │ │ └── WorkerTopologyContext.java │ │ │ ├── testing │ │ │ └── TestWordSpout.java │ │ │ ├── topology │ │ │ ├── BasicBoltExecutor.java │ │ │ ├── BasicOutputCollector.java │ │ │ ├── BoltDeclarer.java │ │ │ ├── BoltDeclarerImpl.java │ │ │ ├── ComponentConfigurationDeclarer.java │ │ │ ├── FailedException.java │ │ │ ├── IBasicBolt.java │ │ │ ├── IBasicOutputCollector.java │ │ │ ├── IComponent.java │ │ │ ├── IRichBolt.java │ │ │ ├── IRichBoltDelegate.java │ │ │ ├── IRichSpout.java │ │ │ ├── IRichSpoutDelegate.java │ │ │ ├── ISchemableSpout.java │ │ │ ├── InputDeclarer.java │ │ │ ├── OutputFieldsDeclarer.java │ │ │ ├── OutputFieldsGetter.java │ │ │ ├── ReportedFailedException.java │ │ │ ├── SpoutDeclarer.java │ │ │ ├── SpoutDeclarerImpl.java │ │ │ ├── TopologyBuilder.java │ │ │ └── base │ │ │ │ ├── BaseBasicBolt.java │ │ │ │ ├── BaseComponent.java │ │ │ │ ├── BaseRichBolt.java │ │ │ │ └── BaseRichSpout.java │ │ │ ├── tuple │ │ │ ├── Fields.java │ │ │ ├── Tuple.java │ │ │ ├── TupleImpl.java │ │ │ └── Values.java │ │ │ └── utils │ │ │ ├── ConfigUtils.java │ │ │ ├── DefaultMaxSpoutPendingTuner.java │ │ │ ├── ListDelegate.java │ │ │ └── Utils.java │ │ ├── clojure │ │ └── lang │ │ │ └── Atom.java │ │ ├── org │ │ └── apache │ │ │ └── storm │ │ │ ├── Config.java │ │ │ ├── Constants.java │ │ │ ├── ILocalCluster.java │ │ │ ├── LocalCluster.java │ │ │ ├── StormSubmitter.java │ │ │ ├── clojure │ │ │ └── lang │ │ │ │ └── Atom.java │ │ │ ├── generated │ │ │ ├── AlreadyAliveException.java │ │ │ ├── Bolt.java │ │ │ ├── GlobalStreamId.java │ │ │ ├── InvalidTopologyException.java │ │ │ ├── NotAliveException.java │ │ │ ├── SpoutSpec.java │ │ │ └── StormTopology.java │ │ │ ├── grouping │ │ │ ├── CustomStreamGrouping.java │ │ │ └── CustomStreamGroupingDelegate.java │ │ │ ├── hooks │ │ │ ├── BaseTaskHook.java │ │ │ ├── ITaskHook.java │ │ │ ├── ITaskHookDelegate.java │ │ │ └── info │ │ │ │ ├── BoltAckInfo.java │ │ │ │ ├── BoltExecuteInfo.java │ │ │ │ ├── BoltFailInfo.java │ │ │ │ ├── EmitInfo.java │ │ │ │ ├── SpoutAckInfo.java │ │ │ │ └── SpoutFailInfo.java │ │ │ ├── metric │ │ │ ├── api │ │ │ │ ├── AssignableMetric.java │ │ │ │ ├── CombinedMetric.java │ │ │ │ ├── CountMetric.java │ │ │ │ ├── GlobalMetrics.java │ │ │ │ ├── ICombiner.java │ │ │ │ ├── IMetric.java │ │ │ │ ├── IMetricsConsumer.java │ │ │ │ ├── IReducer.java │ │ │ │ ├── MeanReducer.java │ │ │ │ ├── MetricDelegate.java │ │ │ │ ├── MultiCountMetric.java │ │ │ │ ├── MultiReducedMetric.java │ │ │ │ └── ReducedMetric.java │ │ │ └── internal │ │ │ │ ├── CountStatAndMetric.java │ │ │ │ └── LatencyStatAndMetric.java │ │ │ ├── serialization │ │ │ ├── DefaultKryoFactory.java │ │ │ ├── HeronPluggableSerializerDelegate.java │ │ │ ├── IKryoDecorator.java │ │ │ ├── IKryoFactory.java │ │ │ ├── SerializableSerializer.java │ │ │ └── SerializationFactory.java │ │ │ ├── spout │ │ │ ├── IMultiSchemableSpout.java │ │ │ ├── ISpout.java │ │ │ ├── ISpoutOutputCollector.java │ │ │ ├── ISpoutWaitStrategy.java │ │ │ ├── MultiScheme.java │ │ │ ├── NothingEmptyEmitStrategy.java │ │ │ ├── RawMultiScheme.java │ │ │ ├── RawScheme.java │ │ │ ├── Scheme.java │ │ │ ├── SchemeAsMultiScheme.java │ │ │ ├── SleepSpoutWaitStrategy.java │ │ │ ├── SpoutOutputCollector.java │ │ │ └── SpoutOutputCollectorImpl.java │ │ │ ├── task │ │ │ ├── BoltTopologyContext.java │ │ │ ├── GeneralTopologyContext.java │ │ │ ├── IBolt.java │ │ │ ├── IErrorReporter.java │ │ │ ├── IMetricsContext.java │ │ │ ├── IOutputCollector.java │ │ │ ├── OutputCollector.java │ │ │ ├── OutputCollectorImpl.java │ │ │ ├── SpoutTopologyContext.java │ │ │ ├── TopologyContext.java │ │ │ └── WorkerTopologyContext.java │ │ │ ├── testing │ │ │ ├── CompletableSpout.java │ │ │ ├── FixedTuple.java │ │ │ └── TestWordSpout.java │ │ │ ├── topology │ │ │ ├── BasicBoltExecutor.java │ │ │ ├── BasicOutputCollector.java │ │ │ ├── BoltDeclarer.java │ │ │ ├── BoltDeclarerImpl.java │ │ │ ├── ComponentConfigurationDeclarer.java │ │ │ ├── FailedException.java │ │ │ ├── IBasicBolt.java │ │ │ ├── IBasicOutputCollector.java │ │ │ ├── IComponent.java │ │ │ ├── IRichBolt.java │ │ │ ├── IRichBoltDelegate.java │ │ │ ├── IRichSpout.java │ │ │ ├── IRichSpoutDelegate.java │ │ │ ├── ISchemableSpout.java │ │ │ ├── IWindowedBolt.java │ │ │ ├── IWindowedBoltDelegate.java │ │ │ ├── InputDeclarer.java │ │ │ ├── OutputFieldsDeclarer.java │ │ │ ├── OutputFieldsGetter.java │ │ │ ├── ReportedFailedException.java │ │ │ ├── SpoutDeclarer.java │ │ │ ├── SpoutDeclarerImpl.java │ │ │ ├── TopologyBuilder.java │ │ │ ├── TupleFieldTimestampExtractor.java │ │ │ └── base │ │ │ │ ├── BaseBasicBolt.java │ │ │ │ ├── BaseComponent.java │ │ │ │ ├── BaseRichBolt.java │ │ │ │ ├── BaseRichSpout.java │ │ │ │ ├── BaseTickTupleAwareRichBolt.java │ │ │ │ └── BaseWindowedBolt.java │ │ │ ├── trident │ │ │ ├── spout │ │ │ │ └── ISpoutPartition.java │ │ │ └── state │ │ │ │ └── Serializer.java │ │ │ ├── tuple │ │ │ ├── Fields.java │ │ │ ├── Tuple.java │ │ │ ├── TupleImpl.java │ │ │ └── Values.java │ │ │ ├── utils │ │ │ ├── ConfigUtils.java │ │ │ ├── DefaultMaxSpoutPendingTuner.java │ │ │ ├── ListDelegate.java │ │ │ ├── Time.java │ │ │ ├── TupleUtils.java │ │ │ └── Utils.java │ │ │ └── windowing │ │ │ ├── TimestampExtractor.java │ │ │ ├── TupleWindow.java │ │ │ ├── TupleWindowImpl.java │ │ │ └── Window.java │ │ ├── shade.conf │ │ └── storm │ │ └── trident │ │ ├── spout │ │ └── ISpoutPartition.java │ │ └── state │ │ └── Serializer.java └── v2.2.0 │ └── src │ └── java │ ├── BUILD │ ├── org │ └── apache │ │ └── storm │ │ ├── Config.java │ │ ├── Constants.java │ │ ├── ILocalCluster.java │ │ ├── LocalCluster.java │ │ ├── StormSubmitter.java │ │ ├── clojure │ │ └── lang │ │ │ └── Atom.java │ │ ├── generated │ │ ├── AlreadyAliveException.java │ │ ├── Bolt.java │ │ ├── GlobalStreamId.java │ │ ├── InvalidTopologyException.java │ │ ├── NotAliveException.java │ │ ├── SpoutSpec.java │ │ └── StormTopology.java │ │ ├── grouping │ │ ├── CustomStreamGrouping.java │ │ └── CustomStreamGroupingDelegate.java │ │ ├── hooks │ │ ├── BaseTaskHook.java │ │ ├── ITaskHook.java │ │ ├── ITaskHookDelegate.java │ │ └── info │ │ │ ├── BoltAckInfo.java │ │ │ ├── BoltExecuteInfo.java │ │ │ ├── BoltFailInfo.java │ │ │ ├── EmitInfo.java │ │ │ ├── SpoutAckInfo.java │ │ │ └── SpoutFailInfo.java │ │ ├── metric │ │ ├── api │ │ │ ├── AssignableMetric.java │ │ │ ├── CombinedMetric.java │ │ │ ├── CountMetric.java │ │ │ ├── GlobalMetrics.java │ │ │ ├── ICombiner.java │ │ │ ├── IMetric.java │ │ │ ├── IMetricsConsumer.java │ │ │ ├── IReducer.java │ │ │ ├── MeanReducer.java │ │ │ ├── MetricDelegate.java │ │ │ ├── MultiCountMetric.java │ │ │ ├── MultiReducedMetric.java │ │ │ └── ReducedMetric.java │ │ └── internal │ │ │ ├── CountStatAndMetric.java │ │ │ └── LatencyStatAndMetric.java │ │ ├── serialization │ │ ├── DefaultKryoFactory.java │ │ ├── HeronPluggableSerializerDelegate.java │ │ ├── IKryoDecorator.java │ │ ├── IKryoFactory.java │ │ ├── SerializableSerializer.java │ │ └── SerializationFactory.java │ │ ├── spout │ │ ├── IMultiSchemableSpout.java │ │ ├── ISpout.java │ │ ├── ISpoutOutputCollector.java │ │ ├── ISpoutWaitStrategy.java │ │ ├── MultiScheme.java │ │ ├── NothingEmptyEmitStrategy.java │ │ ├── RawMultiScheme.java │ │ ├── RawScheme.java │ │ ├── Scheme.java │ │ ├── SchemeAsMultiScheme.java │ │ ├── SleepSpoutWaitStrategy.java │ │ ├── SpoutOutputCollector.java │ │ └── SpoutOutputCollectorImpl.java │ │ ├── task │ │ ├── BoltTopologyContext.java │ │ ├── GeneralTopologyContext.java │ │ ├── IBolt.java │ │ ├── IErrorReporter.java │ │ ├── IMetricsContext.java │ │ ├── IOutputCollector.java │ │ ├── OutputCollector.java │ │ ├── OutputCollectorImpl.java │ │ ├── SpoutTopologyContext.java │ │ ├── TopologyContext.java │ │ └── WorkerTopologyContext.java │ │ ├── testing │ │ ├── CompletableSpout.java │ │ ├── FixedTuple.java │ │ └── TestWordSpout.java │ │ ├── topology │ │ ├── BasicBoltExecutor.java │ │ ├── BasicOutputCollector.java │ │ ├── BoltDeclarer.java │ │ ├── BoltDeclarerImpl.java │ │ ├── ComponentConfigurationDeclarer.java │ │ ├── ConfigurableTopology.java │ │ ├── FailedException.java │ │ ├── IBasicBolt.java │ │ ├── IBasicOutputCollector.java │ │ ├── IComponent.java │ │ ├── IRichBolt.java │ │ ├── IRichBoltDelegate.java │ │ ├── IRichSpout.java │ │ ├── IRichSpoutDelegate.java │ │ ├── ISchemableSpout.java │ │ ├── IWindowedBolt.java │ │ ├── IWindowedBoltDelegate.java │ │ ├── InputDeclarer.java │ │ ├── OutputFieldsDeclarer.java │ │ ├── OutputFieldsGetter.java │ │ ├── ReportedFailedException.java │ │ ├── SpoutDeclarer.java │ │ ├── SpoutDeclarerImpl.java │ │ ├── TopologyBuilder.java │ │ ├── TupleFieldTimestampExtractor.java │ │ └── base │ │ │ ├── BaseBasicBolt.java │ │ │ ├── BaseComponent.java │ │ │ ├── BaseRichBolt.java │ │ │ ├── BaseRichSpout.java │ │ │ ├── BaseTickTupleAwareRichBolt.java │ │ │ └── BaseWindowedBolt.java │ │ ├── trident │ │ ├── spout │ │ │ └── ISpoutPartition.java │ │ └── state │ │ │ └── Serializer.java │ │ ├── tuple │ │ ├── Fields.java │ │ ├── Tuple.java │ │ ├── TupleImpl.java │ │ └── Values.java │ │ ├── utils │ │ ├── ConfigUtils.java │ │ ├── DefaultMaxSpoutPendingTuner.java │ │ ├── ListDelegate.java │ │ ├── Time.java │ │ ├── TupleUtils.java │ │ └── Utils.java │ │ └── windowing │ │ ├── TimestampExtractor.java │ │ ├── TupleWindow.java │ │ ├── TupleWindowImpl.java │ │ └── Window.java │ └── shade.conf ├── third_party ├── cereal │ └── cereal.BUILD ├── cppcheck │ ├── BUILD │ └── cppcheck.BUILD ├── gperftools │ └── gperftools.BUILD ├── helm │ ├── BUILD │ └── helm.BUILD ├── hopscotch-hashmap │ └── hopscotch.BUILD ├── java │ ├── BUILD │ ├── Empty.java │ ├── bazel │ │ ├── BUILD │ │ ├── Empty.java │ │ └── extra_actions_base.proto │ └── logback.xml ├── kashmir │ ├── BUILD │ ├── kashmir-random-fix.patch │ └── kashmir.BUILD ├── libevent │ └── libevent.BUILD ├── libunwind │ ├── BUILD │ └── libunwind.BUILD ├── python │ ├── cpplint │ │ └── BUILD │ ├── pylint │ │ └── BUILD │ └── semver │ │ ├── PKG-INFO │ │ ├── README.md │ │ ├── semver.py │ │ └── setup.py ├── yaml-cpp │ └── yaml.BUILD └── zookeeper │ ├── BUILD │ └── zookeeper_jute.patch ├── tools ├── BUILD ├── bazel.rc ├── build_rules │ ├── BUILD │ └── prelude_bazel ├── cpp │ └── BUILD ├── dev │ └── profiler │ │ ├── attachProfiler.sh │ │ └── profilerUsageMessage.sh ├── java │ ├── BUILD │ └── src │ │ └── org │ │ └── apache │ │ └── bazel │ │ ├── checkstyle │ │ ├── BUILD │ │ ├── CppCheckstyle.java │ │ ├── ExtraActionUtils.java │ │ ├── JavaCheckstyle.java │ │ ├── PythonCheckstyle.java │ │ ├── apache_coding_style.xml │ │ ├── apache_header.txt │ │ ├── heron_coding_style.xml │ │ ├── heron_header.txt │ │ └── suppressions.xml │ │ └── cppcheck │ │ ├── BUILD │ │ └── CppCheck.java ├── platform │ └── BUILD ├── python │ ├── BUILD │ └── checkstyle.ini └── rules │ ├── BUILD │ ├── build_defs.bzl │ ├── genproto.bzl │ ├── heron_deps.bzl │ ├── java_tests.bzl │ ├── javadoc.bzl │ ├── newgenproto.bzl │ └── pex │ ├── BUILD │ ├── pex_rules.bzl │ ├── testlauncher.sh.template │ └── wrapper │ ├── README │ ├── pex_wrapper.py │ └── setup.py └── vagrant ├── .gitignore ├── README.md ├── Vagrantfile ├── init.sh └── local-ci.sh /.bazelrc: -------------------------------------------------------------------------------- 1 | import %workspace%/tools/bazel.rc 2 | -------------------------------------------------------------------------------- /.bazelversion: -------------------------------------------------------------------------------- 1 | 6.0.0 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Operating System** 27 | - OS: [e.g. iOS] 28 | - Version [e.g. 22] 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | dist: jammy 4 | 5 | language: java 6 | 7 | os: linux 8 | 9 | jdk: 10 | 11 | addons: 12 | apt: 13 | packages: 14 | - libtool-bin 15 | - libcppunit-dev 16 | - pkg-config 17 | - python3.10-dev 18 | - python3.10-venv 19 | - wget 20 | - zip 21 | - zlib1g-dev 22 | - google-perftools 23 | - libgoogle-perftools-dev 24 | 25 | env: 26 | - BAZEL_VERSION=6.0.0 ENABLE_HEAPCHECK=1 LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 27 | 28 | before_install: 29 | # download and install bazel 30 | - wget -q "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh" 31 | - chmod +x bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh 32 | - ./bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh --user 33 | 34 | script: 35 | - which gcc 36 | - gcc --version 37 | - which g++ 38 | - g++ --version 39 | - which python 40 | - python -V 41 | - which python3 42 | - python3 -V 43 | - scripts/travis/ci.sh 44 | -------------------------------------------------------------------------------- /BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | package(default_visibility = ["//visibility:public"]) 3 | 4 | filegroup( 5 | name = "disclaimers", 6 | srcs = [ 7 | "DISCLAIMER", 8 | "LICENSE", 9 | "NOTICE", 10 | ] 11 | ) 12 | -------------------------------------------------------------------------------- /DISCLAIMER: -------------------------------------------------------------------------------- 1 | Apache Heron (incubating) is an effort undergoing incubation at The Apache Software Foundation 2 | (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted 3 | projects until a further review indicates that the infrastructure, communications, and decision 4 | making process have stabilized in a manner consistent with other successful ASF projects. While 5 | incubation status is not necessarily a reflection of the completeness or stability of the code, 6 | it does indicate that the project has yet to be fully endorsed by the ASF. -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Apache Heron (Incubating) 2 | Copyright 2018-2022 The Apache Software Foundation 3 | 4 | This product includes software developed at 5 | The Apache Software Foundation (http://www.apache.org/). 6 | 7 | This product includes software developed by Twitter Inc. (www.twitter.com) 8 | Copyright (c) 2014-2018 Twitter Inc. 9 | -------------------------------------------------------------------------------- /RETIRED.txt: -------------------------------------------------------------------------------- 1 | This podling has been retired, please see: https://incubator.apache.org/projects/index.html#heron 2 | -------------------------------------------------------------------------------- /config/empty.cc: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // TODO(kramasamy): Can we get rid of this file? 21 | -------------------------------------------------------------------------------- /config/heron.def: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | /* 21 | * This file is used by configure and can be used to globally #define 22 | * 23 | */ 24 | 25 | #undef NOTHING_TO_DEFINE_YET 26 | -------------------------------------------------------------------------------- /contrib/bolts/kafka/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_library") 2 | load("//tools/rules:build_defs.bzl", "DOCLINT_HTML_AND_SYNTAX") 3 | load("//tools/rules:javadoc.bzl", "java_doc") 4 | 5 | licenses(["notice"]) 6 | 7 | package(default_visibility = ["//visibility:public"]) 8 | 9 | java_doc( 10 | name = "heron-kafka-bolt-javadoc", 11 | libs = [":heron-kafka-bolt-java"], 12 | pkgs = ["org/apache/heron/bolts/kafka"], 13 | title = "Kafka Bolt Documentation", 14 | ) 15 | 16 | kafka_bolt_deps = [ 17 | "//storm-compatibility/v0.10.2/src/java:storm-compatibility-java-neverlink", 18 | "//heron/api/src/java:api-java-low-level", 19 | "//heron/common/src/java:basics-java", 20 | "//heron/common/src/java:config-java", 21 | "//third_party/java:logging", 22 | "@maven//:org_apache_kafka_kafka_clients", 23 | ] 24 | 25 | java_library( 26 | name = "heron-kafka-bolt-java", 27 | srcs = glob(["org/apache/heron/bolts/kafka/**/*.java"]), 28 | resources = ["//:disclaimers"], 29 | javacopts = DOCLINT_HTML_AND_SYNTAX, 30 | deps = kafka_bolt_deps, 31 | ) 32 | -------------------------------------------------------------------------------- /contrib/bolts/kafka/test/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_test") 2 | 3 | heron_kafka_bolts_test_dep = [ 4 | "//contrib/bolts/kafka/src/java:heron-kafka-bolt-java", 5 | "//heron/api/src/java:api-java-low-level", 6 | "//heron/common/src/java:basics-java", 7 | "//heron/common/src/java:config-java", 8 | "//third_party/java:junit4", 9 | "@maven//:org_apache_kafka_kafka_clients", 10 | "@maven//:org_mockito_mockito_all", 11 | ] 12 | 13 | java_test( 14 | name = "KafkaBoltTest", 15 | srcs = ["org/apache/heron/bolts/kafka/KafkaBoltTest.java"], 16 | test_class = "org.apache.heron.bolts.kafka.KafkaBoltTest", 17 | deps = heron_kafka_bolts_test_dep, 18 | ) 19 | 20 | java_test( 21 | name = "DefaultKafkaProducerFactoryTest", 22 | srcs = ["org/apache/heron/bolts/kafka/DefaultKafkaProducerFactoryTest.java"], 23 | test_class = "org.apache.heron.bolts.kafka.DefaultKafkaProducerFactoryTest", 24 | deps = heron_kafka_bolts_test_dep, 25 | ) 26 | -------------------------------------------------------------------------------- /contrib/spouts/kafka/sample/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_binary") 2 | 3 | licenses(["notice"]) 4 | 5 | package(default_visibility = ["//visibility:public"]) 6 | 7 | heron_kafka_spout_sample_dep = [ 8 | "//contrib/spouts/kafka/src/java:heron-kafka-spout-java", 9 | "//heron/api/src/java:api-java-low-level", 10 | "//heron/common/src/java:basics-java", 11 | "//heron/simulator/src/java:simulator-java", 12 | "@maven//:org_apache_kafka_kafka_clients", 13 | "@maven//:org_slf4j_slf4j_api", 14 | ] 15 | 16 | java_binary( 17 | name = "heron-kafka-spout-java-sample", 18 | srcs = glob(["org/apache/heron/spouts/kafka/**/*.java"]), 19 | deps = heron_kafka_spout_sample_dep, 20 | ) 21 | -------------------------------------------------------------------------------- /contrib/spouts/kafka/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_library") 2 | load("//tools/rules:build_defs.bzl", "DOCLINT_HTML_AND_SYNTAX") 3 | load("//tools/rules:javadoc.bzl", "java_doc") 4 | 5 | licenses(["notice"]) 6 | 7 | package(default_visibility = ["//visibility:public"]) 8 | 9 | java_doc( 10 | name = "heron-kafka-spout-javadoc", 11 | libs = [":heron-kafka-spout-java"], 12 | pkgs = ["org/apache/heron/spouts/kafka"], 13 | title = "Kafka Spout Documentation", 14 | ) 15 | 16 | kafka_spout_deps = [ 17 | "//storm-compatibility/v0.10.2/src/java:storm-compatibility-java-neverlink", 18 | "//heron/api/src/java:api-java-low-level", 19 | "//heron/common/src/java:basics-java", 20 | "//heron/common/src/java:config-java", 21 | "//third_party/java:logging", 22 | "@maven//:org_apache_kafka_kafka_clients", 23 | ] 24 | 25 | java_library( 26 | name = "heron-kafka-spout-java", 27 | srcs = glob(["org/apache/heron/spouts/kafka/**/*.java"]), 28 | resources = ["//:disclaimers"], 29 | javacopts = DOCLINT_HTML_AND_SYNTAX, 30 | deps = kafka_spout_deps, 31 | ) 32 | -------------------------------------------------------------------------------- /deploy/kubernetes/helm/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "chart", 7 | srcs = glob(["templates/*.yaml"] + ["templates/*.txt"] + ["templates/*.tpl"] + ["*.lock"] + ["*.yaml"] + ["*.template"]) + ["//:disclaimers"], 8 | ) 9 | -------------------------------------------------------------------------------- /deploy/kubernetes/helm/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | {{/* 3 | Expand the name of the chart. 4 | */}} 5 | {{- define "heron.name" -}} 6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 7 | {{- end -}} 8 | 9 | {{/* 10 | Create a default fully qualified app name. 11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 12 | */}} 13 | {{- define "heron.fullname" -}} 14 | {{- $name := default .Chart.Name .Values.nameOverride -}} 15 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 16 | {{- end -}} 17 | -------------------------------------------------------------------------------- /docker/.tarignore: -------------------------------------------------------------------------------- 1 | .git 2 | docker 3 | 4 | *.pyc 5 | 6 | # Bazel generated files # 7 | ######################### 8 | bazel-* 9 | scripts/compile/env_exec.sh 10 | .DS_Store 11 | .*.swp 12 | -------------------------------------------------------------------------------- /docker/base/conf/sandbox.conf: -------------------------------------------------------------------------------- 1 | [program:heron-tracker] 2 | command = /heron/heron-tools/bin/heron-tracker --rootpath ~/.herondata/repository/state/sandbox 3 | 4 | [program:heron-ui] 5 | command = /heron/heron-tools/bin/heron-ui 6 | 7 | [program:heron-api-server] 8 | command = /heron/heron-tools/bin/heron-apiserver --base-template=local --cluster=sandbox -Dheron.directory.home=/heron/heron-core 9 | 10 | autorestart = false 11 | -------------------------------------------------------------------------------- /docker/base/conf/zookeeper.conf: -------------------------------------------------------------------------------- 1 | # The number of milliseconds of each tick 2 | tickTime=2000 3 | # The number of ticks that the initial 4 | # synchronization phase can take 5 | initLimit=10 6 | # The number of ticks that can pass between 7 | # sending a request and getting an acknowledgement 8 | syncLimit=5 9 | # the directory where the snapshot is stored. 10 | dataDir=data/zookeeper 11 | # the port at which the clients will connect 12 | clientPort=2181 13 | # the maximum number of client connections. 14 | # increase this if you need to handle more clients 15 | #maxClientCnxns=60 16 | # 17 | # Be sure to read the maintenance section of the 18 | # administrator guide before turning on autopurge. 19 | # 20 | # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance 21 | # 22 | # The number of snapshots to retain in dataDir 23 | autopurge.snapRetainCount=3 24 | # Purge task interval in hours 25 | # Set to "0" to disable auto purge feature 26 | autopurge.purgeInterval=1 27 | # Enable all four letter word commands by default 28 | 4lw.commands.whitelist=* 29 | -------------------------------------------------------------------------------- /docker/base/scripts/zookeeper-ruok.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Licensed to the Apache Software Foundation (ASF) under one 3 | # or more contributor license agreements. See the NOTICE file 4 | # distributed with this work for additional information 5 | # regarding copyright ownership. The ASF licenses this file 6 | # to you under the Apache License, Version 2.0 (the 7 | # "License"); you may not use this file except in compliance 8 | # with the License. You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, 13 | # software distributed under the License is distributed on an 14 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | # KIND, either express or implied. See the License for the 16 | # specific language governing permissions and limitations 17 | # under the License. 18 | 19 | # Check ZK server status 20 | 21 | status=$(echo ruok | nc localhost 2181) 22 | if [ "$status" == "imok" ]; then 23 | exit 0 24 | else 25 | echo "ZK server is not ok" 26 | exit 1 27 | fi 28 | -------------------------------------------------------------------------------- /docker/dist/conf/sandbox.conf: -------------------------------------------------------------------------------- 1 | [program:heron-tracker] 2 | command = /usr/local/bin/heron-tracker --rootpath ~/.herondata/repository/state/sandbox 3 | 4 | [program:heron-ui] 5 | command = /usr/local/bin/heron-ui 6 | 7 | [program:heron-api-server] 8 | command = /usr/local/bin/heron-apiserver --base-template=local --cluster=sandbox -Dheron.directory.home=/usr/local/heron 9 | 10 | autorestart = false 11 | -------------------------------------------------------------------------------- /docker/dist/conf/zookeeper.conf: -------------------------------------------------------------------------------- 1 | # The number of milliseconds of each tick 2 | tickTime=2000 3 | # The number of ticks that the initial 4 | # synchronization phase can take 5 | initLimit=10 6 | # The number of ticks that can pass between 7 | # sending a request and getting an acknowledgement 8 | syncLimit=5 9 | # the directory where the snapshot is stored. 10 | dataDir=data/zookeeper 11 | # the port at which the clients will connect 12 | clientPort=2181 13 | # the maximum number of client connections. 14 | # increase this if you need to handle more clients 15 | #maxClientCnxns=60 16 | # 17 | # Be sure to read the maintenance section of the 18 | # administrator guide before turning on autopurge. 19 | # 20 | # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance 21 | # 22 | # The number of snapshots to retain in dataDir 23 | autopurge.snapRetainCount=3 24 | # Purge task interval in hours 25 | # Set to "0" to disable auto purge feature 26 | autopurge.purgeInterval=1 27 | # Enable all four letter word commands by default 28 | 4lw.commands.whitelist=* 29 | -------------------------------------------------------------------------------- /docker/dist/scripts/zookeeper-ruok.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Licensed to the Apache Software Foundation (ASF) under one 3 | # or more contributor license agreements. See the NOTICE file 4 | # distributed with this work for additional information 5 | # regarding copyright ownership. The ASF licenses this file 6 | # to you under the Apache License, Version 2.0 (the 7 | # "License"); you may not use this file except in compliance 8 | # with the License. You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, 13 | # software distributed under the License is distributed on an 14 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | # KIND, either express or implied. See the License for the 16 | # specific language governing permissions and limitations 17 | # under the License. 18 | 19 | # Check ZK server status 20 | 21 | status=$(echo ruok | nc localhost 2181) 22 | if [ "$status" == "imok" ]; then 23 | exit 0 24 | else 25 | echo "ZK server is not ok" 26 | exit 1 27 | fi 28 | -------------------------------------------------------------------------------- /eco-heron-examples/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_binary") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "heron-eco-examples-support", 7 | srcs = glob(["**/*.yaml"]), 8 | ) 9 | 10 | java_binary( 11 | name = "eco-examples-unshaded", 12 | srcs = glob(["org/apache/heron/examples/eco/**/*.java"]), 13 | create_executable = 0, 14 | deps = [ 15 | "//heron/api/src/java:api-java", 16 | "//heron/api/src/java:api-java-low-level", 17 | "//heron/common/src/java:basics-java", 18 | "//storm-compatibility/v0.10.2/src/java:storm-compatibility-java", 19 | ], 20 | ) 21 | 22 | genrule( 23 | name = "heron-eco-examples", 24 | srcs = [":eco-examples-unshaded_deploy.jar"], 25 | outs = ["heron-eco-examples.jar"], 26 | cmd = "cp $< $@", 27 | ) 28 | -------------------------------------------------------------------------------- /eco-heron-examples/src/java/org/apache/heron/examples/eco/sample.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | ecoPropertyOne=thisValueWasSetFromAPropertiesFile 19 | 20 | ecoPropertyTwo=1234 21 | 22 | -------------------------------------------------------------------------------- /eco-storm-examples/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_binary") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "storm-eco-examples-support", 7 | srcs = glob([ 8 | "**/*.yaml", 9 | "**/*.properties", 10 | ]), 11 | ) 12 | 13 | java_binary( 14 | name = "storm-eco-examples-unshaded", 15 | srcs = glob(["org/apache/heron/examples/eco/**/*.java"]), 16 | create_executable = 0, 17 | deps = [ 18 | "//heron/api/src/java:api-java", 19 | "//heron/api/src/java:api-java-low-level", 20 | "//heron/common/src/java:basics-java", 21 | "//storm-compatibility/v0.10.2/src/java:storm-compatibility-java", 22 | ], 23 | ) 24 | 25 | genrule( 26 | name = "storm-eco-examples", 27 | srcs = [":storm-eco-examples-unshaded_deploy.jar"], 28 | outs = ["storm-eco-examples.jar"], 29 | cmd = "cp $< $@", 30 | ) 31 | -------------------------------------------------------------------------------- /eco-storm-examples/src/java/org/apache/heron/examples/eco/sample.properties: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | ecoPropertyOne=thisValueWasSetFromAPropertiesFile 19 | 20 | ecoPropertyTwo=1234 21 | 22 | -------------------------------------------------------------------------------- /eco/src/java/org/apache/heron/eco/definition/BoltDefinition.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.eco.definition; 21 | 22 | public class BoltDefinition extends ObjectDefinition { 23 | } 24 | -------------------------------------------------------------------------------- /eco/src/java/org/apache/heron/eco/definition/SpoutDefinition.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.eco.definition; 21 | 22 | public class SpoutDefinition extends ObjectDefinition { 23 | } 24 | -------------------------------------------------------------------------------- /examples/src/python/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | """Example python topologies""" 18 | __all__ = ['bolt', 'spout', 'misc', 'custom_grouping_topology', 'word_count_topology'] 19 | -------------------------------------------------------------------------------- /examples/src/python/misc/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | """Miscellaneous example topology-related modules""" 18 | __all__ = ['test_task_hook'] 19 | 20 | from .test_task_hook import TestTaskHook 21 | -------------------------------------------------------------------------------- /examples/src/python/spout/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | """example python spouts""" 18 | __all__ = ['multi_stream_spout', 'word_spout'] 19 | 20 | from .multi_stream_spout import MultiStreamSpout 21 | from .word_spout import WordSpout 22 | from .stateful_word_spout import StatefulWordSpout 23 | -------------------------------------------------------------------------------- /examples/src/scala/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | scala_binary( 6 | name = "streamlet-scala-examples-unshaded", 7 | srcs = glob(["org/apache/heron/examples/streamlet/scala/**/*.scala"]), 8 | main_class = "org.apache.heron.examples.streamlet.scala.ScalaIntegerProcessingTopology", 9 | deps = [ 10 | "//heron/api/src/java:api-java", 11 | "//heron/api/src/java:api-java-low-level", 12 | "//heron/api/src/scala:api-scala", 13 | "//third_party/java:kryo", 14 | "@maven//:org_apache_commons_commons_lang3", 15 | ], 16 | ) 17 | 18 | genrule( 19 | name = "heron-streamlet-scala-examples", 20 | srcs = [":streamlet-scala-examples-unshaded_deploy.jar"], 21 | outs = ["heron-streamlet-scala-examples.jar"], 22 | cmd = "cp $< $@", 23 | ) 24 | -------------------------------------------------------------------------------- /heron/api/src/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | filegroup( 4 | name = "processor-service-conf", 5 | srcs = ["META-INF/services/javax.annotation.processing.Processor"], 6 | ) 7 | -------------------------------------------------------------------------------- /heron/api/src/META-INF/services/javax.annotation.processing.Processor: -------------------------------------------------------------------------------- 1 | org.apache.heron.classification.HeronAnnotationProcessor 2 | -------------------------------------------------------------------------------- /heron/api/src/java/org/apache/heron/api/bolt/IErrorReporter.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.api.bolt; 21 | 22 | public interface IErrorReporter { 23 | void reportError(Throwable error); 24 | } 25 | -------------------------------------------------------------------------------- /heron/api/src/java/org/apache/heron/api/metric/MeanReducerState.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.api.metric; 21 | 22 | public class MeanReducerState { 23 | public int count = 0; 24 | public double sum = 0.0; 25 | } 26 | -------------------------------------------------------------------------------- /heron/api/src/java/org/apache/heron/api/serializer/IKryoDecorator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.api.serializer; 21 | 22 | import com.esotericsoftware.kryo.Kryo; 23 | 24 | public interface IKryoDecorator { 25 | void decorate(Kryo k); 26 | } 27 | -------------------------------------------------------------------------------- /heron/api/src/java/org/apache/heron/api/spout/IMultiSchemableSpout.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.api.spout; 21 | 22 | public interface IMultiSchemableSpout { 23 | MultiScheme getScheme(); 24 | 25 | void setScheme(MultiScheme scheme); 26 | } 27 | -------------------------------------------------------------------------------- /heron/api/src/java/org/apache/heron/api/spout/ISchemableSpout.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.api.spout; 21 | 22 | 23 | public interface ISchemableSpout { 24 | Scheme getScheme(); 25 | 26 | void setScheme(Scheme scheme); 27 | } 28 | -------------------------------------------------------------------------------- /heron/api/src/java/shade.conf: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | zap com.google.protobuf** 19 | zap org.slf4j** 20 | zap javax.xml.bind** 21 | zap org.apache.commons.lang3** 22 | -------------------------------------------------------------------------------- /heron/api/src/scala/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | scala_library( 6 | name = "api-scala", 7 | srcs = glob(["org/apache/heron/streamlet/scala/**/*.scala"]), 8 | deps = [ 9 | "//heron/api/src/java:api-java", 10 | "//heron/api/src/java:api-java-low-level", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /heron/api/tests/cpp/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_test") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_test( 6 | name = "serialization_unittest", 7 | size = "small", 8 | srcs = [ 9 | "serialization_unittest.cpp", 10 | ], 11 | copts = [ 12 | "-Iheron/api/src/cpp", 13 | "-Iheron/common/src/cpp", 14 | "-Iheron", 15 | "-I$(GENDIR)/heron", 16 | ], 17 | linkstatic = 1, 18 | deps = [ 19 | "//heron/api/src/cpp:cxx-api", 20 | "//heron/common/src/cpp/basics:basics-cxx", 21 | "@com_google_googletest//:gtest", 22 | ], 23 | ) 24 | -------------------------------------------------------------------------------- /heron/api/tests/scala/BUILD: -------------------------------------------------------------------------------- 1 | scala_test( 2 | name = "api-scala-test", 3 | srcs = glob([ 4 | "org/apache/heron/streamlet/scala/**/*.scala", 5 | "org/apache/heron/resource/**/*.scala", 6 | ]), 7 | deps = [ 8 | "//heron/api/src/java:api-java", 9 | "//heron/api/src/java:api-java-low-level", 10 | "//heron/api/src/scala:api-scala", 11 | "//third_party/java:junit4", 12 | ], 13 | ) 14 | -------------------------------------------------------------------------------- /heron/ckptmgr/tests/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_library") 2 | 3 | test_deps_files = \ 4 | heron_java_proto_files() + [ 5 | "//heron/ckptmgr/src/java:ckptmgr-java", 6 | "//heron/spi/src/java:statefulstorage-spi-java", 7 | "//heron/common/src/java:basics-java", 8 | "//heron/common/src/java:network-java", 9 | "//heron/common/src/java:test-helpers-java", 10 | "//third_party/java:powermock", 11 | "//third_party/java:mockito", 12 | "//third_party/java:junit4", 13 | ] 14 | 15 | java_library( 16 | name = "ckptmgr-tests", 17 | srcs = glob(["**/ckptmgr/*.java"]), 18 | deps = test_deps_files, 19 | ) 20 | 21 | java_tests( 22 | size = "small", 23 | test_classes = [ 24 | "org.apache.heron.ckptmgr.CheckpointManagerServerTest", 25 | ], 26 | runtime_deps = [":ckptmgr-tests"], 27 | ) 28 | -------------------------------------------------------------------------------- /heron/common/src/cpp/basics/randutils.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | #include "basics/randutils.h" 21 | #include 22 | 23 | sp_int64 RandUtils::lrand() { 24 | sp_int64 retval = static_cast(rand()); 25 | return retval << (sizeof(int) * 8) | rand(); 26 | } 27 | -------------------------------------------------------------------------------- /heron/common/src/cpp/errors/sys-errors.dat: -------------------------------------------------------------------------------- 1 | sys = 0x00010000 "System Errors" { 2 | INVALID_PARAMS Invalid parameters NOT_IMPLEMENTED Not implemented 3 | } 4 | -------------------------------------------------------------------------------- /heron/common/src/cpp/setup/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_library") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_library( 6 | name = "setup-cxx", 7 | srcs = [ 8 | "zk-setup.cpp", 9 | ], 10 | copts = [ 11 | "-Iheron", 12 | "-Iheron/common/src/cpp", 13 | "-I$(GENDIR)/heron", 14 | "-I$(GENDIR)/heron/common/src/cpp", 15 | ], 16 | linkstatic = 1, 17 | deps = [ 18 | "//config:config-cxx", 19 | "//heron/common/src/cpp/network:network-cxx", 20 | "//heron/common/src/cpp/zookeeper:zookeeper-cxx", 21 | "//heron/proto:proto-cxx", 22 | "@com_github_jbeder_yaml_cpp//:yaml-cxx", 23 | ], 24 | ) 25 | -------------------------------------------------------------------------------- /heron/common/src/cpp/threads/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_library") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_library( 6 | name = "threads-cxx", 7 | srcs = [ 8 | "modinit.cpp", 9 | "pcqueue.h", 10 | "spcountdownlatch.cpp", 11 | "spcountdownlatch.h", 12 | ], 13 | hdrs = [ 14 | "modinit.h", 15 | "threads.h", 16 | ], 17 | copts = [ 18 | "-Iheron/common/src/cpp", 19 | "-I$(GENDIR)/heron/common/src/cpp", 20 | ], 21 | linkstatic = 1, 22 | deps = [ 23 | "//heron/common/src/cpp/basics:basics-cxx", 24 | "//heron/common/src/cpp/errors:errors-cxx", 25 | ], 26 | ) 27 | -------------------------------------------------------------------------------- /heron/common/src/cpp/threads/modinit.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | #include "threads/modinit.h" 21 | 22 | sp_int32 __nifty_thread_modinit::count_ = 0; 23 | 24 | __nifty_thread_modinit::__nifty_thread_modinit() {} 25 | 26 | __nifty_thread_modinit::~__nifty_thread_modinit() {} 27 | -------------------------------------------------------------------------------- /heron/common/src/cpp/zookeeper/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_library") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_library( 6 | name = "zookeeper-cxx", 7 | srcs = [ 8 | "zkclient.cpp", 9 | "zkclient_factory.h", 10 | ], 11 | hdrs = [ 12 | "mock_zkclient.h", 13 | "zkclient.h", 14 | ], 15 | copts = [ 16 | "-Iheron/common/src/cpp", 17 | "-I$(GENDIR)/heron//common/src/cpp", 18 | ], 19 | linkstatic = 1, 20 | deps = [ 21 | "//heron/common/src/cpp/basics:basics-cxx", 22 | "//heron/common/src/cpp/errors:errors-cxx", 23 | "//heron/common/src/cpp/network:network-cxx", 24 | "@org_apache_zookeeper//:zookeeper", 25 | ], 26 | ) 27 | -------------------------------------------------------------------------------- /heron/common/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "common-py", 5 | srcs = glob(["**/*.py"]), 6 | reqs = [ 7 | "colorlog==2.6.1", 8 | ], 9 | deps = [ 10 | "//heron/proto:proto-py", 11 | ], 12 | ) 13 | -------------------------------------------------------------------------------- /heron/common/src/python/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /heron/common/src/python/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''common utility modules''' 18 | __all__ = ['proc', 'log'] 19 | -------------------------------------------------------------------------------- /heron/common/tests/cpp/config/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_test") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_test( 6 | name = "topology-config-helper_unittest", 7 | size = "small", 8 | srcs = ["topology-config-helper_unittest.cpp"], 9 | copts = [ 10 | "-I.", 11 | "-I$(GENDIR)/heron", 12 | "-Iheron", 13 | "-Iheron/common/src/cpp", 14 | ], 15 | linkstatic = 1, 16 | deps = [ 17 | "//heron/common/src/cpp/config:config-cxx", 18 | "@com_google_googletest//:gtest", 19 | ], 20 | ) 21 | -------------------------------------------------------------------------------- /heron/common/tests/cpp/errors/errors.dat: -------------------------------------------------------------------------------- 1 | testerrs = 0x00100000 "Test Errors" { 2 | TEST_ERROR1 It is the first error! 3 | TEST_ERROR2 It is the second error! 4 | TEST_ERROR3 It is the third error! 5 | } 6 | -------------------------------------------------------------------------------- /heron/common/tests/cpp/network/host_unittest.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | #ifndef __TEST_HOST_H_ 21 | #define __TEST_HOST_H_ 22 | 23 | #define LOCALHOST "127.0.0.1" 24 | #define RETRY_TIMEOUT 100 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /heron/common/tests/cpp/threads/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_test") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_test( 6 | name = "spcountdownlatch_unittest", 7 | size = "small", 8 | srcs = ["spcountdownlatch_unittest.cpp"], 9 | copts = [ 10 | "-Iheron/common/src/cpp", 11 | "-I$(GENDIR)/heron/common/src/cpp", 12 | ], 13 | linkstatic = 1, 14 | deps = [ 15 | "//heron/common/src/cpp/threads:threads-cxx", 16 | "@com_google_googletest//:gtest", 17 | ], 18 | ) 19 | -------------------------------------------------------------------------------- /heron/common/tests/python/pex_loader/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_pytest( 4 | name = "pex_loader_unittest", 5 | size = "small", 6 | srcs = [ 7 | "constants.py", 8 | "pex_loader_unittest.py", 9 | ], 10 | reqs = [ 11 | "pytest==6.1.2", 12 | ], 13 | deps = [ 14 | "//heron/common/src/python:common-py", 15 | ], 16 | ) 17 | -------------------------------------------------------------------------------- /heron/common/tests/python/pex_loader/testdata/pex/README: -------------------------------------------------------------------------------- 1 | Sample pex file needs to be copied to this directory -------------------------------------------------------------------------------- /heron/common/tests/python/pex_loader/testdata/pex/sample_pex.pex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/common/tests/python/pex_loader/testdata/pex/sample_pex.pex -------------------------------------------------------------------------------- /heron/common/tests/python/pex_loader/testdata/src/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_binary( 4 | name = "sample_pex", 5 | srcs = ["sample.py"], 6 | ) 7 | -------------------------------------------------------------------------------- /heron/common/tests/resources/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | filegroup( 4 | name = "common-resources", 5 | srcs = glob(["**/*.yaml"]), 6 | ) 7 | -------------------------------------------------------------------------------- /heron/common/tests/resources/defaults.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | role: role 19 | environ: environ 20 | heron.launcher.class: org.apache.heron.scheduler.aurora.AuroraLauncher 21 | -------------------------------------------------------------------------------- /heron/common/tests/resources/sysconfig.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | heron.logging.directory: "log-files" 19 | 20 | heron.logging.maximum.size.mb: 100 21 | 22 | heron.logging.maximum.files: 5 23 | 24 | heron.metrics.export.interval.sec: 60 25 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/aurora/README: -------------------------------------------------------------------------------- 1 | Config customization is required before using. -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/examples/localfs_statemgr.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # path of the root address to store the state in a local file system 19 | heron.statemgr.root.path: ${HOME}/.herondata/repository/state/${CLUSTER} 20 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/examples/localfs_uploader.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # name of the directory to upload topologies for local file system uploader 19 | heron.uploader.localfs.file.system.directory: ${HOME}/.herondata/repository/topologies/${CLUSTER}/${ROLE}/${TOPOLOGY} 20 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/examples/roundrobin_packing.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/kubernetes/client.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # Whether role/env is required to submit a topology. Default value is False. 19 | heron.config.is.role.required: False 20 | heron.config.is.env.required: False 21 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/local/client.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # do not use core package URI 19 | heron.package.use_core_uri: false 20 | 21 | # core package directory to use 22 | heron.package.core.directory: ${HERON_DIST}/heron-core 23 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/localzk/README: -------------------------------------------------------------------------------- 1 | This folder contains sample configs needed for using zookeeper in LocalScheduler. 2 | In order to run LocalScheduler, you need to set up a running zookeeper server basing on the config inside statemgr.yaml: 3 | 1. Set up the appropriate connection string. 4 | 2. Create following required nodes in zookeeper (one time effort): 5 | /{heron.statemgr.root.path}/tmanagers 6 | /{heron.statemgr.root.path}/topologies 7 | /{heron.statemgr.root.path}/pplans 8 | /{heron.statemgr.root.path}/executionstate 9 | /{heron.statemgr.root.path}/schedulers 10 | 11 | Then you can run LocalScheduler with zookeeper state manager. 12 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/localzk/client.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # location of the core package 19 | heron.package.core.uri: file://${HERON_DIST}/heron-core.tar.gz 20 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/mesos/client.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/sandbox/client.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # do not use core package URI 19 | heron.package.use_core_uri: false 20 | 21 | # core package directory to use 22 | heron.package.core.directory: ${HERON_DIST}/heron-core 23 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/slurm/client.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # location of the core package 19 | heron.package.core.uri: file://${HERON_DIST}/heron-core.tar.gz 20 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/test/README.md: -------------------------------------------------------------------------------- 1 | 19 | This directory (test) contains some configuration files 20 | for testing. (including unit tests and integration tests.) -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/test/test_override.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # override.yaml 19 | -------------------------------------------------------------------------------- /heron/config/src/yaml/conf/yarn/client.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # location of the core package 19 | heron.package.core.uri: file://${HERON_DIST}/heron-core.tar.gz 20 | -------------------------------------------------------------------------------- /heron/downloaders/src/shell/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | sh_binary( 4 | name = "heron-downloader", 5 | srcs = ["heron-downloader.sh"], 6 | ) 7 | 8 | sh_binary( 9 | name = "heron-downloader-config", 10 | srcs = ["heron-downloader-config.sh"], 11 | ) 12 | -------------------------------------------------------------------------------- /heron/downloaders/src/shell/heron-downloader-config.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Licensed to the Apache Software Foundation (ASF) under one 3 | # or more contributor license agreements. See the NOTICE file 4 | # distributed with this work for additional information 5 | # regarding copyright ownership. The ASF licenses this file 6 | # to you under the Apache License, Version 2.0 (the 7 | # "License"); you may not use this file except in compliance 8 | # with the License. You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, 13 | # software distributed under the License is distributed on an 14 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | # KIND, either express or implied. See the License for the 16 | # specific language governing permissions and limitations 17 | # under the License. 18 | 19 | if [ $1 = "kubernetes" ]; then 20 | ln -s /usr/local/heron/conf/kubernetes /heron 21 | mv /heron/kubernetes /heron/heron-conf 22 | fi 23 | -------------------------------------------------------------------------------- /heron/executor/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "executor-py", 5 | srcs = ["heron_executor.py"], 6 | reqs = ["PyYAML==5.4.1", "click==7.1.2"], 7 | deps = [ 8 | "//heron/common/src/python:common-py", 9 | "//heron/statemgrs/src/python:statemgr-py", 10 | ], 11 | ) 12 | 13 | pex_binary( 14 | name = "heron-executor", 15 | srcs = ["heron_executor.py"], 16 | deps = [ 17 | ":executor-py", 18 | ], 19 | ) 20 | -------------------------------------------------------------------------------- /heron/executor/tests/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_pytest( 4 | name = "executor_unittest", 5 | size = "small", 6 | srcs = ["heron_executor_unittest.py"], 7 | reqs = [ 8 | "pytest==6.1.2", 9 | ], 10 | deps = [ 11 | "//heron/executor/src/python:executor-py", 12 | ], 13 | ) 14 | -------------------------------------------------------------------------------- /heron/instance/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "instance-py", 5 | srcs = glob(["**/*.py"]), 6 | deps = [ 7 | "//heron/common/src/python:common-py", 8 | "//heronpy/api:heron-python-py", 9 | "//heronpy/connectors:heron-pythonconnectors-py", 10 | "//heronpy/proto:proto-py", 11 | "//heronpy/streamlet:heron-python-streamlet-py", 12 | ], 13 | ) 14 | 15 | # build binary for single thread python heron instance 16 | pex_binary( 17 | name = "heron-python-instance", 18 | srcs = ["instance.py"], 19 | reqs = [ 20 | "PyYAML==5.4.1", 21 | "click==7.1.2", 22 | "colorlog==2.6.1", 23 | ], 24 | deps = [":instance-py"], 25 | ) 26 | -------------------------------------------------------------------------------- /heron/instance/src/python/basics/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for basic python heron component''' 18 | __all__ = ['bolt_instance.py', 'spout_instance.py', 'base_instance'] 19 | 20 | from .bolt_instance import BoltInstance 21 | from .spout_instance import SpoutInstance 22 | -------------------------------------------------------------------------------- /heron/instance/src/python/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''common utility modules''' 18 | __all__ = ['system_constants', 'system_config', 'tuple'] 19 | -------------------------------------------------------------------------------- /heron/instance/src/python/utils/topology/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''common modules for topology''' 18 | __all__ = ['topology_context'] 19 | 20 | from .topology_context_impl import TopologyContextImpl 21 | -------------------------------------------------------------------------------- /heron/instance/tests/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "instance-tests-py", 5 | srcs = ["mock_protobuf.py"], 6 | reqs = [ 7 | "pytest==6.1.2", 8 | ], 9 | deps = [ 10 | "//heron/proto:proto-py", 11 | "//heronpy/api:heron-python-py", 12 | ], 13 | ) 14 | -------------------------------------------------------------------------------- /heron/io/dlog/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_binary", "java_library") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | dlog_deps = [ 6 | "//third_party/java:dlog-java", 7 | "@maven//:org_slf4j_log4j_over_slf4j", 8 | "@maven//:io_netty_netty_all", 9 | ] 10 | 11 | java_library( 12 | name = "dlog-lib", 13 | srcs = glob(["**/dlog/DL*.java"]), 14 | deps = dlog_deps, 15 | ) 16 | 17 | java_binary( 18 | name = "dlog-util-unshaded", 19 | srcs = glob(["**/dlog/*.java"]), 20 | main_class = "org.apache.heron.dlog.Util", 21 | deps = dlog_deps + ["//heron/common/src/java:basics-java"], 22 | ) 23 | 24 | genrule( 25 | name = "dlog-util", 26 | srcs = [":dlog-util-unshaded_deploy.jar"], 27 | outs = ["dlog-util.jar"], 28 | cmd = "cp $< $@", 29 | ) 30 | -------------------------------------------------------------------------------- /heron/io/dlog/tests/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_test") 2 | 3 | common_deps_files = [ 4 | "//third_party/java:mockito", 5 | "//third_party/java:junit4", 6 | ] 7 | 8 | dlog_test_deps_files = \ 9 | common_deps_files + [ 10 | "@maven//:com_google_guava_guava", 11 | "//third_party/java:dlog-java", 12 | "@maven//:io_netty_netty_all", 13 | "@maven//:org_slf4j_log4j_over_slf4j", 14 | "//heron/io/dlog/src/java:dlog-lib", 15 | ] 16 | 17 | java_test( 18 | name = "DLInputStreamTest", 19 | size = "small", 20 | srcs = glob(["**/dlog/DLInputStreamTest.java"]), 21 | deps = dlog_test_deps_files, 22 | ) 23 | 24 | java_test( 25 | name = "DLOutputStreamTest", 26 | size = "small", 27 | srcs = glob(["**/dlog/DLOutputStreamTest.java"]), 28 | deps = dlog_test_deps_files, 29 | ) 30 | -------------------------------------------------------------------------------- /heron/proto/Empty.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // bazel java_binary rule requires src files 21 | // Empty.java act as this src file to build the binary 22 | -------------------------------------------------------------------------------- /heron/proto/empty.cc: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // TODO(kramasamy): Can we get rid of this file? 21 | -------------------------------------------------------------------------------- /heron/proto/stats.proto: -------------------------------------------------------------------------------- 1 | // Licensed to the Apache Software Foundation (ASF) under one 2 | // or more contributor license agreements. See the NOTICE file 3 | // distributed with this work for additional information 4 | // regarding copyright ownership. The ASF licenses this file 5 | // to you under the Apache License, Version 2.0 (the 6 | // "License"); you may not use this file except in compliance 7 | // with the License. You may obtain a copy of the License at 8 | // 9 | // http://www.apache.org/licenses/LICENSE-2.0 10 | // 11 | // Unless required by applicable law or agreed to in writing, 12 | // software distributed under the License is distributed on an 13 | // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | // KIND, either express or implied. See the License for the 15 | // specific language governing permissions and limitations 16 | // under the License. 17 | 18 | syntax = "proto2"; 19 | package heron.proto.system; 20 | 21 | option java_package = "org.apache.heron.proto.system"; 22 | option java_outer_classname = "Stats"; 23 | 24 | message StMgrStats { 25 | // to be defined 26 | } 27 | -------------------------------------------------------------------------------- /heron/scheduler-core/tests/resources/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | filegroup( 4 | name = "scheduler-resources", 5 | srcs = glob(["*.txt"]), 6 | ) 7 | -------------------------------------------------------------------------------- /heron/scheduler-core/tests/resources/JsonFormatterUtilsExpectedJson.txt: -------------------------------------------------------------------------------- 1 | {"packingClass":"org.apache.heron.packing.roundrobin.RoundRobingPacking","topology":"test-topology","containers":[{"id":1,"resources":{"cpu":6.0,"ram":7516192768,"disk":7516192768},"components":[{"component":"word","id":5,"index":1,"resources":{"cpu":1.5,"ram":2147483648,"disk":3}},{"component":"exclaim1","id":3,"index":1,"resources":{"cpu":1.5,"ram":2147483648,"disk":3}},{"component":"exclaim1","id":1,"index":1,"resources":{"cpu":1.5,"ram":2147483648,"disk":3}}]},{"id":2,"resources":{"cpu":6.0,"ram":7516192768,"disk":7516192768},"components":[{"component":"word","id":6,"index":1,"resources":{"cpu":1.5,"ram":2147483648,"disk":3}},{"component":"exclaim1","id":2,"index":1,"resources":{"cpu":1.5,"ram":2147483648,"disk":3}},{"component":"exclaim1","id":4,"index":1,"resources":{"cpu":1.5,"ram":2147483648,"disk":3}}]}]} -------------------------------------------------------------------------------- /heron/scheduler-core/tests/resources/SubmitDryRunOutputATableNonRich.txt: -------------------------------------------------------------------------------- 1 | Total number of containers: 2 2 | Using packing class: org.apache.heron.packing.roundrobin.RoundRobinPacking 3 | Container 1 4 | CPU: 6.0, RAM: 7168 MB, Disk: 7168 MB 5 | ==================================================== 6 | | component | task ID | CPU | RAM (MB) | disk (MB) | 7 | ---------------------------------------------------- 8 | | word | 5 | 1.5 | 2048 | 0 | 9 | | exclaim1 | 3 | 1.5 | 2048 | 0 | 10 | | exclaim1 | 1 | 1.5 | 2048 | 0 | 11 | ==================================================== 12 | 13 | Container 2 14 | CPU: 6.0, RAM: 7168 MB, Disk: 7168 MB 15 | ==================================================== 16 | | component | task ID | CPU | RAM (MB) | disk (MB) | 17 | ---------------------------------------------------- 18 | | word | 6 | 1.5 | 2048 | 0 | 19 | | exclaim1 | 2 | 1.5 | 2048 | 0 | 20 | | exclaim1 | 4 | 1.5 | 2048 | 0 | 21 | ==================================================== 22 | -------------------------------------------------------------------------------- /heron/shell/assets/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | filegroup( 4 | name = "assets", 5 | srcs = glob( 6 | ["**/*"], 7 | exclude = ["BUILD"], 8 | ), 9 | ) 10 | -------------------------------------------------------------------------------- /heron/shell/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/shell/assets/favicon.png -------------------------------------------------------------------------------- /heron/shell/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "heron-shell-lib", 5 | srcs = glob( 6 | ["**/*.py"], 7 | ), 8 | reqs = [ 9 | "logging-formatter-anticrlf==1.2", 10 | "requests==2.27.1", 11 | "tornado==6.1", 12 | ], 13 | deps = [ 14 | "//heron/common/src/python:common-py", 15 | ], 16 | ) 17 | 18 | pex_binary( 19 | name = "heron-shell", 20 | srcs = ["main.py"], 21 | resources = [ 22 | "//heron/shell/assets", 23 | ], 24 | deps = [ 25 | ":heron-shell-lib", 26 | ], 27 | ) 28 | -------------------------------------------------------------------------------- /heron/simulator/src/java/org/apache/heron/simulator/instance/README: -------------------------------------------------------------------------------- 1 | TODO: This instance part needs to be further simplified to fit simulator's need -------------------------------------------------------------------------------- /heron/simulator/src/java/shade.conf: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | rule com.google.protobuf** org.apache.heron.shaded.@0 19 | rule org.apache.commons** org.apache.heron.shaded.@0 20 | rule org.yaml.snakeyaml** org.apache.heron.shaded.@0 21 | rule javax** org.apache.heron.shaded.@0 22 | -------------------------------------------------------------------------------- /heron/spi/tests/java/org/apache/heron/spi/common/testdata/local/packing.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | # packing algorithm for packing instances into containers 19 | heron.class.packing.algorithm: org.apache.heron.packing.roundrobin.RoundRobinPacking 20 | -------------------------------------------------------------------------------- /heron/statemgrs/src/cpp/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_library") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_library( 6 | name = "statemgrs-cxx", 7 | srcs = [ 8 | "statemgr/heron-localfilestatemgr.cpp", 9 | "statemgr/heron-statemgr.cpp", 10 | "statemgr/heron-zkstatemgr.cpp", 11 | ], 12 | hdrs = [ 13 | "statemgr/heron-localfilestatemgr.h", 14 | "statemgr/heron-statemgr.h", 15 | "statemgr/heron-zkstatemgr.h", 16 | ], 17 | copts = [ 18 | "-Iheron", 19 | "-Iheron/common/src/cpp", 20 | "-Iheron/statemgrs/src/cpp", 21 | "-I$(GENDIR)/heron", 22 | "-I$(GENDIR)/heron/common/src/cpp", 23 | ], 24 | linkstatic = 1, 25 | deps = [ 26 | "//config:config-cxx", 27 | "//heron/common/src/cpp/zookeeper:zookeeper-cxx", 28 | "//heron/proto:proto-cxx", 29 | ], 30 | ) 31 | -------------------------------------------------------------------------------- /heron/statemgrs/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "statemgr-py", 5 | srcs = glob(["**/*.py"]), 6 | reqs = [ 7 | "PyYAML==5.4.1", 8 | "kazoo==2.8.0", 9 | "zope.interface==4.0.5", 10 | ], 11 | deps = [ 12 | "//heron/proto:proto-py", 13 | ], 14 | ) 15 | -------------------------------------------------------------------------------- /heron/statemgrs/tests/cpp/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_test") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_test( 6 | name = "zk-statemgr_unittest", 7 | size = "small", 8 | srcs = [ 9 | "zkstatemgr_unittest.cpp", 10 | ], 11 | copts = [ 12 | "-Iheron", 13 | "-Iheron/common/src/cpp", 14 | "-Iheron/statemgrs/src/cpp", 15 | "-I$(GENDIR)/heron", 16 | "-I$(GENDIR)/heron/common/src/cpp", 17 | ], 18 | linkstatic = 1, 19 | deps = [ 20 | "//heron/statemgrs/src/cpp:statemgrs-cxx", 21 | "@com_google_googletest//:gtest", 22 | ], 23 | ) 24 | -------------------------------------------------------------------------------- /heron/statemgrs/tests/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_pytest( 4 | name = "configloader_unittest", 5 | size = "small", 6 | srcs = [ 7 | "configloader_unittest.py", 8 | ], 9 | data = [ 10 | "//heron/config/src/yaml:conf-yaml", 11 | ], 12 | reqs = [ 13 | "pytest==6.1.2", 14 | ], 15 | deps = [ 16 | "//heron/statemgrs/src/python:statemgr-py", 17 | ], 18 | ) 19 | 20 | pex_pytest( 21 | name = "zkstatemanager_unittest", 22 | size = "small", 23 | srcs = [ 24 | "zkstatemanager_unittest.py", 25 | ], 26 | reqs = [ 27 | "pytest==6.1.2", 28 | ], 29 | deps = [ 30 | "//heron/statemgrs/src/python:statemgr-py", 31 | ], 32 | ) 33 | 34 | pex_pytest( 35 | name = "statemanagerfactory_unittest", 36 | size = "small", 37 | srcs = [ 38 | "statemanagerfactory_unittest.py", 39 | ], 40 | reqs = [ 41 | "pytest==6.1.2", 42 | ], 43 | deps = [ 44 | "//heron/statemgrs/src/python:statemgr-py", 45 | ], 46 | ) 47 | -------------------------------------------------------------------------------- /heron/tools/apiserver/src/java/org/apache/heron/apiserver/actions/Action.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.heron.apiserver.actions; 21 | 22 | public interface Action { 23 | void execute(); 24 | } 25 | -------------------------------------------------------------------------------- /heron/tools/apiserver/src/shell/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | sh_binary( 4 | name = "heron-apiserver", 5 | srcs = ["heron-apiserver.sh"], 6 | ) 7 | -------------------------------------------------------------------------------- /heron/tools/apiserver/tests/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_library") 2 | 3 | common_deps_files = [ 4 | "//third_party/java:powermock", 5 | "@maven//:commons_io_commons_io", 6 | "//third_party/java:mockito", 7 | "//third_party/java:junit4", 8 | ] 9 | 10 | apiserver_test_deps_files = \ 11 | common_deps_files + [ 12 | "//heron/tools/apiserver/src/java:heron-apiserver", 13 | ] 14 | 15 | java_library( 16 | name = "tests", 17 | srcs = glob(["**/apiserver/**/*.java"]), 18 | deps = apiserver_test_deps_files, 19 | ) 20 | 21 | java_tests( 22 | size = "small", 23 | test_classes = [ 24 | "org.apache.heron.apiserver.utils.ConfigUtilsTests", 25 | "org.apache.heron.apiserver.resources.TopologyResourceTests", 26 | ], 27 | runtime_deps = [":tests"], 28 | ) 29 | -------------------------------------------------------------------------------- /heron/tools/cli/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "cli-py", 5 | srcs = glob( 6 | ["**/*.py"], 7 | ), 8 | reqs = [ 9 | "PyYAML==5.4.1", 10 | "requests==2.27.1", 11 | "netifaces==0.10.6", 12 | ], 13 | deps = [ 14 | "//heron/common/src/python:common-py", 15 | "//heron/proto:proto-py", 16 | "//heron/tools/common/src/python:common-py", 17 | ], 18 | ) 19 | 20 | pex_binary( 21 | name = "heron", 22 | srcs = [ 23 | "main.py", 24 | ], 25 | deps = [":cli-py"], 26 | ) 27 | -------------------------------------------------------------------------------- /heron/tools/cli/tests/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_pytest( 4 | name = "opts_unittest", 5 | size = "small", 6 | srcs = ["opts_unittest.py"], 7 | reqs = [ 8 | "pytest==6.1.2", 9 | ], 10 | deps = [ 11 | "//heron/tools/cli/src/python:cli-py", 12 | ], 13 | ) 14 | 15 | pex_pytest( 16 | name = "client_command_unittest", 17 | size = "small", 18 | srcs = ["client_command_unittest.py"], 19 | reqs = [ 20 | "pytest==6.1.2", 21 | ], 22 | deps = [ 23 | "//heron/tools/cli/src/python:cli-py", 24 | ], 25 | ) 26 | -------------------------------------------------------------------------------- /heron/tools/common/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "tracker-py", 5 | srcs = glob(["clients/*.py"]), 6 | ) 7 | 8 | pex_library( 9 | name = "common-py", 10 | srcs = glob( 11 | ["**/*.py"], 12 | exclude = ["clients"], 13 | exclude_directories = 1, 14 | ), 15 | reqs = ["PyYAML==5.4.1"], 16 | deps = [ 17 | "//heron/common/src/python:common-py", 18 | ], 19 | ) 20 | -------------------------------------------------------------------------------- /heron/tools/common/src/python/clients/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | ''' clients module ''' 18 | __all__ = ['tracker'] 19 | 20 | from . import tracker 21 | -------------------------------------------------------------------------------- /heron/tools/config/src/yaml/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "tracker-yaml", 7 | srcs = ["tracker/heron_tracker.yaml"], 8 | ) 9 | -------------------------------------------------------------------------------- /heron/tools/explorer/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "explorer-py", 5 | srcs = glob(["**/*.py"]), 6 | reqs = [ 7 | "tabulate==0.7.4", 8 | "click==7.1.2", 9 | "requests==2.27.1", 10 | ], 11 | deps = [ 12 | "//heron/common/src/python:common-py", 13 | "//heron/proto:proto-py", 14 | "//heron/statemgrs/src/python:statemgr-py", 15 | "//heron/tools/common/src/python:common-py", 16 | "//heron/tools/common/src/python:tracker-py", 17 | ], 18 | ) 19 | 20 | pex_binary( 21 | name = "heron-explorer", 22 | srcs = ["main.py"], 23 | deps = [ 24 | ":explorer-py", 25 | ], 26 | ) 27 | -------------------------------------------------------------------------------- /heron/tools/explorer/tests/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_pytest( 4 | name = "explorer_unittest", 5 | size = "small", 6 | srcs = ["explorer_unittest.py"], 7 | reqs = [ 8 | "pytest==6.1.2", 9 | ], 10 | deps = [ 11 | "//heron/common/src/python:common-py", 12 | "//heron/tools/common/src/python:common-py", 13 | "//heron/tools/explorer/src/python:explorer-py", 14 | ], 15 | ) 16 | -------------------------------------------------------------------------------- /heron/tools/explorer/tests/python/logicalplan.json: -------------------------------------------------------------------------------- 1 | { 2 | "spouts": { 3 | "word": { 4 | "source": "NA", 5 | "version": "NA", 6 | "type": "default", 7 | "outputs": [ 8 | { 9 | "stream_name": "default" 10 | } 11 | ] 12 | } 13 | }, 14 | "bolts": { 15 | "exclaim1": { 16 | "outputs": [ 17 | 18 | ], 19 | "inputs": [ 20 | { 21 | "stream_name": "default", 22 | "grouping": "SHUFFLE", 23 | "component_name": "word" 24 | } 25 | ] 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /heron/tools/explorer/tests/python/metrics.json: -------------------------------------------------------------------------------- 1 | { 2 | "metrics": { 3 | "__jvm-process-cpu-load": { 4 | "container_1_word_2": "0.233365" 5 | }, 6 | "__jvm-uptime-secs": { 7 | "container_1_word_2": "29332" 8 | }, 9 | "__emit-count\/default": { 10 | "container_1_word_2": "1.2758e+10" 11 | }, 12 | "__ack-count\/default": { 13 | "container_1_word_2": "0" 14 | }, 15 | "__fail-count\/default": { 16 | "container_1_word_2": "0" 17 | }, 18 | "__jvm-memory-used-mb": { 19 | "container_1_word_2": "61.3333" 20 | } 21 | }, 22 | "interval": 1467416596, 23 | "component": "word" 24 | } 25 | -------------------------------------------------------------------------------- /heron/tools/explorer/tests/python/topologies.json: -------------------------------------------------------------------------------- 1 | { 2 | "local": { 3 | "rli": { 4 | "default": [ 5 | "ExclamationTopology" 6 | ] 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /heron/tools/tracker/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "tracker-py", 5 | srcs = glob( 6 | ["**/*.py"], 7 | exclude = ["main.py"], 8 | ), 9 | reqs = [ 10 | "click==7.1.2", 11 | "fastapi==0.75.0", 12 | "httpx==0.16.1", 13 | "javaobj-py3==0.4.3", 14 | "networkx==2.5", 15 | "protobuf==3.19.6", 16 | "uvicorn==0.11.7", 17 | ], 18 | deps = [ 19 | "//heron/common/src/python:common-py", 20 | "//heron/proto:proto-py", 21 | "//heron/statemgrs/src/python:statemgr-py", 22 | "//heron/tools/common/src/python:common-py", 23 | "//heronpy/api:heron-python-py", 24 | ], 25 | ) 26 | 27 | pex_binary( 28 | name = "heron-tracker", 29 | srcs = ["main.py"], 30 | deps = [ 31 | ":tracker-py", 32 | ], 33 | ) 34 | -------------------------------------------------------------------------------- /heron/tools/tracker/src/python/state.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | """ 18 | This module holds global state which is initialised on entry. 19 | 20 | """ 21 | from heron.tools.tracker.src.python.tracker import Tracker 22 | 23 | # this is populated on entry into the application 24 | tracker: Tracker = None 25 | -------------------------------------------------------------------------------- /heron/tools/ui/resources/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | filegroup( 4 | name = "templates", 5 | srcs = glob(["templates/**/*.html"]), 6 | ) 7 | 8 | filegroup( 9 | name = "static", 10 | srcs = glob(["static/**/*"]), 11 | ) 12 | -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/fonts/robotoslab-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/fonts/robotoslab-regular.eot -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/fonts/robotoslab-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/fonts/robotoslab-regular.ttf -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/fonts/robotoslab-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/fonts/robotoslab-regular.woff -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/fonts/robotoslab-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/fonts/robotoslab-regular.woff2 -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/edit-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/edit-icon.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/hue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/hue.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/icn-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/icn-green.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/icn-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/icn-red.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/logo54x54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/logo54x54.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/static/img/trash-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/tools/ui/resources/static/img/trash-icon.png -------------------------------------------------------------------------------- /heron/tools/ui/resources/templates/shell.snip.html: -------------------------------------------------------------------------------- 1 | {# 2 | Licensed to the Apache Software Foundation (ASF) under one 3 | or more contributor license agreements. See the NOTICE file 4 | distributed with this work for additional information 5 | regarding copyright ownership. The ASF licenses this file 6 | to you under the Apache License, Version 2.0 (the 7 | "License"); you may not use this file except in compliance 8 | with the License. You may obtain a copy of the License at 9 | 10 | http://www.apache.org/licenses/LICENSE-2.0 11 | 12 | Unless required by applicable law or agreed to in writing, 13 | software distributed under the License is distributed on an 14 | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | KIND, either express or implied. See the License for the 16 | specific language governing permissions and limitations 17 | under the License. 18 | #} 19 | 20 | {{ info | safe }} 21 |
22 | 
23 | ${{ host }}>: {{ command }} 24 |
25 |
26 | {{ output }} 27 |
28 | -------------------------------------------------------------------------------- /heron/tools/ui/src/python/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "heron-ui-lib", 5 | srcs = glob( 6 | ["**/*.py"], 7 | exclude = ["main.py"], 8 | ), 9 | reqs = [ 10 | "requests==2.27.1", 11 | "click==7.1.2", 12 | "fastapi==0.75.0", 13 | "jinja2==3.0.3", 14 | "aiofiles==0.5.0", 15 | "uvicorn==0.11.7", 16 | "uvloop==0.16.0", 17 | ], 18 | deps = [ 19 | "//heron/common/src/python:common-py", 20 | "//heron/tools/common/src/python:common-py", 21 | "//heron/tools/common/src/python:tracker-py", 22 | ], 23 | ) 24 | 25 | pex_binary( 26 | name = "heron-ui", 27 | srcs = ["main.py"], 28 | resources = [ 29 | "//heron/tools/ui/resources:static", 30 | "//heron/tools/ui/resources:templates", 31 | "//scripts/packages:release_files", 32 | ], 33 | zip_safe = False, 34 | deps = [ 35 | ":heron-ui-lib", 36 | ], 37 | ) 38 | -------------------------------------------------------------------------------- /heron/uploaders/tests/java/org/apache/heron/uploader/localfs/testdata/some-topology.tar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/heron/uploaders/tests/java/org/apache/heron/uploader/localfs/testdata/some-topology.tar -------------------------------------------------------------------------------- /heronpy/api/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "heron-python-py", 5 | srcs = glob( 6 | ["**/*.py"], 7 | exclude = ["**/tests/**"], 8 | ), 9 | deps = [ 10 | "//heronpy/proto:proto-py", 11 | ], 12 | reqs = [ 13 | "cloudpickle~=1.5.0", 14 | ], 15 | ) 16 | 17 | # for egg production 18 | pex_binary( 19 | name = "heron-python-package", 20 | srcs = glob( 21 | ["**/*.py"], 22 | exclude = ["**/tests/**"], 23 | ), 24 | deps = [ 25 | ":heron-python-py", 26 | ], 27 | ) 28 | -------------------------------------------------------------------------------- /heronpy/api/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy API''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/api/bolt/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy bolt''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/api/component/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy component''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/api/spout/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy spout''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/api/state/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy state''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/connectors/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "heron-pythonconnectors-py", 5 | srcs = glob(["**/*.py"]), 6 | deps = [ 7 | "//heronpy/api:heron-python-py", 8 | ], 9 | # TODO:- We should turn this on as soon as bazel issues are resolved 10 | # reqs = ['pulsar-client==1.19.dev2'] 11 | ) 12 | 13 | # for egg production 14 | pex_binary( 15 | name = "heron-pythonconnectors-package", 16 | srcs = glob(["**/*.py"]), 17 | deps = [ 18 | "//heronpy/api:heron-python-py", 19 | ], 20 | ) 21 | -------------------------------------------------------------------------------- /heronpy/connectors/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for connectors''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/connectors/mock/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for mock connectors''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/connectors/pulsar/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for pulsar connectors''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/connectors/textfiles/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for textfiles connectors''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/proto/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy proto''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/streamlet/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "heron-python-streamlet-py", 5 | srcs = glob(["**/*.py"]), 6 | deps = [ 7 | "//heronpy/api:heron-python-py", 8 | ], 9 | ) 10 | 11 | # for egg production 12 | pex_binary( 13 | name = "heron-python-streamlet-api-package", 14 | srcs = glob(["**/*.py"]), 15 | deps = [ 16 | ":heron-python-streamlet-py", 17 | "//heronpy/api:heron-python-py", 18 | ], 19 | ) 20 | -------------------------------------------------------------------------------- /heronpy/streamlet/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy streamlet API''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /heronpy/streamlet/impl/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''module for heronpy streamlet API impl''' 18 | __import__('pkg_resources').declare_namespace(__name__) 19 | -------------------------------------------------------------------------------- /integration_test/src/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/all_grouping/AllGroupingResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/basic_topology_one_task/BasicTopologyOneTaskResults.json: -------------------------------------------------------------------------------- 1 | ["A_0", "A_2", "A_4", "A_6", "A_8", "B_1", "B_3", "B_5", "B_7", "B_9"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/bolt_double_emit_tuples/BoltDoubleEmitTuplesResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/fields_grouping/FieldsGroupingResults.json: -------------------------------------------------------------------------------- 1 | [2] 2 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/global_grouping/GlobalGroupingResults.json: -------------------------------------------------------------------------------- 1 | [0, 0, 2] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/multi_spouts_multi_tasks/MultiSpoutsMultiTasksResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/non_grouping/NonGroupingResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/one_bolt_multi_tasks/OneBoltMultiTasksResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/one_spout_bolt_multi_tasks/OneSpoutBoltMultiTasksResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/one_spout_multi_tasks/OneSpoutMultiTasksResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/one_spout_two_bolts/OneSpoutTwoBoltsResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/serialization/KryoSerializationTopologyResults.json: -------------------------------------------------------------------------------- 1 | [10] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/serialization/SerializationTopologyResults.json: -------------------------------------------------------------------------------- 1 | [10] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/shuffle_grouping/ShuffleGroupingResults.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/streamlet_with_filter_and_transform/StreamletWithFilterAndTransformResults.json: -------------------------------------------------------------------------------- 1 | ["A-0", "B-1", "C-2", "D-3", "E-4", "F-5", "G-6", "H-7"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/streamlet_with_keyby_count_and_reduce/StreamletWithKeybyCountAndReduceResults.json: -------------------------------------------------------------------------------- 1 | ["fall: 1 months", "fall: 2 months", "fall: 3 months", "fall: 30 days", "fall: 61 days", "fall: 91 days", "spring: 1 months", "spring: 2 months", "spring: 3 months", "spring: 31 days", "spring: 61 days", "spring: 92 days", "summer: 1 months", "summer: 2 months", "summer: 3 months", "summer: 30 days", "summer: 61 days", "summer: 92 days", "winter: 1 months", "winter: 2 months", "winter: 3 months", "winter: 31 days", "winter: 59 days", "winter: 90 days"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/streamlet_with_map_and_flatmap_and_filter_and_clone/StreamletWithMapAndFlatMapAndFilterAndCloneResults.json: -------------------------------------------------------------------------------- 1 | ["AUG", "JUL", "JUN", "aug_2018", "jul_2018", "jun_2018"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/streamlet_with_split_and_with_stream/StreamletWithSplitAndWithStreamResults.json: -------------------------------------------------------------------------------- 1 | ["all_-1", "all_-2", "all_-3", "all_0", "all_1", "all_2", "all_3", "all_4", "neg_-1", "neg_-2", "neg_-3", "pos_1", "pos_2", "pos_3", "pos_4"] -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/windowing/count/SlidingCountWindowTest1Results.json: -------------------------------------------------------------------------------- 1 | [ 2 | "{\"1\":[{\"tuplesInWindow\":[\"1\",\"2\",\"3\",\"4\",\"5\"]},{\"newTuples\":[\"1\",\"2\",\"3\",\"4\",\"5\"]},{\"expiredTuples\":[]}]}", 3 | "{\"2\":[{\"tuplesInWindow\":[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\"]},{\"newTuples\":[\"6\",\"7\",\"8\",\"9\",\"10\"]},{\"expiredTuples\":[]}]}" 4 | ] 5 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/windowing/count/SlidingCountWindowTest3Results.json: -------------------------------------------------------------------------------- 1 | [ 2 | "{\"1\":[{\"tuplesInWindow\":[\"1\",\"2\",\"3\"]},{\"newTuples\":[\"1\",\"2\",\"3\"]},{\"expiredTuples\":[]}]}", 3 | "{\"2\":[{\"tuplesInWindow\":[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\"]},{\"newTuples\":[\"4\",\"5\",\"6\"]},{\"expiredTuples\":[]}]}", 4 | "{\"3\":[{\"tuplesInWindow\":[\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"]},{\"newTuples\":[\"7\",\"8\",\"9\"]},{\"expiredTuples\":[\"1\",\"2\"]}]}" 5 | ] 6 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/windowing/count/TumblingCountWindowTest1Results.json: -------------------------------------------------------------------------------- 1 | [ 2 | "{\"1\":[{\"tuplesInWindow\":[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\"]},{\"newTuples\":[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\"]},{\"expiredTuples\":[]}]}" 3 | ] 4 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/windowing/count/TumblingCountWindowTest2Results.json: -------------------------------------------------------------------------------- 1 | [ 2 | "{\"1\":[{\"tuplesInWindow\":[\"1\",\"2\"]},{\"newTuples\":[\"1\",\"2\"]},{\"expiredTuples\":[]}]}", 3 | "{\"2\":[{\"tuplesInWindow\":[\"3\",\"4\"]},{\"newTuples\":[\"3\",\"4\"]},{\"expiredTuples\":[\"1\",\"2\"]}]}", 4 | "{\"3\":[{\"tuplesInWindow\":[\"5\",\"6\"]},{\"newTuples\":[\"5\",\"6\"]},{\"expiredTuples\":[\"3\",\"4\"]}]}", 5 | "{\"4\":[{\"tuplesInWindow\":[\"7\",\"8\"]},{\"newTuples\":[\"7\",\"8\"]},{\"expiredTuples\":[\"5\",\"6\"]}]}", 6 | "{\"5\":[{\"tuplesInWindow\":[\"9\",\"10\"]},{\"newTuples\":[\"9\",\"10\"]},{\"expiredTuples\":[\"7\",\"8\"]}]}" 7 | ] 8 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/windowing/count/TumblingCountWindowTest3Results.json: -------------------------------------------------------------------------------- 1 | [ 2 | "{\"1\":[{\"tuplesInWindow\":[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\"]},{\"newTuples\":[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\"]},{\"expiredTuples\":[]}]}" 3 | ] 4 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/windowing/time/SlidingTimeWindowTest1Results.json: -------------------------------------------------------------------------------- 1 | [ 2 | "{\"1\":[{\"tuplesInWindow\":[\"1\"]},{\"newTuples\":[\"1\"]},{\"expiredTuples\":[]}]}", 3 | "{\"10\":[{\"tuplesInWindow\":[\"10\"]},{\"newTuples\":[\"10\"]},{\"expiredTuples\":[\"9\"]}]}", 4 | "{\"2\":[{\"tuplesInWindow\":[\"2\"]},{\"newTuples\":[\"2\"]},{\"expiredTuples\":[\"1\"]}]}", 5 | "{\"3\":[{\"tuplesInWindow\":[\"3\"]},{\"newTuples\":[\"3\"]},{\"expiredTuples\":[\"2\"]}]}", 6 | "{\"4\":[{\"tuplesInWindow\":[\"4\"]},{\"newTuples\":[\"4\"]},{\"expiredTuples\":[\"3\"]}]}", 7 | "{\"5\":[{\"tuplesInWindow\":[\"5\"]},{\"newTuples\":[\"5\"]},{\"expiredTuples\":[\"4\"]}]}", 8 | "{\"6\":[{\"tuplesInWindow\":[\"6\"]},{\"newTuples\":[\"6\"]},{\"expiredTuples\":[\"5\"]}]}", 9 | "{\"7\":[{\"tuplesInWindow\":[\"7\"]},{\"newTuples\":[\"7\"]},{\"expiredTuples\":[\"6\"]}]}", 10 | "{\"8\":[{\"tuplesInWindow\":[\"8\"]},{\"newTuples\":[\"8\"]},{\"expiredTuples\":[\"7\"]}]}", 11 | "{\"9\":[{\"tuplesInWindow\":[\"9\"]},{\"newTuples\":[\"9\"]},{\"expiredTuples\":[\"8\"]}]}" 12 | ] 13 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_test/topology/windowing/watermark/SlidingWatermarkEventTimeWindowTest1Results.json: -------------------------------------------------------------------------------- 1 | [ 2 | "{\"1\":[{\"tuplesInWindow\":[\"1\"]},{\"newTuples\":[\"1\"]},{\"expiredTuples\":[]}]}", 3 | "{\"10\":[{\"tuplesInWindow\":[\"10\"]},{\"newTuples\":[\"10\"]},{\"expiredTuples\":[\"9\"]}]}", 4 | "{\"2\":[{\"tuplesInWindow\":[\"2\"]},{\"newTuples\":[\"2\"]},{\"expiredTuples\":[\"1\"]}]}", 5 | "{\"3\":[{\"tuplesInWindow\":[\"3\"]},{\"newTuples\":[\"3\"]},{\"expiredTuples\":[\"2\"]}]}", 6 | "{\"4\":[{\"tuplesInWindow\":[\"4\"]},{\"newTuples\":[\"4\"]},{\"expiredTuples\":[\"3\"]}]}", 7 | "{\"5\":[{\"tuplesInWindow\":[\"5\"]},{\"newTuples\":[\"5\"]},{\"expiredTuples\":[\"4\"]}]}", 8 | "{\"6\":[{\"tuplesInWindow\":[\"6\"]},{\"newTuples\":[\"6\"]},{\"expiredTuples\":[\"5\"]}]}", 9 | "{\"7\":[{\"tuplesInWindow\":[\"7\"]},{\"newTuples\":[\"7\"]},{\"expiredTuples\":[\"6\"]}]}", 10 | "{\"8\":[{\"tuplesInWindow\":[\"8\"]},{\"newTuples\":[\"8\"]},{\"expiredTuples\":[\"7\"]}]}", 11 | "{\"9\":[{\"tuplesInWindow\":[\"9\"]},{\"newTuples\":[\"9\"]},{\"expiredTuples\":[\"8\"]}]}" 12 | ] 13 | -------------------------------------------------------------------------------- /integration_test/src/java/org/apache/heron/integration_topology_test/topology/stateful_basic_topology_one_task/StatefulBasicTopologyOneTaskState.json: -------------------------------------------------------------------------------- 1 | [{"stateful-ab-spout": {"A_6": 1, "A_4": 1, "A_2": 1, "A_0": 1, "A_8": 1, "B_9": 1, "B_1": 1, "B_3": 1, "B_5": 1, "B_7": 1}}, 2 | {"stateful-identity-bolt": {"B_5": 1, "A_2": 1, "A_8": 1}}, 3 | {"stateful-identity-bolt": {"B_1": 1, "A_4": 1, "B_7": 1}}, 4 | {"stateful-identity-bolt": {"A_6": 1, "B_3": 1, "A_0": 1, "B_9": 1}}] 5 | -------------------------------------------------------------------------------- /integration_test/src/python/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/common/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "common", 5 | srcs = glob(["*.py"]), 6 | ) 7 | -------------------------------------------------------------------------------- /integration_test/src/python/http_server/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_binary( 4 | name = "http-server", 5 | srcs = [ 6 | "main.py", 7 | ], 8 | main = "main.py", 9 | reqs = [ 10 | "tornado==6.1", 11 | "werkzeug==2.0.2", 12 | ], 13 | deps = [ 14 | "//heron/common/src/python:common-py", 15 | ], 16 | ) 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | '''integration test for python topologies''' 18 | __all__ = ['common', 'core', 'topology'] 19 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/common/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "heron-integration-common-py", 5 | srcs = glob(["**/*.py"]), 6 | deps = [ 7 | "//heronpy/api:heron-python-py", 8 | ], 9 | ) 10 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/common/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/common/spout/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | """Integration test common spout""" 18 | __all__ = ['ab_spout'] 19 | 20 | from .ab_spout import ABSpout 21 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/core/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_library( 4 | name = "heron-integration-core-py", 5 | srcs = glob(["**/*.py"]), 6 | reqs = [], 7 | deps = [ 8 | "//heron/common/src/python:common-py", 9 | "//heronpy/api:heron-python-py", 10 | ], 11 | ) 12 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | filegroup( 4 | name = "test-data-files", 5 | srcs = glob(["**/*.json"]), 6 | ) 7 | 8 | pex_library( 9 | name = "integration-topologies-py", 10 | srcs = glob( 11 | ["**/*.py"], 12 | exclude = ["test_topology_main.py"], 13 | ), 14 | deps = [ 15 | "//heronpy/api:heron-python-py", 16 | "//heronpy/connectors:heron-pythonconnectors-py", 17 | "//heronpy/streamlet:heron-python-streamlet-py", 18 | "//integration_test/src/python/integration_test/common:heron-integration-common-py", 19 | "//integration_test/src/python/integration_test/core:heron-integration-core-py", 20 | ], 21 | ) 22 | 23 | pex_binary( 24 | name = "heron_integ_topology", 25 | srcs = ["test_topology_main.py"], 26 | main = "test_topology_main.py", 27 | deps = [ 28 | ":integration-topologies-py", 29 | ], 30 | ) 31 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/all_grouping/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/all_grouping/all_grouping_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/basic_one_task/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/basic_one_task/basic_one_task_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/bolt_double_emit_tuples/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/bolt_double_emit_tuples/bolt_double_emit_tuples_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/fields_grouping/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/fields_grouping/fields_grouping_result.json: -------------------------------------------------------------------------------- 1 | [2] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/global_grouping/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/global_grouping/global_grouping_result.json: -------------------------------------------------------------------------------- 1 | [0, 0, 2] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/multi_spouts_multi_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/multi_spouts_multi_tasks/multi_spouts_multi_tasks_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/none_grouping/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/none_grouping/none_grouping_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_bolt_multi_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_bolt_multi_tasks/one_bolt_multi_tasks_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_spout_bolt_multi_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_spout_bolt_multi_tasks/one_spout_bolt_multi_tasks_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_spout_multi_tasks/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_spout_multi_tasks/one_spout_multi_tasks_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_spout_two_bolts/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/one_spout_two_bolts/one_spout_two_bolts_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/shuffle_grouping/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/shuffle_grouping/shuffle_grouping_result.json: -------------------------------------------------------------------------------- 1 | ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"] 2 | -------------------------------------------------------------------------------- /integration_test/src/python/integration_test/topology/streamlet/__init__.py: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | -------------------------------------------------------------------------------- /integration_test/src/python/local_test_runner/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_binary( 4 | name = "local-test-runner", 5 | srcs = glob(["*.py"]), 6 | main = "main.py", 7 | reqs = [ 8 | ], 9 | resources = [ 10 | "resources/test.conf", 11 | ], 12 | deps = [ 13 | "//heron/common/src/python:common-py", 14 | "//integration_test/src/python/common", 15 | ], 16 | ) 17 | -------------------------------------------------------------------------------- /integration_test/src/python/local_test_runner/README: -------------------------------------------------------------------------------- 1 | Integration test for testing various heron-cli and process failure scenarios. Runs a local-scheduler 2 | heron topology. The test creates an input file of test data, which a spout emits. A bolt writes each 3 | tuple to an output file and the two files are compared. 4 | 5 | To run the tests: 6 | 7 | bazel run -- scripts/packages:heron-install.sh --user 8 | bazel build integration_test/src/... 9 | ./bazel-bin/integration_test/src/python/local_test_runner/local-test-runner 10 | -------------------------------------------------------------------------------- /integration_test/src/python/local_test_runner/resources/test.conf: -------------------------------------------------------------------------------- 1 | { 2 | "cluster" : "local", 3 | "heronCliPath" : "~/bin/heron", 4 | "heronTrackerPath" : "~/bin/heron-tracker", 5 | "testJarPath" : "bazel-bin/integration_test/src/java/local-integration-tests.jar", 6 | "topology" : { 7 | "topologyName" : "IntegrationTest_LocalReadWriteTopology", 8 | "topologyClassPath" : "org.apache.heron.local_integration_test.topology.local_readwrite.LocalReadWriteTopology", 9 | "readFile" : "test_input.txt", 10 | "outputFile" : "test_output.txt" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /integration_test/src/python/test_runner/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_binary( 4 | name = "test-runner", 5 | srcs = [ 6 | "main.py", 7 | ], 8 | main = "main.py", 9 | reqs = [ 10 | ], 11 | resources = [ 12 | "resources/test.json", 13 | ], 14 | deps = [ 15 | "//heron/common/src/python:common-py", 16 | "//integration_test/src/python/common", 17 | ], 18 | ) 19 | -------------------------------------------------------------------------------- /integration_test/src/python/topology_test_runner/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | pex_binary( 4 | name = "topology-test-runner", 5 | srcs = [ 6 | "main.py", 7 | ], 8 | main = "main.py", 9 | reqs = [ 10 | ], 11 | resources = [ 12 | "resources/test.json", 13 | ], 14 | deps = [ 15 | "//heron/common/src/python:common-py", 16 | "//heron/statemgrs/src/python:statemgr-py", 17 | "//heronpy/proto:proto-py", 18 | "//integration_test/src/python/common", 19 | ], 20 | ) 21 | -------------------------------------------------------------------------------- /integration_test/src/scala/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "test-data-files", 7 | srcs = glob(["**/*.json"]), 8 | ) 9 | 10 | scala_binary( 11 | name = "scala-integration-tests-unshaded", 12 | srcs = glob(["org/apache/heron/integration_test/**/*.scala"]), 13 | main_class = "org.apache.heron.integration_test.topology.scala_streamlet_with_filter_and_transform.ScalaStreamletWithFilterAndTransform", 14 | deps = [ 15 | "//heron/api/src/java:api-java", 16 | "//heron/api/src/java:api-java-low-level", 17 | "//heron/api/src/scala:api-scala", 18 | "//integration_test/src/java:common", 19 | "//integration_test/src/java:core", 20 | ], 21 | ) 22 | 23 | genrule( 24 | name = "scala-integration-tests", 25 | srcs = [":scala-integration-tests-unshaded_deploy.jar"], 26 | outs = ["scala-integration-tests.jar"], 27 | cmd = "cp $< $@", 28 | ) 29 | -------------------------------------------------------------------------------- /integration_test/src/scala/org/apache/heron/integration_test/topology/scala_streamlet_with_filter_and_transform/ScalaStreamletWithFilterAndTransformResults.json: -------------------------------------------------------------------------------- 1 | ["A-0", "B-1", "C-2", "D-3", "E-4", "F-5", "G-6", "H-7"] -------------------------------------------------------------------------------- /integration_test/src/scala/org/apache/heron/integration_test/topology/scala_streamlet_with_keyby_count_and_reduce/ScalaStreamletWithKeybyCountAndReduceResults.json: -------------------------------------------------------------------------------- 1 | [ 2 | "fall: 1 months", 3 | "fall: 2 months", 4 | "fall: 3 months", 5 | "fall: 30 days", 6 | "fall: 61 days", 7 | "fall: 91 days", 8 | "spring: 1 months", 9 | "spring: 2 months", 10 | "spring: 3 months", 11 | "spring: 31 days", 12 | "spring: 61 days", 13 | "spring: 92 days", 14 | "summer: 1 months", 15 | "summer: 2 months", 16 | "summer: 3 months", 17 | "summer: 30 days", 18 | "summer: 61 days", 19 | "summer: 92 days", 20 | "winter: 1 months", 21 | "winter: 2 months", 22 | "winter: 3 months", 23 | "winter: 31 days", 24 | "winter: 59 days", 25 | "winter: 90 days" 26 | ] -------------------------------------------------------------------------------- /integration_test/src/scala/org/apache/heron/integration_test/topology/scala_streamlet_with_map_and_filter_and_union/ScalaStreamletWithMapAndFilterAndUnionResults.json: -------------------------------------------------------------------------------- 1 | ["BACH-1717", "BACH-1723", "BEETHOVEN-1824", "BIZET-1875", "Bach-1723", "Beethoven-1824", "Handel-1717", "MOZART-1788", "Mozart-1788", "Tchaikovsky-1875", "VIVALDI-1723", "Vivaldi-1723"] -------------------------------------------------------------------------------- /integration_test/src/scala/org/apache/heron/integration_test/topology/scala_streamlet_with_map_and_flatmap_and_filter_and_clone/ScalaStreamletWithMapAndFlatMapAndFilterAndCloneResults.json: -------------------------------------------------------------------------------- 1 | ["AUG", "JUL", "JUN", "aug_2018", "jul_2018", "jun_2018"] -------------------------------------------------------------------------------- /integration_test/src/scala/org/apache/heron/integration_test/topology/scala_streamlet_with_split_and_with_stream/ScalaStreamletWithSplitAndWithStreamResults.json: -------------------------------------------------------------------------------- 1 | [ 2 | "all_-1", 3 | "all_-2", 4 | "all_-3", 5 | "all_0", 6 | "all_1", 7 | "all_2", 8 | "all_3", 9 | "all_4", 10 | "neg_-1", 11 | "neg_-2", 12 | "neg_-3", 13 | "pos_1", 14 | "pos_2", 15 | "pos_3", 16 | "pos_4" 17 | ] -------------------------------------------------------------------------------- /licenses/LICENSE-JSXTransformer_js_apache.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2013-2014 Facebook, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | -------------------------------------------------------------------------------- /licenses/LICENSE-Modernizr.txt: -------------------------------------------------------------------------------- 1 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 2 | 3 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/LICENSE-d3-tip-0.6.3.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2013 Justin Palmer 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /licenses/LICENSE-k8s-zookeeper-docker.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014 The Kubernetes Authors. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /scripts/compile/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | sh_binary( 6 | name = "env_exec", 7 | srcs = ["env_exec.sh"], 8 | ) 9 | 10 | sh_binary( 11 | name = "gen_errcodes", 12 | srcs = ["errors.sh"], 13 | ) 14 | -------------------------------------------------------------------------------- /scripts/packages/debian/description: -------------------------------------------------------------------------------- 1 | Heron is a realtime streaming analytics platform developed by Twitter. It is a direct 2 | successor of Apache Storm, built to be backwards compatible with Storm's 3 | topology API but with a wide array of architectural improvements. 4 | -------------------------------------------------------------------------------- /scripts/packages/heronpy/README.txt: -------------------------------------------------------------------------------- 1 | heronpy is the python API for Heron, the distributed streaming engine. 2 | -------------------------------------------------------------------------------- /scripts/packages/heronpy/requirements.txt: -------------------------------------------------------------------------------- 1 | protobuf==3.19.6 2 | cloudpickle~=1.5.0 3 | -------------------------------------------------------------------------------- /scripts/release/BUILD: -------------------------------------------------------------------------------- 1 | # Scripts for building Heron releases 2 | package(default_visibility = ["//visibility:private"]) 3 | 4 | sh_library( 5 | name = "relnotes", 6 | srcs = ["relnotes.sh"], 7 | ) 8 | 9 | sh_library( 10 | name = "release", 11 | srcs = [ 12 | "common.sh", 13 | "release.sh", 14 | ], 15 | deps = [":relnotes"], 16 | ) 17 | 18 | filegroup( 19 | name = "workspace-status", 20 | srcs = [ 21 | "status.sh", 22 | ], 23 | ) 24 | -------------------------------------------------------------------------------- /scripts/release_check/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Licensed to the Apache Software Foundation (ASF) under one 3 | # or more contributor license agreements. See the NOTICE file 4 | # distributed with this work for additional information 5 | # regarding copyright ownership. The ASF licenses this file 6 | # to you under the Apache License, Version 2.0 (the 7 | # "License"); you may not use this file except in compliance 8 | # with the License. You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, 13 | # software distributed under the License is distributed on an 14 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | # KIND, either express or implied. See the License for the 16 | # specific language governing permissions and limitations 17 | # under the License. 18 | 19 | set -o errexit 20 | 21 | bazel build -c dbg heron/... --verbose_failures 22 | bazel build -c dbg scripts/packages:binpkgs --verbose_failures 23 | -------------------------------------------------------------------------------- /scripts/resources/idea/.name: -------------------------------------------------------------------------------- 1 | heron 2 | -------------------------------------------------------------------------------- /scripts/resources/idea/copyright/heron.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /scripts/resources/idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /scripts/travis/k8s.sh.kind.yaml: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | kind: Cluster 19 | apiVersion: kind.x-k8s.io/v1alpha4 20 | nodes: 21 | - role: control-plane 22 | -------------------------------------------------------------------------------- /storm-compatibility-examples/v0.10.2/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_binary") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | java_binary( 6 | name = "heron-storm-compatibility-examples-unshaded", 7 | srcs = glob(["**/*.java"]), 8 | create_executable = 0, 9 | deps = [ 10 | "//heron/api/src/java:api-java-low-level", 11 | "//heron/common/src/java:basics-java", 12 | "//storm-compatibility/v0.10.2/src/java:storm-compatibility-java", 13 | ], 14 | ) 15 | 16 | genrule( 17 | name = "heron-storm-compatibility-examples", 18 | srcs = [":heron-storm-compatibility-examples-unshaded_deploy.jar"], 19 | outs = ["heron-storm-compatibility-examples.jar"], 20 | cmd = "cp $< $@", 21 | ) 22 | -------------------------------------------------------------------------------- /storm-compatibility-examples/v2.2.0/src/java/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_binary") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | java_binary( 6 | name = "heron-storm-compatibility-examples-unshaded", 7 | srcs = glob(["**/*.java"]), 8 | create_executable = 0, 9 | deps = [ 10 | "//heron/api/src/java:api-java-low-level", 11 | "//heron/common/src/java:basics-java", 12 | "//storm-compatibility/v2.2.0/src/java:storm-compatibility-java", 13 | ], 14 | ) 15 | 16 | genrule( 17 | name = "heron-storm-compatibility-examples", 18 | srcs = [":heron-storm-compatibility-examples-unshaded_deploy.jar"], 19 | outs = ["heron-storm-compatibility-examples.jar"], 20 | cmd = "cp $< $@", 21 | ) 22 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/backtype/storm/metric/api/ICombiner.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package backtype.storm.metric.api; 21 | 22 | public interface ICombiner { 23 | T identity(); 24 | 25 | T combine(T a, T b); 26 | } 27 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/backtype/storm/metric/api/IMetric.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package backtype.storm.metric.api; 21 | 22 | public interface IMetric { 23 | Object getValueAndReset(); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/backtype/storm/spout/IMultiSchemableSpout.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package backtype.storm.spout; 21 | 22 | public interface IMultiSchemableSpout { 23 | MultiScheme getScheme(); 24 | 25 | void setScheme(MultiScheme scheme); 26 | } 27 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/backtype/storm/task/IErrorReporter.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package backtype.storm.task; 21 | 22 | public interface IErrorReporter { 23 | void reportError(Throwable error); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/backtype/storm/topology/BoltDeclarer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package backtype.storm.topology; 21 | 22 | public interface BoltDeclarer extends 23 | InputDeclarer, ComponentConfigurationDeclarer { 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/backtype/storm/topology/SpoutDeclarer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package backtype.storm.topology; 21 | 22 | public interface SpoutDeclarer extends ComponentConfigurationDeclarer { 23 | } 24 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/clojure/lang/Atom.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package clojure.lang; 21 | 22 | public class Atom { 23 | } 24 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/org/apache/storm/clojure/lang/Atom.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.clojure.lang; 21 | 22 | public class Atom { 23 | } 24 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/org/apache/storm/metric/api/ICombiner.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.metric.api; 21 | 22 | public interface ICombiner { 23 | T identity(); 24 | 25 | T combine(T a, T b); 26 | } 27 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/org/apache/storm/metric/api/IMetric.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.metric.api; 21 | 22 | public interface IMetric { 23 | Object getValueAndReset(); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/org/apache/storm/task/IErrorReporter.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.task; 21 | 22 | public interface IErrorReporter { 23 | void reportError(Throwable error); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/org/apache/storm/topology/SpoutDeclarer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.topology; 21 | 22 | public interface SpoutDeclarer extends ComponentConfigurationDeclarer { 23 | } 24 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/org/apache/storm/trident/spout/ISpoutPartition.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.trident.spout; 21 | 22 | public interface ISpoutPartition { 23 | String getId(); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v0.10.2/src/java/storm/trident/spout/ISpoutPartition.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package storm.trident.spout; 21 | 22 | public interface ISpoutPartition { 23 | String getId(); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v2.2.0/src/java/org/apache/storm/clojure/lang/Atom.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.clojure.lang; 21 | 22 | public class Atom { 23 | } 24 | -------------------------------------------------------------------------------- /storm-compatibility/v2.2.0/src/java/org/apache/storm/metric/api/ICombiner.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.metric.api; 21 | 22 | public interface ICombiner { 23 | T identity(); 24 | 25 | T combine(T a, T b); 26 | } 27 | -------------------------------------------------------------------------------- /storm-compatibility/v2.2.0/src/java/org/apache/storm/metric/api/IMetric.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.metric.api; 21 | 22 | public interface IMetric { 23 | Object getValueAndReset(); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v2.2.0/src/java/org/apache/storm/task/IErrorReporter.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.task; 21 | 22 | public interface IErrorReporter { 23 | void reportError(Throwable error); 24 | } 25 | -------------------------------------------------------------------------------- /storm-compatibility/v2.2.0/src/java/org/apache/storm/topology/SpoutDeclarer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.topology; 21 | 22 | public interface SpoutDeclarer extends ComponentConfigurationDeclarer { 23 | } 24 | -------------------------------------------------------------------------------- /storm-compatibility/v2.2.0/src/java/org/apache/storm/trident/spout/ISpoutPartition.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package org.apache.storm.trident.spout; 21 | 22 | public interface ISpoutPartition { 23 | String getId(); 24 | } 25 | -------------------------------------------------------------------------------- /third_party/cereal/cereal.BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_library( 6 | name = "cereal-cxx", 7 | hdrs = glob(["include/cereal/**/*.hpp"]) + glob(["include/cereal/**/*.h"]), 8 | includes = ["include"], 9 | linkstatic = 1, 10 | ) 11 | -------------------------------------------------------------------------------- /third_party/cppcheck/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "heron-cppcheck", 7 | srcs = ["@com_github_danmar_cppcheck//:cppcheck-checker"], 8 | ) 9 | -------------------------------------------------------------------------------- /third_party/cppcheck/cppcheck.BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | install_script = "\n".join([ 6 | "cd external/com_github_danmar_cppcheck", 7 | "make MATCHCOMPILER=yes CFGDIR=cfg CXXFLAGS='-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function'", 8 | "cd ../..", 9 | "rm -rf ../../$(@D)/*", 10 | "cp -R ./external/com_github_danmar_cppcheck/* $(@D)", 11 | ]) 12 | 13 | genrule( 14 | name = "cppcheck-checker", 15 | srcs = [], 16 | outs = ["cppcheck"], 17 | executable = 1, 18 | cmd = install_script, 19 | ) -------------------------------------------------------------------------------- /third_party/helm/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "helm", 7 | srcs = select({ 8 | "@platforms//os:osx": ["@helm_mac//:helm-exec"], 9 | "//conditions:default": ["@helm_linux//:helm-exec"], 10 | }), 11 | ) 12 | -------------------------------------------------------------------------------- /third_party/helm/helm.BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "helm-exec", 7 | srcs = ["helm"], 8 | ) 9 | -------------------------------------------------------------------------------- /third_party/hopscotch-hashmap/hopscotch.BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_library( 6 | name = "hopscotch-hashmap", 7 | hdrs = glob([ 8 | "include/tsl/*.h", 9 | ]), 10 | includes = ["include"], 11 | linkstatic = 1, 12 | ) 13 | -------------------------------------------------------------------------------- /third_party/java/Empty.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // bazel java_binary rule requires src files 21 | // Empty.java act as this src file to build the binary 22 | -------------------------------------------------------------------------------- /third_party/java/bazel/BUILD: -------------------------------------------------------------------------------- 1 | load("//tools/rules:genproto.bzl", "proto_library") 2 | load("@rules_java//java:defs.bzl", "java_library") 3 | 4 | licenses(["notice"]) 5 | 6 | package(default_visibility = ["//visibility:public"]) 7 | 8 | proto_library( 9 | name = "extra_actions_proto", 10 | src = "extra_actions_base.proto", 11 | gen_cc = 0, 12 | gen_java = 1, 13 | gen_py = 0, 14 | ) 15 | 16 | java_library( 17 | name = "proto_java", 18 | srcs = ["Empty.java"], 19 | exports = [ 20 | "@com_google_protobuf//:protobuf_java", 21 | ], 22 | deps = [ 23 | ":extra_actions_proto_java", 24 | "@com_google_protobuf//:protobuf_java", 25 | ], 26 | ) 27 | -------------------------------------------------------------------------------- /third_party/java/bazel/Empty.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | // bazel java_binary rule requires src files 21 | // Empty.java act as this src file to build the binary 22 | -------------------------------------------------------------------------------- /third_party/kashmir/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | -------------------------------------------------------------------------------- /third_party/kashmir/kashmir-random-fix.patch: -------------------------------------------------------------------------------- 1 | diff -Naur a/kashmir/devrandom.h b/kashmir/devrandom.h 2 | --- a/kashmir/devrandom.h 2020-08-12 21:56:17.449211882 +0100 3 | +++ b/kashmir/devrandom.h 2020-08-12 21:56:33.729030394 +0100 4 | @@ -31,7 +31,7 @@ 5 | std::ifstream file; 6 | 7 | public: 8 | - DevRandom() : file("/dev/random", std::ios::binary) 9 | + DevRandom() : file("/dev/urandom", std::ios::binary) 10 | { 11 | if (!file) 12 | throw std::runtime_error("failed to open random device."); 13 | 14 | -------------------------------------------------------------------------------- /third_party/kashmir/kashmir.BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_cc//cc:defs.bzl", "cc_library") 2 | 3 | licenses(["notice"]) 4 | 5 | package(default_visibility = ["//visibility:public"]) 6 | 7 | include_files = glob(["kashmir/*.h"]) 8 | 9 | cc_library( 10 | name = "kashmir-cxx", 11 | srcs = [], 12 | hdrs = glob(["kashmir/*.h"]), 13 | copts = [ 14 | "-Ithird_party", 15 | "-I.", 16 | ], 17 | linkstatic = 1, 18 | ) 19 | 20 | filegroup( 21 | name = "kashmir-files", 22 | srcs = include_files, 23 | ) 24 | -------------------------------------------------------------------------------- /third_party/libunwind/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["permissive"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | filegroup( 6 | name = "libunwind-files", 7 | srcs = ["@org_nongnu_libunwind//:libunwind-files"], 8 | ) 9 | -------------------------------------------------------------------------------- /third_party/python/cpplint/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | pex_binary( 6 | name = "cpplint", 7 | entrypoint = "cpplint", 8 | reqs = ["cpplint==1.3.0"], 9 | ) 10 | -------------------------------------------------------------------------------- /third_party/python/pylint/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) # apache 2.0 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | pex_binary( 6 | name = "pylint", 7 | entrypoint = "pylint", 8 | reqs = ["pylint==2.13.4"], 9 | ) 10 | -------------------------------------------------------------------------------- /third_party/yaml-cpp/yaml.BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | cc_library( 6 | name = "yaml-cxx", 7 | srcs = glob([ 8 | "src/**/*.cpp", 9 | "src/**/*.h", 10 | ]), 11 | hdrs = glob([ 12 | "include/**/*.h", 13 | ]), 14 | includes = ["include"], 15 | linkstatic = 1, 16 | ) 17 | -------------------------------------------------------------------------------- /tools/BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/tools/BUILD -------------------------------------------------------------------------------- /tools/build_rules/BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apache/incubator-heron/1c5779dcdf19eed888412f3d87b31ebb4b00e07e/tools/build_rules/BUILD -------------------------------------------------------------------------------- /tools/java/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | action_listener( 6 | name = "compile_java", 7 | extra_actions = [":checkstyle_java"], 8 | mnemonics = ["Javac"], 9 | ) 10 | 11 | extra_action( 12 | name = "checkstyle_java", 13 | cmd = "$(execpath //tools/java/src/org/apache/bazel/checkstyle:checkstyle_java) " + 14 | "--extra_action_file $(EXTRA_ACTION_FILE) " + 15 | "--heron_checkstyle_config_file tools/java/src/org/apache/bazel/checkstyle/heron_coding_style.xml " + 16 | "--apache_checkstyle_config_file tools/java/src/org/apache/bazel/checkstyle/apache_coding_style.xml", 17 | requires_action_output = True, 18 | tools = [ 19 | "//tools/java/src/org/apache/bazel/checkstyle:checkstyle_java", 20 | ], 21 | ) 22 | -------------------------------------------------------------------------------- /tools/java/src/org/apache/bazel/checkstyle/apache_header.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | *

10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | *

12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ -------------------------------------------------------------------------------- /tools/java/src/org/apache/bazel/checkstyle/heron_header.txt: -------------------------------------------------------------------------------- 1 | \/\*\* 2 | \*\s+Licensed to the Apache Software Foundation \(ASF\) under one 3 | \*\s+or more contributor license agreements\. See the NOTICE file 4 | \*\s+distributed with this work for additional information 5 | \*\s+regarding copyright ownership\. The ASF licenses this file 6 | \*\s+to you under the Apache License, Version 2\.0 \(the 7 | \*\s+"License"\); you may not use this file except in compliance 8 | \*\s+with the License\. You may obtain a copy of the License at 9 | \* 10 | \* http:\/\/www.apache.org\/licenses\/LICENSE-2\.0 11 | \* 12 | \*\s+Unless required by applicable law or agreed to in writing, 13 | \*\s+software distributed under the License is distributed on an 14 | \*\s+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | \*\s+KIND, either express or implied\. See the License for the 16 | \*\s+specific language governing permissions and limitations 17 | \*\s+under the License\. 18 | \*\/ 19 | -------------------------------------------------------------------------------- /tools/java/src/org/apache/bazel/cppcheck/BUILD: -------------------------------------------------------------------------------- 1 | load("@rules_java//java:defs.bzl", "java_binary") 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | common_deps = [ 6 | "@maven//:commons_cli_commons_cli", 7 | "@maven//:commons_lang_commons_lang", 8 | "@maven//:com_google_guava_guava", 9 | "//third_party/java/bazel:extra_actions_proto_java", 10 | "//third_party/java/bazel:proto_java", 11 | "//tools/java/src/org/apache/bazel/checkstyle:util", 12 | ] 13 | 14 | java_binary( 15 | name = "cppcheck_cpp", 16 | srcs = ["CppCheck.java"], 17 | main_class = "org.apache.bazel.cppcheck.CppCheck", 18 | deps = common_deps, 19 | ) 20 | -------------------------------------------------------------------------------- /tools/platform/BUILD: -------------------------------------------------------------------------------- 1 | package(default_visibility = ["//visibility:public"]) 2 | 3 | # config_setting( 4 | # name = "osx_x86_64", 5 | # constraint_values = { 6 | # "@platforms//arch:x86_64", 7 | # "@platforms//os:osx", 8 | # }, 9 | # visibility = ["//visibility:public"], 10 | # ) 11 | 12 | # config_setting( 13 | # name = "osx_arm", 14 | # constraint_values = { 15 | # "@platforms//arch:armv6-m1", 16 | # "@platforms//os:osx", 17 | # }, 18 | # visibility = ["//visibility:public"], 19 | # ) 20 | 21 | config_setting( 22 | name = "linux_x86_64", 23 | constraint_values = { 24 | "@platforms//arch:x86_64", 25 | "@platforms//os:linux", 26 | }, 27 | values = { 28 | "linkopt": "-lm", 29 | "linkopt": "-lpthread", 30 | "linkopt": "-lrt", 31 | } 32 | visibility = ["//visibility:public"], 33 | ) 34 | -------------------------------------------------------------------------------- /tools/python/BUILD: -------------------------------------------------------------------------------- 1 | licenses(["notice"]) 2 | 3 | package(default_visibility = ["//visibility:public"]) 4 | 5 | action_listener( 6 | name = "compile_python", 7 | extra_actions = [":checkstyle_python"], 8 | mnemonics = ["PexPython"], 9 | ) 10 | 11 | extra_action( 12 | name = "checkstyle_python", 13 | cmd = "$(execpath //tools/java/src/org/apache/bazel/checkstyle:checkstyle_python) " + 14 | "--extra_action_file $(EXTRA_ACTION_FILE) " + 15 | "--pylint_file $$(pwd)/$(execpath //third_party/python/pylint)", 16 | requires_action_output = True, 17 | tools = [ 18 | "//third_party/python/pylint", 19 | "//tools/java/src/org/apache/bazel/checkstyle:checkstyle_python", 20 | ], 21 | ) 22 | -------------------------------------------------------------------------------- /tools/rules/BUILD: -------------------------------------------------------------------------------- 1 | exports_files(["java_tests.bzl"]) 2 | -------------------------------------------------------------------------------- /tools/rules/build_defs.bzl: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one 2 | # or more contributor license agreements. See the NOTICE file 3 | # distributed with this work for additional information 4 | # regarding copyright ownership. The ASF licenses this file 5 | # to you under the Apache License, Version 2.0 (the 6 | # "License"); you may not use this file except in compliance 7 | # with the License. You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, 12 | # software distributed under the License is distributed on an 13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 | # KIND, either express or implied. See the License for the 15 | # specific language governing permissions and limitations 16 | # under the License. 17 | 18 | """This file defines constants for the javadoc build""" 19 | 20 | DOCLINT_HTML_AND_SYNTAX = ["-Xdoclint:none"] 21 | 22 | DOCLINT_REFERENCES = ["-Xdoclint:none"] 23 | -------------------------------------------------------------------------------- /tools/rules/pex/wrapper/README: -------------------------------------------------------------------------------- 1 | This readme file is just to make setuptools shut up. 2 | -------------------------------------------------------------------------------- /vagrant/.gitignore: -------------------------------------------------------------------------------- 1 | /.vagrant 2 | --------------------------------------------------------------------------------