Copy disabled (too large)
Download .txt
Showing preview only (48,592K chars total). Download the full file to get everything.
Repository: apache/incubator-rocketmq-externals
Branch: master
Commit: 82c09225e61e
Files: 4748
Total size: 45.1 MB
Directory structure:
gitextract_xsbb2xua/
├── .github/
│ ├── ISSUE_TEMPLATE.md
│ └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .travis.yml
├── README.md
├── dev/
│ └── merge_rocketmq_pr.py
├── docs/
│ └── connect/
│ └── cn/
│ └── README.md
├── logappender/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── rocketmq/
│ │ └── logappender/
│ │ ├── common/
│ │ │ └── ProducerInstance.java
│ │ ├── log4j/
│ │ │ └── RocketmqLog4jAppender.java
│ │ ├── log4j2/
│ │ │ └── RocketmqLog4j2Appender.java
│ │ └── logback/
│ │ └── RocketmqLogbackAppender.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── rocketmq/
│ │ └── logappender/
│ │ ├── AbstractTestCase.java
│ │ ├── Log4jPropertiesTest.java
│ │ ├── Log4jTest.java
│ │ ├── Log4jXmlTest.java
│ │ ├── LogbackTest.java
│ │ └── log4j2Test.java
│ └── resources/
│ ├── log4j-example.properties
│ ├── log4j-example.xml
│ ├── log4j2-example.xml
│ └── logback-example.xml
├── rocketmq-ansible/
│ ├── Rocketmq Ansible Playbook cn.md
│ ├── Rocketmq Ansible Playbook en.md
│ ├── broker.yml
│ ├── exporter.yml
│ ├── hosts
│ ├── namesrv.yml
│ ├── rocketmq.yml
│ ├── roles/
│ │ ├── broker/
│ │ │ ├── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── templates/
│ │ │ │ ├── broker.conf.j2
│ │ │ │ ├── logback_broker.xml.j2
│ │ │ │ └── mqbroker.service
│ │ │ └── vars/
│ │ │ └── main.yml
│ │ ├── exporter/
│ │ │ ├── files/
│ │ │ │ └── mqexportershutdown.sh
│ │ │ ├── tasks/
│ │ │ │ └── main.yml
│ │ │ ├── templates/
│ │ │ │ ├── mqexporter.service
│ │ │ │ └── mqexporter.sh.j2
│ │ │ └── vars/
│ │ │ └── main.yml
│ │ └── namesrv/
│ │ ├── tasks/
│ │ │ └── main.yml
│ │ ├── templates/
│ │ │ ├── logback_namesrv.xml.j2
│ │ │ └── mqnamesrv.service
│ │ └── vars/
│ │ └── main.yml
│ └── vars/
│ └── main.yml
├── rocketmq-beats-integration/
│ ├── README.md
│ └── libbeat/
│ └── outputs/
│ └── rocketmq/
│ ├── LICENSE
│ ├── NOTICE
│ ├── client.go
│ ├── config.go
│ └── rocketmq.go
├── rocketmq-cloudevents-binding/
│ ├── pom.xml
│ ├── rocketmq-transport-binding.md
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── rocketmq/
│ │ └── cloudevent/
│ │ ├── RocketMQMessageFactory.java
│ │ └── impl/
│ │ ├── RocketMQBinaryMessageReader.java
│ │ ├── RocketMQHeaders.java
│ │ └── RocketMQMessageWriter.java
│ └── test/
│ └── java/
│ └── org/
│ └── apache/
│ └── rocketmq/
│ └── cloudevent/
│ ├── RocketMQMessageWriterTest.java
│ └── RocketmqMessageFactoryTest.java
├── rocketmq-flume/
│ ├── .gitignore
│ ├── LICENSE
│ ├── LICENSE-BIN
│ ├── NOTICE
│ ├── NOTICE-BIN
│ ├── README.md
│ ├── pom.xml
│ ├── rocketmq-flume-sink/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── flume/
│ │ │ └── ng/
│ │ │ └── sink/
│ │ │ ├── RocketMQSink.java
│ │ │ └── RocketMQSinkConstants.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── flume/
│ │ │ └── ng/
│ │ │ └── sink/
│ │ │ └── RocketMQSinkTest.java
│ │ └── resources/
│ │ └── log4j.properties
│ ├── rocketmq-flume-source/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── flume/
│ │ │ └── ng/
│ │ │ └── source/
│ │ │ ├── RocketMQSource.java
│ │ │ └── RocketMQSourceConstants.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── flume/
│ │ │ └── ng/
│ │ │ └── source/
│ │ │ └── RocketMQSourceTest.java
│ │ └── resources/
│ │ └── log4j.properties
│ └── style/
│ ├── copyright/
│ │ ├── Apache.xml
│ │ └── profiles_settings.xml
│ ├── rmq_checkstyle.xml
│ └── rmq_codeStyle.xml
├── rocketmq-hbase/
│ ├── README.md
│ ├── pom.xml
│ ├── rocketmq-hbase-sink/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── hbase/
│ │ │ └── sink/
│ │ │ ├── DataRow.java
│ │ │ ├── Replicator.java
│ │ │ ├── RocketMQProducer.java
│ │ │ └── Transaction.java
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── rocketmq/
│ │ └── sink/
│ │ └── ReplicatorTest.java
│ ├── rocketmq-hbase-source/
│ │ ├── LICENSE-BIN
│ │ ├── NOTICE-BIN
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── assembly/
│ │ │ │ ├── assembly.xml
│ │ │ │ └── scripts/
│ │ │ │ ├── start.sh
│ │ │ │ └── stop.sh
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── rocketmq/
│ │ │ │ └── hbase/
│ │ │ │ └── source/
│ │ │ │ ├── Config.java
│ │ │ │ ├── HBaseClient.java
│ │ │ │ ├── MessageProcessor.java
│ │ │ │ ├── RocketMQConsumer.java
│ │ │ │ └── RocketMQSource.java
│ │ │ └── resources/
│ │ │ ├── logback.xml
│ │ │ └── rocketmq_hbase.conf
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── rocketmq/
│ │ └── hbase/
│ │ └── source/
│ │ └── RocketMQSourceTest.java
│ └── style/
│ ├── copyright/
│ │ ├── Apache.xml
│ │ └── profiles_settings.xml
│ ├── rmq_checkstyle.xml
│ └── rmq_codeStyle.xml
├── rocketmq-iot-bridge/
│ ├── .gitignore
│ ├── README.md
│ ├── docs/
│ │ ├── architecture.md
│ │ └── index.md
│ ├── docs-cn/
│ │ ├── architecture.md
│ │ └── index.md
│ ├── pom.xml
│ ├── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── iot/
│ │ │ ├── MQTTBridge.java
│ │ │ ├── common/
│ │ │ │ ├── configuration/
│ │ │ │ │ ├── ChannelConfiguration.java
│ │ │ │ │ └── MQTTBridgeConfiguration.java
│ │ │ │ ├── data/
│ │ │ │ │ └── Message.java
│ │ │ │ └── util/
│ │ │ │ └── MessageUtil.java
│ │ │ ├── connection/
│ │ │ │ └── client/
│ │ │ │ ├── Client.java
│ │ │ │ ├── ClientManager.java
│ │ │ │ └── impl/
│ │ │ │ └── ClientManagerImpl.java
│ │ │ ├── example/
│ │ │ │ ├── MqttSampleConsumer.java
│ │ │ │ └── MqttSampleProducer.java
│ │ │ ├── protocol/
│ │ │ │ └── mqtt/
│ │ │ │ ├── constant/
│ │ │ │ │ └── MqttConstant.java
│ │ │ │ ├── data/
│ │ │ │ │ ├── Bridge.java
│ │ │ │ │ ├── MqttClient.java
│ │ │ │ │ └── Subscription.java
│ │ │ │ ├── event/
│ │ │ │ │ └── DisconnectChannelEvent.java
│ │ │ │ └── handler/
│ │ │ │ ├── MessageDispatcher.java
│ │ │ │ ├── MessageHandler.java
│ │ │ │ ├── MqttConnectionHandler.java
│ │ │ │ ├── MqttIdleHandler.java
│ │ │ │ └── downstream/
│ │ │ │ ├── SendCallback.java
│ │ │ │ └── impl/
│ │ │ │ ├── MqttConnectMessageHandler.java
│ │ │ │ ├── MqttDisconnectMessageHandler.java
│ │ │ │ ├── MqttMessageForwarder.java
│ │ │ │ ├── MqttMessageSender.java
│ │ │ │ ├── MqttPingreqMessageHandler.java
│ │ │ │ ├── MqttPubackMessageHandler.java
│ │ │ │ ├── MqttPubcompMessageHandler.java
│ │ │ │ ├── MqttPublishMessageHandler.java
│ │ │ │ ├── MqttPubrecMessageHandler.java
│ │ │ │ ├── MqttPubrelMessageHandler.java
│ │ │ │ ├── MqttSubscribeMessageHandler.java
│ │ │ │ └── MqttUnsubscribeMessagHandler.java
│ │ │ └── storage/
│ │ │ ├── message/
│ │ │ │ ├── MessageStore.java
│ │ │ │ └── cache/
│ │ │ │ └── MessageCache.java
│ │ │ └── subscription/
│ │ │ ├── SubscriptionStore.java
│ │ │ └── impl/
│ │ │ └── InMemorySubscriptionStore.java
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── rocketmq/
│ │ └── iot/
│ │ ├── connection/
│ │ │ └── client/
│ │ │ └── ClientManagerTest.java
│ │ ├── integration/
│ │ │ ├── ConsumeMessageIntegrationTest.java
│ │ │ ├── ProduceMessageIntegrationTest.java
│ │ │ └── PubSubIntegrationTest.java
│ │ ├── protocol/
│ │ │ └── mqtt/
│ │ │ └── handler/
│ │ │ ├── MqttConnectionHandlerTest.java
│ │ │ ├── MqttDispatcherTest.java
│ │ │ ├── MqttIdleHandlerTest.java
│ │ │ └── downstream/
│ │ │ ├── AbstractMqttMessageHandlerTest.java
│ │ │ ├── MqttConnectMessageHandlerTest.java
│ │ │ ├── MqttDisconnectMessageHandlerTest.java
│ │ │ ├── MqttMessageForwarderTest.java
│ │ │ ├── MqttPingreqMessageHandlerTest.java
│ │ │ ├── MqttSubscribeMessageHandlerTest.java
│ │ │ └── MqttUnsubscribeMessageHandlerTest.java
│ │ └── storage/
│ │ └── subscription/
│ │ └── InMemorySubscriptionTest.java
│ └── style/
│ ├── copyright/
│ │ ├── Apache.xml
│ │ └── profiles_settings.xml
│ ├── rmq_checkstyle.xml
│ └── rmq_codeStyle.xml
├── rocketmq-jms/
│ ├── .gitignore
│ ├── .travis.yml
│ ├── README.md
│ ├── core/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── rocketmq/
│ │ │ │ └── jms/
│ │ │ │ ├── domain/
│ │ │ │ │ ├── CommonConstant.java
│ │ │ │ │ ├── CommonContext.java
│ │ │ │ │ ├── JmsBaseConnection.java
│ │ │ │ │ ├── JmsBaseConnectionFactory.java
│ │ │ │ │ ├── JmsBaseConnectionMetaData.java
│ │ │ │ │ ├── JmsBaseConstant.java
│ │ │ │ │ ├── JmsBaseMessageConsumer.java
│ │ │ │ │ ├── JmsBaseMessageProducer.java
│ │ │ │ │ ├── JmsBaseSession.java
│ │ │ │ │ ├── JmsBaseTopic.java
│ │ │ │ │ ├── RMQPushConsumerExt.java
│ │ │ │ │ └── message/
│ │ │ │ │ ├── JmsBaseMessage.java
│ │ │ │ │ ├── JmsBytesMessage.java
│ │ │ │ │ ├── JmsObjectMessage.java
│ │ │ │ │ └── JmsTextMessage.java
│ │ │ │ └── util/
│ │ │ │ ├── ExceptionUtil.java
│ │ │ │ ├── MessageConverter.java
│ │ │ │ ├── MsgConvertUtil.java
│ │ │ │ └── URISpecParser.java
│ │ │ └── resources/
│ │ │ └── application.conf
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── rocketmq/
│ │ └── jms/
│ │ ├── JmsTestListener.java
│ │ ├── JmsTestUtil.java
│ │ ├── domain/
│ │ │ └── message/
│ │ │ ├── JmsBytesMessageTest.java
│ │ │ ├── JmsMessageConvertTest.java
│ │ │ ├── JmsObjectMessageTest.java
│ │ │ └── JmsTextMessageTest.java
│ │ ├── integration/
│ │ │ ├── IntegrationTestBase.java
│ │ │ ├── JmsClientIT.java
│ │ │ └── JmsConsumerIT.java
│ │ └── util/
│ │ └── URISpecParserTest.java
│ ├── pom.xml
│ ├── spring/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── jms/
│ │ │ └── spring/
│ │ │ └── SimpleExMessageListenerContainer.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── rocketmq/
│ │ │ └── jms/
│ │ │ └── spring/
│ │ │ ├── JmsConsumeIT.java
│ │ │ ├── JmsProduceIT.java
│ │ │ └── SpringTestBase.java
│ │ └── resources/
│ │ ├── consumer.xml
│ │ └── producer.xml
│ └── style/
│ ├── copyright/
│ │ ├── Apache.xml
│ │ └── profiles_settings.xml
│ ├── rmq_checkstyle.xml
│ └── rmq_codeStyle.xml
├── rocketmq-knative/
│ └── source/
│ ├── Dockerfile.adapter
│ ├── Dockerfile.controller
│ ├── README.md
│ ├── cmd/
│ │ ├── controller/
│ │ │ └── main.go
│ │ └── receive_adapter/
│ │ └── main.go
│ ├── config/
│ │ ├── 200-serviceaccount.yaml
│ │ ├── 201-clusterrole.yaml
│ │ ├── 202-clusterrolebinding.yaml
│ │ ├── 300-rocketmqsource.yaml
│ │ ├── 400-controller-service.yaml
│ │ ├── 500-controller.yaml
│ │ └── 600-istioegress.yaml
│ ├── pkg/
│ │ ├── adapter/
│ │ │ └── adapter.go
│ │ ├── apis/
│ │ │ ├── addtoscheme_eventing_v1alpha1.go
│ │ │ ├── addtoscheme_sources_v1alpha1.go
│ │ │ ├── apis.go
│ │ │ └── sources/
│ │ │ ├── group.go
│ │ │ └── v1alpha1/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── rocketmqsource_types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── client/
│ │ │ ├── clientset/
│ │ │ │ └── versioned/
│ │ │ │ ├── clientset.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── scheme/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── register.go
│ │ │ │ └── typed/
│ │ │ │ └── sources/
│ │ │ │ └── v1alpha1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated_expansion.go
│ │ │ │ ├── rocketmqsource.go
│ │ │ │ └── sources_client.go
│ │ │ ├── informers/
│ │ │ │ └── externalversions/
│ │ │ │ ├── factory.go
│ │ │ │ ├── generic.go
│ │ │ │ ├── internalinterfaces/
│ │ │ │ │ └── factory_interfaces.go
│ │ │ │ └── sources/
│ │ │ │ ├── interface.go
│ │ │ │ └── v1alpha1/
│ │ │ │ ├── interface.go
│ │ │ │ └── rocketmqsource.go
│ │ │ └── listers/
│ │ │ └── sources/
│ │ │ └── v1alpha1/
│ │ │ ├── expansion_generated.go
│ │ │ └── rocketmqsource.go
│ │ ├── controller/
│ │ │ ├── sdk/
│ │ │ │ ├── finalizers_accessor.go
│ │ │ │ ├── provider.go
│ │ │ │ ├── reconciler.go
│ │ │ │ └── status_accessor.go
│ │ │ ├── sinks/
│ │ │ │ ├── sinks.go
│ │ │ │ └── sinks_test.go
│ │ │ └── testing/
│ │ │ ├── mock_client.go
│ │ │ └── table.go
│ │ ├── kncloudevents/
│ │ │ └── good_client.go
│ │ └── reconciler/
│ │ ├── creds.go
│ │ ├── eventtype/
│ │ │ ├── eventtype.go
│ │ │ └── resources/
│ │ │ └── eventtype.go
│ │ ├── resources/
│ │ │ └── receive_adapter.go
│ │ └── rocketmqsource.go
│ ├── sample/
│ │ ├── apacherocketmqsource.yaml
│ │ └── event-display.yaml
│ └── vendor/
│ ├── cloud.google.com/
│ │ └── go/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── compute/
│ │ │ └── metadata/
│ │ │ └── metadata.go
│ │ ├── iam/
│ │ │ └── iam.go
│ │ ├── internal/
│ │ │ ├── optional/
│ │ │ │ └── optional.go
│ │ │ └── version/
│ │ │ └── version.go
│ │ └── pubsub/
│ │ ├── apiv1/
│ │ │ ├── doc.go
│ │ │ ├── path_funcs.go
│ │ │ ├── publisher_client.go
│ │ │ └── subscriber_client.go
│ │ ├── doc.go
│ │ ├── flow_controller.go
│ │ ├── go18.go
│ │ ├── internal/
│ │ │ └── distribution/
│ │ │ └── distribution.go
│ │ ├── iterator.go
│ │ ├── message.go
│ │ ├── not_go18.go
│ │ ├── pubsub.go
│ │ ├── pullstream.go
│ │ ├── service.go
│ │ ├── snapshot.go
│ │ ├── subscription.go
│ │ └── topic.go
│ ├── github.com/
│ │ ├── DataDog/
│ │ │ └── zstd/
│ │ │ ├── LICENSE
│ │ │ ├── bitstream.h
│ │ │ ├── compiler.h
│ │ │ ├── cover.c
│ │ │ ├── cpu.h
│ │ │ ├── divsufsort.c
│ │ │ ├── divsufsort.h
│ │ │ ├── entropy_common.c
│ │ │ ├── error_private.c
│ │ │ ├── error_private.h
│ │ │ ├── errors.go
│ │ │ ├── fse.h
│ │ │ ├── fse_compress.c
│ │ │ ├── fse_decompress.c
│ │ │ ├── huf.h
│ │ │ ├── huf_compress.c
│ │ │ ├── huf_decompress.c
│ │ │ ├── mem.h
│ │ │ ├── pool.c
│ │ │ ├── pool.h
│ │ │ ├── threading.c
│ │ │ ├── threading.h
│ │ │ ├── xxhash.c
│ │ │ ├── xxhash.h
│ │ │ ├── zbuff.h
│ │ │ ├── zbuff_common.c
│ │ │ ├── zbuff_compress.c
│ │ │ ├── zbuff_decompress.c
│ │ │ ├── zdict.c
│ │ │ ├── zdict.h
│ │ │ ├── zstd.go
│ │ │ ├── zstd.h
│ │ │ ├── zstd_common.c
│ │ │ ├── zstd_compress.c
│ │ │ ├── zstd_compress_internal.h
│ │ │ ├── zstd_decompress.c
│ │ │ ├── zstd_double_fast.c
│ │ │ ├── zstd_double_fast.h
│ │ │ ├── zstd_errors.h
│ │ │ ├── zstd_fast.c
│ │ │ ├── zstd_fast.h
│ │ │ ├── zstd_internal.h
│ │ │ ├── zstd_lazy.c
│ │ │ ├── zstd_lazy.h
│ │ │ ├── zstd_ldm.c
│ │ │ ├── zstd_ldm.h
│ │ │ ├── zstd_legacy.h
│ │ │ ├── zstd_opt.c
│ │ │ ├── zstd_opt.h
│ │ │ ├── zstd_stream.go
│ │ │ ├── zstd_v01.c
│ │ │ ├── zstd_v01.h
│ │ │ ├── zstd_v02.c
│ │ │ ├── zstd_v02.h
│ │ │ ├── zstd_v03.c
│ │ │ ├── zstd_v03.h
│ │ │ ├── zstd_v04.c
│ │ │ ├── zstd_v04.h
│ │ │ ├── zstd_v05.c
│ │ │ ├── zstd_v05.h
│ │ │ ├── zstd_v06.c
│ │ │ ├── zstd_v06.h
│ │ │ ├── zstd_v07.c
│ │ │ ├── zstd_v07.h
│ │ │ ├── zstdmt_compress.c
│ │ │ └── zstdmt_compress.h
│ │ ├── Shopify/
│ │ │ └── sarama/
│ │ │ ├── LICENSE
│ │ │ ├── acl_bindings.go
│ │ │ ├── acl_create_request.go
│ │ │ ├── acl_create_response.go
│ │ │ ├── acl_delete_request.go
│ │ │ ├── acl_delete_response.go
│ │ │ ├── acl_describe_request.go
│ │ │ ├── acl_describe_response.go
│ │ │ ├── acl_filter.go
│ │ │ ├── acl_types.go
│ │ │ ├── add_offsets_to_txn_request.go
│ │ │ ├── add_offsets_to_txn_response.go
│ │ │ ├── add_partitions_to_txn_request.go
│ │ │ ├── add_partitions_to_txn_response.go
│ │ │ ├── admin.go
│ │ │ ├── alter_configs_request.go
│ │ │ ├── alter_configs_response.go
│ │ │ ├── api_versions_request.go
│ │ │ ├── api_versions_response.go
│ │ │ ├── async_producer.go
│ │ │ ├── balance_strategy.go
│ │ │ ├── broker.go
│ │ │ ├── client.go
│ │ │ ├── compress.go
│ │ │ ├── config.go
│ │ │ ├── config_resource_type.go
│ │ │ ├── consumer.go
│ │ │ ├── consumer_group.go
│ │ │ ├── consumer_group_members.go
│ │ │ ├── consumer_metadata_request.go
│ │ │ ├── consumer_metadata_response.go
│ │ │ ├── crc32_field.go
│ │ │ ├── create_partitions_request.go
│ │ │ ├── create_partitions_response.go
│ │ │ ├── create_topics_request.go
│ │ │ ├── create_topics_response.go
│ │ │ ├── decompress.go
│ │ │ ├── delete_groups_request.go
│ │ │ ├── delete_groups_response.go
│ │ │ ├── delete_records_request.go
│ │ │ ├── delete_records_response.go
│ │ │ ├── delete_topics_request.go
│ │ │ ├── delete_topics_response.go
│ │ │ ├── describe_configs_request.go
│ │ │ ├── describe_configs_response.go
│ │ │ ├── describe_groups_request.go
│ │ │ ├── describe_groups_response.go
│ │ │ ├── encoder_decoder.go
│ │ │ ├── end_txn_request.go
│ │ │ ├── end_txn_response.go
│ │ │ ├── errors.go
│ │ │ ├── fetch_request.go
│ │ │ ├── fetch_response.go
│ │ │ ├── find_coordinator_request.go
│ │ │ ├── find_coordinator_response.go
│ │ │ ├── heartbeat_request.go
│ │ │ ├── heartbeat_response.go
│ │ │ ├── init_producer_id_request.go
│ │ │ ├── init_producer_id_response.go
│ │ │ ├── join_group_request.go
│ │ │ ├── join_group_response.go
│ │ │ ├── leave_group_request.go
│ │ │ ├── leave_group_response.go
│ │ │ ├── length_field.go
│ │ │ ├── list_groups_request.go
│ │ │ ├── list_groups_response.go
│ │ │ ├── message.go
│ │ │ ├── message_set.go
│ │ │ ├── metadata_request.go
│ │ │ ├── metadata_response.go
│ │ │ ├── metrics.go
│ │ │ ├── mockbroker.go
│ │ │ ├── mockresponses.go
│ │ │ ├── offset_commit_request.go
│ │ │ ├── offset_commit_response.go
│ │ │ ├── offset_fetch_request.go
│ │ │ ├── offset_fetch_response.go
│ │ │ ├── offset_manager.go
│ │ │ ├── offset_request.go
│ │ │ ├── offset_response.go
│ │ │ ├── packet_decoder.go
│ │ │ ├── packet_encoder.go
│ │ │ ├── partitioner.go
│ │ │ ├── prep_encoder.go
│ │ │ ├── produce_request.go
│ │ │ ├── produce_response.go
│ │ │ ├── produce_set.go
│ │ │ ├── real_decoder.go
│ │ │ ├── real_encoder.go
│ │ │ ├── record.go
│ │ │ ├── record_batch.go
│ │ │ ├── records.go
│ │ │ ├── request.go
│ │ │ ├── response_header.go
│ │ │ ├── sarama.go
│ │ │ ├── sasl_authenticate_request.go
│ │ │ ├── sasl_authenticate_response.go
│ │ │ ├── sasl_handshake_request.go
│ │ │ ├── sasl_handshake_response.go
│ │ │ ├── sync_group_request.go
│ │ │ ├── sync_group_response.go
│ │ │ ├── sync_producer.go
│ │ │ ├── timestamp.go
│ │ │ ├── txn_offset_commit_request.go
│ │ │ ├── txn_offset_commit_response.go
│ │ │ ├── utils.go
│ │ │ ├── zstd_cgo.go
│ │ │ └── zstd_fallback.go
│ │ ├── aliyun/
│ │ │ └── aliyun-tablestore-go-sdk/
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── sample/
│ │ │ │ ├── GlobalTableOperation.go
│ │ │ │ ├── LocalIndexTableOperation.go
│ │ │ │ ├── LocalTransactionOperation.go
│ │ │ │ ├── MultipleRowOperation.go
│ │ │ │ ├── SearchIndexOperation.go
│ │ │ │ ├── SingleRowOperation.go
│ │ │ │ ├── StreamOperation.go
│ │ │ │ └── TableOperation.go
│ │ │ ├── sample.go
│ │ │ ├── tablestore/
│ │ │ │ ├── api.go
│ │ │ │ ├── api_test.go
│ │ │ │ ├── error.go
│ │ │ │ ├── error_test.go
│ │ │ │ ├── interface.go
│ │ │ │ ├── model.go
│ │ │ │ ├── ots_header.go
│ │ │ │ ├── otsprotocol/
│ │ │ │ │ ├── build_proto.sh
│ │ │ │ │ ├── ots_filter.pb.go
│ │ │ │ │ ├── ots_filter.proto
│ │ │ │ │ ├── search.pb.go
│ │ │ │ │ ├── search.proto
│ │ │ │ │ ├── table_store.pb.go
│ │ │ │ │ └── table_store.proto
│ │ │ │ ├── plain_buffer.go
│ │ │ │ ├── search/
│ │ │ │ │ ├── collapse.go
│ │ │ │ │ ├── query.go
│ │ │ │ │ ├── query_bool.go
│ │ │ │ │ ├── query_const_score.go
│ │ │ │ │ ├── query_exists.go
│ │ │ │ │ ├── query_exists_test.go
│ │ │ │ │ ├── query_function_score.go
│ │ │ │ │ ├── query_geo_bounding_box.go
│ │ │ │ │ ├── query_geo_distance.go
│ │ │ │ │ ├── query_geo_polygon.go
│ │ │ │ │ ├── query_match.go
│ │ │ │ │ ├── query_match_phrase.go
│ │ │ │ │ ├── query_matchall.go
│ │ │ │ │ ├── query_nested.go
│ │ │ │ │ ├── query_prefix.go
│ │ │ │ │ ├── query_range.go
│ │ │ │ │ ├── query_term.go
│ │ │ │ │ ├── query_terms.go
│ │ │ │ │ ├── query_wildcard.go
│ │ │ │ │ ├── search_query.go
│ │ │ │ │ ├── sort.go
│ │ │ │ │ ├── sort_field.go
│ │ │ │ │ ├── sort_geo_distance.go
│ │ │ │ │ ├── sort_mode.go
│ │ │ │ │ ├── sort_order.go
│ │ │ │ │ ├── sort_primary_key.go
│ │ │ │ │ ├── sort_score.go
│ │ │ │ │ └── variant_types.go
│ │ │ │ ├── search_api.go
│ │ │ │ ├── search_model.go
│ │ │ │ ├── search_model_test.go
│ │ │ │ └── util.go
│ │ │ ├── timeline/
│ │ │ │ ├── README.md
│ │ │ │ ├── error.go
│ │ │ │ ├── message.go
│ │ │ │ ├── option.go
│ │ │ │ ├── promise/
│ │ │ │ │ └── future.go
│ │ │ │ ├── sample/
│ │ │ │ │ ├── feed/
│ │ │ │ │ │ ├── feed.go
│ │ │ │ │ │ └── main.go
│ │ │ │ │ └── im/
│ │ │ │ │ ├── im.go
│ │ │ │ │ └── main.go
│ │ │ │ ├── scan.go
│ │ │ │ ├── store.go
│ │ │ │ ├── timeline.go
│ │ │ │ ├── timeline_test.go
│ │ │ │ └── writer/
│ │ │ │ ├── backoff.go
│ │ │ │ ├── writer.go
│ │ │ │ └── writer_test.go
│ │ │ └── tunnel/
│ │ │ ├── Gopkg.toml
│ │ │ ├── README.md
│ │ │ ├── api.go
│ │ │ ├── api_test.go
│ │ │ ├── channel.go
│ │ │ ├── channel_test.go
│ │ │ ├── checkpointer.go
│ │ │ ├── config.go
│ │ │ ├── daemon.go
│ │ │ ├── daemon_test.go
│ │ │ ├── error.go
│ │ │ ├── error_test.go
│ │ │ ├── header.go
│ │ │ ├── mock_api.go
│ │ │ ├── model.go
│ │ │ ├── processor.go
│ │ │ ├── protocol/
│ │ │ │ ├── error.go
│ │ │ │ ├── plain_buffer.go
│ │ │ │ └── tunnelservice.pb.go
│ │ │ ├── sample/
│ │ │ │ ├── backfillTunnel/
│ │ │ │ │ └── main.go
│ │ │ │ ├── createTunnel/
│ │ │ │ │ └── main.go
│ │ │ │ ├── exactlyOnce/
│ │ │ │ │ └── main.go
│ │ │ │ ├── openTunnel/
│ │ │ │ │ └── main.go
│ │ │ │ └── schedule/
│ │ │ │ └── main.go
│ │ │ ├── state.go
│ │ │ ├── state_test.go
│ │ │ ├── tunnel.go
│ │ │ ├── util.go
│ │ │ ├── util_test.go
│ │ │ └── worker.go
│ │ ├── apache/
│ │ │ ├── camel-k/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── NOTICE
│ │ │ │ └── pkg/
│ │ │ │ └── apis/
│ │ │ │ └── camel/
│ │ │ │ └── v1alpha1/
│ │ │ │ ├── build_types.go
│ │ │ │ ├── camelcatalog_types.go
│ │ │ │ ├── camelcatalog_types_support.go
│ │ │ │ ├── common_types.go
│ │ │ │ ├── common_types_support.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── integration_types.go
│ │ │ │ ├── integration_types_support.go
│ │ │ │ ├── integrationcontext_types.go
│ │ │ │ ├── integrationcontext_types_support.go
│ │ │ │ ├── integrationplatform_types.go
│ │ │ │ ├── integrationplatform_types_support.go
│ │ │ │ ├── knative/
│ │ │ │ │ ├── types.go
│ │ │ │ │ └── types_support.go
│ │ │ │ ├── register.go
│ │ │ │ ├── zz_generated.deepcopy.go
│ │ │ │ └── zz_generated.defaults.go
│ │ │ └── rocketmq-client-go/
│ │ │ ├── .github/
│ │ │ │ └── ISSUE_TEMPLATE/
│ │ │ │ └── issue_template.md
│ │ │ ├── .golangci.yml
│ │ │ ├── .travis.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ ├── PULL_REQUEST_TEMPLATE.md
│ │ │ ├── README.md
│ │ │ ├── api.go
│ │ │ ├── benchmark/
│ │ │ │ ├── consumer.go
│ │ │ │ ├── main.go
│ │ │ │ ├── message.go
│ │ │ │ ├── producer.go
│ │ │ │ └── stable.go
│ │ │ ├── config.go
│ │ │ ├── consumer/
│ │ │ │ ├── consumer.go
│ │ │ │ ├── consumer_test.go
│ │ │ │ ├── interceptor.go
│ │ │ │ ├── lock.go
│ │ │ │ ├── mock_offset_store.go
│ │ │ │ ├── offset_store.go
│ │ │ │ ├── offset_store_test.go
│ │ │ │ ├── option.go
│ │ │ │ ├── process_queue.go
│ │ │ │ ├── pull_consumer.go
│ │ │ │ ├── pull_consumer_test.go
│ │ │ │ ├── push_consumer.go
│ │ │ │ ├── push_consumer_test.go
│ │ │ │ ├── statistics.go
│ │ │ │ ├── statistics_test.go
│ │ │ │ ├── strategy.go
│ │ │ │ └── strategy_test.go
│ │ │ ├── docs/
│ │ │ │ ├── Introduction.md
│ │ │ │ ├── client-design.gliffy
│ │ │ │ ├── feature.md
│ │ │ │ └── zh/
│ │ │ │ ├── native-design_zh.md
│ │ │ │ └── rocketmq-protocol_zh.md
│ │ │ ├── errors.go
│ │ │ ├── examples/
│ │ │ │ ├── consumer/
│ │ │ │ │ ├── acl/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── broadcast/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── delay/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── interceptor/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── namespace/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── orderly/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── pull/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── retry/
│ │ │ │ │ │ ├── concurrent/
│ │ │ │ │ │ │ └── main.go
│ │ │ │ │ │ └── order/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── simple/
│ │ │ │ │ │ ├── main-consumer.go
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── strategy/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ ├── tag/
│ │ │ │ │ │ └── main.go
│ │ │ │ │ └── trace/
│ │ │ │ │ └── main.go
│ │ │ │ └── producer/
│ │ │ │ ├── acl/
│ │ │ │ │ └── main.go
│ │ │ │ ├── async/
│ │ │ │ │ └── main.go
│ │ │ │ ├── batch/
│ │ │ │ │ └── main.go
│ │ │ │ ├── delay/
│ │ │ │ │ └── main.go
│ │ │ │ ├── interceptor/
│ │ │ │ │ └── main.go
│ │ │ │ ├── namespace/
│ │ │ │ │ └── main.go
│ │ │ │ ├── simple/
│ │ │ │ │ ├── main
│ │ │ │ │ └── main.go
│ │ │ │ ├── tag/
│ │ │ │ │ └── main.go
│ │ │ │ ├── trace/
│ │ │ │ │ └── main.go
│ │ │ │ └── transaction/
│ │ │ │ └── main.go
│ │ │ ├── internal/
│ │ │ │ ├── callback.go
│ │ │ │ ├── client.go
│ │ │ │ ├── constants.go
│ │ │ │ ├── mock_client.go
│ │ │ │ ├── mock_namesrv.go
│ │ │ │ ├── model.go
│ │ │ │ ├── model_test.go
│ │ │ │ ├── mq_version.go
│ │ │ │ ├── namesrv.go
│ │ │ │ ├── namesrv_test.go
│ │ │ │ ├── perm.go
│ │ │ │ ├── remote/
│ │ │ │ │ ├── codec.go
│ │ │ │ │ ├── codec_test.go
│ │ │ │ │ ├── future.go
│ │ │ │ │ ├── interceptor.go
│ │ │ │ │ ├── interceptor_test.go
│ │ │ │ │ ├── mock_remote_client.go
│ │ │ │ │ ├── remote_client.go
│ │ │ │ │ ├── remote_client_test.go
│ │ │ │ │ ├── rpchook.go
│ │ │ │ │ └── tcp_conn.go
│ │ │ │ ├── request.go
│ │ │ │ ├── response.go
│ │ │ │ ├── route.go
│ │ │ │ ├── route_test.go
│ │ │ │ ├── trace.go
│ │ │ │ ├── trace_test.go
│ │ │ │ ├── transaction.go
│ │ │ │ ├── utils/
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── files.go
│ │ │ │ │ ├── helper.go
│ │ │ │ │ ├── helper_test.go
│ │ │ │ │ ├── math.go
│ │ │ │ │ ├── net.go
│ │ │ │ │ ├── net_test.go
│ │ │ │ │ ├── set.go
│ │ │ │ │ └── string.go
│ │ │ │ └── validators.go
│ │ │ ├── primitive/
│ │ │ │ ├── auth.go
│ │ │ │ ├── base.go
│ │ │ │ ├── base_test.go
│ │ │ │ ├── ctx.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── interceptor.go
│ │ │ │ ├── message.go
│ │ │ │ ├── message_test.go
│ │ │ │ ├── pool.go
│ │ │ │ ├── result.go
│ │ │ │ ├── result_test.go
│ │ │ │ └── trace.go
│ │ │ ├── producer/
│ │ │ │ ├── interceptor.go
│ │ │ │ ├── option.go
│ │ │ │ ├── producer.go
│ │ │ │ ├── producer_test.go
│ │ │ │ ├── selector.go
│ │ │ │ └── selector_test.go
│ │ │ ├── release-notes.md
│ │ │ └── rlog/
│ │ │ └── log.go
│ │ ├── aws/
│ │ │ └── aws-sdk-go/
│ │ │ ├── LICENSE.txt
│ │ │ ├── NOTICE.txt
│ │ │ ├── aws/
│ │ │ │ ├── awserr/
│ │ │ │ │ ├── error.go
│ │ │ │ │ └── types.go
│ │ │ │ ├── awsutil/
│ │ │ │ │ ├── copy.go
│ │ │ │ │ ├── equal.go
│ │ │ │ │ ├── path_value.go
│ │ │ │ │ ├── prettify.go
│ │ │ │ │ └── string_value.go
│ │ │ │ ├── client/
│ │ │ │ │ ├── client.go
│ │ │ │ │ ├── default_retryer.go
│ │ │ │ │ ├── logger.go
│ │ │ │ │ └── metadata/
│ │ │ │ │ └── client_info.go
│ │ │ │ ├── config.go
│ │ │ │ ├── context.go
│ │ │ │ ├── context_1_6.go
│ │ │ │ ├── context_1_7.go
│ │ │ │ ├── convert_types.go
│ │ │ │ ├── corehandlers/
│ │ │ │ │ ├── handlers.go
│ │ │ │ │ ├── param_validator.go
│ │ │ │ │ └── user_agent.go
│ │ │ │ ├── credentials/
│ │ │ │ │ ├── chain_provider.go
│ │ │ │ │ ├── credentials.go
│ │ │ │ │ ├── ec2rolecreds/
│ │ │ │ │ │ └── ec2_role_provider.go
│ │ │ │ │ ├── endpointcreds/
│ │ │ │ │ │ └── provider.go
│ │ │ │ │ ├── env_provider.go
│ │ │ │ │ ├── shared_credentials_provider.go
│ │ │ │ │ ├── static_provider.go
│ │ │ │ │ └── stscreds/
│ │ │ │ │ └── assume_role_provider.go
│ │ │ │ ├── csm/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── enable.go
│ │ │ │ │ ├── metric.go
│ │ │ │ │ ├── metric_chan.go
│ │ │ │ │ └── reporter.go
│ │ │ │ ├── defaults/
│ │ │ │ │ ├── defaults.go
│ │ │ │ │ └── shared_config.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── ec2metadata/
│ │ │ │ │ ├── api.go
│ │ │ │ │ └── service.go
│ │ │ │ ├── endpoints/
│ │ │ │ │ ├── decode.go
│ │ │ │ │ ├── defaults.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── endpoints.go
│ │ │ │ │ ├── v3model.go
│ │ │ │ │ └── v3model_codegen.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── jsonvalue.go
│ │ │ │ ├── logger.go
│ │ │ │ ├── request/
│ │ │ │ │ ├── connection_reset_error.go
│ │ │ │ │ ├── connection_reset_error_other.go
│ │ │ │ │ ├── handlers.go
│ │ │ │ │ ├── http_request.go
│ │ │ │ │ ├── offset_reader.go
│ │ │ │ │ ├── request.go
│ │ │ │ │ ├── request_1_7.go
│ │ │ │ │ ├── request_1_8.go
│ │ │ │ │ ├── request_context.go
│ │ │ │ │ ├── request_context_1_6.go
│ │ │ │ │ ├── request_pagination.go
│ │ │ │ │ ├── retryer.go
│ │ │ │ │ ├── timeout_read_closer.go
│ │ │ │ │ ├── validation.go
│ │ │ │ │ └── waiter.go
│ │ │ │ ├── session/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── env_config.go
│ │ │ │ │ ├── session.go
│ │ │ │ │ └── shared_config.go
│ │ │ │ ├── signer/
│ │ │ │ │ └── v4/
│ │ │ │ │ ├── header_rules.go
│ │ │ │ │ ├── options.go
│ │ │ │ │ ├── uri_path.go
│ │ │ │ │ └── v4.go
│ │ │ │ ├── types.go
│ │ │ │ ├── url.go
│ │ │ │ ├── url_1_7.go
│ │ │ │ └── version.go
│ │ │ ├── internal/
│ │ │ │ ├── ini/
│ │ │ │ │ ├── ast.go
│ │ │ │ │ ├── comma_token.go
│ │ │ │ │ ├── comment_token.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── empty_token.go
│ │ │ │ │ ├── expression.go
│ │ │ │ │ ├── fuzz.go
│ │ │ │ │ ├── ini.go
│ │ │ │ │ ├── ini_lexer.go
│ │ │ │ │ ├── ini_parser.go
│ │ │ │ │ ├── literal_tokens.go
│ │ │ │ │ ├── newline_token.go
│ │ │ │ │ ├── number_helper.go
│ │ │ │ │ ├── op_tokens.go
│ │ │ │ │ ├── parse_error.go
│ │ │ │ │ ├── parse_stack.go
│ │ │ │ │ ├── sep_tokens.go
│ │ │ │ │ ├── skipper.go
│ │ │ │ │ ├── statement.go
│ │ │ │ │ ├── value_util.go
│ │ │ │ │ ├── visitor.go
│ │ │ │ │ ├── walker.go
│ │ │ │ │ └── ws_token.go
│ │ │ │ ├── sdkio/
│ │ │ │ │ ├── io_go1.6.go
│ │ │ │ │ └── io_go1.7.go
│ │ │ │ ├── sdkrand/
│ │ │ │ │ └── locked_source.go
│ │ │ │ ├── sdkuri/
│ │ │ │ │ └── path.go
│ │ │ │ └── shareddefaults/
│ │ │ │ ├── ecs_container.go
│ │ │ │ └── shared_config.go
│ │ │ ├── private/
│ │ │ │ └── protocol/
│ │ │ │ ├── host.go
│ │ │ │ ├── idempotency.go
│ │ │ │ ├── jsonvalue.go
│ │ │ │ ├── payload.go
│ │ │ │ ├── query/
│ │ │ │ │ ├── build.go
│ │ │ │ │ ├── queryutil/
│ │ │ │ │ │ └── queryutil.go
│ │ │ │ │ ├── unmarshal.go
│ │ │ │ │ └── unmarshal_error.go
│ │ │ │ ├── rest/
│ │ │ │ │ ├── build.go
│ │ │ │ │ ├── payload.go
│ │ │ │ │ └── unmarshal.go
│ │ │ │ ├── timestamp.go
│ │ │ │ ├── unmarshal.go
│ │ │ │ └── xml/
│ │ │ │ └── xmlutil/
│ │ │ │ ├── build.go
│ │ │ │ ├── unmarshal.go
│ │ │ │ └── xml_to_struct.go
│ │ │ └── service/
│ │ │ ├── sqs/
│ │ │ │ ├── api.go
│ │ │ │ ├── checksums.go
│ │ │ │ ├── customizations.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── errors.go
│ │ │ │ └── service.go
│ │ │ └── sts/
│ │ │ ├── api.go
│ │ │ ├── customizations.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ └── service.go
│ │ ├── beorn7/
│ │ │ └── perks/
│ │ │ ├── LICENSE
│ │ │ └── quantile/
│ │ │ └── stream.go
│ │ ├── cenkalti/
│ │ │ └── backoff/
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── backoff.go
│ │ │ ├── backoff_test.go
│ │ │ ├── context.go
│ │ │ ├── context_test.go
│ │ │ ├── example_test.go
│ │ │ ├── exponential.go
│ │ │ ├── exponential_test.go
│ │ │ ├── go.mod
│ │ │ ├── retry.go
│ │ │ ├── retry_test.go
│ │ │ ├── ticker.go
│ │ │ ├── ticker_test.go
│ │ │ ├── timer.go
│ │ │ ├── tries.go
│ │ │ └── tries_test.go
│ │ ├── cloudevents/
│ │ │ └── sdk-go/
│ │ │ ├── LICENSE
│ │ │ ├── alias.go
│ │ │ └── pkg/
│ │ │ └── cloudevents/
│ │ │ ├── client/
│ │ │ │ ├── client.go
│ │ │ │ ├── defaulters.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── observability.go
│ │ │ │ ├── options.go
│ │ │ │ └── receiver.go
│ │ │ ├── codec/
│ │ │ │ ├── doc.go
│ │ │ │ ├── jsoncodec.go
│ │ │ │ └── observability.go
│ │ │ ├── content_type.go
│ │ │ ├── context/
│ │ │ │ ├── context.go
│ │ │ │ ├── doc.go
│ │ │ │ └── logger.go
│ │ │ ├── data_content_encoding.go
│ │ │ ├── datacodec/
│ │ │ │ ├── codec.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── json/
│ │ │ │ │ ├── data.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── observability.go
│ │ │ │ ├── observability.go
│ │ │ │ └── xml/
│ │ │ │ ├── data.go
│ │ │ │ ├── doc.go
│ │ │ │ └── observability.go
│ │ │ ├── doc.go
│ │ │ ├── event.go
│ │ │ ├── event_data.go
│ │ │ ├── event_interface.go
│ │ │ ├── event_reader.go
│ │ │ ├── event_response.go
│ │ │ ├── event_writer.go
│ │ │ ├── eventcontext.go
│ │ │ ├── eventcontext_v01.go
│ │ │ ├── eventcontext_v01_reader.go
│ │ │ ├── eventcontext_v01_writer.go
│ │ │ ├── eventcontext_v02.go
│ │ │ ├── eventcontext_v02_reader.go
│ │ │ ├── eventcontext_v02_writer.go
│ │ │ ├── eventcontext_v03.go
│ │ │ ├── eventcontext_v03_reader.go
│ │ │ ├── eventcontext_v03_writer.go
│ │ │ ├── extensions.go
│ │ │ ├── observability/
│ │ │ │ ├── doc.go
│ │ │ │ ├── keys.go
│ │ │ │ └── observer.go
│ │ │ ├── transport/
│ │ │ │ ├── codec.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── http/
│ │ │ │ │ ├── codec.go
│ │ │ │ │ ├── codec_v01.go
│ │ │ │ │ ├── codec_v02.go
│ │ │ │ │ ├── codec_v03.go
│ │ │ │ │ ├── context.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoding.go
│ │ │ │ │ ├── message.go
│ │ │ │ │ ├── observability.go
│ │ │ │ │ ├── options.go
│ │ │ │ │ └── transport.go
│ │ │ │ ├── message.go
│ │ │ │ └── transport.go
│ │ │ └── types/
│ │ │ ├── allocate.go
│ │ │ ├── doc.go
│ │ │ ├── timestamp.go
│ │ │ └── urlref.go
│ │ ├── davecgh/
│ │ │ └── go-spew/
│ │ │ ├── LICENSE
│ │ │ └── spew/
│ │ │ ├── bypass.go
│ │ │ ├── bypasssafe.go
│ │ │ ├── common.go
│ │ │ ├── config.go
│ │ │ ├── doc.go
│ │ │ ├── dump.go
│ │ │ ├── format.go
│ │ │ └── spew.go
│ │ ├── eapache/
│ │ │ ├── go-resiliency/
│ │ │ │ ├── LICENSE
│ │ │ │ └── breaker/
│ │ │ │ └── breaker.go
│ │ │ ├── go-xerial-snappy/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── fuzz.go
│ │ │ │ └── snappy.go
│ │ │ └── queue/
│ │ │ ├── LICENSE
│ │ │ └── queue.go
│ │ ├── emicklei/
│ │ │ └── go-restful/
│ │ │ ├── LICENSE
│ │ │ ├── compress.go
│ │ │ ├── compressor_cache.go
│ │ │ ├── compressor_pools.go
│ │ │ ├── compressors.go
│ │ │ ├── constants.go
│ │ │ ├── container.go
│ │ │ ├── cors_filter.go
│ │ │ ├── curly.go
│ │ │ ├── curly_route.go
│ │ │ ├── doc.go
│ │ │ ├── entity_accessors.go
│ │ │ ├── filter.go
│ │ │ ├── json.go
│ │ │ ├── jsoniter.go
│ │ │ ├── jsr311.go
│ │ │ ├── log/
│ │ │ │ └── log.go
│ │ │ ├── logger.go
│ │ │ ├── mime.go
│ │ │ ├── options_filter.go
│ │ │ ├── parameter.go
│ │ │ ├── path_expression.go
│ │ │ ├── path_processor.go
│ │ │ ├── request.go
│ │ │ ├── response.go
│ │ │ ├── route.go
│ │ │ ├── route_builder.go
│ │ │ ├── router.go
│ │ │ ├── service_error.go
│ │ │ ├── web_service.go
│ │ │ └── web_service_container.go
│ │ ├── emirpasic/
│ │ │ └── gods/
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── containers/
│ │ │ │ ├── containers.go
│ │ │ │ ├── containers_test.go
│ │ │ │ ├── enumerable.go
│ │ │ │ ├── iterator.go
│ │ │ │ └── serialization.go
│ │ │ ├── examples/
│ │ │ │ ├── README.md
│ │ │ │ ├── arraylist/
│ │ │ │ │ └── arraylist.go
│ │ │ │ ├── arraystack/
│ │ │ │ │ └── arraystack.go
│ │ │ │ ├── avltree/
│ │ │ │ │ └── avltree.go
│ │ │ │ ├── binaryheap/
│ │ │ │ │ └── binaryheap.go
│ │ │ │ ├── btree/
│ │ │ │ │ └── btree.go
│ │ │ │ ├── customcomparator/
│ │ │ │ │ └── customcomparator.go
│ │ │ │ ├── doublylinkedlist/
│ │ │ │ │ └── doublylinkedlist.go
│ │ │ │ ├── enumerablewithindex/
│ │ │ │ │ └── enumerablewithindex.go
│ │ │ │ ├── enumerablewithkey/
│ │ │ │ │ └── enumerablewithkey.go
│ │ │ │ ├── godsort/
│ │ │ │ │ └── godsort.go
│ │ │ │ ├── hashbidimap/
│ │ │ │ │ └── hashbidimap.go
│ │ │ │ ├── hashmap/
│ │ │ │ │ └── hashmap.go
│ │ │ │ ├── hashset/
│ │ │ │ │ └── hashset.go
│ │ │ │ ├── iteratorwithindex/
│ │ │ │ │ └── iteratorwithindex.go
│ │ │ │ ├── iteratorwithkey/
│ │ │ │ │ └── iteratorwithkey.go
│ │ │ │ ├── linkedhashmap/
│ │ │ │ │ └── linkedhashmap.go
│ │ │ │ ├── linkedhashset/
│ │ │ │ │ └── linkedhashset.go
│ │ │ │ ├── linkedliststack/
│ │ │ │ │ └── linkedliststack.go
│ │ │ │ ├── redblacktree/
│ │ │ │ │ └── redblacktree.go
│ │ │ │ ├── redblacktreeextended/
│ │ │ │ │ └── redblacktreeextended.go
│ │ │ │ ├── serialization/
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── singlylinkedlist/
│ │ │ │ │ └── singlylinkedlist.go
│ │ │ │ ├── treebidimap/
│ │ │ │ │ └── treebidimap.go
│ │ │ │ ├── treemap/
│ │ │ │ │ └── treemap.go
│ │ │ │ └── treeset/
│ │ │ │ └── treeset.go
│ │ │ ├── lists/
│ │ │ │ ├── arraylist/
│ │ │ │ │ ├── arraylist.go
│ │ │ │ │ ├── arraylist_test.go
│ │ │ │ │ ├── enumerable.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── doublylinkedlist/
│ │ │ │ │ ├── doublylinkedlist.go
│ │ │ │ │ ├── doublylinkedlist_test.go
│ │ │ │ │ ├── enumerable.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── lists.go
│ │ │ │ └── singlylinkedlist/
│ │ │ │ ├── enumerable.go
│ │ │ │ ├── iterator.go
│ │ │ │ ├── serialization.go
│ │ │ │ ├── singlylinkedlist.go
│ │ │ │ └── singlylinkedlist_test.go
│ │ │ ├── maps/
│ │ │ │ ├── hashbidimap/
│ │ │ │ │ ├── hashbidimap.go
│ │ │ │ │ ├── hashbidimap_test.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── hashmap/
│ │ │ │ │ ├── hashmap.go
│ │ │ │ │ ├── hashmap_test.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── linkedhashmap/
│ │ │ │ │ ├── enumerable.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ ├── linkedhashmap.go
│ │ │ │ │ ├── linkedhashmap_test.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── maps.go
│ │ │ │ ├── treebidimap/
│ │ │ │ │ ├── enumerable.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ ├── serialization.go
│ │ │ │ │ ├── treebidimap.go
│ │ │ │ │ └── treebidimap_test.go
│ │ │ │ └── treemap/
│ │ │ │ ├── enumerable.go
│ │ │ │ ├── iterator.go
│ │ │ │ ├── serialization.go
│ │ │ │ ├── treemap.go
│ │ │ │ └── treemap_test.go
│ │ │ ├── sets/
│ │ │ │ ├── hashset/
│ │ │ │ │ ├── hashset.go
│ │ │ │ │ ├── hashset_test.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── linkedhashset/
│ │ │ │ │ ├── enumerable.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ ├── linkedhashset.go
│ │ │ │ │ ├── linkedhashset_test.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── sets.go
│ │ │ │ └── treeset/
│ │ │ │ ├── enumerable.go
│ │ │ │ ├── iterator.go
│ │ │ │ ├── serialization.go
│ │ │ │ ├── treeset.go
│ │ │ │ └── treeset_test.go
│ │ │ ├── stacks/
│ │ │ │ ├── arraystack/
│ │ │ │ │ ├── arraystack.go
│ │ │ │ │ ├── arraystack_test.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── linkedliststack/
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ ├── linkedliststack.go
│ │ │ │ │ ├── linkedliststack_test.go
│ │ │ │ │ └── serialization.go
│ │ │ │ └── stacks.go
│ │ │ ├── trees/
│ │ │ │ ├── avltree/
│ │ │ │ │ ├── avltree.go
│ │ │ │ │ ├── avltree_test.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── binaryheap/
│ │ │ │ │ ├── binaryheap.go
│ │ │ │ │ ├── binaryheap_test.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── btree/
│ │ │ │ │ ├── btree.go
│ │ │ │ │ ├── btree_test.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ └── serialization.go
│ │ │ │ ├── redblacktree/
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ ├── redblacktree.go
│ │ │ │ │ ├── redblacktree_test.go
│ │ │ │ │ └── serialization.go
│ │ │ │ └── trees.go
│ │ │ └── utils/
│ │ │ ├── comparator.go
│ │ │ ├── comparator_test.go
│ │ │ ├── sort.go
│ │ │ ├── sort_test.go
│ │ │ ├── utils.go
│ │ │ └── utils_test.go
│ │ ├── evanphx/
│ │ │ └── json-patch/
│ │ │ ├── LICENSE
│ │ │ ├── merge.go
│ │ │ └── patch.go
│ │ ├── ghodss/
│ │ │ └── yaml/
│ │ │ ├── LICENSE
│ │ │ ├── fields.go
│ │ │ └── yaml.go
│ │ ├── go-logr/
│ │ │ ├── logr/
│ │ │ │ ├── LICENSE
│ │ │ │ └── logr.go
│ │ │ └── zapr/
│ │ │ ├── LICENSE
│ │ │ └── zapr.go
│ │ ├── gobuffalo/
│ │ │ └── envy/
│ │ │ ├── LICENSE.txt
│ │ │ ├── envy.go
│ │ │ └── version.go
│ │ ├── gogap/
│ │ │ ├── errors/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── context.go
│ │ │ │ ├── error_tmpl.go
│ │ │ │ ├── errors.go
│ │ │ │ └── errors_internal.go
│ │ │ └── stack/
│ │ │ ├── license
│ │ │ ├── patents
│ │ │ └── stack.go
│ │ ├── gogo/
│ │ │ └── protobuf/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── GOLANG_CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── proto/
│ │ │ │ ├── clone.go
│ │ │ │ ├── custom_gogo.go
│ │ │ │ ├── decode.go
│ │ │ │ ├── discard.go
│ │ │ │ ├── duration.go
│ │ │ │ ├── duration_gogo.go
│ │ │ │ ├── encode.go
│ │ │ │ ├── encode_gogo.go
│ │ │ │ ├── equal.go
│ │ │ │ ├── extensions.go
│ │ │ │ ├── extensions_gogo.go
│ │ │ │ ├── lib.go
│ │ │ │ ├── lib_gogo.go
│ │ │ │ ├── message_set.go
│ │ │ │ ├── pointer_reflect.go
│ │ │ │ ├── pointer_reflect_gogo.go
│ │ │ │ ├── pointer_unsafe.go
│ │ │ │ ├── pointer_unsafe_gogo.go
│ │ │ │ ├── properties.go
│ │ │ │ ├── properties_gogo.go
│ │ │ │ ├── skip_gogo.go
│ │ │ │ ├── table_marshal.go
│ │ │ │ ├── table_marshal_gogo.go
│ │ │ │ ├── table_merge.go
│ │ │ │ ├── table_unmarshal.go
│ │ │ │ ├── table_unmarshal_gogo.go
│ │ │ │ ├── text.go
│ │ │ │ ├── text_gogo.go
│ │ │ │ ├── text_parser.go
│ │ │ │ ├── timestamp.go
│ │ │ │ └── timestamp_gogo.go
│ │ │ └── sortkeys/
│ │ │ └── sortkeys.go
│ │ ├── golang/
│ │ │ ├── glog/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── glog.go
│ │ │ │ └── glog_file.go
│ │ │ ├── groupcache/
│ │ │ │ ├── LICENSE
│ │ │ │ └── lru/
│ │ │ │ └── lru.go
│ │ │ ├── mock/
│ │ │ │ └── gomock/
│ │ │ │ ├── call.go
│ │ │ │ ├── call_test.go
│ │ │ │ ├── callset.go
│ │ │ │ ├── callset_test.go
│ │ │ │ ├── controller.go
│ │ │ │ ├── controller_test.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── mock_gomock/
│ │ │ │ │ └── mock_matcher.go
│ │ │ │ ├── matchers.go
│ │ │ │ └── matchers_test.go
│ │ │ ├── protobuf/
│ │ │ │ ├── AUTHORS
│ │ │ │ ├── CONTRIBUTORS
│ │ │ │ ├── LICENSE
│ │ │ │ ├── proto/
│ │ │ │ │ ├── clone.go
│ │ │ │ │ ├── decode.go
│ │ │ │ │ ├── discard.go
│ │ │ │ │ ├── encode.go
│ │ │ │ │ ├── equal.go
│ │ │ │ │ ├── extensions.go
│ │ │ │ │ ├── lib.go
│ │ │ │ │ ├── message_set.go
│ │ │ │ │ ├── pointer_reflect.go
│ │ │ │ │ ├── pointer_unsafe.go
│ │ │ │ │ ├── properties.go
│ │ │ │ │ ├── table_marshal.go
│ │ │ │ │ ├── table_merge.go
│ │ │ │ │ ├── table_unmarshal.go
│ │ │ │ │ ├── text.go
│ │ │ │ │ └── text_parser.go
│ │ │ │ ├── protoc-gen-go/
│ │ │ │ │ └── descriptor/
│ │ │ │ │ └── descriptor.pb.go
│ │ │ │ └── ptypes/
│ │ │ │ ├── any/
│ │ │ │ │ └── any.pb.go
│ │ │ │ ├── any.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── duration/
│ │ │ │ │ └── duration.pb.go
│ │ │ │ ├── duration.go
│ │ │ │ ├── empty/
│ │ │ │ │ └── empty.pb.go
│ │ │ │ ├── timestamp/
│ │ │ │ │ └── timestamp.pb.go
│ │ │ │ └── timestamp.go
│ │ │ └── snappy/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── decode.go
│ │ │ ├── decode_amd64.go
│ │ │ ├── decode_amd64.s
│ │ │ ├── decode_other.go
│ │ │ ├── encode.go
│ │ │ ├── encode_amd64.go
│ │ │ ├── encode_amd64.s
│ │ │ ├── encode_other.go
│ │ │ └── snappy.go
│ │ ├── google/
│ │ │ ├── btree/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── btree.go
│ │ │ │ └── btree_mem.go
│ │ │ ├── go-cmp/
│ │ │ │ ├── LICENSE
│ │ │ │ └── cmp/
│ │ │ │ ├── cmpopts/
│ │ │ │ │ ├── equate.go
│ │ │ │ │ ├── ignore.go
│ │ │ │ │ ├── sort.go
│ │ │ │ │ ├── struct_filter.go
│ │ │ │ │ └── xform.go
│ │ │ │ ├── compare.go
│ │ │ │ ├── export_panic.go
│ │ │ │ ├── export_unsafe.go
│ │ │ │ ├── internal/
│ │ │ │ │ ├── diff/
│ │ │ │ │ │ ├── debug_disable.go
│ │ │ │ │ │ ├── debug_enable.go
│ │ │ │ │ │ └── diff.go
│ │ │ │ │ ├── flags/
│ │ │ │ │ │ ├── flags.go
│ │ │ │ │ │ ├── toolchain_legacy.go
│ │ │ │ │ │ └── toolchain_recent.go
│ │ │ │ │ ├── function/
│ │ │ │ │ │ └── func.go
│ │ │ │ │ └── value/
│ │ │ │ │ ├── pointer_purego.go
│ │ │ │ │ ├── pointer_unsafe.go
│ │ │ │ │ ├── sort.go
│ │ │ │ │ └── zero.go
│ │ │ │ ├── options.go
│ │ │ │ ├── path.go
│ │ │ │ ├── report.go
│ │ │ │ ├── report_compare.go
│ │ │ │ ├── report_reflect.go
│ │ │ │ ├── report_slices.go
│ │ │ │ ├── report_text.go
│ │ │ │ └── report_value.go
│ │ │ ├── go-containerregistry/
│ │ │ │ ├── LICENSE
│ │ │ │ └── pkg/
│ │ │ │ └── name/
│ │ │ │ ├── check.go
│ │ │ │ ├── digest.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── options.go
│ │ │ │ ├── ref.go
│ │ │ │ ├── registry.go
│ │ │ │ ├── repository.go
│ │ │ │ └── tag.go
│ │ │ ├── go-github/
│ │ │ │ ├── AUTHORS
│ │ │ │ ├── LICENSE
│ │ │ │ └── github/
│ │ │ │ ├── activity.go
│ │ │ │ ├── activity_events.go
│ │ │ │ ├── activity_notifications.go
│ │ │ │ ├── activity_star.go
│ │ │ │ ├── activity_watching.go
│ │ │ │ ├── admin.go
│ │ │ │ ├── admin_stats.go
│ │ │ │ ├── apps.go
│ │ │ │ ├── apps_installation.go
│ │ │ │ ├── apps_marketplace.go
│ │ │ │ ├── authorizations.go
│ │ │ │ ├── checks.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── event_types.go
│ │ │ │ ├── gen-accessors.go
│ │ │ │ ├── gists.go
│ │ │ │ ├── gists_comments.go
│ │ │ │ ├── git.go
│ │ │ │ ├── git_blobs.go
│ │ │ │ ├── git_commits.go
│ │ │ │ ├── git_refs.go
│ │ │ │ ├── git_tags.go
│ │ │ │ ├── git_trees.go
│ │ │ │ ├── github-accessors.go
│ │ │ │ ├── github.go
│ │ │ │ ├── gitignore.go
│ │ │ │ ├── issues.go
│ │ │ │ ├── issues_assignees.go
│ │ │ │ ├── issues_comments.go
│ │ │ │ ├── issues_events.go
│ │ │ │ ├── issues_labels.go
│ │ │ │ ├── issues_milestones.go
│ │ │ │ ├── issues_timeline.go
│ │ │ │ ├── licenses.go
│ │ │ │ ├── messages.go
│ │ │ │ ├── migrations.go
│ │ │ │ ├── migrations_source_import.go
│ │ │ │ ├── migrations_user.go
│ │ │ │ ├── misc.go
│ │ │ │ ├── orgs.go
│ │ │ │ ├── orgs_hooks.go
│ │ │ │ ├── orgs_members.go
│ │ │ │ ├── orgs_outside_collaborators.go
│ │ │ │ ├── orgs_projects.go
│ │ │ │ ├── orgs_users_blocking.go
│ │ │ │ ├── projects.go
│ │ │ │ ├── pulls.go
│ │ │ │ ├── pulls_comments.go
│ │ │ │ ├── pulls_reviewers.go
│ │ │ │ ├── pulls_reviews.go
│ │ │ │ ├── reactions.go
│ │ │ │ ├── repos.go
│ │ │ │ ├── repos_collaborators.go
│ │ │ │ ├── repos_comments.go
│ │ │ │ ├── repos_commits.go
│ │ │ │ ├── repos_community_health.go
│ │ │ │ ├── repos_contents.go
│ │ │ │ ├── repos_deployments.go
│ │ │ │ ├── repos_forks.go
│ │ │ │ ├── repos_hooks.go
│ │ │ │ ├── repos_invitations.go
│ │ │ │ ├── repos_keys.go
│ │ │ │ ├── repos_merging.go
│ │ │ │ ├── repos_pages.go
│ │ │ │ ├── repos_prereceive_hooks.go
│ │ │ │ ├── repos_projects.go
│ │ │ │ ├── repos_releases.go
│ │ │ │ ├── repos_stats.go
│ │ │ │ ├── repos_statuses.go
│ │ │ │ ├── repos_traffic.go
│ │ │ │ ├── search.go
│ │ │ │ ├── strings.go
│ │ │ │ ├── teams.go
│ │ │ │ ├── teams_discussion_comments.go
│ │ │ │ ├── teams_discussions.go
│ │ │ │ ├── teams_members.go
│ │ │ │ ├── timestamp.go
│ │ │ │ ├── users.go
│ │ │ │ ├── users_administration.go
│ │ │ │ ├── users_blocking.go
│ │ │ │ ├── users_emails.go
│ │ │ │ ├── users_followers.go
│ │ │ │ ├── users_gpg_keys.go
│ │ │ │ ├── users_keys.go
│ │ │ │ ├── with_appengine.go
│ │ │ │ └── without_appengine.go
│ │ │ ├── go-querystring/
│ │ │ │ ├── LICENSE
│ │ │ │ └── query/
│ │ │ │ └── encode.go
│ │ │ ├── gofuzz/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── doc.go
│ │ │ │ └── fuzz.go
│ │ │ ├── licenseclassifier/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── classifier.go
│ │ │ │ ├── file_system_resources.go
│ │ │ │ ├── forbidden.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── sets/
│ │ │ │ │ ├── sets.go
│ │ │ │ │ └── stringset.go
│ │ │ │ ├── license_type.go
│ │ │ │ ├── licenses/
│ │ │ │ │ └── Unlicense.txt
│ │ │ │ └── stringclassifier/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── classifier.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── pq/
│ │ │ │ │ └── priority.go
│ │ │ │ └── searchset/
│ │ │ │ ├── searchset.go
│ │ │ │ └── tokenizer/
│ │ │ │ └── tokenizer.go
│ │ │ └── uuid/
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── dce.go
│ │ │ ├── doc.go
│ │ │ ├── hash.go
│ │ │ ├── marshal.go
│ │ │ ├── node.go
│ │ │ ├── node_js.go
│ │ │ ├── node_net.go
│ │ │ ├── sql.go
│ │ │ ├── time.go
│ │ │ ├── util.go
│ │ │ ├── uuid.go
│ │ │ ├── version1.go
│ │ │ └── version4.go
│ │ ├── googleapis/
│ │ │ ├── gax-go/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── call_option.go
│ │ │ │ ├── gax.go
│ │ │ │ ├── header.go
│ │ │ │ └── invoke.go
│ │ │ └── gnostic/
│ │ │ ├── LICENSE
│ │ │ ├── OpenAPIv2/
│ │ │ │ ├── OpenAPIv2.go
│ │ │ │ └── OpenAPIv2.pb.go
│ │ │ ├── compiler/
│ │ │ │ ├── context.go
│ │ │ │ ├── error.go
│ │ │ │ ├── extension-handler.go
│ │ │ │ ├── helpers.go
│ │ │ │ ├── main.go
│ │ │ │ └── reader.go
│ │ │ └── extensions/
│ │ │ ├── extension.pb.go
│ │ │ └── extensions.go
│ │ ├── gorilla/
│ │ │ └── websocket/
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ ├── client.go
│ │ │ ├── client_clone.go
│ │ │ ├── client_clone_legacy.go
│ │ │ ├── compression.go
│ │ │ ├── conn.go
│ │ │ ├── conn_write.go
│ │ │ ├── conn_write_legacy.go
│ │ │ ├── doc.go
│ │ │ ├── json.go
│ │ │ ├── mask.go
│ │ │ ├── mask_safe.go
│ │ │ ├── prepared.go
│ │ │ ├── proxy.go
│ │ │ ├── server.go
│ │ │ ├── trace.go
│ │ │ ├── trace_17.go
│ │ │ ├── util.go
│ │ │ └── x_net_proxy.go
│ │ ├── gregjones/
│ │ │ └── httpcache/
│ │ │ ├── LICENSE.txt
│ │ │ ├── diskcache/
│ │ │ │ └── diskcache.go
│ │ │ └── httpcache.go
│ │ ├── hashicorp/
│ │ │ └── golang-lru/
│ │ │ ├── 2q.go
│ │ │ ├── LICENSE
│ │ │ ├── arc.go
│ │ │ ├── doc.go
│ │ │ ├── lru.go
│ │ │ └── simplelru/
│ │ │ ├── lru.go
│ │ │ └── lru_interface.go
│ │ ├── hpcloud/
│ │ │ └── tail/
│ │ │ ├── LICENSE.txt
│ │ │ ├── ratelimiter/
│ │ │ │ ├── Licence
│ │ │ │ ├── leakybucket.go
│ │ │ │ ├── memory.go
│ │ │ │ └── storage.go
│ │ │ ├── tail.go
│ │ │ ├── tail_posix.go
│ │ │ ├── tail_windows.go
│ │ │ ├── util/
│ │ │ │ └── util.go
│ │ │ ├── watch/
│ │ │ │ ├── filechanges.go
│ │ │ │ ├── inotify.go
│ │ │ │ ├── inotify_tracker.go
│ │ │ │ ├── polling.go
│ │ │ │ └── watch.go
│ │ │ └── winfile/
│ │ │ └── winfile.go
│ │ ├── imdario/
│ │ │ └── mergo/
│ │ │ ├── LICENSE
│ │ │ ├── doc.go
│ │ │ ├── map.go
│ │ │ ├── merge.go
│ │ │ ├── mergo.go
│ │ │ └── testdata/
│ │ │ └── license.yml
│ │ ├── inconshreveable/
│ │ │ └── mousetrap/
│ │ │ ├── LICENSE
│ │ │ ├── trap_others.go
│ │ │ ├── trap_windows.go
│ │ │ └── trap_windows_1.4.go
│ │ ├── jmespath/
│ │ │ └── go-jmespath/
│ │ │ ├── LICENSE
│ │ │ ├── api.go
│ │ │ ├── astnodetype_string.go
│ │ │ ├── functions.go
│ │ │ ├── interpreter.go
│ │ │ ├── lexer.go
│ │ │ ├── parser.go
│ │ │ ├── toktype_string.go
│ │ │ └── util.go
│ │ ├── joho/
│ │ │ └── godotenv/
│ │ │ ├── LICENCE
│ │ │ └── godotenv.go
│ │ ├── json-iterator/
│ │ │ └── go/
│ │ │ ├── LICENSE
│ │ │ ├── adapter.go
│ │ │ ├── any.go
│ │ │ ├── any_array.go
│ │ │ ├── any_bool.go
│ │ │ ├── any_float.go
│ │ │ ├── any_int32.go
│ │ │ ├── any_int64.go
│ │ │ ├── any_invalid.go
│ │ │ ├── any_nil.go
│ │ │ ├── any_number.go
│ │ │ ├── any_object.go
│ │ │ ├── any_str.go
│ │ │ ├── any_uint32.go
│ │ │ ├── any_uint64.go
│ │ │ ├── config.go
│ │ │ ├── iter.go
│ │ │ ├── iter_array.go
│ │ │ ├── iter_float.go
│ │ │ ├── iter_int.go
│ │ │ ├── iter_object.go
│ │ │ ├── iter_skip.go
│ │ │ ├── iter_skip_sloppy.go
│ │ │ ├── iter_skip_strict.go
│ │ │ ├── iter_str.go
│ │ │ ├── jsoniter.go
│ │ │ ├── pool.go
│ │ │ ├── reflect.go
│ │ │ ├── reflect_array.go
│ │ │ ├── reflect_dynamic.go
│ │ │ ├── reflect_extension.go
│ │ │ ├── reflect_json_number.go
│ │ │ ├── reflect_json_raw_message.go
│ │ │ ├── reflect_map.go
│ │ │ ├── reflect_marshaler.go
│ │ │ ├── reflect_native.go
│ │ │ ├── reflect_optional.go
│ │ │ ├── reflect_slice.go
│ │ │ ├── reflect_struct_decoder.go
│ │ │ ├── reflect_struct_encoder.go
│ │ │ ├── stream.go
│ │ │ ├── stream_float.go
│ │ │ ├── stream_int.go
│ │ │ └── stream_str.go
│ │ ├── kelseyhightower/
│ │ │ └── envconfig/
│ │ │ ├── LICENSE
│ │ │ ├── doc.go
│ │ │ ├── env_os.go
│ │ │ ├── env_syscall.go
│ │ │ ├── envconfig.go
│ │ │ └── usage.go
│ │ ├── klauspost/
│ │ │ ├── compress/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── flate/
│ │ │ │ │ ├── copy.go
│ │ │ │ │ ├── crc32_amd64.go
│ │ │ │ │ ├── crc32_amd64.s
│ │ │ │ │ ├── crc32_noasm.go
│ │ │ │ │ ├── deflate.go
│ │ │ │ │ ├── dict_decoder.go
│ │ │ │ │ ├── gen.go
│ │ │ │ │ ├── huffman_bit_writer.go
│ │ │ │ │ ├── huffman_code.go
│ │ │ │ │ ├── inflate.go
│ │ │ │ │ ├── reverse_bits.go
│ │ │ │ │ ├── snappy.go
│ │ │ │ │ └── token.go
│ │ │ │ ├── gzip/
│ │ │ │ │ ├── gunzip.go
│ │ │ │ │ └── gzip.go
│ │ │ │ ├── snappy/
│ │ │ │ │ ├── AUTHORS
│ │ │ │ │ ├── CONTRIBUTORS
│ │ │ │ │ └── LICENSE
│ │ │ │ └── zlib/
│ │ │ │ ├── reader.go
│ │ │ │ └── writer.go
│ │ │ └── cpuid/
│ │ │ ├── LICENSE
│ │ │ ├── cpuid.go
│ │ │ ├── cpuid_386.s
│ │ │ ├── cpuid_amd64.s
│ │ │ ├── detect_intel.go
│ │ │ ├── detect_ref.go
│ │ │ ├── generate.go
│ │ │ └── private-gen.go
│ │ ├── knative/
│ │ │ ├── eventing/
│ │ │ │ ├── AUTHORS
│ │ │ │ ├── LICENSE
│ │ │ │ ├── pkg/
│ │ │ │ │ ├── apis/
│ │ │ │ │ │ ├── duck/
│ │ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ │ ├── channelable_types.go
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ ├── subscribable_types.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ ├── eventing/
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ │ ├── broker_defaults.go
│ │ │ │ │ │ │ ├── broker_lifecycle.go
│ │ │ │ │ │ │ ├── broker_types.go
│ │ │ │ │ │ │ ├── broker_validation.go
│ │ │ │ │ │ │ ├── channel_defaults.go
│ │ │ │ │ │ │ ├── channel_lifecycle.go
│ │ │ │ │ │ │ ├── channel_types.go
│ │ │ │ │ │ │ ├── channel_validation.go
│ │ │ │ │ │ │ ├── cluster_channel_provisioner_defaults.go
│ │ │ │ │ │ │ ├── cluster_channel_provisioner_types.go
│ │ │ │ │ │ │ ├── cluster_channel_provisioner_validation.go
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ ├── eventtype_defaults.go
│ │ │ │ │ │ │ ├── eventtype_lifecycle.go
│ │ │ │ │ │ │ ├── eventtype_types.go
│ │ │ │ │ │ │ ├── eventtype_validation.go
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ ├── subscribable_channelable_validation.go
│ │ │ │ │ │ │ ├── subscription_defaults.go
│ │ │ │ │ │ │ ├── subscription_lifecycle.go
│ │ │ │ │ │ │ ├── subscription_types.go
│ │ │ │ │ │ │ ├── subscription_validation.go
│ │ │ │ │ │ │ ├── test_helper.go
│ │ │ │ │ │ │ ├── trigger_defaults.go
│ │ │ │ │ │ │ ├── trigger_lifecycle.go
│ │ │ │ │ │ │ ├── trigger_types.go
│ │ │ │ │ │ │ ├── trigger_validation.go
│ │ │ │ │ │ │ ├── user_info.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ ├── messaging/
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ ├── in_memory_channel_defaults.go
│ │ │ │ │ │ │ ├── in_memory_channel_lifecycle.go
│ │ │ │ │ │ │ ├── in_memory_channel_types.go
│ │ │ │ │ │ │ ├── in_memory_channel_validation.go
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ ├── sequence_defaults.go
│ │ │ │ │ │ │ ├── sequence_lifecycle.go
│ │ │ │ │ │ │ ├── sequence_types.go
│ │ │ │ │ │ │ ├── sequence_validation.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ └── sources/
│ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ ├── apiserver_lifecycle.go
│ │ │ │ │ │ ├── apiserver_types.go
│ │ │ │ │ │ ├── containersource_lifecycle.go
│ │ │ │ │ │ ├── containersource_types.go
│ │ │ │ │ │ ├── cron_job_lifecycle.go
│ │ │ │ │ │ ├── cron_job_types.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ └── client/
│ │ │ │ │ └── clientset/
│ │ │ │ │ └── versioned/
│ │ │ │ │ ├── clientset.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── scheme/
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ └── register.go
│ │ │ │ │ └── typed/
│ │ │ │ │ ├── eventing/
│ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ ├── broker.go
│ │ │ │ │ │ ├── channel.go
│ │ │ │ │ │ ├── clusterchannelprovisioner.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── eventing_client.go
│ │ │ │ │ │ ├── eventtype.go
│ │ │ │ │ │ ├── generated_expansion.go
│ │ │ │ │ │ ├── subscription.go
│ │ │ │ │ │ └── trigger.go
│ │ │ │ │ ├── messaging/
│ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── generated_expansion.go
│ │ │ │ │ │ ├── inmemorychannel.go
│ │ │ │ │ │ ├── messaging_client.go
│ │ │ │ │ │ └── sequence.go
│ │ │ │ │ └── sources/
│ │ │ │ │ └── v1alpha1/
│ │ │ │ │ ├── apiserversource.go
│ │ │ │ │ ├── containersource.go
│ │ │ │ │ ├── cronjobsource.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated_expansion.go
│ │ │ │ │ └── sources_client.go
│ │ │ │ └── test/
│ │ │ │ └── test_images/
│ │ │ │ └── logevents/
│ │ │ │ └── kodata/
│ │ │ │ └── LICENSE
│ │ │ ├── serving/
│ │ │ │ ├── AUTHORS
│ │ │ │ ├── LICENSE
│ │ │ │ ├── pkg/
│ │ │ │ │ ├── apis/
│ │ │ │ │ │ ├── autoscaling/
│ │ │ │ │ │ │ ├── annotation_validation.go
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ ├── pa_defaults.go
│ │ │ │ │ │ │ ├── pa_lifecycle.go
│ │ │ │ │ │ │ ├── pa_types.go
│ │ │ │ │ │ │ ├── pa_validation.go
│ │ │ │ │ │ │ ├── podscalable_types.go
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ ├── config/
│ │ │ │ │ │ │ ├── defaults.go
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ ├── store.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ ├── networking/
│ │ │ │ │ │ │ ├── generic_types.go
│ │ │ │ │ │ │ ├── ports.go
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ │ ├── certificate_defaults.go
│ │ │ │ │ │ │ ├── certificate_lifecycle.go
│ │ │ │ │ │ │ ├── certificate_types.go
│ │ │ │ │ │ │ ├── certificate_validation.go
│ │ │ │ │ │ │ ├── clusteringress_defaults.go
│ │ │ │ │ │ │ ├── clusteringress_lifecycle.go
│ │ │ │ │ │ │ ├── clusteringress_types.go
│ │ │ │ │ │ │ ├── clusteringress_validation.go
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ ├── ingress_defaults.go
│ │ │ │ │ │ │ ├── ingress_lifecycle.go
│ │ │ │ │ │ │ ├── ingress_types.go
│ │ │ │ │ │ │ ├── ingress_validation.go
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ ├── serverlessservice_defaults.go
│ │ │ │ │ │ │ ├── serverlessservice_lifecycle.go
│ │ │ │ │ │ │ ├── serverlessservice_types.go
│ │ │ │ │ │ │ ├── serverlessservice_validation.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ └── serving/
│ │ │ │ │ │ ├── fieldmask.go
│ │ │ │ │ │ ├── k8s_validation.go
│ │ │ │ │ │ ├── metadata_validation.go
│ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ ├── v1alpha1/
│ │ │ │ │ │ │ ├── configuration_conversion.go
│ │ │ │ │ │ │ ├── configuration_defaults.go
│ │ │ │ │ │ │ ├── configuration_lifecycle.go
│ │ │ │ │ │ │ ├── configuration_types.go
│ │ │ │ │ │ │ ├── configuration_validation.go
│ │ │ │ │ │ │ ├── conversion_error.go
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ │ ├── revision_conversion.go
│ │ │ │ │ │ │ ├── revision_defaults.go
│ │ │ │ │ │ │ ├── revision_lifecycle.go
│ │ │ │ │ │ │ ├── revision_types.go
│ │ │ │ │ │ │ ├── revision_validation.go
│ │ │ │ │ │ │ ├── route_conversion.go
│ │ │ │ │ │ │ ├── route_defaults.go
│ │ │ │ │ │ │ ├── route_lifecycle.go
│ │ │ │ │ │ │ ├── route_types.go
│ │ │ │ │ │ │ ├── route_validation.go
│ │ │ │ │ │ │ ├── service_conversion.go
│ │ │ │ │ │ │ ├── service_defaults.go
│ │ │ │ │ │ │ ├── service_lifecycle.go
│ │ │ │ │ │ │ ├── service_types.go
│ │ │ │ │ │ │ ├── service_validation.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ └── v1beta1/
│ │ │ │ │ │ ├── configuration_conversion.go
│ │ │ │ │ │ ├── configuration_defaults.go
│ │ │ │ │ │ ├── configuration_lifecycle.go
│ │ │ │ │ │ ├── configuration_types.go
│ │ │ │ │ │ ├── configuration_validation.go
│ │ │ │ │ │ ├── contexts.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ ├── revision_conversion.go
│ │ │ │ │ │ ├── revision_defaults.go
│ │ │ │ │ │ ├── revision_lifecycle.go
│ │ │ │ │ │ ├── revision_types.go
│ │ │ │ │ │ ├── revision_validation.go
│ │ │ │ │ │ ├── route_conversion.go
│ │ │ │ │ │ ├── route_defaults.go
│ │ │ │ │ │ ├── route_lifecycle.go
│ │ │ │ │ │ ├── route_types.go
│ │ │ │ │ │ ├── route_validation.go
│ │ │ │ │ │ ├── service_conversion.go
│ │ │ │ │ │ ├── service_defaults.go
│ │ │ │ │ │ ├── service_lifecycle.go
│ │ │ │ │ │ ├── service_types.go
│ │ │ │ │ │ ├── service_validation.go
│ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ └── client/
│ │ │ │ │ └── clientset/
│ │ │ │ │ └── versioned/
│ │ │ │ │ ├── clientset.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── scheme/
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ └── register.go
│ │ │ │ │ └── typed/
│ │ │ │ │ ├── autoscaling/
│ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ ├── autoscaling_client.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── generated_expansion.go
│ │ │ │ │ │ └── podautoscaler.go
│ │ │ │ │ ├── networking/
│ │ │ │ │ │ └── v1alpha1/
│ │ │ │ │ │ ├── certificate.go
│ │ │ │ │ │ ├── clusteringress.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── generated_expansion.go
│ │ │ │ │ │ ├── ingress.go
│ │ │ │ │ │ ├── networking_client.go
│ │ │ │ │ │ └── serverlessservice.go
│ │ │ │ │ └── serving/
│ │ │ │ │ ├── v1alpha1/
│ │ │ │ │ │ ├── configuration.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── generated_expansion.go
│ │ │ │ │ │ ├── revision.go
│ │ │ │ │ │ ├── route.go
│ │ │ │ │ │ ├── service.go
│ │ │ │ │ │ └── serving_client.go
│ │ │ │ │ └── v1beta1/
│ │ │ │ │ ├── configuration.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated_expansion.go
│ │ │ │ │ ├── revision.go
│ │ │ │ │ ├── route.go
│ │ │ │ │ ├── service.go
│ │ │ │ │ └── serving_client.go
│ │ │ │ └── third_party/
│ │ │ │ └── config/
│ │ │ │ └── monitoring/
│ │ │ │ ├── logging/
│ │ │ │ │ └── elasticsearch/
│ │ │ │ │ └── LICENSE
│ │ │ │ └── metrics/
│ │ │ │ └── prometheus/
│ │ │ │ ├── kubernetes/
│ │ │ │ │ └── LICENSE
│ │ │ │ └── prometheus-operator/
│ │ │ │ ├── LICENSE
│ │ │ │ └── NOTICE
│ │ │ └── test-infra/
│ │ │ ├── LICENSE
│ │ │ ├── scripts/
│ │ │ │ ├── README.md
│ │ │ │ ├── dummy.go
│ │ │ │ ├── e2e-tests.sh
│ │ │ │ ├── library.sh
│ │ │ │ ├── markdown-link-check-config.rc
│ │ │ │ ├── markdown-lint-config.rc
│ │ │ │ ├── presubmit-tests.sh
│ │ │ │ └── release.sh
│ │ │ └── tools/
│ │ │ └── dep-collector/
│ │ │ ├── README.md
│ │ │ ├── imports.go
│ │ │ ├── licenses.go
│ │ │ └── main.go
│ │ ├── markbates/
│ │ │ └── inflect/
│ │ │ ├── LICENCE
│ │ │ ├── helpers.go
│ │ │ ├── inflect.go
│ │ │ ├── name.go
│ │ │ └── version.go
│ │ ├── mattbaird/
│ │ │ └── jsonpatch/
│ │ │ ├── LICENSE
│ │ │ └── jsonpatch.go
│ │ ├── matttproud/
│ │ │ └── golang_protobuf_extensions/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── pbutil/
│ │ │ ├── decode.go
│ │ │ ├── doc.go
│ │ │ └── encode.go
│ │ ├── modern-go/
│ │ │ ├── concurrent/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── executor.go
│ │ │ │ ├── go_above_19.go
│ │ │ │ ├── go_below_19.go
│ │ │ │ ├── log.go
│ │ │ │ └── unbounded_executor.go
│ │ │ └── reflect2/
│ │ │ ├── LICENSE
│ │ │ ├── go_above_17.go
│ │ │ ├── go_above_19.go
│ │ │ ├── go_below_17.go
│ │ │ ├── go_below_19.go
│ │ │ ├── reflect2.go
│ │ │ ├── reflect2_amd64.s
│ │ │ ├── reflect2_kind.go
│ │ │ ├── relfect2_386.s
│ │ │ ├── relfect2_amd64p32.s
│ │ │ ├── relfect2_arm.s
│ │ │ ├── relfect2_arm64.s
│ │ │ ├── relfect2_mips64x.s
│ │ │ ├── relfect2_mipsx.s
│ │ │ ├── relfect2_ppc64x.s
│ │ │ ├── relfect2_s390x.s
│ │ │ ├── safe_field.go
│ │ │ ├── safe_map.go
│ │ │ ├── safe_slice.go
│ │ │ ├── safe_struct.go
│ │ │ ├── safe_type.go
│ │ │ ├── type_map.go
│ │ │ ├── unsafe_array.go
│ │ │ ├── unsafe_eface.go
│ │ │ ├── unsafe_field.go
│ │ │ ├── unsafe_iface.go
│ │ │ ├── unsafe_link.go
│ │ │ ├── unsafe_map.go
│ │ │ ├── unsafe_ptr.go
│ │ │ ├── unsafe_slice.go
│ │ │ ├── unsafe_struct.go
│ │ │ └── unsafe_type.go
│ │ ├── onsi/
│ │ │ ├── ginkgo/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── config/
│ │ │ │ │ └── config.go
│ │ │ │ ├── ginkgo_dsl.go
│ │ │ │ ├── internal/
│ │ │ │ │ ├── codelocation/
│ │ │ │ │ │ └── code_location.go
│ │ │ │ │ ├── containernode/
│ │ │ │ │ │ └── container_node.go
│ │ │ │ │ ├── failer/
│ │ │ │ │ │ └── failer.go
│ │ │ │ │ ├── leafnodes/
│ │ │ │ │ │ ├── benchmarker.go
│ │ │ │ │ │ ├── interfaces.go
│ │ │ │ │ │ ├── it_node.go
│ │ │ │ │ │ ├── measure_node.go
│ │ │ │ │ │ ├── runner.go
│ │ │ │ │ │ ├── setup_nodes.go
│ │ │ │ │ │ ├── suite_nodes.go
│ │ │ │ │ │ ├── synchronized_after_suite_node.go
│ │ │ │ │ │ └── synchronized_before_suite_node.go
│ │ │ │ │ ├── remote/
│ │ │ │ │ │ ├── aggregator.go
│ │ │ │ │ │ ├── forwarding_reporter.go
│ │ │ │ │ │ ├── output_interceptor.go
│ │ │ │ │ │ ├── output_interceptor_unix.go
│ │ │ │ │ │ ├── output_interceptor_win.go
│ │ │ │ │ │ ├── server.go
│ │ │ │ │ │ ├── syscall_dup_linux_arm64.go
│ │ │ │ │ │ ├── syscall_dup_solaris.go
│ │ │ │ │ │ └── syscall_dup_unix.go
│ │ │ │ │ ├── spec/
│ │ │ │ │ │ ├── spec.go
│ │ │ │ │ │ └── specs.go
│ │ │ │ │ ├── spec_iterator/
│ │ │ │ │ │ ├── index_computer.go
│ │ │ │ │ │ ├── parallel_spec_iterator.go
│ │ │ │ │ │ ├── serial_spec_iterator.go
│ │ │ │ │ │ ├── sharded_parallel_spec_iterator.go
│ │ │ │ │ │ └── spec_iterator.go
│ │ │ │ │ ├── specrunner/
│ │ │ │ │ │ ├── random_id.go
│ │ │ │ │ │ └── spec_runner.go
│ │ │ │ │ ├── suite/
│ │ │ │ │ │ └── suite.go
│ │ │ │ │ ├── testingtproxy/
│ │ │ │ │ │ └── testing_t_proxy.go
│ │ │ │ │ └── writer/
│ │ │ │ │ ├── fake_writer.go
│ │ │ │ │ └── writer.go
│ │ │ │ ├── reporters/
│ │ │ │ │ ├── default_reporter.go
│ │ │ │ │ ├── fake_reporter.go
│ │ │ │ │ ├── junit_reporter.go
│ │ │ │ │ ├── reporter.go
│ │ │ │ │ ├── stenographer/
│ │ │ │ │ │ ├── console_logging.go
│ │ │ │ │ │ ├── fake_stenographer.go
│ │ │ │ │ │ ├── stenographer.go
│ │ │ │ │ │ └── support/
│ │ │ │ │ │ ├── go-colorable/
│ │ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ │ ├── colorable_others.go
│ │ │ │ │ │ │ ├── colorable_windows.go
│ │ │ │ │ │ │ └── noncolorable.go
│ │ │ │ │ │ └── go-isatty/
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── isatty_appengine.go
│ │ │ │ │ │ ├── isatty_bsd.go
│ │ │ │ │ │ ├── isatty_linux.go
│ │ │ │ │ │ ├── isatty_solaris.go
│ │ │ │ │ │ └── isatty_windows.go
│ │ │ │ │ └── teamcity_reporter.go
│ │ │ │ └── types/
│ │ │ │ ├── code_location.go
│ │ │ │ ├── synchronization.go
│ │ │ │ └── types.go
│ │ │ └── gomega/
│ │ │ ├── LICENSE
│ │ │ ├── format/
│ │ │ │ └── format.go
│ │ │ ├── gbytes/
│ │ │ │ ├── buffer.go
│ │ │ │ ├── io_wrappers.go
│ │ │ │ └── say_matcher.go
│ │ │ ├── gexec/
│ │ │ │ ├── build.go
│ │ │ │ ├── exit_matcher.go
│ │ │ │ ├── prefixed_writer.go
│ │ │ │ └── session.go
│ │ │ ├── gomega_dsl.go
│ │ │ ├── internal/
│ │ │ │ ├── assertion/
│ │ │ │ │ └── assertion.go
│ │ │ │ ├── asyncassertion/
│ │ │ │ │ └── async_assertion.go
│ │ │ │ ├── oraclematcher/
│ │ │ │ │ └── oracle_matcher.go
│ │ │ │ └── testingtsupport/
│ │ │ │ └── testing_t_support.go
│ │ │ ├── matchers/
│ │ │ │ ├── and.go
│ │ │ │ ├── assignable_to_type_of_matcher.go
│ │ │ │ ├── attributes_slice.go
│ │ │ │ ├── be_a_directory.go
│ │ │ │ ├── be_a_regular_file.go
│ │ │ │ ├── be_an_existing_file.go
│ │ │ │ ├── be_closed_matcher.go
│ │ │ │ ├── be_empty_matcher.go
│ │ │ │ ├── be_equivalent_to_matcher.go
│ │ │ │ ├── be_false_matcher.go
│ │ │ │ ├── be_identical_to.go
│ │ │ │ ├── be_nil_matcher.go
│ │ │ │ ├── be_numerically_matcher.go
│ │ │ │ ├── be_sent_matcher.go
│ │ │ │ ├── be_temporally_matcher.go
│ │ │ │ ├── be_true_matcher.go
│ │ │ │ ├── be_zero_matcher.go
│ │ │ │ ├── consist_of.go
│ │ │ │ ├── contain_element_matcher.go
│ │ │ │ ├── contain_substring_matcher.go
│ │ │ │ ├── equal_matcher.go
│ │ │ │ ├── have_cap_matcher.go
│ │ │ │ ├── have_key_matcher.go
│ │ │ │ ├── have_key_with_value_matcher.go
│ │ │ │ ├── have_len_matcher.go
│ │ │ │ ├── have_occurred_matcher.go
│ │ │ │ ├── have_prefix_matcher.go
│ │ │ │ ├── have_suffix_matcher.go
│ │ │ │ ├── match_error_matcher.go
│ │ │ │ ├── match_json_matcher.go
│ │ │ │ ├── match_regexp_matcher.go
│ │ │ │ ├── match_xml_matcher.go
│ │ │ │ ├── match_yaml_matcher.go
│ │ │ │ ├── not.go
│ │ │ │ ├── or.go
│ │ │ │ ├── panic_matcher.go
│ │ │ │ ├── receive_matcher.go
│ │ │ │ ├── semi_structured_data_support.go
│ │ │ │ ├── succeed_matcher.go
│ │ │ │ ├── support/
│ │ │ │ │ └── goraph/
│ │ │ │ │ ├── bipartitegraph/
│ │ │ │ │ │ ├── bipartitegraph.go
│ │ │ │ │ │ └── bipartitegraphmatching.go
│ │ │ │ │ ├── edge/
│ │ │ │ │ │ └── edge.go
│ │ │ │ │ ├── node/
│ │ │ │ │ │ └── node.go
│ │ │ │ │ └── util/
│ │ │ │ │ └── util.go
│ │ │ │ ├── type_support.go
│ │ │ │ └── with_transform.go
│ │ │ ├── matchers.go
│ │ │ └── types/
│ │ │ └── types.go
│ │ ├── pborman/
│ │ │ └── uuid/
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── dce.go
│ │ │ ├── doc.go
│ │ │ ├── hash.go
│ │ │ ├── marshal.go
│ │ │ ├── node.go
│ │ │ ├── sql.go
│ │ │ ├── time.go
│ │ │ ├── util.go
│ │ │ ├── uuid.go
│ │ │ ├── version1.go
│ │ │ └── version4.go
│ │ ├── petar/
│ │ │ └── GoLLRB/
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ └── llrb/
│ │ │ ├── avgvar.go
│ │ │ ├── iterator.go
│ │ │ ├── llrb-stats.go
│ │ │ ├── llrb.go
│ │ │ └── util.go
│ │ ├── peterbourgon/
│ │ │ └── diskv/
│ │ │ ├── LICENSE
│ │ │ ├── compression.go
│ │ │ ├── diskv.go
│ │ │ └── index.go
│ │ ├── pierrec/
│ │ │ └── lz4/
│ │ │ ├── LICENSE
│ │ │ ├── block.go
│ │ │ ├── debug.go
│ │ │ ├── debug_stub.go
│ │ │ ├── decode_amd64.go
│ │ │ ├── decode_amd64.s
│ │ │ ├── decode_other.go
│ │ │ ├── internal/
│ │ │ │ └── xxh32/
│ │ │ │ └── xxh32zero.go
│ │ │ ├── lz4.go
│ │ │ ├── lz4_go1.10.go
│ │ │ ├── lz4_notgo1.10.go
│ │ │ ├── reader.go
│ │ │ └── writer.go
│ │ ├── pkg/
│ │ │ └── errors/
│ │ │ ├── LICENSE
│ │ │ ├── errors.go
│ │ │ └── stack.go
│ │ ├── prometheus/
│ │ │ ├── client_golang/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── NOTICE
│ │ │ │ └── prometheus/
│ │ │ │ ├── collector.go
│ │ │ │ ├── counter.go
│ │ │ │ ├── desc.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── expvar_collector.go
│ │ │ │ ├── fnv.go
│ │ │ │ ├── gauge.go
│ │ │ │ ├── go_collector.go
│ │ │ │ ├── histogram.go
│ │ │ │ ├── http.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── metric.go
│ │ │ │ ├── labels.go
│ │ │ │ ├── metric.go
│ │ │ │ ├── observer.go
│ │ │ │ ├── process_collector.go
│ │ │ │ ├── promhttp/
│ │ │ │ │ ├── delegator.go
│ │ │ │ │ ├── delegator_1_8.go
│ │ │ │ │ ├── delegator_pre_1_8.go
│ │ │ │ │ ├── http.go
│ │ │ │ │ ├── instrument_client.go
│ │ │ │ │ ├── instrument_client_1_8.go
│ │ │ │ │ └── instrument_server.go
│ │ │ │ ├── registry.go
│ │ │ │ ├── summary.go
│ │ │ │ ├── timer.go
│ │ │ │ ├── untyped.go
│ │ │ │ ├── value.go
│ │ │ │ ├── vec.go
│ │ │ │ └── wrap.go
│ │ │ ├── client_model/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── NOTICE
│ │ │ │ ├── go/
│ │ │ │ │ └── metrics.pb.go
│ │ │ │ └── ruby/
│ │ │ │ └── LICENSE
│ │ │ ├── common/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── NOTICE
│ │ │ │ ├── expfmt/
│ │ │ │ │ ├── decode.go
│ │ │ │ │ ├── encode.go
│ │ │ │ │ ├── expfmt.go
│ │ │ │ │ ├── fuzz.go
│ │ │ │ │ ├── text_create.go
│ │ │ │ │ └── text_parse.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── bitbucket.org/
│ │ │ │ │ └── ww/
│ │ │ │ │ └── goautoneg/
│ │ │ │ │ └── autoneg.go
│ │ │ │ └── model/
│ │ │ │ ├── alert.go
│ │ │ │ ├── fingerprinting.go
│ │ │ │ ├── fnv.go
│ │ │ │ ├── labels.go
│ │ │ │ ├── labelset.go
│ │ │ │ ├── metric.go
│ │ │ │ ├── model.go
│ │ │ │ ├── signature.go
│ │ │ │ ├── silence.go
│ │ │ │ ├── time.go
│ │ │ │ └── value.go
│ │ │ └── procfs/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ ├── buddyinfo.go
│ │ │ ├── doc.go
│ │ │ ├── fs.go
│ │ │ ├── internal/
│ │ │ │ └── util/
│ │ │ │ ├── parse.go
│ │ │ │ └── sysreadfile_linux.go
│ │ │ ├── ipvs.go
│ │ │ ├── mdstat.go
│ │ │ ├── mountstats.go
│ │ │ ├── net_dev.go
│ │ │ ├── nfs/
│ │ │ │ ├── nfs.go
│ │ │ │ ├── parse.go
│ │ │ │ ├── parse_nfs.go
│ │ │ │ └── parse_nfsd.go
│ │ │ ├── proc.go
│ │ │ ├── proc_io.go
│ │ │ ├── proc_limits.go
│ │ │ ├── proc_ns.go
│ │ │ ├── proc_stat.go
│ │ │ ├── stat.go
│ │ │ ├── xfrm.go
│ │ │ └── xfs/
│ │ │ ├── parse.go
│ │ │ └── xfs.go
│ │ ├── rcrowley/
│ │ │ └── go-metrics/
│ │ │ ├── LICENSE
│ │ │ ├── counter.go
│ │ │ ├── debug.go
│ │ │ ├── ewma.go
│ │ │ ├── gauge.go
│ │ │ ├── gauge_float64.go
│ │ │ ├── graphite.go
│ │ │ ├── healthcheck.go
│ │ │ ├── histogram.go
│ │ │ ├── json.go
│ │ │ ├── log.go
│ │ │ ├── meter.go
│ │ │ ├── metrics.go
│ │ │ ├── opentsdb.go
│ │ │ ├── registry.go
│ │ │ ├── runtime.go
│ │ │ ├── runtime_cgo.go
│ │ │ ├── runtime_gccpufraction.go
│ │ │ ├── runtime_no_cgo.go
│ │ │ ├── runtime_no_gccpufraction.go
│ │ │ ├── sample.go
│ │ │ ├── syslog.go
│ │ │ ├── timer.go
│ │ │ └── writer.go
│ │ ├── satori/
│ │ │ └── go.uuid/
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── codec.go
│ │ │ ├── codec_test.go
│ │ │ ├── generator.go
│ │ │ ├── generator_test.go
│ │ │ ├── sql.go
│ │ │ ├── sql_test.go
│ │ │ ├── uuid.go
│ │ │ └── uuid_test.go
│ │ ├── sergi/
│ │ │ └── go-diff/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ └── diffmatchpatch/
│ │ │ ├── diff.go
│ │ │ ├── diffmatchpatch.go
│ │ │ ├── match.go
│ │ │ ├── mathutil.go
│ │ │ ├── patch.go
│ │ │ └── stringutil.go
│ │ ├── sirupsen/
│ │ │ └── logrus/
│ │ │ ├── .golangci.yml
│ │ │ ├── .travis.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── alt_exit.go
│ │ │ ├── alt_exit_test.go
│ │ │ ├── appveyor.yml
│ │ │ ├── doc.go
│ │ │ ├── entry.go
│ │ │ ├── entry_test.go
│ │ │ ├── example_basic_test.go
│ │ │ ├── example_custom_caller_test.go
│ │ │ ├── example_default_field_value_test.go
│ │ │ ├── example_global_hook_test.go
│ │ │ ├── example_hook_test.go
│ │ │ ├── exported.go
│ │ │ ├── formatter.go
│ │ │ ├── formatter_bench_test.go
│ │ │ ├── go.mod
│ │ │ ├── go.sum
│ │ │ ├── hook_test.go
│ │ │ ├── hooks/
│ │ │ │ ├── syslog/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── syslog.go
│ │ │ │ │ └── syslog_test.go
│ │ │ │ └── test/
│ │ │ │ ├── test.go
│ │ │ │ └── test_test.go
│ │ │ ├── hooks.go
│ │ │ ├── internal/
│ │ │ │ └── testutils/
│ │ │ │ └── testutils.go
│ │ │ ├── json_formatter.go
│ │ │ ├── json_formatter_test.go
│ │ │ ├── level_test.go
│ │ │ ├── logger.go
│ │ │ ├── logger_bench_test.go
│ │ │ ├── logger_test.go
│ │ │ ├── logrus.go
│ │ │ ├── logrus_test.go
│ │ │ ├── terminal_check_appengine.go
│ │ │ ├── terminal_check_bsd.go
│ │ │ ├── terminal_check_js.go
│ │ │ ├── terminal_check_no_terminal.go
│ │ │ ├── terminal_check_notappengine.go
│ │ │ ├── terminal_check_solaris.go
│ │ │ ├── terminal_check_unix.go
│ │ │ ├── terminal_check_windows.go
│ │ │ ├── text_formatter.go
│ │ │ ├── text_formatter_test.go
│ │ │ ├── travis/
│ │ │ │ ├── cross_build.sh
│ │ │ │ ├── install.sh
│ │ │ │ └── lint.sh
│ │ │ ├── writer.go
│ │ │ └── writer_test.go
│ │ ├── souriki/
│ │ │ └── ali_mns/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── client.go
│ │ │ ├── credential.go
│ │ │ ├── decoder.go
│ │ │ ├── errors.go
│ │ │ ├── example/
│ │ │ │ ├── app.conf.example
│ │ │ │ ├── queue_example.go
│ │ │ │ └── topic_example.go
│ │ │ ├── message.go
│ │ │ ├── qps_monitor.go
│ │ │ ├── queue.go
│ │ │ ├── queue_manager.go
│ │ │ ├── topic.go
│ │ │ ├── topic_manager.go
│ │ │ └── utils.go
│ │ ├── spf13/
│ │ │ ├── afero/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ ├── afero.go
│ │ │ │ ├── basepath.go
│ │ │ │ ├── cacheOnReadFs.go
│ │ │ │ ├── const_bsds.go
│ │ │ │ ├── const_win_unix.go
│ │ │ │ ├── copyOnWriteFs.go
│ │ │ │ ├── httpFs.go
│ │ │ │ ├── ioutil.go
│ │ │ │ ├── lstater.go
│ │ │ │ ├── match.go
│ │ │ │ ├── mem/
│ │ │ │ │ ├── dir.go
│ │ │ │ │ ├── dirmap.go
│ │ │ │ │ └── file.go
│ │ │ │ ├── memmap.go
│ │ │ │ ├── os.go
│ │ │ │ ├── path.go
│ │ │ │ ├── readonlyfs.go
│ │ │ │ ├── regexpfs.go
│ │ │ │ ├── unionFile.go
│ │ │ │ └── util.go
│ │ │ ├── cobra/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ ├── args.go
│ │ │ │ ├── bash_completions.go
│ │ │ │ ├── cobra/
│ │ │ │ │ └── cmd/
│ │ │ │ │ └── testdata/
│ │ │ │ │ └── LICENSE.golden
│ │ │ │ ├── cobra.go
│ │ │ │ ├── command.go
│ │ │ │ ├── command_notwin.go
│ │ │ │ ├── command_win.go
│ │ │ │ └── zsh_completions.go
│ │ │ └── pflag/
│ │ │ ├── LICENSE
│ │ │ ├── bool.go
│ │ │ ├── bool_slice.go
│ │ │ ├── bytes.go
│ │ │ ├── count.go
│ │ │ ├── duration.go
│ │ │ ├── duration_slice.go
│ │ │ ├── flag.go
│ │ │ ├── float32.go
│ │ │ ├── float64.go
│ │ │ ├── golangflag.go
│ │ │ ├── int.go
│ │ │ ├── int16.go
│ │ │ ├── int32.go
│ │ │ ├── int64.go
│ │ │ ├── int8.go
│ │ │ ├── int_slice.go
│ │ │ ├── ip.go
│ │ │ ├── ip_slice.go
│ │ │ ├── ipmask.go
│ │ │ ├── ipnet.go
│ │ │ ├── string.go
│ │ │ ├── string_array.go
│ │ │ ├── string_slice.go
│ │ │ ├── string_to_int.go
│ │ │ ├── string_to_string.go
│ │ │ ├── uint.go
│ │ │ ├── uint16.go
│ │ │ ├── uint32.go
│ │ │ ├── uint64.go
│ │ │ ├── uint8.go
│ │ │ └── uint_slice.go
│ │ ├── tidwall/
│ │ │ ├── gjson/
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.md
│ │ │ │ ├── SYNTAX.md
│ │ │ │ ├── gjson.go
│ │ │ │ ├── gjson_gae.go
│ │ │ │ ├── gjson_ngae.go
│ │ │ │ ├── gjson_test.go
│ │ │ │ ├── go.mod
│ │ │ │ └── go.sum
│ │ │ ├── match/
│ │ │ │ ├── .travis.yml
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.md
│ │ │ │ ├── match.go
│ │ │ │ └── match_test.go
│ │ │ └── pretty/
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── pretty.go
│ │ │ └── pretty_test.go
│ │ └── valyala/
│ │ ├── bytebufferpool/
│ │ │ ├── LICENSE
│ │ │ ├── bytebuffer.go
│ │ │ ├── doc.go
│ │ │ └── pool.go
│ │ └── fasthttp/
│ │ ├── LICENSE
│ │ ├── args.go
│ │ ├── bytebuffer.go
│ │ ├── bytesconv.go
│ │ ├── bytesconv_32.go
│ │ ├── bytesconv_64.go
│ │ ├── client.go
│ │ ├── coarseTime.go
│ │ ├── compress.go
│ │ ├── cookie.go
│ │ ├── doc.go
│ │ ├── fasthttputil/
│ │ │ ├── doc.go
│ │ │ ├── inmemory_listener.go
│ │ │ └── pipeconns.go
│ │ ├── fs.go
│ │ ├── header.go
│ │ ├── http.go
│ │ ├── lbclient.go
│ │ ├── nocopy.go
│ │ ├── peripconn.go
│ │ ├── reuseport/
│ │ │ └── LICENSE
│ │ ├── server.go
│ │ ├── stackless/
│ │ │ ├── doc.go
│ │ │ ├── func.go
│ │ │ └── writer.go
│ │ ├── status.go
│ │ ├── stream.go
│ │ ├── strings.go
│ │ ├── tcpdialer.go
│ │ ├── timer.go
│ │ ├── uri.go
│ │ ├── uri_unix.go
│ │ ├── uri_windows.go
│ │ ├── userdata.go
│ │ └── workerpool.go
│ ├── go.opencensus.io/
│ │ ├── AUTHORS
│ │ ├── LICENSE
│ │ ├── exemplar/
│ │ │ └── exemplar.go
│ │ ├── internal/
│ │ │ ├── internal.go
│ │ │ ├── sanitize.go
│ │ │ ├── tagencoding/
│ │ │ │ └── tagencoding.go
│ │ │ └── traceinternals.go
│ │ ├── opencensus.go
│ │ ├── plugin/
│ │ │ ├── ocgrpc/
│ │ │ │ ├── client.go
│ │ │ │ ├── client_metrics.go
│ │ │ │ ├── client_stats_handler.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── server.go
│ │ │ │ ├── server_metrics.go
│ │ │ │ ├── server_stats_handler.go
│ │ │ │ ├── stats_common.go
│ │ │ │ └── trace_common.go
│ │ │ └── ochttp/
│ │ │ ├── client.go
│ │ │ ├── client_stats.go
│ │ │ ├── doc.go
│ │ │ ├── propagation/
│ │ │ │ └── b3/
│ │ │ │ └── b3.go
│ │ │ ├── route.go
│ │ │ ├── server.go
│ │ │ ├── span_annotating_client_trace.go
│ │ │ ├── stats.go
│ │ │ └── trace.go
│ │ ├── stats/
│ │ │ ├── doc.go
│ │ │ ├── internal/
│ │ │ │ ├── record.go
│ │ │ │ └── validation.go
│ │ │ ├── measure.go
│ │ │ ├── measure_float64.go
│ │ │ ├── measure_int64.go
│ │ │ ├── record.go
│ │ │ ├── units.go
│ │ │ └── view/
│ │ │ ├── aggregation.go
│ │ │ ├── aggregation_data.go
│ │ │ ├── collector.go
│ │ │ ├── doc.go
│ │ │ ├── export.go
│ │ │ ├── view.go
│ │ │ ├── worker.go
│ │ │ └── worker_commands.go
│ │ ├── tag/
│ │ │ ├── context.go
│ │ │ ├── doc.go
│ │ │ ├── key.go
│ │ │ ├── map.go
│ │ │ ├── map_codec.go
│ │ │ ├── profile_19.go
│ │ │ ├── profile_not19.go
│ │ │ └── validate.go
│ │ └── trace/
│ │ ├── basetypes.go
│ │ ├── config.go
│ │ ├── doc.go
│ │ ├── exemplar.go
│ │ ├── export.go
│ │ ├── internal/
│ │ │ └── internal.go
│ │ ├── propagation/
│ │ │ └── propagation.go
│ │ ├── sampling.go
│ │ ├── spanbucket.go
│ │ ├── spanstore.go
│ │ ├── status_codes.go
│ │ ├── trace.go
│ │ ├── trace_go11.go
│ │ ├── trace_nongo11.go
│ │ └── tracestate/
│ │ └── tracestate.go
│ ├── go.uber.org/
│ │ ├── atomic/
│ │ │ ├── LICENSE.txt
│ │ │ ├── atomic.go
│ │ │ └── string.go
│ │ ├── multierr/
│ │ │ ├── LICENSE.txt
│ │ │ └── error.go
│ │ └── zap/
│ │ ├── LICENSE.txt
│ │ ├── array.go
│ │ ├── buffer/
│ │ │ ├── buffer.go
│ │ │ └── pool.go
│ │ ├── config.go
│ │ ├── doc.go
│ │ ├── encoder.go
│ │ ├── error.go
│ │ ├── field.go
│ │ ├── flag.go
│ │ ├── global.go
│ │ ├── http_handler.go
│ │ ├── internal/
│ │ │ ├── bufferpool/
│ │ │ │ └── bufferpool.go
│ │ │ ├── color/
│ │ │ │ └── color.go
│ │ │ └── exit/
│ │ │ └── exit.go
│ │ ├── level.go
│ │ ├── logger.go
│ │ ├── options.go
│ │ ├── sink.go
│ │ ├── stacktrace.go
│ │ ├── sugar.go
│ │ ├── time.go
│ │ ├── writer.go
│ │ └── zapcore/
│ │ ├── console_encoder.go
│ │ ├── core.go
│ │ ├── doc.go
│ │ ├── encoder.go
│ │ ├── entry.go
│ │ ├── error.go
│ │ ├── field.go
│ │ ├── hook.go
│ │ ├── json_encoder.go
│ │ ├── level.go
│ │ ├── level_strings.go
│ │ ├── marshaler.go
│ │ ├── memory_encoder.go
│ │ ├── sampler.go
│ │ ├── tee.go
│ │ └── write_syncer.go
│ ├── golang.org/
│ │ └── x/
│ │ ├── crypto/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── PATENTS
│ │ │ └── ssh/
│ │ │ └── terminal/
│ │ │ ├── terminal.go
│ │ │ ├── util.go
│ │ │ ├── util_bsd.go
│ │ │ ├── util_linux.go
│ │ │ ├── util_plan9.go
│ │ │ ├── util_solaris.go
│ │ │ └── util_windows.go
│ │ ├── net/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── PATENTS
│ │ │ ├── context/
│ │ │ │ ├── context.go
│ │ │ │ ├── ctxhttp/
│ │ │ │ │ ├── ctxhttp.go
│ │ │ │ │ └── ctxhttp_pre17.go
│ │ │ │ ├── go17.go
│ │ │ │ ├── go19.go
│ │ │ │ ├── pre_go17.go
│ │ │ │ └── pre_go19.go
│ │ │ ├── html/
│ │ │ │ ├── atom/
│ │ │ │ │ ├── atom.go
│ │ │ │ │ ├── gen.go
│ │ │ │ │ └── table.go
│ │ │ │ ├── charset/
│ │ │ │ │ └── charset.go
│ │ │ │ ├── const.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── doctype.go
│ │ │ │ ├── entity.go
│ │ │ │ ├── escape.go
│ │ │ │ ├── foreign.go
│ │ │ │ ├── node.go
│ │ │ │ ├── parse.go
│ │ │ │ ├── render.go
│ │ │ │ └── token.go
│ │ │ ├── http/
│ │ │ │ └── httpguts/
│ │ │ │ ├── guts.go
│ │ │ │ └── httplex.go
│ │ │ ├── http2/
│ │ │ │ ├── ciphers.go
│ │ │ │ ├── client_conn_pool.go
│ │ │ │ ├── configure_transport.go
│ │ │ │ ├── databuffer.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── flow.go
│ │ │ │ ├── frame.go
│ │ │ │ ├── go111.go
│ │ │ │ ├── go16.go
│ │ │ │ ├── go17.go
│ │ │ │ ├── go17_not18.go
│ │ │ │ ├── go18.go
│ │ │ │ ├── go19.go
│ │ │ │ ├── gotrack.go
│ │ │ │ ├── headermap.go
│ │ │ │ ├── hpack/
│ │ │ │ │ ├── encode.go
│ │ │ │ │ ├── hpack.go
│ │ │ │ │ ├── huffman.go
│ │ │ │ │ └── tables.go
│ │ │ │ ├── http2.go
│ │ │ │ ├── not_go111.go
│ │ │ │ ├── not_go16.go
│ │ │ │ ├── not_go17.go
│ │ │ │ ├── not_go18.go
│ │ │ │ ├── not_go19.go
│ │ │ │ ├── pipe.go
│ │ │ │ ├── server.go
│ │ │ │ ├── transport.go
│ │ │ │ ├── write.go
│ │ │ │ ├── writesched.go
│ │ │ │ ├── writesched_priority.go
│ │ │ │ └── writesched_random.go
│ │ │ ├── idna/
│ │ │ │ ├── idna.go
│ │ │ │ ├── punycode.go
│ │ │ │ ├── tables.go
│ │ │ │ ├── trie.go
│ │ │ │ └── trieval.go
│ │ │ ├── internal/
│ │ │ │ └── timeseries/
│ │ │ │ └── timeseries.go
│ │ │ └── trace/
│ │ │ ├── events.go
│ │ │ ├── histogram.go
│ │ │ ├── trace.go
│ │ │ ├── trace_go16.go
│ │ │ └── trace_go17.go
│ │ ├── oauth2/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── google/
│ │ │ │ ├── appengine.go
│ │ │ │ ├── appengine_hook.go
│ │ │ │ ├── appengineflex_hook.go
│ │ │ │ ├── default.go
│ │ │ │ ├── doc_go19.go
│ │ │ │ ├── doc_not_go19.go
│ │ │ │ ├── go19.go
│ │ │ │ ├── google.go
│ │ │ │ ├── jwt.go
│ │ │ │ ├── not_go19.go
│ │ │ │ └── sdk.go
│ │ │ ├── internal/
│ │ │ │ ├── client_appengine.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── oauth2.go
│ │ │ │ ├── token.go
│ │ │ │ └── transport.go
│ │ │ ├── jws/
│ │ │ │ └── jws.go
│ │ │ ├── jwt/
│ │ │ │ └── jwt.go
│ │ │ ├── oauth2.go
│ │ │ ├── token.go
│ │ │ └── transport.go
│ │ ├── sync/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── PATENTS
│ │ │ ├── errgroup/
│ │ │ │ └── errgroup.go
│ │ │ └── semaphore/
│ │ │ └── semaphore.go
│ │ ├── sys/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── PATENTS
│ │ │ ├── unix/
│ │ │ │ ├── affinity_linux.go
│ │ │ │ ├── aliases.go
│ │ │ │ ├── asm_aix_ppc64.s
│ │ │ │ ├── asm_darwin_386.s
│ │ │ │ ├── asm_darwin_amd64.s
│ │ │ │ ├── asm_darwin_arm.s
│ │ │ │ ├── asm_darwin_arm64.s
│ │ │ │ ├── asm_dragonfly_amd64.s
│ │ │ │ ├── asm_freebsd_386.s
│ │ │ │ ├── asm_freebsd_amd64.s
│ │ │ │ ├── asm_freebsd_arm.s
│ │ │ │ ├── asm_linux_386.s
│ │ │ │ ├── asm_linux_amd64.s
│ │ │ │ ├── asm_linux_arm.s
│ │ │ │ ├── asm_linux_arm64.s
│ │ │ │ ├── asm_linux_mips64x.s
│ │ │ │ ├── asm_linux_mipsx.s
│ │ │ │ ├── asm_linux_ppc64x.s
│ │ │ │ ├── asm_linux_s390x.s
│ │ │ │ ├── asm_netbsd_386.s
│ │ │ │ ├── asm_netbsd_amd64.s
│ │ │ │ ├── asm_netbsd_arm.s
│ │ │ │ ├── asm_openbsd_386.s
│ │ │ │ ├── asm_openbsd_amd64.s
│ │ │ │ ├── asm_openbsd_arm.s
│ │ │ │ ├── asm_solaris_amd64.s
│ │ │ │ ├── bluetooth_linux.go
│ │ │ │ ├── cap_freebsd.go
│ │ │ │ ├── constants.go
│ │ │ │ ├── dev_aix_ppc.go
│ │ │ │ ├── dev_aix_ppc64.go
│ │ │ │ ├── dev_darwin.go
│ │ │ │ ├── dev_dragonfly.go
│ │ │ │ ├── dev_freebsd.go
│ │ │ │ ├── dev_linux.go
│ │ │ │ ├── dev_netbsd.go
│ │ │ │ ├── dev_openbsd.go
│ │ │ │ ├── dirent.go
│ │ │ │ ├── endian_big.go
│ │ │ │ ├── endian_little.go
│ │ │ │ ├── env_unix.go
│ │ │ │ ├── errors_freebsd_386.go
│ │ │ │ ├── errors_freebsd_amd64.go
│ │ │ │ ├── errors_freebsd_arm.go
│ │ │ │ ├── fcntl.go
│ │ │ │ ├── fcntl_linux_32bit.go
│ │ │ │ ├── gccgo.go
│ │ │ │ ├── gccgo_c.c
│ │ │ │ ├── gccgo_linux_amd64.go
│ │ │ │ ├── ioctl.go
│ │ │ │ ├── mkpost.go
│ │ │ │ ├── openbsd_pledge.go
│ │ │ │ ├── pagesize_unix.go
│ │ │ │ ├── race.go
│ │ │ │ ├── race0.go
│ │ │ │ ├── sockcmsg_linux.go
│ │ │ │ ├── sockcmsg_unix.go
│ │ │ │ ├── str.go
│ │ │ │ ├── syscall.go
│ │ │ │ ├── syscall_aix.go
│ │ │ │ ├── syscall_aix_ppc.go
│ │ │ │ ├── syscall_aix_ppc64.go
│ │ │ │ ├── syscall_bsd.go
│ │ │ │ ├── syscall_darwin.go
│ │ │ │ ├── syscall_darwin_386.go
│ │ │ │ ├── syscall_darwin_amd64.go
│ │ │ │ ├── syscall_darwin_arm.go
│ │ │ │ ├── syscall_darwin_arm64.go
│ │ │ │ ├── syscall_dragonfly.go
│ │ │ │ ├── syscall_dragonfly_amd64.go
│ │ │ │ ├── syscall_freebsd.go
│ │ │ │ ├── syscall_freebsd_386.go
│ │ │ │ ├── syscall_freebsd_amd64.go
│ │ │ │ ├── syscall_freebsd_arm.go
│ │ │ │ ├── syscall_linux.go
│ │ │ │ ├── syscall_linux_386.go
│ │ │ │ ├── syscall_linux_amd64.go
│ │ │ │ ├── syscall_linux_amd64_gc.go
│ │ │ │ ├── syscall_linux_arm.go
│ │ │ │ ├── syscall_linux_arm64.go
│ │ │ │ ├── syscall_linux_gc.go
│ │ │ │ ├── syscall_linux_gc_386.go
│ │ │ │ ├── syscall_linux_gccgo_386.go
│ │ │ │ ├── syscall_linux_gccgo_arm.go
│ │ │ │ ├── syscall_linux_mips64x.go
│ │ │ │ ├── syscall_linux_mipsx.go
│ │ │ │ ├── syscall_linux_ppc64x.go
│ │ │ │ ├── syscall_linux_riscv64.go
│ │ │ │ ├── syscall_linux_s390x.go
│ │ │ │ ├── syscall_linux_sparc64.go
│ │ │ │ ├── syscall_netbsd.go
│ │ │ │ ├── syscall_netbsd_386.go
│ │ │ │ ├── syscall_netbsd_amd64.go
│ │ │ │ ├── syscall_netbsd_arm.go
│ │ │ │ ├── syscall_openbsd.go
│ │ │ │ ├── syscall_openbsd_386.go
│ │ │ │ ├── syscall_openbsd_amd64.go
│ │ │ │ ├── syscall_openbsd_arm.go
│ │ │ │ ├── syscall_solaris.go
│ │ │ │ ├── syscall_solaris_amd64.go
│ │ │ │ ├── syscall_unix.go
│ │ │ │ ├── syscall_unix_gc.go
│ │ │ │ ├── timestruct.go
│ │ │ │ ├── types_aix.go
│ │ │ │ ├── types_darwin.go
│ │ │ │ ├── types_dragonfly.go
│ │ │ │ ├── types_freebsd.go
│ │ │ │ ├── types_netbsd.go
│ │ │ │ ├── types_openbsd.go
│ │ │ │ ├── types_solaris.go
│ │ │ │ ├── xattr_bsd.go
│ │ │ │ ├── zerrors_aix_ppc.go
│ │ │ │ ├── zerrors_aix_ppc64.go
│ │ │ │ ├── zerrors_darwin_386.go
│ │ │ │ ├── zerrors_darwin_amd64.go
│ │ │ │ ├── zerrors_darwin_arm.go
│ │ │ │ ├── zerrors_darwin_arm64.go
│ │ │ │ ├── zerrors_dragonfly_amd64.go
│ │ │ │ ├── zerrors_freebsd_386.go
│ │ │ │ ├── zerrors_freebsd_amd64.go
│ │ │ │ ├── zerrors_freebsd_arm.go
│ │ │ │ ├── zerrors_linux_386.go
│ │ │ │ ├── zerrors_linux_amd64.go
│ │ │ │ ├── zerrors_linux_arm.go
│ │ │ │ ├── zerrors_linux_arm64.go
│ │ │ │ ├── zerrors_linux_mips.go
│ │ │ │ ├── zerrors_linux_mips64.go
│ │ │ │ ├── zerrors_linux_mips64le.go
│ │ │ │ ├── zerrors_linux_mipsle.go
│ │ │ │ ├── zerrors_linux_ppc64.go
│ │ │ │ ├── zerrors_linux_ppc64le.go
│ │ │ │ ├── zerrors_linux_riscv64.go
│ │ │ │ ├── zerrors_linux_s390x.go
│ │ │ │ ├── zerrors_linux_sparc64.go
│ │ │ │ ├── zerrors_netbsd_386.go
│ │ │ │ ├── zerrors_netbsd_amd64.go
│ │ │ │ ├── zerrors_netbsd_arm.go
│ │ │ │ ├── zerrors_openbsd_386.go
│ │ │ │ ├── zerrors_openbsd_amd64.go
│ │ │ │ ├── zerrors_openbsd_arm.go
│ │ │ │ ├── zerrors_solaris_amd64.go
│ │ │ │ ├── zptrace386_linux.go
│ │ │ │ ├── zptracearm_linux.go
│ │ │ │ ├── zptracemips_linux.go
│ │ │ │ ├── zptracemipsle_linux.go
│ │ │ │ ├── zsyscall_aix_ppc.go
│ │ │ │ ├── zsyscall_aix_ppc64.go
│ │ │ │ ├── zsyscall_aix_ppc64_gc.go
│ │ │ │ ├── zsyscall_aix_ppc64_gccgo.go
│ │ │ │ ├── zsyscall_darwin_386.go
│ │ │ │ ├── zsyscall_darwin_amd64.go
│ │ │ │ ├── zsyscall_darwin_arm.go
│ │ │ │ ├── zsyscall_darwin_arm64.go
│ │ │ │ ├── zsyscall_dragonfly_amd64.go
│ │ │ │ ├── zsyscall_freebsd_386.go
│ │ │ │ ├── zsyscall_freebsd_amd64.go
│ │ │ │ ├── zsyscall_freebsd_arm.go
│ │ │ │ ├── zsyscall_linux_386.go
│ │ │ │ ├── zsyscall_linux_amd64.go
│ │ │ │ ├── zsyscall_linux_arm.go
│ │ │ │ ├── zsyscall_linux_arm64.go
│ │ │ │ ├── zsyscall_linux_mips.go
│ │ │ │ ├── zsyscall_linux_mips64.go
│ │ │ │ ├── zsyscall_linux_mips64le.go
│ │ │ │ ├── zsyscall_linux_mipsle.go
│ │ │ │ ├── zsyscall_linux_ppc64.go
│ │ │ │ ├── zsyscall_linux_ppc64le.go
│ │ │ │ ├── zsyscall_linux_riscv64.go
│ │ │ │ ├── zsyscall_linux_s390x.go
│ │ │ │ ├── zsyscall_linux_sparc64.go
│ │ │ │ ├── zsyscall_netbsd_386.go
│ │ │ │ ├── zsyscall_netbsd_amd64.go
│ │ │ │ ├── zsyscall_netbsd_arm.go
│ │ │ │ ├── zsyscall_openbsd_386.go
│ │ │ │ ├── zsyscall_openbsd_amd64.go
│ │ │ │ ├── zsyscall_openbsd_arm.go
│ │ │ │ ├── zsyscall_solaris_amd64.go
│ │ │ │ ├── zsysctl_openbsd_386.go
│ │ │ │ ├── zsysctl_openbsd_amd64.go
│ │ │ │ ├── zsysctl_openbsd_arm.go
│ │ │ │ ├── zsysnum_darwin_386.go
│ │ │ │ ├── zsysnum_darwin_amd64.go
│ │ │ │ ├── zsysnum_darwin_arm.go
│ │ │ │ ├── zsysnum_darwin_arm64.go
│ │ │ │ ├── zsysnum_dragonfly_amd64.go
│ │ │ │ ├── zsysnum_freebsd_386.go
│ │ │ │ ├── zsysnum_freebsd_amd64.go
│ │ │ │ ├── zsysnum_freebsd_arm.go
│ │ │ │ ├── zsysnum_linux_386.go
│ │ │ │ ├── zsysnum_linux_amd64.go
│ │ │ │ ├── zsysnum_linux_arm.go
│ │ │ │ ├── zsysnum_linux_arm64.go
│ │ │ │ ├── zsysnum_linux_mips.go
│ │ │ │ ├── zsysnum_linux_mips64.go
│ │ │ │ ├── zsysnum_linux_mips64le.go
│ │ │ │ ├── zsysnum_linux_mipsle.go
│ │ │ │ ├── zsysnum_linux_ppc64.go
│ │ │ │ ├── zsysnum_linux_ppc64le.go
│ │ │ │ ├── zsysnum_linux_riscv64.go
│ │ │ │ ├── zsysnum_linux_s390x.go
│ │ │ │ ├── zsysnum_linux_sparc64.go
│ │ │ │ ├── zsysnum_netbsd_386.go
│ │ │ │ ├── zsysnum_netbsd_amd64.go
│ │ │ │ ├── zsysnum_netbsd_arm.go
│ │ │ │ ├── zsysnum_openbsd_386.go
│ │ │ │ ├── zsysnum_openbsd_amd64.go
│ │ │ │ ├── zsysnum_openbsd_arm.go
│ │ │ │ ├── ztypes_aix_ppc.go
│ │ │ │ ├── ztypes_aix_ppc64.go
│ │ │ │ ├── ztypes_darwin_386.go
│ │ │ │ ├── ztypes_darwin_amd64.go
│ │ │ │ ├── ztypes_darwin_arm.go
│ │ │ │ ├── ztypes_darwin_arm64.go
│ │ │ │ ├── ztypes_dragonfly_amd64.go
│ │ │ │ ├── ztypes_freebsd_386.go
│ │ │ │ ├── ztypes_freebsd_amd64.go
│ │ │ │ ├── ztypes_freebsd_arm.go
│ │ │ │ ├── ztypes_linux_386.go
│ │ │ │ ├── ztypes_linux_amd64.go
│ │ │ │ ├── ztypes_linux_arm.go
│ │ │ │ ├── ztypes_linux_arm64.go
│ │ │ │ ├── ztypes_linux_mips.go
│ │ │ │ ├── ztypes_linux_mips64.go
│ │ │ │ ├── ztypes_linux_mips64le.go
│ │ │ │ ├── ztypes_linux_mipsle.go
│ │ │ │ ├── ztypes_linux_ppc64.go
│ │ │ │ ├── ztypes_linux_ppc64le.go
│ │ │ │ ├── ztypes_linux_riscv64.go
│ │ │ │ ├── ztypes_linux_s390x.go
│ │ │ │ ├── ztypes_linux_sparc64.go
│ │ │ │ ├── ztypes_netbsd_386.go
│ │ │ │ ├── ztypes_netbsd_amd64.go
│ │ │ │ ├── ztypes_netbsd_arm.go
│ │ │ │ ├── ztypes_openbsd_386.go
│ │ │ │ ├── ztypes_openbsd_amd64.go
│ │ │ │ ├── ztypes_openbsd_arm.go
│ │ │ │ └── ztypes_solaris_amd64.go
│ │ │ └── windows/
│ │ │ ├── aliases.go
│ │ │ ├── asm_windows_386.s
│ │ │ ├── asm_windows_amd64.s
│ │ │ ├── asm_windows_arm.s
│ │ │ ├── dll_windows.go
│ │ │ ├── env_windows.go
│ │ │ ├── eventlog.go
│ │ │ ├── exec_windows.go
│ │ │ ├── memory_windows.go
│ │ │ ├── mksyscall.go
│ │ │ ├── race.go
│ │ │ ├── race0.go
│ │ │ ├── security_windows.go
│ │ │ ├── service.go
│ │ │ ├── str.go
│ │ │ ├── syscall.go
│ │ │ ├── syscall_windows.go
│ │ │ ├── types_windows.go
│ │ │ ├── types_windows_386.go
│ │ │ ├── types_windows_amd64.go
│ │ │ ├── types_windows_arm.go
│ │ │ └── zsyscall_windows.go
│ │ ├── text/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── PATENTS
│ │ │ ├── collate/
│ │ │ │ ├── build/
│ │ │ │ │ ├── builder.go
│ │ │ │ │ ├── colelem.go
│ │ │ │ │ ├── contract.go
│ │ │ │ │ ├── order.go
│ │ │ │ │ ├── table.go
│ │ │ │ │ └── trie.go
│ │ │ │ ├── collate.go
│ │ │ │ ├── index.go
│ │ │ │ ├── maketables.go
│ │ │ │ ├── option.go
│ │ │ │ ├── sort.go
│ │ │ │ └── tables.go
│ │ │ ├── encoding/
│ │ │ │ ├── charmap/
│ │ │ │ │ ├── charmap.go
│ │ │ │ │ ├── maketables.go
│ │ │ │ │ └── tables.go
│ │ │ │ ├── encoding.go
│ │ │ │ ├── htmlindex/
│ │ │ │ │ ├── gen.go
│ │ │ │ │ ├── htmlindex.go
│ │ │ │ │ ├── map.go
│ │ │ │ │ └── tables.go
│ │ │ │ ├── internal/
│ │ │ │ │ ├── identifier/
│ │ │ │ │ │ ├── gen.go
│ │ │ │ │ │ ├── identifier.go
│ │ │ │ │ │ └── mib.go
│ │ │ │ │ └── internal.go
│ │ │ │ ├── japanese/
│ │ │ │ │ ├── all.go
│ │ │ │ │ ├── eucjp.go
│ │ │ │ │ ├── iso2022jp.go
│ │ │ │ │ ├── maketables.go
│ │ │ │ │ ├── shiftjis.go
│ │ │ │ │ └── tables.go
│ │ │ │ ├── korean/
│ │ │ │ │ ├── euckr.go
│ │ │ │ │ ├── maketables.go
│ │ │ │ │ └── tables.go
│ │ │ │ ├── simplifiedchinese/
│ │ │ │ │ ├── all.go
│ │ │ │ │ ├── gbk.go
│ │ │ │ │ ├── hzgb2312.go
│ │ │ │ │ ├── maketables.go
│ │ │ │ │ └── tables.go
│ │ │ │ ├── traditionalchinese/
│ │ │ │ │ ├── big5.go
│ │ │ │ │ ├── maketables.go
│ │ │ │ │ └── tables.go
│ │ │ │ └── unicode/
│ │ │ │ ├── override.go
│ │ │ │ └── unicode.go
│ │ │ ├── internal/
│ │ │ │ ├── colltab/
│ │ │ │ │ ├── collelem.go
│ │ │ │ │ ├── colltab.go
│ │ │ │ │ ├── contract.go
│ │ │ │ │ ├── iter.go
│ │ │ │ │ ├── numeric.go
│ │ │ │ │ ├── table.go
│ │ │ │ │ ├── trie.go
│ │ │ │ │ └── weighter.go
│ │ │ │ ├── gen/
│ │ │ │ │ ├── code.go
│ │ │ │ │ └── gen.go
│ │ │ │ ├── tag/
│ │ │ │ │ └── tag.go
│ │ │ │ ├── triegen/
│ │ │ │ │ ├── compact.go
│ │ │ │ │ ├── print.go
│ │ │ │ │ └── triegen.go
│ │ │ │ ├── ucd/
│ │ │ │ │ └── ucd.go
│ │ │ │ └── utf8internal/
│ │ │ │ └── utf8internal.go
│ │ │ ├── language/
│ │ │ │ ├── common.go
│ │ │ │ ├── coverage.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── gen.go
│ │ │ │ ├── gen_common.go
│ │ │ │ ├── gen_index.go
│ │ │ │ ├── go1_1.go
│ │ │ │ ├── go1_2.go
│ │ │ │ ├── index.go
│ │ │ │ ├── language.go
│ │ │ │ ├── lookup.go
│ │ │ │ ├── match.go
│ │ │ │ ├── parse.go
│ │ │ │ ├── tables.go
│ │ │ │ └── tags.go
│ │ │ ├── runes/
│ │ │ │ ├── cond.go
│ │ │ │ └── runes.go
│ │ │ ├── secure/
│ │ │ │ └── bidirule/
│ │ │ │ ├── bidirule.go
│ │ │ │ ├── bidirule10.0.0.go
│ │ │ │ └── bidirule9.0.0.go
│ │ │ ├── transform/
│ │ │ │ └── transform.go
│ │ │ └── unicode/
│ │ │ ├── bidi/
│ │ │ │ ├── bidi.go
│ │ │ │ ├── bracket.go
│ │ │ │ ├── core.go
│ │ │ │ ├── gen.go
│ │ │ │ ├── gen_ranges.go
│ │ │ │ ├── gen_trieval.go
│ │ │ │ ├── prop.go
│ │ │ │ ├── tables10.0.0.go
│ │ │ │ ├── tables9.0.0.go
│ │ │ │ └── trieval.go
│ │ │ ├── cldr/
│ │ │ │ ├── base.go
│ │ │ │ ├── cldr.go
│ │ │ │ ├── collate.go
│ │ │ │ ├── decode.go
│ │ │ │ ├── makexml.go
│ │ │ │ ├── resolve.go
│ │ │ │ ├── slice.go
│ │ │ │ └── xml.go
│ │ │ ├── norm/
│ │ │ │ ├── composition.go
│ │ │ │ ├── forminfo.go
│ │ │ │ ├── input.go
│ │ │ │ ├── iter.go
│ │ │ │ ├── maketables.go
│ │ │ │ ├── normalize.go
│ │ │ │ ├── readwriter.go
│ │ │ │ ├── tables10.0.0.go
│ │ │ │ ├── tables9.0.0.go
│ │ │ │ ├── transform.go
│ │ │ │ ├── trie.go
│ │ │ │ └── triegen.go
│ │ │ └── rangetable/
│ │ │ ├── gen.go
│ │ │ ├── merge.go
│ │ │ ├── rangetable.go
│ │ │ ├── tables10.0.0.go
│ │ │ └── tables9.0.0.go
│ │ ├── time/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── PATENTS
│ │ │ └── rate/
│ │ │ ├── rate.go
│ │ │ ├── rate_go16.go
│ │ │ └── rate_go17.go
│ │ └── tools/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── cmd/
│ │ │ └── getgo/
│ │ │ └── LICENSE
│ │ ├── go/
│ │ │ └── ast/
│ │ │ └── astutil/
│ │ │ ├── enclosing.go
│ │ │ ├── imports.go
│ │ │ ├── rewrite.go
│ │ │ └── util.go
│ │ ├── imports/
│ │ │ ├── fix.go
│ │ │ ├── imports.go
│ │ │ ├── mkindex.go
│ │ │ ├── mkstdlib.go
│ │ │ ├── sortimports.go
│ │ │ └── zstdlib.go
│ │ ├── internal/
│ │ │ ├── fastwalk/
│ │ │ │ ├── fastwalk.go
│ │ │ │ ├── fastwalk_dirent_fileno.go
│ │ │ │ ├── fastwalk_dirent_ino.go
│ │ │ │ ├── fastwalk_dirent_namlen_bsd.go
│ │ │ │ ├── fastwalk_dirent_namlen_linux.go
│ │ │ │ ├── fastwalk_portable.go
│ │ │ │ └── fastwalk_unix.go
│ │ │ └── gopathwalk/
│ │ │ └── walk.go
│ │ └── third_party/
│ │ ├── moduleloader/
│ │ │ └── LICENSE
│ │ ├── typescript/
│ │ │ └── LICENSE
│ │ └── webcomponents/
│ │ └── LICENSE
│ ├── google.golang.org/
│ │ ├── api/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ ├── googleapi/
│ │ │ │ ├── internal/
│ │ │ │ │ └── uritemplates/
│ │ │ │ │ └── LICENSE
│ │ │ │ └── transport/
│ │ │ │ └── apikey.go
│ │ │ ├── internal/
│ │ │ │ ├── creds.go
│ │ │ │ ├── pool.go
│ │ │ │ └── settings.go
│ │ │ ├── iterator/
│ │ │ │ └── iterator.go
│ │ │ ├── option/
│ │ │ │ ├── credentials_go19.go
│ │ │ │ ├── credentials_notgo19.go
│ │ │ │ └── option.go
│ │ │ ├── support/
│ │ │ │ └── bundler/
│ │ │ │ └── bundler.go
│ │ │ └── transport/
│ │ │ ├── dial.go
│ │ │ ├── go19.go
│ │ │ ├── grpc/
│ │ │ │ ├── dial.go
│ │ │ │ ├── dial_appengine.go
│ │ │ │ ├── go18.go
│ │ │ │ └── not_go18.go
│ │ │ ├── http/
│ │ │ │ ├── dial.go
│ │ │ │ ├── dial_appengine.go
│ │ │ │ ├── go18.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── propagation/
│ │ │ │ │ └── http.go
│ │ │ │ └── not_go18.go
│ │ │ └── not_go19.go
│ │ ├── appengine/
│ │ │ ├── LICENSE
│ │ │ ├── appengine.go
│ │ │ ├── appengine_vm.go
│ │ │ ├── errors.go
│ │ │ ├── identity.go
│ │ │ ├── internal/
│ │ │ │ ├── api.go
│ │ │ │ ├── api_classic.go
│ │ │ │ ├── api_common.go
│ │ │ │ ├── app_id.go
│ │ │ │ ├── app_identity/
│ │ │ │ │ └── app_identity_service.pb.go
│ │ │ │ ├── base/
│ │ │ │ │ └── api_base.pb.go
│ │ │ │ ├── datastore/
│ │ │ │ │ └── datastore_v3.pb.go
│ │ │ │ ├── identity.go
│ │ │ │ ├── identity_classic.go
│ │ │ │ ├── identity_flex.go
│ │ │ │ ├── identity_vm.go
│ │ │ │ ├── internal.go
│ │ │ │ ├── log/
│ │ │ │ │ └── log_service.pb.go
│ │ │ │ ├── main.go
│ │ │ │ ├── main_vm.go
│ │ │ │ ├── metadata.go
│ │ │ │ ├── modules/
│ │ │ │ │ └── modules_service.pb.go
│ │ │ │ ├── net.go
│ │ │ │ ├── remote_api/
│ │ │ │ │ └── remote_api.pb.go
│ │ │ │ ├── socket/
│ │ │ │ │ └── socket_service.pb.go
│ │ │ │ ├── transaction.go
│ │ │ │ └── urlfetch/
│ │ │ │ └── urlfetch_service.pb.go
│ │ │ ├── namespace.go
│ │ │ ├── socket/
│ │ │ │ ├── doc.go
│ │ │ │ ├── socket_classic.go
│ │ │ │ └── socket_vm.go
│ │ │ ├── timeout.go
│ │ │ └── urlfetch/
│ │ │ └── urlfetch.go
│ │ ├── genproto/
│ │ │ ├── LICENSE
│ │ │ ├── googleapis/
│ │ │ │ ├── api/
│ │ │ │ │ └── annotations/
│ │ │ │ │ ├── annotations.pb.go
│ │ │ │ │ └── http.pb.go
│ │ │ │ ├── iam/
│ │ │ │ │ └── v1/
│ │ │ │ │ ├── iam_policy.pb.go
│ │ │ │ │ └── policy.pb.go
│ │ │ │ ├── pubsub/
│ │ │ │ │ └── v1/
│ │ │ │ │ └── pubsub.pb.go
│ │ │ │ └── rpc/
│ │ │ │ └── status/
│ │ │ │ └── status.pb.go
│ │ │ └── protobuf/
│ │ │ └── field_mask/
│ │ │ └── field_mask.pb.go
│ │ └── grpc/
│ │ ├── AUTHORS
│ │ ├── LICENSE
│ │ ├── backoff.go
│ │ ├── balancer/
│ │ │ ├── balancer.go
│ │ │ ├── base/
│ │ │ │ ├── balancer.go
│ │ │ │ └── base.go
│ │ │ └── roundrobin/
│ │ │ └── roundrobin.go
│ │ ├── balancer.go
│ │ ├── balancer_conn_wrappers.go
│ │ ├── balancer_v1_wrapper.go
│ │ ├── call.go
│ │ ├── clientconn.go
│ │ ├── codec.go
│ │ ├── codes/
│ │ │ ├── code_string.go
│ │ │ └── codes.go
│ │ ├── connectivity/
│ │ │ └── connectivity.go
│ │ ├── credentials/
│ │ │ ├── credentials.go
│ │ │ ├── go16.go
│ │ │ ├── go17.go
│ │ │ ├── go18.go
│ │ │ ├── go19.go
│ │ │ └── oauth/
│ │ │ └── oauth.go
│ │ ├── dialoptions.go
│ │ ├── doc.go
│ │ ├── encoding/
│ │ │ ├── encoding.go
│ │ │ └── proto/
│ │ │ └── proto.go
│ │ ├── go16.go
│ │ ├── go17.go
│ │ ├── grpclog/
│ │ │ ├── grpclog.go
│ │ │ ├── logger.go
│ │ │ └── loggerv2.go
│ │ ├── interceptor.go
│ │ ├── internal/
│ │ │ ├── backoff/
│ │ │ │ └── backoff.go
│ │ │ ├── channelz/
│ │ │ │ ├── funcs.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_linux.go
│ │ │ │ ├── types_nonlinux.go
│ │ │ │ ├── util_linux_go19.go
│ │ │ │ └── util_nonlinux_pre_go19.go
│ │ │ ├── envconfig/
│ │ │ │ └── envconfig.go
│ │ │ ├── grpcrand/
│ │ │ │ └── grpcrand.go
│ │ │ ├── internal.go
│ │ │ └── transport/
│ │ │ ├── bdp_estimator.go
│ │ │ ├── controlbuf.go
│ │ │ ├── defaults.go
│ │ │ ├── flowcontrol.go
│ │ │ ├── go16.go
│ │ │ ├── go17.go
│ │ │ ├── handler_server.go
│ │ │ ├── http2_client.go
│ │ │ ├── http2_server.go
│ │ │ ├── http_util.go
│ │ │ ├── log.go
│ │ │ └── transport.go
│ │ ├── keepalive/
│ │ │ └── keepalive.go
│ │ ├── metadata/
│ │ │ └── metadata.go
│ │ ├── naming/
│ │ │ ├── dns_resolver.go
│ │ │ ├── go17.go
│ │ │ ├── go18.go
│ │ │ └── naming.go
│ │ ├── peer/
│ │ │ └── peer.go
│ │ ├── picker_wrapper.go
│ │ ├── pickfirst.go
│ │ ├── proxy.go
│ │ ├── resolver/
│ │ │ ├── dns/
│ │ │ │ ├── dns_resolver.go
│ │ │ │ ├── go19.go
│ │ │ │ └── pre_go19.go
│ │ │ ├── passthrough/
│ │ │ │ └── passthrough.go
│ │ │ └── resolver.go
│ │ ├── resolver_conn_wrapper.go
│ │ ├── rpc_util.go
│ │ ├── server.go
│ │ ├── service_config.go
│ │ ├── stats/
│ │ │ ├── handlers.go
│ │ │ └── stats.go
│ │ ├── status/
│ │ │ ├── go16.go
│ │ │ ├── go17.go
│ │ │ └── status.go
│ │ ├── stream.go
│ │ ├── tap/
│ │ │ └── tap.go
│ │ ├── trace.go
│ │ └── version.go
│ ├── gopkg.in/
│ │ ├── fsnotify.v1/
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ ├── fen.go
│ │ │ ├── fsnotify.go
│ │ │ ├── inotify.go
│ │ │ ├── inotify_poller.go
│ │ │ ├── kqueue.go
│ │ │ ├── open_mode_bsd.go
│ │ │ ├── open_mode_darwin.go
│ │ │ └── windows.go
│ │ ├── go-playground/
│ │ │ └── webhooks.v5/
│ │ │ ├── LICENSE
│ │ │ ├── github/
│ │ │ │ ├── github.go
│ │ │ │ └── payload.go
│ │ │ └── testdata/
│ │ │ └── docker/
│ │ │ └── docker_hub_build_notice.json
│ │ ├── inf.v0/
│ │ │ ├── LICENSE
│ │ │ ├── dec.go
│ │ │ └── rounder.go
│ │ ├── natefinch/
│ │ │ └── lumberjack.v2/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── chown.go
│ │ │ ├── chown_linux.go
│ │ │ ├── example_test.go
│ │ │ ├── linux_test.go
│ │ │ ├── lumberjack.go
│ │ │ ├── lumberjack_test.go
│ │ │ ├── rotate_test.go
│ │ │ └── testing_test.go
│ │ ├── tomb.v1/
│ │ │ ├── LICENSE
│ │ │ └── tomb.go
│ │ └── yaml.v2/
│ │ ├── LICENSE
│ │ ├── LICENSE.libyaml
│ │ ├── NOTICE
│ │ ├── apic.go
│ │ ├── decode.go
│ │ ├── emitterc.go
│ │ ├── encode.go
│ │ ├── parserc.go
│ │ ├── readerc.go
│ │ ├── resolve.go
│ │ ├── scannerc.go
│ │ ├── sorter.go
│ │ ├── writerc.go
│ │ ├── yaml.go
│ │ ├── yamlh.go
│ │ └── yamlprivateh.go
│ ├── k8s.io/
│ │ ├── api/
│ │ │ ├── LICENSE
│ │ │ ├── admission/
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── admissionregistration/
│ │ │ │ ├── v1alpha1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── apps/
│ │ │ │ ├── v1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ ├── v1beta1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v1beta2/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── authentication/
│ │ │ │ ├── v1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── authorization/
│ │ │ │ ├── v1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── autoscaling/
│ │ │ │ ├── v1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ ├── v2beta1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v2beta2/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── batch/
│ │ │ │ ├── v1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ ├── v1beta1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v2alpha1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── certificates/
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── coordination/
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── core/
│ │ │ │ └── v1/
│ │ │ │ ├── annotation_key_constants.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── objectreference.go
│ │ │ │ ├── register.go
│ │ │ │ ├── resource.go
│ │ │ │ ├── taint.go
│ │ │ │ ├── toleration.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── events/
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── extensions/
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── networking/
│ │ │ │ └── v1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── policy/
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── rbac/
│ │ │ │ ├── v1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ ├── v1alpha1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── scheduling/
│ │ │ │ ├── v1alpha1/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ └── v1beta1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── settings/
│ │ │ │ └── v1alpha1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ └── storage/
│ │ │ ├── v1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ ├── v1alpha1/
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ └── v1beta1/
│ │ │ ├── doc.go
│ │ │ ├── generated.pb.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ ├── types_swagger_doc_generated.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── apiextensions-apiserver/
│ │ │ ├── LICENSE
│ │ │ └── pkg/
│ │ │ └── apis/
│ │ │ └── apiextensions/
│ │ │ ├── deepcopy.go
│ │ │ ├── doc.go
│ │ │ ├── helpers.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ ├── types_jsonschema.go
│ │ │ ├── v1beta1/
│ │ │ │ ├── conversion.go
│ │ │ │ ├── deepcopy.go
│ │ │ │ ├── defaults.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── generated.pb.go
│ │ │ │ ├── marshal.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_jsonschema.go
│ │ │ │ ├── zz_generated.conversion.go
│ │ │ │ ├── zz_generated.deepcopy.go
│ │ │ │ └── zz_generated.defaults.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── apimachinery/
│ │ │ ├── LICENSE
│ │ │ ├── pkg/
│ │ │ │ ├── api/
│ │ │ │ │ ├── equality/
│ │ │ │ │ │ └── semantic.go
│ │ │ │ │ ├── errors/
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ └── errors.go
│ │ │ │ │ ├── meta/
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── errors.go
│ │ │ │ │ │ ├── firsthit_restmapper.go
│ │ │ │ │ │ ├── help.go
│ │ │ │ │ │ ├── interfaces.go
│ │ │ │ │ │ ├── lazy.go
│ │ │ │ │ │ ├── meta.go
│ │ │ │ │ │ ├── multirestmapper.go
│ │ │ │ │ │ ├── priority.go
│ │ │ │ │ │ └── restmapper.go
│ │ │ │ │ ├── resource/
│ │ │ │ │ │ ├── amount.go
│ │ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ │ ├── math.go
│ │ │ │ │ │ ├── quantity.go
│ │ │ │ │ │ ├── quantity_proto.go
│ │ │ │ │ │ ├── scale_int.go
│ │ │ │ │ │ ├── suffix.go
│ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ └── validation/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generic.go
│ │ │ │ │ └── objectmeta.go
│ │ │ │ ├── apis/
│ │ │ │ │ └── meta/
│ │ │ │ │ ├── internalversion/
│ │ │ │ │ │ ├── conversion.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ ├── types.go
│ │ │ │ │ │ ├── zz_generated.conversion.go
│ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ ├── v1/
│ │ │ │ │ │ ├── controller_ref.go
│ │ │ │ │ │ ├── conversion.go
│ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ ├── duration.go
│ │ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ │ ├── group_version.go
│ │ │ │ │ │ ├── helpers.go
│ │ │ │ │ │ ├── labels.go
│ │ │ │ │ │ ├── meta.go
│ │ │ │ │ │ ├── micro_time.go
│ │ │ │ │ │ ├── micro_time_proto.go
│ │ │ │ │ │ ├── register.go
│ │ │ │ │ │ ├── time.go
│ │ │ │ │ │ ├── time_proto.go
│ │ │ │ │ │ ├── types.go
│ │ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ │ ├── unstructured/
│ │ │ │ │ │ │ ├── helpers.go
│ │ │ │ │ │ │ ├── unstructured.go
│ │ │ │ │ │ │ ├── unstructured_list.go
│ │ │ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ │ │ ├── validation/
│ │ │ │ │ │ │ └── validation.go
│ │ │ │ │ │ ├── watch.go
│ │ │ │ │ │ ├── zz_generated.deepcopy.go
│ │ │ │ │ │ └── zz_generated.defaults.go
│ │ │ │ │ └── v1beta1/
│ │ │ │ │ ├── conversion.go
│ │ │ │ │ ├── deepcopy.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_swagger_doc_generated.go
│ │ │ │ │ ├── zz_generated.deepcopy.go
│ │ │ │ │ └── zz_generated.defaults.go
│ │ │ │ ├── conversion/
│ │ │ │ │ ├── converter.go
│ │ │ │ │ ├── deep_equal.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── helper.go
│ │ │ │ │ └── queryparams/
│ │ │ │ │ ├── convert.go
│ │ │ │ │ └── doc.go
│ │ │ │ ├── fields/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── fields.go
│ │ │ │ │ ├── requirements.go
│ │ │ │ │ └── selector.go
│ │ │ │ ├── labels/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── labels.go
│ │ │ │ │ ├── selector.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ ├── runtime/
│ │ │ │ │ ├── codec.go
│ │ │ │ │ ├── codec_check.go
│ │ │ │ │ ├── conversion.go
│ │ │ │ │ ├── converter.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── embedded.go
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── extension.go
│ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ ├── helper.go
│ │ │ │ │ ├── interfaces.go
│ │ │ │ │ ├── register.go
│ │ │ │ │ ├── schema/
│ │ │ │ │ │ ├── generated.pb.go
│ │ │ │ │ │ ├── group_version.go
│ │ │ │ │ │ └── interfaces.go
│ │ │ │ │ ├── scheme.go
│ │ │ │ │ ├── scheme_builder.go
│ │ │ │ │ ├── serializer/
│ │ │ │ │ │ ├── codec_factory.go
│ │ │ │ │ │ ├── json/
│ │ │ │ │ │ │ ├── json.go
│ │ │ │ │ │ │ └── meta.go
│ │ │ │ │ │ ├── negotiated_codec.go
│ │ │ │ │ │ ├── protobuf/
│ │ │ │ │ │ │ ├── doc.go
│ │ │ │ │ │ │ └── protobuf.go
│ │ │ │ │ │ ├── protobuf_extension.go
│ │ │ │ │ │ ├── recognizer/
│ │ │ │ │ │ │ └── recognizer.go
│ │ │ │ │ │ ├── streaming/
│ │ │ │ │ │ │ └── streaming.go
│ │ │ │ │ │ └── versioning/
│ │ │ │ │ │ └── versioning.go
│ │ │ │ │ ├── swagger_doc_generator.go
│ │ │ │ │ ├── types.go
│ │ │ │ │ ├── types_proto.go
│ │ │ │ │ └── zz_generated.deepcopy.go
│ │ │ │ ├── selection/
│ │ │ │ │ └── operator.go
│ │ │ │ ├── types/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── namespacedname.go
│ │ │ │ │ ├── nodename.go
│ │ │ │ │ ├── patch.go
│ │ │ │ │ └── uid.go
│ │ │ │ ├── util/
│ │ │ │ │ ├── cache/
│ │ │ │
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
The issue tracker is **ONLY** used for bug report and feature request.
Any question or RocketMQ proposal please use our [mailing lists](http://rocketmq.apache.org/about/contact/).
**BUG REPORT**
1. Please describe the issue you observed:
- What did you do (The steps to reproduce)?
- What did you expect to see?
- What did you see instead?
2. Please tell us about your environment:
3. Other information (e.g. detailed explanation, logs, related issues, suggestions how to fix, etc):
**FEATURE REQUEST**
1. Please describe the feature you are requesting.
2. Provide any additional detail on your proposed use case for this feature.
2. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?
4. If there are some sub-tasks using -[] for each subtask and create a corresponding issue to map to the sub task:
- [sub-task1-issue-number](example_sub_issue1_link_here): sub-task1 description here,
- [sub-task2-issue-number](example_sub_issue2_link_here): sub-task2 description here,
- ...
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
## What is the purpose of the change
XXXXX
## Brief changelog
XX
## Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, `it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR`.
- [x] Make sure there is a [Github issue](https://github.com/apache/rocketmq/issues) filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
- [x] Format the pull request title like `[ISSUE #123] Fix UnknownException when host config not exist`. Each commit in the pull request should have a meaningful subject line and body.
- [x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
- [x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in [test module](https://github.com/apache/rocketmq/tree/master/test).
- [x] Run `mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle` to make sure basic checks pass. Run `mvn clean install -DskipITs` to make sure unit-test pass. Run `mvn clean test-compile failsafe:integration-test` to make sure integration-test pass.
- [ ] If this contribution is large, please file an [Apache Individual Contributor License Agreement](http://www.apache.org/licenses/#clas).
================================================
FILE: .gitignore
================================================
.idea
.classpath
.project
.settings/
target/
*.log*
*.iml
.idea/
*.versionsBackup
!NOTICE-BIN
!LICENSE-BIN
.DS_Store
.vscode
# .NET
.vs
[Bb]in/
[Oo]bj/
================================================
FILE: .travis.yml
================================================
dist: trusty
notifications:
email:
recipients:
- dev@rocketmq.apache.org
on_success: change
on_failure: always
language: java
jdk:
- oraclejdk8
- oraclejdk9
- oraclejdk11
- openjdk8
branches:
only:
- master
env:
- TEST_DIR=rocketmq-connect
script: "cd $TEST_DIR && mvn clean package"
================================================
FILE: README.md
================================================
# [Apache RocketMQ](https://github.com/apache/rocketmq) Community Projects Home
There are many of the Apache RocketMQ external projects, which is born from [Apache RocketMQ Improvement Proposal](https://github.com/apache/rocketmq/wiki/RocketMQ-Improvement-Proposal) and contributed and maintained by community. The PMC will lean towards developer community support, to help discovery and initial steps towards incubation in the external repository. Incubator Projects could graduate if they meet the following requirements.
* Require 3+1 vote from the PMC.
* Used successfully in production by at least three independent end users which, in the PMC judgement, are of adequate quality and scope.
* Have a healthy number of committers.
# Docs
[User Guide for Connect 中文版](./docs/connect/cn/README.md)
# Graduated Projects
### [RocketMQ Client CPP](https://github.com/apache/rocketmq-client-cpp)
### [RocketMQ Client Python](https://github.com/apache/rocketmq-client-python)
### [RocketMQ Spring](https://github.com/apache/rocketmq-spring)
### [RocketMQ Client Go](https://github.com/apache/rocketmq-client-go)
# Incubator Projects
## [RocketMQ Dashboard](https://github.com/apache/rocketmq-dashboard)
**Notice**: Console has renamed to dashboard and transfered the new repo, it will graduate in the near future, and welcome you to fill in the user due diligence.
## [RocketMQ MQTT](https://github.com/apache/rocketmq-mqtt)
A new MQTT protocol architecture model, based on which RocketMQ can better support messages from terminals such as IoT devices and Mobile APP. Based on the RocketMQ message unified storage engine, it supports both MQTT terminal and server message sending and receiving.
## [RocketMQ-Flink](https://github.com/apache/rocketmq-flink)
**Notice**: The project has transfered the new repo and will be removed from this repo, it will graduate in the near future, and welcome you to fill in the user due diligence.
## [RocketMQ Streams](https://github.com/apache/rocketmq-streams)
## [RocketMQ Operator](https://github.com/apache/rocketmq-operator)
Deploys RocketMQ on Kubernetes. it is built using the Operator SDK, which is part of the Operator Framework and hosted on [OperatorHub](https://operatorhub.io/operator/rocketmq-operator)
## [RocketMQ Client Nodejs](https://github.com/apache/rocketmq-client-nodejs)
## [RocketMQ-Docker](https://github.com/apache/rocketmq-docker)
Provides Dockerfile and bash scripts for building and running docker image.
## [RocketMQ-Exporter](https://github.com/apache/rocketmq-exporter)
Exports metrics from RocketMQ servers for consumption by Prometheus.
## [RocketMQ-Connect](https://github.com/apache/rocketmq-connect)
RocketMQ connector, connect everything.
## RocketMQ-Flume
Flume RocketMQ source and sink implementation.
## RocketMQ-Spark
Integration of Apache Spark and Apache RocketMQ. Both push & pull consumers are provided. For more details please refer to [README](https://github.com/apache/rocketmq-externals/tree/master/rocketmq-spark).
## RocketMQ-JMS
RocketMQ's JMS 1.1 spec. implementation.
## RocketMQ-MySQL
This project is a data replicator between MySQL and other systems. For more details please refer to [README](https://github.com/apache/rocketmq-externals/tree/master/rocketmq-mysql).
## Others
[RocketMQ-OpenTelemetry](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/rocketmq), [RocketMQ-Ignite](https://github.com/apache/ignite-extensions/tree/master/modules/rocketmq-ext) and [RocketMQ-Storm](https://github.com/apache/storm/tree/master/external/storm-rocketmq) integration can be found in those repositories.
## Contribution
We are always very happy to have contributions, whether for trivial cleanups or big new features. We want to have high quality, well documented codes for each programming language, as well as the surrounding ecosystem of integration tools that people use with RocketMQ.
Nor is code the only way to contribute to the project. We strongly value documentation, integration with other project, and gladly accept improvements for these aspects.
More info please refer to [How To Contribute](http://rocketmq.apache.org/docs/how-to-contribute/).
================================================
FILE: dev/merge_rocketmq_pr.py
================================================
#!/usr/bin/env python
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This script is a modified version of the one created by the Spark
# project (https://github.com/apache/spark/blob/master/dev/merge_spark_pr.py).
# Utility for creating well-formed pull request merges and pushing them to Apache.
# usage: ./merge_rocketmq_pr.py (see config env vars below)
#
# This utility assumes you already have local a RocketMQ git folder and that you
# have added remotes corresponding to both (i) the github apache RocketMQ
# mirror and (ii) the apache git repo.
import json
import os
import re
import subprocess
import sys
import urllib2
try:
import jira.client
JIRA_IMPORTED = True
except ImportError:
JIRA_IMPORTED = False
# Location of your RocketMQ git development area
ROCKETMQ_HOME = os.environ.get("ROCKETMQ_HOME", os.getcwd())
# Remote name which points to the Gihub site
PR_REMOTE_NAME = os.environ.get("PR_REMOTE_NAME", "apache-github")
# Remote name which points to Apache git
PUSH_REMOTE_NAME = os.environ.get("PUSH_REMOTE_NAME", "origin")
# ASF JIRA username
JIRA_USERNAME = os.environ.get("JIRA_USERNAME", "")
# ASF JIRA password
JIRA_PASSWORD = os.environ.get("JIRA_PASSWORD", "")
# OAuth key used for issuing requests against the GitHub API. If this is not defined, then requests
# will be unauthenticated. You should only need to configure this if you find yourself regularly
# exceeding your IP's unauthenticated request rate limit. You can create an OAuth key at
# https://github.com/settings/tokens. This script only requires the "public_repo" scope.
GITHUB_OAUTH_KEY = os.environ.get("GITHUB_OAUTH_KEY")
GITHUB_BASE = "https://github.com/apache/incubator-rocketmq-externals/pull"
GITHUB_API_BASE = "https://api.github.com/repos/apache/incubator-rocketmq-externals"
JIRA_BASE = "https://issues.apache.org/jira/browse"
JIRA_API_BASE = "https://issues.apache.org/jira"
# Prefix added to temporary branches
BRANCH_PREFIX = "PR_TOOL"
DEVELOP_BRANCH = "master"
def get_json(url):
try:
request = urllib2.Request(url)
if GITHUB_OAUTH_KEY:
request.add_header('Authorization', 'token %s' % GITHUB_OAUTH_KEY)
return json.load(urllib2.urlopen(request))
except urllib2.HTTPError as e:
if "X-RateLimit-Remaining" in e.headers and e.headers["X-RateLimit-Remaining"] == '0':
print("Exceeded the GitHub API rate limit; see the instructions in " +
"dev/merge_rocketmq_pr.py to configure an OAuth token for making authenticated " +
"GitHub requests.")
else:
print("Unable to fetch URL, exiting: %s" % url)
sys.exit(-1)
def fail(msg):
print(msg)
clean_up()
sys.exit(-1)
def run_cmd(cmd):
print(cmd)
if isinstance(cmd, list):
return subprocess.check_output(cmd)
else:
return subprocess.check_output(cmd.split(" "))
def continue_maybe(prompt):
result = raw_input("\n%s (y/n): " % prompt)
if result.lower() != "y":
fail("Okay, exiting")
def clean_up():
print("Restoring head pointer to %s" % original_head)
run_cmd("git checkout %s" % original_head)
branches = run_cmd("git branch").replace(" ", "").split("\n")
for branch in filter(lambda x: x.startswith(BRANCH_PREFIX), branches):
print("Deleting local branch %s" % branch)
run_cmd("git branch -D %s" % branch)
# merge the requested PR and return the merge hash
def merge_pr(pr_num, target_ref, title, body, pr_repo_desc):
pr_branch_name = "%s_MERGE_PR_%s" % (BRANCH_PREFIX, pr_num)
target_branch_name = "%s_MERGE_PR_%s_%s" % (BRANCH_PREFIX, pr_num, target_ref.upper())
run_cmd("git fetch %s pull/%s/head:%s" % (PR_REMOTE_NAME, pr_num, pr_branch_name))
run_cmd("git fetch %s %s:%s" % (PUSH_REMOTE_NAME, target_ref, target_branch_name))
run_cmd("git checkout %s" % target_branch_name)
had_conflicts = False
try:
run_cmd(['git', 'merge', pr_branch_name, '--squash'])
except Exception as e:
msg = "Error merging: %s\nWould you like to manually fix-up this merge?" % e
continue_maybe(msg)
msg = "Okay, please fix any conflicts and 'git add' conflicting files... Finished?"
continue_maybe(msg)
had_conflicts = True
commit_authors = run_cmd(['git', 'log', 'HEAD..%s' % pr_branch_name,
'--pretty=format:%an <%ae>']).split("\n")
distinct_authors = sorted(set(commit_authors),
key=lambda x: commit_authors.count(x), reverse=True)
primary_author = raw_input(
"Enter primary author in the format of \"name <email>\" [%s]: " %
distinct_authors[0])
if primary_author == "":
primary_author = distinct_authors[0]
commits = run_cmd(['git', 'log', 'HEAD..%s' % pr_branch_name,
'--pretty=format:%h [%an] %s']).split("\n\n")
merge_message_flags = []
title = raw_input("Modify commit log [%s]: " % title)
merge_message_flags += ["-m", title]
authors = "\n".join(["Author: %s" % a for a in distinct_authors])
merge_message_flags += ["-m", authors]
if had_conflicts:
committer_name = run_cmd("git config --get user.name").strip()
committer_email = run_cmd("git config --get user.email").strip()
message = "This patch had conflicts when merged, resolved by\nCommitter: %s <%s>" % (
committer_name, committer_email)
merge_message_flags += ["-m", message]
# The string "Closes #%s" string is required for GitHub to correctly close the PR
merge_message_flags += ["-m", "Closes #%s from %s." % (pr_num, pr_repo_desc)]
run_cmd(['git', 'commit', '--author="%s"' % primary_author] + merge_message_flags)
continue_maybe("Merge complete (local ref %s). Push to %s?" % (
target_branch_name, PUSH_REMOTE_NAME))
try:
run_cmd('git push %s %s:%s' % (PUSH_REMOTE_NAME, target_branch_name, target_ref))
except Exception as e:
clean_up()
fail("Exception while pushing: %s" % e)
merge_hash = run_cmd("git rev-parse %s" % target_branch_name)[:8]
clean_up()
print("Pull request #%s merged!" % pr_num)
print("Merge hash: %s" % merge_hash)
return merge_hash
def cherry_pick(pr_num, merge_hash, default_branch):
pick_ref = raw_input("Enter a branch name [%s]: " % default_branch)
if pick_ref == "":
pick_ref = default_branch
pick_branch_name = "%s_PICK_PR_%s_%s" % (BRANCH_PREFIX, pr_num, pick_ref.upper())
run_cmd("git fetch %s %s:%s" % (PUSH_REMOTE_NAME, pick_ref, pick_branch_name))
run_cmd("git checkout %s" % pick_branch_name)
try:
run_cmd("git cherry-pick -sx %s" % merge_hash)
except Exception as e:
msg = "Error cherry-picking: %s\nWould you like to manually fix-up this merge?" % e
continue_maybe(msg)
msg = "Okay, please fix any conflicts and finish the cherry-pick. Finished?"
continue_maybe(msg)
continue_maybe("Pick complete (local ref %s). Push to %s?" % (
pick_branch_name, PUSH_REMOTE_NAME))
try:
run_cmd('git push %s %s:%s' % (PUSH_REMOTE_NAME, pick_branch_name, pick_ref))
except Exception as e:
clean_up()
fail("Exception while pushing: %s" % e)
pick_hash = run_cmd("git rev-parse %s" % pick_branch_name)[:8]
clean_up()
print("Pull request #%s picked into %s!" % (pr_num, pick_ref))
print("Pick hash: %s" % pick_hash)
return pick_ref
def fix_version_from_branch(branch, versions):
# Note: Assumes this is a sorted (newest->oldest) list of un-released versions
if branch == "master":
return versions[0]
else:
branch_ver = branch.replace("branch-", "")
return filter(lambda x: x.name.startswith(branch_ver), versions)[-1]
def resolve_jira_issue(merge_branches, comment, default_jira_id=""):
asf_jira = jira.client.JIRA({'server': JIRA_API_BASE},
basic_auth=(JIRA_USERNAME, JIRA_PASSWORD))
jira_id = raw_input("Enter a JIRA id [%s]: " % default_jira_id)
if jira_id == "":
jira_id = default_jira_id
try:
issue = asf_jira.issue(jira_id)
except Exception as e:
fail("ASF JIRA could not find %s\n%s" % (jira_id, e))
cur_status = issue.fields.status.name
cur_summary = issue.fields.summary
cur_assignee = issue.fields.assignee
if cur_assignee is None:
cur_assignee = "NOT ASSIGNED!!!"
else:
cur_assignee = cur_assignee.displayName
if cur_status == "Resolved" or cur_status == "Closed":
fail("JIRA issue %s already has status '%s'" % (jira_id, cur_status))
print("=== JIRA %s ===" % jira_id)
print("summary\t\t%s\nassignee\t%s\nstatus\t\t%s\nurl\t\t%s/%s\n" %
(cur_summary, cur_assignee, cur_status, JIRA_BASE, jira_id))
versions = asf_jira.project_versions("ROCKETMQ")
versions = sorted(versions, key=lambda x: x.name, reverse=True)
versions = filter(lambda x: x.raw['released'] is False, versions)
# Consider only x.y.z versions
versions = filter(lambda x: re.match('\d+\.\d+\.\d+', x.name), versions)
default_fix_versions = map(lambda x: fix_version_from_branch(x, versions).name, merge_branches)
for v in default_fix_versions:
# Handles the case where we have forked a release branch but not yet made the release.
# In this case, if the PR is committed to the master branch and the release branch, we
# only consider the release branch to be the fix version. E.g. it is not valid to have
# both 1.1.0 and 1.0.0 as fix versions.
(major, minor, patch) = v.split(".")
if patch == "0":
previous = "%s.%s.%s" % (major, int(minor) - 1, 0)
if previous in default_fix_versions:
default_fix_versions = filter(lambda x: x != v, default_fix_versions)
default_fix_versions = ",".join(default_fix_versions)
fix_versions = raw_input("Enter comma-separated fix version(s) [%s]: " % default_fix_versions)
if fix_versions == "":
fix_versions = default_fix_versions
fix_versions = fix_versions.replace(" ", "").split(",")
def get_version_json(version_str):
return filter(lambda v: v.name == version_str, versions)[0].raw
jira_fix_versions = map(lambda v: get_version_json(v), fix_versions)
resolve = filter(lambda a: a['name'] == "Resolve Issue", asf_jira.transitions(jira_id))[0]
resolution = filter(lambda r: r.raw['name'] == "Fixed", asf_jira.resolutions())[0]
asf_jira.transition_issue(
jira_id, resolve["id"], fixVersions=jira_fix_versions,
comment=comment, resolution={'id': resolution.raw['id']})
print("Successfully resolved %s with fixVersions=%s!" % (jira_id, fix_versions))
def resolve_jira_issues(title, merge_branches, comment):
jira_ids = re.findall("ROCKETMQ-[0-9]{4,5}", title)
if len(jira_ids) == 0:
resolve_jira_issue(merge_branches, comment)
for jira_id in jira_ids:
resolve_jira_issue(merge_branches, comment, jira_id)
def standardize_jira_ref(text):
"""
Standardize the [ROCKETMQ-XXXXX] [MODULE] prefix
Converts "[ROCKETMQ-XXX][mllib] Issue", "[MLLib] ROCKETMQ-XXX. Issue" or "ROCKETMQ XXX [MLLIB]: Issue" to
"[ROCKETMQ-XXX][MLLIB] Issue"
"""
jira_refs = []
components = []
# If the string is compliant, no need to process any further
if (re.search(r'^\[ROCKETMQ-[0-9]{3,6}\](\[[A-Z0-9_\s,]+\] )+\S+', text)):
return text
# Extract JIRA ref(s):
pattern = re.compile(r'(ROCKETMQ[-\s]*[0-9]{3,6})+', re.IGNORECASE)
for ref in pattern.findall(text):
# Add brackets, replace spaces with a dash, & convert to uppercase
jira_refs.append('[' + re.sub(r'\s+', '-', ref.upper()) + ']')
text = text.replace(ref, '')
# Extract rocketmq component(s):
# Look for alphanumeric chars, spaces, dashes, periods, and/or commas
pattern = re.compile(r'(\[[\w\s,-\.]+\])', re.IGNORECASE)
for component in pattern.findall(text):
components.append(component.upper())
text = text.replace(component, '')
# Cleanup any remaining symbols:
pattern = re.compile(r'^\W+(.*)', re.IGNORECASE)
if (pattern.search(text) is not None):
text = pattern.search(text).groups()[0]
# Assemble full text (JIRA ref(s), module(s), remaining text)
clean_text = ''.join(jira_refs).strip() + ''.join(components).strip() + " " + text.strip()
# Replace multiple spaces with a single space, e.g. if no jira refs and/or components were
# included
clean_text = re.sub(r'\s+', ' ', clean_text.strip())
return clean_text
def get_current_ref():
ref = run_cmd("git rev-parse --abbrev-ref HEAD").strip()
if ref == 'HEAD':
# The current ref is a detached HEAD, so grab its SHA.
return run_cmd("git rev-parse HEAD").strip()
else:
return ref
def main():
global original_head
os.chdir(ROCKETMQ_HOME)
original_head = get_current_ref()
latest_branch = DEVELOP_BRANCH
pr_num = raw_input("Which pull request would you like to merge? (e.g. 34): ")
pr = get_json("%s/pulls/%s" % (GITHUB_API_BASE, pr_num))
pr_events = get_json("%s/issues/%s/events" % (GITHUB_API_BASE, pr_num))
url = pr["url"]
# Decide whether to use the modified title or not
modified_title = standardize_jira_ref(pr["title"])
if modified_title != pr["title"]:
print("I've re-written the title as follows to match the standard format:")
print("Original: %s" % pr["title"])
print("Modified: %s" % modified_title)
result = raw_input("Would you like to use the modified title? (y/n): ")
if result.lower() == "y":
title = modified_title
print("Using modified title:")
else:
title = pr["title"]
print("Using original title:")
print(title)
else:
title = pr["title"]
body = pr["body"]
target_ref = pr["base"]["ref"]
user_login = pr["user"]["login"]
base_ref = pr["head"]["ref"]
pr_repo_desc = "%s/%s" % (user_login, base_ref)
# Merged pull requests don't appear as merged in the GitHub API;
# Instead, they're closed by asfgit.
merge_commits = \
[e for e in pr_events if e["actor"]["login"] == "asfgit" and e["event"] == "closed"]
if merge_commits:
merge_hash = merge_commits[0]["commit_id"]
message = get_json("%s/commits/%s" % (GITHUB_API_BASE, merge_hash))["commit"]["message"]
print("Pull request %s has already been merged, assuming you want to backport" % pr_num)
commit_is_downloaded = run_cmd(['git', 'rev-parse', '--quiet', '--verify',
"%s^{commit}" % merge_hash]).strip() != ""
if not commit_is_downloaded:
fail("Couldn't find any merge commit for #%s, you may need to update HEAD." % pr_num)
print("Found commit %s:\n%s" % (merge_hash, message))
cherry_pick(pr_num, merge_hash, latest_branch)
sys.exit(0)
if not bool(pr["mergeable"]):
msg = "Pull request %s is not mergeable in its current form.\n" % pr_num + \
"Continue? (experts only!)"
continue_maybe(msg)
print("\n=== Pull Request #%s ===" % pr_num)
print("title\t%s\nsource\t%s\ntarget\t%s\nurl\t%s" %
(title, pr_repo_desc, target_ref, url))
continue_maybe("Proceed with merging pull request #%s?" % pr_num)
merged_refs = [target_ref]
merge_hash = merge_pr(pr_num, target_ref, title, body, pr_repo_desc)
pick_prompt = "Would you like to pick %s into another branch?" % merge_hash
while raw_input("\n%s (y/n): " % pick_prompt).lower() == "y":
merged_refs = merged_refs + [cherry_pick(pr_num, merge_hash, latest_branch)]
if JIRA_IMPORTED:
if JIRA_USERNAME and JIRA_PASSWORD:
continue_maybe("Would you like to update an associated JIRA?")
jira_comment = "Issue resolved by pull request %s\n[%s/%s]" % \
(pr_num, GITHUB_BASE, pr_num)
resolve_jira_issues(title, merged_refs, jira_comment)
else:
print("JIRA_USERNAME and JIRA_PASSWORD not set")
print("Exiting without trying to close the associated JIRA.")
else:
print("Could not find jira-python library. Run 'sudo pip install jira' to install.")
print("Exiting without trying to close the associated JIRA.")
if __name__ == "__main__":
import doctest
(failure_count, test_count) = doctest.testmod()
if failure_count:
exit(-1)
try:
main()
except:
clean_up()
raise
================================================
FILE: docs/connect/cn/README.md
================================================
# RocketMQ Connect 中文指南
## 文档库
* [用户手册](https://rocketmq-1.gitbook.io/rocketmq-connector/)
* [快速入门](https://rocketmq-1.gitbook.io/rocketmq-connector/quick-start/qian-qi-zhun-bei)
* [设计架构](https://rocketmq-1.gitbook.io/rocketmq-connector/jia-gou-she-ji)
* [开发者中心](https://rocketmq-1.gitbook.io/rocketmq-connector/kai-fa-zhe-zhong-xin/mqadmin-cao-zuo-zhi-nan)
* [文档贡献中心](https://github.com/rockt-cloud/openconnect-gitbook)
## 贡献说明
我们非常欢迎广大开源爱好者共同参与RocketMQ项目贡献,除了修复项目中的错误和添加新的功能外,我们也希望每种编程语言都有高质量的、有良好文档记录的代码。广大RocketMQ使用者在RocketMQ之上整个生态系统的创建和维护同样也是欢迎的。
因此代码不是对项目做出贡献的唯一方式。我们非常重视文档、与其他项目的集成,并乐于接受这些方面的改进。
## 贡献方式
### 1. 社区提问
加入本地社区参与讨论、文档纠错、参与rocketmq社区的技术讲座交流等都可以参与其中。
### 2. 发现并提交bug
如果您发现项目中的任何bug,都可以在GitHub上书写issue来报告错误。
### 3. 修复bug
您可以从多个issue中选择擅长的问题,尝试解决并提交PR
### 4. 提升性能或者增加新特性
社区一直在注重Apache RocketMQ Connect的使用反馈。如果你有一个如何改进RocketMQ Connect的想法,或者有一个对RocketMQ Connect用户有益的新特性,请在issue上详细地描述改进或新特性,并尽可能包括范围及其要求。详细信息很重要,原因如下:
它确保在实现改进或特性时满足您的需求。
它有助于评估工作和设计满足您需求的解决方案。
它允许围绕这一问题进行建设性的讨论。
如果您计划为自己提出的改进或功能做出贡献,请及时联系负责人详细交流。
我们建议在开始实施之前,首先与社区就是否需要新功能以及如何实现新功能达成共识。有些功能可能超出了项目的范围,最好及早发现。
### 5. 帮助其他人参与其中
帮助社区的新人和使用者更深入的了解,解决别人的问题也是参与其中。
### 6. 文档撰写与改错
文档的重要性不言而喻,参与文档工作也是贡献方式之一。
### 7. 测试
完善的测试能够保证项目功能的完整性和稳定性,如果您能参与到测试之中,也十分欢迎。
================================================
FILE: logappender/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-logappender</artifactId>
<packaging>jar</packaging>
<name>rocketmq-logappender ${project.version}</name>
<version>4.9.3-SNAPSHOT</version>
<url>http://rocketmq.apache.org/</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<rocketmq.version>4.9.2</rocketmq.version>
<!-- Maven properties -->
<maven.test.skip>false</maven.test.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
<!-- Compiler settings properties -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.28.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.10</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-client</artifactId>
<version>${rocketmq.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-namesrv</artifactId>
<version>${rocketmq.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rocketmq-broker</artifactId>
<version>${rocketmq.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
================================================
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/common/ProducerInstance.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender.common;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.MQProducer;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
/**
* Common Producer component
*/
public class ProducerInstance {
public static final String APPENDER_TYPE = "APPENDER_TYPE";
public static final String LOG4J_APPENDER = "LOG4J_APPENDER";
public static final String LOG4J2_APPENDER = "LOG4J2_APPENDER";
public static final String LOGBACK_APPENDER = "LOGBACK_APPENDER";
public static final String DEFAULT_GROUP = "rocketmq_appender";
private ConcurrentHashMap<String, MQProducer> producerMap = new ConcurrentHashMap<String, MQProducer>();
private static ProducerInstance instance = new ProducerInstance();
public static ProducerInstance getProducerInstance() {
return instance;
}
private String genKey(String nameServerAddress, String group) {
return nameServerAddress + "_" + group;
}
public MQProducer getInstance(String nameServerAddress, String group) throws MQClientException {
if (StringUtils.isBlank(group)) {
group = DEFAULT_GROUP;
}
String genKey = genKey(nameServerAddress, group);
MQProducer p = getProducerInstance().producerMap.get(genKey);
if (p != null) {
return p;
}
DefaultMQProducer defaultMQProducer = new DefaultMQProducer(group);
defaultMQProducer.setNamesrvAddr(nameServerAddress);
MQProducer beforeProducer = null;
beforeProducer = getProducerInstance().producerMap.putIfAbsent(genKey, defaultMQProducer);
if (beforeProducer != null) {
return beforeProducer;
}
defaultMQProducer.start();
return defaultMQProducer;
}
public void removeAndClose(String nameServerAddress, String group) {
if (group == null) {
group = DEFAULT_GROUP;
}
String genKey = genKey(nameServerAddress, group);
MQProducer producer = getProducerInstance().producerMap.remove(genKey);
if (producer != null) {
producer.shutdown();
}
}
public void closeAll() {
Set<Map.Entry<String, MQProducer>> entries = getProducerInstance().producerMap.entrySet();
for (Map.Entry<String, MQProducer> entry : entries) {
getProducerInstance().producerMap.remove(entry.getKey());
entry.getValue().shutdown();
}
}
}
================================================
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/log4j/RocketmqLog4jAppender.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender.log4j;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.logappender.common.ProducerInstance;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.helpers.LogLog;
import org.apache.log4j.spi.ErrorCode;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.rocketmq.client.producer.MQProducer;
/**
* Log4j Appender Component
*/
public class RocketmqLog4jAppender extends AppenderSkeleton {
/**
* Appended message tag define
*/
private String tag;
/**
* Whitch topic to send log messages
*/
private String topic;
private boolean locationInfo;
/**
* Log producer send instance
*/
private MQProducer producer;
/**
* RocketMQ nameserver address
*/
private String nameServerAddress;
/**
* Log producer group
*/
private String producerGroup;
public RocketmqLog4jAppender() {
}
public void activateOptions() {
LogLog.debug("Getting initial context.");
if (!checkEntryConditions()) {
return;
}
try {
producer = ProducerInstance.getProducerInstance().getInstance(nameServerAddress, producerGroup);
} catch (Exception e) {
LogLog.error("activateOptions nameserver:" + nameServerAddress + " group:" + producerGroup + " " + e.getMessage());
}
}
/**
* Info,error,warn,callback method implementation
*/
public void append(LoggingEvent event) {
if (null == producer) {
return;
}
if (locationInfo) {
event.getLocationInformation();
}
byte[] data = this.layout.format(event).getBytes();
try {
Message msg = new Message(topic, tag, data);
msg.getProperties().put(ProducerInstance.APPENDER_TYPE, ProducerInstance.LOG4J_APPENDER);
//Send message and do not wait for the ack from the message broker.
producer.sendOneway(msg);
} catch (Exception e) {
String msg = new String(data);
errorHandler.error("Could not send message in RocketmqLog4jAppender [" + name + "].Message is :" + msg, e,
ErrorCode.GENERIC_FAILURE);
}
}
protected boolean checkEntryConditions() {
String fail = null;
if (this.topic == null) {
fail = "No topic";
} else if (this.tag == null) {
fail = "No tag";
}
if (fail != null) {
errorHandler.error(fail + " for RocketmqLog4jAppender named [" + name + "].");
return false;
} else {
return true;
}
}
/**
* When system exit,this method will be called to close resources
*/
public synchronized void close() {
// The synchronized modifier avoids concurrent append and close operations
if (this.closed)
return;
LogLog.debug("Closing RocketmqLog4jAppender [" + name + "].");
this.closed = true;
try {
ProducerInstance.getProducerInstance().removeAndClose(this.nameServerAddress, this.producerGroup);
} catch (Exception e) {
LogLog.error("Closing RocketmqLog4jAppender [" + name + "] nameServerAddress:" + nameServerAddress + " group:" + producerGroup + " " + e.getMessage());
}
// Help garbage collection
producer = null;
}
public boolean requiresLayout() {
return true;
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
public String getTag() {
return tag;
}
public void setTag(String tag) {
this.tag = tag;
}
/**
* Returns value of the <b>LocationInfo</b> property which
* determines whether location (stack) info is sent to the remote
* subscriber.
*/
public boolean isLocationInfo() {
return locationInfo;
}
/**
* If true, the information sent to the remote subscriber will
* include caller's location information. By default no location
* information is sent to the subscriber.
*/
public void setLocationInfo(boolean locationInfo) {
this.locationInfo = locationInfo;
}
/**
* Returns the message producer,Only valid after
* activateOptions() method has been invoked.
*/
protected MQProducer getProducer() {
return producer;
}
public void setNameServerAddress(String nameServerAddress) {
this.nameServerAddress = nameServerAddress;
}
public void setProducerGroup(String producerGroup) {
this.producerGroup = producerGroup;
}
}
================================================
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/log4j2/RocketmqLog4j2Appender.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender.log4j2;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.ErrorHandler;
import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.Node;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute;
import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
import org.apache.logging.log4j.core.config.plugins.PluginElement;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.logappender.common.ProducerInstance;
import org.apache.logging.log4j.core.appender.AbstractAppender;
import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
import org.apache.logging.log4j.core.layout.SerializedLayout;
import org.apache.rocketmq.client.producer.MQProducer;
import java.io.Serializable;
import java.util.concurrent.TimeUnit;
/**
* Log4j2 Appender Component
*/
@Plugin(name = "RocketMQ",
category = Node.CATEGORY,
elementType = Appender.ELEMENT_TYPE,
printObject = true)
public class RocketmqLog4j2Appender extends AbstractAppender {
/**
* RocketMQ nameserver address
*/
private String nameServerAddress;
/**
* Log producer group
*/
private String producerGroup;
/**
* Log producer send instance
*/
private MQProducer producer;
/**
* Appended message tag define
*/
private String tag;
/**
* Whitch topic to send log messages
*/
private String topic;
protected RocketmqLog4j2Appender(String name, Filter filter, Layout<? extends Serializable> layout,
boolean ignoreExceptions, String nameServerAddress, String producerGroup,
String topic, String tag) {
super(name, filter, layout, ignoreExceptions);
this.producer = producer;
this.topic = topic;
this.tag = tag;
this.nameServerAddress = nameServerAddress;
this.producerGroup = producerGroup;
try {
this.producer = ProducerInstance.getProducerInstance().getInstance(this.nameServerAddress, this.producerGroup);
} catch (Exception e) {
ErrorHandler handler = this.getHandler();
if (handler != null) {
handler.error("Starting RocketmqLog4j2Appender [" + this.getName()
+ "] nameServerAddress:" + nameServerAddress + " group:" + producerGroup + " " + e.getMessage());
}
}
}
/**
* Info,error,warn,callback method implementation
*/
public void append(LogEvent event) {
if (null == producer) {
return;
}
byte[] data = this.getLayout().toByteArray(event);
try {
Message msg = new Message(topic, tag, data);
msg.getProperties().put(ProducerInstance.APPENDER_TYPE, ProducerInstance.LOG4J2_APPENDER);
//Send message and do not wait for the ack from the message broker.
producer.sendOneway(msg);
} catch (Exception e) {
ErrorHandler handler = this.getHandler();
if (handler != null) {
String msg = new String(data);
handler.error("Could not send message in RocketmqLog4j2Appender [" + this.getName() + "].Message is : " + msg, e);
}
}
}
/**
* When system exit,this method will be called to close resources
*/
public boolean stop(long timeout, TimeUnit timeUnit) {
this.setStopping();
try {
ProducerInstance.getProducerInstance().removeAndClose(this.nameServerAddress, this.producerGroup);
} catch (Exception e) {
ErrorHandler handler = this.getHandler();
if (handler != null) {
handler.error("Closeing RocketmqLog4j2Appender [" + this.getName()
+ "] nameServerAddress:" + nameServerAddress + " group:" + producerGroup + " " + e.getMessage());
}
}
boolean stopped = super.stop(timeout, timeUnit, false);
this.setStopped();
return stopped;
}
/**
* Log4j2 builder creator
*/
@PluginBuilderFactory
public static RocketmqLog4j2Appender.Builder newBuilder() {
return new RocketmqLog4j2Appender.Builder();
}
/**
* Log4j2 xml builder define
*/
public static class Builder implements org.apache.logging.log4j.core.util.Builder<RocketmqLog4j2Appender> {
@PluginBuilderAttribute
@Required(message = "A name for the RocketmqLog4j2Appender must be specified")
private String name;
@PluginElement("Layout")
private Layout<? extends Serializable> layout;
@PluginElement("Filter")
private Filter filter;
@PluginBuilderAttribute
private boolean ignoreExceptions;
@PluginBuilderAttribute
private String tag;
@PluginBuilderAttribute
private String nameServerAddress;
@PluginBuilderAttribute
private String producerGroup;
@PluginBuilderAttribute
@Required(message = "A topic name must be specified")
private String topic;
private Builder() {
this.layout = SerializedLayout.createLayout();
this.ignoreExceptions = true;
}
public RocketmqLog4j2Appender.Builder setName(String name) {
this.name = name;
return this;
}
public RocketmqLog4j2Appender.Builder setLayout(Layout<? extends Serializable> layout) {
this.layout = layout;
return this;
}
public RocketmqLog4j2Appender.Builder setFilter(Filter filter) {
this.filter = filter;
return this;
}
public RocketmqLog4j2Appender.Builder setIgnoreExceptions(boolean ignoreExceptions) {
this.ignoreExceptions = ignoreExceptions;
return this;
}
public RocketmqLog4j2Appender.Builder setTag(final String tag) {
this.tag = tag;
return this;
}
public RocketmqLog4j2Appender.Builder setTopic(final String topic) {
this.topic = topic;
return this;
}
public RocketmqLog4j2Appender.Builder setNameServerAddress(String nameServerAddress) {
this.nameServerAddress = nameServerAddress;
return this;
}
public RocketmqLog4j2Appender.Builder setProducerGroup(String producerGroup) {
this.producerGroup = producerGroup;
return this;
}
public RocketmqLog4j2Appender build() {
return new RocketmqLog4j2Appender(name, filter, layout, ignoreExceptions,
nameServerAddress, producerGroup, topic, tag);
}
}
}
================================================
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/logback/RocketmqLogbackAppender.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender.logback;
import ch.qos.logback.classic.net.LoggingEventPreSerializationTransformer;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.AppenderBase;
import ch.qos.logback.core.Layout;
import ch.qos.logback.core.spi.PreSerializationTransformer;
import ch.qos.logback.core.status.ErrorStatus;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.logappender.common.ProducerInstance;
import org.apache.rocketmq.client.producer.MQProducer;
/**
* Logback Appender Component
*/
public class RocketmqLogbackAppender extends AppenderBase<ILoggingEvent> {
/**
* Message tag define
*/
private String tag;
/**
* Whitch topic to send log messages
*/
private String topic;
/**
* RocketMQ nameserver address
*/
private String nameServerAddress;
/**
* Log producer group
*/
private String producerGroup;
/**
* Log producer send instance
*/
private MQProducer producer;
private Layout layout;
private PreSerializationTransformer<ILoggingEvent> pst = new LoggingEventPreSerializationTransformer();
/**
* Info,error,warn,callback method implementation
*/
@Override
protected void append(ILoggingEvent event) {
if (!isStarted()) {
return;
}
String logStr = this.layout.doLayout(event);
try {
Message msg = new Message(topic, tag, logStr.getBytes());
msg.getProperties().put(ProducerInstance.APPENDER_TYPE, ProducerInstance.LOGBACK_APPENDER);
//Send message and do not wait for the ack from the message broker.
producer.sendOneway(msg);
} catch (Exception e) {
addError("Could not send message in RocketmqLogbackAppender [" + name + "]. Message is : " + logStr, e);
}
}
/**
* Options are activated and become effective only after calling this method.
*/
public void start() {
int errors = 0;
if (this.layout == null) {
addStatus(new ErrorStatus("No layout set for the RocketmqLogbackAppender named \"" + name + "\".", this));
errors++;
}
if (errors > 0 || !checkEntryConditions()) {
return;
}
try {
producer = ProducerInstance.getProducerInstance().getInstance(nameServerAddress, producerGroup);
} catch (Exception e) {
addError("Starting RocketmqLogbackAppender [" + this.getName()
+ "] nameServerAddress:" + nameServerAddress + " group:" + producerGroup + " " + e.getMessage());
}
if (producer != null) {
super.start();
}
}
/**
* When system exit,this method will be called to close resources
*/
public synchronized void stop() {
// The synchronized modifier avoids concurrent append and close operations
if (!this.started) {
return;
}
this.started = false;
try {
ProducerInstance.getProducerInstance().removeAndClose(this.nameServerAddress, this.producerGroup);
} catch (Exception e) {
addError("Closeing RocketmqLogbackAppender [" + this.getName()
+ "] nameServerAddress:" + nameServerAddress + " group:" + producerGroup + " " + e.getMessage());
}
// Help garbage collection
producer = null;
}
protected boolean checkEntryConditions() {
String fail = null;
if (this.topic == null) {
fail = "No topic";
}
if (fail != null) {
addError(fail + " for RocketmqLogbackAppender named [" + name + "].");
return false;
} else {
return true;
}
}
public Layout getLayout() {
return this.layout;
}
/**
* Set the pattern layout to format the log.
*/
public void setLayout(Layout layout) {
this.layout = layout;
}
public String getTag() {
return tag;
}
public void setTag(String tag) {
this.tag = tag;
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
public void setNameServerAddress(String nameServerAddress) {
this.nameServerAddress = nameServerAddress;
}
public void setProducerGroup(String producerGroup) {
this.producerGroup = producerGroup;
}
}
================================================
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/AbstractTestCase.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.*;
import org.apache.rocketmq.logappender.common.ProducerInstance;
import org.junit.Before;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import static org.mockito.Mockito.*;
import java.lang.reflect.Field;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Basic test rocketmq broker and name server init
*/
public class AbstractTestCase {
private static CopyOnWriteArrayList<Message> messages = new CopyOnWriteArrayList<>();
@Before
public void mockLoggerAppender() throws Exception {
DefaultMQProducer defaultMQProducer = spy(new DefaultMQProducer("loggerAppender"));
doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocationOnMock) throws Throwable {
Message message = (Message) invocationOnMock.getArgument(0);
messages.add(message);
return null;
}
}).when(defaultMQProducer).sendOneway(any(Message.class));
ProducerInstance spy = mock(ProducerInstance.class);
Field instance = ProducerInstance.class.getDeclaredField("instance");
instance.setAccessible(true);
instance.set(ProducerInstance.class, spy);
doReturn(defaultMQProducer).when(spy).getInstance(anyString(), anyString());
}
public void clear() {
}
protected int consumeMessages(int count, final String key, int timeout) {
final AtomicInteger cc = new AtomicInteger(0);
for (Message message : messages) {
String body = new String(message.getBody());
if (body.contains(key)) {
cc.incrementAndGet();
}
}
return cc.get();
}
}
================================================
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/Log4jPropertiesTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender;
import org.apache.log4j.PropertyConfigurator;
public class Log4jPropertiesTest extends Log4jTest {
@Override
public void init() {
PropertyConfigurator.configure("src/test/resources/log4j-example.properties");
}
@Override
public String getType() {
return "properties";
}
}
================================================
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/Log4jTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender;
import org.apache.log4j.Logger;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public abstract class Log4jTest extends AbstractTestCase {
@Before
public abstract void init();
public abstract String getType();
@Test
public void testLog4j() {
clear();
Logger logger = Logger.getLogger("testLogger");
for (int i = 0; i < 10; i++) {
logger.info("log4j " + this.getType() + " simple test message " + i);
}
int received = consumeMessages(10, "log4j", 10);
Assert.assertTrue(received > 5);
}
}
================================================
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/Log4jXmlTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender;
import org.apache.log4j.xml.DOMConfigurator;
public class Log4jXmlTest extends Log4jTest {
@Override
public void init() {
DOMConfigurator.configure("src/test/resources/log4j-example.xml");
}
@Override
public String getType() {
return "xml";
}
}
================================================
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/LogbackTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.util.StatusPrinter;
import java.io.File;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogbackTest extends AbstractTestCase {
@Before
public void init() throws JoranException {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
lc.reset();
configurator.doConfigure(new File("src/test/resources/logback-example.xml"));
StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
}
@Test
public void testLogback() {
clear();
Logger logger = LoggerFactory.getLogger("testLogger");
for (int i = 0; i < 10; i++) {
logger.info("logback test message " + i);
}
int received = consumeMessages(10, "logback", 10);
Assert.assertTrue(received >= 5);
}
}
================================================
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/log4j2Test.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.logappender;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.rocketmq.client.exception.MQClientException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class log4j2Test extends AbstractTestCase {
@Before
public void init() {
Configurator.initialize("log4j2", "src/test/resources/log4j2-example.xml");
}
@Test
public void testLog4j2() throws InterruptedException, MQClientException {
clear();
Logger logger = LogManager.getLogger("test");
for (int i = 0; i < 10; i++) {
logger.info("log4j2 log message " + i);
}
int received = consumeMessages(10, "log4j2", 10);
Assert.assertTrue(received > 5);
}
}
================================================
FILE: logappender/src/test/resources/log4j-example.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
log4j.rootLogger=INFO,stdout
log4j.logger.testLogger=INFO,mq
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %-4r [%t] (%F:%L) %-5p - %m%n
log4j.appender.store=org.apache.log4j.DailyRollingFileAppender
log4j.appender.store.File=${user.home}/logs/rocketmqlogs/appender.log
log4j.appender.store.Append=true
log4j.appender.store.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.store.layout=org.apache.log4j.PatternLayout
log4j.appender.store.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %-5p - %m%n
log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender
log4j.appender.mq.Tag=log
log4j.appender.mq.Topic=TopicTest
log4j.appender.mq.ProducerGroup=loggerAppender
log4j.appender.mq.NameServerAddress=127.0.0.1:9876
log4j.appender.mq.layout=org.apache.log4j.PatternLayout
log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %-5p - %m%n
================================================
FILE: logappender/src/test/resources/log4j-example.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8"/>
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss},%d %-4r [%t] (%F:%L) %-5p - %m%n"/>
</layout>
</appender>
<appender name="mqAppender1" class="org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender">
<param name="Tag" value="log1"/>
<param name="Topic" value="TopicTest"/>
<param name="ProducerGroup" value="loggerAppender"/>
<param name="NameServerAddress" value="127.0.0.1:9876"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}-%p %t %c - %m%n"/>
</layout>
</appender>
<logger name="testLogger" additivity="false">
<level value="INFO"/>
<appender-ref ref="mqAppender1"/>
<appender-ref ref="consoleAppender"/>
</logger>
<logger name="consoleLogger" additivity="false">
<level value="INFO"/>
<appender-ref ref="consoleAppender"/>
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="consoleAppender"/>
</root>
</log4j:configuration>
================================================
FILE: logappender/src/test/resources/log4j2-example.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Configuration status="warn" name="Rocketmq">
<Appenders>
<RocketMQ name="rocketmqAppender" producerGroup="loggerAppender" nameServerAddress="127.0.0.1:9876"
topic="TopicTest" tag="log">
<PatternLayout pattern="%d [%p] hahahah %c %m%n"/>
</RocketMQ>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="rocketmqLogger" level="info">
<AppenderRef ref="rocketmqAppender"/>
</Logger>
<Root level="debug">
<AppenderRef ref="Console"/>
<AppenderRef ref="rocketmqAppender"/>
</Root>
</Loggers>
</Configuration>
================================================
FILE: logappender/src/test/resources/logback-example.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<appender name="system" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/simple/system.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${user.home}/logs/simple/system.%i.log
</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>30</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%date %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>%date %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="dailyAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${user.home}/logs/simple/daily.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${user.home}/logs/simple/daily.log.%d{yyyy-MM-dd_HH}</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %p %t - %m%n</pattern>
</encoder>
</appender>
<appender name="mqAppender1" class="org.apache.rocketmq.logappender.logback.RocketmqLogbackAppender">
<tag>log1</tag>
<topic>TopicTest</topic>
<producerGroup>loggerAppender</producerGroup>
<nameServerAddress>127.0.0.1:9876</nameServerAddress>
<layout>
<pattern>%date %p %t - %m%n</pattern>
</layout>
</appender>
<root>
<level value="debug"/>
<appender-ref ref="consoleAppender"/>
</root>
<logger name="systemLogger" level="debug" additivity="false">
<appender-ref ref="system"/>
</logger>
<logger name="testLogger" level="debug" additivity="false">
<appender-ref ref="mqAppender1"/>
<appender-ref ref="consoleAppender"/>
</logger>
</configuration>
================================================
FILE: rocketmq-ansible/Rocketmq Ansible Playbook cn.md
================================================
Apache RocketMQ Playbook提供Apache RocketMQ集群部署和Apache RocketMQ Exporter部署功能。
Apache RocketMQ Playbook集成了部署环境初始化、可运行包下载、os参数调优、broker最佳配置参数、Apache RocketMQ集群部署、Apache RocketMQ Exporter部署、Apache RocketMQ Exporter接入prometheus、添加开机自启动机制等任务编排到一起。
Apache RocketMQ Playbook可以嵌入在CI/CD流程中或者编排到terraform流程中,这在自动化运维或者VDC一键部署(SDE)有非常重要的意义。
## 使用说明
## 先决条件
安装Ansible。Ansible是一个自动化运维工具,可以进行配置管理和应用部署。实现了批量系统配置、批量程序部署、批量运行命令等功能。
安装文档参考官网
[https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)
## Playbook结构
Apache RocketMQ Playbook入口文件为rocketmq.yml。rocketmq.yml包含namesrv.yml、broker.yml、exporter.yml 3个子playbook。
rocketmq.yml可以单独执行部署一个完整的rocketmq集群或者3个子playbook单独执行。
hosts文件配置了namesrv、broker、exporter部署的机器列表及变量,当使用terraform编排时hosts可以当做变量传递。
rocketmq-ansible
│
│ broker.yml#部署broker
│ exporter.yml#部署exporter
│ hosts#部署机器列表及变量
│ namesrv.yml#部署namesrv
│ rocketmq.yml#playbook入口文件
│
├─roles
│ ├─broker
│ │ ├─tasks
│ │ │ main.yml #部署broker流程
│ │ │
│ │ ├─templates
│ │ │ broker.conf.j2 #broker最佳配置模版
│ │ │ logback_broker.xml.j2 #broker logback配置模版
│ │ │ mqbroker.service #broker开机自启动脚本模版
│ │ │
│ │ └─vars
│ │ main.yml #broker.yml使用的变量
│ │
│ ├─exporter
│ │ ├─files
│ │ │ mqexportershutdown.sh #exporter停止脚本
│ │ │
│ │ ├─tasks
│ │ │ main.yml #exporter部署流程
│ │ │
│ │ ├─templates
│ │ │ mqexporter.service #exporter开机自动脚本模版
│ │ │ mqexporter.sh.j2 #exporter启动脚本模版
│ │ │
│ │ └─vars
│ │ main.yml #exporter.yml使用的变量
│ │
│ └─namesrv
│ ├─tasks
│ │ main.yml #namesrv部署流程
│ │
│ ├─templates
│ │ logback_namesrv.xml.j2 #namesrv logback配置模版
│ │ mqnamesrv.service #namesrv开机自启动脚本模版
│ │
│ └─vars
│ main.yml #namesrv.yml使用的变量
│
└─vars
main.yml #rocketmq.yml使用的变量
## Playbook执行
ansible-playbook /path/rocketmq.yml -i /path/hosts
## rocketmq.yml
rocketmq.yml描述了使用linux root用户部署。在执行部署之前做一些环境初始化任务,创建应用文件目录和数据文件目录。
## namesrv.yml
namesrv.yml描述了部署namesrv的过程。包含了创建部署目录、下载可运行包、修改日志文件目录、添加开机自启动机制、启动进程等任务。
## broker.yml
broker.yml描述了部署broker的过程。包含了创建部署目录、下载可运行包、修改日志文件目录、优化os参数、优化broker配置、添加开机自启动机制、启动进程等任务。
## exporter.yml
exporter.yml描述了部署rocketmq exporter的过程。包含了创建部署目录、下载Apache RocketMQ Exporter可运行包、生成启动和停止脚本、添加开机自启动机制、启动进程等任务。
================================================
FILE: rocketmq-ansible/Rocketmq Ansible Playbook en.md
================================================
Apache RocketMQ Playbook provides the Apache RocketMQ cluster deployment and Apache RocketMQ Exporter deployment function.
Apache RocketMQ Playbook integrates deployment environment initialization, runnable pack download, os parameter tuning, broker optimal configuration parameters, Apache RocketMQ cluster deployment, Apache RocketMQ Exporter deployment, Apache RocketMQ Exporter access to prometheus, and startup.
The Apache RocketMQ Playbook can be embedded in CI/CD processes or choreographed into Terraform processes, making it important for automated operations or VDC one-click deployment (SDE).
## instructions
## prerequisite
Install Ansible.
Ansible is an agentless automation tool for configuration management and application deployment. Realized batch system configuration, batch program deployment, batch running commands and other functions.
Installation documents refer to the official website:
[https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)
## Structure of playbook
The Apache RocketMQ Playbook entry file is rocketmq.yml.
Rocketmq.yml contains namesrv.yml, broker.yml, and exporter.
Rocketmq.yml can be executed separately by deploying a full Apache RocketMQ cluster or three child Playbooks.
The hosts file is configured with a list of machines and variables for Namesrv, Broker, and exporter deployment.
The hosts file can be used as a variable.
rocketmq-ansible
│
│ broker.yml #Deploy the broker
│ exporter.yml #Deploy the exporter
│ hosts #Deploy machine list and variables
│ namesrv.yml #Deploy the namesrv
│ rocketmq.yml #Playbook entry file
│
├─roles
│ ├─broker
│ │ ├─tasks
│ │ │ main.yml #Deploy the Broker process
│ │ │
│ │ ├─templates
│ │ │ broker.conf.j2 #Broker best configuration template
│ │ │ logback_broker.xml.j2 #Broker Logback configuration template
│ │ │ mqbroker.service #Self boot automatic script template
│ │ │
│ │ └─vars
│ │ main.yml #The variable used by broker.yml
│ │
│ ├─exporter
│ │ ├─files
│ │ │ mqexportershutdown.sh #Exporter stop script
│ │ │
│ │ ├─tasks
│ │ │ main.yml #Export Deployment Process
│ │ │
│ │ ├─templates
│ │ │ mqexporter.service #Self boot automatic script template
│ │ │ mqexporter.sh.j2 #Exporter startup script template
│ │ │
│ │ └─vars
│ │ main.yml #A variable used by exporter.yml
│ │
│ └─namesrv
│ ├─tasks
│ │ main.yml #Namesrv deployment process
│ │
│ ├─templates
│ │ logback_namesrv.xml.j2 #Namesrv logback configuration template
│ │ mqnamesrv.service #Self boot automatic script template
│ │
│ └─vars
│ main.yml #The variable used by namesrv.yml
│
└─vars
main.yml #The variable used by rocketmq.yml
## Perform playbook
ansible-playbook /path/rocketmq.yml -i /path/hosts
## rocketmq.yml
rocketmq.yml describes how to deploy as Linux root user, perform some deployment environment initialization tasks, and create application file directories and data file directories before executing three sub-Playbooks.
## namesrv.yml
namesrv.yml describes the process of deploying namesrv.
This includes creating a deployment directory, downloading Apache RocketMQ pack, modifying the log file directory, adding a startup mechanism, and starting processes.
## broker.yml
broker.yml describes the process of deploying the broker.
This includes creating a deployment directory, downloading Apache RocketMQ pack, modifying log file directories, optimizing os parameters, optimizing broker configuration, adding a startup mechanism, and starting processes.
## exporter.yml
exporter.yml describes the process of deploying Apache RocketMQ Exporter.
It contains tasks such as creating a deployment directory, downloading Apache RocketMQ Exporter pack, generating startup and stop scripts, adding a self-boot mechanism, and starting processes.
================================================
FILE: rocketmq-ansible/broker.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# deploy Apache Rocketmq broker
- hosts: rocketmq_broker
roles:
- broker
================================================
FILE: rocketmq-ansible/exporter.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# deploy Apache Rocketmq exporter
- hosts: rocketmq_exporter
roles:
- exporter
================================================
FILE: rocketmq-ansible/hosts
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#hosts example, please change the value based on the actual situation
#Apache Rocketmq namesrv
[rocketmq_namesrv]
127.0.0.1
127.0.0.2
#Apache Rocketmq broker
[rocketmq_broker]
127.0.0.3 brokerName=broker-a brokerId=0 brokerRole=SYNC_MASTER
127.0.0.4 brokerName=broker-a brokerId=1 brokerRole=SLAVE
[rocketmq_broker:vars]
brokerClusterName=DefaultCluster
namesrvAddr=127.0.0.1:9876;127.0.0.2:9876
storePathRootDir=/root/store
#Apache Rocketmq exporter
[rocketmq_exporter]
127.0.0.5
[rocketmq_exporter:vars]
namesrvAddr=127.0.0.1:9876;127.0.0.2:9876
webTelemetryPath=/metrics
rocketmqVersion=V4_7_1
================================================
FILE: rocketmq-ansible/namesrv.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# deploy Apache Rocketmq namesrv
- hosts: rocketmq_namesrv
roles:
- namesrv
================================================
FILE: rocketmq-ansible/rocketmq.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# deploy Apache Rocketmq cluster
- name: Apache Rocketmq
hosts: all
become: yes
become_user: root
become_method: sudo
gather_facts: False
vars_files:
- vars/main.yml
pre_tasks:
- name: create rocketmq deploy path
file:
path: "{{ rocketmq_deploy_path }}"
state: directory
recurse: yes
- name: create rocketmq log path
file:
path: "{{ rocketmq_log_path }}"
state: directory
recurse: yes
- include: namesrv.yml
- include: broker.yml
- include: exporter.yml
================================================
FILE: rocketmq-ansible/roles/broker/tasks/main.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: check broker deploy directory
stat:
path: "{{ rocketmq_deploy_path }}/rocketmq"
register: deploy_directory
- debug:
msg: "{{ deploy_directory }}"
- name: download Apache Rocketmq
unarchive:
src: "{{ rocketmq_download_url }}"
dest: "{{ rocketmq_deploy_path }}"
remote_src: yes
mode: 0750
when: deploy_directory.stat.exists == False
- name: rename broker deploy directory
shell: cd {{ rocketmq_deploy_path }}; if [ ! -d "rocketmq" ]; then mv rocketmq-* rocketmq; fi
- name: modify broker log path
template:
src: logback_broker.xml.j2
dest: "{{ rocketmq_deploy_path }}/rocketmq/conf/logback_broker.xml"
- name: modify broker config
template:
src: broker.conf.j2
dest: "{{ rocketmq_deploy_path }}/rocketmq/conf/broker.conf"
- name: add broker boot mechanism
template:
src: mqbroker.service
dest: /usr/lib/systemd/system
mode: 0750
- name: check broker process
shell: source /etc/profile && jps | grep BrokerStartup | wc -l
register: check_status
- debug:
msg: "{{ check_status }}"
- name: optimize os
shell: source /etc/profile && sh {{ rocketmq_deploy_path }}/rocketmq/bin/os.sh
when: deploy_directory.stat.exists == False
- name: start broker
shell: |
source /etc/profile
systemctl disable mqbroker
systemctl enable mqbroker
systemctl stop mqbroker
systemctl start mqbroker
when: check_status.stdout|int == 0
================================================
FILE: rocketmq-ansible/roles/broker/templates/broker.conf.j2
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
brokerClusterName={{ brokerClusterName }}
brokerName={{ brokerName }}
brokerId={{ brokerId }}
namesrvAddr={{ namesrvAddr }}
autoCreateTopicEnable=false
sendMessageThreadPoolNums=4
waitTimeMillsInSendQueue=1000
sendThreadPoolQueueCapacity=20000
brokerRole={{ brokerRole }}
flushDiskType=ASYNC_FLUSH
storePathRootDir={{ storePathRootDir }}
storePathCommitLog={{ storePathRootDir }}/commitlog
#maxMessageSize=1048576
messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
osPageCacheBusyTimeOutMills=1500
#transientStorePoolEnable=true
diskMaxUsedSpaceRatio=88
fileReservedTime=168
================================================
FILE: rocketmq-ansible/roles/broker/templates/logback_broker.xml.j2
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<appender name="DefaultAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/broker_default.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/broker_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqBrokerAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/broker.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/broker.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqBrokerAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqBrokerAppender_inner"/>
</appender>
<appender name="RocketmqProtectionAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/protection.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/protection.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqProtectionAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqProtectionAppender_inner"/>
</appender>
<appender name="RocketmqWaterMarkAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/watermark.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/watermark.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqWaterMarkAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqWaterMarkAppender_inner"/>
</appender>
<appender name="RocketmqStoreAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/store.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/store.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqStoreAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqStoreAppender_inner"/>
</appender>
<appender name="RocketmqRemotingAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/remoting.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/remoting.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqRemotingAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqRemotingAppender_inner"/>
</appender>
<appender name="RocketmqStoreErrorAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/storeerror.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/storeerror.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqStoreErrorAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqStoreErrorAppender_inner"/>
</appender>
<appender name="RocketmqTransactionAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/transaction.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/transaction.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqTransactionAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqTransactionAppender_inner"/>
</appender>
<appender name="RocketmqRebalanceLockAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/lock.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/lock.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqRebalanceLockAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqRebalanceLockAppender_inner"/>
</appender>
<appender name="RocketmqFilterAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/filter.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/filter.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqFilterAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqFilterAppender_inner"/>
</appender>
<appender name="RocketmqStatsAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/stats.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/stats.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqCommercialAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/commercial.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/commercial.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>500MB</maxFileSize>
</triggeringPolicy>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<append>true</append>
<encoder>
<pattern>%d{yyy-MM-dd HH\:mm\:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<logger name="RocketmqBroker" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqBrokerAppender"/>
</logger>
<logger name="RocketmqProtection" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqProtectionAppender"/>
</logger>
<logger name="RocketmqWaterMark" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqWaterMarkAppender"/>
</logger>
<logger name="RocketmqCommon" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqBrokerAppender"/>
</logger>
<logger name="RocketmqStore" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqStoreAppender"/>
</logger>
<logger name="RocketmqStoreError" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqStoreErrorAppender"/>
</logger>
<logger name="RocketmqTransaction" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqTransactionAppender"/>
</logger>
<logger name="RocketmqRebalanceLock" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqRebalanceLockAppender"/>
</logger>
<logger name="RocketmqRemoting" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqRemotingAppender"/>
</logger>
<logger name="RocketmqStats" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqStatsAppender"/>
</logger>
<logger name="RocketmqCommercial" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqCommercialAppender"/>
</logger>
<logger name="RocketmqFilter" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqFilterAppender"/>
</logger>
<logger name="RocketmqConsole" additivity="false">
<level value="INFO"/>
<appender-ref ref="STDOUT"/>
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="DefaultAppender"/>
</root>
</configuration>
================================================
FILE: rocketmq-ansible/roles/broker/templates/mqbroker.service
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[Unit]
Description=rocketmq namesrv service
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash -c 'source /etc/profile && {{ rocketmq_deploy_path }}/rocketmq/bin/mqbroker -c {{ rocketmq_deploy_path }}/rocketmq/conf/broker.conf'
ExecStop=/bin/bash -c 'source /etc/profile && {{ rocketmq_deploy_path }}/rocketmq/bin/mqshutdown broker'
RemainAfterExit=yes
LimitNOFILE=655350
LimitMEMLOCK=infinity
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
================================================
FILE: rocketmq-ansible/roles/broker/vars/main.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# broker variable
rocketmq_download_url: https://dlcdn.apache.org/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
rocketmq_deploy_path: /app
rocketmq_log_path: ${user.home}
================================================
FILE: rocketmq-ansible/roles/exporter/files/mqexportershutdown.sh
================================================
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
source /etc/profile
pid=$(jps -lvVm | grep rocketmq-exporter | awk '{print $1}')
if [ ! -z $pid ]; then
kill -9 $pid
fi
================================================
FILE: rocketmq-ansible/roles/exporter/tasks/main.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: create exporter deploy directory
file:
path: "{{ rocketmq_exporter_deploy_directory }}"
state: directory
recurse: yes
- name: download Apache Rocketmq exporter
get_url:
url: "{{ rocketmq_exporter_download_url }}"
dest: "{{ rocketmq_exporter_deploy_directory }}"
mode: 0750
- name: copy exporter shutdown script
copy:
src: mqexportershutdown.sh
dest: "{{ rocketmq_exporter_deploy_directory }}"
mode: 0750
- name: copy exporter start script
template:
src: mqexporter.sh.j2
dest: "{{rocketmq_exporter_deploy_directory}}/mqexporter.sh"
mode: 0750
- name: add exporter boot mechanism
template:
src: mqexporter.service
dest: /usr/lib/systemd/system
mode: 0750
- name: check exporter status
shell: source /etc/profile && jps -lvVm | grep rocketmq-exporter | wc -l
register: status_result
- debug:
msg: "{{ status_result }}"
- name: start exporter
shell: |
source /etc/profile
systemctl disable mqexporter
systemctl enable mqexporter
systemctl stop mqexporter
systemctl start mqexporter
when: status_result.stdout|int == 0
================================================
FILE: rocketmq-ansible/roles/exporter/templates/mqexporter.service
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[Unit]
Description=rocketmq exporter service
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash -c 'source /etc/profile && {{ rocketmq_exporter_deploy_directory }}/mqexporter.sh'
ExecStop=/bin/bash -c 'source /etc/profile && {{ rocketmq_exporter_deploy_directory }}/mqexportershutdown.sh'
RemainAfterExit=yes
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
================================================
FILE: rocketmq-ansible/roles/exporter/templates/mqexporter.sh.j2
================================================
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
source /etc/profile
nohup java -Drocketmq.namesrv.addr="{{ namesrvAddr }}" \
-Drocketmq.config.webTelemetryPath={{ webTelemetryPath }} \
-Drocketmq.config.rocketmqVersion={{ rocketmqVersion }} \
-jar {{ rocketmq_exporter_deploy_directory }}/rocketmq-exporter-0.0.2-SNAPSHOT.jar &
================================================
FILE: rocketmq-ansible/roles/exporter/vars/main.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#exporter need build by yourself
rocketmq_exporter_download_url: http://rocketmq.exporter/rocketmq-exporter-0.0.2-SNAPSHOT.jar
rocketmq_exporter_deploy_directory: /app/exporter
================================================
FILE: rocketmq-ansible/roles/namesrv/tasks/main.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: check namesrv deploy directory
stat:
path: "{{ rocketmq_deploy_path }}/rocketmq"
register: deploy_directory
- debug:
msg: "{{ deploy_directory }}"
- name: download Apache Rocketmq
unarchive:
src: "{{ rocketmq_download_url }}"
dest: "{{ rocketmq_deploy_path }}"
remote_src: yes
mode: 0750
when: deploy_directory.stat.exists == False
- name: rename namesrv deploy directory
shell: cd {{ rocketmq_deploy_path }}; if [ ! -d "rocketmq" ]; then mv rocketmq-* rocketmq; fi
- name: modify namesrv log path
template:
src: logback_namesrv.xml.j2
dest: "{{ rocketmq_deploy_path }}/rocketmq/conf/logback_namesrv.xml"
- name: add namesrv boot mechanism
template:
src: mqnamesrv.service
dest: /usr/lib/systemd/system
mode: 0750
- name: check namesrv status
shell: source /etc/profile && jps | grep NamesrvStartup | wc -l
register: check_status
- debug:
msg: "{{ check_status }}"
- name: start namesrv
shell: |
source /etc/profile
systemctl disable mqnamesrv
systemctl enable mqnamesrv
systemctl stop mqnamesrv
systemctl start mqnamesrv
when: check_status.stdout|int == 0
================================================
FILE: rocketmq-ansible/roles/namesrv/templates/logback_namesrv.xml.j2
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<appender name="DefaultAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/namesrv_default.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/namesrv_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqNamesrvAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>{{ rocketmq_log_path }}/logs/rocketmqlogs/namesrv.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>{{ rocketmq_log_path }}/logs/rocketmqlogs/otherdays/namesrv.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>5</maxIndex>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqNamesrvAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqNamesrvAppender_inner"/>
<discardingThreshold>0</discardingThreshold>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<append>true</append>
<encoder>
<pattern>%d{yyy-MM-dd HH\:mm\:ss,SSS} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<logger name="RocketmqNamesrv" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqNamesrvAppender"/>
</logger>
<logger name="RocketmqCommon" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqNamesrvAppender"/>
</logger>
<logger name="RocketmqRemoting" additivity="false">
<level value="INFO"/>
<appender-ref ref="RocketmqNamesrvAppender"/>
</logger>
<logger name="RocketmqNamesrvConsole" additivity="false">
<level value="INFO"/>
<appender-ref ref="STDOUT"/>
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="DefaultAppender"/>
</root>
</configuration>
================================================
FILE: rocketmq-ansible/roles/namesrv/templates/mqnamesrv.service
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[Unit]
Description=rocketmq namesrv service
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash -c 'source /etc/profile && {{ rocketmq_deploy_path }}/rocketmq/bin/mqnamesrv'
ExecStop=/bin/bash -c 'source /etc/profile && {{ rocketmq_deploy_path }}/rocketmq/bin/mqshutdown namesrv'
RemainAfterExit=yes
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
================================================
FILE: rocketmq-ansible/roles/namesrv/vars/main.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# namesrv variable
rocketmq_download_url: https://dlcdn.apache.org/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
rocketmq_deploy_path: /app
rocketmq_log_path: ${user.home}
================================================
FILE: rocketmq-ansible/vars/main.yml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# The global variable
rocketmq_deploy_path: /app
rocketmq_log_path: /data
================================================
FILE: rocketmq-beats-integration/README.md
================================================
# rocketmq-beats-integration
This project enables Apache RocketMQ integrate directly
with [Elastic Beats](https://www.elastic.co/guide/en/beats/libbeat/current/index.html).
## Compatibility
This project is developed and tested using Apache RocketMQ Go Client v2.1.0 and Beats 7.17.0
## Sending events to Apache RocketMQ in Beats Platform
### 1. Build your Beats
The Beats platform provides several Beats, like [Filebeat](https://www.elastic.co/products/beats/filebeat)
, [Heartbeat](https://www.elastic.co/products/beats/heartbeat)
, [Metricbeat](https://www.elastic.co/products/beats/metricbeat), etc. So you can choose to build one or more Beats
according to different sources you want to capture.
#### 1.1 Prerequisite
At present Beats Platform does not provide ways to integrate a custom output at runtime, so you must build Beats with
this codebase to generate a new Beat to support output to Apache RocketMQ.
You can obtain a copy of the Beat codebase with the following git command:
```shell
git clone --branch <branch_name> --single-branch https://github.com/elastic/beats.git <target_folder>
```
The `branch_name` should be the version of Beats you want to use. In the following `<target_folder>` is
denoted by `$BEATS_HOME`.
#### 1.2 Build specified Beats
**1.2.1** clone this codebase to your local repository, then copy the folder `rocketmq` under `libbeat/output`
to `$BEATS_HOME/libbeat/output/`.
**1.2.2** add `_ "github.com/elastic/beats/v7/libbeat/outputs/rocketmq"` in the `import` part
of `$BEATS_HOME/libbeat/publisher/includes/includes.go`:
```golang
import (
// import queue types
_ "github.com/elastic/beats/v7/libbeat/outputs/codec/format"
_ "github.com/elastic/beats/v7/libbeat/outputs/codec/json"
_ "github.com/elastic/beats/v7/libbeat/outputs/console"
_ "github.com/elastic/beats/v7/libbeat/outputs/elasticsearch"
_ "github.com/elastic/beats/v7/libbeat/outputs/fileout"
_ "github.com/elastic/beats/v7/libbeat/outputs/kafka"
_ "github.com/elastic/beats/v7/libbeat/outputs/logstash"
_ "github.com/elastic/beats/v7/libbeat/outputs/redis"
_ "github.com/elastic/beats/v7/libbeat/outputs/rocketmq"
_ "github.com/elastic/beats/v7/libbeat/publisher/queue/diskqueue"
_ "github.com/elastic/beats/v7/libbeat/publisher/queue/memqueue"
_ "github.com/elastic/beats/v7/libbeat/publisher/queue/spool"
)
```
**1.2.3** run `go mod tidy` to import dependencies of RocketMQ go client, or add the following instruction
to `$BEATS_HOME/go.mode`:
```golang
require github.com/apache/rocketmq-client-go/v2 v2.1.0
```
**1.2.4** build your Beats
For example, if you want to build filebeat, run the following command:
```shell
cd $BEATS_HOME/filebeat/ && make
```
After that, a new executable `filebeat` is generated, and you can use it to send events to Apache RocketMQ.
If you want to build other Beats, just enter the specified folder and run `make`.
For example:
```shell
cd $BEATS_HOME/auditbeat/ && make
cd $BEATS_HOME/heartbeat/ && make
cd $BEATS_HOME/metricbeat/ && make
cd $BEATS_HOME/packetbeat/ && make
cd $BEATS_HOME/winlogbeat/ && make
```
### 2. Run your Beats
After you have built your Beats, you can run them to send events to Apache RocketMQ.
Here is a simple configuration that can be used to test that if the content of `/var/log/messages` would be sent to
RocketMQ successfully.
```yaml
filebeat.inputs:
- type: filestream
enabled: true
paths:
- /var/log/messages
output.rocketmq:
nameservers: [ "127.0.0.1:9876" ]
topic: TopicTest
```
As you can see above, the only required configuration options are `nameservers` and `topic`, which denotes the name
server address array of Apache RocketMQ and the topic where you want to publish the event, respectively. For more
details, please reference the next section.
Copy the above Filebeat configuration to a file such as `rocketmq_output.yml`. Filebeat should then be started with:
```shell
./filebeat -c rocketmq_output.yml -e
```
## Configuration Options
| Setting | Input type | Required | Default | Description |
|:---------------:|:--------------------------------------:|:--------:|:---------------------------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| nameservers | []string | Yes | | The address list of name servers |
| topic | string | Yes | | The topic to produce messages to |
| group | string | No | | The producer group |
| send_timeout | time.Duration | No | 3s | Send timeout milliseconds |
| max_retries | number | No | 2 | Retry times after failing to send the event |
| codec | codec | No | plain | The codec used for output data. You can reference [output codec](https://www.elastic.co/guide/en/beats/filebeat/current/configuration-output-codec.html) for more details. |
## Contributing
All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on
a napkin.
Programming is not a required skill. Whatever you've seen about open source and maintainers or community members
saying "send patches or die" - you will not see that here.
It is more important to the community that you are able to contribute.
## License
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) Copyright (C) Apache Software Foundation
================================================
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/NOTICE
================================================
Apache RocketMQ (incubating)
Copyright 2016-2022 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
================================================
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/client.go
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package rocketmq
import (
"context"
"strings"
"time"
"github.com/apache/rocketmq-client-go/v2"
"github.com/apache/rocketmq-client-go/v2/primitive"
"github.com/apache/rocketmq-client-go/v2/producer"
"github.com/elastic/beats/v7/libbeat/logp"
"github.com/elastic/beats/v7/libbeat/outputs"
"github.com/elastic/beats/v7/libbeat/outputs/codec"
"github.com/elastic/beats/v7/libbeat/publisher"
)
type client struct {
log *logp.Logger
observer outputs.Observer
index string
codec codec.Codec
namesrvAddr []string
topic string
group string
timeout time.Duration
maxRetries int
producer rocketmq.Producer
}
func (c *client) Connect() error {
c.log.Warnf("connecting: %v", c.namesrvAddr)
p, err := rocketmq.NewProducer(
producer.WithNsResolver(primitive.NewPassthroughResolver(c.namesrvAddr)),
producer.WithRetry(c.maxRetries),
producer.WithSendMsgTimeout(c.timeout),
producer.WithGroupName(c.group),
)
if err != nil {
c.log.Errorf("RocketMQ creates producer fails with: %v", err)
return err
}
errStart := p.Start()
if errStart != nil {
c.log.Errorf("RocketMQ starts producer fails with: %v", errStart)
return errStart
}
c.producer = p
return nil
}
func (c *client) Close() error {
c.log.Warn("Enter Close(), shutdown...")
if c.producer != nil {
c.producer.Shutdown()
c.producer = nil
}
return nil
}
func (c *client) Publish(_ context.Context, batch publisher.Batch) error {
defer batch.ACK()
st := c.observer
events := batch.Events()
st.NewBatch(len(events))
dropped := 0
for i := range events {
d := &events[i]
ok := c.publishEvent(d)
if !ok {
dropped++
}
}
return nil
}
func (c *client) publishEvent(event *publisher.Event) bool {
serializedEvent, err := c.codec.Encode(c.index, &event.Content)
if err != nil {
c.observer.Dropped(1)
if !event.Guaranteed() {
return false
}
c.log.Errorf("Unable to encode event: %v", err)
return false
}
c.observer.WriteBytes(len(serializedEvent) + 1)
// str := string(serializedEvent)
// c.log.Warnf("Processing event: %v", str)
buf := make([]byte, len(serializedEvent))
copy(buf, serializedEvent)
msg := &primitive.Message{
Topic: c.topic,
Body: buf,
}
// res, err := c.producer.SendSync(context.Background(), msg)
// if err != nil {
// c.log.Errorf("send to rocketmq is error %v", err)
// return false
// } else {
// c.log.Warnf("send msg result=%v", res.String())
// }
err = c.producer.SendAsync(context.Background(),
func(ctx context.Context, result *primitive.SendResult, e error) {
if e != nil {
c.observer.Dropped(1)
c.log.Errorf("send to rocketmq is error %v", e)
} else {
c.observer.Acked(1)
c.log.Debugf("send msg result=%v", result.String())
}
}, msg)
if err != nil {
c.observer.Dropped(1)
c.log.Errorf("send to rocketmq is error %v", err)
return false
}
return true
}
func (c *client) String() string {
return "rocketmq[" + strings.Join(c.namesrvAddr, ",") + "]"
}
================================================
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/config.go
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package rocketmq
import (
"time"
"github.com/elastic/beats/v7/libbeat/common"
"github.com/elastic/beats/v7/libbeat/outputs/codec"
)
type rocketmqConfig struct {
Nameservers []string `config:"nameservers" validate:"required"`
Topic string `config:"topic" validate:"required"`
//Tag string `config:"tag"`
Group string `config:"group"`
SendTimeout time.Duration `config:"send_timeout" `
MaxRetries int `config:"max_retries"`
Codec codec.Config `config:"codec"`
// Max number of events in a batch to send to a single client
BatchSize int `config:"batch_size" validate:"min=1"`
}
func defaultConfig() rocketmqConfig {
return rocketmqConfig{
Nameservers: nil,
Topic: "topic-beats",
SendTimeout: 3 * time.Second,
MaxRetries: 2,
BatchSize: 1,
}
}
func readConfig(cfg *common.Config) (*rocketmqConfig, error) {
c := defaultConfig()
if err := cfg.Unpack(&c); err != nil {
return nil, err
}
return &c, nil
}
================================================
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/rocketmq.go
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package rocketmq
import (
"github.com/elastic/beats/v7/libbeat/beat"
"github.com/elastic/beats/v7/libbeat/common"
"github.com/elastic/beats/v7/libbeat/logp"
"github.com/elastic/beats/v7/libbeat/outputs"
"github.com/elastic/beats/v7/libbeat/outputs/codec"
)
const (
logSelector = "rocketmq"
)
func init() {
outputs.RegisterType("rocketmq", makeRocketmq)
}
func makeRocketmq(
_ outputs.IndexManager,
beat beat.Info,
observer outputs.Observer,
cfg *common.Config,
) (outputs.Group, error) {
log := logp.NewLogger(logSelector)
config, err := readConfig(cfg)
if err != nil {
return outputs.Fail(err)
}
index := beat.Beat
codec, err := codec.CreateEncoder(beat, config.Codec)
if err != nil {
return outputs.Fail(err)
}
client := &client{log: log,
observer: observer,
index: index,
codec: codec,
namesrvAddr: config.Nameservers,
topic: config.Topic,
group: config.Group,
timeout: config.SendTimeout,
maxRetries: config.MaxRetries}
//retry in producer, so set it 0 in the following function
return outputs.Success(config.BatchSize, 0, client)
}
================================================
FILE: rocketmq-cloudevents-binding/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to
You under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License. -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-cloudevents-binding</artifactId>
<version>1.0.0</version>
<name>rocketmq-cloudevents-binding</name>
<url>https://github.com/apache/incubator-rocketmq-externals/tree/master/rocketmq-cloudevents-binding</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<issueManagement>
<system>jira</system>
<url>https://issues.apache.org/jira/browse/RocketMQ</url>
</issueManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Compiler settings properties -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<compilerVersion>${maven.compiler.source}</compilerVersion>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<argLine>-Xms512m -Xmx1024m</argLine>
<forkMode>always</forkMode>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.6</version>
<configuration>
<locales>en_US</locales>
<outputEncoding>UTF-8</outputEncoding>
<inputEncoding>UTF-8</inputEncoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<configuration>
<charset>UTF-8</charset>
<locale>en_US</locale>
<excludePackageNames>io.openmessaging.internal</excludePackageNames>
</configuration>
<executions>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<phase>site</phase>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.4</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.9.0</version>
</dependency>
<dependency>
<groupId>io.cloudevents</groupId>
<artifactId>cloudevents-core</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.7.0</version>
</dependency>
<dependency>
<groupId>io.cloudevents</groupId>
<artifactId>cloudevents-core</artifactId>
<classifier>tests</classifier>
<type>test-jar</type>
<version>2.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.16.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
================================================
FILE: rocketmq-cloudevents-binding/rocketmq-transport-binding.md
================================================
# RocketMQ Transport Binding for CloudEvents
## Abstract
The [RocketMQ][RocketMQ] Transport Binding for CloudEvents defines how events are mapped
to RocketMQ messages.
## Status of this document
This document is a working draft.
## Table of Contents
1. [Introduction](#1-introduction)
- 1.1. [Conformance](#11-conformance)
- 1.2. [Relation to RocketMQ](#12-relation-to-rocketmq)
- 1.3. [Content Modes](#13-content-modes)
- 1.4. [Event Formats](#14-event-formats))
- 1.5. [Security](#15-security)
2. [Use of CloudEvents Attributes](#2-use-of-cloudevents-attributes)
- 2.1. [contenttype Attribute](#21-contenttype-attribute)
- 2.2. [data Attribute](#22-data-attribute)
3. [RocketMQ Message Mapping](#3-rocketmq-message-mapping)
- 3.1. [Binary Content Mode](#31-binary-content-mode)
- 3.2. [Structured Content Mode](#32-structured-content-mode)
4. [References](#4-references)
## 1. Introduction
[CloudEvents][CE] is a standardized and transport-neutral definition of the
structure and metadata description of events. This specification defines how
the elements defined in the CloudEvents specification are to be used in the
RocketMQ Message protocol as client produced and consumed messages.
### 1.1. Conformance
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in RFC2119.
### 1.2. Relation to RocketMQ
This specification does not prescribe rules constraining transfer or settlement
of event messages with RocketMQ; it solely defines how CloudEvents are expressed
in the RocketMQ message transport protocol as client messages that are produced and consumed.
### 1.3. Content Modes
The specification defines two content modes for transferring events:
*structured* and *binary*.
The RocketMQ protocol have already supported custom message headers,
necessary for *binary* mode.
Event metadata attributes and event data are placed into the RocketMQ message
payload using an [event format](#14-event-formats).
### 1.4. Event Formats
Event formats, used with the *stuctured* content mode, define how an event is
expressed in a particular data format. All implementations of this
specification MUST support the [JSON event format][JSON-format].
### 1.5. Security
This specification does not introduce any new security features for RocketMQ,
or mandate specific existing features to be used.
## 2. Use of CloudEvents Attributes
This specification does not further define any of the [CloudEvents][CE] event
attributes.
### 2.1. contenttype Attribute
The `contenttype` attribute is assumed to contain a media-type expression
compliant with [RFC2046][RFC2046].
### 2.2. data Attribute
The `data` attribute is assumed to contain opaque application data that is
encoded as declared by the `contenttype` attribute.
An application is free to hold the information in any in-memory representation
of its choosing, but as the value is transposed into RocketMQ as defined in this
specification, core RocketMQ provides data available as a sequence of bytes.
For instance, if the declared `contenttype` is
`application/json;charset=utf-8`, the expectation is that the `data` attribute
value is made available as [UTF-8][RFC3629] encoded JSON text.
## 3. RocketMQ Message Mapping
The receiver of the event can distinguish between the two content modes by inspecting
the `CE_contentType` property of the RocketMQ message. If the value is prefixed with the
CloudEvents media type `application/cloudevents`, indicating the use of a known event format,
the receiver uses structured mode, otherwise it defaults to binary mode.
If a receiver finds a CloudEvents media type as per the above rule, but with an event format
that it cannot handle, for instance `application/cloudevents+avro`, it MAY still treat the event
as binary and forward it to another party as-is .
### 3.1. Binary Content Mode
The [binary content mode](#31-binary-content-mode) accommodates any shape of event data,
and allows for efficient transfer and without transcoding effort.
#### 3.1.1. Content Type
For the binary mode, the header `CE_contenttype property` MUST be mapped directly to the CloudEvents
contentType attribute.
#### 3.1.2. Event Data Encoding
The data attribute byte-sequence MUST be used as the value of the RocketMQ message.
#### 3.1.3. Metadata Headers
All CloudEvents attributes and CloudEvent Attributes Extensions with exception of
data MUST be individually mapped to and from the Header fields in the RocketMQ message.
##### 3.1.3.1 Property Names
[CloudEvents][CE] attributes are prefixed with `"CE_"` for use in the message section.
Examples:
* `time` maps to `CE_time`
* `id` maps to `CE_id`
* `specversion` maps to `CE_specversion`
##### 3.1.3.2 Property Values
The value for each RocketMQ Message header is constructed from the respective header's RocketMQ
representation, compliant with the RocketMQ message format specification.
#### 3.1.4 Example
This example shows the binary mode mapping of an event into the RocketMQ message.
All other CloudEvents attributes are mapped to RocketMQ message property fields with prefix `CE_`.
Mind that `CE_` here does refer to the event data content carried in the payload.
``` text
------------------ Message -------------------
Topic: mytopic
-------------- user properties ---------------
CE_contenttype: application/avro
CE_specversion: "0.1"
CE_type: "com.example.someevent"
CE_time: "2018-11-23T03:56:24Z"
CE_id: "1234-1234-1234"
CE_source: "/mycontext/subcontext"
.... further attributes ...
------------------- value --------------------
... application data ...
-----------------------------------------------
```
### 3.2. Structured Content Mode
The [structured content mode](#32-structured-content-mode) keeps event metadata and
data together in the payload, allowing simple forwarding of the same event across
multiple routing hops, and across multiple transports.
#### 3.2.1. RocketMQ Content-Type
The [RocketMQ][RocketMQ] `CE_contenttype` property field MUST be set to the media type
of an event format.
Example for the JSON format:
```
CE_contenttype: application/cloudevents+json; charset=UTF-8
```
#### 3.2.2. Event Data Encoding
The chosen event format defines how all attributes, including the payload, are represented.
And in RocketMQ Message Header, it describes what is the type of transport event.
The event metadata and data MAY then be rendered in accordance with the event format
specification and the resulting data becomes the payload.
#### 3.2.3. Metadata Headers
Implementations MAY include the same RocketMQ headers as defined for the binary mode.
#### 3.2.4. Example
This example shows a JSON event format encoded structured data event:
``` text
------------------ Message ---------------------------
Topic: mytopic
------------------ user properties -------------------
CE_contenttype: application/cloudevents+json; charset=UTF-8
------------------ value -----------------------------
{
"cloudEventsVersion" : "0.1",
"eventType" : "com.example.someevent",
... further attributes omitted ...
"data" : {
... application data ...
}
}
------------------------------------------------------
```
## 4. References
- [RocketMQ][RocketMQ] The RocketMQ Messaging System
- [RFC2046][RFC2046] Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
- [RFC2119][RFC2119] Key words for use in RFCs to Indicate Requirement Levels
- [RFC3629][RFC3629] UTF-8, a transformation format of ISO 10646
- [RFC7159][RFC7159] The JavaScript Object Notation (JSON) Data Interchange Format
[CE]: ./spec.md
[JSON-format]: ./json-format.md
[RocketMQ]: http://rocketmq.apache.org/
[JSON-Value]: https://tools.ietf.org/html/rfc7159#section-3
[RFC2046]: https://tools.ietf.org/html/rfc2046
[RFC2119]: https://tools.ietf.org/html/rfc2119
[RFC3629]: https://tools.ietf.org/html/rfc3629
[RFC7159]: https://tools.ietf.org/html/rfc7159
================================================
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/RocketMQMessageFactory.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.cloudevent;
import org.apache.rocketmq.cloudevent.impl.RocketMQBinaryMessageReader;
import org.apache.rocketmq.cloudevent.impl.RocketMQHeaders;
import org.apache.rocketmq.cloudevent.impl.RocketMQMessageWriter;
import io.cloudevents.core.message.MessageReader;
import io.cloudevents.core.message.MessageWriter;
import io.cloudevents.core.message.impl.GenericStructuredMessageReader;
import io.cloudevents.core.message.impl.MessageUtils;
import io.cloudevents.lang.Nullable;
import io.cloudevents.rw.CloudEventRWException;
import io.cloudevents.rw.CloudEventWriter;
import org.apache.rocketmq.common.message.Message;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Map;
@ParametersAreNonnullByDefault
public final class RocketMQMessageFactory {
private RocketMQMessageFactory() {
// prevent instantiation
}
public static MessageReader createReader(final Message message) throws CloudEventRWException {
return createReader(message.getProperties(), message.getBody());
}
public static MessageReader createReader(final Map<String, String> props, @Nullable final byte[] body) throws CloudEventRWException {
return MessageUtils.parseStructuredOrBinaryMessage(
() -> props.get(RocketMQHeaders.CONTENT_TYPE),
format -> new GenericStructuredMessageReader(format, body),
() -> props.get(RocketMQHeaders.SPEC_VERSION),
sv -> new RocketMQBinaryMessageReader(sv, props, body)
);
}
public static MessageWriter<CloudEventWriter<Message>, Message> createWriter(String topic) {
return new RocketMQMessageWriter<>(topic);
}
public static MessageWriter<CloudEventWriter<Message>, Message> createWriter(String topic, String keys) {
return new RocketMQMessageWriter<>(topic, keys);
}
public static MessageWriter<CloudEventWriter<Message>, Message> createWriter(String topic, String keys, String tags) {
return new RocketMQMessageWriter<>(topic, keys, tags);
}
}
================================================
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQBinaryMessageReader.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.cloudevent.impl;
import io.cloudevents.SpecVersion;
import io.cloudevents.core.data.BytesCloudEventData;
import io.cloudevents.core.message.impl.BaseGenericBinaryMessageReaderImpl;
import java.util.Map;
import java.util.Objects;
import java.util.function.BiConsumer;
public class RocketMQBinaryMessageReader extends BaseGenericBinaryMessageReaderImpl<String, String> {
private final Map<String, String> headers;
public RocketMQBinaryMessageReader(SpecVersion version, Map<String, String> headers, byte[] payload) {
super(version, payload != null && payload.length > 0 ? BytesCloudEventData.wrap(payload) : null);
Objects.requireNonNull(headers);
this.headers = headers;
}
@Override
protected boolean isContentTypeHeader(String key) {
return key.equals(RocketMQHeaders.CONTENT_TYPE);
}
@Override
protected boolean isCloudEventsHeader(String key) {
return key.length() > 3 && key.substring(0, RocketMQHeaders.CE_PREFIX.length()).startsWith(RocketMQHeaders.CE_PREFIX);
}
@Override
protected String toCloudEventsKey(String key) {
return key.substring(RocketMQHeaders.CE_PREFIX.length()).toLowerCase();
}
@Override
protected void forEachHeader(BiConsumer<String, String> fn) {
this.headers.forEach((k, v) -> fn.accept(k, v));
}
@Override
protected String toCloudEventsValue(String value) {
return value;
}
}
================================================
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQHeaders.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.cloudevent.impl;
import io.cloudevents.core.message.impl.MessageUtils;
import io.cloudevents.core.v1.CloudEventV1;
import java.util.Map;
public class RocketMQHeaders {
public static final String CE_PREFIX = "CE_";
protected static final Map<String, String> ATTRIBUTES_TO_HEADERS = MessageUtils.generateAttributesToHeadersMapping(v -> CE_PREFIX + v);
public static final String CONTENT_TYPE = ATTRIBUTES_TO_HEADERS.get(CloudEventV1.DATACONTENTTYPE);
public static final String SPEC_VERSION = ATTRIBUTES_TO_HEADERS.get(CloudEventV1.SPECVERSION);
}
================================================
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQMessageWriter.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.cloudevent.impl;
import io.cloudevents.CloudEventData;
import io.cloudevents.SpecVersion;
import io.cloudevents.core.format.EventFormat;
import io.cloudevents.core.message.MessageWriter;
import io.cloudevents.rw.CloudEventContextWriter;
import io.cloudevents.rw.CloudEventRWException;
import io.cloudevents.rw.CloudEventWriter;
import org.apache.rocketmq.common.message.Message;
public final class RocketMQMessageWriter<R> implements MessageWriter<CloudEventWriter<Message>, Message>, CloudEventWriter<Message> {
private Message message;
public RocketMQMessageWriter(String topic) {
message = new Message();
message.setTopic(topic);
}
public RocketMQMessageWriter(String topic, String keys) {
message = new Message();
message.setTopic(topic);
if (keys != null && keys.length() > 0) {
message.setKeys(keys);
}
}
public RocketMQMessageWriter(String topic, String keys, String tags) {
message = new Message();
message.setTopic(topic);
if (tags != null && tags.length() > 0) {
message.setTags(tags);
}
if (keys != null && keys.length() > 0) {
message.setKeys(keys);
}
}
@Override
public CloudEventContextWriter withContextAttribute(String name, String value) throws CloudEventRWException {
String propName = RocketMQHeaders.ATTRIBUTES_TO_HEADERS.get(name);
if (propName == null) {
propName = RocketMQHeaders.CE_PREFIX + name;
}
message.putUserProperty(propName, value);
return this;
}
@Override
public RocketMQMessageWriter<R> create(final SpecVersion version) {
message.putUserProperty(RocketMQHeaders.SPEC_VERSION, version.toString());
return this;
}
@Override
public Message setEvent(final EventFormat format, final byte[] value) throws CloudEventRWException {
message.putUserProperty(RocketMQHeaders.CONTENT_TYPE, format.serializedContentType());
message.setBody(value);
return message;
}
@Override
public Message end(final CloudEventData data) throws CloudEventRWException {
message.setBody(data.toBytes());
return message;
}
@Override
public Message end() {
message.setBody(null);
return message;
}
}
================================================
FILE: rocketmq-cloudevents-binding/src/test/java/org/apache/rocketmq/cloudevent/RocketMQMessageWriterTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.cloudevent;
import io.cloudevents.CloudEvent;
import io.cloudevents.SpecVersion;
import io.cloudevents.core.message.StructuredMessageReader;
import io.cloudevents.core.mock.CSVFormat;
import io.cloudevents.core.test.Data;
import io.cloudevents.core.v03.CloudEventV03;
import io.cloudevents.core.v1.CloudEventV1;
import io.cloudevents.types.Time;
import org.apache.rocketmq.cloudevent.impl.RocketMQHeaders;
import org.apache.rocketmq.common.message.Message;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import java.util.AbstractMap;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
public class RocketMQMessageWriterTest {
private static final String PREFIX_TEMPLATE = RocketMQHeaders.CE_PREFIX + "%s";
private static final String DATACONTENTTYPE_NULL = null;
private static final byte[] DATAPAYLOAD_NULL = null;
@ParameterizedTest
@MethodSource("io.cloudevents.core.test.Data#allEventsWithoutExtensions")
void testRequestWithStructured(CloudEvent event) {
String expectedContentType = CSVFormat.INSTANCE.serializedContentType();
byte[] expectedBuffer = CSVFormat.INSTANCE.serialize(event);
String topic = "test";
String keys = "keys";
String tags = "tags";
Message message = StructuredMessageReader
.from(event, CSVFormat.INSTANCE)
.read(RocketMQMessageFactory.createWriter(topic, keys, tags));
assertThat(message.getTopic())
.isEqualTo(topic);
assertThat(message.getKeys())
.isEqualTo(keys);
assertThat(message.getTags())
.isEqualTo(tags);
assertThat(message.getBody())
.isEqualTo(expectedBuffer);
}
@ParameterizedTest
@MethodSource("binaryTestArguments")
void testRequestWithBinary(CloudEvent event, Map<String, String> expectedHeaders, byte[] expectedBody) {
String topic = "test";
String keys = "keys";
String tags = "tags";
Message message = RocketMQMessageFactory
.createWriter(topic, keys, tags)
.writeBinary(event);
assertThat(message.getTopic())
.isEqualTo(topic);
assertThat(message.getKeys())
.isEqualTo(keys);
assertThat(message.getTags())
.isEqualTo(tags);
assertThat(message.getBody())
.isEqualTo(expectedBody);
assertThat(message.getProperties()
.keySet().containsAll(expectedHeaders.keySet()));
assertThat(message.getProperties()
.values().containsAll(expectedHeaders.values()));
}
private static Stream<Arguments> binaryTestArguments() {
return Stream.of(
// V03
Arguments.of(
Data.V03_MIN,
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property("ignored", "ignore")
),
DATAPAYLOAD_NULL
),
Arguments.of(
Data.V03_WITH_JSON_DATA,
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SCHEMAURL, Data.DATASCHEMA.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignore")
),
Data.DATA_JSON_SERIALIZED
),
Arguments.of(
Data.V03_WITH_JSON_DATA_WITH_EXT_STRING,
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SCHEMAURL, Data.DATASCHEMA.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("astring", "aaa"),
property("aboolean", "true"),
property("anumber", "10"),
property("ignored", "ignored")
),
Data.DATA_JSON_SERIALIZED
),
Arguments.of(
Data.V03_WITH_XML_DATA,
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATA_XML_SERIALIZED
),
Arguments.of(
Data.V03_WITH_TEXT_DATA,
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATA_TEXT_SERIALIZED
),
// V1
Arguments.of(
Data.V1_MIN,
properties(
property(CloudEventV1.SPECVERSION, SpecVersion.V1.toString()),
property(CloudEventV1.ID, Data.ID),
property(CloudEventV1.TYPE, Data.TYPE),
property(CloudEventV1.SOURCE, Data.SOURCE.toString()),
property("ignored", "ignored")
),
DATAPAYLOAD_NULL
),
Arguments.of(
Data.V1_WITH_JSON_DATA,
properties(
property(CloudEventV1.SPECVERSION, SpecVersion.V1.toString()),
property(CloudEventV1.ID, Data.ID),
property(CloudEventV1.TYPE, Data.TYPE),
property(CloudEventV1.SOURCE, Data.SOURCE.toString()),
property(CloudEventV1.DATASCHEMA, Data.DATASCHEMA.toString()),
property(CloudEventV1.SUBJECT, Data.SUBJECT),
property(CloudEventV1.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATA_JSON_SERIALIZED
),
Arguments.of(
Data.V1_WITH_JSON_DATA_WITH_EXT_STRING,
properties(
property(CloudEventV1.SPECVERSION, SpecVersion.V1.toString()),
property(CloudEventV1.ID, Data.ID),
property(CloudEventV1.TYPE, Data.TYPE),
property(CloudEventV1.SOURCE, Data.SOURCE.toString()),
property(CloudEventV1.DATASCHEMA, Data.DATASCHEMA.toString()),
property(CloudEventV1.SUBJECT, Data.SUBJECT),
property(CloudEventV1.TIME, Time.writeTime(Data.TIME)),
property("astring", "aaa"),
property("aboolean", "true"),
property("anumber", "10"),
property("ignored", "ignored")
),
Data.DATA_JSON_SERIALIZED
),
Arguments.of(
Data.V1_WITH_XML_DATA,
properties(
property(CloudEventV1.SPECVERSION, SpecVersion.V1.toString()),
property(CloudEventV1.ID, Data.ID),
property(CloudEventV1.TYPE, Data.TYPE),
property(CloudEventV1.SOURCE, Data.SOURCE.toString()),
property(CloudEventV1.SUBJECT, Data.SUBJECT),
property(CloudEventV1.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATA_XML_SERIALIZED
),
Arguments.of(
Data.V1_WITH_TEXT_DATA,
properties(
property(CloudEventV1.SPECVERSION, SpecVersion.V1.toString()),
property(CloudEventV1.ID, Data.ID),
property(CloudEventV1.TYPE, Data.TYPE),
property(CloudEventV1.SOURCE, Data.SOURCE.toString()),
property(CloudEventV1.SUBJECT, Data.SUBJECT),
property(CloudEventV1.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATA_TEXT_SERIALIZED
)
);
}
private static final AbstractMap.SimpleEntry<String, String> property(final String name, final String value) {
return name.equalsIgnoreCase("ignored") ?
new AbstractMap.SimpleEntry<>(name, value) :
new AbstractMap.SimpleEntry<>(String.format(PREFIX_TEMPLATE, name), value);
}
@SafeVarargs
private static final Map<String, String> properties(final AbstractMap.SimpleEntry<String, String>... entries) {
return Stream.of(entries)
.collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
}
}
================================================
FILE: rocketmq-cloudevents-binding/src/test/java/org/apache/rocketmq/cloudevent/RocketmqMessageFactoryTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.cloudevent;
import io.cloudevents.CloudEvent;
import io.cloudevents.SpecVersion;
import io.cloudevents.core.message.Encoding;
import io.cloudevents.core.message.MessageReader;
import io.cloudevents.core.mock.CSVFormat;
import io.cloudevents.core.test.Data;
import io.cloudevents.core.v03.CloudEventV03;
import io.cloudevents.core.v1.CloudEventV1;
import io.cloudevents.types.Time;
import org.apache.rocketmq.cloudevent.impl.RocketMQHeaders;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import java.util.AbstractMap;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
public class RocketmqMessageFactoryTest {
private static final String PREFIX_TEMPLATE = RocketMQHeaders.CE_PREFIX + "%s";
private static final String DATACONTENTTYPE_NULL = null;
private static final byte[] DATAPAYLOAD_NULL = null;
@ParameterizedTest()
@MethodSource("binaryTestArguments")
public void readBinary(final Map<String, String> props, final String contentType, final byte[] body,
final CloudEvent event) {
props.put(RocketMQHeaders.CONTENT_TYPE, contentType);
final MessageReader reader = RocketMQMessageFactory.createReader(props, body);
assertThat(reader.getEncoding()).isEqualTo(Encoding.BINARY);
assertThat(reader.toEvent()).isEqualTo(event);
}
@ParameterizedTest()
@MethodSource("io.cloudevents.core.test.Data#allEventsWithoutExtensions")
public void readStructured(final CloudEvent event) {
final String contentType = CSVFormat.INSTANCE.serializedContentType() + "; charset=utf8";
final byte[] contentPayload = CSVFormat.INSTANCE.serialize(event);
Map<String, String> properties = new HashMap<>();
properties.put(RocketMQHeaders.CONTENT_TYPE, contentType);
final MessageReader reader = RocketMQMessageFactory.createReader(properties, contentPayload);
assertThat(reader.getEncoding()).isEqualTo(Encoding.STRUCTURED);
assertThat(reader.toEvent()).isEqualTo(event);
}
private static Stream<Arguments> binaryTestArguments() {
return Stream.of(
// V03
Arguments.of(
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property("ignored", "ignore")
),
DATACONTENTTYPE_NULL,
DATAPAYLOAD_NULL,
Data.V03_MIN
),
Arguments.of(
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SCHEMAURL, Data.DATASCHEMA.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignore")
),
Data.DATACONTENTTYPE_JSON,
Data.DATA_JSON_SERIALIZED,
Data.V03_WITH_JSON_DATA
),
Arguments.of(
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SCHEMAURL, Data.DATASCHEMA.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("astring", "aaa"),
property("aboolean", "true"),
property("anumber", "10"),
property("ignored", "ignored")
),
Data.DATACONTENTTYPE_JSON,
Data.DATA_JSON_SERIALIZED,
Data.V03_WITH_JSON_DATA_WITH_EXT_STRING
),
Arguments.of(
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATACONTENTTYPE_XML,
Data.DATA_XML_SERIALIZED,
Data.V03_WITH_XML_DATA
),
Arguments.of(
properties(
property(CloudEventV03.SPECVERSION, SpecVersion.V03.toString()),
property(CloudEventV03.ID, Data.ID),
property(CloudEventV03.TYPE, Data.TYPE),
property(CloudEventV03.SOURCE, Data.SOURCE.toString()),
property(CloudEventV03.SUBJECT, Data.SUBJECT),
property(CloudEventV03.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATACONTENTTYPE_TEXT,
Data.DATA_TEXT_SERIALIZED,
Data.V03_WITH_TEXT_DATA
),
// V1
Arguments.of(
properties(
property(CloudEventV1.SPECVERSION, SpecVersion.V1.toString()),
property(CloudEventV1.ID, Data.ID),
property(CloudEventV1.TYPE, Data.TYPE),
property(CloudEventV1.SOURCE, Data.SOURCE.toString()),
property("ignored", "ignored")
),
DATACONTENTTYPE_NULL,
DATAPAYLOAD_NULL,
Data.V1_MIN
),
Arguments.of(
properties(
property(CloudEventV1.SPECVERSION, SpecVersion.V1.toString()),
property(CloudEventV1.ID, Data.ID),
property(CloudEventV1.TYPE, Data.TYPE),
property(CloudEventV1.SOURCE, Data.SOURCE.toString()),
property(CloudEventV1.DATASCHEMA, Data.DATASCHEMA.toString()),
property(CloudEventV1.SUBJECT, Data.SUBJECT),
property(CloudEventV1.TIME, Time.writeTime(Data.TIME)),
property("ignored", "ignored")
),
Data.DATACONTENTTYPE_JSON,
Showing preview only (380K chars total). Download the full file or copy to clipboard to get everything.
gitextract_xsbb2xua/ ├── .github/ │ ├── ISSUE_TEMPLATE.md │ └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .travis.yml ├── README.md ├── dev/ │ └── merge_rocketmq_pr.py ├── docs/ │ └── connect/ │ └── cn/ │ └── README.md ├── logappender/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── rocketmq/ │ │ └── logappender/ │ │ ├── common/ │ │ │ └── ProducerInstance.java │ │ ├── log4j/ │ │ │ └── RocketmqLog4jAppender.java │ │ ├── log4j2/ │ │ │ └── RocketmqLog4j2Appender.java │ │ └── logback/ │ │ └── RocketmqLogbackAppender.java │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── apache/ │ │ └── rocketmq/ │ │ └── logappender/ │ │ ├── AbstractTestCase.java │ │ ├── Log4jPropertiesTest.java │ │ ├── Log4jTest.java │ │ ├── Log4jXmlTest.java │ │ ├── LogbackTest.java │ │ └── log4j2Test.java │ └── resources/ │ ├── log4j-example.properties │ ├── log4j-example.xml │ ├── log4j2-example.xml │ └── logback-example.xml ├── rocketmq-ansible/ │ ├── Rocketmq Ansible Playbook cn.md │ ├── Rocketmq Ansible Playbook en.md │ ├── broker.yml │ ├── exporter.yml │ ├── hosts │ ├── namesrv.yml │ ├── rocketmq.yml │ ├── roles/ │ │ ├── broker/ │ │ │ ├── tasks/ │ │ │ │ └── main.yml │ │ │ ├── templates/ │ │ │ │ ├── broker.conf.j2 │ │ │ │ ├── logback_broker.xml.j2 │ │ │ │ └── mqbroker.service │ │ │ └── vars/ │ │ │ └── main.yml │ │ ├── exporter/ │ │ │ ├── files/ │ │ │ │ └── mqexportershutdown.sh │ │ │ ├── tasks/ │ │ │ │ └── main.yml │ │ │ ├── templates/ │ │ │ │ ├── mqexporter.service │ │ │ │ └── mqexporter.sh.j2 │ │ │ └── vars/ │ │ │ └── main.yml │ │ └── namesrv/ │ │ ├── tasks/ │ │ │ └── main.yml │ │ ├── templates/ │ │ │ ├── logback_namesrv.xml.j2 │ │ │ └── mqnamesrv.service │ │ └── vars/ │ │ └── main.yml │ └── vars/ │ └── main.yml ├── rocketmq-beats-integration/ │ ├── README.md │ └── libbeat/ │ └── outputs/ │ └── rocketmq/ │ ├── LICENSE │ ├── NOTICE │ ├── client.go │ ├── config.go │ └── rocketmq.go ├── rocketmq-cloudevents-binding/ │ ├── pom.xml │ ├── rocketmq-transport-binding.md │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── rocketmq/ │ │ └── cloudevent/ │ │ ├── RocketMQMessageFactory.java │ │ └── impl/ │ │ ├── RocketMQBinaryMessageReader.java │ │ ├── RocketMQHeaders.java │ │ └── RocketMQMessageWriter.java │ └── test/ │ └── java/ │ └── org/ │ └── apache/ │ └── rocketmq/ │ └── cloudevent/ │ ├── RocketMQMessageWriterTest.java │ └── RocketmqMessageFactoryTest.java ├── rocketmq-flume/ │ ├── .gitignore │ ├── LICENSE │ ├── LICENSE-BIN │ ├── NOTICE │ ├── NOTICE-BIN │ ├── README.md │ ├── pom.xml │ ├── rocketmq-flume-sink/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── flume/ │ │ │ └── ng/ │ │ │ └── sink/ │ │ │ ├── RocketMQSink.java │ │ │ └── RocketMQSinkConstants.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── flume/ │ │ │ └── ng/ │ │ │ └── sink/ │ │ │ └── RocketMQSinkTest.java │ │ └── resources/ │ │ └── log4j.properties │ ├── rocketmq-flume-source/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── flume/ │ │ │ └── ng/ │ │ │ └── source/ │ │ │ ├── RocketMQSource.java │ │ │ └── RocketMQSourceConstants.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── flume/ │ │ │ └── ng/ │ │ │ └── source/ │ │ │ └── RocketMQSourceTest.java │ │ └── resources/ │ │ └── log4j.properties │ └── style/ │ ├── copyright/ │ │ ├── Apache.xml │ │ └── profiles_settings.xml │ ├── rmq_checkstyle.xml │ └── rmq_codeStyle.xml ├── rocketmq-hbase/ │ ├── README.md │ ├── pom.xml │ ├── rocketmq-hbase-sink/ │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── hbase/ │ │ │ └── sink/ │ │ │ ├── DataRow.java │ │ │ ├── Replicator.java │ │ │ ├── RocketMQProducer.java │ │ │ └── Transaction.java │ │ └── test/ │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── rocketmq/ │ │ └── sink/ │ │ └── ReplicatorTest.java │ ├── rocketmq-hbase-source/ │ │ ├── LICENSE-BIN │ │ ├── NOTICE-BIN │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── assembly/ │ │ │ │ ├── assembly.xml │ │ │ │ └── scripts/ │ │ │ │ ├── start.sh │ │ │ │ └── stop.sh │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── apache/ │ │ │ │ └── rocketmq/ │ │ │ │ └── hbase/ │ │ │ │ └── source/ │ │ │ │ ├── Config.java │ │ │ │ ├── HBaseClient.java │ │ │ │ ├── MessageProcessor.java │ │ │ │ ├── RocketMQConsumer.java │ │ │ │ └── RocketMQSource.java │ │ │ └── resources/ │ │ │ ├── logback.xml │ │ │ └── rocketmq_hbase.conf │ │ └── test/ │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── rocketmq/ │ │ └── hbase/ │ │ └── source/ │ │ └── RocketMQSourceTest.java │ └── style/ │ ├── copyright/ │ │ ├── Apache.xml │ │ └── profiles_settings.xml │ ├── rmq_checkstyle.xml │ └── rmq_codeStyle.xml ├── rocketmq-iot-bridge/ │ ├── .gitignore │ ├── README.md │ ├── docs/ │ │ ├── architecture.md │ │ └── index.md │ ├── docs-cn/ │ │ ├── architecture.md │ │ └── index.md │ ├── pom.xml │ ├── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── iot/ │ │ │ ├── MQTTBridge.java │ │ │ ├── common/ │ │ │ │ ├── configuration/ │ │ │ │ │ ├── ChannelConfiguration.java │ │ │ │ │ └── MQTTBridgeConfiguration.java │ │ │ │ ├── data/ │ │ │ │ │ └── Message.java │ │ │ │ └── util/ │ │ │ │ └── MessageUtil.java │ │ │ ├── connection/ │ │ │ │ └── client/ │ │ │ │ ├── Client.java │ │ │ │ ├── ClientManager.java │ │ │ │ └── impl/ │ │ │ │ └── ClientManagerImpl.java │ │ │ ├── example/ │ │ │ │ ├── MqttSampleConsumer.java │ │ │ │ └── MqttSampleProducer.java │ │ │ ├── protocol/ │ │ │ │ └── mqtt/ │ │ │ │ ├── constant/ │ │ │ │ │ └── MqttConstant.java │ │ │ │ ├── data/ │ │ │ │ │ ├── Bridge.java │ │ │ │ │ ├── MqttClient.java │ │ │ │ │ └── Subscription.java │ │ │ │ ├── event/ │ │ │ │ │ └── DisconnectChannelEvent.java │ │ │ │ └── handler/ │ │ │ │ ├── MessageDispatcher.java │ │ │ │ ├── MessageHandler.java │ │ │ │ ├── MqttConnectionHandler.java │ │ │ │ ├── MqttIdleHandler.java │ │ │ │ └── downstream/ │ │ │ │ ├── SendCallback.java │ │ │ │ └── impl/ │ │ │ │ ├── MqttConnectMessageHandler.java │ │ │ │ ├── MqttDisconnectMessageHandler.java │ │ │ │ ├── MqttMessageForwarder.java │ │ │ │ ├── MqttMessageSender.java │ │ │ │ ├── MqttPingreqMessageHandler.java │ │ │ │ ├── MqttPubackMessageHandler.java │ │ │ │ ├── MqttPubcompMessageHandler.java │ │ │ │ ├── MqttPublishMessageHandler.java │ │ │ │ ├── MqttPubrecMessageHandler.java │ │ │ │ ├── MqttPubrelMessageHandler.java │ │ │ │ ├── MqttSubscribeMessageHandler.java │ │ │ │ └── MqttUnsubscribeMessagHandler.java │ │ │ └── storage/ │ │ │ ├── message/ │ │ │ │ ├── MessageStore.java │ │ │ │ └── cache/ │ │ │ │ └── MessageCache.java │ │ │ └── subscription/ │ │ │ ├── SubscriptionStore.java │ │ │ └── impl/ │ │ │ └── InMemorySubscriptionStore.java │ │ └── test/ │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── rocketmq/ │ │ └── iot/ │ │ ├── connection/ │ │ │ └── client/ │ │ │ └── ClientManagerTest.java │ │ ├── integration/ │ │ │ ├── ConsumeMessageIntegrationTest.java │ │ │ ├── ProduceMessageIntegrationTest.java │ │ │ └── PubSubIntegrationTest.java │ │ ├── protocol/ │ │ │ └── mqtt/ │ │ │ └── handler/ │ │ │ ├── MqttConnectionHandlerTest.java │ │ │ ├── MqttDispatcherTest.java │ │ │ ├── MqttIdleHandlerTest.java │ │ │ └── downstream/ │ │ │ ├── AbstractMqttMessageHandlerTest.java │ │ │ ├── MqttConnectMessageHandlerTest.java │ │ │ ├── MqttDisconnectMessageHandlerTest.java │ │ │ ├── MqttMessageForwarderTest.java │ │ │ ├── MqttPingreqMessageHandlerTest.java │ │ │ ├── MqttSubscribeMessageHandlerTest.java │ │ │ └── MqttUnsubscribeMessageHandlerTest.java │ │ └── storage/ │ │ └── subscription/ │ │ └── InMemorySubscriptionTest.java │ └── style/ │ ├── copyright/ │ │ ├── Apache.xml │ │ └── profiles_settings.xml │ ├── rmq_checkstyle.xml │ └── rmq_codeStyle.xml ├── rocketmq-jms/ │ ├── .gitignore │ ├── .travis.yml │ ├── README.md │ ├── core/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── org/ │ │ │ │ └── apache/ │ │ │ │ └── rocketmq/ │ │ │ │ └── jms/ │ │ │ │ ├── domain/ │ │ │ │ │ ├── CommonConstant.java │ │ │ │ │ ├── CommonContext.java │ │ │ │ │ ├── JmsBaseConnection.java │ │ │ │ │ ├── JmsBaseConnectionFactory.java │ │ │ │ │ ├── JmsBaseConnectionMetaData.java │ │ │ │ │ ├── JmsBaseConstant.java │ │ │ │ │ ├── JmsBaseMessageConsumer.java │ │ │ │ │ ├── JmsBaseMessageProducer.java │ │ │ │ │ ├── JmsBaseSession.java │ │ │ │ │ ├── JmsBaseTopic.java │ │ │ │ │ ├── RMQPushConsumerExt.java │ │ │ │ │ └── message/ │ │ │ │ │ ├── JmsBaseMessage.java │ │ │ │ │ ├── JmsBytesMessage.java │ │ │ │ │ ├── JmsObjectMessage.java │ │ │ │ │ └── JmsTextMessage.java │ │ │ │ └── util/ │ │ │ │ ├── ExceptionUtil.java │ │ │ │ ├── MessageConverter.java │ │ │ │ ├── MsgConvertUtil.java │ │ │ │ └── URISpecParser.java │ │ │ └── resources/ │ │ │ └── application.conf │ │ └── test/ │ │ └── java/ │ │ └── org/ │ │ └── apache/ │ │ └── rocketmq/ │ │ └── jms/ │ │ ├── JmsTestListener.java │ │ ├── JmsTestUtil.java │ │ ├── domain/ │ │ │ └── message/ │ │ │ ├── JmsBytesMessageTest.java │ │ │ ├── JmsMessageConvertTest.java │ │ │ ├── JmsObjectMessageTest.java │ │ │ └── JmsTextMessageTest.java │ │ ├── integration/ │ │ │ ├── IntegrationTestBase.java │ │ │ ├── JmsClientIT.java │ │ │ └── JmsConsumerIT.java │ │ └── util/ │ │ └── URISpecParserTest.java │ ├── pom.xml │ ├── spring/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── jms/ │ │ │ └── spring/ │ │ │ └── SimpleExMessageListenerContainer.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── rocketmq/ │ │ │ └── jms/ │ │ │ └── spring/ │ │ │ ├── JmsConsumeIT.java │ │ │ ├── JmsProduceIT.java │ │ │ └── SpringTestBase.java │ │ └── resources/ │ │ ├── consumer.xml │ │ └── producer.xml │ └── style/ │ ├── copyright/ │ │ ├── Apache.xml │ │ └── profiles_settings.xml │ ├── rmq_checkstyle.xml │ └── rmq_codeStyle.xml ├── rocketmq-knative/ │ └── source/ │ ├── Dockerfile.adapter │ ├── Dockerfile.controller │ ├── README.md │ ├── cmd/ │ │ ├── controller/ │ │ │ └── main.go │ │ └── receive_adapter/ │ │ └── main.go │ ├── config/ │ │ ├── 200-serviceaccount.yaml │ │ ├── 201-clusterrole.yaml │ │ ├── 202-clusterrolebinding.yaml │ │ ├── 300-rocketmqsource.yaml │ │ ├── 400-controller-service.yaml │ │ ├── 500-controller.yaml │ │ └── 600-istioegress.yaml │ ├── pkg/ │ │ ├── adapter/ │ │ │ └── adapter.go │ │ ├── apis/ │ │ │ ├── addtoscheme_eventing_v1alpha1.go │ │ │ ├── addtoscheme_sources_v1alpha1.go │ │ │ ├── apis.go │ │ │ └── sources/ │ │ │ ├── group.go │ │ │ └── v1alpha1/ │ │ │ ├── doc.go │ │ │ ├── register.go │ │ │ ├── rocketmqsource_types.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── client/ │ │ │ ├── clientset/ │ │ │ │ └── versioned/ │ │ │ │ ├── clientset.go │ │ │ │ ├── doc.go │ │ │ │ ├── scheme/ │ │ │ │ │ ├── doc.go │ │ │ │ │ └── register.go │ │ │ │ └── typed/ │ │ │ │ └── sources/ │ │ │ │ └── v1alpha1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated_expansion.go │ │ │ │ ├── rocketmqsource.go │ │ │ │ └── sources_client.go │ │ │ ├── informers/ │ │ │ │ └── externalversions/ │ │ │ │ ├── factory.go │ │ │ │ ├── generic.go │ │ │ │ ├── internalinterfaces/ │ │ │ │ │ └── factory_interfaces.go │ │ │ │ └── sources/ │ │ │ │ ├── interface.go │ │ │ │ └── v1alpha1/ │ │ │ │ ├── interface.go │ │ │ │ └── rocketmqsource.go │ │ │ └── listers/ │ │ │ └── sources/ │ │ │ └── v1alpha1/ │ │ │ ├── expansion_generated.go │ │ │ └── rocketmqsource.go │ │ ├── controller/ │ │ │ ├── sdk/ │ │ │ │ ├── finalizers_accessor.go │ │ │ │ ├── provider.go │ │ │ │ ├── reconciler.go │ │ │ │ └── status_accessor.go │ │ │ ├── sinks/ │ │ │ │ ├── sinks.go │ │ │ │ └── sinks_test.go │ │ │ └── testing/ │ │ │ ├── mock_client.go │ │ │ └── table.go │ │ ├── kncloudevents/ │ │ │ └── good_client.go │ │ └── reconciler/ │ │ ├── creds.go │ │ ├── eventtype/ │ │ │ ├── eventtype.go │ │ │ └── resources/ │ │ │ └── eventtype.go │ │ ├── resources/ │ │ │ └── receive_adapter.go │ │ └── rocketmqsource.go │ ├── sample/ │ │ ├── apacherocketmqsource.yaml │ │ └── event-display.yaml │ └── vendor/ │ ├── cloud.google.com/ │ │ └── go/ │ │ ├── AUTHORS │ │ ├── CONTRIBUTORS │ │ ├── LICENSE │ │ ├── compute/ │ │ │ └── metadata/ │ │ │ └── metadata.go │ │ ├── iam/ │ │ │ └── iam.go │ │ ├── internal/ │ │ │ ├── optional/ │ │ │ │ └── optional.go │ │ │ └── version/ │ │ │ └── version.go │ │ └── pubsub/ │ │ ├── apiv1/ │ │ │ ├── doc.go │ │ │ ├── path_funcs.go │ │ │ ├── publisher_client.go │ │ │ └── subscriber_client.go │ │ ├── doc.go │ │ ├── flow_controller.go │ │ ├── go18.go │ │ ├── internal/ │ │ │ └── distribution/ │ │ │ └── distribution.go │ │ ├── iterator.go │ │ ├── message.go │ │ ├── not_go18.go │ │ ├── pubsub.go │ │ ├── pullstream.go │ │ ├── service.go │ │ ├── snapshot.go │ │ ├── subscription.go │ │ └── topic.go │ ├── github.com/ │ │ ├── DataDog/ │ │ │ └── zstd/ │ │ │ ├── LICENSE │ │ │ ├── bitstream.h │ │ │ ├── compiler.h │ │ │ ├── cover.c │ │ │ ├── cpu.h │ │ │ ├── divsufsort.c │ │ │ ├── divsufsort.h │ │ │ ├── entropy_common.c │ │ │ ├── error_private.c │ │ │ ├── error_private.h │ │ │ ├── errors.go │ │ │ ├── fse.h │ │ │ ├── fse_compress.c │ │ │ ├── fse_decompress.c │ │ │ ├── huf.h │ │ │ ├── huf_compress.c │ │ │ ├── huf_decompress.c │ │ │ ├── mem.h │ │ │ ├── pool.c │ │ │ ├── pool.h │ │ │ ├── threading.c │ │ │ ├── threading.h │ │ │ ├── xxhash.c │ │ │ ├── xxhash.h │ │ │ ├── zbuff.h │ │ │ ├── zbuff_common.c │ │ │ ├── zbuff_compress.c │ │ │ ├── zbuff_decompress.c │ │ │ ├── zdict.c │ │ │ ├── zdict.h │ │ │ ├── zstd.go │ │ │ ├── zstd.h │ │ │ ├── zstd_common.c │ │ │ ├── zstd_compress.c │ │ │ ├── zstd_compress_internal.h │ │ │ ├── zstd_decompress.c │ │ │ ├── zstd_double_fast.c │ │ │ ├── zstd_double_fast.h │ │ │ ├── zstd_errors.h │ │ │ ├── zstd_fast.c │ │ │ ├── zstd_fast.h │ │ │ ├── zstd_internal.h │ │ │ ├── zstd_lazy.c │ │ │ ├── zstd_lazy.h │ │ │ ├── zstd_ldm.c │ │ │ ├── zstd_ldm.h │ │ │ ├── zstd_legacy.h │ │ │ ├── zstd_opt.c │ │ │ ├── zstd_opt.h │ │ │ ├── zstd_stream.go │ │ │ ├── zstd_v01.c │ │ │ ├── zstd_v01.h │ │ │ ├── zstd_v02.c │ │ │ ├── zstd_v02.h │ │ │ ├── zstd_v03.c │ │ │ ├── zstd_v03.h │ │ │ ├── zstd_v04.c │ │ │ ├── zstd_v04.h │ │ │ ├── zstd_v05.c │ │ │ ├── zstd_v05.h │ │ │ ├── zstd_v06.c │ │ │ ├── zstd_v06.h │ │ │ ├── zstd_v07.c │ │ │ ├── zstd_v07.h │ │ │ ├── zstdmt_compress.c │ │ │ └── zstdmt_compress.h │ │ ├── Shopify/ │ │ │ └── sarama/ │ │ │ ├── LICENSE │ │ │ ├── acl_bindings.go │ │ │ ├── acl_create_request.go │ │ │ ├── acl_create_response.go │ │ │ ├── acl_delete_request.go │ │ │ ├── acl_delete_response.go │ │ │ ├── acl_describe_request.go │ │ │ ├── acl_describe_response.go │ │ │ ├── acl_filter.go │ │ │ ├── acl_types.go │ │ │ ├── add_offsets_to_txn_request.go │ │ │ ├── add_offsets_to_txn_response.go │ │ │ ├── add_partitions_to_txn_request.go │ │ │ ├── add_partitions_to_txn_response.go │ │ │ ├── admin.go │ │ │ ├── alter_configs_request.go │ │ │ ├── alter_configs_response.go │ │ │ ├── api_versions_request.go │ │ │ ├── api_versions_response.go │ │ │ ├── async_producer.go │ │ │ ├── balance_strategy.go │ │ │ ├── broker.go │ │ │ ├── client.go │ │ │ ├── compress.go │ │ │ ├── config.go │ │ │ ├── config_resource_type.go │ │ │ ├── consumer.go │ │ │ ├── consumer_group.go │ │ │ ├── consumer_group_members.go │ │ │ ├── consumer_metadata_request.go │ │ │ ├── consumer_metadata_response.go │ │ │ ├── crc32_field.go │ │ │ ├── create_partitions_request.go │ │ │ ├── create_partitions_response.go │ │ │ ├── create_topics_request.go │ │ │ ├── create_topics_response.go │ │ │ ├── decompress.go │ │ │ ├── delete_groups_request.go │ │ │ ├── delete_groups_response.go │ │ │ ├── delete_records_request.go │ │ │ ├── delete_records_response.go │ │ │ ├── delete_topics_request.go │ │ │ ├── delete_topics_response.go │ │ │ ├── describe_configs_request.go │ │ │ ├── describe_configs_response.go │ │ │ ├── describe_groups_request.go │ │ │ ├── describe_groups_response.go │ │ │ ├── encoder_decoder.go │ │ │ ├── end_txn_request.go │ │ │ ├── end_txn_response.go │ │ │ ├── errors.go │ │ │ ├── fetch_request.go │ │ │ ├── fetch_response.go │ │ │ ├── find_coordinator_request.go │ │ │ ├── find_coordinator_response.go │ │ │ ├── heartbeat_request.go │ │ │ ├── heartbeat_response.go │ │ │ ├── init_producer_id_request.go │ │ │ ├── init_producer_id_response.go │ │ │ ├── join_group_request.go │ │ │ ├── join_group_response.go │ │ │ ├── leave_group_request.go │ │ │ ├── leave_group_response.go │ │ │ ├── length_field.go │ │ │ ├── list_groups_request.go │ │ │ ├── list_groups_response.go │ │ │ ├── message.go │ │ │ ├── message_set.go │ │ │ ├── metadata_request.go │ │ │ ├── metadata_response.go │ │ │ ├── metrics.go │ │ │ ├── mockbroker.go │ │ │ ├── mockresponses.go │ │ │ ├── offset_commit_request.go │ │ │ ├── offset_commit_response.go │ │ │ ├── offset_fetch_request.go │ │ │ ├── offset_fetch_response.go │ │ │ ├── offset_manager.go │ │ │ ├── offset_request.go │ │ │ ├── offset_response.go │ │ │ ├── packet_decoder.go │ │ │ ├── packet_encoder.go │ │ │ ├── partitioner.go │ │ │ ├── prep_encoder.go │ │ │ ├── produce_request.go │ │ │ ├── produce_response.go │ │ │ ├── produce_set.go │ │ │ ├── real_decoder.go │ │ │ ├── real_encoder.go │ │ │ ├── record.go │ │ │ ├── record_batch.go │ │ │ ├── records.go │ │ │ ├── request.go │ │ │ ├── response_header.go │ │ │ ├── sarama.go │ │ │ ├── sasl_authenticate_request.go │ │ │ ├── sasl_authenticate_response.go │ │ │ ├── sasl_handshake_request.go │ │ │ ├── sasl_handshake_response.go │ │ │ ├── sync_group_request.go │ │ │ ├── sync_group_response.go │ │ │ ├── sync_producer.go │ │ │ ├── timestamp.go │ │ │ ├── txn_offset_commit_request.go │ │ │ ├── txn_offset_commit_response.go │ │ │ ├── utils.go │ │ │ ├── zstd_cgo.go │ │ │ └── zstd_fallback.go │ │ ├── aliyun/ │ │ │ └── aliyun-tablestore-go-sdk/ │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── sample/ │ │ │ │ ├── GlobalTableOperation.go │ │ │ │ ├── LocalIndexTableOperation.go │ │ │ │ ├── LocalTransactionOperation.go │ │ │ │ ├── MultipleRowOperation.go │ │ │ │ ├── SearchIndexOperation.go │ │ │ │ ├── SingleRowOperation.go │ │ │ │ ├── StreamOperation.go │ │ │ │ └── TableOperation.go │ │ │ ├── sample.go │ │ │ ├── tablestore/ │ │ │ │ ├── api.go │ │ │ │ ├── api_test.go │ │ │ │ ├── error.go │ │ │ │ ├── error_test.go │ │ │ │ ├── interface.go │ │ │ │ ├── model.go │ │ │ │ ├── ots_header.go │ │ │ │ ├── otsprotocol/ │ │ │ │ │ ├── build_proto.sh │ │ │ │ │ ├── ots_filter.pb.go │ │ │ │ │ ├── ots_filter.proto │ │ │ │ │ ├── search.pb.go │ │ │ │ │ ├── search.proto │ │ │ │ │ ├── table_store.pb.go │ │ │ │ │ └── table_store.proto │ │ │ │ ├── plain_buffer.go │ │ │ │ ├── search/ │ │ │ │ │ ├── collapse.go │ │ │ │ │ ├── query.go │ │ │ │ │ ├── query_bool.go │ │ │ │ │ ├── query_const_score.go │ │ │ │ │ ├── query_exists.go │ │ │ │ │ ├── query_exists_test.go │ │ │ │ │ ├── query_function_score.go │ │ │ │ │ ├── query_geo_bounding_box.go │ │ │ │ │ ├── query_geo_distance.go │ │ │ │ │ ├── query_geo_polygon.go │ │ │ │ │ ├── query_match.go │ │ │ │ │ ├── query_match_phrase.go │ │ │ │ │ ├── query_matchall.go │ │ │ │ │ ├── query_nested.go │ │ │ │ │ ├── query_prefix.go │ │ │ │ │ ├── query_range.go │ │ │ │ │ ├── query_term.go │ │ │ │ │ ├── query_terms.go │ │ │ │ │ ├── query_wildcard.go │ │ │ │ │ ├── search_query.go │ │ │ │ │ ├── sort.go │ │ │ │ │ ├── sort_field.go │ │ │ │ │ ├── sort_geo_distance.go │ │ │ │ │ ├── sort_mode.go │ │ │ │ │ ├── sort_order.go │ │ │ │ │ ├── sort_primary_key.go │ │ │ │ │ ├── sort_score.go │ │ │ │ │ └── variant_types.go │ │ │ │ ├── search_api.go │ │ │ │ ├── search_model.go │ │ │ │ ├── search_model_test.go │ │ │ │ └── util.go │ │ │ ├── timeline/ │ │ │ │ ├── README.md │ │ │ │ ├── error.go │ │ │ │ ├── message.go │ │ │ │ ├── option.go │ │ │ │ ├── promise/ │ │ │ │ │ └── future.go │ │ │ │ ├── sample/ │ │ │ │ │ ├── feed/ │ │ │ │ │ │ ├── feed.go │ │ │ │ │ │ └── main.go │ │ │ │ │ └── im/ │ │ │ │ │ ├── im.go │ │ │ │ │ └── main.go │ │ │ │ ├── scan.go │ │ │ │ ├── store.go │ │ │ │ ├── timeline.go │ │ │ │ ├── timeline_test.go │ │ │ │ └── writer/ │ │ │ │ ├── backoff.go │ │ │ │ ├── writer.go │ │ │ │ └── writer_test.go │ │ │ └── tunnel/ │ │ │ ├── Gopkg.toml │ │ │ ├── README.md │ │ │ ├── api.go │ │ │ ├── api_test.go │ │ │ ├── channel.go │ │ │ ├── channel_test.go │ │ │ ├── checkpointer.go │ │ │ ├── config.go │ │ │ ├── daemon.go │ │ │ ├── daemon_test.go │ │ │ ├── error.go │ │ │ ├── error_test.go │ │ │ ├── header.go │ │ │ ├── mock_api.go │ │ │ ├── model.go │ │ │ ├── processor.go │ │ │ ├── protocol/ │ │ │ │ ├── error.go │ │ │ │ ├── plain_buffer.go │ │ │ │ └── tunnelservice.pb.go │ │ │ ├── sample/ │ │ │ │ ├── backfillTunnel/ │ │ │ │ │ └── main.go │ │ │ │ ├── createTunnel/ │ │ │ │ │ └── main.go │ │ │ │ ├── exactlyOnce/ │ │ │ │ │ └── main.go │ │ │ │ ├── openTunnel/ │ │ │ │ │ └── main.go │ │ │ │ └── schedule/ │ │ │ │ └── main.go │ │ │ ├── state.go │ │ │ ├── state_test.go │ │ │ ├── tunnel.go │ │ │ ├── util.go │ │ │ ├── util_test.go │ │ │ └── worker.go │ │ ├── apache/ │ │ │ ├── camel-k/ │ │ │ │ ├── LICENSE │ │ │ │ ├── NOTICE │ │ │ │ └── pkg/ │ │ │ │ └── apis/ │ │ │ │ └── camel/ │ │ │ │ └── v1alpha1/ │ │ │ │ ├── build_types.go │ │ │ │ ├── camelcatalog_types.go │ │ │ │ ├── camelcatalog_types_support.go │ │ │ │ ├── common_types.go │ │ │ │ ├── common_types_support.go │ │ │ │ ├── doc.go │ │ │ │ ├── integration_types.go │ │ │ │ ├── integration_types_support.go │ │ │ │ ├── integrationcontext_types.go │ │ │ │ ├── integrationcontext_types_support.go │ │ │ │ ├── integrationplatform_types.go │ │ │ │ ├── integrationplatform_types_support.go │ │ │ │ ├── knative/ │ │ │ │ │ ├── types.go │ │ │ │ │ └── types_support.go │ │ │ │ ├── register.go │ │ │ │ ├── zz_generated.deepcopy.go │ │ │ │ └── zz_generated.defaults.go │ │ │ └── rocketmq-client-go/ │ │ │ ├── .github/ │ │ │ │ └── ISSUE_TEMPLATE/ │ │ │ │ └── issue_template.md │ │ │ ├── .golangci.yml │ │ │ ├── .travis.yml │ │ │ ├── CONTRIBUTING.md │ │ │ ├── LICENSE │ │ │ ├── NOTICE │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ ├── README.md │ │ │ ├── api.go │ │ │ ├── benchmark/ │ │ │ │ ├── consumer.go │ │ │ │ ├── main.go │ │ │ │ ├── message.go │ │ │ │ ├── producer.go │ │ │ │ └── stable.go │ │ │ ├── config.go │ │ │ ├── consumer/ │ │ │ │ ├── consumer.go │ │ │ │ ├── consumer_test.go │ │ │ │ ├── interceptor.go │ │ │ │ ├── lock.go │ │ │ │ ├── mock_offset_store.go │ │ │ │ ├── offset_store.go │ │ │ │ ├── offset_store_test.go │ │ │ │ ├── option.go │ │ │ │ ├── process_queue.go │ │ │ │ ├── pull_consumer.go │ │ │ │ ├── pull_consumer_test.go │ │ │ │ ├── push_consumer.go │ │ │ │ ├── push_consumer_test.go │ │ │ │ ├── statistics.go │ │ │ │ ├── statistics_test.go │ │ │ │ ├── strategy.go │ │ │ │ └── strategy_test.go │ │ │ ├── docs/ │ │ │ │ ├── Introduction.md │ │ │ │ ├── client-design.gliffy │ │ │ │ ├── feature.md │ │ │ │ └── zh/ │ │ │ │ ├── native-design_zh.md │ │ │ │ └── rocketmq-protocol_zh.md │ │ │ ├── errors.go │ │ │ ├── examples/ │ │ │ │ ├── consumer/ │ │ │ │ │ ├── acl/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── broadcast/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── delay/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── interceptor/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── namespace/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── orderly/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── pull/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── retry/ │ │ │ │ │ │ ├── concurrent/ │ │ │ │ │ │ │ └── main.go │ │ │ │ │ │ └── order/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── simple/ │ │ │ │ │ │ ├── main-consumer.go │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── strategy/ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── tag/ │ │ │ │ │ │ └── main.go │ │ │ │ │ └── trace/ │ │ │ │ │ └── main.go │ │ │ │ └── producer/ │ │ │ │ ├── acl/ │ │ │ │ │ └── main.go │ │ │ │ ├── async/ │ │ │ │ │ └── main.go │ │ │ │ ├── batch/ │ │ │ │ │ └── main.go │ │ │ │ ├── delay/ │ │ │ │ │ └── main.go │ │ │ │ ├── interceptor/ │ │ │ │ │ └── main.go │ │ │ │ ├── namespace/ │ │ │ │ │ └── main.go │ │ │ │ ├── simple/ │ │ │ │ │ ├── main │ │ │ │ │ └── main.go │ │ │ │ ├── tag/ │ │ │ │ │ └── main.go │ │ │ │ ├── trace/ │ │ │ │ │ └── main.go │ │ │ │ └── transaction/ │ │ │ │ └── main.go │ │ │ ├── internal/ │ │ │ │ ├── callback.go │ │ │ │ ├── client.go │ │ │ │ ├── constants.go │ │ │ │ ├── mock_client.go │ │ │ │ ├── mock_namesrv.go │ │ │ │ ├── model.go │ │ │ │ ├── model_test.go │ │ │ │ ├── mq_version.go │ │ │ │ ├── namesrv.go │ │ │ │ ├── namesrv_test.go │ │ │ │ ├── perm.go │ │ │ │ ├── remote/ │ │ │ │ │ ├── codec.go │ │ │ │ │ ├── codec_test.go │ │ │ │ │ ├── future.go │ │ │ │ │ ├── interceptor.go │ │ │ │ │ ├── interceptor_test.go │ │ │ │ │ ├── mock_remote_client.go │ │ │ │ │ ├── remote_client.go │ │ │ │ │ ├── remote_client_test.go │ │ │ │ │ ├── rpchook.go │ │ │ │ │ └── tcp_conn.go │ │ │ │ ├── request.go │ │ │ │ ├── response.go │ │ │ │ ├── route.go │ │ │ │ ├── route_test.go │ │ │ │ ├── trace.go │ │ │ │ ├── trace_test.go │ │ │ │ ├── transaction.go │ │ │ │ ├── utils/ │ │ │ │ │ ├── errors.go │ │ │ │ │ ├── files.go │ │ │ │ │ ├── helper.go │ │ │ │ │ ├── helper_test.go │ │ │ │ │ ├── math.go │ │ │ │ │ ├── net.go │ │ │ │ │ ├── net_test.go │ │ │ │ │ ├── set.go │ │ │ │ │ └── string.go │ │ │ │ └── validators.go │ │ │ ├── primitive/ │ │ │ │ ├── auth.go │ │ │ │ ├── base.go │ │ │ │ ├── base_test.go │ │ │ │ ├── ctx.go │ │ │ │ ├── errors.go │ │ │ │ ├── interceptor.go │ │ │ │ ├── message.go │ │ │ │ ├── message_test.go │ │ │ │ ├── pool.go │ │ │ │ ├── result.go │ │ │ │ ├── result_test.go │ │ │ │ └── trace.go │ │ │ ├── producer/ │ │ │ │ ├── interceptor.go │ │ │ │ ├── option.go │ │ │ │ ├── producer.go │ │ │ │ ├── producer_test.go │ │ │ │ ├── selector.go │ │ │ │ └── selector_test.go │ │ │ ├── release-notes.md │ │ │ └── rlog/ │ │ │ └── log.go │ │ ├── aws/ │ │ │ └── aws-sdk-go/ │ │ │ ├── LICENSE.txt │ │ │ ├── NOTICE.txt │ │ │ ├── aws/ │ │ │ │ ├── awserr/ │ │ │ │ │ ├── error.go │ │ │ │ │ └── types.go │ │ │ │ ├── awsutil/ │ │ │ │ │ ├── copy.go │ │ │ │ │ ├── equal.go │ │ │ │ │ ├── path_value.go │ │ │ │ │ ├── prettify.go │ │ │ │ │ └── string_value.go │ │ │ │ ├── client/ │ │ │ │ │ ├── client.go │ │ │ │ │ ├── default_retryer.go │ │ │ │ │ ├── logger.go │ │ │ │ │ └── metadata/ │ │ │ │ │ └── client_info.go │ │ │ │ ├── config.go │ │ │ │ ├── context.go │ │ │ │ ├── context_1_6.go │ │ │ │ ├── context_1_7.go │ │ │ │ ├── convert_types.go │ │ │ │ ├── corehandlers/ │ │ │ │ │ ├── handlers.go │ │ │ │ │ ├── param_validator.go │ │ │ │ │ └── user_agent.go │ │ │ │ ├── credentials/ │ │ │ │ │ ├── chain_provider.go │ │ │ │ │ ├── credentials.go │ │ │ │ │ ├── ec2rolecreds/ │ │ │ │ │ │ └── ec2_role_provider.go │ │ │ │ │ ├── endpointcreds/ │ │ │ │ │ │ └── provider.go │ │ │ │ │ ├── env_provider.go │ │ │ │ │ ├── shared_credentials_provider.go │ │ │ │ │ ├── static_provider.go │ │ │ │ │ └── stscreds/ │ │ │ │ │ └── assume_role_provider.go │ │ │ │ ├── csm/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── enable.go │ │ │ │ │ ├── metric.go │ │ │ │ │ ├── metric_chan.go │ │ │ │ │ └── reporter.go │ │ │ │ ├── defaults/ │ │ │ │ │ ├── defaults.go │ │ │ │ │ └── shared_config.go │ │ │ │ ├── doc.go │ │ │ │ ├── ec2metadata/ │ │ │ │ │ ├── api.go │ │ │ │ │ └── service.go │ │ │ │ ├── endpoints/ │ │ │ │ │ ├── decode.go │ │ │ │ │ ├── defaults.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── endpoints.go │ │ │ │ │ ├── v3model.go │ │ │ │ │ └── v3model_codegen.go │ │ │ │ ├── errors.go │ │ │ │ ├── jsonvalue.go │ │ │ │ ├── logger.go │ │ │ │ ├── request/ │ │ │ │ │ ├── connection_reset_error.go │ │ │ │ │ ├── connection_reset_error_other.go │ │ │ │ │ ├── handlers.go │ │ │ │ │ ├── http_request.go │ │ │ │ │ ├── offset_reader.go │ │ │ │ │ ├── request.go │ │ │ │ │ ├── request_1_7.go │ │ │ │ │ ├── request_1_8.go │ │ │ │ │ ├── request_context.go │ │ │ │ │ ├── request_context_1_6.go │ │ │ │ │ ├── request_pagination.go │ │ │ │ │ ├── retryer.go │ │ │ │ │ ├── timeout_read_closer.go │ │ │ │ │ ├── validation.go │ │ │ │ │ └── waiter.go │ │ │ │ ├── session/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── env_config.go │ │ │ │ │ ├── session.go │ │ │ │ │ └── shared_config.go │ │ │ │ ├── signer/ │ │ │ │ │ └── v4/ │ │ │ │ │ ├── header_rules.go │ │ │ │ │ ├── options.go │ │ │ │ │ ├── uri_path.go │ │ │ │ │ └── v4.go │ │ │ │ ├── types.go │ │ │ │ ├── url.go │ │ │ │ ├── url_1_7.go │ │ │ │ └── version.go │ │ │ ├── internal/ │ │ │ │ ├── ini/ │ │ │ │ │ ├── ast.go │ │ │ │ │ ├── comma_token.go │ │ │ │ │ ├── comment_token.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── empty_token.go │ │ │ │ │ ├── expression.go │ │ │ │ │ ├── fuzz.go │ │ │ │ │ ├── ini.go │ │ │ │ │ ├── ini_lexer.go │ │ │ │ │ ├── ini_parser.go │ │ │ │ │ ├── literal_tokens.go │ │ │ │ │ ├── newline_token.go │ │ │ │ │ ├── number_helper.go │ │ │ │ │ ├── op_tokens.go │ │ │ │ │ ├── parse_error.go │ │ │ │ │ ├── parse_stack.go │ │ │ │ │ ├── sep_tokens.go │ │ │ │ │ ├── skipper.go │ │ │ │ │ ├── statement.go │ │ │ │ │ ├── value_util.go │ │ │ │ │ ├── visitor.go │ │ │ │ │ ├── walker.go │ │ │ │ │ └── ws_token.go │ │ │ │ ├── sdkio/ │ │ │ │ │ ├── io_go1.6.go │ │ │ │ │ └── io_go1.7.go │ │ │ │ ├── sdkrand/ │ │ │ │ │ └── locked_source.go │ │ │ │ ├── sdkuri/ │ │ │ │ │ └── path.go │ │ │ │ └── shareddefaults/ │ │ │ │ ├── ecs_container.go │ │ │ │ └── shared_config.go │ │ │ ├── private/ │ │ │ │ └── protocol/ │ │ │ │ ├── host.go │ │ │ │ ├── idempotency.go │ │ │ │ ├── jsonvalue.go │ │ │ │ ├── payload.go │ │ │ │ ├── query/ │ │ │ │ │ ├── build.go │ │ │ │ │ ├── queryutil/ │ │ │ │ │ │ └── queryutil.go │ │ │ │ │ ├── unmarshal.go │ │ │ │ │ └── unmarshal_error.go │ │ │ │ ├── rest/ │ │ │ │ │ ├── build.go │ │ │ │ │ ├── payload.go │ │ │ │ │ └── unmarshal.go │ │ │ │ ├── timestamp.go │ │ │ │ ├── unmarshal.go │ │ │ │ └── xml/ │ │ │ │ └── xmlutil/ │ │ │ │ ├── build.go │ │ │ │ ├── unmarshal.go │ │ │ │ └── xml_to_struct.go │ │ │ └── service/ │ │ │ ├── sqs/ │ │ │ │ ├── api.go │ │ │ │ ├── checksums.go │ │ │ │ ├── customizations.go │ │ │ │ ├── doc.go │ │ │ │ ├── errors.go │ │ │ │ └── service.go │ │ │ └── sts/ │ │ │ ├── api.go │ │ │ ├── customizations.go │ │ │ ├── doc.go │ │ │ ├── errors.go │ │ │ └── service.go │ │ ├── beorn7/ │ │ │ └── perks/ │ │ │ ├── LICENSE │ │ │ └── quantile/ │ │ │ └── stream.go │ │ ├── cenkalti/ │ │ │ └── backoff/ │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── backoff.go │ │ │ ├── backoff_test.go │ │ │ ├── context.go │ │ │ ├── context_test.go │ │ │ ├── example_test.go │ │ │ ├── exponential.go │ │ │ ├── exponential_test.go │ │ │ ├── go.mod │ │ │ ├── retry.go │ │ │ ├── retry_test.go │ │ │ ├── ticker.go │ │ │ ├── ticker_test.go │ │ │ ├── timer.go │ │ │ ├── tries.go │ │ │ └── tries_test.go │ │ ├── cloudevents/ │ │ │ └── sdk-go/ │ │ │ ├── LICENSE │ │ │ ├── alias.go │ │ │ └── pkg/ │ │ │ └── cloudevents/ │ │ │ ├── client/ │ │ │ │ ├── client.go │ │ │ │ ├── defaulters.go │ │ │ │ ├── doc.go │ │ │ │ ├── observability.go │ │ │ │ ├── options.go │ │ │ │ └── receiver.go │ │ │ ├── codec/ │ │ │ │ ├── doc.go │ │ │ │ ├── jsoncodec.go │ │ │ │ └── observability.go │ │ │ ├── content_type.go │ │ │ ├── context/ │ │ │ │ ├── context.go │ │ │ │ ├── doc.go │ │ │ │ └── logger.go │ │ │ ├── data_content_encoding.go │ │ │ ├── datacodec/ │ │ │ │ ├── codec.go │ │ │ │ ├── doc.go │ │ │ │ ├── json/ │ │ │ │ │ ├── data.go │ │ │ │ │ ├── doc.go │ │ │ │ │ └── observability.go │ │ │ │ ├── observability.go │ │ │ │ └── xml/ │ │ │ │ ├── data.go │ │ │ │ ├── doc.go │ │ │ │ └── observability.go │ │ │ ├── doc.go │ │ │ ├── event.go │ │ │ ├── event_data.go │ │ │ ├── event_interface.go │ │ │ ├── event_reader.go │ │ │ ├── event_response.go │ │ │ ├── event_writer.go │ │ │ ├── eventcontext.go │ │ │ ├── eventcontext_v01.go │ │ │ ├── eventcontext_v01_reader.go │ │ │ ├── eventcontext_v01_writer.go │ │ │ ├── eventcontext_v02.go │ │ │ ├── eventcontext_v02_reader.go │ │ │ ├── eventcontext_v02_writer.go │ │ │ ├── eventcontext_v03.go │ │ │ ├── eventcontext_v03_reader.go │ │ │ ├── eventcontext_v03_writer.go │ │ │ ├── extensions.go │ │ │ ├── observability/ │ │ │ │ ├── doc.go │ │ │ │ ├── keys.go │ │ │ │ └── observer.go │ │ │ ├── transport/ │ │ │ │ ├── codec.go │ │ │ │ ├── doc.go │ │ │ │ ├── http/ │ │ │ │ │ ├── codec.go │ │ │ │ │ ├── codec_v01.go │ │ │ │ │ ├── codec_v02.go │ │ │ │ │ ├── codec_v03.go │ │ │ │ │ ├── context.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── encoding.go │ │ │ │ │ ├── message.go │ │ │ │ │ ├── observability.go │ │ │ │ │ ├── options.go │ │ │ │ │ └── transport.go │ │ │ │ ├── message.go │ │ │ │ └── transport.go │ │ │ └── types/ │ │ │ ├── allocate.go │ │ │ ├── doc.go │ │ │ ├── timestamp.go │ │ │ └── urlref.go │ │ ├── davecgh/ │ │ │ └── go-spew/ │ │ │ ├── LICENSE │ │ │ └── spew/ │ │ │ ├── bypass.go │ │ │ ├── bypasssafe.go │ │ │ ├── common.go │ │ │ ├── config.go │ │ │ ├── doc.go │ │ │ ├── dump.go │ │ │ ├── format.go │ │ │ └── spew.go │ │ ├── eapache/ │ │ │ ├── go-resiliency/ │ │ │ │ ├── LICENSE │ │ │ │ └── breaker/ │ │ │ │ └── breaker.go │ │ │ ├── go-xerial-snappy/ │ │ │ │ ├── LICENSE │ │ │ │ ├── fuzz.go │ │ │ │ └── snappy.go │ │ │ └── queue/ │ │ │ ├── LICENSE │ │ │ └── queue.go │ │ ├── emicklei/ │ │ │ └── go-restful/ │ │ │ ├── LICENSE │ │ │ ├── compress.go │ │ │ ├── compressor_cache.go │ │ │ ├── compressor_pools.go │ │ │ ├── compressors.go │ │ │ ├── constants.go │ │ │ ├── container.go │ │ │ ├── cors_filter.go │ │ │ ├── curly.go │ │ │ ├── curly_route.go │ │ │ ├── doc.go │ │ │ ├── entity_accessors.go │ │ │ ├── filter.go │ │ │ ├── json.go │ │ │ ├── jsoniter.go │ │ │ ├── jsr311.go │ │ │ ├── log/ │ │ │ │ └── log.go │ │ │ ├── logger.go │ │ │ ├── mime.go │ │ │ ├── options_filter.go │ │ │ ├── parameter.go │ │ │ ├── path_expression.go │ │ │ ├── path_processor.go │ │ │ ├── request.go │ │ │ ├── response.go │ │ │ ├── route.go │ │ │ ├── route_builder.go │ │ │ ├── router.go │ │ │ ├── service_error.go │ │ │ ├── web_service.go │ │ │ └── web_service_container.go │ │ ├── emirpasic/ │ │ │ └── gods/ │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── containers/ │ │ │ │ ├── containers.go │ │ │ │ ├── containers_test.go │ │ │ │ ├── enumerable.go │ │ │ │ ├── iterator.go │ │ │ │ └── serialization.go │ │ │ ├── examples/ │ │ │ │ ├── README.md │ │ │ │ ├── arraylist/ │ │ │ │ │ └── arraylist.go │ │ │ │ ├── arraystack/ │ │ │ │ │ └── arraystack.go │ │ │ │ ├── avltree/ │ │ │ │ │ └── avltree.go │ │ │ │ ├── binaryheap/ │ │ │ │ │ └── binaryheap.go │ │ │ │ ├── btree/ │ │ │ │ │ └── btree.go │ │ │ │ ├── customcomparator/ │ │ │ │ │ └── customcomparator.go │ │ │ │ ├── doublylinkedlist/ │ │ │ │ │ └── doublylinkedlist.go │ │ │ │ ├── enumerablewithindex/ │ │ │ │ │ └── enumerablewithindex.go │ │ │ │ ├── enumerablewithkey/ │ │ │ │ │ └── enumerablewithkey.go │ │ │ │ ├── godsort/ │ │ │ │ │ └── godsort.go │ │ │ │ ├── hashbidimap/ │ │ │ │ │ └── hashbidimap.go │ │ │ │ ├── hashmap/ │ │ │ │ │ └── hashmap.go │ │ │ │ ├── hashset/ │ │ │ │ │ └── hashset.go │ │ │ │ ├── iteratorwithindex/ │ │ │ │ │ └── iteratorwithindex.go │ │ │ │ ├── iteratorwithkey/ │ │ │ │ │ └── iteratorwithkey.go │ │ │ │ ├── linkedhashmap/ │ │ │ │ │ └── linkedhashmap.go │ │ │ │ ├── linkedhashset/ │ │ │ │ │ └── linkedhashset.go │ │ │ │ ├── linkedliststack/ │ │ │ │ │ └── linkedliststack.go │ │ │ │ ├── redblacktree/ │ │ │ │ │ └── redblacktree.go │ │ │ │ ├── redblacktreeextended/ │ │ │ │ │ └── redblacktreeextended.go │ │ │ │ ├── serialization/ │ │ │ │ │ └── serialization.go │ │ │ │ ├── singlylinkedlist/ │ │ │ │ │ └── singlylinkedlist.go │ │ │ │ ├── treebidimap/ │ │ │ │ │ └── treebidimap.go │ │ │ │ ├── treemap/ │ │ │ │ │ └── treemap.go │ │ │ │ └── treeset/ │ │ │ │ └── treeset.go │ │ │ ├── lists/ │ │ │ │ ├── arraylist/ │ │ │ │ │ ├── arraylist.go │ │ │ │ │ ├── arraylist_test.go │ │ │ │ │ ├── enumerable.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── doublylinkedlist/ │ │ │ │ │ ├── doublylinkedlist.go │ │ │ │ │ ├── doublylinkedlist_test.go │ │ │ │ │ ├── enumerable.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── lists.go │ │ │ │ └── singlylinkedlist/ │ │ │ │ ├── enumerable.go │ │ │ │ ├── iterator.go │ │ │ │ ├── serialization.go │ │ │ │ ├── singlylinkedlist.go │ │ │ │ └── singlylinkedlist_test.go │ │ │ ├── maps/ │ │ │ │ ├── hashbidimap/ │ │ │ │ │ ├── hashbidimap.go │ │ │ │ │ ├── hashbidimap_test.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── hashmap/ │ │ │ │ │ ├── hashmap.go │ │ │ │ │ ├── hashmap_test.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── linkedhashmap/ │ │ │ │ │ ├── enumerable.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ ├── linkedhashmap.go │ │ │ │ │ ├── linkedhashmap_test.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── maps.go │ │ │ │ ├── treebidimap/ │ │ │ │ │ ├── enumerable.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ ├── serialization.go │ │ │ │ │ ├── treebidimap.go │ │ │ │ │ └── treebidimap_test.go │ │ │ │ └── treemap/ │ │ │ │ ├── enumerable.go │ │ │ │ ├── iterator.go │ │ │ │ ├── serialization.go │ │ │ │ ├── treemap.go │ │ │ │ └── treemap_test.go │ │ │ ├── sets/ │ │ │ │ ├── hashset/ │ │ │ │ │ ├── hashset.go │ │ │ │ │ ├── hashset_test.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── linkedhashset/ │ │ │ │ │ ├── enumerable.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ ├── linkedhashset.go │ │ │ │ │ ├── linkedhashset_test.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── sets.go │ │ │ │ └── treeset/ │ │ │ │ ├── enumerable.go │ │ │ │ ├── iterator.go │ │ │ │ ├── serialization.go │ │ │ │ ├── treeset.go │ │ │ │ └── treeset_test.go │ │ │ ├── stacks/ │ │ │ │ ├── arraystack/ │ │ │ │ │ ├── arraystack.go │ │ │ │ │ ├── arraystack_test.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── linkedliststack/ │ │ │ │ │ ├── iterator.go │ │ │ │ │ ├── linkedliststack.go │ │ │ │ │ ├── linkedliststack_test.go │ │ │ │ │ └── serialization.go │ │ │ │ └── stacks.go │ │ │ ├── trees/ │ │ │ │ ├── avltree/ │ │ │ │ │ ├── avltree.go │ │ │ │ │ ├── avltree_test.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── binaryheap/ │ │ │ │ │ ├── binaryheap.go │ │ │ │ │ ├── binaryheap_test.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── btree/ │ │ │ │ │ ├── btree.go │ │ │ │ │ ├── btree_test.go │ │ │ │ │ ├── iterator.go │ │ │ │ │ └── serialization.go │ │ │ │ ├── redblacktree/ │ │ │ │ │ ├── iterator.go │ │ │ │ │ ├── redblacktree.go │ │ │ │ │ ├── redblacktree_test.go │ │ │ │ │ └── serialization.go │ │ │ │ └── trees.go │ │ │ └── utils/ │ │ │ ├── comparator.go │ │ │ ├── comparator_test.go │ │ │ ├── sort.go │ │ │ ├── sort_test.go │ │ │ ├── utils.go │ │ │ └── utils_test.go │ │ ├── evanphx/ │ │ │ └── json-patch/ │ │ │ ├── LICENSE │ │ │ ├── merge.go │ │ │ └── patch.go │ │ ├── ghodss/ │ │ │ └── yaml/ │ │ │ ├── LICENSE │ │ │ ├── fields.go │ │ │ └── yaml.go │ │ ├── go-logr/ │ │ │ ├── logr/ │ │ │ │ ├── LICENSE │ │ │ │ └── logr.go │ │ │ └── zapr/ │ │ │ ├── LICENSE │ │ │ └── zapr.go │ │ ├── gobuffalo/ │ │ │ └── envy/ │ │ │ ├── LICENSE.txt │ │ │ ├── envy.go │ │ │ └── version.go │ │ ├── gogap/ │ │ │ ├── errors/ │ │ │ │ ├── LICENSE │ │ │ │ ├── context.go │ │ │ │ ├── error_tmpl.go │ │ │ │ ├── errors.go │ │ │ │ └── errors_internal.go │ │ │ └── stack/ │ │ │ ├── license │ │ │ ├── patents │ │ │ └── stack.go │ │ ├── gogo/ │ │ │ └── protobuf/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── GOLANG_CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── proto/ │ │ │ │ ├── clone.go │ │ │ │ ├── custom_gogo.go │ │ │ │ ├── decode.go │ │ │ │ ├── discard.go │ │ │ │ ├── duration.go │ │ │ │ ├── duration_gogo.go │ │ │ │ ├── encode.go │ │ │ │ ├── encode_gogo.go │ │ │ │ ├── equal.go │ │ │ │ ├── extensions.go │ │ │ │ ├── extensions_gogo.go │ │ │ │ ├── lib.go │ │ │ │ ├── lib_gogo.go │ │ │ │ ├── message_set.go │ │ │ │ ├── pointer_reflect.go │ │ │ │ ├── pointer_reflect_gogo.go │ │ │ │ ├── pointer_unsafe.go │ │ │ │ ├── pointer_unsafe_gogo.go │ │ │ │ ├── properties.go │ │ │ │ ├── properties_gogo.go │ │ │ │ ├── skip_gogo.go │ │ │ │ ├── table_marshal.go │ │ │ │ ├── table_marshal_gogo.go │ │ │ │ ├── table_merge.go │ │ │ │ ├── table_unmarshal.go │ │ │ │ ├── table_unmarshal_gogo.go │ │ │ │ ├── text.go │ │ │ │ ├── text_gogo.go │ │ │ │ ├── text_parser.go │ │ │ │ ├── timestamp.go │ │ │ │ └── timestamp_gogo.go │ │ │ └── sortkeys/ │ │ │ └── sortkeys.go │ │ ├── golang/ │ │ │ ├── glog/ │ │ │ │ ├── LICENSE │ │ │ │ ├── glog.go │ │ │ │ └── glog_file.go │ │ │ ├── groupcache/ │ │ │ │ ├── LICENSE │ │ │ │ └── lru/ │ │ │ │ └── lru.go │ │ │ ├── mock/ │ │ │ │ └── gomock/ │ │ │ │ ├── call.go │ │ │ │ ├── call_test.go │ │ │ │ ├── callset.go │ │ │ │ ├── callset_test.go │ │ │ │ ├── controller.go │ │ │ │ ├── controller_test.go │ │ │ │ ├── internal/ │ │ │ │ │ └── mock_gomock/ │ │ │ │ │ └── mock_matcher.go │ │ │ │ ├── matchers.go │ │ │ │ └── matchers_test.go │ │ │ ├── protobuf/ │ │ │ │ ├── AUTHORS │ │ │ │ ├── CONTRIBUTORS │ │ │ │ ├── LICENSE │ │ │ │ ├── proto/ │ │ │ │ │ ├── clone.go │ │ │ │ │ ├── decode.go │ │ │ │ │ ├── discard.go │ │ │ │ │ ├── encode.go │ │ │ │ │ ├── equal.go │ │ │ │ │ ├── extensions.go │ │ │ │ │ ├── lib.go │ │ │ │ │ ├── message_set.go │ │ │ │ │ ├── pointer_reflect.go │ │ │ │ │ ├── pointer_unsafe.go │ │ │ │ │ ├── properties.go │ │ │ │ │ ├── table_marshal.go │ │ │ │ │ ├── table_merge.go │ │ │ │ │ ├── table_unmarshal.go │ │ │ │ │ ├── text.go │ │ │ │ │ └── text_parser.go │ │ │ │ ├── protoc-gen-go/ │ │ │ │ │ └── descriptor/ │ │ │ │ │ └── descriptor.pb.go │ │ │ │ └── ptypes/ │ │ │ │ ├── any/ │ │ │ │ │ └── any.pb.go │ │ │ │ ├── any.go │ │ │ │ ├── doc.go │ │ │ │ ├── duration/ │ │ │ │ │ └── duration.pb.go │ │ │ │ ├── duration.go │ │ │ │ ├── empty/ │ │ │ │ │ └── empty.pb.go │ │ │ │ ├── timestamp/ │ │ │ │ │ └── timestamp.pb.go │ │ │ │ └── timestamp.go │ │ │ └── snappy/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── decode.go │ │ │ ├── decode_amd64.go │ │ │ ├── decode_amd64.s │ │ │ ├── decode_other.go │ │ │ ├── encode.go │ │ │ ├── encode_amd64.go │ │ │ ├── encode_amd64.s │ │ │ ├── encode_other.go │ │ │ └── snappy.go │ │ ├── google/ │ │ │ ├── btree/ │ │ │ │ ├── LICENSE │ │ │ │ ├── btree.go │ │ │ │ └── btree_mem.go │ │ │ ├── go-cmp/ │ │ │ │ ├── LICENSE │ │ │ │ └── cmp/ │ │ │ │ ├── cmpopts/ │ │ │ │ │ ├── equate.go │ │ │ │ │ ├── ignore.go │ │ │ │ │ ├── sort.go │ │ │ │ │ ├── struct_filter.go │ │ │ │ │ └── xform.go │ │ │ │ ├── compare.go │ │ │ │ ├── export_panic.go │ │ │ │ ├── export_unsafe.go │ │ │ │ ├── internal/ │ │ │ │ │ ├── diff/ │ │ │ │ │ │ ├── debug_disable.go │ │ │ │ │ │ ├── debug_enable.go │ │ │ │ │ │ └── diff.go │ │ │ │ │ ├── flags/ │ │ │ │ │ │ ├── flags.go │ │ │ │ │ │ ├── toolchain_legacy.go │ │ │ │ │ │ └── toolchain_recent.go │ │ │ │ │ ├── function/ │ │ │ │ │ │ └── func.go │ │ │ │ │ └── value/ │ │ │ │ │ ├── pointer_purego.go │ │ │ │ │ ├── pointer_unsafe.go │ │ │ │ │ ├── sort.go │ │ │ │ │ └── zero.go │ │ │ │ ├── options.go │ │ │ │ ├── path.go │ │ │ │ ├── report.go │ │ │ │ ├── report_compare.go │ │ │ │ ├── report_reflect.go │ │ │ │ ├── report_slices.go │ │ │ │ ├── report_text.go │ │ │ │ └── report_value.go │ │ │ ├── go-containerregistry/ │ │ │ │ ├── LICENSE │ │ │ │ └── pkg/ │ │ │ │ └── name/ │ │ │ │ ├── check.go │ │ │ │ ├── digest.go │ │ │ │ ├── doc.go │ │ │ │ ├── errors.go │ │ │ │ ├── options.go │ │ │ │ ├── ref.go │ │ │ │ ├── registry.go │ │ │ │ ├── repository.go │ │ │ │ └── tag.go │ │ │ ├── go-github/ │ │ │ │ ├── AUTHORS │ │ │ │ ├── LICENSE │ │ │ │ └── github/ │ │ │ │ ├── activity.go │ │ │ │ ├── activity_events.go │ │ │ │ ├── activity_notifications.go │ │ │ │ ├── activity_star.go │ │ │ │ ├── activity_watching.go │ │ │ │ ├── admin.go │ │ │ │ ├── admin_stats.go │ │ │ │ ├── apps.go │ │ │ │ ├── apps_installation.go │ │ │ │ ├── apps_marketplace.go │ │ │ │ ├── authorizations.go │ │ │ │ ├── checks.go │ │ │ │ ├── doc.go │ │ │ │ ├── event_types.go │ │ │ │ ├── gen-accessors.go │ │ │ │ ├── gists.go │ │ │ │ ├── gists_comments.go │ │ │ │ ├── git.go │ │ │ │ ├── git_blobs.go │ │ │ │ ├── git_commits.go │ │ │ │ ├── git_refs.go │ │ │ │ ├── git_tags.go │ │ │ │ ├── git_trees.go │ │ │ │ ├── github-accessors.go │ │ │ │ ├── github.go │ │ │ │ ├── gitignore.go │ │ │ │ ├── issues.go │ │ │ │ ├── issues_assignees.go │ │ │ │ ├── issues_comments.go │ │ │ │ ├── issues_events.go │ │ │ │ ├── issues_labels.go │ │ │ │ ├── issues_milestones.go │ │ │ │ ├── issues_timeline.go │ │ │ │ ├── licenses.go │ │ │ │ ├── messages.go │ │ │ │ ├── migrations.go │ │ │ │ ├── migrations_source_import.go │ │ │ │ ├── migrations_user.go │ │ │ │ ├── misc.go │ │ │ │ ├── orgs.go │ │ │ │ ├── orgs_hooks.go │ │ │ │ ├── orgs_members.go │ │ │ │ ├── orgs_outside_collaborators.go │ │ │ │ ├── orgs_projects.go │ │ │ │ ├── orgs_users_blocking.go │ │ │ │ ├── projects.go │ │ │ │ ├── pulls.go │ │ │ │ ├── pulls_comments.go │ │ │ │ ├── pulls_reviewers.go │ │ │ │ ├── pulls_reviews.go │ │ │ │ ├── reactions.go │ │ │ │ ├── repos.go │ │ │ │ ├── repos_collaborators.go │ │ │ │ ├── repos_comments.go │ │ │ │ ├── repos_commits.go │ │ │ │ ├── repos_community_health.go │ │ │ │ ├── repos_contents.go │ │ │ │ ├── repos_deployments.go │ │ │ │ ├── repos_forks.go │ │ │ │ ├── repos_hooks.go │ │ │ │ ├── repos_invitations.go │ │ │ │ ├── repos_keys.go │ │ │ │ ├── repos_merging.go │ │ │ │ ├── repos_pages.go │ │ │ │ ├── repos_prereceive_hooks.go │ │ │ │ ├── repos_projects.go │ │ │ │ ├── repos_releases.go │ │ │ │ ├── repos_stats.go │ │ │ │ ├── repos_statuses.go │ │ │ │ ├── repos_traffic.go │ │ │ │ ├── search.go │ │ │ │ ├── strings.go │ │ │ │ ├── teams.go │ │ │ │ ├── teams_discussion_comments.go │ │ │ │ ├── teams_discussions.go │ │ │ │ ├── teams_members.go │ │ │ │ ├── timestamp.go │ │ │ │ ├── users.go │ │ │ │ ├── users_administration.go │ │ │ │ ├── users_blocking.go │ │ │ │ ├── users_emails.go │ │ │ │ ├── users_followers.go │ │ │ │ ├── users_gpg_keys.go │ │ │ │ ├── users_keys.go │ │ │ │ ├── with_appengine.go │ │ │ │ └── without_appengine.go │ │ │ ├── go-querystring/ │ │ │ │ ├── LICENSE │ │ │ │ └── query/ │ │ │ │ └── encode.go │ │ │ ├── gofuzz/ │ │ │ │ ├── LICENSE │ │ │ │ ├── doc.go │ │ │ │ └── fuzz.go │ │ │ ├── licenseclassifier/ │ │ │ │ ├── LICENSE │ │ │ │ ├── classifier.go │ │ │ │ ├── file_system_resources.go │ │ │ │ ├── forbidden.go │ │ │ │ ├── internal/ │ │ │ │ │ └── sets/ │ │ │ │ │ ├── sets.go │ │ │ │ │ └── stringset.go │ │ │ │ ├── license_type.go │ │ │ │ ├── licenses/ │ │ │ │ │ └── Unlicense.txt │ │ │ │ └── stringclassifier/ │ │ │ │ ├── LICENSE │ │ │ │ ├── classifier.go │ │ │ │ ├── internal/ │ │ │ │ │ └── pq/ │ │ │ │ │ └── priority.go │ │ │ │ └── searchset/ │ │ │ │ ├── searchset.go │ │ │ │ └── tokenizer/ │ │ │ │ └── tokenizer.go │ │ │ └── uuid/ │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── dce.go │ │ │ ├── doc.go │ │ │ ├── hash.go │ │ │ ├── marshal.go │ │ │ ├── node.go │ │ │ ├── node_js.go │ │ │ ├── node_net.go │ │ │ ├── sql.go │ │ │ ├── time.go │ │ │ ├── util.go │ │ │ ├── uuid.go │ │ │ ├── version1.go │ │ │ └── version4.go │ │ ├── googleapis/ │ │ │ ├── gax-go/ │ │ │ │ ├── LICENSE │ │ │ │ ├── call_option.go │ │ │ │ ├── gax.go │ │ │ │ ├── header.go │ │ │ │ └── invoke.go │ │ │ └── gnostic/ │ │ │ ├── LICENSE │ │ │ ├── OpenAPIv2/ │ │ │ │ ├── OpenAPIv2.go │ │ │ │ └── OpenAPIv2.pb.go │ │ │ ├── compiler/ │ │ │ │ ├── context.go │ │ │ │ ├── error.go │ │ │ │ ├── extension-handler.go │ │ │ │ ├── helpers.go │ │ │ │ ├── main.go │ │ │ │ └── reader.go │ │ │ └── extensions/ │ │ │ ├── extension.pb.go │ │ │ └── extensions.go │ │ ├── gorilla/ │ │ │ └── websocket/ │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── client.go │ │ │ ├── client_clone.go │ │ │ ├── client_clone_legacy.go │ │ │ ├── compression.go │ │ │ ├── conn.go │ │ │ ├── conn_write.go │ │ │ ├── conn_write_legacy.go │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ ├── mask.go │ │ │ ├── mask_safe.go │ │ │ ├── prepared.go │ │ │ ├── proxy.go │ │ │ ├── server.go │ │ │ ├── trace.go │ │ │ ├── trace_17.go │ │ │ ├── util.go │ │ │ └── x_net_proxy.go │ │ ├── gregjones/ │ │ │ └── httpcache/ │ │ │ ├── LICENSE.txt │ │ │ ├── diskcache/ │ │ │ │ └── diskcache.go │ │ │ └── httpcache.go │ │ ├── hashicorp/ │ │ │ └── golang-lru/ │ │ │ ├── 2q.go │ │ │ ├── LICENSE │ │ │ ├── arc.go │ │ │ ├── doc.go │ │ │ ├── lru.go │ │ │ └── simplelru/ │ │ │ ├── lru.go │ │ │ └── lru_interface.go │ │ ├── hpcloud/ │ │ │ └── tail/ │ │ │ ├── LICENSE.txt │ │ │ ├── ratelimiter/ │ │ │ │ ├── Licence │ │ │ │ ├── leakybucket.go │ │ │ │ ├── memory.go │ │ │ │ └── storage.go │ │ │ ├── tail.go │ │ │ ├── tail_posix.go │ │ │ ├── tail_windows.go │ │ │ ├── util/ │ │ │ │ └── util.go │ │ │ ├── watch/ │ │ │ │ ├── filechanges.go │ │ │ │ ├── inotify.go │ │ │ │ ├── inotify_tracker.go │ │ │ │ ├── polling.go │ │ │ │ └── watch.go │ │ │ └── winfile/ │ │ │ └── winfile.go │ │ ├── imdario/ │ │ │ └── mergo/ │ │ │ ├── LICENSE │ │ │ ├── doc.go │ │ │ ├── map.go │ │ │ ├── merge.go │ │ │ ├── mergo.go │ │ │ └── testdata/ │ │ │ └── license.yml │ │ ├── inconshreveable/ │ │ │ └── mousetrap/ │ │ │ ├── LICENSE │ │ │ ├── trap_others.go │ │ │ ├── trap_windows.go │ │ │ └── trap_windows_1.4.go │ │ ├── jmespath/ │ │ │ └── go-jmespath/ │ │ │ ├── LICENSE │ │ │ ├── api.go │ │ │ ├── astnodetype_string.go │ │ │ ├── functions.go │ │ │ ├── interpreter.go │ │ │ ├── lexer.go │ │ │ ├── parser.go │ │ │ ├── toktype_string.go │ │ │ └── util.go │ │ ├── joho/ │ │ │ └── godotenv/ │ │ │ ├── LICENCE │ │ │ └── godotenv.go │ │ ├── json-iterator/ │ │ │ └── go/ │ │ │ ├── LICENSE │ │ │ ├── adapter.go │ │ │ ├── any.go │ │ │ ├── any_array.go │ │ │ ├── any_bool.go │ │ │ ├── any_float.go │ │ │ ├── any_int32.go │ │ │ ├── any_int64.go │ │ │ ├── any_invalid.go │ │ │ ├── any_nil.go │ │ │ ├── any_number.go │ │ │ ├── any_object.go │ │ │ ├── any_str.go │ │ │ ├── any_uint32.go │ │ │ ├── any_uint64.go │ │ │ ├── config.go │ │ │ ├── iter.go │ │ │ ├── iter_array.go │ │ │ ├── iter_float.go │ │ │ ├── iter_int.go │ │ │ ├── iter_object.go │ │ │ ├── iter_skip.go │ │ │ ├── iter_skip_sloppy.go │ │ │ ├── iter_skip_strict.go │ │ │ ├── iter_str.go │ │ │ ├── jsoniter.go │ │ │ ├── pool.go │ │ │ ├── reflect.go │ │ │ ├── reflect_array.go │ │ │ ├── reflect_dynamic.go │ │ │ ├── reflect_extension.go │ │ │ ├── reflect_json_number.go │ │ │ ├── reflect_json_raw_message.go │ │ │ ├── reflect_map.go │ │ │ ├── reflect_marshaler.go │ │ │ ├── reflect_native.go │ │ │ ├── reflect_optional.go │ │ │ ├── reflect_slice.go │ │ │ ├── reflect_struct_decoder.go │ │ │ ├── reflect_struct_encoder.go │ │ │ ├── stream.go │ │ │ ├── stream_float.go │ │ │ ├── stream_int.go │ │ │ └── stream_str.go │ │ ├── kelseyhightower/ │ │ │ └── envconfig/ │ │ │ ├── LICENSE │ │ │ ├── doc.go │ │ │ ├── env_os.go │ │ │ ├── env_syscall.go │ │ │ ├── envconfig.go │ │ │ └── usage.go │ │ ├── klauspost/ │ │ │ ├── compress/ │ │ │ │ ├── LICENSE │ │ │ │ ├── flate/ │ │ │ │ │ ├── copy.go │ │ │ │ │ ├── crc32_amd64.go │ │ │ │ │ ├── crc32_amd64.s │ │ │ │ │ ├── crc32_noasm.go │ │ │ │ │ ├── deflate.go │ │ │ │ │ ├── dict_decoder.go │ │ │ │ │ ├── gen.go │ │ │ │ │ ├── huffman_bit_writer.go │ │ │ │ │ ├── huffman_code.go │ │ │ │ │ ├── inflate.go │ │ │ │ │ ├── reverse_bits.go │ │ │ │ │ ├── snappy.go │ │ │ │ │ └── token.go │ │ │ │ ├── gzip/ │ │ │ │ │ ├── gunzip.go │ │ │ │ │ └── gzip.go │ │ │ │ ├── snappy/ │ │ │ │ │ ├── AUTHORS │ │ │ │ │ ├── CONTRIBUTORS │ │ │ │ │ └── LICENSE │ │ │ │ └── zlib/ │ │ │ │ ├── reader.go │ │ │ │ └── writer.go │ │ │ └── cpuid/ │ │ │ ├── LICENSE │ │ │ ├── cpuid.go │ │ │ ├── cpuid_386.s │ │ │ ├── cpuid_amd64.s │ │ │ ├── detect_intel.go │ │ │ ├── detect_ref.go │ │ │ ├── generate.go │ │ │ └── private-gen.go │ │ ├── knative/ │ │ │ ├── eventing/ │ │ │ │ ├── AUTHORS │ │ │ │ ├── LICENSE │ │ │ │ ├── pkg/ │ │ │ │ │ ├── apis/ │ │ │ │ │ │ ├── duck/ │ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ │ ├── channelable_types.go │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── subscribable_types.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ ├── eventing/ │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ │ ├── broker_defaults.go │ │ │ │ │ │ │ ├── broker_lifecycle.go │ │ │ │ │ │ │ ├── broker_types.go │ │ │ │ │ │ │ ├── broker_validation.go │ │ │ │ │ │ │ ├── channel_defaults.go │ │ │ │ │ │ │ ├── channel_lifecycle.go │ │ │ │ │ │ │ ├── channel_types.go │ │ │ │ │ │ │ ├── channel_validation.go │ │ │ │ │ │ │ ├── cluster_channel_provisioner_defaults.go │ │ │ │ │ │ │ ├── cluster_channel_provisioner_types.go │ │ │ │ │ │ │ ├── cluster_channel_provisioner_validation.go │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── eventtype_defaults.go │ │ │ │ │ │ │ ├── eventtype_lifecycle.go │ │ │ │ │ │ │ ├── eventtype_types.go │ │ │ │ │ │ │ ├── eventtype_validation.go │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ ├── subscribable_channelable_validation.go │ │ │ │ │ │ │ ├── subscription_defaults.go │ │ │ │ │ │ │ ├── subscription_lifecycle.go │ │ │ │ │ │ │ ├── subscription_types.go │ │ │ │ │ │ │ ├── subscription_validation.go │ │ │ │ │ │ │ ├── test_helper.go │ │ │ │ │ │ │ ├── trigger_defaults.go │ │ │ │ │ │ │ ├── trigger_lifecycle.go │ │ │ │ │ │ │ ├── trigger_types.go │ │ │ │ │ │ │ ├── trigger_validation.go │ │ │ │ │ │ │ ├── user_info.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ ├── messaging/ │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── in_memory_channel_defaults.go │ │ │ │ │ │ │ ├── in_memory_channel_lifecycle.go │ │ │ │ │ │ │ ├── in_memory_channel_types.go │ │ │ │ │ │ │ ├── in_memory_channel_validation.go │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ ├── sequence_defaults.go │ │ │ │ │ │ │ ├── sequence_lifecycle.go │ │ │ │ │ │ │ ├── sequence_types.go │ │ │ │ │ │ │ ├── sequence_validation.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ └── sources/ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ ├── apiserver_lifecycle.go │ │ │ │ │ │ ├── apiserver_types.go │ │ │ │ │ │ ├── containersource_lifecycle.go │ │ │ │ │ │ ├── containersource_types.go │ │ │ │ │ │ ├── cron_job_lifecycle.go │ │ │ │ │ │ ├── cron_job_types.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ └── client/ │ │ │ │ │ └── clientset/ │ │ │ │ │ └── versioned/ │ │ │ │ │ ├── clientset.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── scheme/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ └── register.go │ │ │ │ │ └── typed/ │ │ │ │ │ ├── eventing/ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ ├── broker.go │ │ │ │ │ │ ├── channel.go │ │ │ │ │ │ ├── clusterchannelprovisioner.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── eventing_client.go │ │ │ │ │ │ ├── eventtype.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── subscription.go │ │ │ │ │ │ └── trigger.go │ │ │ │ │ ├── messaging/ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── inmemorychannel.go │ │ │ │ │ │ ├── messaging_client.go │ │ │ │ │ │ └── sequence.go │ │ │ │ │ └── sources/ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ ├── apiserversource.go │ │ │ │ │ ├── containersource.go │ │ │ │ │ ├── cronjobsource.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ └── sources_client.go │ │ │ │ └── test/ │ │ │ │ └── test_images/ │ │ │ │ └── logevents/ │ │ │ │ └── kodata/ │ │ │ │ └── LICENSE │ │ │ ├── serving/ │ │ │ │ ├── AUTHORS │ │ │ │ ├── LICENSE │ │ │ │ ├── pkg/ │ │ │ │ │ ├── apis/ │ │ │ │ │ │ ├── autoscaling/ │ │ │ │ │ │ │ ├── annotation_validation.go │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── pa_defaults.go │ │ │ │ │ │ │ ├── pa_lifecycle.go │ │ │ │ │ │ │ ├── pa_types.go │ │ │ │ │ │ │ ├── pa_validation.go │ │ │ │ │ │ │ ├── podscalable_types.go │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── defaults.go │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── store.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ ├── networking/ │ │ │ │ │ │ │ ├── generic_types.go │ │ │ │ │ │ │ ├── ports.go │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ │ ├── certificate_defaults.go │ │ │ │ │ │ │ ├── certificate_lifecycle.go │ │ │ │ │ │ │ ├── certificate_types.go │ │ │ │ │ │ │ ├── certificate_validation.go │ │ │ │ │ │ │ ├── clusteringress_defaults.go │ │ │ │ │ │ │ ├── clusteringress_lifecycle.go │ │ │ │ │ │ │ ├── clusteringress_types.go │ │ │ │ │ │ │ ├── clusteringress_validation.go │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── ingress_defaults.go │ │ │ │ │ │ │ ├── ingress_lifecycle.go │ │ │ │ │ │ │ ├── ingress_types.go │ │ │ │ │ │ │ ├── ingress_validation.go │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ ├── serverlessservice_defaults.go │ │ │ │ │ │ │ ├── serverlessservice_lifecycle.go │ │ │ │ │ │ │ ├── serverlessservice_types.go │ │ │ │ │ │ │ ├── serverlessservice_validation.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ └── serving/ │ │ │ │ │ │ ├── fieldmask.go │ │ │ │ │ │ ├── k8s_validation.go │ │ │ │ │ │ ├── metadata_validation.go │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ │ │ ├── configuration_conversion.go │ │ │ │ │ │ │ ├── configuration_defaults.go │ │ │ │ │ │ │ ├── configuration_lifecycle.go │ │ │ │ │ │ │ ├── configuration_types.go │ │ │ │ │ │ │ ├── configuration_validation.go │ │ │ │ │ │ │ ├── conversion_error.go │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ │ ├── revision_conversion.go │ │ │ │ │ │ │ ├── revision_defaults.go │ │ │ │ │ │ │ ├── revision_lifecycle.go │ │ │ │ │ │ │ ├── revision_types.go │ │ │ │ │ │ │ ├── revision_validation.go │ │ │ │ │ │ │ ├── route_conversion.go │ │ │ │ │ │ │ ├── route_defaults.go │ │ │ │ │ │ │ ├── route_lifecycle.go │ │ │ │ │ │ │ ├── route_types.go │ │ │ │ │ │ │ ├── route_validation.go │ │ │ │ │ │ │ ├── service_conversion.go │ │ │ │ │ │ │ ├── service_defaults.go │ │ │ │ │ │ │ ├── service_lifecycle.go │ │ │ │ │ │ │ ├── service_types.go │ │ │ │ │ │ │ ├── service_validation.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ └── v1beta1/ │ │ │ │ │ │ ├── configuration_conversion.go │ │ │ │ │ │ ├── configuration_defaults.go │ │ │ │ │ │ ├── configuration_lifecycle.go │ │ │ │ │ │ ├── configuration_types.go │ │ │ │ │ │ ├── configuration_validation.go │ │ │ │ │ │ ├── contexts.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ ├── revision_conversion.go │ │ │ │ │ │ ├── revision_defaults.go │ │ │ │ │ │ ├── revision_lifecycle.go │ │ │ │ │ │ ├── revision_types.go │ │ │ │ │ │ ├── revision_validation.go │ │ │ │ │ │ ├── route_conversion.go │ │ │ │ │ │ ├── route_defaults.go │ │ │ │ │ │ ├── route_lifecycle.go │ │ │ │ │ │ ├── route_types.go │ │ │ │ │ │ ├── route_validation.go │ │ │ │ │ │ ├── service_conversion.go │ │ │ │ │ │ ├── service_defaults.go │ │ │ │ │ │ ├── service_lifecycle.go │ │ │ │ │ │ ├── service_types.go │ │ │ │ │ │ ├── service_validation.go │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ └── client/ │ │ │ │ │ └── clientset/ │ │ │ │ │ └── versioned/ │ │ │ │ │ ├── clientset.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── scheme/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ └── register.go │ │ │ │ │ └── typed/ │ │ │ │ │ ├── autoscaling/ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ ├── autoscaling_client.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ └── podautoscaler.go │ │ │ │ │ ├── networking/ │ │ │ │ │ │ └── v1alpha1/ │ │ │ │ │ │ ├── certificate.go │ │ │ │ │ │ ├── clusteringress.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── ingress.go │ │ │ │ │ │ ├── networking_client.go │ │ │ │ │ │ └── serverlessservice.go │ │ │ │ │ └── serving/ │ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ │ ├── configuration.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ │ ├── revision.go │ │ │ │ │ │ ├── route.go │ │ │ │ │ │ ├── service.go │ │ │ │ │ │ └── serving_client.go │ │ │ │ │ └── v1beta1/ │ │ │ │ │ ├── configuration.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated_expansion.go │ │ │ │ │ ├── revision.go │ │ │ │ │ ├── route.go │ │ │ │ │ ├── service.go │ │ │ │ │ └── serving_client.go │ │ │ │ └── third_party/ │ │ │ │ └── config/ │ │ │ │ └── monitoring/ │ │ │ │ ├── logging/ │ │ │ │ │ └── elasticsearch/ │ │ │ │ │ └── LICENSE │ │ │ │ └── metrics/ │ │ │ │ └── prometheus/ │ │ │ │ ├── kubernetes/ │ │ │ │ │ └── LICENSE │ │ │ │ └── prometheus-operator/ │ │ │ │ ├── LICENSE │ │ │ │ └── NOTICE │ │ │ └── test-infra/ │ │ │ ├── LICENSE │ │ │ ├── scripts/ │ │ │ │ ├── README.md │ │ │ │ ├── dummy.go │ │ │ │ ├── e2e-tests.sh │ │ │ │ ├── library.sh │ │ │ │ ├── markdown-link-check-config.rc │ │ │ │ ├── markdown-lint-config.rc │ │ │ │ ├── presubmit-tests.sh │ │ │ │ └── release.sh │ │ │ └── tools/ │ │ │ └── dep-collector/ │ │ │ ├── README.md │ │ │ ├── imports.go │ │ │ ├── licenses.go │ │ │ └── main.go │ │ ├── markbates/ │ │ │ └── inflect/ │ │ │ ├── LICENCE │ │ │ ├── helpers.go │ │ │ ├── inflect.go │ │ │ ├── name.go │ │ │ └── version.go │ │ ├── mattbaird/ │ │ │ └── jsonpatch/ │ │ │ ├── LICENSE │ │ │ └── jsonpatch.go │ │ ├── matttproud/ │ │ │ └── golang_protobuf_extensions/ │ │ │ ├── LICENSE │ │ │ ├── NOTICE │ │ │ └── pbutil/ │ │ │ ├── decode.go │ │ │ ├── doc.go │ │ │ └── encode.go │ │ ├── modern-go/ │ │ │ ├── concurrent/ │ │ │ │ ├── LICENSE │ │ │ │ ├── executor.go │ │ │ │ ├── go_above_19.go │ │ │ │ ├── go_below_19.go │ │ │ │ ├── log.go │ │ │ │ └── unbounded_executor.go │ │ │ └── reflect2/ │ │ │ ├── LICENSE │ │ │ ├── go_above_17.go │ │ │ ├── go_above_19.go │ │ │ ├── go_below_17.go │ │ │ ├── go_below_19.go │ │ │ ├── reflect2.go │ │ │ ├── reflect2_amd64.s │ │ │ ├── reflect2_kind.go │ │ │ ├── relfect2_386.s │ │ │ ├── relfect2_amd64p32.s │ │ │ ├── relfect2_arm.s │ │ │ ├── relfect2_arm64.s │ │ │ ├── relfect2_mips64x.s │ │ │ ├── relfect2_mipsx.s │ │ │ ├── relfect2_ppc64x.s │ │ │ ├── relfect2_s390x.s │ │ │ ├── safe_field.go │ │ │ ├── safe_map.go │ │ │ ├── safe_slice.go │ │ │ ├── safe_struct.go │ │ │ ├── safe_type.go │ │ │ ├── type_map.go │ │ │ ├── unsafe_array.go │ │ │ ├── unsafe_eface.go │ │ │ ├── unsafe_field.go │ │ │ ├── unsafe_iface.go │ │ │ ├── unsafe_link.go │ │ │ ├── unsafe_map.go │ │ │ ├── unsafe_ptr.go │ │ │ ├── unsafe_slice.go │ │ │ ├── unsafe_struct.go │ │ │ └── unsafe_type.go │ │ ├── onsi/ │ │ │ ├── ginkgo/ │ │ │ │ ├── LICENSE │ │ │ │ ├── config/ │ │ │ │ │ └── config.go │ │ │ │ ├── ginkgo_dsl.go │ │ │ │ ├── internal/ │ │ │ │ │ ├── codelocation/ │ │ │ │ │ │ └── code_location.go │ │ │ │ │ ├── containernode/ │ │ │ │ │ │ └── container_node.go │ │ │ │ │ ├── failer/ │ │ │ │ │ │ └── failer.go │ │ │ │ │ ├── leafnodes/ │ │ │ │ │ │ ├── benchmarker.go │ │ │ │ │ │ ├── interfaces.go │ │ │ │ │ │ ├── it_node.go │ │ │ │ │ │ ├── measure_node.go │ │ │ │ │ │ ├── runner.go │ │ │ │ │ │ ├── setup_nodes.go │ │ │ │ │ │ ├── suite_nodes.go │ │ │ │ │ │ ├── synchronized_after_suite_node.go │ │ │ │ │ │ └── synchronized_before_suite_node.go │ │ │ │ │ ├── remote/ │ │ │ │ │ │ ├── aggregator.go │ │ │ │ │ │ ├── forwarding_reporter.go │ │ │ │ │ │ ├── output_interceptor.go │ │ │ │ │ │ ├── output_interceptor_unix.go │ │ │ │ │ │ ├── output_interceptor_win.go │ │ │ │ │ │ ├── server.go │ │ │ │ │ │ ├── syscall_dup_linux_arm64.go │ │ │ │ │ │ ├── syscall_dup_solaris.go │ │ │ │ │ │ └── syscall_dup_unix.go │ │ │ │ │ ├── spec/ │ │ │ │ │ │ ├── spec.go │ │ │ │ │ │ └── specs.go │ │ │ │ │ ├── spec_iterator/ │ │ │ │ │ │ ├── index_computer.go │ │ │ │ │ │ ├── parallel_spec_iterator.go │ │ │ │ │ │ ├── serial_spec_iterator.go │ │ │ │ │ │ ├── sharded_parallel_spec_iterator.go │ │ │ │ │ │ └── spec_iterator.go │ │ │ │ │ ├── specrunner/ │ │ │ │ │ │ ├── random_id.go │ │ │ │ │ │ └── spec_runner.go │ │ │ │ │ ├── suite/ │ │ │ │ │ │ └── suite.go │ │ │ │ │ ├── testingtproxy/ │ │ │ │ │ │ └── testing_t_proxy.go │ │ │ │ │ └── writer/ │ │ │ │ │ ├── fake_writer.go │ │ │ │ │ └── writer.go │ │ │ │ ├── reporters/ │ │ │ │ │ ├── default_reporter.go │ │ │ │ │ ├── fake_reporter.go │ │ │ │ │ ├── junit_reporter.go │ │ │ │ │ ├── reporter.go │ │ │ │ │ ├── stenographer/ │ │ │ │ │ │ ├── console_logging.go │ │ │ │ │ │ ├── fake_stenographer.go │ │ │ │ │ │ ├── stenographer.go │ │ │ │ │ │ └── support/ │ │ │ │ │ │ ├── go-colorable/ │ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ │ ├── colorable_others.go │ │ │ │ │ │ │ ├── colorable_windows.go │ │ │ │ │ │ │ └── noncolorable.go │ │ │ │ │ │ └── go-isatty/ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── isatty_appengine.go │ │ │ │ │ │ ├── isatty_bsd.go │ │ │ │ │ │ ├── isatty_linux.go │ │ │ │ │ │ ├── isatty_solaris.go │ │ │ │ │ │ └── isatty_windows.go │ │ │ │ │ └── teamcity_reporter.go │ │ │ │ └── types/ │ │ │ │ ├── code_location.go │ │ │ │ ├── synchronization.go │ │ │ │ └── types.go │ │ │ └── gomega/ │ │ │ ├── LICENSE │ │ │ ├── format/ │ │ │ │ └── format.go │ │ │ ├── gbytes/ │ │ │ │ ├── buffer.go │ │ │ │ ├── io_wrappers.go │ │ │ │ └── say_matcher.go │ │ │ ├── gexec/ │ │ │ │ ├── build.go │ │ │ │ ├── exit_matcher.go │ │ │ │ ├── prefixed_writer.go │ │ │ │ └── session.go │ │ │ ├── gomega_dsl.go │ │ │ ├── internal/ │ │ │ │ ├── assertion/ │ │ │ │ │ └── assertion.go │ │ │ │ ├── asyncassertion/ │ │ │ │ │ └── async_assertion.go │ │ │ │ ├── oraclematcher/ │ │ │ │ │ └── oracle_matcher.go │ │ │ │ └── testingtsupport/ │ │ │ │ └── testing_t_support.go │ │ │ ├── matchers/ │ │ │ │ ├── and.go │ │ │ │ ├── assignable_to_type_of_matcher.go │ │ │ │ ├── attributes_slice.go │ │ │ │ ├── be_a_directory.go │ │ │ │ ├── be_a_regular_file.go │ │ │ │ ├── be_an_existing_file.go │ │ │ │ ├── be_closed_matcher.go │ │ │ │ ├── be_empty_matcher.go │ │ │ │ ├── be_equivalent_to_matcher.go │ │ │ │ ├── be_false_matcher.go │ │ │ │ ├── be_identical_to.go │ │ │ │ ├── be_nil_matcher.go │ │ │ │ ├── be_numerically_matcher.go │ │ │ │ ├── be_sent_matcher.go │ │ │ │ ├── be_temporally_matcher.go │ │ │ │ ├── be_true_matcher.go │ │ │ │ ├── be_zero_matcher.go │ │ │ │ ├── consist_of.go │ │ │ │ ├── contain_element_matcher.go │ │ │ │ ├── contain_substring_matcher.go │ │ │ │ ├── equal_matcher.go │ │ │ │ ├── have_cap_matcher.go │ │ │ │ ├── have_key_matcher.go │ │ │ │ ├── have_key_with_value_matcher.go │ │ │ │ ├── have_len_matcher.go │ │ │ │ ├── have_occurred_matcher.go │ │ │ │ ├── have_prefix_matcher.go │ │ │ │ ├── have_suffix_matcher.go │ │ │ │ ├── match_error_matcher.go │ │ │ │ ├── match_json_matcher.go │ │ │ │ ├── match_regexp_matcher.go │ │ │ │ ├── match_xml_matcher.go │ │ │ │ ├── match_yaml_matcher.go │ │ │ │ ├── not.go │ │ │ │ ├── or.go │ │ │ │ ├── panic_matcher.go │ │ │ │ ├── receive_matcher.go │ │ │ │ ├── semi_structured_data_support.go │ │ │ │ ├── succeed_matcher.go │ │ │ │ ├── support/ │ │ │ │ │ └── goraph/ │ │ │ │ │ ├── bipartitegraph/ │ │ │ │ │ │ ├── bipartitegraph.go │ │ │ │ │ │ └── bipartitegraphmatching.go │ │ │ │ │ ├── edge/ │ │ │ │ │ │ └── edge.go │ │ │ │ │ ├── node/ │ │ │ │ │ │ └── node.go │ │ │ │ │ └── util/ │ │ │ │ │ └── util.go │ │ │ │ ├── type_support.go │ │ │ │ └── with_transform.go │ │ │ ├── matchers.go │ │ │ └── types/ │ │ │ └── types.go │ │ ├── pborman/ │ │ │ └── uuid/ │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── dce.go │ │ │ ├── doc.go │ │ │ ├── hash.go │ │ │ ├── marshal.go │ │ │ ├── node.go │ │ │ ├── sql.go │ │ │ ├── time.go │ │ │ ├── util.go │ │ │ ├── uuid.go │ │ │ ├── version1.go │ │ │ └── version4.go │ │ ├── petar/ │ │ │ └── GoLLRB/ │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ └── llrb/ │ │ │ ├── avgvar.go │ │ │ ├── iterator.go │ │ │ ├── llrb-stats.go │ │ │ ├── llrb.go │ │ │ └── util.go │ │ ├── peterbourgon/ │ │ │ └── diskv/ │ │ │ ├── LICENSE │ │ │ ├── compression.go │ │ │ ├── diskv.go │ │ │ └── index.go │ │ ├── pierrec/ │ │ │ └── lz4/ │ │ │ ├── LICENSE │ │ │ ├── block.go │ │ │ ├── debug.go │ │ │ ├── debug_stub.go │ │ │ ├── decode_amd64.go │ │ │ ├── decode_amd64.s │ │ │ ├── decode_other.go │ │ │ ├── internal/ │ │ │ │ └── xxh32/ │ │ │ │ └── xxh32zero.go │ │ │ ├── lz4.go │ │ │ ├── lz4_go1.10.go │ │ │ ├── lz4_notgo1.10.go │ │ │ ├── reader.go │ │ │ └── writer.go │ │ ├── pkg/ │ │ │ └── errors/ │ │ │ ├── LICENSE │ │ │ ├── errors.go │ │ │ └── stack.go │ │ ├── prometheus/ │ │ │ ├── client_golang/ │ │ │ │ ├── LICENSE │ │ │ │ ├── NOTICE │ │ │ │ └── prometheus/ │ │ │ │ ├── collector.go │ │ │ │ ├── counter.go │ │ │ │ ├── desc.go │ │ │ │ ├── doc.go │ │ │ │ ├── expvar_collector.go │ │ │ │ ├── fnv.go │ │ │ │ ├── gauge.go │ │ │ │ ├── go_collector.go │ │ │ │ ├── histogram.go │ │ │ │ ├── http.go │ │ │ │ ├── internal/ │ │ │ │ │ └── metric.go │ │ │ │ ├── labels.go │ │ │ │ ├── metric.go │ │ │ │ ├── observer.go │ │ │ │ ├── process_collector.go │ │ │ │ ├── promhttp/ │ │ │ │ │ ├── delegator.go │ │ │ │ │ ├── delegator_1_8.go │ │ │ │ │ ├── delegator_pre_1_8.go │ │ │ │ │ ├── http.go │ │ │ │ │ ├── instrument_client.go │ │ │ │ │ ├── instrument_client_1_8.go │ │ │ │ │ └── instrument_server.go │ │ │ │ ├── registry.go │ │ │ │ ├── summary.go │ │ │ │ ├── timer.go │ │ │ │ ├── untyped.go │ │ │ │ ├── value.go │ │ │ │ ├── vec.go │ │ │ │ └── wrap.go │ │ │ ├── client_model/ │ │ │ │ ├── LICENSE │ │ │ │ ├── NOTICE │ │ │ │ ├── go/ │ │ │ │ │ └── metrics.pb.go │ │ │ │ └── ruby/ │ │ │ │ └── LICENSE │ │ │ ├── common/ │ │ │ │ ├── LICENSE │ │ │ │ ├── NOTICE │ │ │ │ ├── expfmt/ │ │ │ │ │ ├── decode.go │ │ │ │ │ ├── encode.go │ │ │ │ │ ├── expfmt.go │ │ │ │ │ ├── fuzz.go │ │ │ │ │ ├── text_create.go │ │ │ │ │ └── text_parse.go │ │ │ │ ├── internal/ │ │ │ │ │ └── bitbucket.org/ │ │ │ │ │ └── ww/ │ │ │ │ │ └── goautoneg/ │ │ │ │ │ └── autoneg.go │ │ │ │ └── model/ │ │ │ │ ├── alert.go │ │ │ │ ├── fingerprinting.go │ │ │ │ ├── fnv.go │ │ │ │ ├── labels.go │ │ │ │ ├── labelset.go │ │ │ │ ├── metric.go │ │ │ │ ├── model.go │ │ │ │ ├── signature.go │ │ │ │ ├── silence.go │ │ │ │ ├── time.go │ │ │ │ └── value.go │ │ │ └── procfs/ │ │ │ ├── LICENSE │ │ │ ├── NOTICE │ │ │ ├── buddyinfo.go │ │ │ ├── doc.go │ │ │ ├── fs.go │ │ │ ├── internal/ │ │ │ │ └── util/ │ │ │ │ ├── parse.go │ │ │ │ └── sysreadfile_linux.go │ │ │ ├── ipvs.go │ │ │ ├── mdstat.go │ │ │ ├── mountstats.go │ │ │ ├── net_dev.go │ │ │ ├── nfs/ │ │ │ │ ├── nfs.go │ │ │ │ ├── parse.go │ │ │ │ ├── parse_nfs.go │ │ │ │ └── parse_nfsd.go │ │ │ ├── proc.go │ │ │ ├── proc_io.go │ │ │ ├── proc_limits.go │ │ │ ├── proc_ns.go │ │ │ ├── proc_stat.go │ │ │ ├── stat.go │ │ │ ├── xfrm.go │ │ │ └── xfs/ │ │ │ ├── parse.go │ │ │ └── xfs.go │ │ ├── rcrowley/ │ │ │ └── go-metrics/ │ │ │ ├── LICENSE │ │ │ ├── counter.go │ │ │ ├── debug.go │ │ │ ├── ewma.go │ │ │ ├── gauge.go │ │ │ ├── gauge_float64.go │ │ │ ├── graphite.go │ │ │ ├── healthcheck.go │ │ │ ├── histogram.go │ │ │ ├── json.go │ │ │ ├── log.go │ │ │ ├── meter.go │ │ │ ├── metrics.go │ │ │ ├── opentsdb.go │ │ │ ├── registry.go │ │ │ ├── runtime.go │ │ │ ├── runtime_cgo.go │ │ │ ├── runtime_gccpufraction.go │ │ │ ├── runtime_no_cgo.go │ │ │ ├── runtime_no_gccpufraction.go │ │ │ ├── sample.go │ │ │ ├── syslog.go │ │ │ ├── timer.go │ │ │ └── writer.go │ │ ├── satori/ │ │ │ └── go.uuid/ │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── codec.go │ │ │ ├── codec_test.go │ │ │ ├── generator.go │ │ │ ├── generator_test.go │ │ │ ├── sql.go │ │ │ ├── sql_test.go │ │ │ ├── uuid.go │ │ │ └── uuid_test.go │ │ ├── sergi/ │ │ │ └── go-diff/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ └── diffmatchpatch/ │ │ │ ├── diff.go │ │ │ ├── diffmatchpatch.go │ │ │ ├── match.go │ │ │ ├── mathutil.go │ │ │ ├── patch.go │ │ │ └── stringutil.go │ │ ├── sirupsen/ │ │ │ └── logrus/ │ │ │ ├── .golangci.yml │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── alt_exit.go │ │ │ ├── alt_exit_test.go │ │ │ ├── appveyor.yml │ │ │ ├── doc.go │ │ │ ├── entry.go │ │ │ ├── entry_test.go │ │ │ ├── example_basic_test.go │ │ │ ├── example_custom_caller_test.go │ │ │ ├── example_default_field_value_test.go │ │ │ ├── example_global_hook_test.go │ │ │ ├── example_hook_test.go │ │ │ ├── exported.go │ │ │ ├── formatter.go │ │ │ ├── formatter_bench_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── hook_test.go │ │ │ ├── hooks/ │ │ │ │ ├── syslog/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── syslog.go │ │ │ │ │ └── syslog_test.go │ │ │ │ └── test/ │ │ │ │ ├── test.go │ │ │ │ └── test_test.go │ │ │ ├── hooks.go │ │ │ ├── internal/ │ │ │ │ └── testutils/ │ │ │ │ └── testutils.go │ │ │ ├── json_formatter.go │ │ │ ├── json_formatter_test.go │ │ │ ├── level_test.go │ │ │ ├── logger.go │ │ │ ├── logger_bench_test.go │ │ │ ├── logger_test.go │ │ │ ├── logrus.go │ │ │ ├── logrus_test.go │ │ │ ├── terminal_check_appengine.go │ │ │ ├── terminal_check_bsd.go │ │ │ ├── terminal_check_js.go │ │ │ ├── terminal_check_no_terminal.go │ │ │ ├── terminal_check_notappengine.go │ │ │ ├── terminal_check_solaris.go │ │ │ ├── terminal_check_unix.go │ │ │ ├── terminal_check_windows.go │ │ │ ├── text_formatter.go │ │ │ ├── text_formatter_test.go │ │ │ ├── travis/ │ │ │ │ ├── cross_build.sh │ │ │ │ ├── install.sh │ │ │ │ └── lint.sh │ │ │ ├── writer.go │ │ │ └── writer_test.go │ │ ├── souriki/ │ │ │ └── ali_mns/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── client.go │ │ │ ├── credential.go │ │ │ ├── decoder.go │ │ │ ├── errors.go │ │ │ ├── example/ │ │ │ │ ├── app.conf.example │ │ │ │ ├── queue_example.go │ │ │ │ └── topic_example.go │ │ │ ├── message.go │ │ │ ├── qps_monitor.go │ │ │ ├── queue.go │ │ │ ├── queue_manager.go │ │ │ ├── topic.go │ │ │ ├── topic_manager.go │ │ │ └── utils.go │ │ ├── spf13/ │ │ │ ├── afero/ │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── afero.go │ │ │ │ ├── basepath.go │ │ │ │ ├── cacheOnReadFs.go │ │ │ │ ├── const_bsds.go │ │ │ │ ├── const_win_unix.go │ │ │ │ ├── copyOnWriteFs.go │ │ │ │ ├── httpFs.go │ │ │ │ ├── ioutil.go │ │ │ │ ├── lstater.go │ │ │ │ ├── match.go │ │ │ │ ├── mem/ │ │ │ │ │ ├── dir.go │ │ │ │ │ ├── dirmap.go │ │ │ │ │ └── file.go │ │ │ │ ├── memmap.go │ │ │ │ ├── os.go │ │ │ │ ├── path.go │ │ │ │ ├── readonlyfs.go │ │ │ │ ├── regexpfs.go │ │ │ │ ├── unionFile.go │ │ │ │ └── util.go │ │ │ ├── cobra/ │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── args.go │ │ │ │ ├── bash_completions.go │ │ │ │ ├── cobra/ │ │ │ │ │ └── cmd/ │ │ │ │ │ └── testdata/ │ │ │ │ │ └── LICENSE.golden │ │ │ │ ├── cobra.go │ │ │ │ ├── command.go │ │ │ │ ├── command_notwin.go │ │ │ │ ├── command_win.go │ │ │ │ └── zsh_completions.go │ │ │ └── pflag/ │ │ │ ├── LICENSE │ │ │ ├── bool.go │ │ │ ├── bool_slice.go │ │ │ ├── bytes.go │ │ │ ├── count.go │ │ │ ├── duration.go │ │ │ ├── duration_slice.go │ │ │ ├── flag.go │ │ │ ├── float32.go │ │ │ ├── float64.go │ │ │ ├── golangflag.go │ │ │ ├── int.go │ │ │ ├── int16.go │ │ │ ├── int32.go │ │ │ ├── int64.go │ │ │ ├── int8.go │ │ │ ├── int_slice.go │ │ │ ├── ip.go │ │ │ ├── ip_slice.go │ │ │ ├── ipmask.go │ │ │ ├── ipnet.go │ │ │ ├── string.go │ │ │ ├── string_array.go │ │ │ ├── string_slice.go │ │ │ ├── string_to_int.go │ │ │ ├── string_to_string.go │ │ │ ├── uint.go │ │ │ ├── uint16.go │ │ │ ├── uint32.go │ │ │ ├── uint64.go │ │ │ ├── uint8.go │ │ │ └── uint_slice.go │ │ ├── tidwall/ │ │ │ ├── gjson/ │ │ │ │ ├── .travis.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── SYNTAX.md │ │ │ │ ├── gjson.go │ │ │ │ ├── gjson_gae.go │ │ │ │ ├── gjson_ngae.go │ │ │ │ ├── gjson_test.go │ │ │ │ ├── go.mod │ │ │ │ └── go.sum │ │ │ ├── match/ │ │ │ │ ├── .travis.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── match.go │ │ │ │ └── match_test.go │ │ │ └── pretty/ │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── pretty.go │ │ │ └── pretty_test.go │ │ └── valyala/ │ │ ├── bytebufferpool/ │ │ │ ├── LICENSE │ │ │ ├── bytebuffer.go │ │ │ ├── doc.go │ │ │ └── pool.go │ │ └── fasthttp/ │ │ ├── LICENSE │ │ ├── args.go │ │ ├── bytebuffer.go │ │ ├── bytesconv.go │ │ ├── bytesconv_32.go │ │ ├── bytesconv_64.go │ │ ├── client.go │ │ ├── coarseTime.go │ │ ├── compress.go │ │ ├── cookie.go │ │ ├── doc.go │ │ ├── fasthttputil/ │ │ │ ├── doc.go │ │ │ ├── inmemory_listener.go │ │ │ └── pipeconns.go │ │ ├── fs.go │ │ ├── header.go │ │ ├── http.go │ │ ├── lbclient.go │ │ ├── nocopy.go │ │ ├── peripconn.go │ │ ├── reuseport/ │ │ │ └── LICENSE │ │ ├── server.go │ │ ├── stackless/ │ │ │ ├── doc.go │ │ │ ├── func.go │ │ │ └── writer.go │ │ ├── status.go │ │ ├── stream.go │ │ ├── strings.go │ │ ├── tcpdialer.go │ │ ├── timer.go │ │ ├── uri.go │ │ ├── uri_unix.go │ │ ├── uri_windows.go │ │ ├── userdata.go │ │ └── workerpool.go │ ├── go.opencensus.io/ │ │ ├── AUTHORS │ │ ├── LICENSE │ │ ├── exemplar/ │ │ │ └── exemplar.go │ │ ├── internal/ │ │ │ ├── internal.go │ │ │ ├── sanitize.go │ │ │ ├── tagencoding/ │ │ │ │ └── tagencoding.go │ │ │ └── traceinternals.go │ │ ├── opencensus.go │ │ ├── plugin/ │ │ │ ├── ocgrpc/ │ │ │ │ ├── client.go │ │ │ │ ├── client_metrics.go │ │ │ │ ├── client_stats_handler.go │ │ │ │ ├── doc.go │ │ │ │ ├── server.go │ │ │ │ ├── server_metrics.go │ │ │ │ ├── server_stats_handler.go │ │ │ │ ├── stats_common.go │ │ │ │ └── trace_common.go │ │ │ └── ochttp/ │ │ │ ├── client.go │ │ │ ├── client_stats.go │ │ │ ├── doc.go │ │ │ ├── propagation/ │ │ │ │ └── b3/ │ │ │ │ └── b3.go │ │ │ ├── route.go │ │ │ ├── server.go │ │ │ ├── span_annotating_client_trace.go │ │ │ ├── stats.go │ │ │ └── trace.go │ │ ├── stats/ │ │ │ ├── doc.go │ │ │ ├── internal/ │ │ │ │ ├── record.go │ │ │ │ └── validation.go │ │ │ ├── measure.go │ │ │ ├── measure_float64.go │ │ │ ├── measure_int64.go │ │ │ ├── record.go │ │ │ ├── units.go │ │ │ └── view/ │ │ │ ├── aggregation.go │ │ │ ├── aggregation_data.go │ │ │ ├── collector.go │ │ │ ├── doc.go │ │ │ ├── export.go │ │ │ ├── view.go │ │ │ ├── worker.go │ │ │ └── worker_commands.go │ │ ├── tag/ │ │ │ ├── context.go │ │ │ ├── doc.go │ │ │ ├── key.go │ │ │ ├── map.go │ │ │ ├── map_codec.go │ │ │ ├── profile_19.go │ │ │ ├── profile_not19.go │ │ │ └── validate.go │ │ └── trace/ │ │ ├── basetypes.go │ │ ├── config.go │ │ ├── doc.go │ │ ├── exemplar.go │ │ ├── export.go │ │ ├── internal/ │ │ │ └── internal.go │ │ ├── propagation/ │ │ │ └── propagation.go │ │ ├── sampling.go │ │ ├── spanbucket.go │ │ ├── spanstore.go │ │ ├── status_codes.go │ │ ├── trace.go │ │ ├── trace_go11.go │ │ ├── trace_nongo11.go │ │ └── tracestate/ │ │ └── tracestate.go │ ├── go.uber.org/ │ │ ├── atomic/ │ │ │ ├── LICENSE.txt │ │ │ ├── atomic.go │ │ │ └── string.go │ │ ├── multierr/ │ │ │ ├── LICENSE.txt │ │ │ └── error.go │ │ └── zap/ │ │ ├── LICENSE.txt │ │ ├── array.go │ │ ├── buffer/ │ │ │ ├── buffer.go │ │ │ └── pool.go │ │ ├── config.go │ │ ├── doc.go │ │ ├── encoder.go │ │ ├── error.go │ │ ├── field.go │ │ ├── flag.go │ │ ├── global.go │ │ ├── http_handler.go │ │ ├── internal/ │ │ │ ├── bufferpool/ │ │ │ │ └── bufferpool.go │ │ │ ├── color/ │ │ │ │ └── color.go │ │ │ └── exit/ │ │ │ └── exit.go │ │ ├── level.go │ │ ├── logger.go │ │ ├── options.go │ │ ├── sink.go │ │ ├── stacktrace.go │ │ ├── sugar.go │ │ ├── time.go │ │ ├── writer.go │ │ └── zapcore/ │ │ ├── console_encoder.go │ │ ├── core.go │ │ ├── doc.go │ │ ├── encoder.go │ │ ├── entry.go │ │ ├── error.go │ │ ├── field.go │ │ ├── hook.go │ │ ├── json_encoder.go │ │ ├── level.go │ │ ├── level_strings.go │ │ ├── marshaler.go │ │ ├── memory_encoder.go │ │ ├── sampler.go │ │ ├── tee.go │ │ └── write_syncer.go │ ├── golang.org/ │ │ └── x/ │ │ ├── crypto/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ └── ssh/ │ │ │ └── terminal/ │ │ │ ├── terminal.go │ │ │ ├── util.go │ │ │ ├── util_bsd.go │ │ │ ├── util_linux.go │ │ │ ├── util_plan9.go │ │ │ ├── util_solaris.go │ │ │ └── util_windows.go │ │ ├── net/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── context/ │ │ │ │ ├── context.go │ │ │ │ ├── ctxhttp/ │ │ │ │ │ ├── ctxhttp.go │ │ │ │ │ └── ctxhttp_pre17.go │ │ │ │ ├── go17.go │ │ │ │ ├── go19.go │ │ │ │ ├── pre_go17.go │ │ │ │ └── pre_go19.go │ │ │ ├── html/ │ │ │ │ ├── atom/ │ │ │ │ │ ├── atom.go │ │ │ │ │ ├── gen.go │ │ │ │ │ └── table.go │ │ │ │ ├── charset/ │ │ │ │ │ └── charset.go │ │ │ │ ├── const.go │ │ │ │ ├── doc.go │ │ │ │ ├── doctype.go │ │ │ │ ├── entity.go │ │ │ │ ├── escape.go │ │ │ │ ├── foreign.go │ │ │ │ ├── node.go │ │ │ │ ├── parse.go │ │ │ │ ├── render.go │ │ │ │ └── token.go │ │ │ ├── http/ │ │ │ │ └── httpguts/ │ │ │ │ ├── guts.go │ │ │ │ └── httplex.go │ │ │ ├── http2/ │ │ │ │ ├── ciphers.go │ │ │ │ ├── client_conn_pool.go │ │ │ │ ├── configure_transport.go │ │ │ │ ├── databuffer.go │ │ │ │ ├── errors.go │ │ │ │ ├── flow.go │ │ │ │ ├── frame.go │ │ │ │ ├── go111.go │ │ │ │ ├── go16.go │ │ │ │ ├── go17.go │ │ │ │ ├── go17_not18.go │ │ │ │ ├── go18.go │ │ │ │ ├── go19.go │ │ │ │ ├── gotrack.go │ │ │ │ ├── headermap.go │ │ │ │ ├── hpack/ │ │ │ │ │ ├── encode.go │ │ │ │ │ ├── hpack.go │ │ │ │ │ ├── huffman.go │ │ │ │ │ └── tables.go │ │ │ │ ├── http2.go │ │ │ │ ├── not_go111.go │ │ │ │ ├── not_go16.go │ │ │ │ ├── not_go17.go │ │ │ │ ├── not_go18.go │ │ │ │ ├── not_go19.go │ │ │ │ ├── pipe.go │ │ │ │ ├── server.go │ │ │ │ ├── transport.go │ │ │ │ ├── write.go │ │ │ │ ├── writesched.go │ │ │ │ ├── writesched_priority.go │ │ │ │ └── writesched_random.go │ │ │ ├── idna/ │ │ │ │ ├── idna.go │ │ │ │ ├── punycode.go │ │ │ │ ├── tables.go │ │ │ │ ├── trie.go │ │ │ │ └── trieval.go │ │ │ ├── internal/ │ │ │ │ └── timeseries/ │ │ │ │ └── timeseries.go │ │ │ └── trace/ │ │ │ ├── events.go │ │ │ ├── histogram.go │ │ │ ├── trace.go │ │ │ ├── trace_go16.go │ │ │ └── trace_go17.go │ │ ├── oauth2/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── google/ │ │ │ │ ├── appengine.go │ │ │ │ ├── appengine_hook.go │ │ │ │ ├── appengineflex_hook.go │ │ │ │ ├── default.go │ │ │ │ ├── doc_go19.go │ │ │ │ ├── doc_not_go19.go │ │ │ │ ├── go19.go │ │ │ │ ├── google.go │ │ │ │ ├── jwt.go │ │ │ │ ├── not_go19.go │ │ │ │ └── sdk.go │ │ │ ├── internal/ │ │ │ │ ├── client_appengine.go │ │ │ │ ├── doc.go │ │ │ │ ├── oauth2.go │ │ │ │ ├── token.go │ │ │ │ └── transport.go │ │ │ ├── jws/ │ │ │ │ └── jws.go │ │ │ ├── jwt/ │ │ │ │ └── jwt.go │ │ │ ├── oauth2.go │ │ │ ├── token.go │ │ │ └── transport.go │ │ ├── sync/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── errgroup/ │ │ │ │ └── errgroup.go │ │ │ └── semaphore/ │ │ │ └── semaphore.go │ │ ├── sys/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── unix/ │ │ │ │ ├── affinity_linux.go │ │ │ │ ├── aliases.go │ │ │ │ ├── asm_aix_ppc64.s │ │ │ │ ├── asm_darwin_386.s │ │ │ │ ├── asm_darwin_amd64.s │ │ │ │ ├── asm_darwin_arm.s │ │ │ │ ├── asm_darwin_arm64.s │ │ │ │ ├── asm_dragonfly_amd64.s │ │ │ │ ├── asm_freebsd_386.s │ │ │ │ ├── asm_freebsd_amd64.s │ │ │ │ ├── asm_freebsd_arm.s │ │ │ │ ├── asm_linux_386.s │ │ │ │ ├── asm_linux_amd64.s │ │ │ │ ├── asm_linux_arm.s │ │ │ │ ├── asm_linux_arm64.s │ │ │ │ ├── asm_linux_mips64x.s │ │ │ │ ├── asm_linux_mipsx.s │ │ │ │ ├── asm_linux_ppc64x.s │ │ │ │ ├── asm_linux_s390x.s │ │ │ │ ├── asm_netbsd_386.s │ │ │ │ ├── asm_netbsd_amd64.s │ │ │ │ ├── asm_netbsd_arm.s │ │ │ │ ├── asm_openbsd_386.s │ │ │ │ ├── asm_openbsd_amd64.s │ │ │ │ ├── asm_openbsd_arm.s │ │ │ │ ├── asm_solaris_amd64.s │ │ │ │ ├── bluetooth_linux.go │ │ │ │ ├── cap_freebsd.go │ │ │ │ ├── constants.go │ │ │ │ ├── dev_aix_ppc.go │ │ │ │ ├── dev_aix_ppc64.go │ │ │ │ ├── dev_darwin.go │ │ │ │ ├── dev_dragonfly.go │ │ │ │ ├── dev_freebsd.go │ │ │ │ ├── dev_linux.go │ │ │ │ ├── dev_netbsd.go │ │ │ │ ├── dev_openbsd.go │ │ │ │ ├── dirent.go │ │ │ │ ├── endian_big.go │ │ │ │ ├── endian_little.go │ │ │ │ ├── env_unix.go │ │ │ │ ├── errors_freebsd_386.go │ │ │ │ ├── errors_freebsd_amd64.go │ │ │ │ ├── errors_freebsd_arm.go │ │ │ │ ├── fcntl.go │ │ │ │ ├── fcntl_linux_32bit.go │ │ │ │ ├── gccgo.go │ │ │ │ ├── gccgo_c.c │ │ │ │ ├── gccgo_linux_amd64.go │ │ │ │ ├── ioctl.go │ │ │ │ ├── mkpost.go │ │ │ │ ├── openbsd_pledge.go │ │ │ │ ├── pagesize_unix.go │ │ │ │ ├── race.go │ │ │ │ ├── race0.go │ │ │ │ ├── sockcmsg_linux.go │ │ │ │ ├── sockcmsg_unix.go │ │ │ │ ├── str.go │ │ │ │ ├── syscall.go │ │ │ │ ├── syscall_aix.go │ │ │ │ ├── syscall_aix_ppc.go │ │ │ │ ├── syscall_aix_ppc64.go │ │ │ │ ├── syscall_bsd.go │ │ │ │ ├── syscall_darwin.go │ │ │ │ ├── syscall_darwin_386.go │ │ │ │ ├── syscall_darwin_amd64.go │ │ │ │ ├── syscall_darwin_arm.go │ │ │ │ ├── syscall_darwin_arm64.go │ │ │ │ ├── syscall_dragonfly.go │ │ │ │ ├── syscall_dragonfly_amd64.go │ │ │ │ ├── syscall_freebsd.go │ │ │ │ ├── syscall_freebsd_386.go │ │ │ │ ├── syscall_freebsd_amd64.go │ │ │ │ ├── syscall_freebsd_arm.go │ │ │ │ ├── syscall_linux.go │ │ │ │ ├── syscall_linux_386.go │ │ │ │ ├── syscall_linux_amd64.go │ │ │ │ ├── syscall_linux_amd64_gc.go │ │ │ │ ├── syscall_linux_arm.go │ │ │ │ ├── syscall_linux_arm64.go │ │ │ │ ├── syscall_linux_gc.go │ │ │ │ ├── syscall_linux_gc_386.go │ │ │ │ ├── syscall_linux_gccgo_386.go │ │ │ │ ├── syscall_linux_gccgo_arm.go │ │ │ │ ├── syscall_linux_mips64x.go │ │ │ │ ├── syscall_linux_mipsx.go │ │ │ │ ├── syscall_linux_ppc64x.go │ │ │ │ ├── syscall_linux_riscv64.go │ │ │ │ ├── syscall_linux_s390x.go │ │ │ │ ├── syscall_linux_sparc64.go │ │ │ │ ├── syscall_netbsd.go │ │ │ │ ├── syscall_netbsd_386.go │ │ │ │ ├── syscall_netbsd_amd64.go │ │ │ │ ├── syscall_netbsd_arm.go │ │ │ │ ├── syscall_openbsd.go │ │ │ │ ├── syscall_openbsd_386.go │ │ │ │ ├── syscall_openbsd_amd64.go │ │ │ │ ├── syscall_openbsd_arm.go │ │ │ │ ├── syscall_solaris.go │ │ │ │ ├── syscall_solaris_amd64.go │ │ │ │ ├── syscall_unix.go │ │ │ │ ├── syscall_unix_gc.go │ │ │ │ ├── timestruct.go │ │ │ │ ├── types_aix.go │ │ │ │ ├── types_darwin.go │ │ │ │ ├── types_dragonfly.go │ │ │ │ ├── types_freebsd.go │ │ │ │ ├── types_netbsd.go │ │ │ │ ├── types_openbsd.go │ │ │ │ ├── types_solaris.go │ │ │ │ ├── xattr_bsd.go │ │ │ │ ├── zerrors_aix_ppc.go │ │ │ │ ├── zerrors_aix_ppc64.go │ │ │ │ ├── zerrors_darwin_386.go │ │ │ │ ├── zerrors_darwin_amd64.go │ │ │ │ ├── zerrors_darwin_arm.go │ │ │ │ ├── zerrors_darwin_arm64.go │ │ │ │ ├── zerrors_dragonfly_amd64.go │ │ │ │ ├── zerrors_freebsd_386.go │ │ │ │ ├── zerrors_freebsd_amd64.go │ │ │ │ ├── zerrors_freebsd_arm.go │ │ │ │ ├── zerrors_linux_386.go │ │ │ │ ├── zerrors_linux_amd64.go │ │ │ │ ├── zerrors_linux_arm.go │ │ │ │ ├── zerrors_linux_arm64.go │ │ │ │ ├── zerrors_linux_mips.go │ │ │ │ ├── zerrors_linux_mips64.go │ │ │ │ ├── zerrors_linux_mips64le.go │ │ │ │ ├── zerrors_linux_mipsle.go │ │ │ │ ├── zerrors_linux_ppc64.go │ │ │ │ ├── zerrors_linux_ppc64le.go │ │ │ │ ├── zerrors_linux_riscv64.go │ │ │ │ ├── zerrors_linux_s390x.go │ │ │ │ ├── zerrors_linux_sparc64.go │ │ │ │ ├── zerrors_netbsd_386.go │ │ │ │ ├── zerrors_netbsd_amd64.go │ │ │ │ ├── zerrors_netbsd_arm.go │ │ │ │ ├── zerrors_openbsd_386.go │ │ │ │ ├── zerrors_openbsd_amd64.go │ │ │ │ ├── zerrors_openbsd_arm.go │ │ │ │ ├── zerrors_solaris_amd64.go │ │ │ │ ├── zptrace386_linux.go │ │ │ │ ├── zptracearm_linux.go │ │ │ │ ├── zptracemips_linux.go │ │ │ │ ├── zptracemipsle_linux.go │ │ │ │ ├── zsyscall_aix_ppc.go │ │ │ │ ├── zsyscall_aix_ppc64.go │ │ │ │ ├── zsyscall_aix_ppc64_gc.go │ │ │ │ ├── zsyscall_aix_ppc64_gccgo.go │ │ │ │ ├── zsyscall_darwin_386.go │ │ │ │ ├── zsyscall_darwin_amd64.go │ │ │ │ ├── zsyscall_darwin_arm.go │ │ │ │ ├── zsyscall_darwin_arm64.go │ │ │ │ ├── zsyscall_dragonfly_amd64.go │ │ │ │ ├── zsyscall_freebsd_386.go │ │ │ │ ├── zsyscall_freebsd_amd64.go │ │ │ │ ├── zsyscall_freebsd_arm.go │ │ │ │ ├── zsyscall_linux_386.go │ │ │ │ ├── zsyscall_linux_amd64.go │ │ │ │ ├── zsyscall_linux_arm.go │ │ │ │ ├── zsyscall_linux_arm64.go │ │ │ │ ├── zsyscall_linux_mips.go │ │ │ │ ├── zsyscall_linux_mips64.go │ │ │ │ ├── zsyscall_linux_mips64le.go │ │ │ │ ├── zsyscall_linux_mipsle.go │ │ │ │ ├── zsyscall_linux_ppc64.go │ │ │ │ ├── zsyscall_linux_ppc64le.go │ │ │ │ ├── zsyscall_linux_riscv64.go │ │ │ │ ├── zsyscall_linux_s390x.go │ │ │ │ ├── zsyscall_linux_sparc64.go │ │ │ │ ├── zsyscall_netbsd_386.go │ │ │ │ ├── zsyscall_netbsd_amd64.go │ │ │ │ ├── zsyscall_netbsd_arm.go │ │ │ │ ├── zsyscall_openbsd_386.go │ │ │ │ ├── zsyscall_openbsd_amd64.go │ │ │ │ ├── zsyscall_openbsd_arm.go │ │ │ │ ├── zsyscall_solaris_amd64.go │ │ │ │ ├── zsysctl_openbsd_386.go │ │ │ │ ├── zsysctl_openbsd_amd64.go │ │ │ │ ├── zsysctl_openbsd_arm.go │ │ │ │ ├── zsysnum_darwin_386.go │ │ │ │ ├── zsysnum_darwin_amd64.go │ │ │ │ ├── zsysnum_darwin_arm.go │ │ │ │ ├── zsysnum_darwin_arm64.go │ │ │ │ ├── zsysnum_dragonfly_amd64.go │ │ │ │ ├── zsysnum_freebsd_386.go │ │ │ │ ├── zsysnum_freebsd_amd64.go │ │ │ │ ├── zsysnum_freebsd_arm.go │ │ │ │ ├── zsysnum_linux_386.go │ │ │ │ ├── zsysnum_linux_amd64.go │ │ │ │ ├── zsysnum_linux_arm.go │ │ │ │ ├── zsysnum_linux_arm64.go │ │ │ │ ├── zsysnum_linux_mips.go │ │ │ │ ├── zsysnum_linux_mips64.go │ │ │ │ ├── zsysnum_linux_mips64le.go │ │ │ │ ├── zsysnum_linux_mipsle.go │ │ │ │ ├── zsysnum_linux_ppc64.go │ │ │ │ ├── zsysnum_linux_ppc64le.go │ │ │ │ ├── zsysnum_linux_riscv64.go │ │ │ │ ├── zsysnum_linux_s390x.go │ │ │ │ ├── zsysnum_linux_sparc64.go │ │ │ │ ├── zsysnum_netbsd_386.go │ │ │ │ ├── zsysnum_netbsd_amd64.go │ │ │ │ ├── zsysnum_netbsd_arm.go │ │ │ │ ├── zsysnum_openbsd_386.go │ │ │ │ ├── zsysnum_openbsd_amd64.go │ │ │ │ ├── zsysnum_openbsd_arm.go │ │ │ │ ├── ztypes_aix_ppc.go │ │ │ │ ├── ztypes_aix_ppc64.go │ │ │ │ ├── ztypes_darwin_386.go │ │ │ │ ├── ztypes_darwin_amd64.go │ │ │ │ ├── ztypes_darwin_arm.go │ │ │ │ ├── ztypes_darwin_arm64.go │ │ │ │ ├── ztypes_dragonfly_amd64.go │ │ │ │ ├── ztypes_freebsd_386.go │ │ │ │ ├── ztypes_freebsd_amd64.go │ │ │ │ ├── ztypes_freebsd_arm.go │ │ │ │ ├── ztypes_linux_386.go │ │ │ │ ├── ztypes_linux_amd64.go │ │ │ │ ├── ztypes_linux_arm.go │ │ │ │ ├── ztypes_linux_arm64.go │ │ │ │ ├── ztypes_linux_mips.go │ │ │ │ ├── ztypes_linux_mips64.go │ │ │ │ ├── ztypes_linux_mips64le.go │ │ │ │ ├── ztypes_linux_mipsle.go │ │ │ │ ├── ztypes_linux_ppc64.go │ │ │ │ ├── ztypes_linux_ppc64le.go │ │ │ │ ├── ztypes_linux_riscv64.go │ │ │ │ ├── ztypes_linux_s390x.go │ │ │ │ ├── ztypes_linux_sparc64.go │ │ │ │ ├── ztypes_netbsd_386.go │ │ │ │ ├── ztypes_netbsd_amd64.go │ │ │ │ ├── ztypes_netbsd_arm.go │ │ │ │ ├── ztypes_openbsd_386.go │ │ │ │ ├── ztypes_openbsd_amd64.go │ │ │ │ ├── ztypes_openbsd_arm.go │ │ │ │ └── ztypes_solaris_amd64.go │ │ │ └── windows/ │ │ │ ├── aliases.go │ │ │ ├── asm_windows_386.s │ │ │ ├── asm_windows_amd64.s │ │ │ ├── asm_windows_arm.s │ │ │ ├── dll_windows.go │ │ │ ├── env_windows.go │ │ │ ├── eventlog.go │ │ │ ├── exec_windows.go │ │ │ ├── memory_windows.go │ │ │ ├── mksyscall.go │ │ │ ├── race.go │ │ │ ├── race0.go │ │ │ ├── security_windows.go │ │ │ ├── service.go │ │ │ ├── str.go │ │ │ ├── syscall.go │ │ │ ├── syscall_windows.go │ │ │ ├── types_windows.go │ │ │ ├── types_windows_386.go │ │ │ ├── types_windows_amd64.go │ │ │ ├── types_windows_arm.go │ │ │ └── zsyscall_windows.go │ │ ├── text/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── collate/ │ │ │ │ ├── build/ │ │ │ │ │ ├── builder.go │ │ │ │ │ ├── colelem.go │ │ │ │ │ ├── contract.go │ │ │ │ │ ├── order.go │ │ │ │ │ ├── table.go │ │ │ │ │ └── trie.go │ │ │ │ ├── collate.go │ │ │ │ ├── index.go │ │ │ │ ├── maketables.go │ │ │ │ ├── option.go │ │ │ │ ├── sort.go │ │ │ │ └── tables.go │ │ │ ├── encoding/ │ │ │ │ ├── charmap/ │ │ │ │ │ ├── charmap.go │ │ │ │ │ ├── maketables.go │ │ │ │ │ └── tables.go │ │ │ │ ├── encoding.go │ │ │ │ ├── htmlindex/ │ │ │ │ │ ├── gen.go │ │ │ │ │ ├── htmlindex.go │ │ │ │ │ ├── map.go │ │ │ │ │ └── tables.go │ │ │ │ ├── internal/ │ │ │ │ │ ├── identifier/ │ │ │ │ │ │ ├── gen.go │ │ │ │ │ │ ├── identifier.go │ │ │ │ │ │ └── mib.go │ │ │ │ │ └── internal.go │ │ │ │ ├── japanese/ │ │ │ │ │ ├── all.go │ │ │ │ │ ├── eucjp.go │ │ │ │ │ ├── iso2022jp.go │ │ │ │ │ ├── maketables.go │ │ │ │ │ ├── shiftjis.go │ │ │ │ │ └── tables.go │ │ │ │ ├── korean/ │ │ │ │ │ ├── euckr.go │ │ │ │ │ ├── maketables.go │ │ │ │ │ └── tables.go │ │ │ │ ├── simplifiedchinese/ │ │ │ │ │ ├── all.go │ │ │ │ │ ├── gbk.go │ │ │ │ │ ├── hzgb2312.go │ │ │ │ │ ├── maketables.go │ │ │ │ │ └── tables.go │ │ │ │ ├── traditionalchinese/ │ │ │ │ │ ├── big5.go │ │ │ │ │ ├── maketables.go │ │ │ │ │ └── tables.go │ │ │ │ └── unicode/ │ │ │ │ ├── override.go │ │ │ │ └── unicode.go │ │ │ ├── internal/ │ │ │ │ ├── colltab/ │ │ │ │ │ ├── collelem.go │ │ │ │ │ ├── colltab.go │ │ │ │ │ ├── contract.go │ │ │ │ │ ├── iter.go │ │ │ │ │ ├── numeric.go │ │ │ │ │ ├── table.go │ │ │ │ │ ├── trie.go │ │ │ │ │ └── weighter.go │ │ │ │ ├── gen/ │ │ │ │ │ ├── code.go │ │ │ │ │ └── gen.go │ │ │ │ ├── tag/ │ │ │ │ │ └── tag.go │ │ │ │ ├── triegen/ │ │ │ │ │ ├── compact.go │ │ │ │ │ ├── print.go │ │ │ │ │ └── triegen.go │ │ │ │ ├── ucd/ │ │ │ │ │ └── ucd.go │ │ │ │ └── utf8internal/ │ │ │ │ └── utf8internal.go │ │ │ ├── language/ │ │ │ │ ├── common.go │ │ │ │ ├── coverage.go │ │ │ │ ├── doc.go │ │ │ │ ├── gen.go │ │ │ │ ├── gen_common.go │ │ │ │ ├── gen_index.go │ │ │ │ ├── go1_1.go │ │ │ │ ├── go1_2.go │ │ │ │ ├── index.go │ │ │ │ ├── language.go │ │ │ │ ├── lookup.go │ │ │ │ ├── match.go │ │ │ │ ├── parse.go │ │ │ │ ├── tables.go │ │ │ │ └── tags.go │ │ │ ├── runes/ │ │ │ │ ├── cond.go │ │ │ │ └── runes.go │ │ │ ├── secure/ │ │ │ │ └── bidirule/ │ │ │ │ ├── bidirule.go │ │ │ │ ├── bidirule10.0.0.go │ │ │ │ └── bidirule9.0.0.go │ │ │ ├── transform/ │ │ │ │ └── transform.go │ │ │ └── unicode/ │ │ │ ├── bidi/ │ │ │ │ ├── bidi.go │ │ │ │ ├── bracket.go │ │ │ │ ├── core.go │ │ │ │ ├── gen.go │ │ │ │ ├── gen_ranges.go │ │ │ │ ├── gen_trieval.go │ │ │ │ ├── prop.go │ │ │ │ ├── tables10.0.0.go │ │ │ │ ├── tables9.0.0.go │ │ │ │ └── trieval.go │ │ │ ├── cldr/ │ │ │ │ ├── base.go │ │ │ │ ├── cldr.go │ │ │ │ ├── collate.go │ │ │ │ ├── decode.go │ │ │ │ ├── makexml.go │ │ │ │ ├── resolve.go │ │ │ │ ├── slice.go │ │ │ │ └── xml.go │ │ │ ├── norm/ │ │ │ │ ├── composition.go │ │ │ │ ├── forminfo.go │ │ │ │ ├── input.go │ │ │ │ ├── iter.go │ │ │ │ ├── maketables.go │ │ │ │ ├── normalize.go │ │ │ │ ├── readwriter.go │ │ │ │ ├── tables10.0.0.go │ │ │ │ ├── tables9.0.0.go │ │ │ │ ├── transform.go │ │ │ │ ├── trie.go │ │ │ │ └── triegen.go │ │ │ └── rangetable/ │ │ │ ├── gen.go │ │ │ ├── merge.go │ │ │ ├── rangetable.go │ │ │ ├── tables10.0.0.go │ │ │ └── tables9.0.0.go │ │ ├── time/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ └── rate/ │ │ │ ├── rate.go │ │ │ ├── rate_go16.go │ │ │ └── rate_go17.go │ │ └── tools/ │ │ ├── AUTHORS │ │ ├── CONTRIBUTORS │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── cmd/ │ │ │ └── getgo/ │ │ │ └── LICENSE │ │ ├── go/ │ │ │ └── ast/ │ │ │ └── astutil/ │ │ │ ├── enclosing.go │ │ │ ├── imports.go │ │ │ ├── rewrite.go │ │ │ └── util.go │ │ ├── imports/ │ │ │ ├── fix.go │ │ │ ├── imports.go │ │ │ ├── mkindex.go │ │ │ ├── mkstdlib.go │ │ │ ├── sortimports.go │ │ │ └── zstdlib.go │ │ ├── internal/ │ │ │ ├── fastwalk/ │ │ │ │ ├── fastwalk.go │ │ │ │ ├── fastwalk_dirent_fileno.go │ │ │ │ ├── fastwalk_dirent_ino.go │ │ │ │ ├── fastwalk_dirent_namlen_bsd.go │ │ │ │ ├── fastwalk_dirent_namlen_linux.go │ │ │ │ ├── fastwalk_portable.go │ │ │ │ └── fastwalk_unix.go │ │ │ └── gopathwalk/ │ │ │ └── walk.go │ │ └── third_party/ │ │ ├── moduleloader/ │ │ │ └── LICENSE │ │ ├── typescript/ │ │ │ └── LICENSE │ │ └── webcomponents/ │ │ └── LICENSE │ ├── google.golang.org/ │ │ ├── api/ │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── googleapi/ │ │ │ │ ├── internal/ │ │ │ │ │ └── uritemplates/ │ │ │ │ │ └── LICENSE │ │ │ │ └── transport/ │ │ │ │ └── apikey.go │ │ │ ├── internal/ │ │ │ │ ├── creds.go │ │ │ │ ├── pool.go │ │ │ │ └── settings.go │ │ │ ├── iterator/ │ │ │ │ └── iterator.go │ │ │ ├── option/ │ │ │ │ ├── credentials_go19.go │ │ │ │ ├── credentials_notgo19.go │ │ │ │ └── option.go │ │ │ ├── support/ │ │ │ │ └── bundler/ │ │ │ │ └── bundler.go │ │ │ └── transport/ │ │ │ ├── dial.go │ │ │ ├── go19.go │ │ │ ├── grpc/ │ │ │ │ ├── dial.go │ │ │ │ ├── dial_appengine.go │ │ │ │ ├── go18.go │ │ │ │ └── not_go18.go │ │ │ ├── http/ │ │ │ │ ├── dial.go │ │ │ │ ├── dial_appengine.go │ │ │ │ ├── go18.go │ │ │ │ ├── internal/ │ │ │ │ │ └── propagation/ │ │ │ │ │ └── http.go │ │ │ │ └── not_go18.go │ │ │ └── not_go19.go │ │ ├── appengine/ │ │ │ ├── LICENSE │ │ │ ├── appengine.go │ │ │ ├── appengine_vm.go │ │ │ ├── errors.go │ │ │ ├── identity.go │ │ │ ├── internal/ │ │ │ │ ├── api.go │ │ │ │ ├── api_classic.go │ │ │ │ ├── api_common.go │ │ │ │ ├── app_id.go │ │ │ │ ├── app_identity/ │ │ │ │ │ └── app_identity_service.pb.go │ │ │ │ ├── base/ │ │ │ │ │ └── api_base.pb.go │ │ │ │ ├── datastore/ │ │ │ │ │ └── datastore_v3.pb.go │ │ │ │ ├── identity.go │ │ │ │ ├── identity_classic.go │ │ │ │ ├── identity_flex.go │ │ │ │ ├── identity_vm.go │ │ │ │ ├── internal.go │ │ │ │ ├── log/ │ │ │ │ │ └── log_service.pb.go │ │ │ │ ├── main.go │ │ │ │ ├── main_vm.go │ │ │ │ ├── metadata.go │ │ │ │ ├── modules/ │ │ │ │ │ └── modules_service.pb.go │ │ │ │ ├── net.go │ │ │ │ ├── remote_api/ │ │ │ │ │ └── remote_api.pb.go │ │ │ │ ├── socket/ │ │ │ │ │ └── socket_service.pb.go │ │ │ │ ├── transaction.go │ │ │ │ └── urlfetch/ │ │ │ │ └── urlfetch_service.pb.go │ │ │ ├── namespace.go │ │ │ ├── socket/ │ │ │ │ ├── doc.go │ │ │ │ ├── socket_classic.go │ │ │ │ └── socket_vm.go │ │ │ ├── timeout.go │ │ │ └── urlfetch/ │ │ │ └── urlfetch.go │ │ ├── genproto/ │ │ │ ├── LICENSE │ │ │ ├── googleapis/ │ │ │ │ ├── api/ │ │ │ │ │ └── annotations/ │ │ │ │ │ ├── annotations.pb.go │ │ │ │ │ └── http.pb.go │ │ │ │ ├── iam/ │ │ │ │ │ └── v1/ │ │ │ │ │ ├── iam_policy.pb.go │ │ │ │ │ └── policy.pb.go │ │ │ │ ├── pubsub/ │ │ │ │ │ └── v1/ │ │ │ │ │ └── pubsub.pb.go │ │ │ │ └── rpc/ │ │ │ │ └── status/ │ │ │ │ └── status.pb.go │ │ │ └── protobuf/ │ │ │ └── field_mask/ │ │ │ └── field_mask.pb.go │ │ └── grpc/ │ │ ├── AUTHORS │ │ ├── LICENSE │ │ ├── backoff.go │ │ ├── balancer/ │ │ │ ├── balancer.go │ │ │ ├── base/ │ │ │ │ ├── balancer.go │ │ │ │ └── base.go │ │ │ └── roundrobin/ │ │ │ └── roundrobin.go │ │ ├── balancer.go │ │ ├── balancer_conn_wrappers.go │ │ ├── balancer_v1_wrapper.go │ │ ├── call.go │ │ ├── clientconn.go │ │ ├── codec.go │ │ ├── codes/ │ │ │ ├── code_string.go │ │ │ └── codes.go │ │ ├── connectivity/ │ │ │ └── connectivity.go │ │ ├── credentials/ │ │ │ ├── credentials.go │ │ │ ├── go16.go │ │ │ ├── go17.go │ │ │ ├── go18.go │ │ │ ├── go19.go │ │ │ └── oauth/ │ │ │ └── oauth.go │ │ ├── dialoptions.go │ │ ├── doc.go │ │ ├── encoding/ │ │ │ ├── encoding.go │ │ │ └── proto/ │ │ │ └── proto.go │ │ ├── go16.go │ │ ├── go17.go │ │ ├── grpclog/ │ │ │ ├── grpclog.go │ │ │ ├── logger.go │ │ │ └── loggerv2.go │ │ ├── interceptor.go │ │ ├── internal/ │ │ │ ├── backoff/ │ │ │ │ └── backoff.go │ │ │ ├── channelz/ │ │ │ │ ├── funcs.go │ │ │ │ ├── types.go │ │ │ │ ├── types_linux.go │ │ │ │ ├── types_nonlinux.go │ │ │ │ ├── util_linux_go19.go │ │ │ │ └── util_nonlinux_pre_go19.go │ │ │ ├── envconfig/ │ │ │ │ └── envconfig.go │ │ │ ├── grpcrand/ │ │ │ │ └── grpcrand.go │ │ │ ├── internal.go │ │ │ └── transport/ │ │ │ ├── bdp_estimator.go │ │ │ ├── controlbuf.go │ │ │ ├── defaults.go │ │ │ ├── flowcontrol.go │ │ │ ├── go16.go │ │ │ ├── go17.go │ │ │ ├── handler_server.go │ │ │ ├── http2_client.go │ │ │ ├── http2_server.go │ │ │ ├── http_util.go │ │ │ ├── log.go │ │ │ └── transport.go │ │ ├── keepalive/ │ │ │ └── keepalive.go │ │ ├── metadata/ │ │ │ └── metadata.go │ │ ├── naming/ │ │ │ ├── dns_resolver.go │ │ │ ├── go17.go │ │ │ ├── go18.go │ │ │ └── naming.go │ │ ├── peer/ │ │ │ └── peer.go │ │ ├── picker_wrapper.go │ │ ├── pickfirst.go │ │ ├── proxy.go │ │ ├── resolver/ │ │ │ ├── dns/ │ │ │ │ ├── dns_resolver.go │ │ │ │ ├── go19.go │ │ │ │ └── pre_go19.go │ │ │ ├── passthrough/ │ │ │ │ └── passthrough.go │ │ │ └── resolver.go │ │ ├── resolver_conn_wrapper.go │ │ ├── rpc_util.go │ │ ├── server.go │ │ ├── service_config.go │ │ ├── stats/ │ │ │ ├── handlers.go │ │ │ └── stats.go │ │ ├── status/ │ │ │ ├── go16.go │ │ │ ├── go17.go │ │ │ └── status.go │ │ ├── stream.go │ │ ├── tap/ │ │ │ └── tap.go │ │ ├── trace.go │ │ └── version.go │ ├── gopkg.in/ │ │ ├── fsnotify.v1/ │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── fen.go │ │ │ ├── fsnotify.go │ │ │ ├── inotify.go │ │ │ ├── inotify_poller.go │ │ │ ├── kqueue.go │ │ │ ├── open_mode_bsd.go │ │ │ ├── open_mode_darwin.go │ │ │ └── windows.go │ │ ├── go-playground/ │ │ │ └── webhooks.v5/ │ │ │ ├── LICENSE │ │ │ ├── github/ │ │ │ │ ├── github.go │ │ │ │ └── payload.go │ │ │ └── testdata/ │ │ │ └── docker/ │ │ │ └── docker_hub_build_notice.json │ │ ├── inf.v0/ │ │ │ ├── LICENSE │ │ │ ├── dec.go │ │ │ └── rounder.go │ │ ├── natefinch/ │ │ │ └── lumberjack.v2/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── chown.go │ │ │ ├── chown_linux.go │ │ │ ├── example_test.go │ │ │ ├── linux_test.go │ │ │ ├── lumberjack.go │ │ │ ├── lumberjack_test.go │ │ │ ├── rotate_test.go │ │ │ └── testing_test.go │ │ ├── tomb.v1/ │ │ │ ├── LICENSE │ │ │ └── tomb.go │ │ └── yaml.v2/ │ │ ├── LICENSE │ │ ├── LICENSE.libyaml │ │ ├── NOTICE │ │ ├── apic.go │ │ ├── decode.go │ │ ├── emitterc.go │ │ ├── encode.go │ │ ├── parserc.go │ │ ├── readerc.go │ │ ├── resolve.go │ │ ├── scannerc.go │ │ ├── sorter.go │ │ ├── writerc.go │ │ ├── yaml.go │ │ ├── yamlh.go │ │ └── yamlprivateh.go │ ├── k8s.io/ │ │ ├── api/ │ │ │ ├── LICENSE │ │ │ ├── admission/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── admissionregistration/ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── apps/ │ │ │ │ ├── v1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── v1beta1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta2/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── authentication/ │ │ │ │ ├── v1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── authorization/ │ │ │ │ ├── v1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── autoscaling/ │ │ │ │ ├── v1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── v2beta1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v2beta2/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── batch/ │ │ │ │ ├── v1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── v1beta1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v2alpha1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── certificates/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── coordination/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── core/ │ │ │ │ └── v1/ │ │ │ │ ├── annotation_key_constants.go │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── objectreference.go │ │ │ │ ├── register.go │ │ │ │ ├── resource.go │ │ │ │ ├── taint.go │ │ │ │ ├── toleration.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── events/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── extensions/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── networking/ │ │ │ │ └── v1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── policy/ │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── rbac/ │ │ │ │ ├── v1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── v1alpha1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── scheduling/ │ │ │ │ ├── v1alpha1/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ └── v1beta1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── settings/ │ │ │ │ └── v1alpha1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ └── storage/ │ │ │ ├── v1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ ├── v1alpha1/ │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ └── zz_generated.deepcopy.go │ │ │ └── v1beta1/ │ │ │ ├── doc.go │ │ │ ├── generated.pb.go │ │ │ ├── register.go │ │ │ ├── types.go │ │ │ ├── types_swagger_doc_generated.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── apiextensions-apiserver/ │ │ │ ├── LICENSE │ │ │ └── pkg/ │ │ │ └── apis/ │ │ │ └── apiextensions/ │ │ │ ├── deepcopy.go │ │ │ ├── doc.go │ │ │ ├── helpers.go │ │ │ ├── register.go │ │ │ ├── types.go │ │ │ ├── types_jsonschema.go │ │ │ ├── v1beta1/ │ │ │ │ ├── conversion.go │ │ │ │ ├── deepcopy.go │ │ │ │ ├── defaults.go │ │ │ │ ├── doc.go │ │ │ │ ├── generated.pb.go │ │ │ │ ├── marshal.go │ │ │ │ ├── register.go │ │ │ │ ├── types.go │ │ │ │ ├── types_jsonschema.go │ │ │ │ ├── zz_generated.conversion.go │ │ │ │ ├── zz_generated.deepcopy.go │ │ │ │ └── zz_generated.defaults.go │ │ │ └── zz_generated.deepcopy.go │ │ ├── apimachinery/ │ │ │ ├── LICENSE │ │ │ ├── pkg/ │ │ │ │ ├── api/ │ │ │ │ │ ├── equality/ │ │ │ │ │ │ └── semantic.go │ │ │ │ │ ├── errors/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ └── errors.go │ │ │ │ │ ├── meta/ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── errors.go │ │ │ │ │ │ ├── firsthit_restmapper.go │ │ │ │ │ │ ├── help.go │ │ │ │ │ │ ├── interfaces.go │ │ │ │ │ │ ├── lazy.go │ │ │ │ │ │ ├── meta.go │ │ │ │ │ │ ├── multirestmapper.go │ │ │ │ │ │ ├── priority.go │ │ │ │ │ │ └── restmapper.go │ │ │ │ │ ├── resource/ │ │ │ │ │ │ ├── amount.go │ │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ │ ├── math.go │ │ │ │ │ │ ├── quantity.go │ │ │ │ │ │ ├── quantity_proto.go │ │ │ │ │ │ ├── scale_int.go │ │ │ │ │ │ ├── suffix.go │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ └── validation/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generic.go │ │ │ │ │ └── objectmeta.go │ │ │ │ ├── apis/ │ │ │ │ │ └── meta/ │ │ │ │ │ ├── internalversion/ │ │ │ │ │ │ ├── conversion.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ ├── types.go │ │ │ │ │ │ ├── zz_generated.conversion.go │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ ├── v1/ │ │ │ │ │ │ ├── controller_ref.go │ │ │ │ │ │ ├── conversion.go │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── duration.go │ │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ │ ├── group_version.go │ │ │ │ │ │ ├── helpers.go │ │ │ │ │ │ ├── labels.go │ │ │ │ │ │ ├── meta.go │ │ │ │ │ │ ├── micro_time.go │ │ │ │ │ │ ├── micro_time_proto.go │ │ │ │ │ │ ├── register.go │ │ │ │ │ │ ├── time.go │ │ │ │ │ │ ├── time_proto.go │ │ │ │ │ │ ├── types.go │ │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ │ ├── unstructured/ │ │ │ │ │ │ │ ├── helpers.go │ │ │ │ │ │ │ ├── unstructured.go │ │ │ │ │ │ │ ├── unstructured_list.go │ │ │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ │ │ ├── validation/ │ │ │ │ │ │ │ └── validation.go │ │ │ │ │ │ ├── watch.go │ │ │ │ │ │ ├── zz_generated.deepcopy.go │ │ │ │ │ │ └── zz_generated.defaults.go │ │ │ │ │ └── v1beta1/ │ │ │ │ │ ├── conversion.go │ │ │ │ │ ├── deepcopy.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_swagger_doc_generated.go │ │ │ │ │ ├── zz_generated.deepcopy.go │ │ │ │ │ └── zz_generated.defaults.go │ │ │ │ ├── conversion/ │ │ │ │ │ ├── converter.go │ │ │ │ │ ├── deep_equal.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── helper.go │ │ │ │ │ └── queryparams/ │ │ │ │ │ ├── convert.go │ │ │ │ │ └── doc.go │ │ │ │ ├── fields/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fields.go │ │ │ │ │ ├── requirements.go │ │ │ │ │ └── selector.go │ │ │ │ ├── labels/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── labels.go │ │ │ │ │ ├── selector.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── runtime/ │ │ │ │ │ ├── codec.go │ │ │ │ │ ├── codec_check.go │ │ │ │ │ ├── conversion.go │ │ │ │ │ ├── converter.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── embedded.go │ │ │ │ │ ├── error.go │ │ │ │ │ ├── extension.go │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ ├── helper.go │ │ │ │ │ ├── interfaces.go │ │ │ │ │ ├── register.go │ │ │ │ │ ├── schema/ │ │ │ │ │ │ ├── generated.pb.go │ │ │ │ │ │ ├── group_version.go │ │ │ │ │ │ └── interfaces.go │ │ │ │ │ ├── scheme.go │ │ │ │ │ ├── scheme_builder.go │ │ │ │ │ ├── serializer/ │ │ │ │ │ │ ├── codec_factory.go │ │ │ │ │ │ ├── json/ │ │ │ │ │ │ │ ├── json.go │ │ │ │ │ │ │ └── meta.go │ │ │ │ │ │ ├── negotiated_codec.go │ │ │ │ │ │ ├── protobuf/ │ │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ │ └── protobuf.go │ │ │ │ │ │ ├── protobuf_extension.go │ │ │ │ │ │ ├── recognizer/ │ │ │ │ │ │ │ └── recognizer.go │ │ │ │ │ │ ├── streaming/ │ │ │ │ │ │ │ └── streaming.go │ │ │ │ │ │ └── versioning/ │ │ │ │ │ │ └── versioning.go │ │ │ │ │ ├── swagger_doc_generator.go │ │ │ │ │ ├── types.go │ │ │ │ │ ├── types_proto.go │ │ │ │ │ └── zz_generated.deepcopy.go │ │ │ │ ├── selection/ │ │ │ │ │ └── operator.go │ │ │ │ ├── types/ │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── namespacedname.go │ │ │ │ │ ├── nodename.go │ │ │ │ │ ├── patch.go │ │ │ │ │ └── uid.go │ │ │ │ ├── util/ │ │ │ │ │ ├── cache/ │ │ │ │ │ │ ├── cache.go │ │ │ │ │ │ └── lruexpirecache.go │ │ │ │ │ ├── clock/ │ │ │ │
Copy disabled (too large)
Download .txt
Showing preview only (12,508K chars total). Download the full file to get everything.
SYMBOL INDEX (148868 symbols across 3888 files)
FILE: dev/merge_rocketmq_pr.py
function get_json (line 69) | def get_json(url):
function fail (line 85) | def fail(msg):
function run_cmd (line 91) | def run_cmd(cmd):
function continue_maybe (line 99) | def continue_maybe(prompt):
function clean_up (line 105) | def clean_up():
function merge_pr (line 117) | def merge_pr(pr_num, target_ref, title, body, pr_repo_desc):
function cherry_pick (line 184) | def cherry_pick(pr_num, merge_hash, default_branch):
function fix_version_from_branch (line 219) | def fix_version_from_branch(branch, versions):
function resolve_jira_issue (line 228) | def resolve_jira_issue(merge_branches, comment, default_jira_id=""):
function resolve_jira_issues (line 293) | def resolve_jira_issues(title, merge_branches, comment):
function standardize_jira_ref (line 302) | def standardize_jira_ref(text):
function get_current_ref (line 344) | def get_current_ref():
function main (line 353) | def main():
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/common/ProducerInstance.java
class ProducerInstance (line 31) | public class ProducerInstance {
method getProducerInstance (line 47) | public static ProducerInstance getProducerInstance() {
method genKey (line 51) | private String genKey(String nameServerAddress, String group) {
method getInstance (line 55) | public MQProducer getInstance(String nameServerAddress, String group) ...
method removeAndClose (line 77) | public void removeAndClose(String nameServerAddress, String group) {
method closeAll (line 89) | public void closeAll() {
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/log4j/RocketmqLog4jAppender.java
class RocketmqLog4jAppender (line 30) | public class RocketmqLog4jAppender extends AppenderSkeleton {
method RocketmqLog4jAppender (line 59) | public RocketmqLog4jAppender() {
method activateOptions (line 62) | public void activateOptions() {
method append (line 77) | public void append(LoggingEvent event) {
method checkEntryConditions (line 98) | protected boolean checkEntryConditions() {
method close (line 118) | public synchronized void close() {
method requiresLayout (line 136) | public boolean requiresLayout() {
method getTopic (line 140) | public String getTopic() {
method setTopic (line 144) | public void setTopic(String topic) {
method getTag (line 148) | public String getTag() {
method setTag (line 152) | public void setTag(String tag) {
method isLocationInfo (line 161) | public boolean isLocationInfo() {
method setLocationInfo (line 170) | public void setLocationInfo(boolean locationInfo) {
method getProducer (line 178) | protected MQProducer getProducer() {
method setNameServerAddress (line 182) | public void setNameServerAddress(String nameServerAddress) {
method setProducerGroup (line 186) | public void setProducerGroup(String producerGroup) {
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/log4j2/RocketmqLog4j2Appender.java
class RocketmqLog4j2Appender (line 42) | @Plugin(name = "RocketMQ",
method RocketmqLog4j2Appender (line 73) | protected RocketmqLog4j2Appender(String name, Filter filter, Layout<? ...
method append (line 96) | public void append(LogEvent event) {
method stop (line 120) | public boolean stop(long timeout, TimeUnit timeUnit) {
method newBuilder (line 140) | @PluginBuilderFactory
class Builder (line 148) | public static class Builder implements org.apache.logging.log4j.core.u...
method Builder (line 176) | private Builder() {
method setName (line 181) | public RocketmqLog4j2Appender.Builder setName(String name) {
method setLayout (line 186) | public RocketmqLog4j2Appender.Builder setLayout(Layout<? extends Ser...
method setFilter (line 191) | public RocketmqLog4j2Appender.Builder setFilter(Filter filter) {
method setIgnoreExceptions (line 196) | public RocketmqLog4j2Appender.Builder setIgnoreExceptions(boolean ig...
method setTag (line 201) | public RocketmqLog4j2Appender.Builder setTag(final String tag) {
method setTopic (line 206) | public RocketmqLog4j2Appender.Builder setTopic(final String topic) {
method setNameServerAddress (line 211) | public RocketmqLog4j2Appender.Builder setNameServerAddress(String na...
method setProducerGroup (line 216) | public RocketmqLog4j2Appender.Builder setProducerGroup(String produc...
method build (line 221) | public RocketmqLog4j2Appender build() {
FILE: logappender/src/main/java/org/apache/rocketmq/logappender/logback/RocketmqLogbackAppender.java
class RocketmqLogbackAppender (line 32) | public class RocketmqLogbackAppender extends AppenderBase<ILoggingEvent> {
method append (line 66) | @Override
method start (line 86) | public void start() {
method stop (line 111) | public synchronized void stop() {
method checkEntryConditions (line 130) | protected boolean checkEntryConditions() {
method getLayout (line 145) | public Layout getLayout() {
method setLayout (line 152) | public void setLayout(Layout layout) {
method getTag (line 156) | public String getTag() {
method setTag (line 160) | public void setTag(String tag) {
method getTopic (line 164) | public String getTopic() {
method setTopic (line 168) | public void setTopic(String topic) {
method setNameServerAddress (line 172) | public void setNameServerAddress(String nameServerAddress) {
method setProducerGroup (line 176) | public void setProducerGroup(String producerGroup) {
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/AbstractTestCase.java
class AbstractTestCase (line 36) | public class AbstractTestCase {
method mockLoggerAppender (line 40) | @Before
method clear (line 58) | public void clear() {
method consumeMessages (line 62) | protected int consumeMessages(int count, final String key, int timeout) {
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/Log4jPropertiesTest.java
class Log4jPropertiesTest (line 21) | public class Log4jPropertiesTest extends Log4jTest {
method init (line 23) | @Override
method getType (line 28) | @Override
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/Log4jTest.java
class Log4jTest (line 24) | public abstract class Log4jTest extends AbstractTestCase {
method init (line 26) | @Before
method getType (line 29) | public abstract String getType();
method testLog4j (line 31) | @Test
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/Log4jXmlTest.java
class Log4jXmlTest (line 21) | public class Log4jXmlTest extends Log4jTest {
method init (line 23) | @Override
method getType (line 28) | @Override
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/LogbackTest.java
class LogbackTest (line 30) | public class LogbackTest extends AbstractTestCase {
method init (line 32) | @Before
method testLogback (line 42) | @Test
FILE: logappender/src/test/java/org/apache/rocketmq/logappender/log4j2Test.java
class log4j2Test (line 27) | public class log4j2Test extends AbstractTestCase {
method init (line 29) | @Before
method testLog4j2 (line 34) | @Test
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/client.go
type client (line 32) | type client struct
method Connect (line 46) | func (c *client) Connect() error {
method Close (line 71) | func (c *client) Close() error {
method Publish (line 81) | func (c *client) Publish(_ context.Context, batch publisher.Batch) err...
method publishEvent (line 101) | func (c *client) publishEvent(event *publisher.Event) bool {
method String (line 155) | func (c *client) String() string {
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/config.go
type rocketmqConfig (line 25) | type rocketmqConfig struct
function defaultConfig (line 40) | func defaultConfig() rocketmqConfig {
function readConfig (line 50) | func readConfig(cfg *common.Config) (*rocketmqConfig, error) {
FILE: rocketmq-beats-integration/libbeat/outputs/rocketmq/rocketmq.go
constant logSelector (line 27) | logSelector = "rocketmq"
function init (line 30) | func init() {
function makeRocketmq (line 34) | func makeRocketmq(
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/RocketMQMessageFactory.java
class RocketMQMessageFactory (line 36) | @ParametersAreNonnullByDefault
method RocketMQMessageFactory (line 39) | private RocketMQMessageFactory() {
method createReader (line 43) | public static MessageReader createReader(final Message message) throws...
method createReader (line 48) | public static MessageReader createReader(final Map<String, String> pro...
method createWriter (line 59) | public static MessageWriter<CloudEventWriter<Message>, Message> create...
method createWriter (line 63) | public static MessageWriter<CloudEventWriter<Message>, Message> create...
method createWriter (line 67) | public static MessageWriter<CloudEventWriter<Message>, Message> create...
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQBinaryMessageReader.java
class RocketMQBinaryMessageReader (line 28) | public class RocketMQBinaryMessageReader extends BaseGenericBinaryMessag...
method RocketMQBinaryMessageReader (line 32) | public RocketMQBinaryMessageReader(SpecVersion version, Map<String, St...
method isContentTypeHeader (line 39) | @Override
method isCloudEventsHeader (line 44) | @Override
method toCloudEventsKey (line 49) | @Override
method forEachHeader (line 54) | @Override
method toCloudEventsValue (line 59) | @Override
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQHeaders.java
class RocketMQHeaders (line 24) | public class RocketMQHeaders {
FILE: rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQMessageWriter.java
class RocketMQMessageWriter (line 29) | public final class RocketMQMessageWriter<R> implements MessageWriter<Clo...
method RocketMQMessageWriter (line 34) | public RocketMQMessageWriter(String topic) {
method RocketMQMessageWriter (line 39) | public RocketMQMessageWriter(String topic, String keys) {
method RocketMQMessageWriter (line 49) | public RocketMQMessageWriter(String topic, String keys, String tags) {
method withContextAttribute (line 64) | @Override
method create (line 75) | @Override
method setEvent (line 81) | @Override
method end (line 88) | @Override
method end (line 94) | @Override
FILE: rocketmq-cloudevents-binding/src/test/java/org/apache/rocketmq/cloudevent/RocketMQMessageWriterTest.java
class RocketMQMessageWriterTest (line 41) | public class RocketMQMessageWriterTest {
method testRequestWithStructured (line 48) | @ParameterizedTest
method testRequestWithBinary (line 72) | @ParameterizedTest
method binaryTestArguments (line 98) | private static Stream<Arguments> binaryTestArguments() {
method property (line 258) | private static final AbstractMap.SimpleEntry<String, String> property(...
method properties (line 264) | @SafeVarargs
FILE: rocketmq-cloudevents-binding/src/test/java/org/apache/rocketmq/cloudevent/RocketmqMessageFactoryTest.java
class RocketmqMessageFactoryTest (line 43) | public class RocketmqMessageFactoryTest {
method readBinary (line 49) | @ParameterizedTest()
method readStructured (line 59) | @ParameterizedTest()
method binaryTestArguments (line 71) | private static Stream<Arguments> binaryTestArguments() {
method property (line 225) | private static final AbstractMap.SimpleEntry<String, String> property(...
method properties (line 231) | @SafeVarargs
FILE: rocketmq-flume/rocketmq-flume-sink/src/main/java/org/apache/rocketmq/flume/ng/sink/RocketMQSink.java
class RocketMQSink (line 58) | public class RocketMQSink extends AbstractSink implements Configurable {
method configure (line 74) | @Override
method start (line 93) | @Override
method process (line 113) | @Override
method stop (line 198) | @Override public synchronized void stop() {
class SendCallBackHandler (line 207) | public class SendCallBackHandler implements SendCallback {
method SendCallBackHandler (line 213) | SendCallBackHandler(Message message, CountDownLatch latch, AtomicInt...
method onSuccess (line 219) | @Override
method onException (line 233) | @Override
FILE: rocketmq-flume/rocketmq-flume-sink/src/main/java/org/apache/rocketmq/flume/ng/sink/RocketMQSinkConstants.java
class RocketMQSinkConstants (line 23) | public class RocketMQSinkConstants {
FILE: rocketmq-flume/rocketmq-flume-sink/src/test/java/org/apache/rocketmq/flume/ng/sink/RocketMQSinkTest.java
class RocketMQSinkTest (line 70) | public class RocketMQSinkTest {
method startMQ (line 84) | @BeforeClass
method startNamesrv (line 100) | private static void startNamesrv() throws Exception {
method startBroker (line 115) | private static void startBroker() throws Exception {
method testEvent (line 136) | @Test
method testBatchEvent (line 206) | @Test
method testNullEvent (line 293) | @Test
method getMessageQueueOffset (line 316) | private long getMessageQueueOffset(MessageQueue queue) throws MQClient...
method putMessageQueueOffset (line 326) | private void putMessageQueueOffset(MessageQueue queue, long offset) th...
method stop (line 330) | @AfterClass
FILE: rocketmq-flume/rocketmq-flume-source/src/main/java/org/apache/rocketmq/flume/ng/source/RocketMQSource.java
class RocketMQSource (line 57) | public class RocketMQSource extends AbstractPollableSource implements Co...
method doConfigure (line 73) | @Override protected void doConfigure(Context context) throws FlumeExce...
method doStart (line 91) | @Override
method doProcess (line 109) | @Override
method doStop (line 152) | @Override
FILE: rocketmq-flume/rocketmq-flume-source/src/main/java/org/apache/rocketmq/flume/ng/source/RocketMQSourceConstants.java
class RocketMQSourceConstants (line 23) | public class RocketMQSourceConstants {
FILE: rocketmq-flume/rocketmq-flume-source/src/test/java/org/apache/rocketmq/flume/ng/source/RocketMQSourceTest.java
class RocketMQSourceTest (line 69) | public class RocketMQSourceTest {
method startMQ (line 81) | @BeforeClass
method startNamesrv (line 97) | private static void startNamesrv() throws Exception {
method startBroker (line 112) | private static void startBroker() throws Exception {
method testEvent (line 133) | @Test
method stop (line 199) | @AfterClass
FILE: rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/DataRow.java
class DataRow (line 34) | public class DataRow {
method DataRow (line 53) | public DataRow(String type, String table, byte[] row, List<Cell> cells) {
method toMap (line 65) | public Map<String, Object> toMap() {
FILE: rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/Replicator.java
class Replicator (line 43) | public class Replicator extends BaseReplicationEndpoint {
method Replicator (line 66) | public Replicator() {
method init (line 73) | @Override
method doStart (line 82) | @Override
method doStop (line 120) | @Override
method getPeerUUID (line 131) | @Override
method replicate (line 139) | @Override
FILE: rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/RocketMQProducer.java
class RocketMQProducer (line 29) | public class RocketMQProducer {
method RocketMQProducer (line 46) | public RocketMQProducer(String namesrvAddr, String topic) {
method start (line 56) | public void start() throws MQClientException {
method push (line 70) | public long push(String json) throws Exception {
method stop (line 82) | public void stop() {
FILE: rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/Transaction.java
class Transaction (line 32) | public class Transaction {
method Transaction (line 43) | public Transaction(int maxTransactionRows) {
method addRow (line 55) | public boolean addRow(String tableName, byte[] rowKey, List<Cell> cell...
method toJson (line 103) | public String toJson() {
FILE: rocketmq-hbase/rocketmq-hbase-sink/src/test/java/org/apache/rocketmq/sink/ReplicatorTest.java
class ReplicatorTest (line 75) | public class ReplicatorTest {
method setUp (line 110) | @Before
method addRocketMQProperties (line 134) | private void addRocketMQProperties(Configuration hbaseConf) {
method addPeer (line 147) | private void addPeer(final Configuration configuration, String peerNam...
method startMQ (line 163) | private static void startMQ() throws Exception {
method startNamesrv (line 175) | private static void startNamesrv() throws Exception {
method startBroker (line 195) | private static void startBroker() throws Exception {
method testCustomReplicationEndpoint (line 225) | @Test
method getMessageQueueOffset (line 293) | private long getMessageQueueOffset(DefaultMQPullConsumer consumer, Mes...
method createTestTable (line 306) | private void createTestTable() throws IOException {
method insertData (line 322) | private Transaction insertData(int numberOfRecords) throws IOException {
method removePeer (line 345) | private void removePeer() throws IOException, ReplicationException {
method tearDown (line 356) | @After
FILE: rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/Config.java
class Config (line 30) | public class Config {
method load (line 55) | public void load() throws IOException {
method properties2Object (line 69) | private void properties2Object(final Properties p, final Object object) {
method getNameserver (line 109) | public String getNameserver() {
method getConsumerGroup (line 113) | public String getConsumerGroup() {
method getMessageModel (line 117) | public String getMessageModel() {
method getTopics (line 121) | public Set<String> getTopics() {
method getZookeeperAddress (line 128) | public String getZookeeperAddress() {
method getZookeeperPort (line 132) | public int getZookeeperPort() {
method getPullInterval (line 136) | public long getPullInterval() {
method getBatchSize (line 140) | public int getBatchSize() {
method setNameserver (line 144) | public void setNameserver(String nameserver) {
method setConsumerGroup (line 148) | public void setConsumerGroup(String consumerGroup) {
method setMessageModel (line 152) | public void setMessageModel(String messageModel) {
method setTopics (line 156) | public void setTopics(String topics) {
method setZookeeperAddress (line 160) | public void setZookeeperAddress(String zookeeperAddress) {
method setZookeeperPort (line 164) | public void setZookeeperPort(int zookeeperPort) {
method setPullInterval (line 168) | public void setPullInterval(long pullInterval) {
method setBatchSize (line 172) | public void setBatchSize(int batchSize) {
FILE: rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/HBaseClient.java
class HBaseClient (line 38) | public class HBaseClient {
method HBaseClient (line 55) | public HBaseClient(Config config) {
method start (line 65) | public void start() throws IOException {
method put (line 80) | public void put(String tableName, List<MessageExt> messages) throws IO...
method stop (line 100) | public void stop() throws IOException {
FILE: rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/MessageProcessor.java
class MessageProcessor (line 31) | public class MessageProcessor implements Runnable {
method MessageProcessor (line 48) | public MessageProcessor(Config config) {
method start (line 60) | public void start() throws MQClientException, IOException {
method run (line 73) | @Override
method stop (line 105) | public void stop() {
FILE: rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/RocketMQConsumer.java
class RocketMQConsumer (line 38) | public class RocketMQConsumer {
method RocketMQConsumer (line 59) | public RocketMQConsumer(Config config) {
method start (line 72) | public void start() throws MQClientException {
method pull (line 90) | public Map<String, List<MessageExt>> pull() throws MQClientException, ...
method getMessageQueueOffset (line 110) | private long getMessageQueueOffset(MessageQueue queue) throws MQClient...
method stop (line 122) | public void stop() {
FILE: rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/RocketMQSource.java
class RocketMQSource (line 27) | public class RocketMQSource {
method main (line 33) | public static void main(String[] args) {
method execute (line 41) | public void execute() {
FILE: rocketmq-hbase/rocketmq-hbase-source/src/test/java/org/apache/rocketmq/hbase/source/RocketMQSourceTest.java
class RocketMQSourceTest (line 61) | public class RocketMQSourceTest {
method setUp (line 81) | @Before
method testRocketMQSource (line 96) | @Test
method tearDown (line 140) | @After
method createTable (line 160) | private void createTable() throws IOException {
method writeData (line 179) | private String writeData(String inMsg) throws MQClientException, Unsup...
method readData (line 202) | private String readData(String row) throws IOException {
method startMQ (line 217) | private static void startMQ() throws Exception {
method startNamesrv (line 229) | private static void startNamesrv() throws Exception {
method startBroker (line 249) | private static void startBroker() throws Exception {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/MQTTBridge.java
class MQTTBridge (line 48) | public class MQTTBridge {
method MQTTBridge (line 59) | public MQTTBridge() {
method init (line 63) | private void init() {
method registerMessageHandlers (line 88) | private void registerMessageHandlers() {
method start (line 102) | public void start() {
method shutdown (line 115) | public void shutdown() {
method main (line 120) | public static void main(String [] args) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/configuration/ChannelConfiguration.java
class ChannelConfiguration (line 22) | public class ChannelConfiguration {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/configuration/MQTTBridgeConfiguration.java
class MQTTBridgeConfiguration (line 22) | public class MQTTBridgeConfiguration {
method port (line 35) | public static Integer port() {
method host (line 39) | public static String host() {
method socketBacklog (line 43) | public static Integer socketBacklog() {
method threadNumOfBossGroup (line 47) | public static Integer threadNumOfBossGroup() {
method threadNumOfWorkerGroup (line 51) | public static Integer threadNumOfWorkerGroup() {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/data/Message.java
class Message (line 23) | public class Message {
type Type (line 25) | public enum Type {
method getId (line 50) | public String getId() {
method setId (line 54) | public void setId(String id) {
method getHeaders (line 58) | public Map<String, String> getHeaders() {
method setHeaders (line 62) | public void setHeaders(Map<String, String> headers) {
method getType (line 66) | public Type getType() {
method setType (line 70) | public void setType(Type type) {
method getPayload (line 74) | public Object getPayload() {
method setPayload (line 78) | public void setPayload(Object payload) {
method getClient (line 82) | public Client getClient() {
method setClient (line 86) | public void setClient(Client client) {
method getTopic (line 90) | public String getTopic() {
method setTopic (line 94) | public void setTopic(String topic) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/util/MessageUtil.java
class MessageUtil (line 42) | public class MessageUtil {
method getMqttSubackMessage (line 54) | public static MqttSubAckMessage getMqttSubackMessage(MqttSubscribeMess...
method getMqttPublishMessage (line 67) | public static MqttPublishMessage getMqttPublishMessage(Message message...
method getMqttConnackMessage (line 84) | public static MqttConnAckMessage getMqttConnackMessage(MqttConnectMess...
method getMqttPubackMessage (line 99) | public static MqttPubAckMessage getMqttPubackMessage(MqttPublishMessag...
method getMqttPubrecMessage (line 112) | public static MqttMessage getMqttPubrecMessage(MqttPublishMessage mess...
method getMqttPubrelMessage (line 123) | public static MqttMessage getMqttPubrelMessage(MqttMessage message) {
method getMqttPubcompMessage (line 135) | public static MqttMessage getMqttPubcompMessage(MqttMessage message) {
method getMqttPingrespMessage (line 147) | public static MqttMessage getMqttPingrespMessage(MqttMessage message) {
method getMqttUnsubackMessage (line 159) | public static MqttUnsubAckMessage getMqttUnsubackMessage(MqttUnsubscri...
method actualQos (line 171) | public static int actualQos(int qos) {
method getMessage (line 175) | public static Message getMessage(MqttMessage mqttMessage) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/connection/client/Client.java
class Client (line 22) | public class Client {
method getId (line 30) | public String getId() {
method setId (line 34) | public void setId(String id) {
method getCtx (line 38) | public ChannelHandlerContext getCtx() {
method setCtx (line 42) | public void setCtx(ChannelHandlerContext ctx) {
method isConnected (line 46) | public boolean isConnected() {
method setConnected (line 50) | public void setConnected(boolean connected) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/connection/client/ClientManager.java
type ClientManager (line 22) | public interface ClientManager {
method get (line 29) | public Client get(Channel channel);
method put (line 36) | public void put(Channel channel, Client client);
method remove (line 43) | public Client remove(Channel channel);
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/connection/client/impl/ClientManagerImpl.java
class ClientManagerImpl (line 26) | public class ClientManagerImpl implements ClientManager {
method get (line 30) | @Override public Client get(Channel channel) {
method put (line 34) | @Override public void put(Channel channel, Client client) {
method remove (line 38) | @Override public Client remove(Channel channel) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/example/MqttSampleConsumer.java
class MqttSampleConsumer (line 30) | public class MqttSampleConsumer {
method main (line 34) | public static void main(String[] args) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/example/MqttSampleProducer.java
class MqttSampleProducer (line 28) | public class MqttSampleProducer {
method main (line 32) | public static void main(String[] args) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/constant/MqttConstant.java
class MqttConstant (line 20) | public class MqttConstant {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/data/Bridge.java
class Bridge (line 22) | public class Bridge {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/data/MqttClient.java
class MqttClient (line 22) | public class MqttClient extends Client {
method isCleanSession (line 26) | public boolean isCleanSession() {
method setCleanSession (line 30) | public void setCleanSession(boolean cleanSession) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/data/Subscription.java
class Subscription (line 20) | public class Subscription {
method getClient (line 29) | public MqttClient getClient() {
method getQos (line 33) | public int getQos() {
method getId (line 37) | public String getId() {
class Builder (line 41) | public static class Builder {
method build (line 44) | public Subscription build() {
method client (line 48) | public Builder client(MqttClient client) {
method qos (line 53) | public Builder qos(int qos) {
method newBuilder (line 57) | public static Builder newBuilder() {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/event/DisconnectChannelEvent.java
class DisconnectChannelEvent (line 22) | public class DisconnectChannelEvent {
method DisconnectChannelEvent (line 25) | public DisconnectChannelEvent(Channel channel) {
method getChannel (line 29) | public Channel getChannel() {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MessageDispatcher.java
class MessageDispatcher (line 32) | @ChannelHandler.Sharable
method MessageDispatcher (line 39) | public MessageDispatcher(ClientManager clientManager) {
method registerHandler (line 43) | public void registerHandler(Message.Type type, MessageHandler handler) {
method dispatch (line 47) | private void dispatch(Message message) {
method channelRead0 (line 55) | @Override protected void channelRead0(ChannelHandlerContext ctx, Objec...
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MessageHandler.java
type MessageHandler (line 22) | public interface MessageHandler {
method handleMessage (line 29) | void handleMessage(Message message);
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttConnectionHandler.java
class MqttConnectionHandler (line 34) | @ChannelHandler.Sharable
method MqttConnectionHandler (line 42) | public MqttConnectionHandler(ClientManager clientManager, Subscription...
method userEventTriggered (line 47) | @Override public void userEventTriggered(ChannelHandlerContext ctx, Ob...
method exceptionCaught (line 60) | @Override public void exceptionCaught(ChannelHandlerContext ctx, Throw...
method doDisconnect (line 73) | private void doDisconnect(Channel channel) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttIdleHandler.java
class MqttIdleHandler (line 32) | public class MqttIdleHandler extends ChannelDuplexHandler {
type State (line 46) | public enum State {
method MqttIdleHandler (line 55) | public MqttIdleHandler() {
method MqttIdleHandler (line 58) | public MqttIdleHandler(long allIdleTimeNanos) {
method operationComplete (line 64) | @Override public void operationComplete(ChannelFuture future) throws E...
method handlerAdded (line 70) | @Override public void handlerAdded(ChannelHandlerContext ctx) throws E...
method handlerRemoved (line 76) | @Override public void handlerRemoved(ChannelHandlerContext ctx) throws...
method channelRegistered (line 80) | @Override public void channelRegistered(ChannelHandlerContext ctx) thr...
method channelActive (line 87) | @Override public void channelActive(ChannelHandlerContext ctx) throws ...
method channelInactive (line 92) | @Override public void channelInactive(ChannelHandlerContext ctx) throw...
method channelRead (line 97) | @Override public void channelRead(ChannelHandlerContext ctx, Object ms...
method channelReadComplete (line 105) | @Override public void channelReadComplete(ChannelHandlerContext ctx) t...
method write (line 114) | @Override public void write(ChannelHandlerContext ctx, Object msg, Cha...
method initialize (line 124) | private void initialize(ChannelHandlerContext ctx) {
method destroy (line 138) | private void destroy() {
method reDoInit (line 146) | private void reDoInit(ChannelHandlerContext ctx, Integer idleTime) {
method channelIdle (line 154) | protected void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e...
class AllIdleTimeoutTask (line 158) | private final class AllIdleTimeoutTask implements Runnable {
method AllIdleTimeoutTask (line 162) | public AllIdleTimeoutTask(ChannelHandlerContext ctx) {
method run (line 166) | @Override public void run() {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/SendCallback.java
type SendCallback (line 22) | public interface SendCallback {
method onSuccess (line 27) | void onSuccess(MqttMessage message);
method onException (line 33) | void onException(MqttMessage message, Exception e);
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttConnectMessageHandler.java
class MqttConnectMessageHandler (line 32) | public class MqttConnectMessageHandler implements MessageHandler {
method MqttConnectMessageHandler (line 39) | public MqttConnectMessageHandler(ClientManager clientManager) {
method handleMessage (line 43) | @Override public void handleMessage(Message message) {
method isServiceAviable (line 76) | private boolean isServiceAviable(MqttConnectMessage connectMessage) {
method checkPassword (line 81) | private boolean checkPassword(byte[] bytes) {
method checkUsername (line 85) | private boolean checkUsername(String s) {
method isAuthorized (line 89) | private boolean isAuthorized(MqttConnectMessage message) {
method isClientIdValid (line 93) | private boolean isClientIdValid(String s) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttDisconnectMessageHandler.java
class MqttDisconnectMessageHandler (line 24) | public class MqttDisconnectMessageHandler implements MessageHandler {
method MqttDisconnectMessageHandler (line 28) | public MqttDisconnectMessageHandler(ClientManager clientManager) {
method handleMessage (line 42) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttMessageForwarder.java
class MqttMessageForwarder (line 33) | public class MqttMessageForwarder implements MessageHandler {
method MqttMessageForwarder (line 37) | public MqttMessageForwarder(SubscriptionStore subscriptionStore) {
method handleMessage (line 47) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttMessageSender.java
class MqttMessageSender (line 24) | public class MqttMessageSender implements MessageHandler {
method handleMessage (line 32) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPingreqMessageHandler.java
class MqttPingreqMessageHandler (line 26) | public class MqttPingreqMessageHandler implements MessageHandler {
method handleMessage (line 40) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubackMessageHandler.java
class MqttPubackMessageHandler (line 27) | public class MqttPubackMessageHandler implements MessageHandler {
method MqttPubackMessageHandler (line 31) | public MqttPubackMessageHandler(MessageStore messageStore) {
method handleMessage (line 44) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubcompMessageHandler.java
class MqttPubcompMessageHandler (line 23) | public class MqttPubcompMessageHandler implements MessageHandler {
method handleMessage (line 30) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPublishMessageHandler.java
class MqttPublishMessageHandler (line 30) | public class MqttPublishMessageHandler implements MessageHandler {
method MqttPublishMessageHandler (line 34) | public MqttPublishMessageHandler(MessageStore messageStore) {
method handleMessage (line 38) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubrecMessageHandler.java
class MqttPubrecMessageHandler (line 23) | public class MqttPubrecMessageHandler implements MessageHandler {
method handleMessage (line 30) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubrelMessageHandler.java
class MqttPubrelMessageHandler (line 23) | public class MqttPubrelMessageHandler implements MessageHandler {
method handleMessage (line 30) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttSubscribeMessageHandler.java
class MqttSubscribeMessageHandler (line 34) | public class MqttSubscribeMessageHandler implements MessageHandler {
method MqttSubscribeMessageHandler (line 38) | public MqttSubscribeMessageHandler(SubscriptionStore subscriptionStore) {
method handleMessage (line 56) | @Override public void handleMessage(Message message) {
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttUnsubscribeMessagHandler.java
class MqttUnsubscribeMessagHandler (line 38) | public class MqttUnsubscribeMessagHandler implements MessageHandler {
method MqttUnsubscribeMessagHandler (line 42) | public MqttUnsubscribeMessagHandler(SubscriptionStore subscriptionStor...
method handleMessage (line 46) | @Override
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/message/MessageStore.java
type MessageStore (line 24) | public interface MessageStore {
method get (line 32) | Message get(String id);
method put (line 39) | String put(Message message);
method prepare (line 47) | void prepare(String messageId, List<String> clientIds, int qos);
method ack (line 54) | void ack(Message message, MqttClient client);
method ack (line 61) | void ack(Message message, List<MqttClient> clients);
method expire (line 67) | void expire(String id);
method start (line 72) | void start();
method getOfflineMessages (line 79) | List<Message> getOfflineMessages(MqttClient client);
method shutdown (line 84) | void shutdown();
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/message/cache/MessageCache.java
type MessageCache (line 22) | public interface MessageCache {
method get (line 30) | Message get(String topic, String id);
method get (line 37) | Message get(String topic);
method put (line 44) | void put(String topic, Message message);
method start (line 49) | void start();
method shutdown (line 54) | void shutdown();
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/subscription/SubscriptionStore.java
type SubscriptionStore (line 25) | public interface SubscriptionStore {
method get (line 31) | List<Subscription> get(String topic);
method hasTopic (line 38) | boolean hasTopic(String topic);
method addTopic (line 44) | void addTopic(String topic);
method append (line 52) | void append(String topic, Subscription subscription);
method remove (line 57) | void remove(String topic, Client client);
method getTopics (line 64) | List<String> getTopics(String filter);
method getTopicFilters (line 71) | Set<String> getTopicFilters(String clientId);
method start (line 76) | void start();
method shutdown (line 80) | void shutdown();
FILE: rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/subscription/impl/InMemorySubscriptionStore.java
class InMemorySubscriptionStore (line 34) | public class InMemorySubscriptionStore implements SubscriptionStore {
method get (line 46) | @Override public List<Subscription> get(String topic) {
method hasTopic (line 59) | @Override public boolean hasTopic(String topic) {
method addTopic (line 68) | @Override public void addTopic(String topic) {
method append (line 90) | @Override public void append(String topic, Subscription subscription) {
method getRootTopic (line 118) | private String getRootTopic(String topic) {
method remove (line 128) | @Override public void remove(String topic, Client client) {
method getTopics (line 150) | @Override public List<String> getTopics(String filter) {
method getTopicFilters (line 158) | @Override public Set<String> getTopicFilters(String clientId) {
method match (line 162) | private boolean match(String filter, String topic) {
method start (line 187) | @Override public void start() {
method shutdown (line 194) | @Override public void shutdown() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/connection/client/ClientManagerTest.java
class ClientManagerTest (line 34) | public class ClientManagerTest {
method setup (line 41) | @Before
method teardown (line 50) | @After
method testGet (line 55) | @Test
method testPut (line 65) | @Test
method testRemove (line 81) | @Test
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/integration/ConsumeMessageIntegrationTest.java
class ConsumeMessageIntegrationTest (line 58) | public class ConsumeMessageIntegrationTest {
method setup (line 76) | @Before
method teardown (line 102) | @After
method test (line 107) | @Test
method getConnectMessage (line 162) | private MqttConnectMessage getConnectMessage() {
method getMqttPublishMessage (line 195) | private MqttPublishMessage getMqttPublishMessage() {
method getMqttSubscribeMessage (line 214) | private MqttSubscribeMessage getMqttSubscribeMessage() {
method isClientInSubscriptions (line 233) | private boolean isClientInSubscriptions(List<Subscription> subscriptio...
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/integration/ProduceMessageIntegrationTest.java
class ProduceMessageIntegrationTest (line 56) | public class ProduceMessageIntegrationTest {
method setup (line 72) | @Before
method teardown (line 111) | @After
method test (line 116) | @Test
method getConnectMessage (line 172) | private MqttConnectMessage getConnectMessage() {
method getMqttPublishMessage (line 205) | private MqttPublishMessage getMqttPublishMessage() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/integration/PubSubIntegrationTest.java
class PubSubIntegrationTest (line 56) | public class PubSubIntegrationTest {
method setup (line 75) | @Before
method teardown (line 113) | @After
method test (line 118) | @Test
method getConnectMessage (line 192) | private MqttConnectMessage getConnectMessage(String clientId) {
method getMqttPublishMessage (line 225) | private MqttPublishMessage getMqttPublishMessage() {
method getMqttSubscribeMessage (line 244) | private MqttSubscribeMessage getMqttSubscribeMessage() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttConnectionHandlerTest.java
class MqttConnectionHandlerTest (line 33) | public class MqttConnectionHandlerTest {
method setup (line 41) | @Before
method teardown (line 59) | @After
method testHandleDisconnectChannelEvent (line 64) | @Test
method testHandleIdleStateEvent (line 73) | @Test
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttDispatcherTest.java
class MqttDispatcherTest (line 34) | public class MqttDispatcherTest {
method setup (line 42) | @Before
method teardown (line 50) | @After public void teardown() {
method testRegisterHandler (line 54) | @Test
method testChanelRead0 (line 65) | public void testChanelRead0 () {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttIdleHandlerTest.java
class MqttIdleHandlerTest (line 35) | public class MqttIdleHandlerTest {
method setup (line 43) | @Before
method teardown (line 70) | @After
method test (line 74) | @Test
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/AbstractMqttMessageHandlerTest.java
class AbstractMqttMessageHandlerTest (line 33) | public abstract class AbstractMqttMessageHandlerTest {
class MockHandler (line 43) | class MockHandler extends SimpleChannelInboundHandler<Message> {
method MockHandler (line 47) | MockHandler(MessageHandler handler) {
method channelRead0 (line 51) | @Override protected void channelRead0(ChannelHandlerContext context,...
method setupMessage (line 63) | public abstract void setupMessage();
method assertConditions (line 68) | public abstract void assertConditions();
method mock (line 73) | public abstract void mock();
method initMessageHandler (line 78) | protected abstract void initMessageHandler();
method testHandleMessage (line 80) | @Test
method setup (line 86) | @Before
method teardown (line 103) | @After
method initMessage (line 108) | private void initMessage() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttConnectMessageHandlerTest.java
class MqttConnectMessageHandlerTest (line 40) | public class MqttConnectMessageHandlerTest extends AbstractMqttMessageHa...
method setupMessage (line 46) | @Override public void setupMessage() {
method assertConditions (line 52) | @Override public void assertConditions() {
method mock (line 56) | @Override public void mock() {
method initMessageHandler (line 61) | @Override protected void initMessageHandler() {
method testHandleMessage (line 65) | @Override
method getConnectMessage (line 84) | private MqttConnectMessage getConnectMessage() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttDisconnectMessageHandlerTest.java
class MqttDisconnectMessageHandlerTest (line 37) | public class MqttDisconnectMessageHandlerTest extends AbstractMqttMessag...
method setupMessage (line 39) | @Override public void setupMessage() {
method assertConditions (line 44) | @Override public void assertConditions() {
method mock (line 49) | @Override public void mock() {
method initMessageHandler (line 53) | @Override protected void initMessageHandler() {
method getMqttDisconnectMessage (line 57) | private MqttMessage getMqttDisconnectMessage() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttMessageForwarderTest.java
class MqttMessageForwarderTest (line 44) | public class MqttMessageForwarderTest extends AbstractMqttMessageHandler...
method setup (line 57) | @Before
method teardown (line 74) | @After
method setupMessage (line 79) | @Override public void setupMessage() {
method assertConditions (line 84) | @Override public void assertConditions() {
method mock (line 102) | @Override public void mock() {
method initMessageHandler (line 110) | @Override protected void initMessageHandler() {
method testHandleMessage (line 114) | @Test
method getMqttPublishMessage (line 118) | private MqttPublishMessage getMqttPublishMessage() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttPingreqMessageHandlerTest.java
class MqttPingreqMessageHandlerTest (line 35) | public class MqttPingreqMessageHandlerTest {
method setup (line 42) | @Before
method teardown (line 57) | @After
method testHandleMessage (line 61) | @Test
method getMqttPingreqMessage (line 72) | private MqttMessage getMqttPingreqMessage() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttSubscribeMessageHandlerTest.java
class MqttSubscribeMessageHandlerTest (line 44) | public class MqttSubscribeMessageHandlerTest extends AbstractMqttMessage...
method getMqttSubscribeMessage (line 46) | private MqttSubscribeMessage getMqttSubscribeMessage() {
method setupMessage (line 67) | @Override public void setupMessage() {
method assertConditions (line 72) | @Override public void assertConditions() {
method mock (line 79) | @Override public void mock() {
method initMessageHandler (line 82) | @Override protected void initMessageHandler() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttUnsubscribeMessageHandlerTest.java
class MqttUnsubscribeMessageHandlerTest (line 36) | public class MqttUnsubscribeMessageHandlerTest extends AbstractMqttMessa...
method setupMessage (line 42) | @Override public void setupMessage() {
method getMqttUnsubscribeMessage (line 47) | private MqttUnsubscribeMessage getMqttUnsubscribeMessage() {
method assertConditions (line 67) | @Override public void assertConditions() {
method mock (line 74) | @Override public void mock() {
method initMessageHandler (line 91) | @Override protected void initMessageHandler() {
FILE: rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/storage/subscription/InMemorySubscriptionTest.java
class InMemorySubscriptionTest (line 34) | public class InMemorySubscriptionTest {
method setup (line 46) | @Before
method testAppend (line 63) | @Test
method testRemove (line 135) | @Test
method testAddTopic (line 175) | @Test
method inList (line 187) | private <E> boolean inList(List<E> actualLsit, E expected) {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/CommonConstant.java
type CommonConstant (line 20) | public interface CommonConstant {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/CommonContext.java
class CommonContext (line 23) | public class CommonContext {
method getAppId (line 57) | public String getAppId() {
method setAppId (line 64) | public void setAppId(String appId) {
method getProvider (line 71) | public String getProvider() {
method setProvider (line 78) | public void setProvider(String provider) {
method getInstanceName (line 85) | public String getInstanceName() {
method setInstanceName (line 92) | public void setInstanceName(String instanceName) {
method getAccessKey (line 99) | public String getAccessKey() {
method setAccessKey (line 106) | public void setAccessKey(String accessKey) {
method getSecretKey (line 113) | public String getSecretKey() {
method setSecretKey (line 120) | public void setSecretKey(String secretKey) {
method getConsumeThreadNums (line 127) | public int getConsumeThreadNums() {
method setConsumeThreadNums (line 134) | public void setConsumeThreadNums(int consumeThreadNums) {
method getConsumerId (line 138) | public String getConsumerId() {
method setConsumerId (line 142) | public void setConsumerId(String consumerId) {
method getProducerId (line 146) | public String getProducerId() {
method setProducerId (line 150) | public void setProducerId(String producerId) {
method getSendMsgTimeoutMillis (line 154) | public int getSendMsgTimeoutMillis() {
method setSendMsgTimeoutMillis (line 158) | public void setSendMsgTimeoutMillis(int sendMsgTimeoutMillis) {
method getMqType (line 162) | public String getMqType() {
method setMqType (line 166) | public void setMqType(String mqType) {
method getNameServer (line 170) | public String getNameServer() {
method setNameServer (line 174) | public void setNameServer(String nameServer) {
method toString (line 178) | @Override
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConnection.java
class JmsBaseConnection (line 35) | public class JmsBaseConnection implements Connection {
method JmsBaseConnection (line 42) | public JmsBaseConnection(Map<String, String> connectionParams) {
method createSession (line 75) | @Override
method getClientID (line 97) | @Override
method setClientID (line 102) | @Override
method getMetaData (line 107) | @Override
method getExceptionListener (line 112) | @Override
method setExceptionListener (line 117) | @Override
method start (line 122) | @Override
method stop (line 132) | @Override
method close (line 138) | @Override
method createConnectionConsumer (line 148) | @Override
method createDurableConnectionConsumer (line 156) | @Override
method isStarted (line 169) | public boolean isStarted() {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConnectionFactory.java
class JmsBaseConnectionFactory (line 30) | public class JmsBaseConnectionFactory implements ConnectionFactory {
method JmsBaseConnectionFactory (line 51) | public JmsBaseConnectionFactory() {
method JmsBaseConnectionFactory (line 55) | public JmsBaseConnectionFactory(URI connectionUri) {
method setConnectionUri (line 59) | public void setConnectionUri(URI connectionUri) {
method createConnection (line 71) | @Override
method createConnection (line 89) | @Override
method initConnection (line 102) | protected void initConnection() throws JMSException {
method closeConnection (line 117) | protected void closeConnection(Connection con) {
method doCreateConnection (line 138) | protected JmsBaseConnection doCreateConnection() throws JMSException {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConnectionMetaData.java
class JmsBaseConnectionMetaData (line 30) | public class JmsBaseConnectionMetaData implements ConnectionMetaData {
method getJMSVersion (line 92) | public String getJMSVersion() throws JMSException {
method getJMSMajorVersion (line 96) | public int getJMSMajorVersion() throws JMSException {
method getJMSMinorVersion (line 100) | public int getJMSMinorVersion() throws JMSException {
method getJMSProviderName (line 104) | public String getJMSProviderName() throws JMSException {
method getProviderVersion (line 108) | public String getProviderVersion() throws JMSException {
method getProviderMajorVersion (line 112) | public int getProviderMajorVersion() throws JMSException {
method getProviderMinorVersion (line 116) | public int getProviderMinorVersion() throws JMSException {
method getJMSXPropertyNames (line 120) | public Enumeration<?> getJMSXPropertyNames() throws JMSException {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConstant.java
type JmsBaseConstant (line 20) | public interface JmsBaseConstant {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseMessageConsumer.java
class JmsBaseMessageConsumer (line 34) | public class JmsBaseMessageConsumer implements MessageConsumer {
method JmsBaseMessageConsumer (line 44) | public JmsBaseMessageConsumer(Destination destination, CommonContext c...
method checkArgs (line 86) | private void checkArgs(Destination destination, CommonContext context)...
method getMessageSelector (line 93) | @Override
method getMessageListener (line 98) | @Override
method setMessageListener (line 103) | @Override
method receive (line 122) | @Override
method receive (line 127) | @Override
method receiveNoWait (line 132) | @Override
method close (line 137) | @Override
method startConsumer (line 153) | public void startConsumer() throws JMSException {
method getDestination (line 165) | public Destination getDestination() throws JMSException {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseMessageProducer.java
class JmsBaseMessageProducer (line 45) | public class JmsBaseMessageProducer implements MessageProducer {
method JmsBaseMessageProducer (line 54) | public JmsBaseMessageProducer(Destination destination, CommonContext c...
method checkArgs (line 81) | private void checkArgs(Destination destination, CommonContext context)...
method getDisableMessageID (line 88) | @Override
method setDisableMessageID (line 93) | @Override
method getDisableMessageTimestamp (line 98) | @Override
method setDisableMessageTimestamp (line 103) | @Override
method getDeliveryMode (line 108) | @Override
method setDeliveryMode (line 113) | @Override
method getPriority (line 118) | @Override
method setPriority (line 123) | @Override
method getTimeToLive (line 128) | @Override
method setTimeToLive (line 133) | @Override
method getDestination (line 138) | @Override
method close (line 143) | @Override
method send (line 148) | @Override
method send (line 160) | @Override
method send (line 192) | @Override
method send (line 198) | @Override
method initJMSHeaders (line 214) | private void initJMSHeaders(JmsBaseMessage jmsMsg, Destination destina...
method initRocketMQHeaders (line 243) | public static Properties initRocketMQHeaders(JmsBaseMessage jmsMsg,
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseSession.java
class JmsBaseSession (line 49) | public class JmsBaseSession implements Session {
method JmsBaseSession (line 57) | public JmsBaseSession(JmsBaseConnection connection, boolean transacted,
method createBytesMessage (line 65) | @Override
method createMapMessage (line 70) | @Override
method createMessage (line 75) | @Override
method createObjectMessage (line 80) | @Override
method createObjectMessage (line 85) | @Override
method createStreamMessage (line 90) | @Override
method createTextMessage (line 95) | @Override
method createTextMessage (line 100) | @Override
method getTransacted (line 105) | @Override
method getAcknowledgeMode (line 110) | @Override
method commit (line 115) | @Override
method rollback (line 120) | @Override
method close (line 125) | @Override
method recover (line 133) | @Override
method getMessageListener (line 138) | @Override
method setMessageListener (line 143) | @Override
method run (line 148) | @Override
method createProducer (line 153) | @Override
method createConsumer (line 167) | @Override
method createConsumer (line 185) | @Override
method createConsumer (line 204) | @Override
method createQueue (line 210) | @Override
method createTopic (line 215) | @Override
method createDurableSubscriber (line 240) | @Override
method createDurableSubscriber (line 256) | @Override
method createBrowser (line 263) | @Override
method createBrowser (line 268) | @Override
method createTemporaryQueue (line 273) | @Override
method createTemporaryTopic (line 285) | @Override
method unsubscribe (line 297) | @Override
method start (line 302) | public void start() throws JMSException {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseTopic.java
class JmsBaseTopic (line 25) | public class JmsBaseTopic implements Topic {
method JmsBaseTopic (line 30) | public JmsBaseTopic(String messageTopic, String messageType) {
method getTopicName (line 38) | public String getTopicName() throws JMSException {
method toString (line 42) | public String toString() {
method getMessageTopic (line 46) | public String getMessageTopic() {
method getMessageType (line 50) | public String getMessageType() {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/RMQPushConsumerExt.java
class RMQPushConsumerExt (line 32) | public class RMQPushConsumerExt {
method RMQPushConsumerExt (line 39) | public RMQPushConsumerExt(MQPushConsumer consumer) {
method getConsumer (line 43) | public MQPushConsumer getConsumer() {
method incrementAndGet (line 47) | public int incrementAndGet() {
method decrementAndGet (line 51) | public int decrementAndGet() {
method getReferenceCount (line 55) | public int getReferenceCount() {
method start (line 58) | public void start() throws MQClientException {
method close (line 70) | public void close() {
method subscribe (line 76) | public void subscribe(String topic, String subExpression, javax.jms.Me...
method unsubscribe (line 93) | public void unsubscribe(String topic) {
class MessageListenerImpl (line 99) | class MessageListenerImpl implements MessageListenerConcurrently {
method consumeMessage (line 101) | @Override
method isStarted (line 120) | public boolean isStarted() {
method isClosed (line 125) | public boolean isClosed() {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsBaseMessage.java
class JmsBaseMessage (line 32) | public class JmsBaseMessage implements Message {
method getJMSMessageID (line 46) | @Override
method setJMSMessageID (line 60) | @Override
method getJMSTimestamp (line 65) | @Override
method setJMSTimestamp (line 73) | @Override
method getJMSCorrelationIDAsBytes (line 78) | @Override
method setJMSCorrelationIDAsBytes (line 92) | @Override
method getJMSCorrelationID (line 98) | @Override
method setJMSCorrelationID (line 106) | @Override
method getJMSReplyTo (line 111) | @Override
method setJMSReplyTo (line 119) | @Override
method toString (line 124) | @Override
method getJMSDestination (line 129) | @Override
method setJMSDestination (line 137) | @Override
method getBody (line 142) | @SuppressWarnings("unchecked")
method getJMSDeliveryMode (line 153) | @Override
method setJMSDeliveryMode (line 172) | @Override
method isBodyAssignableTo (line 177) | public boolean isBodyAssignableTo(Class<?> clazz) throws JMSException {
method getJMSRedelivered (line 181) | @Override
method setJMSRedelivered (line 187) | @Override
method copyMetaData (line 197) | public void copyMetaData(JmsBaseMessage sourceMessage) {
method getJMSType (line 214) | @Override
method setJMSType (line 219) | @Override
method getHeaders (line 224) | public Map<String, Object> getHeaders() {
method getJMSExpiration (line 228) | @Override
method setJMSExpiration (line 236) | @Override
method exists (line 241) | public boolean exists(String name) {
method getJMSPriority (line 245) | @Override
method setJMSPriority (line 253) | @Override
method setHeader (line 258) | public void setHeader(String name, Object value) {
method getProperties (line 262) | public Map<String, Object> getProperties() {
method setProperties (line 266) | public void setProperties(Map<String, Object> properties) {
method acknowledge (line 270) | @Override
method clearProperties (line 275) | @Override
method clearBody (line 280) | @Override
method propertyExists (line 285) | @Override
method getBooleanProperty (line 290) | @Override
method getByteProperty (line 299) | @Override
method getShortProperty (line 308) | @Override
method getIntProperty (line 317) | @Override
method getLongProperty (line 326) | @Override
method getFloatProperty (line 335) | @Override
method getDoubleProperty (line 344) | @Override
method getStringProperty (line 353) | @Override
method getObjectProperty (line 361) | @Override
method getPropertyNames (line 366) | @Override
method setBooleanProperty (line 384) | @Override
method setByteProperty (line 389) | @Override
method setShortProperty (line 394) | @Override
method setIntProperty (line 399) | @Override
method setLongProperty (line 404) | @Override
method setFloatProperty (line 409) | public void setFloatProperty(String name, float value) {
method setDoubleProperty (line 413) | @Override
method setStringProperty (line 418) | @Override
method setObjectProperty (line 423) | @Override
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsBytesMessage.java
class JmsBytesMessage (line 39) | public class JmsBytesMessage extends JmsBaseMessage implements BytesMess...
method JmsBytesMessage (line 50) | public JmsBytesMessage(byte[] data) {
method JmsBytesMessage (line 58) | public JmsBytesMessage() {
method getBodyLength (line 63) | public long getBodyLength() throws JMSException {
method getData (line 70) | public byte[] getData() {
method readBoolean (line 80) | public boolean readBoolean() throws JMSException {
method readByte (line 84) | public byte readByte() throws JMSException {
method readUnsignedByte (line 88) | public int readUnsignedByte() throws JMSException {
method readShort (line 92) | public short readShort() throws JMSException {
method readUnsignedShort (line 96) | public int readUnsignedShort() throws JMSException {
method readChar (line 100) | public char readChar() throws JMSException {
method readInt (line 104) | public int readInt() throws JMSException {
method readLong (line 108) | public long readLong() throws JMSException {
method readFloat (line 112) | public float readFloat() throws JMSException {
method readDouble (line 116) | public double readDouble() throws JMSException {
method readUTF (line 120) | public String readUTF() throws JMSException {
method readBytes (line 124) | public int readBytes(byte[] value) throws JMSException {
method readBytes (line 128) | public int readBytes(byte[] value, int length) throws JMSException {
method writeBoolean (line 158) | public void writeBoolean(boolean value) throws JMSException {
method writeByte (line 162) | public void writeByte(byte value) throws JMSException {
method writeShort (line 166) | public void writeShort(short value) throws JMSException {
method writeChar (line 170) | public void writeChar(char value) throws JMSException {
method writeInt (line 174) | public void writeInt(int value) throws JMSException {
method writeLong (line 178) | public void writeLong(long value) throws JMSException {
method writeFloat (line 182) | public void writeFloat(float value) throws JMSException {
method writeDouble (line 186) | public void writeDouble(double value) throws JMSException {
method writeUTF (line 190) | public void writeUTF(String value) throws JMSException {
method writeBytes (line 194) | public void writeBytes(byte[] value) throws JMSException {
method writeBytes (line 206) | public void writeBytes(byte[] value, int offset, int length) throws JM...
method writeObject (line 218) | public void writeObject(Object value) throws JMSException {
method reset (line 222) | public void reset() throws JMSException {
method handleOutputException (line 226) | private JMSException handleOutputException(final IOException e) {
method handleInputException (line 233) | private JMSException handleInputException(final IOException e) {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsObjectMessage.java
class JmsObjectMessage (line 24) | public class JmsObjectMessage extends JmsBaseMessage implements ObjectMe...
method JmsObjectMessage (line 26) | public JmsObjectMessage(Serializable object) {
method JmsObjectMessage (line 30) | public JmsObjectMessage() {
method getObject (line 34) | public Serializable getObject() throws JMSException {
method setObject (line 38) | public void setObject(Serializable object) throws JMSException {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsTextMessage.java
class JmsTextMessage (line 23) | public class JmsTextMessage extends JmsBaseMessage implements TextMessage {
method JmsTextMessage (line 26) | public JmsTextMessage() {
method JmsTextMessage (line 30) | public JmsTextMessage(String text) {
method clearBody (line 34) | public void clearBody() {
method getText (line 39) | public String getText() throws JMSException {
method setText (line 43) | public void setText(String text) {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/ExceptionUtil.java
class ExceptionUtil (line 23) | public class ExceptionUtil {
method handleUnSupportedException (line 27) | public static void handleUnSupportedException() {
method convertToJmsException (line 34) | public static JMSException convertToJmsException(Exception e, String e...
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/MessageConverter.java
class MessageConverter (line 43) | public class MessageConverter {
method getContentFromJms (line 44) | public static byte[] getContentFromJms(javax.jms.Message jmsMessage) t...
method convert2JMSMessage (line 73) | public static JmsBaseMessage convert2JMSMessage(MessageExt msg) throws...
method convert2RMQMessage (line 147) | public static Message convert2RMQMessage(JmsBaseMessage jmsMsg) throws...
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/MsgConvertUtil.java
class MsgConvertUtil (line 27) | public class MsgConvertUtil {
method objectSerialize (line 46) | public static byte[] objectSerialize(Object object) throws IOException {
method objectDeserialize (line 55) | public static Serializable objectDeserialize(byte[] bytes) throws IOEx...
method string2Bytes (line 63) | public static final byte[] string2Bytes(String s, String charset) {
method bytes2String (line 77) | public static final String bytes2String(byte[] bs, String charset) {
FILE: rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/URISpecParser.java
class URISpecParser (line 26) | public abstract class URISpecParser {
method parseURI (line 36) | public static Map<String, String> parseURI(String uri) {
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/JmsTestListener.java
class JmsTestListener (line 26) | public class JmsTestListener implements MessageListener {
method JmsTestListener (line 32) | public JmsTestListener() {
method JmsTestListener (line 35) | public JmsTestListener(int expectd) {
method JmsTestListener (line 38) | public JmsTestListener(int expected, CountDownLatch latch) {
method onMessage (line 42) | @Override
method getConsumedNum (line 56) | public int getConsumedNum() {
method setLatch (line 60) | public void setLatch(CountDownLatch latch) {
method setExpectd (line 64) | public void setExpectd(int expectd) {
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/JmsTestUtil.java
class JmsTestUtil (line 28) | public class JmsTestUtil {
method getMQProducer (line 29) | public static MQProducer getMQProducer(String producerId) throws Excep...
method getRMQPushConsumerExt (line 36) | public static RMQPushConsumerExt getRMQPushConsumerExt(String consumer...
method checkConsumerState (line 43) | public static void checkConsumerState(String consumerId, boolean isNul...
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsBytesMessageTest.java
class JmsBytesMessageTest (line 23) | public class JmsBytesMessageTest {
method testGetData (line 28) | @Test
method testGetBodyLength (line 43) | @Test
method testReadBytes (line 52) | @Test
method testReadBytes1 (line 65) | @Test
method testWriteBytes (line 81) | @Test
method testException (line 91) | @Test
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsMessageConvertTest.java
class JmsMessageConvertTest (line 12) | public class JmsMessageConvertTest {
method testCovert2RMQ (line 13) | @Test
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsObjectMessageTest.java
class JmsObjectMessageTest (line 25) | public class JmsObjectMessageTest {
method testGetObject (line 27) | @Test
method testGetBody (line 38) | @Test
class User (line 52) | private class User implements Serializable {
method User (line 56) | private User(String name, int age) {
method equals (line 61) | @Override
method getAge (line 76) | public int getAge() {
method setAge (line 80) | public void setAge(int age) {
method getName (line 84) | public String getName() {
method setName (line 88) | public void setName(String name) {
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsTextMessageTest.java
class JmsTextMessageTest (line 24) | public class JmsTextMessageTest {
method testGetBody (line 27) | @Test
method testSetGetText (line 38) | @Test
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/integration/IntegrationTestBase.java
class IntegrationTestBase (line 41) | public class IntegrationTestBase {
method createBaseDir (line 68) | private static String createBaseDir() {
method createAndStartNamesrv (line 79) | public static NamesrvController createAndStartNamesrv() {
method createAndStartBroker (line 101) | public static BrokerController createAndStartBroker(String nsAddr) {
method run (line 134) | @Override public void run() {
method deleteFile (line 173) | public static void deleteFile(File file) {
method createTopic (line 187) | public static void createTopic(String topic, String addr) {
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/integration/JmsClientIT.java
class JmsClientIT (line 40) | public class JmsClientIT extends IntegrationTestBase {
method testConfigInURI (line 42) | @Test
method createConnection (line 85) | private Connection createConnection(String producerGroup, String consu...
method testProducerAndConsume_TwoConsumer (line 97) | @Test
method testProducerAndConsume_TagFilter (line 144) | @Test
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/integration/JmsConsumerIT.java
class JmsConsumerIT (line 38) | public class JmsConsumerIT extends IntegrationTestBase {
method onMessage (line 44) | @Override
method testStartIdempotency (line 57) | @Test
method testReferenceCount (line 93) | @Test
FILE: rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/util/URISpecParserTest.java
class URISpecParserTest (line 23) | public class URISpecParserTest {
method parseURI_NormalTest (line 25) | @Test
method parseURI_AbnormalTest (line 38) | @Test(expected = IllegalArgumentException.class)
FILE: rocketmq-jms/spring/src/main/java/org/apache/rocketmq/jms/spring/SimpleExMessageListenerContainer.java
class SimpleExMessageListenerContainer (line 28) | public class SimpleExMessageListenerContainer extends SimpleMessageListe...
method createListenerConsumer (line 45) | protected MessageConsumer createListenerConsumer(final Session session...
method createConsumer (line 70) | protected MessageConsumer createConsumer(Session session, Destination ...
method getCacheLevelName (line 79) | public String getCacheLevelName() {
method setCacheLevelName (line 87) | public void setCacheLevelName(String cacheLevelName) {
FILE: rocketmq-jms/spring/src/test/java/org/apache/rocketmq/jms/spring/JmsConsumeIT.java
class JmsConsumeIT (line 32) | public class JmsConsumeIT extends JmsProduceIT {
method testConsume (line 35) | @Test
FILE: rocketmq-jms/spring/src/test/java/org/apache/rocketmq/jms/spring/JmsProduceIT.java
class JmsProduceIT (line 34) | public class JmsProduceIT extends SpringTestBase {
method simpleSendTest (line 40) | @Test
method multiSenderTest (line 79) | @Test(threadPoolSize = 2, invocationCount = 20)
FILE: rocketmq-jms/spring/src/test/java/org/apache/rocketmq/jms/spring/SpringTestBase.java
class SpringTestBase (line 24) | public class SpringTestBase extends IntegrationTestBase{
FILE: rocketmq-knative/source/cmd/controller/main.go
function main (line 32) | func main() {
FILE: rocketmq-knative/source/cmd/receive_adapter/main.go
type envConfig (line 36) | type envConfig struct
function main (line 48) | func main() {
function newKubernetesClient (line 86) | func newKubernetesClient() (kubernetes.Interface, error) {
FILE: rocketmq-knative/source/pkg/adapter/adapter.go
type Adapter (line 35) | type Adapter struct
method Start (line 53) | func (a *Adapter) Start(ctx context.Context) error {
method consumerStart (line 91) | func (a *Adapter) consumerStart() error {
method receiveMsg (line 116) | func (a *Adapter) receiveMsg(ctx context.Context, msgs ...*primitive....
FILE: rocketmq-knative/source/pkg/apis/addtoscheme_eventing_v1alpha1.go
function init (line 24) | func init() {
FILE: rocketmq-knative/source/pkg/apis/addtoscheme_sources_v1alpha1.go
function init (line 24) | func init() {
FILE: rocketmq-knative/source/pkg/apis/apis.go
function AddToScheme (line 32) | func AddToScheme(s *runtime.Scheme) error {
FILE: rocketmq-knative/source/pkg/apis/sources/v1alpha1/register.go
function Resource (line 36) | func Resource(resource string) schema.GroupResource {
FILE: rocketmq-knative/source/pkg/apis/sources/v1alpha1/rocketmqsource_types.go
constant RocketMQSourceEventType (line 36) | RocketMQSourceEventType = "apache.rocketmq"
function RocketMQEventSource (line 40) | func RocketMQEventSource(topic string) string {
constant RocketMQConditionReady (line 45) | RocketMQConditionReady = duckv1alpha1.ConditionReady
constant RocketMQConditionSinkProvided (line 47) | RocketMQConditionSinkProvided duckv1alpha1.ConditionType = "SinkProvided"
constant RocketMQConditionTransformerProvided (line 49) | RocketMQConditionTransformerProvided duckv1alpha1.ConditionType = "Trans...
constant RocketMQConditionDeployed (line 51) | RocketMQConditionDeployed duckv1alpha1.ConditionType = "Deployed"
constant RocketMQConditionSubscribed (line 53) | RocketMQConditionSubscribed duckv1alpha1.ConditionType = "Subscribed"
constant RocketMQConditionEventTypesProvided (line 55) | RocketMQConditionEventTypesProvided duckv1alpha1.ConditionType = "EventT...
type RocketMQSource (line 64) | type RocketMQSource struct
type RocketMQSourceList (line 72) | type RocketMQSourceList struct
function init (line 78) | func init() {
type RocketMQSourceSpec (line 83) | type RocketMQSourceSpec struct
type RocketMQSourceStatus (line 94) | type RocketMQSourceStatus struct
method GetCondition (line 100) | func (s *RocketMQSourceStatus) GetCondition(t duckv1alpha1.ConditionTy...
method IsReady (line 105) | func (s *RocketMQSourceStatus) IsReady() bool {
method InitializeConditions (line 110) | func (s *RocketMQSourceStatus) InitializeConditions() {
method MarkSink (line 115) | func (s *RocketMQSourceStatus) MarkSink(uri string) {
method MarkNoSink (line 123) | func (s *RocketMQSourceStatus) MarkNoSink(reason, messageFormat string...
method MarkNoTransformer (line 127) | func (s *RocketMQSourceStatus) MarkNoTransformer(reason, messageFormat...
method MarkDeployed (line 132) | func (s *RocketMQSourceStatus) MarkDeployed() {
method MarkDeploying (line 137) | func (s *RocketMQSourceStatus) MarkDeploying(reason, messageFormat str...
method MarkNotDeployed (line 142) | func (s *RocketMQSourceStatus) MarkNotDeployed(reason, messageFormat s...
method MarkSubscribed (line 146) | func (s *RocketMQSourceStatus) MarkSubscribed() {
method MarkEventTypes (line 151) | func (s *RocketMQSourceStatus) MarkEventTypes() {
method MarkNoEventTypes (line 156) | func (s *RocketMQSourceStatus) MarkNoEventTypes(reason, messageFormat ...
type SecretValueFromSource (line 161) | type SecretValueFromSource struct
type Credentials (line 166) | type Credentials struct
FILE: rocketmq-knative/source/pkg/apis/sources/v1alpha1/zz_generated.deepcopy.go
method DeepCopyInto (line 27) | func (in *RocketMQSource) DeepCopyInto(out *RocketMQSource) {
method DeepCopy (line 37) | func (in *RocketMQSource) DeepCopy() *RocketMQSource {
method DeepCopyObject (line 47) | func (in *RocketMQSource) DeepCopyObject() runtime.Object {
method DeepCopyInto (line 55) | func (in *RocketMQSourceList) DeepCopyInto(out *RocketMQSourceList) {
method DeepCopy (line 70) | func (in *RocketMQSourceList) DeepCopy() *RocketMQSourceList {
method DeepCopyObject (line 80) | func (in *RocketMQSourceList) DeepCopyObject() runtime.Object {
method DeepCopyInto (line 88) | func (in *RocketMQSourceSpec) DeepCopyInto(out *RocketMQSourceSpec) {
method DeepCopy (line 94) | func (in *RocketMQSourceSpec) DeepCopy() *RocketMQSourceSpec {
method DeepCopyInto (line 104) | func (in *RocketMQSourceStatus) DeepCopyInto(out *RocketMQSourceStatus) {
method DeepCopy (line 110) | func (in *RocketMQSourceStatus) DeepCopy() *RocketMQSourceStatus {
FILE: rocketmq-knative/source/pkg/client/clientset/versioned/clientset.go
type Interface (line 29) | type Interface interface
type Clientset (line 38) | type Clientset struct
method SourcesV1alpha1 (line 44) | func (c *Clientset) SourcesV1alpha1() sourcesv1alpha1.SourcesV1alpha1I...
method Sources (line 50) | func (c *Clientset) Sources() sourcesv1alpha1.SourcesV1alpha1Interface {
method Discovery (line 55) | func (c *Clientset) Discovery() discovery.DiscoveryInterface {
function NewForConfig (line 63) | func NewForConfig(c *rest.Config) (*Clientset, error) {
function NewForConfigOrDie (line 84) | func NewForConfigOrDie(c *rest.Config) *Clientset {
function New (line 93) | func New(c rest.Interface) *Clientset {
FILE: rocketmq-knative/source/pkg/client/clientset/versioned/scheme/register.go
function init (line 40) | func init() {
FILE: rocketmq-knative/source/pkg/client/clientset/versioned/typed/sources/v1alpha1/generated_expansion.go
type RocketMQSourceExpansion (line 22) | type RocketMQSourceExpansion interface
FILE: rocketmq-knative/source/pkg/client/clientset/versioned/typed/sources/v1alpha1/rocketmqsource.go
type RocketMQSourcesGetter (line 35) | type RocketMQSourcesGetter interface
type RocketMQSourceInterface (line 40) | type RocketMQSourceInterface interface
type rocketmqSources (line 53) | type rocketmqSources struct
method Get (line 67) | func (c *rocketmqSources) Get(name string, options v1.GetOptions) (res...
method List (line 80) | func (c *rocketmqSources) List(opts v1.ListOptions) (result *v1alpha1....
method Watch (line 97) | func (c *rocketmqSources) Watch(opts v1.ListOptions) (watch.Interface,...
method Create (line 112) | func (c *rocketmqSources) Create(rocketmqSource *v1alpha1.RocketMQSour...
method Update (line 124) | func (c *rocketmqSources) Update(rocketmqSource *v1alpha1.RocketMQSour...
method UpdateStatus (line 139) | func (c *rocketmqSources) UpdateStatus(rocketmqSource *v1alpha1.Rocket...
method Delete (line 153) | func (c *rocketmqSources) Delete(name string, options *v1.DeleteOption...
method DeleteCollection (line 164) | func (c *rocketmqSources) DeleteCollection(options *v1.DeleteOptions, ...
method Patch (line 180) | func (c *rocketmqSources) Patch(name string, pt types.PatchType, data ...
function newRocketMQSources (line 59) | func newRocketMQSources(c *SourcesV1alpha1Client, namespace string) *roc...
FILE: rocketmq-knative/source/pkg/client/clientset/versioned/typed/sources/v1alpha1/sources_client.go
type SourcesV1alpha1Interface (line 29) | type SourcesV1alpha1Interface interface
type SourcesV1alpha1Client (line 35) | type SourcesV1alpha1Client struct
method RocketMQSources (line 39) | func (c *SourcesV1alpha1Client) RocketMQSources(namespace string) Rock...
method RESTClient (line 86) | func (c *SourcesV1alpha1Client) RESTClient() rest.Interface {
function NewForConfig (line 44) | func NewForConfig(c *rest.Config) (*SourcesV1alpha1Client, error) {
function NewForConfigOrDie (line 58) | func NewForConfigOrDie(c *rest.Config) *SourcesV1alpha1Client {
function New (line 67) | func New(c rest.Interface) *SourcesV1alpha1Client {
function setConfigDefaults (line 71) | func setConfigDefaults(config *rest.Config) error {
FILE: rocketmq-knative/source/pkg/client/informers/externalversions/factory.go
type SharedInformerOption (line 37) | type SharedInformerOption
type sharedInformerFactory (line 39) | type sharedInformerFactory struct
method Start (line 112) | func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {
method WaitForCacheSync (line 125) | func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{...
method InformerFor (line 148) | func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFun...
method Sources (line 179) | func (f *sharedInformerFactory) Sources() sources.Interface {
function WithCustomResyncConfig (line 54) | func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) Sh...
function WithTweakListOptions (line 64) | func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListO...
function WithNamespace (line 72) | func WithNamespace(namespace string) SharedInformerOption {
function NewSharedInformerFactory (line 80) | func NewSharedInformerFactory(client versioned.Interface, defaultResync ...
function NewFilteredSharedInformerFactory (line 88) | func NewFilteredSharedInformerFactory(client versioned.Interface, defaul...
function NewSharedInformerFactoryWithOptions (line 93) | func NewSharedInformerFactoryWithOptions(client versioned.Interface, def...
type SharedInformerFactory (line 171) | type SharedInformerFactory interface
FILE: rocketmq-knative/source/pkg/client/informers/externalversions/generic.go
type GenericInformer (line 32) | type GenericInformer interface
type genericInformer (line 37) | type genericInformer struct
method Informer (line 43) | func (f *genericInformer) Informer() cache.SharedIndexInformer {
method Lister (line 48) | func (f *genericInformer) Lister() cache.GenericLister {
method ForResource (line 54) | func (f *sharedInformerFactory) ForResource(resource schema.GroupVersion...
FILE: rocketmq-knative/source/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go
type NewInformerFunc (line 32) | type NewInformerFunc
type SharedInformerFactory (line 35) | type SharedInformerFactory interface
type TweakListOptionsFunc (line 41) | type TweakListOptionsFunc
FILE: rocketmq-knative/source/pkg/client/informers/externalversions/sources/interface.go
type Interface (line 28) | type Interface interface
type group (line 33) | type group struct
method V1alpha1 (line 45) | func (g *group) V1alpha1() v1alpha1.Interface {
function New (line 40) | func New(f internalinterfaces.SharedInformerFactory, namespace string, t...
FILE: rocketmq-knative/source/pkg/client/informers/externalversions/sources/v1alpha1/interface.go
type Interface (line 27) | type Interface interface
type version (line 31) | type version struct
method RocketMQSources (line 42) | func (v *version) RocketMQSources() RocketMQSourceInformer {
function New (line 38) | func New(f internalinterfaces.SharedInformerFactory, namespace string, t...
FILE: rocketmq-knative/source/pkg/client/informers/externalversions/sources/v1alpha1/rocketmqsource.go
type RocketMQSourceInformer (line 35) | type RocketMQSourceInformer interface
type rocketmqSourceInformer (line 40) | type rocketmqSourceInformer struct
method defaultInformer (line 78) | func (f *rocketmqSourceInformer) defaultInformer(client versioned.Inte...
method Informer (line 82) | func (f *rocketmqSourceInformer) Informer() cache.SharedIndexInformer {
method Lister (line 86) | func (f *rocketmqSourceInformer) Lister() v1alpha1.RocketMQSourceLister {
function NewRocketMQSourceInformer (line 49) | func NewRocketMQSourceInformer(client versioned.Interface, namespace str...
function NewFilteredRocketMQSourceInformer (line 56) | func NewFilteredRocketMQSourceInformer(client versioned.Interface, names...
FILE: rocketmq-knative/source/pkg/client/listers/sources/v1alpha1/expansion_generated.go
type RocketMQSourceListerExpansion (line 23) | type RocketMQSourceListerExpansion interface
type RocketMQSourceNamespaceListerExpansion (line 26) | type RocketMQSourceNamespaceListerExpansion interface
FILE: rocketmq-knative/source/pkg/client/listers/sources/v1alpha1/rocketmqsource.go
type RocketMQSourceLister (line 29) | type RocketMQSourceLister interface
type rocketmqsourceSourceLister (line 38) | type rocketmqsourceSourceLister struct
method List (line 48) | func (s *rocketmqsourceSourceLister) List(selector labels.Selector) (r...
method RocketMQSources (line 56) | func (s *rocketmqsourceSourceLister) RocketMQSources(namespace string)...
function NewRocketMQSourceLister (line 43) | func NewRocketMQSourceLister(indexer cache.Indexer) RocketMQSourceLister {
type RocketMQSourceNamespaceLister (line 61) | type RocketMQSourceNamespaceLister interface
type rocketmqSourceNamespaceLister (line 71) | type rocketmqSourceNamespaceLister struct
method List (line 77) | func (s rocketmqSourceNamespaceLister) List(selector labels.Selector) ...
method Get (line 85) | func (s rocketmqSourceNamespaceLister) Get(name string) (*v1alpha1.Roc...
FILE: rocketmq-knative/source/pkg/controller/sdk/finalizers_accessor.go
type FinalizersAccessor (line 30) | type FinalizersAccessor interface
function NewReflectedFinalizersAccessor (line 37) | func NewReflectedFinalizersAccessor(object interface{}) (FinalizersAcces...
type reflectedFinalizersAccessor (line 68) | type reflectedFinalizersAccessor struct
method GetFinalizers (line 74) | func (r *reflectedFinalizersAccessor) GetFinalizers() sets.String {
method SetFinalizers (line 79) | func (r *reflectedFinalizersAccessor) SetFinalizers(finalizers sets.St...
FILE: rocketmq-knative/source/pkg/controller/sdk/provider.go
type KnativeReconciler (line 32) | type KnativeReconciler interface
type Provider (line 37) | type Provider struct
method Add (line 50) | func (p *Provider) Add(mgr manager.Manager, logger *zap.SugaredLogger)...
FILE: rocketmq-knative/source/pkg/controller/sdk/reconciler.go
type Reconciler (line 36) | type Reconciler struct
method Reconcile (line 50) | func (r *Reconciler) Reconcile(request reconcile.Request) (reconcile.R...
method InjectClient (line 94) | func (r *Reconciler) InjectClient(c client.Client) error {
method InjectConfig (line 100) | func (r *Reconciler) InjectConfig(c *rest.Config) error {
method needsUpdate (line 105) | func (r *Reconciler) needsUpdate(ctx context.Context, old, new runtime...
method update (line 145) | func (r *Reconciler) update(ctx context.Context, request reconcile.Req...
FILE: rocketmq-knative/source/pkg/controller/sdk/status_accessor.go
type StatusAccessor (line 29) | type StatusAccessor interface
function NewReflectedStatusAccessor (line 36) | func NewReflectedStatusAccessor(object interface{}) (StatusAccessor, err...
type reflectedStatusAccessor (line 59) | type reflectedStatusAccessor struct
method GetStatus (line 64) | func (r *reflectedStatusAccessor) GetStatus() interface{} {
method SetStatus (line 74) | func (r *reflectedStatusAccessor) SetStatus(status interface{}) {
FILE: rocketmq-knative/source/pkg/controller/sinks/sinks.go
function GetSinkURI (line 33) | func GetSinkURI(ctx context.Context, c client.Client, sink *corev1.Objec...
FILE: rocketmq-knative/source/pkg/controller/sinks/sinks_test.go
function init (line 55) | func init() {
function TestGetSinkURI (line 60) | func TestGetSinkURI(t *testing.T) {
function v1Service (line 154) | func v1Service() *unstructured.Unstructured {
function getAddressable (line 167) | func getAddressable() *unstructured.Unstructured {
function getAddressableWithHostname (line 185) | func getAddressableWithHostname() *unstructured.Unstructured {
function getAddressableNoStatus (line 195) | func getAddressableNoStatus() *unstructured.Unstructured {
function getAddressableNilAddress (line 208) | func getAddressableNilAddress() *unstructured.Unstructured {
function getAddressableNilHostname (line 224) | func getAddressableNilHostname() *unstructured.Unstructured {
function getServiceRef (line 242) | func getServiceRef() *corev1.ObjectReference {
function getAddressableRef (line 250) | func getAddressableRef() *corev1.ObjectReference {
function getUnaddressableRef (line 258) | func getUnaddressableRef() *corev1.ObjectReference {
FILE: rocketmq-knative/source/pkg/controller/testing/mock_client.go
type MockHandled (line 27) | type MockHandled
constant Handled (line 32) | Handled MockHandled = iota
constant Unhandled (line 35) | Unhandled
type MockGet (line 42) | type MockGet
type MockList (line 43) | type MockList
type MockCreate (line 44) | type MockCreate
type MockDelete (line 45) | type MockDelete
type MockUpdate (line 46) | type MockUpdate
type MockClient (line 52) | type MockClient struct
method stopMocking (line 76) | func (m *MockClient) stopMocking() {
method Get (line 87) | func (m *MockClient) Get(ctx context.Context, key client.ObjectKey, ob...
method List (line 100) | func (m *MockClient) List(ctx context.Context, opts *client.ListOption...
method Create (line 113) | func (m *MockClient) Create(ctx context.Context, obj runtime.Object) e...
method Delete (line 126) | func (m *MockClient) Delete(ctx context.Context, obj runtime.Object, o...
method Update (line 139) | func (m *MockClient) Update(ctx context.Context, obj runtime.Object) e...
method Status (line 152) | func (m *MockClient) Status() client.StatusWriter {
type Mocks (line 61) | type Mocks struct
function NewMockClient (line 69) | func NewMockClient(innerClient client.Client, mocks Mocks) *MockClient {
FILE: rocketmq-knative/source/pkg/controller/testing/table.go
type TestCase (line 44) | type TestCase struct
method Runner (line 99) | func (tc *TestCase) Runner(t *testing.T, r sdk.KnativeReconciler, c *M...
method GetDynamicClient (line 126) | func (tc *TestCase) GetDynamicClient() dynamic.Interface {
method GetClient (line 134) | func (tc *TestCase) GetClient() *MockClient {
method Reconcile (line 141) | func (tc *TestCase) Reconcile(c client.Client, r sdk.KnativeReconciler...
method VerifyErr (line 162) | func (tc *TestCase) VerifyErr(err error) error {
method VerifyResult (line 184) | func (tc *TestCase) VerifyResult(result reconcile.Result) error {
method VerifyResultSDK (line 193) | func (tc *TestCase) VerifyResultSDK(result runtime.Object) error {
method VerifyWantPresent (line 214) | func (tc *TestCase) VerifyWantPresent(c client.Client) error {
method VerifyWantAbsent (line 257) | func (tc *TestCase) VerifyWantAbsent(c client.Client) error {
type stateErrors (line 200) | type stateErrors struct
method Error (line 204) | func (se stateErrors) Error() string {
FILE: rocketmq-knative/source/pkg/kncloudevents/good_client.go
function NewDefaultClient (line 24) | func NewDefaultClient(target ...string) (cloudevents.Client, error) {
FILE: rocketmq-knative/source/pkg/reconciler/creds.go
function GetCredentials (line 33) | func GetCredentials(ctx context.Context, client client.Client, src *v1al...
function GetCredentialsByName (line 39) | func GetCredentialsByName(ctx context.Context, client client.Client, nam...
FILE: rocketmq-knative/source/pkg/reconciler/eventtype/eventtype.go
type Reconciler (line 37) | type Reconciler struct
method Reconcile (line 51) | func (r *Reconciler) Reconcile(ctx context.Context, owner metav1.Objec...
method getEventTypes (line 82) | func (r *Reconciler) getEventTypes(ctx context.Context, namespace stri...
method makeEventTypes (line 104) | func (r *Reconciler) makeEventTypes(args *ReconcilerArgs, owner metav1...
method computeDiff (line 127) | func (r *Reconciler) computeDiff(current []eventingv1alpha1.EventType,...
type ReconcilerArgs (line 43) | type ReconcilerArgs struct
function asMap (line 157) | func asMap(eventTypes []eventingv1alpha1.EventType, keyFunc func(*eventi...
function keyFromEventType (line 166) | func keyFromEventType(eventType *eventingv1alpha1.EventType) string {
FILE: rocketmq-knative/source/pkg/reconciler/eventtype/resources/eventtype.go
constant generateNameSafety (line 33) | generateNameSafety = 10
function MakeEventType (line 41) | func MakeEventType(spec eventingv1alpha1.EventTypeSpec, namespace string...
function toDNS1123Subdomain (line 53) | func toDNS1123Subdomain(name string) string {
FILE: rocketmq-knative/source/pkg/reconciler/resources/receive_adapter.go
type ReceiveAdapterArgs (line 30) | type ReceiveAdapterArgs struct
function MakeReceiveAdapter (line 40) | func MakeReceiveAdapter(args *ReceiveAdapterArgs) *v1.Deployment {
FILE: rocketmq-knative/source/pkg/reconciler/rocketmqsource.go
constant controllerAgentName (line 49) | controllerAgentName = "source-controller"
constant raImageEnvVar (line 53) | raImageEnvVar = "RocketMQ_RA_IMAGE"
constant finalizerName (line 55) | finalizerName = controllerAgentName
function Add (line 65) | func Add(mgr manager.Manager, logger *zap.SugaredLogger) error {
type reconciler (line 87) | type reconciler struct
method InjectClient (line 94) | func (r *reconciler) InjectClient(c client.Client) error {
method Reconcile (line 100) | func (r *reconciler) Reconcile(ctx context.Context, object runtime.Obj...
method addFinalizer (line 143) | func (r *reconciler) addFinalizer(s *v1alpha1.RocketMQSource) {
method removeFinalizer (line 149) | func (r *reconciler) removeFinalizer(s *v1alpha1.RocketMQSource) {
method createReceiveAdapter (line 155) | func (r *reconciler) createReceiveAdapter(ctx context.Context, src *v1...
method getReceiveAdapter (line 180) | func (r *reconciler) getReceiveAdapter(ctx context.Context, src *v1alp...
method getLabelSelector (line 208) | func (r *reconciler) getLabelSelector(src *v1alpha1.RocketMQSource) la...
method reconcileEventTypes (line 219) | func (r *reconciler) reconcileEventTypes(ctx context.Context, src *v1a...
method newEventTypeReconcilerArgs (line 224) | func (r *reconciler) newEventTypeReconcilerArgs(src *v1alpha1.RocketMQ...
function getLabels (line 212) | func getLabels(src *v1alpha1.RocketMQSource) map[string]string {
function generateSubName (line 240) | func generateSubName(src *v1alpha1.RocketMQSource) string {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/compute/metadata/metadata.go
constant metadataIP (line 41) | metadataIP = "169.254.169.254"
constant metadataHostEnv (line 48) | metadataHostEnv = "GCE_METADATA_HOST"
constant userAgent (line 50) | userAgent = "gcloud-golang/0.1"
type cachedValue (line 53) | type cachedValue struct
method get (line 156) | func (c *cachedValue) get() (v string, err error) {
type NotDefinedError (line 92) | type NotDefinedError
method Error (line 94) | func (suffix NotDefinedError) Error() string {
function Get (line 106) | func Get(suffix string) (string, error) {
function getETag (line 113) | func getETag(client *http.Client, suffix string) (value, etag string, er...
function getTrimmed (line 150) | func getTrimmed(suffix string) (s string, err error) {
function OnGCE (line 179) | func OnGCE() bool {
function initOnGCE (line 184) | func initOnGCE() {
function testOnGCE (line 188) | func testOnGCE() bool {
function systemInfoSuggestsGCE (line 259) | func systemInfoSuggestsGCE() bool {
function Subscribe (line 278) | func Subscribe(suffix string, fn func(v string, ok bool) error) error {
function ProjectID (line 315) | func ProjectID() (string, error) { return projID.get() }
function NumericProjectID (line 318) | func NumericProjectID() (string, error) { return projNum.get() }
function InternalIP (line 321) | func InternalIP() (string, error) {
function ExternalIP (line 326) | func ExternalIP() (string, error) {
function Hostname (line 332) | func Hostname() (string, error) {
function InstanceTags (line 338) | func InstanceTags() ([]string, error) {
function InstanceID (line 351) | func InstanceID() (string, error) {
function InstanceName (line 356) | func InstanceName() (string, error) {
function Zone (line 365) | func Zone() (string, error) {
function InstanceAttributes (line 377) | func InstanceAttributes() ([]string, error) { return lines("instance/att...
function ProjectAttributes (line 382) | func ProjectAttributes() ([]string, error) { return lines("project/attri...
function lines (line 384) | func lines(suffix string) ([]string, error) {
function InstanceAttributeValue (line 404) | func InstanceAttributeValue(attr string) (string, error) {
function ProjectAttributeValue (line 416) | func ProjectAttributeValue(attr string) (string, error) {
function Scopes (line 423) | func Scopes(serviceAccount string) ([]string, error) {
function strsContains (line 430) | func strsContains(ss []string, s string) bool {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/iam/iam.go
type client (line 35) | type client interface
type grpcClient (line 42) | type grpcClient struct
method Get (line 57) | func (g *grpcClient) Get(ctx context.Context, resource string) (*pb.Po...
method Set (line 70) | func (g *grpcClient) Set(ctx context.Context, resource string, p *pb.P...
method Test (line 80) | func (g *grpcClient) Test(ctx context.Context, resource string, perms ...
type Handle (line 97) | type Handle struct
method Policy (line 122) | func (h *Handle) Policy(ctx context.Context) (*Policy, error) {
method SetPolicy (line 134) | func (h *Handle) SetPolicy(ctx context.Context, policy *Policy) error {
method TestPermissions (line 139) | func (h *Handle) TestPermissions(ctx context.Context, permissions []st...
function InternalNewHandle (line 106) | func InternalNewHandle(conn *grpc.ClientConn, resource string) *Handle {
function InternalNewHandleClient (line 114) | func InternalNewHandleClient(c client, resource string) *Handle {
type RoleName (line 144) | type RoleName
constant Owner (line 148) | Owner RoleName = "roles/owner"
constant Editor (line 149) | Editor RoleName = "roles/editor"
constant Viewer (line 150) | Viewer RoleName = "roles/viewer"
constant AllUsers (line 155) | AllUsers = "allUsers"
constant AllAuthenticatedUsers (line 158) | AllAuthenticatedUsers = "allAuthenticatedUsers"
type Policy (line 165) | type Policy struct
method Members (line 177) | func (p *Policy) Members(r RoleName) []string {
method HasRole (line 186) | func (p *Policy) HasRole(member string, r RoleName) bool {
method Add (line 192) | func (p *Policy) Add(member string, r RoleName) {
method Remove (line 211) | func (p *Policy) Remove(member string, r RoleName) {
method Roles (line 241) | func (p *Policy) Roles() []RoleName {
method binding (line 253) | func (p *Policy) binding(r RoleName) *pb.Binding {
method bindingIndex (line 261) | func (p *Policy) bindingIndex(r RoleName) int {
function memberIndex (line 274) | func memberIndex(m string, b *pb.Binding) int {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/internal/optional/optional.go
type Bool (line 28) | type Bool interface
type String (line 31) | type String interface
type Int (line 34) | type Int interface
type Uint (line 37) | type Uint interface
type Float64 (line 40) | type Float64 interface
type Duration (line 43) | type Duration interface
function ToBool (line 48) | func ToBool(v Bool) bool {
function ToString (line 58) | func ToString(v String) string {
function ToInt (line 68) | func ToInt(v Int) int {
function ToUint (line 78) | func ToUint(v Uint) uint {
function ToFloat64 (line 88) | func ToFloat64(v Float64) float64 {
function ToDuration (line 98) | func ToDuration(v Duration) time.Duration {
function doPanic (line 106) | func doPanic(capType string, v interface{}) {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/internal/version/version.go
constant Repo (line 29) | Repo = "20180226"
function Go (line 33) | func Go() string {
constant develPrefix (line 39) | develPrefix = "devel +"
function goVer (line 41) | func goVer(s string) string {
function notSemverRune (line 69) | func notSemverRune(r rune) bool {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/apiv1/doc.go
function insertMetadata (line 33) | func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Con...
function DefaultAuthScopes (line 45) | func DefaultAuthScopes() []string {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/apiv1/path_funcs.go
function PublisherProjectPath (line 22) | func PublisherProjectPath(project string) string {
function PublisherTopicPath (line 34) | func PublisherTopicPath(project, topic string) string {
function SubscriberProjectPath (line 48) | func SubscriberProjectPath(project string) string {
function SubscriberSnapshotPath (line 60) | func SubscriberSnapshotPath(project, snapshot string) string {
function SubscriberSubscriptionPath (line 74) | func SubscriberSubscriptionPath(project, subscription string) string {
function SubscriberTopicPath (line 88) | func SubscriberTopicPath(project, topic string) string {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/apiv1/publisher_client.go
type PublisherCallOptions (line 37) | type PublisherCallOptions struct
function defaultPublisherClientOptions (line 47) | func defaultPublisherClientOptions() []option.ClientOption {
function defaultPublisherCallOptions (line 54) | func defaultPublisherCallOptions() *PublisherCallOptions {
type PublisherClient (line 98) | type PublisherClient struct
method Connection (line 132) | func (c *PublisherClient) Connection() *grpc.ClientConn {
method Close (line 138) | func (c *PublisherClient) Close() error {
method SetGoogleClientInfo (line 145) | func (c *PublisherClient) SetGoogleClientInfo(keyval ...string) {
method SubscriptionIAM (line 151) | func (c *PublisherClient) SubscriptionIAM(subscription *pubsubpb.Subsc...
method TopicIAM (line 155) | func (c *PublisherClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle {
method CreateTopic (line 160) | func (c *PublisherClient) CreateTopic(ctx context.Context, req *pubsub...
method UpdateTopic (line 181) | func (c *PublisherClient) UpdateTopic(ctx context.Context, req *pubsub...
method Publish (line 199) | func (c *PublisherClient) Publish(ctx context.Context, req *pubsubpb.P...
method GetTopic (line 215) | func (c *PublisherClient) GetTopic(ctx context.Context, req *pubsubpb....
method ListTopics (line 231) | func (c *PublisherClient) ListTopics(ctx context.Context, req *pubsubp...
method ListTopicSubscriptions (line 266) | func (c *PublisherClient) ListTopicSubscriptions(ctx context.Context, ...
method DeleteTopic (line 305) | func (c *PublisherClient) DeleteTopic(ctx context.Context, req *pubsub...
function NewPublisherClient (line 116) | func NewPublisherClient(ctx context.Context, opts ...option.ClientOption...
type StringIterator (line 317) | type StringIterator struct
method PageInfo (line 332) | func (it *StringIterator) PageInfo() *iterator.PageInfo {
method Next (line 338) | func (it *StringIterator) Next() (string, error) {
method bufLen (line 348) | func (it *StringIterator) bufLen() int {
method takeBuf (line 352) | func (it *StringIterator) takeBuf() interface{} {
type TopicIterator (line 359) | type TopicIterator struct
method PageInfo (line 374) | func (it *TopicIterator) PageInfo() *iterator.PageInfo {
method Next (line 380) | func (it *TopicIterator) Next() (*pubsubpb.Topic, error) {
method bufLen (line 390) | func (it *TopicIterator) bufLen() int {
method takeBuf (line 394) | func (it *TopicIterator) takeBuf() interface{} {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/apiv1/subscriber_client.go
type SubscriberCallOptions (line 37) | type SubscriberCallOptions struct
function defaultSubscriberClientOptions (line 55) | func defaultSubscriberClientOptions() []option.ClientOption {
function defaultSubscriberCallOptions (line 62) | func defaultSubscriberCallOptions() *SubscriberCallOptions {
type SubscriberClient (line 127) | type SubscriberClient struct
method Connection (line 161) | func (c *SubscriberClient) Connection() *grpc.ClientConn {
method Close (line 167) | func (c *SubscriberClient) Close() error {
method SetGoogleClientInfo (line 174) | func (c *SubscriberClient) SetGoogleClientInfo(keyval ...string) {
method SubscriptionIAM (line 180) | func (c *SubscriberClient) SubscriptionIAM(subscription *pubsubpb.Subs...
method TopicIAM (line 184) | func (c *SubscriberClient) TopicIAM(topic *pubsubpb.Topic) *iam.Handle {
method CreateSubscription (line 198) | func (c *SubscriberClient) CreateSubscription(ctx context.Context, req...
method GetSubscription (line 214) | func (c *SubscriberClient) GetSubscription(ctx context.Context, req *p...
method UpdateSubscription (line 235) | func (c *SubscriberClient) UpdateSubscription(ctx context.Context, req...
method ListSubscriptions (line 251) | func (c *SubscriberClient) ListSubscriptions(ctx context.Context, req ...
method DeleteSubscription (line 290) | func (c *SubscriberClient) DeleteSubscription(ctx context.Context, req...
method ModifyAckDeadline (line 306) | func (c *SubscriberClient) ModifyAckDeadline(ctx context.Context, req ...
method Acknowledge (line 324) | func (c *SubscriberClient) Acknowledge(ctx context.Context, req *pubsu...
method Pull (line 339) | func (c *SubscriberClient) Pull(ctx context.Context, req *pubsubpb.Pul...
method StreamingPull (line 366) | func (c *SubscriberClient) StreamingPull(ctx context.Context, opts ......
method ModifyPushConfig (line 387) | func (c *SubscriberClient) ModifyPushConfig(ctx context.Context, req *...
method ListSnapshots (line 399) | func (c *SubscriberClient) ListSnapshots(ctx context.Context, req *pub...
method CreateSnapshot (line 443) | func (c *SubscriberClient) CreateSnapshot(ctx context.Context, req *pu...
method UpdateSnapshot (line 464) | func (c *SubscriberClient) UpdateSnapshot(ctx context.Context, req *pu...
method DeleteSnapshot (line 483) | func (c *SubscriberClient) DeleteSnapshot(ctx context.Context, req *pu...
method Seek (line 496) | func (c *SubscriberClient) Seek(ctx context.Context, req *pubsubpb.See...
function NewSubscriberClient (line 145) | func NewSubscriberClient(ctx context.Context, opts ...option.ClientOptio...
type SnapshotIterator (line 512) | type SnapshotIterator struct
method PageInfo (line 527) | func (it *SnapshotIterator) PageInfo() *iterator.PageInfo {
method Next (line 533) | func (it *SnapshotIterator) Next() (*pubsubpb.Snapshot, error) {
method bufLen (line 543) | func (it *SnapshotIterator) bufLen() int {
method takeBuf (line 547) | func (it *SnapshotIterator) takeBuf() interface{} {
type SubscriptionIterator (line 554) | type SubscriptionIterator struct
method PageInfo (line 569) | func (it *SubscriptionIterator) PageInfo() *iterator.PageInfo {
method Next (line 575) | func (it *SubscriptionIterator) Next() (*pubsubpb.Subscription, error) {
method bufLen (line 585) | func (it *SubscriptionIterator) bufLen() int {
method takeBuf (line 589) | func (it *SubscriptionIterator) takeBuf() interface{} {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/flow_controller.go
type flowController (line 23) | type flowController struct
method acquire (line 52) | func (f *flowController) acquire(ctx context.Context, size int) error {
method tryAcquire (line 74) | func (f *flowController) tryAcquire(size int) bool {
method release (line 92) | func (f *flowController) release(size int) {
method bound (line 101) | func (f *flowController) bound(size int) int64 {
function newFlowController (line 32) | func newFlowController(maxCount, maxSize int) *flowController {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/go18.go
function openCensusOptions (line 32) | func openCensusOptions() []option.ClientOption {
function init (line 40) | func init() {
constant statsPrefix (line 47) | statsPrefix = "cloud.google.com/go/pubsub/"
function init (line 115) | func init() {
function countView (line 126) | func countView(m *stats.Int64Measure) *view.View {
function withSubscriptionKey (line 138) | func withSubscriptionKey(ctx context.Context, subName string) context.Co...
function recordStat (line 148) | func recordStat(ctx context.Context, m *stats.Int64Measure, n int64) {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/internal/distribution/distribution.go
type D (line 26) | type D struct
method Record (line 41) | func (d *D) Record(v int) {
method Percentile (line 52) | func (d *D) Percentile(p float64) int {
function New (line 31) | func New(n int) *D {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/iterator.go
function newMessageIterator (line 31) | func newMessageIterator(ctx context.Context, subc *vkit.SubscriberClient...
type streamingMessageIterator (line 36) | type streamingMessageIterator struct
method stop (line 90) | func (it *streamingMessageIterator) stop() {
method checkDrained (line 106) | func (it *streamingMessageIterator) checkDrained() {
method done (line 122) | func (it *streamingMessageIterator) done(ackID string, ack bool, recei...
method fail (line 136) | func (it *streamingMessageIterator) fail(err error) {
method receive (line 147) | func (it *streamingMessageIterator) receive() ([]*Message, error) {
method sender (line 197) | func (it *streamingMessageIterator) sender() {
method send (line 261) | func (it *streamingMessageIterator) send(req *pb.StreamingPullRequest)...
method handleKeepAlives (line 278) | func (it *streamingMessageIterator) handleKeepAlives() {
function newStreamingMessageIterator (line 56) | func newStreamingMessageIterator(ctx context.Context, ps *pullStream, po...
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/message.go
type Message (line 25) | type Message struct
method Ack (line 81) | func (m *Message) Ack() {
method Nack (line 90) | func (m *Message) Nack() {
method done (line 94) | func (m *Message) done(ack bool) {
function toMessage (line 58) | func toMessage(resp *pb.ReceivedMessage) (*Message, error) {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/not_go18.go
function openCensusOptions (line 26) | func openCensusOptions() []option.ClientOption { return nil }
function withSubscriptionKey (line 28) | func withSubscriptionKey(ctx context.Context, _ string) context.Context {
type dummy (line 32) | type dummy struct
function recordStat (line 53) | func recordStat(context.Context, dummy, int64) {
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/pubsub.go
constant ScopePubSub (line 34) | ScopePubSub = "https://www.googleapis.com/auth/pubsub"
constant ScopeCloudPlatform (line 38) | ScopeCloudPlatform = "https://www.googleapis.com/auth/cloud-platform"
constant prodAddr (line 42) | prodAddr = "https://pubsub.googleapis.com/"
constant minAckDeadline (line 43) | minAckDeadline = 10 * time.Second
constant maxAckDeadline (line 44) | maxAckDeadline = 10 * time.Minute
type Client (line 51) | type Client struct
method Close (line 104) | func (c *Client) Close() error {
method fullyQualifiedProjectName (line 111) | func (c *Client) fullyQualifiedProjectName() string {
function NewClient (line 58) | func NewClient(ctx context.Context, projectID string, opts ...option.Cli...
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/pullstream.go
type pullStream (line 31) | type pullStream struct
method get (line 66) | func (s *pullStream) get(spc *pb.Subscriber_StreamingPullClient) (*pb....
method call (line 102) | func (s *pullStream) call(f func(pb.Subscriber_StreamingPullClient) er...
method Send (line 135) | func (s *pullStream) Send(req *pb.StreamingPullRequest) error {
method Recv (line 151) | func (s *pullStream) Recv() (*pb.StreamingPullResponse, error) {
method CloseSend (line 165) | func (s *pullStream) CloseSend() error {
function newPullStream (line 40) | func newPullStream(ctx context.Context, subc *vkit.SubscriberClient, sub...
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/service.go
constant maxPayload (line 39) | maxPayload = 512 * 1024
constant reqFixedOverhead (line 40) | reqFixedOverhead = 100
constant overheadPerID (line 41) | overheadPerID = 3
constant maxSendRecvBytes (line 42) | maxSendRecvBytes = 20 * 1024 * 1024
function convertMessages (line 45) | func convertMessages(rms []*pb.ReceivedMessage) ([]*Message, error) {
function trunc32 (line 57) | func trunc32(i int64) int32 {
function isRetryable (line 65) | func isRetryable(err error) bool {
function splitRequest (line 81) | func splitRequest(req *pb.StreamingPullRequest, maxSize int) (prefix, re...
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/snapshot.go
type Snapshot (line 28) | type Snapshot struct
method ID (line 36) | func (s *Snapshot) ID() string {
method Delete (line 87) | func (snap *Snapshot) Delete(ctx context.Context) error {
type SnapshotConfig (line 46) | type SnapshotConfig struct
method Snapshot (line 53) | func (c *Client) Snapshot(id string) *Snapshot {
method Snapshots (line 61) | func (c *Client) Snapshots(ctx context.Context) *SnapshotConfigIterator {
type SnapshotConfigIterator (line 76) | type SnapshotConfigIterator struct
method Next (line 82) | func (snaps *SnapshotConfigIterator) Next() (*SnapshotConfig, error) {
method SeekToTime (line 102) | func (s *Subscription) SeekToTime(ctx context.Context, t time.Time) error {
method CreateSnapshot (line 124) | func (s *Subscription) CreateSnapshot(ctx context.Context, name string) ...
method SeekToSnapshot (line 142) | func (s *Subscription) SeekToSnapshot(ctx context.Context, snap *Snapsho...
function toSnapshotConfig (line 150) | func toSnapshotConfig(snap *pb.Snapshot, c *Client) (*SnapshotConfig, er...
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/subscription.go
type Subscription (line 38) | type Subscription struct
method String (line 65) | func (s *Subscription) String() string {
method ID (line 70) | func (s *Subscription) ID() string {
method Delete (line 242) | func (s *Subscription) Delete(ctx context.Context) error {
method Exists (line 247) | func (s *Subscription) Exists(ctx context.Context) (bool, error) {
method Config (line 259) | func (s *Subscription) Config(ctx context.Context) (SubscriptionConfig...
method Update (line 290) | func (s *Subscription) Update(ctx context.Context, cfg SubscriptionCon...
method updateRequest (line 302) | func (s *Subscription) updateRequest(cfg *SubscriptionConfigToUpdate) ...
method IAM (line 327) | func (s *Subscription) IAM() *iam.Handle {
method Receive (line 400) | func (s *Subscription) Receive(ctx context.Context, f func(context.Con...
method receive (line 455) | func (s *Subscription) receive(ctx context.Context, po *pullOptions, f...
method Subscription (line 52) | func (c *Client) Subscription(id string) *Subscription {
method SubscriptionInProject (line 57) | func (c *Client) SubscriptionInProject(id, projectID string) *Subscripti...
method Subscriptions (line 80) | func (c *Client) Subscriptions(ctx context.Context) *SubscriptionIterator {
type SubscriptionIterator (line 97) | type SubscriptionIterator struct
method Next (line 103) | func (subs *SubscriptionIterator) Next() (*Subscription, error) {
type PushConfig (line 112) | type PushConfig struct
method toProto (line 120) | func (pc *PushConfig) toProto() *pb.PushConfig {
type SubscriptionConfig (line 128) | type SubscriptionConfig struct
method toProto (line 149) | func (cfg *SubscriptionConfig) toProto(name string) *pb.Subscription {
function protoToSubscriptionConfig (line 171) | func protoToSubscriptionConfig(pbSub *pb.Subscription, c *Client) (Subsc...
type ReceiveSettings (line 194) | type ReceiveSettings struct
type SubscriptionConfigToUpdate (line 272) | type SubscriptionConfigToUpdate struct
method CreateSubscription (line 353) | func (c *Client) CreateSubscription(ctx context.Context, id string, cfg ...
type pullOptions (line 516) | type pullOptions struct
FILE: rocketmq-knative/source/vendor/cloud.google.com/go/pubsub/topic.go
constant MaxPublishRequestCount (line 38) | MaxPublishRequestCount = 1000
constant MaxPublishRequestBytes (line 41) | MaxPublishRequestBytes = 1e7
constant maxInt (line 43) | maxInt = int(^uint(0) >> 1)
type Topic (line 52) | type Topic struct
method ID (line 178) | func (t *Topic) ID() string {
method String (line 188) | func (t *Topic) String() string {
method Delete (line 193) | func (t *Topic) Delete(ctx context.Context) error {
method Exists (line 198) | func (t *Topic) Exists(ctx context.Context) (bool, error) {
method IAM (line 212) | func (t *Topic) IAM() *iam.Handle {
method Subscriptions (line 219) | func (t *Topic) Subscriptions(ctx context.Context) *SubscriptionIterat...
method Publish (line 240) | func (t *Topic) Publish(ctx context.Context, msg *Message) *PublishRes...
method Stop (line 272) | func (t *Topic) Stop() {
method initBundler (line 326) | func (t *Topic) initBundler() {
method publishMessageBundle (line 377) | func (t *Topic) publishMessageBundle(ctx context.Context, bms []*bundl...
type PublishSettings (line 72) | type PublishSettings struct
method CreateTopic (line 106) | func (c *Client) CreateTopic(ctx context.Context, id string) (*Topic, er...
method Topic (line 121) | func (c *Client) Topic(id string) *Topic {
method TopicInProject (line 131) | func (c *Client) TopicInProject(id, projectID string) *Topic {
function newTopic (line 135) | func newTopic(c *Client, name string) *Topic {
method Topics (line 148) | func (c *Client) Topics(ctx context.Context) *TopicIterator {
type TopicIterator (line 163) | type TopicIterator struct
method Next (line 169) | func (tps *TopicIterator) Next() (*Topic, error) {
type PublishResult (line 288) | type PublishResult struct
method Ready (line 296) | func (r *PublishResult) Ready() <-chan struct{} { return r.ready }
method Get (line 300) | func (r *PublishResult) Get(ctx context.Context) (serverID string, err...
method set (line 315) | func (r *PublishResult) set(sid string, err error) {
type bundledMessage (line 321) | type bundledMessage struct
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/bitstream.h
type BIT_CStream_t (line 86) | typedef struct
type BIT_DStream_t (line 121) | typedef struct
type BIT_DStream_status (line 130) | typedef enum { BIT_DStream_unfinished = 0,
function BIT_highbit32 (line 170) | MEM_STATIC unsigned BIT_highbit32 (U32 val)
function MEM_STATIC (line 213) | MEM_STATIC size_t BIT_initCStream(BIT_CStream_t* bitC,
function MEM_STATIC (line 228) | MEM_STATIC void BIT_addBits(BIT_CStream_t* bitC,
function MEM_STATIC (line 240) | MEM_STATIC void BIT_addBitsFast(BIT_CStream_t* bitC,
function MEM_STATIC (line 252) | MEM_STATIC void BIT_flushBitsFast(BIT_CStream_t* bitC)
function MEM_STATIC (line 268) | MEM_STATIC void BIT_flushBits(BIT_CStream_t* bitC)
function MEM_STATIC (line 282) | MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC)
function MEM_STATIC (line 300) | MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBu...
function MEM_STATIC (line 348) | MEM_STATIC size_t BIT_getUpperBits(size_t bitContainer, U32 const start)
function MEM_STATIC (line 353) | MEM_STATIC size_t BIT_getMiddleBits(size_t bitContainer, U32 const start...
function MEM_STATIC (line 368) | MEM_STATIC size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits)
function MEM_STATIC (line 380) | MEM_STATIC size_t BIT_lookBits(const BIT_DStream_t* bitD, U32 nbBits)
function MEM_STATIC (line 392) | MEM_STATIC size_t BIT_lookBitsFast(const BIT_DStream_t* bitD, U32 nbBits)
function MEM_STATIC (line 399) | MEM_STATIC void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits)
function MEM_STATIC (line 408) | MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, U32 nbBits)
function MEM_STATIC (line 417) | MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, U32 nbBits)
function MEM_STATIC (line 430) | MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD)
function BIT_endOfDStream (line 462) | MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* DStream)
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/cover.c
type COVER_map_pair_t (line 79) | typedef struct COVER_map_pair_t_s {
type COVER_map_t (line 84) | typedef struct COVER_map_s {
function COVER_map_clear (line 94) | static void COVER_map_clear(COVER_map_t *map) {
function COVER_map_init (line 104) | static int COVER_map_init(COVER_map_t *map, U32 size) {
function U32 (line 122) | static U32 COVER_map_hash(COVER_map_t *map, U32 key) {
function U32 (line 129) | static U32 COVER_map_index(COVER_map_t *map, U32 key) {
function U32 (line 148) | static U32 *COVER_map_at(COVER_map_t *map, U32 key) {
function COVER_map_remove (line 160) | static void COVER_map_remove(COVER_map_t *map, U32 key) {
function COVER_map_destroy (line 189) | static void COVER_map_destroy(COVER_map_t *map) {
type COVER_ctx_t (line 201) | typedef struct {
function COVER_sum (line 223) | static size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples) {
function COVER_cmp (line 237) | static int COVER_cmp(COVER_ctx_t *ctx, const void *lp, const void *rp) {
function COVER_cmp8 (line 245) | static int COVER_cmp8(COVER_ctx_t *ctx, const void *lp, const void *rp) {
function COVER_strict_cmp (line 260) | static int COVER_strict_cmp(const void *lp, const void *rp) {
function COVER_strict_cmp8 (line 270) | static int COVER_strict_cmp8(const void *lp, const void *rp) {
function COVER_groupBy (line 304) | static void
function COVER_group (line 331) | static void COVER_group(COVER_ctx_t *ctx, const void *group,
type COVER_segment_t (line 383) | typedef struct {
function COVER_segment_t (line 400) | static COVER_segment_t COVER_selectSegment(const COVER_ctx_t *ctx, U32 *...
function COVER_checkParameters (line 483) | static int COVER_checkParameters(ZDICT_cover_params_t parameters,
function COVER_ctx_destroy (line 503) | static void COVER_ctx_destroy(COVER_ctx_t *ctx) {
function COVER_ctx_init (line 532) | static int COVER_ctx_init(COVER_ctx_t *ctx, const void *samplesBuffer,
function COVER_buildDictionary (line 607) | static size_t COVER_buildDictionary(const COVER_ctx_t *ctx, U32 *freqs,
function ZDICTLIB_API (line 653) | ZDICTLIB_API size_t ZDICT_trainFromBuffer_cover(
type COVER_best_t (line 715) | typedef struct COVER_best_s {
function COVER_best_init (line 728) | static void COVER_best_init(COVER_best_t *best) {
function COVER_best_wait (line 742) | static void COVER_best_wait(COVER_best_t *best) {
function COVER_best_destroy (line 756) | static void COVER_best_destroy(COVER_best_t *best) {
function COVER_best_start (line 772) | static void COVER_best_start(COVER_best_t *best) {
function COVER_best_finish (line 786) | static void COVER_best_finish(COVER_best_t *best, size_t compressedSize,
type COVER_tryParameters_data_t (line 827) | typedef struct COVER_tryParameters_data_s {
function COVER_tryParameters (line 839) | static void COVER_tryParameters(void *opaque) {
function ZDICTLIB_API (line 931) | ZDICTLIB_API size_t ZDICT_optimizeTrainFromBuffer_cover(
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/cpu.h
type ZSTD_cpuid_t (line 27) | typedef struct {
function ZSTD_cpuid (line 34) | ZSTD_cpuid(void) {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/divsufsort.c
function INLINE (line 153) | static INLINE
function INLINE (line 196) | static INLINE
function INLINE (line 229) | static INLINE
function ss_insertionsort (line 255) | static
function INLINE (line 280) | static INLINE
function ss_heapsort (line 297) | static
function INLINE (line 322) | static INLINE
function INLINE (line 336) | static INLINE
function INLINE (line 351) | static INLINE
function INLINE (line 379) | static INLINE
function ss_mintrosort (line 398) | static
function INLINE (line 540) | static INLINE
function INLINE (line 549) | static INLINE
function ss_inplacemerge (line 590) | static
function ss_mergeforward (line 633) | static
function ss_mergebackward (line 683) | static
function ss_swapmerge (line 742) | static
function sssort (line 834) | static
function INLINE (line 909) | static INLINE
function tr_insertionsort (line 925) | static
function INLINE (line 944) | static INLINE
function tr_heapsort (line 960) | static
function INLINE (line 985) | static INLINE
function INLINE (line 998) | static INLINE
function INLINE (line 1013) | static INLINE
type trbudget_t (line 1040) | typedef struct _trbudget_t trbudget_t;
type _trbudget_t (line 1041) | struct _trbudget_t {
function INLINE (line 1048) | static INLINE
function INLINE (line 1055) | static INLINE
function INLINE (line 1068) | static INLINE
function tr_copy (line 1110) | static
function tr_partialcopy (line 1135) | static
function tr_introsort (line 1173) | static
function trsort (line 1400) | static
function sort_typeBstar (line 1439) | static
function construct_SA (line 1611) | static
function construct_BWT (line 1675) | static
function construct_BWT_indexes (line 1746) | static
function divsufsort (line 1846) | int
function divbwt (line 1875) | int
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/entropy_common.c
function FSE_versionNumber (line 47) | unsigned FSE_versionNumber(void) { return FSE_VERSION_NUMBER; }
function FSE_isError (line 51) | unsigned FSE_isError(size_t code) { return ERR_isError(code); }
function HUF_isError (line 54) | unsigned HUF_isError(size_t code) { return ERR_isError(code); }
function FSE_readNCount (line 61) | size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, uns...
function HUF_readStats (line 160) | size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats,
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/error_private.h
type ZSTD_ErrorCode (line 45) | typedef ZSTD_ErrorCode ERR_enum;
function ERR_isError (line 56) | ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxC...
function ERR_STATIC (line 58) | ERR_STATIC ERR_enum ERR_getErrorCode(size_t code) { if (!ERR_isError(cod...
function ERR_STATIC (line 67) | ERR_STATIC const char* ERR_getErrorName(size_t code)
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/errors.go
type ErrorCode (line 10) | type ErrorCode
method Error (line 13) | func (e ErrorCode) Error() string {
function cIsError (line 17) | func cIsError(code int) bool {
function getError (line 22) | func getError(code int) error {
function IsDstSizeTooSmallError (line 30) | func IsDstSizeTooSmallError(e error) bool {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/fse.h
type FSE_CTable (line 186) | typedef unsigned FSE_CTable;
type FSE_DTable (line 257) | typedef unsigned FSE_DTable;
type FSE_repeat (line 387) | typedef enum {
type FSE_CState_t (line 400) | typedef struct {
type FSE_DState_t (line 460) | typedef struct {
type FSE_symbolCompressionTransform (line 532) | typedef struct {
function MEM_STATIC (line 537) | MEM_STATIC void FSE_initCState(FSE_CState_t* statePtr, const FSE_CTable*...
function MEM_STATIC (line 552) | MEM_STATIC void FSE_initCState2(FSE_CState_t* statePtr, const FSE_CTable...
function MEM_STATIC (line 563) | MEM_STATIC void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* stat...
function MEM_STATIC (line 572) | MEM_STATIC void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t*...
type FSE_DTableHeader (line 581) | typedef struct {
type FSE_decode_t (line 586) | typedef struct
function MEM_STATIC (line 593) | MEM_STATIC void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* b...
function MEM_STATIC (line 602) | MEM_STATIC BYTE FSE_peekSymbol(const FSE_DState_t* DStatePtr)
function MEM_STATIC (line 608) | MEM_STATIC void FSE_updateState(FSE_DState_t* DStatePtr, BIT_DStream_t* ...
function MEM_STATIC (line 616) | MEM_STATIC BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t*...
function MEM_STATIC (line 629) | MEM_STATIC BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStrea...
function FSE_endOfDState (line 640) | MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr)
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/fse_compress.c
function FSE_buildCTable_wksp (line 85) | size_t FSE_buildCTable_wksp(FSE_CTable* ct, const short* normalizedCount...
function FSE_buildCTable (line 167) | size_t FSE_buildCTable(FSE_CTable* ct, const short* normalizedCounter, u...
function FSE_NCountWriteBound (line 180) | size_t FSE_NCountWriteBound(unsigned maxSymbolValue, unsigned tableLog)
function FSE_writeNCount_generic (line 186) | static size_t FSE_writeNCount_generic (void* header, size_t headerBuffer...
function FSE_writeNCount (line 274) | size_t FSE_writeNCount (void* buffer, size_t bufferSize, const short* no...
function FSE_count_simple (line 297) | size_t FSE_count_simple(unsigned* count, unsigned* maxSymbolValuePtr,
function FSE_count_parallel_wksp (line 326) | static size_t FSE_count_parallel_wksp(
function FSE_countFast_wksp (line 401) | size_t FSE_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr,
function FSE_countFast (line 411) | size_t FSE_countFast(unsigned* count, unsigned* maxSymbolValuePtr,
function FSE_count_wksp (line 421) | size_t FSE_count_wksp(unsigned* count, unsigned* maxSymbolValuePtr,
function FSE_count (line 430) | size_t FSE_count(unsigned* count, unsigned* maxSymbolValuePtr,
function FSE_sizeof_CTable (line 450) | size_t FSE_sizeof_CTable (unsigned maxSymbolValue, unsigned tableLog)
function FSE_CTable (line 456) | FSE_CTable* FSE_createCTable (unsigned maxSymbolValue, unsigned tableLog)
function FSE_freeCTable (line 464) | void FSE_freeCTable (FSE_CTable* ct) { free(ct); }
function FSE_minTableLog (line 467) | static unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue)
function FSE_optimalTableLog_internal (line 476) | unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t srcSi...
function FSE_optimalTableLog (line 490) | unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsig...
function FSE_normalizeM2 (line 499) | static size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned*...
function FSE_normalizeCount (line 583) | size_t FSE_normalizeCount (short* normalizedCounter, unsigned tableLog,
function FSE_buildCTable_raw (line 646) | size_t FSE_buildCTable_raw (FSE_CTable* ct, unsigned nbBits)
function FSE_buildCTable_rle (line 679) | size_t FSE_buildCTable_rle (FSE_CTable* ct, BYTE symbolValue)
function FSE_compress_usingCTable_generic (line 702) | static size_t FSE_compress_usingCTable_generic (void* dst, size_t dstSize,
function FSE_compress_usingCTable (line 761) | size_t FSE_compress_usingCTable (void* dst, size_t dstSize,
function FSE_compressBound (line 774) | size_t FSE_compressBound(size_t size) { return FSE_COMPRESSBOUND(size); }
function FSE_compress_wksp (line 783) | size_t FSE_compress_wksp (void* dst, size_t dstSize, const void* src, si...
type fseWkspMax_t (line 830) | typedef struct {
function FSE_compress2 (line 835) | size_t FSE_compress2 (void* dst, size_t dstCapacity, const void* src, si...
function FSE_compress (line 843) | size_t FSE_compress (void* dst, size_t dstCapacity, const void* src, siz...
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/fse_decompress.c
function FSE_DTable (line 82) | FSE_DTable* FSE_createDTable (unsigned tableLog)
function FSE_freeDTable (line 88) | void FSE_freeDTable (FSE_DTable* dt)
function FSE_buildDTable (line 93) | size_t FSE_buildDTable(FSE_DTable* dt, const short* normalizedCounter, u...
function FSE_buildDTable_rle (line 156) | size_t FSE_buildDTable_rle (FSE_DTable* dt, BYTE symbolValue)
function FSE_buildDTable_raw (line 174) | size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits)
function FORCE_INLINE_TEMPLATE (line 200) | FORCE_INLINE_TEMPLATE size_t FSE_decompress_usingDTable_generic(
function FSE_decompress_usingDTable (line 263) | size_t FSE_decompress_usingDTable(void* dst, size_t originalSize,
function FSE_decompress_wksp (line 277) | size_t FSE_decompress_wksp(void* dst, size_t dstCapacity, const void* cS...
type FSE_DTable (line 299) | typedef FSE_DTable DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)];
function FSE_decompress (line 301) | size_t FSE_decompress(void* dst, size_t dstCapacity, const void* cSrc, s...
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/huf.h
type U32 (line 164) | typedef U32 HUF_DTable;
type HUF_CElt (line 203) | typedef struct HUF_CElt_s HUF_CElt;
type HUF_repeat (line 208) | typedef enum {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/huf_compress.c
function HUF_optimalTableLog (line 69) | unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsig...
function HUF_compressWeights (line 84) | size_t HUF_compressWeights (void* dst, size_t dstSize, const void* weigh...
type HUF_CElt_s (line 127) | struct HUF_CElt_s {
function HUF_writeCTable (line 135) | size_t HUF_writeCTable (void* dst, size_t maxDstSize,
function HUF_readCTable (line 171) | size_t HUF_readCTable (HUF_CElt* CTable, U32* maxSymbolValuePtr, const v...
type nodeElt (line 220) | typedef struct nodeElt_s {
function U32 (line 227) | static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 maxN...
type rankPos (line 305) | typedef struct {
function HUF_sort (line 310) | static void HUF_sort(nodeElt* huffNode, const U32* count, U32 maxSymbolV...
type nodeElt (line 341) | typedef nodeElt huffNodeTable[HUF_CTABLE_WORKSPACE_SIZE_U32];
function HUF_buildCTable_wksp (line 342) | size_t HUF_buildCTable_wksp (HUF_CElt* tree, const U32* count, U32 maxSy...
function HUF_buildCTable (line 416) | size_t HUF_buildCTable (HUF_CElt* tree, const U32* count, U32 maxSymbolV...
function HUF_estimateCompressedSize (line 422) | static size_t HUF_estimateCompressedSize(HUF_CElt* CTable, const unsigne...
function HUF_validateCTable (line 432) | static int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* co...
function HUF_compressBound (line 441) | size_t HUF_compressBound(size_t size) { return HUF_COMPRESSBOUND(size); }
function FORCE_INLINE_TEMPLATE (line 443) | FORCE_INLINE_TEMPLATE void
function FORCE_INLINE_TEMPLATE (line 457) | FORCE_INLINE_TEMPLATE size_t
function HUF_compress1X_usingCTable_internal_bmi2 (line 506) | size_t
function HUF_compress1X_usingCTable_internal_default (line 514) | static size_t
function HUF_compress1X_usingCTable_internal (line 522) | static size_t
function HUF_compress1X_usingCTable_internal (line 535) | static size_t
function HUF_compress1X_usingCTable (line 546) | size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void*...
function HUF_compress4X_usingCTable_internal (line 552) | static size_t
function HUF_compress4X_usingCTable (line 600) | size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void*...
function HUF_compressCTable_internal (line 606) | static size_t HUF_compressCTable_internal(
type HUF_compress_tables_t (line 622) | typedef struct {
function HUF_compress_internal (line 630) | static size_t HUF_compress_internal (
function HUF_compress1X_wksp (line 717) | size_t HUF_compress1X_wksp (void* dst, size_t dstSize,
function HUF_compress1X_repeat (line 728) | size_t HUF_compress1X_repeat (void* dst, size_t dstSize,
function HUF_compress1X (line 740) | size_t HUF_compress1X (void* dst, size_t dstSize,
function HUF_compress4X_wksp (line 751) | size_t HUF_compress4X_wksp (void* dst, size_t dstSize,
function HUF_compress4X_repeat (line 765) | size_t HUF_compress4X_repeat (void* dst, size_t dstSize,
function HUF_compress2 (line 777) | size_t HUF_compress2 (void* dst, size_t dstSize,
function HUF_compress (line 785) | size_t HUF_compress (void* dst, size_t maxDstSize, const void* src, size...
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/huf_decompress.c
type DTableDesc (line 65) | typedef struct { BYTE maxTableLog; BYTE tableType; BYTE tableLog; BYTE r...
function DTableDesc (line 67) | static DTableDesc HUF_getDTableDesc(const HUF_DTable* table)
type HUF_DEltX2 (line 78) | typedef struct { BYTE byte; BYTE nbBits; } HUF_DEltX2;
function HUF_readDTableX2_wksp (line 80) | size_t HUF_readDTableX2_wksp(HUF_DTable* DTable, const void* src, size_t...
function HUF_readDTableX2 (line 137) | size_t HUF_readDTableX2(HUF_DTable* DTable, const void* src, size_t srcS...
type HUF_DEltX4 (line 144) | typedef struct { U16 sequence; BYTE nbBits; BYTE length; } HUF_DEltX4;
function FORCE_INLINE_TEMPLATE (line 146) | FORCE_INLINE_TEMPLATE BYTE
function HINT_INLINE (line 166) | HINT_INLINE size_t
function FORCE_INLINE_TEMPLATE (line 191) | FORCE_INLINE_TEMPLATE size_t
function FORCE_INLINE_TEMPLATE (line 214) | FORCE_INLINE_TEMPLATE size_t
function FORCE_INLINE_TEMPLATE (line 309) | FORCE_INLINE_TEMPLATE U32
function FORCE_INLINE_TEMPLATE (line 318) | FORCE_INLINE_TEMPLATE U32
function HINT_INLINE (line 345) | HINT_INLINE size_t
function FORCE_INLINE_TEMPLATE (line 372) | FORCE_INLINE_TEMPLATE size_t
function FORCE_INLINE_TEMPLATE (line 400) | FORCE_INLINE_TEMPLATE size_t
function X (line 535) | X(HUF_decompress1X2_usingDTable_internal)
function HUF_decompress1X2_DCtx_wksp (line 553) | size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t d...
function HUF_decompress1X2_DCtx (line 568) | size_t HUF_decompress1X2_DCtx(HUF_DTable* DCtx, void* dst, size_t dstSize,
function HUF_decompress1X2 (line 576) | size_t HUF_decompress1X2 (void* dst, size_t dstSize, const void* cSrc, s...
function HUF_decompress4X2_usingDTable (line 582) | size_t HUF_decompress4X2_usingDTable(
function HUF_decompress4X2_DCtx_wksp_bmi2 (line 592) | static size_t HUF_decompress4X2_DCtx_wksp_bmi2(HUF_DTable* dctx, void* d...
function HUF_decompress4X2_DCtx_wksp (line 607) | size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t d...
function HUF_decompress4X2_DCtx (line 615) | size_t HUF_decompress4X2_DCtx (HUF_DTable* dctx, void* dst, size_t dstSi...
function HUF_decompress4X2 (line 621) | size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, s...
type sortedSymbol_t (line 631) | typedef struct { BYTE symbol; BYTE weight; } sortedSymbol_t;
function HUF_fillDTableX4Level2 (line 635) | static void HUF_fillDTableX4Level2(HUF_DEltX4* DTable, U32 sizeLog, cons...
type U32 (line 675) | typedef U32 rankValCol_t[HUF_TABLELOG_MAX + 1];
type rankValCol_t (line 676) | typedef rankValCol_t rankVal_t[HUF_TABLELOG_MAX];
function HUF_fillDTableX4 (line 678) | static void HUF_fillDTableX4(HUF_DEltX4* DTable, const U32 targetLog,
function HUF_readDTableX4_wksp (line 720) | size_t HUF_readDTableX4_wksp(HUF_DTable* DTable, const void* src,
function HUF_readDTableX4 (line 820) | size_t HUF_readDTableX4(HUF_DTable* DTable, const void* src, size_t srcS...
function HUF_decompress1X4_usingDTable (line 827) | size_t HUF_decompress1X4_usingDTable(
function HUF_decompress1X4_DCtx_wksp (line 837) | size_t HUF_decompress1X4_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t d...
function HUF_decompress1X4_DCtx (line 853) | size_t HUF_decompress1X4_DCtx(HUF_DTable* DCtx, void* dst, size_t dstSize,
function HUF_decompress1X4 (line 861) | size_t HUF_decompress1X4 (void* dst, size_t dstSize, const void* cSrc, s...
function HUF_decompress4X4_usingDTable (line 867) | size_t HUF_decompress4X4_usingDTable(
function HUF_decompress4X4_DCtx_wksp_bmi2 (line 877) | static size_t HUF_decompress4X4_DCtx_wksp_bmi2(HUF_DTable* dctx, void* d...
function HUF_decompress4X4_DCtx_wksp (line 892) | size_t HUF_decompress4X4_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t d...
function HUF_decompress4X4_DCtx (line 900) | size_t HUF_decompress4X4_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize,
function HUF_decompress4X4 (line 908) | size_t HUF_decompress4X4 (void* dst, size_t dstSize, const void* cSrc, s...
function HUF_decompress1X_usingDTable (line 919) | size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize,
function HUF_decompress4X_usingDTable (line 928) | size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize,
type algo_time_t (line 938) | typedef struct { U32 tableTime; U32 decode256Time; } algo_time_t;
function U32 (line 965) | U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize)
function HUF_decompress (line 981) | size_t HUF_decompress (void* dst, size_t dstSize, const void* cSrc, size...
function HUF_decompress4X_DCtx (line 996) | size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSiz...
function HUF_decompress4X_hufOnly (line 1010) | size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstS...
function HUF_decompress4X_hufOnly_wksp (line 1018) | size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst,
function HUF_decompress1X_DCtx_wksp (line 1033) | size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t ds...
function HUF_decompress1X_DCtx (line 1051) | size_t HUF_decompress1X_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize,
function HUF_decompress1X_usingDTable_bmi2 (line 1060) | size_t HUF_decompress1X_usingDTable_bmi2(void* dst, size_t maxDstSize, c...
function HUF_decompress1X2_DCtx_wksp_bmi2 (line 1067) | size_t HUF_decompress1X2_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, siz...
function HUF_decompress4X_usingDTable_bmi2 (line 1079) | size_t HUF_decompress4X_usingDTable_bmi2(void* dst, size_t maxDstSize, c...
function HUF_decompress4X_hufOnly_wksp_bmi2 (line 1086) | size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, s...
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/mem.h
function MEM_STATIC (line 44) | MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) ...
type BYTE (line 52) | typedef uint8_t BYTE;
type U16 (line 53) | typedef uint16_t U16;
type S16 (line 54) | typedef int16_t S16;
type U32 (line 55) | typedef uint32_t U32;
type S32 (line 56) | typedef int32_t S32;
type U64 (line 57) | typedef uint64_t U64;
type S64 (line 58) | typedef int64_t S64;
type BYTE (line 60) | typedef unsigned char BYTE;
type U16 (line 61) | typedef unsigned short U16;
type S16 (line 62) | typedef signed short S16;
type U32 (line 63) | typedef unsigned int U32;
type S32 (line 64) | typedef signed int S32;
type U64 (line 65) | typedef unsigned long long U64;
type S64 (line 66) | typedef signed long long S64;
function MEM_32bits (line 94) | MEM_STATIC unsigned MEM_32bits(void) { return sizeof(size_t)==4; }
function MEM_64bits (line 95) | MEM_STATIC unsigned MEM_64bits(void) { return sizeof(size_t)==8; }
function MEM_isLittleEndian (line 97) | MEM_STATIC unsigned MEM_isLittleEndian(void)
function MEM_STATIC (line 107) | MEM_STATIC U16 MEM_read16(const void* memPtr) { return *(const U16*) mem...
function MEM_STATIC (line 108) | MEM_STATIC U32 MEM_read32(const void* memPtr) { return *(const U32*) mem...
function MEM_STATIC (line 109) | MEM_STATIC U64 MEM_read64(const void* memPtr) { return *(const U64*) mem...
function MEM_STATIC (line 110) | MEM_STATIC size_t MEM_readST(const void* memPtr) { return *(const size_t...
function MEM_STATIC (line 112) | MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(U16*)memPtr = v...
function MEM_STATIC (line 113) | MEM_STATIC void MEM_write32(void* memPtr, U32 value) { *(U32*)memPtr = v...
function MEM_STATIC (line 114) | MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(U64*)memPtr = v...
type unalign16 (line 122) | typedef struct { U16 v; } unalign16;
type unalign32 (line 123) | typedef struct { U32 v; } unalign32;
type unalign64 (line 124) | typedef struct { U64 v; } unalign64;
type unalignArch (line 125) | typedef struct { size_t v; } unalignArch;
type unalign16 (line 128) | typedef struct { U16 v; } __attribute__((packed)) unalign16;
type unalign32 (line 129) | typedef struct { U32 v; } __attribute__((packed)) unalign32;
type unalign64 (line 130) | typedef struct { U64 v; } __attribute__((packed)) unalign64;
type unalignArch (line 131) | typedef struct { size_t v; } __attribute__((packed)) unalignArch;
function MEM_STATIC (line 134) | MEM_STATIC U16 MEM_read16(const void* ptr) { return ((const unalign16*)p...
function MEM_STATIC (line 135) | MEM_STATIC U32 MEM_read32(const void* ptr) { return ((const unalign32*)p...
function MEM_STATIC (line 136) | MEM_STATIC U64 MEM_read64(const void* ptr) { return ((const unalign64*)p...
function MEM_STATIC (line 137) | MEM_STATIC size_t MEM_readST(const void* ptr) { return ((const unalignAr...
function MEM_STATIC (line 139) | MEM_STATIC void MEM_write16(void* memPtr, U16 value) { ((unalign16*)memP...
function MEM_STATIC (line 140) | MEM_STATIC void MEM_write32(void* memPtr, U32 value) { ((unalign32*)memP...
function MEM_STATIC (line 141) | MEM_STATIC void MEM_write64(void* memPtr, U64 value) { ((unalign64*)memP...
function MEM_STATIC (line 148) | MEM_STATIC U16 MEM_read16(const void* memPtr)
function MEM_STATIC (line 153) | MEM_STATIC U32 MEM_read32(const void* memPtr)
function MEM_STATIC (line 158) | MEM_STATIC U64 MEM_read64(const void* memPtr)
function MEM_STATIC (line 163) | MEM_STATIC size_t MEM_readST(const void* memPtr)
function MEM_STATIC (line 168) | MEM_STATIC void MEM_write16(void* memPtr, U16 value)
function MEM_STATIC (line 173) | MEM_STATIC void MEM_write32(void* memPtr, U32 value)
function MEM_STATIC (line 178) | MEM_STATIC void MEM_write64(void* memPtr, U64 value)
function MEM_STATIC (line 185) | MEM_STATIC U32 MEM_swap32(U32 in)
function MEM_STATIC (line 199) | MEM_STATIC U64 MEM_swap64(U64 in)
function MEM_STATIC (line 217) | MEM_STATIC size_t MEM_swapST(size_t in)
function MEM_STATIC (line 227) | MEM_STATIC U16 MEM_readLE16(const void* memPtr)
function MEM_STATIC (line 237) | MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val)
function MEM_STATIC (line 248) | MEM_STATIC U32 MEM_readLE24(const void* memPtr)
function MEM_STATIC (line 253) | MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val)
function MEM_STATIC (line 259) | MEM_STATIC U32 MEM_readLE32(const void* memPtr)
function MEM_STATIC (line 267) | MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32)
function MEM_STATIC (line 275) | MEM_STATIC U64 MEM_readLE64(const void* memPtr)
function MEM_STATIC (line 283) | MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64)
function MEM_STATIC (line 291) | MEM_STATIC size_t MEM_readLEST(const void* memPtr)
function MEM_STATIC (line 299) | MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val)
function MEM_STATIC (line 309) | MEM_STATIC U32 MEM_readBE32(const void* memPtr)
function MEM_STATIC (line 317) | MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32)
function MEM_STATIC (line 325) | MEM_STATIC U64 MEM_readBE64(const void* memPtr)
function MEM_STATIC (line 333) | MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64)
function MEM_STATIC (line 341) | MEM_STATIC size_t MEM_readBEST(const void* memPtr)
function MEM_STATIC (line 349) | MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val)
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/pool.c
type POOL_job (line 28) | typedef struct POOL_job_s {
type POOL_ctx_s (line 33) | struct POOL_ctx_s {
function POOL_ctx (line 102) | POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) {
function POOL_ctx (line 106) | POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, ZSTD...
function POOL_join (line 149) | static void POOL_join(POOL_ctx* ctx) {
function POOL_free (line 164) | void POOL_free(POOL_ctx *ctx) {
function POOL_sizeof (line 175) | size_t POOL_sizeof(POOL_ctx *ctx) {
function isQueueFull (line 188) | static int isQueueFull(POOL_ctx const* ctx) {
function POOL_add_internal (line 198) | static void POOL_add_internal(POOL_ctx* ctx, POOL_function function, voi...
function POOL_add (line 210) | void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque)
function POOL_tryAdd (line 223) | int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque)
type POOL_ctx_s (line 245) | struct POOL_ctx_s {
function POOL_ctx (line 250) | POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) {
function POOL_ctx (line 254) | POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, ZSTD...
function POOL_free (line 261) | void POOL_free(POOL_ctx* ctx) {
function POOL_add (line 266) | void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque) {
function POOL_tryAdd (line 271) | int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque) {
function POOL_sizeof (line 277) | size_t POOL_sizeof(POOL_ctx* ctx) {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/pool.h
type POOL_ctx (line 23) | typedef struct POOL_ctx_s POOL_ctx;
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/threading.c
function worker (line 36) | static unsigned __stdcall worker(void *arg)
function ZSTD_pthread_create (line 43) | int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused,
function ZSTD_pthread_join (line 57) | int ZSTD_pthread_join(ZSTD_pthread_t thread, void **value_ptr)
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/threading.h
type ZSTD_pthread_t (line 62) | typedef struct {
type ZSTD_pthread_mutex_t (line 102) | typedef int ZSTD_pthread_mutex_t;
type ZSTD_pthread_cond_t (line 108) | typedef int ZSTD_pthread_cond_t;
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/xxhash.c
function XXH_free (line 102) | static void XXH_free (void* p) { free(p); }
type BYTE (line 145) | typedef uint8_t BYTE;
type U16 (line 146) | typedef uint16_t U16;
type U32 (line 147) | typedef uint32_t U32;
type S32 (line 148) | typedef int32_t S32;
type U64 (line 149) | typedef uint64_t U64;
type BYTE (line 151) | typedef unsigned char BYTE;
type U16 (line 152) | typedef unsigned short U16;
type U32 (line 153) | typedef unsigned int U32;
type S32 (line 154) | typedef signed int S32;
type U64 (line 155) | typedef unsigned long long U64;
function U32 (line 163) | static U32 XXH_read32(const void* memPtr) { return *(const U32*) memPtr; }
function U64 (line 164) | static U64 XXH_read64(const void* memPtr) { return *(const U64*) memPtr; }
type unalign (line 170) | typedef union { U32 u32; U64 u64; } __attribute__((packed)) unalign;
function U32 (line 172) | static U32 XXH_read32(const void* ptr) { return ((const unalign*)ptr)->u...
function U64 (line 173) | static U64 XXH_read64(const void* ptr) { return ((const unalign*)ptr)->u...
function U32 (line 181) | static U32 XXH_read32(const void* memPtr)
function U64 (line 188) | static U64 XXH_read64(const void* memPtr)
function U32 (line 219) | static U32 XXH_swap32 (U32 x)
function U64 (line 226) | static U64 XXH_swap64 (U64 x)
type XXH_endianess (line 243) | typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess;
type XXH_alignment (line 255) | typedef enum { XXH_aligned, XXH_unaligned } XXH_alignment;
function FORCE_INLINE_TEMPLATE (line 257) | FORCE_INLINE_TEMPLATE U32 XXH_readLE32_align(const void* ptr, XXH_endian...
function FORCE_INLINE_TEMPLATE (line 265) | FORCE_INLINE_TEMPLATE U32 XXH_readLE32(const void* ptr, XXH_endianess en...
function U32 (line 270) | static U32 XXH_readBE32(const void* ptr)
function FORCE_INLINE_TEMPLATE (line 275) | FORCE_INLINE_TEMPLATE U64 XXH_readLE64_align(const void* ptr, XXH_endian...
function FORCE_INLINE_TEMPLATE (line 283) | FORCE_INLINE_TEMPLATE U64 XXH_readLE64(const void* ptr, XXH_endianess en...
function U64 (line 288) | static U64 XXH_readBE64(const void* ptr)
function XXH_versionNumber (line 315) | XXH_PUBLIC_API unsigned XXH_versionNumber (void) { return XXH_VERSION_NU...
function XXH_PUBLIC_API (line 321) | XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* restrict dstState, co...
function XXH_PUBLIC_API (line 326) | XXH_PUBLIC_API void XXH64_copyState(XXH64_state_t* restrict dstState, co...
function U32 (line 336) | static U32 XXH32_round(U32 seed, U32 input)
function FORCE_INLINE_TEMPLATE (line 344) | FORCE_INLINE_TEMPLATE U32 XXH32_endian_align(const void* input, size_t l...
function XXH32 (line 401) | XXH_PUBLIC_API unsigned int XXH32 (const void* input, size_t len, unsign...
function U64 (line 428) | static U64 XXH64_round(U64 acc, U64 input)
function U64 (line 436) | static U64 XXH64_mergeRound(U64 acc, U64 val)
function FORCE_INLINE_TEMPLATE (line 444) | FORCE_INLINE_TEMPLATE U64 XXH64_endian_align(const void* input, size_t l...
function XXH64 (line 513) | XXH_PUBLIC_API unsigned long long XXH64 (const void* input, size_t len, ...
function XXH_PUBLIC_API (line 544) | XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void)
function XXH_PUBLIC_API (line 548) | XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr)
function XXH_PUBLIC_API (line 554) | XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void)
function XXH_PUBLIC_API (line 558) | XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr)
function XXH_PUBLIC_API (line 567) | XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, unsign...
function XXH_PUBLIC_API (line 580) | XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, unsign...
function FORCE_INLINE_TEMPLATE (line 593) | FORCE_INLINE_TEMPLATE XXH_errorcode XXH32_update_endian (XXH32_state_t* ...
function XXH_PUBLIC_API (line 651) | XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* state_in, cons...
function FORCE_INLINE_TEMPLATE (line 663) | FORCE_INLINE_TEMPLATE U32 XXH32_digest_endian (const XXH32_state_t* stat...
function XXH32_digest (line 699) | XXH_PUBLIC_API unsigned int XXH32_digest (const XXH32_state_t* state_in)
function FORCE_INLINE_TEMPLATE (line 713) | FORCE_INLINE_TEMPLATE XXH_errorcode XXH64_update_endian (XXH64_state_t* ...
function XXH_PUBLIC_API (line 768) | XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t* state_in, cons...
function FORCE_INLINE_TEMPLATE (line 780) | FORCE_INLINE_TEMPLATE U64 XXH64_digest_endian (const XXH64_state_t* stat...
function XXH64_digest (line 832) | XXH_PUBLIC_API unsigned long long XXH64_digest (const XXH64_state_t* sta...
function XXH_PUBLIC_API (line 853) | XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH3...
function XXH_PUBLIC_API (line 860) | XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH6...
function XXH_PUBLIC_API (line 867) | XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonica...
function XXH_PUBLIC_API (line 872) | XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonica...
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/xxhash.h
type XXH_errorcode (line 79) | typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
type XXH32_hash_t (line 160) | typedef unsigned int XXH32_hash_t;
type XXH64_hash_t (line 161) | typedef unsigned long long XXH64_hash_t;
type XXH32_state_t (line 182) | typedef struct XXH32_state_s XXH32_state_t;
type XXH64_state_t (line 183) | typedef struct XXH64_state_s XXH64_state_t;
type XXH32_canonical_t (line 246) | typedef struct { unsigned char digest[4]; } XXH32_canonical_t;
type XXH64_canonical_t (line 247) | typedef struct { unsigned char digest[8]; } XXH64_canonical_t;
type XXH32_state_s (line 272) | struct XXH32_state_s {
type XXH64_state_s (line 284) | struct XXH64_state_s {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zbuff.h
type ZSTD_CStream (line 70) | typedef ZSTD_CStream ZBUFF_CCtx;
type ZSTD_DStream (line 122) | typedef ZSTD_DStream ZBUFF_DCtx;
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zbuff_common.c
function ZBUFF_isError (line 23) | unsigned ZBUFF_isError(size_t errorCode) { return ERR_isError(errorCode); }
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zbuff_compress.c
function ZBUFF_CCtx (line 53) | ZBUFF_CCtx* ZBUFF_createCCtx(void)
function ZBUFF_CCtx (line 58) | ZBUFF_CCtx* ZBUFF_createCCtx_advanced(ZSTD_customMem customMem)
function ZBUFF_freeCCtx (line 63) | size_t ZBUFF_freeCCtx(ZBUFF_CCtx* zbc)
function ZBUFF_compressInit_advanced (line 71) | size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc,
function ZBUFF_compressInitDictionary (line 80) | size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, s...
function ZBUFF_compressInit (line 85) | size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel)
function ZBUFF_compressContinue (line 93) | size_t ZBUFF_compressContinue(ZBUFF_CCtx* zbc,
function ZBUFF_compressFlush (line 116) | size_t ZBUFF_compressFlush(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapaci...
function ZBUFF_compressEnd (line 129) | size_t ZBUFF_compressEnd(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapacity...
function ZBUFF_recommendedCInSize (line 146) | size_t ZBUFF_recommendedCInSize(void) { return ZSTD_CStreamInSize(); }
function ZBUFF_recommendedCOutSize (line 147) | size_t ZBUFF_recommendedCOutSize(void) { return ZSTD_CStreamOutSize(); }
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zbuff_decompress.c
function ZBUFF_DCtx (line 20) | ZBUFF_DCtx* ZBUFF_createDCtx(void)
function ZBUFF_DCtx (line 25) | ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem)
function ZBUFF_freeDCtx (line 30) | size_t ZBUFF_freeDCtx(ZBUFF_DCtx* zbd)
function ZBUFF_decompressInitDictionary (line 38) | size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* zbd, const void* dict,...
function ZBUFF_decompressInit (line 43) | size_t ZBUFF_decompressInit(ZBUFF_DCtx* zbd)
function ZBUFF_decompressContinue (line 51) | size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbd,
function ZBUFF_recommendedDInSize (line 74) | size_t ZBUFF_recommendedDInSize(void) { return ZSTD_DStreamInSize(); }
function ZBUFF_recommendedDOutSize (line 75) | size_t ZBUFF_recommendedDOutSize(void) { return ZSTD_DStreamOutSize(); }
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zdict.c
function clock_t (line 74) | static clock_t ZDICT_clockSpan(clock_t nPrevious) { return clock() - nPr...
function ZDICT_printHex (line 76) | static void ZDICT_printHex(const void* ptr, size_t length)
function ZDICT_isError (line 91) | unsigned ZDICT_isError(size_t errorCode) { return ERR_isError(errorCode); }
function ZDICT_getDictID (line 95) | unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize)
function ZDICT_NbCommonBytes (line 106) | static unsigned ZDICT_NbCommonBytes (size_t val)
function ZDICT_count (line 169) | static size_t ZDICT_count(const void* pIn, const void* pMatch)
type dictItem (line 185) | typedef struct {
function ZDICT_initDictItem (line 191) | static void ZDICT_initDictItem(dictItem* d)
function dictItem (line 201) | static dictItem ZDICT_analyzePos(
function isIncluded (line 371) | static int isIncluded(const void* in, const void* container, size_t length)
function U32 (line 388) | static U32 ZDICT_tryMerge(dictItem* table, dictItem elt, U32 eltNbToSkip...
function ZDICT_removeDictItem (line 447) | static void ZDICT_removeDictItem(dictItem* table, U32 id)
function ZDICT_insertDictItem (line 459) | static void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem ...
function U32 (line 488) | static U32 ZDICT_dictSize(const dictItem* dictList)
function ZDICT_trainBuffer_legacy (line 497) | static size_t ZDICT_trainBuffer_legacy(dictItem* dictList, U32 dictListS...
function ZDICT_fillNoise (line 569) | static void ZDICT_fillNoise(void* buffer, size_t length)
type EStats_ress_t (line 582) | typedef struct
function ZDICT_countEStats (line 591) | static void ZDICT_countEStats(EStats_ress_t esr, ZSTD_parameters params,
function ZDICT_totalSampleSize (line 645) | static size_t ZDICT_totalSampleSize(const size_t* fileSizes, unsigned nb...
type offsetCount_t (line 653) | typedef struct { U32 offset; U32 count; } offsetCount_t;
function ZDICT_insertSortCount (line 655) | static void ZDICT_insertSortCount(offsetCount_t table[ZSTD_REP_NUM+1], U...
function ZDICT_flatLit (line 673) | static void ZDICT_flatLit(U32* countLit)
function ZDICT_analyzeEntropy (line 683) | static size_t ZDICT_analyzeEntropy(void* dstBuffer, size_t maxDstSize,
function ZDICT_finalizeDictionary (line 868) | size_t ZDICT_finalizeDictionary(void* dictBuffer, size_t dictBufferCapac...
function ZDICT_addEntropyTablesFromBuffer_advanced (line 917) | size_t ZDICT_addEntropyTablesFromBuffer_advanced(void* dictBuffer, size_...
function ZDICT_trainFromBuffer_unsafe_legacy (line 955) | size_t ZDICT_trainFromBuffer_unsafe_legacy(
function ZDICT_trainFromBuffer_legacy (line 1059) | size_t ZDICT_trainFromBuffer_legacy(void* dictBuffer, size_t dictBufferC...
function ZDICT_trainFromBuffer (line 1082) | size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCapacity,
function ZDICT_addEntropyTablesFromBuffer (line 1100) | size_t ZDICT_addEntropyTablesFromBuffer(void* dictBuffer, size_t dictCon...
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zdict.h
type ZDICT_params_t (line 74) | typedef struct {
type ZDICT_cover_params_t (line 84) | typedef struct {
type ZDICT_legacy_params_t (line 154) | typedef struct {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zstd.go
constant BestSpeed (line 31) | BestSpeed = 1
constant BestCompression (line 32) | BestCompression = 20
constant DefaultCompression (line 33) | DefaultCompression = 5
function CompressBound (line 45) | func CompressBound(srcSize int) int {
function cCompressBound (line 55) | func cCompressBound(srcSize int) int {
function Compress (line 62) | func Compress(dst, src []byte) ([]byte, error) {
function CompressLevel (line 67) | func CompressLevel(dst, src []byte, level int) ([]byte, error) {
function Decompress (line 98) | func Decompress(dst, src []byte) ([]byte, error) {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zstd.h
type ZSTD_CCtx (line 147) | typedef struct ZSTD_CCtx_s ZSTD_CCtx;
type ZSTD_DCtx (line 164) | typedef struct ZSTD_DCtx_s ZSTD_DCtx;
type ZSTD_CDict (line 202) | typedef struct ZSTD_CDict_s ZSTD_CDict;
type ZSTD_DDict (line 227) | typedef struct ZSTD_DDict_s ZSTD_DDict;
type ZSTD_inBuffer (line 251) | typedef struct ZSTD_inBuffer_s {
type ZSTD_outBuffer (line 257) | typedef struct ZSTD_outBuffer_s {
type ZSTD_CCtx (line 306) | typedef ZSTD_CCtx ZSTD_CStream;
type ZSTD_DCtx (line 345) | typedef ZSTD_DCtx ZSTD_DStream;
type ZSTD_strategy (line 408) | typedef enum { ZSTD_fast=1, ZSTD_dfast, ZSTD_greedy, ZSTD_lazy, ZSTD_lazy2,
type ZSTD_compressionParameters (line 411) | typedef struct {
type ZSTD_frameParameters (line 421) | typedef struct {
type ZSTD_parameters (line 427) | typedef struct {
type ZSTD_CCtx_params (line 432) | typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params;
type ZSTD_dictContentType_e (line 434) | typedef enum {
type ZSTD_dictLoadMethod_e (line 440) | typedef enum {
type ZSTD_customMem (line 592) | typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction custo...
type ZSTD_frameProgression (line 724) | typedef struct {
type ZSTD_DStreamParameter_e (line 741) | typedef enum { DStream_p_maxWindowSize } ZSTD_DStreamParameter_e;
type ZSTD_frameType_e (line 873) | typedef enum { ZSTD_frame, ZSTD_skippableFrame } ZSTD_frameType_e;
type ZSTD_frameHeader (line 874) | typedef struct {
type ZSTD_nextInputType_e (line 895) | typedef enum { ZSTDnit_frameHeader, ZSTDnit_blockHeader, ZSTDnit_block, ...
type ZSTD_format_e (line 926) | typedef enum {
type ZSTD_cParameter (line 942) | typedef enum {
type ZSTD_EndDirective (line 1143) | typedef enum {
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zstd_common.c
function ZSTD_versionNumber (line 25) | unsigned ZSTD_versionNumber(void) { return ZSTD_VERSION_NUMBER; }
function ZSTD_isError (line 35) | unsigned ZSTD_isError(size_t code) { return ERR_isError(code); }
function ZSTD_ErrorCode (line 43) | ZSTD_ErrorCode ZSTD_getErrorCode(size_t code) { return ERR_getErrorCode(...
function ZSTD_free (line 78) | void ZSTD_free(void* ptr, ZSTD_customMem customMem)
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zstd_compress.c
function ZSTD_compressBound (line 41) | size_t ZSTD_compressBound(size_t srcSize) {
type ZSTD_CDict_s (line 49) | struct ZSTD_CDict_s {
function ZSTD_CCtx (line 62) | ZSTD_CCtx* ZSTD_createCCtx(void)
function ZSTD_CCtx (line 67) | ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem)
function ZSTD_CCtx (line 82) | ZSTD_CCtx* ZSTD_initStaticCCtx(void *workspace, size_t workspaceSize)
function ZSTD_freeCCtx (line 105) | size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx)
function ZSTD_sizeof_mtctx (line 119) | static size_t ZSTD_sizeof_mtctx(const ZSTD_CCtx* cctx)
function ZSTD_sizeof_CCtx (line 130) | size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx)
function ZSTD_sizeof_CStream (line 138) | size_t ZSTD_sizeof_CStream(const ZSTD_CStream* zcs)
function seqStore_t (line 144) | const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx) { return &(ctx-...
function ZSTD_compressionParameters (line 146) | ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams(
function ZSTD_CCtx_params (line 161) | static ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams(
function ZSTD_CCtx_params (line 173) | static ZSTD_CCtx_params* ZSTD_createCCtxParams_advanced(
function ZSTD_CCtx_params (line 187) | ZSTD_CCtx_params* ZSTD_createCCtxParams(void)
function ZSTD_freeCCtxParams (line 192) | size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params)
function ZSTD_CCtxParams_reset (line 199) | size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params)
function ZSTD_CCtxParams_init (line 204) | size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressio...
function ZSTD_CCtxParams_init_advanced (line 212) | size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_...
function ZSTD_CCtx_params (line 226) | static ZSTD_CCtx_params ZSTD_assignParamsToCCtxParams(
function ZSTD_isUpdateAuthorized (line 243) | static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param)
function ZSTD_CCtx_setParameter (line 276) | size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, un...
function ZSTD_CCtxParam_setParameter (line 338) | size_t ZSTD_CCtxParam_setParameter(
function ZSTD_CCtx_setParametersUsingCCtxParams (line 487) | size_t ZSTD_CCtx_setParametersUsingCCtxParams(
function ZSTDLIB_API (line 497) | ZSTDLIB_API size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned...
function ZSTD_CCtx_loadDictionary_advanced (line 505) | size_t ZSTD_CCtx_loadDictionary_advanced(
function ZSTDLIB_API (line 530) | ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary_byReference(
function ZSTDLIB_API (line 537) | ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void*...
function ZSTD_CCtx_refCDict (line 544) | size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict)
function ZSTD_CCtx_refPrefix (line 552) | size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx, const void* prefix, size_t p...
function ZSTD_CCtx_refPrefix_advanced (line 557) | size_t ZSTD_CCtx_refPrefix_advanced(
function ZSTD_startNewCompression (line 568) | static void ZSTD_startNewCompression(ZSTD_CCtx* cctx)
function ZSTD_CCtx_reset (line 576) | void ZSTD_CCtx_reset(ZSTD_CCtx* cctx)
function ZSTD_checkCParams (line 585) | size_t ZSTD_checkCParams(ZSTD_compressionParameters cParams)
function ZSTD_compressionParameters (line 602) | static ZSTD_compressionParameters ZSTD_clampCParams(ZSTD_compressionPara...
function U32 (line 620) | static U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat)
function ZSTD_compressionParameters (line 631) | ZSTD_compressionParameters ZSTD_adjustCParams_internal(ZSTD_compressionP...
function ZSTD_compressionParameters (line 663) | ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters...
function ZSTD_sizeof_matchState (line 669) | static size_t ZSTD_sizeof_matchState(ZSTD_compressionParameters const* c...
function ZSTD_estimateCCtxSize_usingCCtxParams (line 687) | size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* par...
function ZSTD_estimateCCtxSize_usingCParams (line 713) | size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cPa...
function ZSTD_estimateCCtxSize_internal (line 719) | static size_t ZSTD_estimateCCtxSize_internal(int compressionLevel)
function ZSTD_estimateCCtxSize (line 725) | size_t ZSTD_estimateCCtxSize(int compressionLevel)
function ZSTD_estimateCStreamSize_usingCCtxParams (line 736) | size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* ...
function ZSTD_estimateCStreamSize_usingCParams (line 749) | size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters ...
function ZSTD_estimateCStreamSize_internal (line 755) | static size_t ZSTD_estimateCStreamSize_internal(int compressionLevel) {
function ZSTD_estimateCStreamSize (line 760) | size_t ZSTD_estimateCStreamSize(int compressionLevel) {
function ZSTD_frameProgression (line 774) | ZSTD_frameProgression ZSTD_getFrameProgression(const ZSTD_CCtx* cctx)
function U32 (line 793) | static U32 ZSTD_equivalentCParams(ZSTD_compressionParameters cParams1,
function U32 (line 804) | static U32 ZSTD_equivalentLdmParams(ldmParams_t ldmParams1,
type ZSTD_buffered_policy_e (line 815) | typedef enum { ZSTDb_not_buffered, ZSTDb_buffered } ZSTD_buffered_policy_e;
function U32 (line 820) | static U32 ZSTD_sufficientBuff(size_t bufferSize1, size_t blockSize1,
function U32 (line 837) | static U32 ZSTD_equivalentParams(ZSTD_CCtx_params params1,
function ZSTD_reset_compressedBlockState (line 849) | static void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t*...
function ZSTD_invalidateMatchState (line 864) | static void ZSTD_invalidateMatchState(ZSTD_matchState_t* ms)
function ZSTD_continueCCtx (line 875) | static size_t ZSTD_continueCCtx(ZSTD_CCtx* cctx, ZSTD_CCtx_params params...
type ZSTD_compResetPolicy_e (line 901) | typedef enum { ZSTDcrp_continue, ZSTDcrp_noMemset } ZSTD_compResetPolicy_e;
function ZSTD_resetCCtx_internal (line 946) | static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
function ZSTD_invalidateRepCodes (line 1095) | void ZSTD_invalidateRepCodes(ZSTD_CCtx* cctx) {
function ZSTD_resetCCtx_usingCDict (line 1101) | static size_t ZSTD_resetCCtx_usingCDict(ZSTD_CCtx* cctx,
function ZSTD_copyCCtx_internal (line 1160) | static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx,
function ZSTD_copyCCtx (line 1215) | size_t ZSTD_copyCCtx(ZSTD_CCtx* dstCCtx, const ZSTD_CCtx* srcCCtx, unsig...
function FORCE_INLINE_TEMPLATE (line 1236) | FORCE_INLINE_TEMPLATE void
function ZSTD_reduceTable (line 1257) | static void ZSTD_reduceTable(U32* const table, U32 const size, U32 const...
function ZSTD_reduceTable_btlazy2 (line 1262) | static void ZSTD_reduceTable_btlazy2(U32* const table, U32 const size, U...
function ZSTD_reduceIndex (line 1269) | static void ZSTD_reduceIndex (ZSTD_CCtx* zc, const U32 reducerValue)
function ZSTD_noCompressBlock (line 1297) | size_t ZSTD_noCompressBlock (void* dst, size_t dstCapacity, const void* ...
function ZSTD_noCompressLiterals (line 1306) | static size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, co...
function ZSTD_compressRleLiteralsBlock (line 1332) | static size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapaci...
function ZSTD_minGain (line 1359) | static size_t ZSTD_minGain(size_t srcSize) { return (srcSize >> 6) + 2; }
function ZSTD_compressLiterals (line 1361) | static size_t ZSTD_compressLiterals (ZSTD_entropyCTables_t const* prevEn...
function ZSTD_seqToCodes (line 1446) | void ZSTD_seqToCodes(const seqStore_t* seqStorePtr)
type ZSTD_defaultPolicy_e (line 1467) | typedef enum {
function MEM_STATIC (line 1472) | MEM_STATIC
function MEM_STATIC (line 1511) | MEM_STATIC
function FORCE_INLINE_TEMPLATE (line 1554) | FORCE_INLINE_TEMPLATE size_t
function ZSTD_encodeSequences_default (line 1642) | static size_t
function ZSTD_encodeSequences_bmi2 (line 1660) | size_t
function ZSTD_encodeSequences (line 1677) | size_t ZSTD_encodeSequences(
function MEM_STATIC (line 1701) | MEM_STATIC size_t ZSTD_compressSequences_internal(seqStore_t* seqStorePtr,
function MEM_STATIC (line 1822) | MEM_STATIC size_t ZSTD_compressSequences(seqStore_t* seqStorePtr,
function ZSTD_blockCompressor (line 1857) | ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, int...
function ZSTD_storeLastLiterals (line 1876) | static void ZSTD_storeLastLiterals(seqStore_t* seqStorePtr,
function ZSTD_resetSeqStore (line 1883) | static void ZSTD_resetSeqStore(seqStore_t* ssPtr)
function ZSTD_compressBlock_internal (line 1890) | static size_t ZSTD_compressBlock_internal(ZSTD_CCtx* zc,
function ZSTD_compress_frameChunk (line 1977) | static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx,
function ZSTD_writeFrameHeader (line 2049) | static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity,
function ZSTD_writeLastEmptyBlock (line 2097) | size_t ZSTD_writeLastEmptyBlock(void* dst, size_t dstCapacity)
function ZSTD_referenceExternalSequences (line 2106) | size_t ZSTD_referenceExternalSequences(ZSTD_CCtx* cctx, rawSeq* seq, siz...
function ZSTD_compressContinue_internal (line 2120) | static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx,
function ZSTD_compressContinue (line 2167) | size_t ZSTD_compressContinue (ZSTD_CCtx* cctx,
function ZSTD_getBlockSize (line 2176) | size_t ZSTD_getBlockSize(const ZSTD_CCtx* cctx)
function ZSTD_compressBlock (line 2183) | size_t ZSTD_compressBlock(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity...
function ZSTD_loadDictionaryContent (line 2193) | static size_t ZSTD_loadDictionaryContent(ZSTD_matchState_t* ms, ZSTD_CCt...
function ZSTD_checkDictNCount (line 2240) | static size_t ZSTD_checkDictNCount(short* normalizedCounter, unsigned di...
function ZSTD_loadZstdDictionary (line 2259) | static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs, Z...
function ZSTD_compress_insertDictionary (line 2346) | static size_t ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t...
function ZSTD_compressBegin_internal (line 2377) | size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx,
function ZSTD_compressBegin_advanced_internal (line 2408) | size_t ZSTD_compressBegin_advanced_internal(ZSTD_CCtx* cctx,
function ZSTD_compressBegin_advanced (line 2427) | size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx,
function ZSTD_compressBegin_usingDict (line 2439) | size_t ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, s...
function ZSTD_compressBegin (line 2449) | size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel)
function ZSTD_writeEpilogue (line 2458) | static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstC...
function ZSTD_compressEnd (line 2497) | size_t ZSTD_compressEnd (ZSTD_CCtx* cctx,
function ZSTD_compress_internal (line 2519) | static size_t ZSTD_compress_internal (ZSTD_CCtx* cctx,
function ZSTD_compress_advanced (line 2535) | size_t ZSTD_compress_advanced (ZSTD_CCtx* ctx,
function ZSTD_compress_advanced_internal (line 2547) | size_t ZSTD_compress_advanced_internal(
function ZSTD_compress_usingDict (line 2561) | size_t ZSTD_compress_usingDict(ZSTD_CCtx* cctx, void* dst, size_t dstCap...
function ZSTD_compressCCtx (line 2571) | size_t ZSTD_compressCCtx (ZSTD_CCtx* cctx, void* dst, size_t dstCapacity...
function ZSTD_compress (line 2577) | size_t ZSTD_compress(void* dst, size_t dstCapacity, const void* src, siz...
function ZSTD_estimateCDictSize_advanced (line 2593) | size_t ZSTD_estimateCDictSize_advanced(
function ZSTD_estimateCDictSize (line 2602) | size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel)
function ZSTD_sizeof_CDict (line 2608) | size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict)
function ZSTD_initCDict_internal (line 2615) | static size_t ZSTD_initCDict_internal(
function ZSTD_CDict (line 2667) | ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dic...
function ZSTD_CDict (line 2699) | ZSTD_CDict* ZSTD_createCDict(const void* dict, size_t dictSize, int comp...
function ZSTD_CDict (line 2707) | ZSTD_CDict* ZSTD_createCDict_byReference(const void* dict, size_t dictSi...
function ZSTD_freeCDict (line 2715) | size_t ZSTD_freeCDict(ZSTD_CDict* cdict)
function ZSTD_CDict (line 2739) | const ZSTD_CDict* ZSTD_initStaticCDict(
function ZSTD_compressionParameters (line 2775) | ZSTD_compressionParameters ZSTD_getCParamsFromCDict(const ZSTD_CDict* cd...
function ZSTD_compressBegin_usingCDict_advanced (line 2783) | size_t ZSTD_compressBegin_usingCDict_advanced(
function ZSTD_compressBegin_usingCDict (line 2812) | size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* ...
function ZSTD_compress_usingCDict_advanced (line 2819) | size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx,
function ZSTD_compress_usingCDict (line 2833) | size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx,
function ZSTD_CStream (line 2848) | ZSTD_CStream* ZSTD_createCStream(void)
function ZSTD_CStream (line 2854) | ZSTD_CStream* ZSTD_initStaticCStream(void *workspace, size_t workspaceSize)
function ZSTD_CStream (line 2859) | ZSTD_CStream* ZSTD_createCStream_advanced(ZSTD_customMem customMem)
function ZSTD_freeCStream (line 2864) | size_t ZSTD_freeCStream(ZSTD_CStream* zcs)
function ZSTD_CStreamInSize (line 2873) | size_t ZSTD_CStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX; }
function ZSTD_CStreamOutSize (line 2875) | size_t ZSTD_CStreamOutSize(void)
function ZSTD_resetCStream_internal (line 2880) | static size_t ZSTD_resetCStream_internal(ZSTD_CStream* cctx,
function ZSTD_resetCStream (line 2909) | size_t ZSTD_resetCStream(ZSTD_CStream* zcs, unsigned long long pledgedSr...
function ZSTD_initCStream_internal (line 2923) | size_t ZSTD_initCStream_internal(ZSTD_CStream* zcs,
function ZSTD_initCStream_usingCDict_advanced (line 2957) | size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs,
function ZSTD_initCStream_usingCDict (line 2974) | size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict* ...
function ZSTD_initCStream_advanced (line 2986) | size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs,
function ZSTD_initCStream_usingDict (line 2999) | size_t ZSTD_initCStream_usingDict(ZSTD_CStream* zcs, const void* dict, s...
function ZSTD_initCStream_srcSize (line 3007) | size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, int compressionLevel,...
function ZSTD_initCStream (line 3015) | size_t ZSTD_initCStream(ZSTD_CStream* zcs, int compressionLevel)
function MEM_STATIC (line 3023) | MEM_STATIC size_t ZSTD_limitCopy(void* dst, size_t dstCapacity,
function ZSTD_compressStream_generic (line 3035) | size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs,
function ZSTD_compressStream (line 3178) | size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZS...
function ZSTD_compress_generic (line 3188) | size_t ZSTD_compress_generic (ZSTD_CCtx* cctx,
function ZSTD_compress_generic_simpleArgs (line 3264) | size_t ZSTD_compress_generic_simpleArgs (
function ZSTD_flushStream (line 3284) | size_t ZSTD_flushStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output)
function ZSTD_endStream (line 3293) | size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output)
function ZSTD_maxCLevel (line 3310) | int ZSTD_maxCLevel(void) { return ZSTD_MAX_CLEVEL; }
function ZSTD_compressionParameters (line 3422) | ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigne...
function ZSTD_parameters (line 3441) | ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long ...
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zstd_compress_internal.h
type ZSTD_compressionStage_e (line 46) | typedef enum { ZSTDcs_created=0, ZSTDcs_init, ZSTDcs_ongoing, ZSTDcs_end...
type ZSTD_cStreamStage (line 47) | typedef enum { zcss_init=0, zcss_load, zcss_flush } ZSTD_cStreamStage;
type ZSTD_prefixDict (line 49) | typedef struct ZSTD_prefixDict_s {
type ZSTD_entropyCTables_t (line 55) | typedef struct {
type ZSTD_match_t (line 66) | typedef struct {
type ZSTD_optimal_t (line 71) | typedef struct {
type optState_t (line 79) | typedef struct {
type ZSTD_compressedBlockState_t (line 101) | typedef struct {
type ZSTD_window_t (line 106) | typedef struct {
type ZSTD_matchState_t (line 114) | typedef struct {
type ZSTD_blockState_t (line 126) | typedef struct {
type ldmEntry_t (line 132) | typedef struct {
type ldmState_t (line 137) | typedef struct {
type ldmParams_t (line 145) | typedef struct {
type rawSeq (line 154) | typedef struct {
type rawSeqStore_t (line 160) | typedef struct {
type ZSTD_CCtx_params_s (line 167) | struct ZSTD_CCtx_params_s {
type ZSTD_CCtx_s (line 189) | struct ZSTD_CCtx_s {
function MEM_STATIC (line 245) | MEM_STATIC U32 ZSTD_LLcode(U32 litLength)
function MEM_STATIC (line 262) | MEM_STATIC U32 ZSTD_MLcode(U32 mlBase)
function MEM_STATIC (line 281) | MEM_STATIC void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength,...
function ZSTD_NbCommonBytes (line 322) | static unsigned ZSTD_NbCommonBytes (size_t val)
function MEM_STATIC (line 391) | MEM_STATIC size_t ZSTD_count(const BYTE* pIn, const BYTE* pMatch, const ...
function MEM_STATIC (line 416) | MEM_STATIC size_t
function U32 (line 431) | static U32 ZSTD_hash3(U32 u, U32 h) { return ((u << (32-24)) * prime3...
function MEM_STATIC (line 432) | MEM_STATIC size_t ZSTD_hash3Ptr(const void* ptr, U32 h) { return ZSTD_ha...
function U32 (line 435) | static U32 ZSTD_hash4(U32 u, U32 h) { return (u * prime4bytes) >> (32...
function ZSTD_hash4Ptr (line 436) | static size_t ZSTD_hash4Ptr(const void* ptr, U32 h) { return ZSTD_hash4(...
function ZSTD_hash5 (line 439) | static size_t ZSTD_hash5(U64 u, U32 h) { return (size_t)(((u << (64-40)...
function ZSTD_hash5Ptr (line 440) | static size_t ZSTD_hash5Ptr(const void* p, U32 h) { return ZSTD_hash5(ME...
function ZSTD_hash6 (line 443) | static size_t ZSTD_hash6(U64 u, U32 h) { return (size_t)(((u << (64-48)...
function ZSTD_hash6Ptr (line 444) | static size_t ZSTD_hash6Ptr(const void* p, U32 h) { return ZSTD_hash6(ME...
function ZSTD_hash7 (line 447) | static size_t ZSTD_hash7(U64 u, U32 h) { return (size_t)(((u << (64-56)...
function ZSTD_hash7Ptr (line 448) | static size_t ZSTD_hash7Ptr(const void* p, U32 h) { return ZSTD_hash7(ME...
function ZSTD_hash8 (line 451) | static size_t ZSTD_hash8(U64 u, U32 h) { return (size_t)(((u) * prime8by...
function ZSTD_hash8Ptr (line 452) | static size_t ZSTD_hash8Ptr(const void* p, U32 h) { return ZSTD_hash8(ME...
function MEM_STATIC (line 454) | MEM_STATIC size_t ZSTD_hashPtr(const void* p, U32 hBits, U32 mls)
function MEM_STATIC (line 481) | MEM_STATIC void ZSTD_window_clear(ZSTD_window_t* window)
function MEM_STATIC (line 494) | MEM_STATIC U32 ZSTD_window_hasExtDict(ZSTD_window_t const window)
function MEM_STATIC (line 504) | MEM_STATIC U32 ZSTD_window_needOverflowCorrection(ZSTD_window_t const wi...
function MEM_STATIC (line 521) | MEM_STATIC U32 ZSTD_window_correctOverflow(ZSTD_window_t* window, U32 cy...
function MEM_STATIC (line 575) | MEM_STATIC void ZSTD_window_enforceMaxDist(ZSTD_window_t* window,
function MEM_STATIC (line 601) | MEM_STATIC U32 ZSTD_window_update(ZSTD_window_t* window,
FILE: rocketmq-knative/source/vendor/github.com/DataDog/zstd/zstd_decompress.c
function ZSTD_copy4 (line 72) | static void ZSTD_copy4(void* dst, const void* src) { memcpy(dst, src, 4); }
type ZSTD_dStage (line 78) | typedef enum { ZSTDds_getFrameHeaderSize, ZSTDds_decodeFrameHeader,
type ZSTD_dStreamStage (line 83) | typedef enum { zdss_init=0, zdss_loadHeader,
type ZSTD_seqSymbol_header (line 87) | typedef struct {
type ZSTD_seqSymbol (line 92) | typedef struct {
type ZSTD_entropyDTables_t (line 101) | typedef struct {
type ZSTD_DCtx_s (line 110) | struct ZSTD_DCtx_s
function ZSTD_sizeof_DCtx (line 162) | size_t ZSTD_sizeof_DCtx (const ZSTD_DCtx* dctx)
function ZSTD_estimateDCtxSize (line 170) | size_t ZSTD_estimateDCtxSize(void) { return sizeof(ZSTD_DCtx); }
function ZSTD_startingInputLength (line 173) | static size_t ZSTD_startingInputLength(ZSTD_format_e format)
function ZSTD_initDCtx_internal (line 184) | static void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx)
function ZSTD_DCtx (line 198) | ZSTD_DCtx* ZSTD_initStaticDCtx(void *workspace, size_t workspaceSize)
function ZSTD_DCtx (line 211) | ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem)
function ZSTD_DCtx (line 225) | ZSTD_DCtx* ZSTD_createDCtx(void)
function ZSTD_freeDCtx (line 231) | size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx)
function ZSTD_copyDCtx (line 250) | void ZSTD_copyDCtx(ZSTD_DCtx* dstDCtx, const ZSTD_DCtx* srcDCtx)
function ZSTD_isFrame (line 266) | unsigned ZSTD_isFrame(const void* buffer, size_t size)
function ZSTD_frameHeaderSize_internal (line 284) | static size_t ZSTD_frameHeaderSize_internal(const void* src, size_t srcS...
function ZSTD_frameHeaderSize (line 302) | size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize)
function ZSTD_getFrameHeader_internal (line 314) | static size_t ZSTD_getFrameHeader_internal(ZSTD_frameHeader* zfhPtr, con...
function ZSTD_getFrameHeader (line 395) | size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src, si...
function ZSTD_getFrameContentSize (line 406) | unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcS...
function ZSTD_findDecompressedSize (line 429) | unsigned long long ZSTD_findDecompressedSize(const void* src, size_t src...
function ZSTD_getDecompressedSize (line 481) | unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcS...
function ZSTD_decodeFrameHeader (line 492) | static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, s...
function ZSTD_getcBlockSize (line 510) | size_t ZSTD_getcBlockSize(const void* src, size_t srcSize,
function ZSTD_copyRawBlock (line 526) | static size_t ZSTD_copyRawBlock(void* dst, size_t dstCapacity,
function ZSTD_setRleBlock (line 535) | static size_t ZSTD_setRleBlock(void* dst, size_t dstCapacity,
function ZSTD_decodeLiteralsBlock (line 548) | size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx,
function ZSTD_buildSeqTable_rle (line 784) | static void ZSTD_buildSeqTable_rle(ZSTD_seqSymbol* dt, U32 baseValue, U3...
function ZSTD_buildFSETable (line 803) | static void
function ZSTD_buildSeqTable (line 868) | static size_t ZSTD_buildSeqTable(ZSTD_seqSymbol* DTableSpace, const ZSTD...
function ZSTD_decodeSeqHeaders (line 937) | size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr,
type seq_t (line 1003) | typedef struct {
type ZSTD_fseState (line 1010) | typedef struct {
type seqState_t (line 1015) | typedef struct {
function FORCE_NOINLINE (line 1027) | FORCE_NOINLINE
function HINT_INLINE (line 1074) | HINT_INLINE
function HINT_INLINE (line 1155) | HINT_INLINE
function ZSTD_initFseState (line 1234) | static void
function FORCE_INLINE_TEMPLATE (line 1246) | FORCE_INLINE_TEMPLATE void
type ZSTD_longOffset_e (line 1265) | typedef enum { ZSTD_lo_isRegularOffset, ZSTD_lo_isLongOffset=1 } ZSTD_lo...
function FORCE_INLINE_TEMPLATE (line 1267) | FORCE_INLINE_TEMPLATE seq_t
function FORCE_INLINE_TEMPLATE (line 1344) | FORCE_INLINE_TEMPLATE size_t
function ZSTD_decompressSequences_default (line 1398) | static size_t
function FORCE_INLINE_TEMPLATE (line 1409) | FORCE_INLINE_TEMPLATE seq_t
function FORCE_INLINE_TEMPLATE (line 1487) | FORCE_INLINE_TEMPLATE size_t
function ZSTD_decompressSequencesLong_default (line 1566) | static size_t
function ZSTD_decompressSequences_bmi2 (line 1579) | size_t
function ZSTD_decompressSequencesLong_bmi2 (line 1588) | size_t
function ZSTD_decompressSequences (line 1604) | static size_t ZSTD_decompressSequences(ZSTD_DCtx* dctx, void* dst, size_...
function ZSTD_decompressSequencesLong (line 1617) | static size_t ZSTD_decompressSequencesLong(ZSTD_DCtx* dctx,
function ZSTD_getLongOffsetsShare (line 1635) | static unsigned
function ZSTD_decompressBlock_internal (line 1657) | static size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx,
function ZSTD_checkContinuity (line 1700) | static void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst)
function ZSTD_decompressBlock (line 1710) | size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx,
function ZSTDLIB_API (line 1724) | ZSTDLIB_API size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockSt...
function ZSTD_generateNxBytes (line 1732) | static size_t ZSTD_generateNxBytes(void* dst, size_t dstCapacity, BYTE b...
function ZSTD_findFrameCompressedSize (line 1744) | size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize)
function ZSTD_decompressFrame (line 1795) | static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx,
function ZSTD_decompressMultiFrame (line 1877) | static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx,
function ZSTD_decompress_usingDict (line 1957) | size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx,
function ZSTD_decompressDCtx (line 1966) | size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t dstCapacit...
function ZSTD_decompress (line 1972) | size_t ZSTD_decompress(void* dst, size_t dstCapacity, const void* src, s...
function ZSTD_nextSrcSizeToDecompress (line 1992) | size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx) { return dctx->expe...
function ZSTD_nextInputType_e (line 1994) | ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) {
function ZSTD_isSkipFrame (line 2016) | static int ZSTD_isSkipFrame(ZSTD_DCtx* dctx) { return dctx->stage == ZST...
function ZSTD_decompressContinue (line 2022) | size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCap...
function ZSTD_refDictContent (line 2159) | static size_t ZSTD_refDictContent(ZSTD_DCtx* dctx, const void* dict, siz...
function ZSTD_loadEntropy (line 2171) | static size_t ZSTD_loadEntropy(ZSTD_entropyDTables_t* entropy, const voi...
function ZSTD_decompress_insertDictionary (line 2238) | static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const vo...
function ZSTD_decompressBegin (line 2260) | size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx)
function ZSTD_decompressBegin_usingDict (line 2282) | size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict,...
type ZSTD_DDict_s (line 2293) | struct ZSTD_DDict_s {
function ZSTD_DDictDictSize (line 2308) | static size_t ZSTD_DDictDictSize(const ZSTD_DDict* ddict)
function ZSTD_decompressBegin_usingDDict (line 2313) | size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dstDCtx, const ZSTD_DD...
function ZSTD_loadEntropy_inDDict (line 2340) | static size_t ZSTD_loadEntropy_inDDict(ZSTD_DDict* ddict, ZSTD_dictConte...
function ZSTD_initDDict_internal (line 2367) | static size_t ZSTD_initDDict_internal(ZSTD_DDict* ddict,
function ZSTD_DDict (line 2391) | ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize,
function ZSTD_DDict (line 2415) | ZSTD_DDict* ZSTD_createDDict(const void* dict, size_t dictSize)
function ZSTD_DDict (line 2425) | ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t ...
function ZSTD_DDict (line 2432) | const ZSTD_DDict* ZSTD_initStaticDDict(
function ZSTD_freeDDict (line 2455) | size_t ZSTD_freeDDict(ZSTD_DDict* ddict)
function ZSTD_estimateDDictSize (line 2468) | size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dic...
function ZSTD_sizeof_DDict (line 2473) | size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict)
function ZSTD_getDictID_fromDict (line 2483) | unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize)
function ZSTD_getDictID_fromDDict (line 2494) | unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict)
function ZSTD_getDictID_fromFrame (line 2513) | unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize)
function ZSTD_decompress_usingDDict (line 2525) | size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx,
function ZSTD_DStream (line 2541) | ZSTD_DStream* ZSTD_createDStream(void)
function ZSTD_DStream (line 2547) | ZSTD_DStream* ZSTD_initStaticDStream(void *workspace, size_t workspaceSize)
function ZSTD_DStream (line 2552) | ZSTD_DStream* ZSTD_createDStream_advanced(ZSTD_customMem customMem)
function ZSTD_freeDStream (line 2557) | size_t ZSTD_freeDStream(ZSTD_DStream* zds)
function ZSTD_DStreamInSize (line 2565) | size_t ZSTD_DStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX + ZSTD_bloc...
function ZSTD_DStreamOutSize (line 2566) | size_t ZSTD_DStreamOutSize(void) { return ZSTD_BLOCKSIZE_MAX; }
function ZSTD_DCtx_loadDictionary_advanced (line 2568) | size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, const void* di...
function ZSTD_DCtx_loadDictionary_byReference (line 2582) | size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void*...
function ZSTD_DCtx_loadDictionary (line 2587) | size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_...
function ZSTD_DCtx_refPrefix_advanced (line 2592) | size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix,...
function ZSTD_DCtx_refPrefix (line 2597) | size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx, const void* prefix, size_t p...
function ZSTD_initDStream_usingDict (line 2606) | size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, s...
function ZSTD_initDStream (line 2615) | size_t ZSTD_initDStream(ZSTD_DStream* zds)
function ZSTD_DCtx_refDDict (line 2621) | size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict)
function ZSTD_initDStream_usingDDict (line 2631) | size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict*...
function ZSTD_resetDStream (line 2641) | size_t ZSTD_resetDStream(ZSTD_DStream* dctx)
function ZSTD_setDStreamParameter (line 2651) | size_t ZSTD_setDStreamParameter(ZSTD_DStream* dctx,
function ZSTD_DCtx_setMaxWindowSize (line 2666) | size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize)
function ZSTD_DCtx_setFormat (line 2673) | si
Copy disabled (too large)
Download .json
Condensed preview — 4748 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (51,149K chars).
[
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 1099,
"preview": "The issue tracker is **ONLY** used for bug report and feature request. \n\nAny question or RocketMQ proposal please use ou"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 1684,
"preview": "## What is the purpose of the change\n\nXXXXX\n\n## Brief changelog\n\nXX\n\n## Verifying this change\n\nXXXX\n\nFollow this checkli"
},
{
"path": ".gitignore",
"chars": 154,
"preview": ".idea\n.classpath\n.project\n.settings/\ntarget/\n*.log*\n*.iml\n.idea/\n*.versionsBackup\n!NOTICE-BIN\n!LICENSE-BIN\n.DS_Store\n.vs"
},
{
"path": ".travis.yml",
"chars": 326,
"preview": "dist: trusty\n\nnotifications:\n email:\n recipients:\n - dev@rocketmq.apache.org\n on_success: change\n on_failure:"
},
{
"path": "README.md",
"chars": 4224,
"preview": "# [Apache RocketMQ](https://github.com/apache/rocketmq) Community Projects Home\n\nThere are many of the Apache RocketMQ e"
},
{
"path": "dev/merge_rocketmq_pr.py",
"chars": 17496,
"preview": "#!/usr/bin/env python\n\n#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agre"
},
{
"path": "docs/connect/cn/README.md",
"chars": 1281,
"preview": "# RocketMQ Connect 中文指南\n\n## 文档库\n\n* [用户手册](https://rocketmq-1.gitbook.io/rocketmq-connector/)\n* [快速入门](https://rocketmq-1"
},
{
"path": "logappender/pom.xml",
"chars": 4293,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "logappender/src/main/java/org/apache/rocketmq/logappender/common/ProducerInstance.java",
"chars": 3476,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/main/java/org/apache/rocketmq/logappender/log4j/RocketmqLog4jAppender.java",
"chars": 5567,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/main/java/org/apache/rocketmq/logappender/log4j2/RocketmqLog4j2Appender.java",
"chars": 7762,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/main/java/org/apache/rocketmq/logappender/logback/RocketmqLogbackAppender.java",
"chars": 5324,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/test/java/org/apache/rocketmq/logappender/AbstractTestCase.java",
"chars": 2731,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/test/java/org/apache/rocketmq/logappender/Log4jPropertiesTest.java",
"chars": 1159,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/test/java/org/apache/rocketmq/logappender/Log4jTest.java",
"chars": 1446,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/test/java/org/apache/rocketmq/logappender/Log4jXmlTest.java",
"chars": 1132,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/test/java/org/apache/rocketmq/logappender/LogbackTest.java",
"chars": 1993,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/test/java/org/apache/rocketmq/logappender/log4j2Test.java",
"chars": 1670,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "logappender/src/test/resources/log4j-example.properties",
"chars": 1848,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": "logappender/src/test/resources/log4j-example.xml",
"chars": 2249,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\nLicensed to the Apache Software Foundation (ASF) under one or more\ncontribut"
},
{
"path": "logappender/src/test/resources/log4j2-example.xml",
"chars": 1614,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "logappender/src/test/resources/logback-example.xml",
"chars": 3210,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-ansible/Rocketmq Ansible Playbook cn.md",
"chars": 2556,
"preview": "Apache RocketMQ Playbook提供Apache RocketMQ集群部署和Apache RocketMQ Exporter部署功能。\n\nApache RocketMQ Playbook集成了部署环境初始化、可运行包下载、o"
},
{
"path": "rocketmq-ansible/Rocketmq Ansible Playbook en.md",
"chars": 4204,
"preview": "Apache RocketMQ Playbook provides the Apache RocketMQ cluster deployment and Apache RocketMQ Exporter deployment functio"
},
{
"path": "rocketmq-ansible/broker.yml",
"chars": 883,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/exporter.yml",
"chars": 889,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/hosts",
"chars": 1422,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/namesrv.yml",
"chars": 886,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/rocketmq.yml",
"chars": 1367,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/broker/tasks/main.yml",
"chars": 2287,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/broker/templates/broker.conf.j2",
"chars": 1390,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": "rocketmq-ansible/roles/broker/templates/logback_broker.xml.j2",
"chars": 15242,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-ansible/roles/broker/templates/mqbroker.service",
"chars": 1296,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/broker/vars/main.yml",
"chars": 979,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/exporter/files/mqexportershutdown.sh",
"chars": 916,
"preview": "#!/bin/sh\n\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See t"
},
{
"path": "rocketmq-ansible/roles/exporter/tasks/main.yml",
"chars": 1977,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/exporter/templates/mqexporter.service",
"chars": 1177,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": "rocketmq-ansible/roles/exporter/templates/mqexporter.sh.j2",
"chars": 1085,
"preview": "#!/bin/sh\n\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See t"
},
{
"path": "rocketmq-ansible/roles/exporter/vars/main.yml",
"chars": 980,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/namesrv/tasks/main.yml",
"chars": 2008,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/namesrv/templates/logback_namesrv.xml.j2",
"chars": 3880,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-ansible/roles/namesrv/templates/mqnamesrv.service",
"chars": 1197,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/roles/namesrv/vars/main.yml",
"chars": 982,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-ansible/vars/main.yml",
"chars": 877,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\r\n# contributor license agreements. See the NOTICE "
},
{
"path": "rocketmq-beats-integration/README.md",
"chars": 6797,
"preview": "# rocketmq-beats-integration\n\nThis project enables Apache RocketMQ integrate directly\nwith [Elastic Beats](https://www.e"
},
{
"path": "rocketmq-beats-integration/libbeat/outputs/rocketmq/LICENSE",
"chars": 11357,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "rocketmq-beats-integration/libbeat/outputs/rocketmq/NOTICE",
"chars": 182,
"preview": "Apache RocketMQ (incubating)\nCopyright 2016-2022 The Apache Software Foundation\n\nThis product includes software develope"
},
{
"path": "rocketmq-beats-integration/libbeat/outputs/rocketmq/client.go",
"chars": 3782,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one or more\ncontributor license agreements. See the NOTICE fi"
},
{
"path": "rocketmq-beats-integration/libbeat/outputs/rocketmq/config.go",
"chars": 1759,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one or more\ncontributor license agreements. See the NOTICE fi"
},
{
"path": "rocketmq-beats-integration/libbeat/outputs/rocketmq/rocketmq.go",
"chars": 1880,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one or more\ncontributor license agreements. See the NOTICE fi"
},
{
"path": "rocketmq-cloudevents-binding/pom.xml",
"chars": 5332,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- Licensed to the Apache Software Foundation (ASF) under one or more contribut"
},
{
"path": "rocketmq-cloudevents-binding/rocketmq-transport-binding.md",
"chars": 8048,
"preview": "# RocketMQ Transport Binding for CloudEvents\n\n## Abstract\n\nThe [RocketMQ][RocketMQ] Transport Binding for CloudEvents de"
},
{
"path": "rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/RocketMQMessageFactory.java",
"chars": 2882,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQBinaryMessageReader.java",
"chars": 2286,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQHeaders.java",
"chars": 1406,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-cloudevents-binding/src/main/java/org/apache/rocketmq/cloudevent/impl/RocketMQMessageWriter.java",
"chars": 3202,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-cloudevents-binding/src/test/java/org/apache/rocketmq/cloudevent/RocketMQMessageWriterTest.java",
"chars": 12512,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-cloudevents-binding/src/test/java/org/apache/rocketmq/cloudevent/RocketmqMessageFactoryTest.java",
"chars": 12394,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/.gitignore",
"chars": 57,
"preview": ".*\n*.class\n*.jar\n*.war\n*.iml\n.settings\ntarget\n!.gitignore"
},
{
"path": "rocketmq-flume/LICENSE",
"chars": 11365,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "rocketmq-flume/LICENSE-BIN",
"chars": 11365,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "rocketmq-flume/NOTICE",
"chars": 181,
"preview": "Apache RocketMQ (incubating)\nCopyright 2016-2017 The Apache Software Foundation\n\nThis product includes software develope"
},
{
"path": "rocketmq-flume/NOTICE-BIN",
"chars": 474,
"preview": "Apache RocketMQ (incubating)\nCopyright 2016-2017 The Apache Software Foundation\n\nThis product includes software develope"
},
{
"path": "rocketmq-flume/README.md",
"chars": 4781,
"preview": "rocketmq-flume-ng Sink & Source\n==========================\n\nThis project is used to receive and send messages between\n[R"
},
{
"path": "rocketmq-flume/pom.xml",
"chars": 5757,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-flume/rocketmq-flume-sink/pom.xml",
"chars": 1259,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-sink/src/main/java/org/apache/rocketmq/flume/ng/sink/RocketMQSink.java",
"chars": 8586,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-sink/src/main/java/org/apache/rocketmq/flume/ng/sink/RocketMQSinkConstants.java",
"chars": 1600,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-sink/src/test/java/org/apache/rocketmq/flume/ng/sink/RocketMQSinkTest.java",
"chars": 12330,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-sink/src/test/resources/log4j.properties",
"chars": 1040,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "rocketmq-flume/rocketmq-flume-source/pom.xml",
"chars": 1261,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-source/src/main/java/org/apache/rocketmq/flume/ng/source/RocketMQSource.java",
"chars": 6172,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-source/src/main/java/org/apache/rocketmq/flume/ng/source/RocketMQSourceConstants.java",
"chars": 1726,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-source/src/test/java/org/apache/rocketmq/flume/ng/source/RocketMQSourceTest.java",
"chars": 7884,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/rocketmq-flume-source/src/test/resources/log4j.properties",
"chars": 1040,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "rocketmq-flume/style/copyright/Apache.xml",
"chars": 1802,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/style/copyright/profiles_settings.xml",
"chars": 2752,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-flume/style/rmq_checkstyle.xml",
"chars": 5837,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-flume/style/rmq_codeStyle.xml",
"chars": 7110,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/README.md",
"chars": 267,
"preview": "# RocketMQ-HBase\n\n## Overview\n\nThis project provides connectors between RocketMQ and HBase. \nThe [HBase sink](rocketmq-h"
},
{
"path": "rocketmq-hbase/pom.xml",
"chars": 4628,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n xmlns:xsi=\"http://www"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-sink/README.md",
"chars": 1233,
"preview": "# RocketMQ-HBase Sink\n\n## Overview\n\nThis project replicates HBase tables to RocketMQ topics.\n\n## Pre-requisites\n- HBase "
},
{
"path": "rocketmq-hbase/rocketmq-hbase-sink/pom.xml",
"chars": 516,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n xmlns:xsi=\"http://www"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/DataRow.java",
"chars": 3167,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/Replicator.java",
"chars": 6144,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/RocketMQProducer.java",
"chars": 2741,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-sink/src/main/java/org/apache/rocketmq/hbase/sink/Transaction.java",
"chars": 3694,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-sink/src/test/java/org/apache/rocketmq/sink/ReplicatorTest.java",
"chars": 13903,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/LICENSE-BIN",
"chars": 15529,
"preview": "Apache License\n Version 2.0, January 2004\n http://www.apache.org/licens"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/NOTICE-BIN",
"chars": 181,
"preview": "Apache RocketMQ (incubating)\nCopyright 2016-2017 The Apache Software Foundation\n\nThis product includes software develope"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/README.md",
"chars": 1255,
"preview": "# RocketMQ-HBase Source\n\n## Overview\n\nThis project replicates RocketMQ topics to HBase tables.\n\n## Pre-requisites\n- HBas"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/pom.xml",
"chars": 1990,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n xmlns:xsi=\"http://www"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/assembly/assembly.xml",
"chars": 2268,
"preview": "<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ contributor license agreements. See the"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/assembly/scripts/start.sh",
"chars": 603,
"preview": "#!/usr/bin/env bash\n\nbinPath=$(cd \"$(dirname \"$0\")\"; pwd);\ncd $binPath\ncd ..\nparentPath=`pwd`\nlibPath=$parentPath/lib/\n\n"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/assembly/scripts/stop.sh",
"chars": 384,
"preview": "#!/usr/bin/env bash\n\nPROGRAM_NAME=\"org.apache.rocketmq.hbase.source.RocketMQSource\"\nPIDS=`ps -ef | grep $PROGRAM_NAME | "
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/Config.java",
"chars": 5631,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/HBaseClient.java",
"chars": 3466,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/MessageProcessor.java",
"chars": 3493,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/RocketMQConsumer.java",
"chars": 4437,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/java/org/apache/rocketmq/hbase/source/RocketMQSource.java",
"chars": 1854,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/resources/logback.xml",
"chars": 3027,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/main/resources/rocketmq_hbase.conf",
"chars": 794,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": "rocketmq-hbase/rocketmq-hbase-source/src/test/java/org/apache/rocketmq/hbase/source/RocketMQSourceTest.java",
"chars": 9726,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/style/copyright/Apache.xml",
"chars": 1788,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/style/copyright/profiles_settings.xml",
"chars": 2754,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-hbase/style/rmq_checkstyle.xml",
"chars": 5796,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-hbase/style/rmq_codeStyle.xml",
"chars": 7109,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/.gitignore",
"chars": 26,
"preview": ".idea\ntarget/\n*.swp\n*.swo\n"
},
{
"path": "rocketmq-iot-bridge/README.md",
"chars": 1506,
"preview": "# IoT Bridge for Apache RocketMQ\n\nIoT Bridge for Apache RocketMQ is a solution to reliable and real-time message service"
},
{
"path": "rocketmq-iot-bridge/docs/architecture.md",
"chars": 734,
"preview": "# Architecture\n\n\n\nAs shown in above picture, the modules of the bridge are:\n- ConnectionMana"
},
{
"path": "rocketmq-iot-bridge/docs/index.md",
"chars": 184,
"preview": "# MQTT Bridge for Apache RocketMQ Documents\n- [architecture](architecture.md)\n- [RIP](https://docs.google.com/document/d"
},
{
"path": "rocketmq-iot-bridge/docs-cn/architecture.md",
"chars": 520,
"preview": "# 架构设计\n\n\n\n如上图所示,各个子模块职责如下:\n- Connection Manager: 管理客户端和Bridge之间的连接\n- Protocol Converter:负责协议"
},
{
"path": "rocketmq-iot-bridge/docs-cn/index.md",
"chars": 167,
"preview": "# Apache RocketMQ MQTT Bridge 文档索引\n- [架构设计](architecture.md)\n- [RIP](https://docs.google.com/document/d/1G1-aJ74ZTjy_rxt"
},
{
"path": "rocketmq-iot-bridge/pom.xml",
"chars": 9387,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\nLicensed to the Apache Software Foundation (ASF) under one or more\ncontribut"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/MQTTBridge.java",
"chars": 6035,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/configuration/ChannelConfiguration.java",
"chars": 1123,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/configuration/MQTTBridgeConfiguration.java",
"chars": 2128,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/data/Message.java",
"chars": 3052,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/common/util/MessageUtil.java",
"chars": 9649,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/connection/client/Client.java",
"chars": 1456,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/connection/client/ClientManager.java",
"chars": 1580,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/connection/client/impl/ClientManagerImpl.java",
"chars": 1541,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/example/MqttSampleConsumer.java",
"chars": 3010,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/example/MqttSampleProducer.java",
"chars": 2697,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/constant/MqttConstant.java",
"chars": 1125,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/data/Bridge.java",
"chars": 968,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/data/MqttClient.java",
"chars": 1179,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/data/Subscription.java",
"chars": 1690,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/event/DisconnectChannelEvent.java",
"chars": 1117,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MessageDispatcher.java",
"chars": 2654,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MessageHandler.java",
"chars": 1069,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttConnectionHandler.java",
"chars": 3889,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttIdleHandler.java",
"chars": 6950,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/SendCallback.java",
"chars": 1366,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttConnectMessageHandler.java",
"chars": 4213,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttDisconnectMessageHandler.java",
"chars": 1838,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttMessageForwarder.java",
"chars": 3325,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttMessageSender.java",
"chars": 1480,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPingreqMessageHandler.java",
"chars": 1954,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubackMessageHandler.java",
"chars": 1969,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubcompMessageHandler.java",
"chars": 1235,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPublishMessageHandler.java",
"chars": 2342,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubrecMessageHandler.java",
"chars": 1233,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttPubrelMessageHandler.java",
"chars": 1233,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttSubscribeMessageHandler.java",
"chars": 3396,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/impl/MqttUnsubscribeMessagHandler.java",
"chars": 2649,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/message/MessageStore.java",
"chars": 2847,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/message/cache/MessageCache.java",
"chars": 1681,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/subscription/SubscriptionStore.java",
"chars": 2559,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/subscription/impl/InMemorySubscriptionStore.java",
"chars": 7012,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/connection/client/ClientManagerTest.java",
"chars": 3024,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/integration/ConsumeMessageIntegrationTest.java",
"chars": 9785,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/integration/ProduceMessageIntegrationTest.java",
"chars": 8835,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/integration/PubSubIntegrationTest.java",
"chars": 11279,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttConnectionHandlerTest.java",
"chars": 2964,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttDispatcherTest.java",
"chars": 3304,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/MqttIdleHandlerTest.java",
"chars": 3283,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/AbstractMqttMessageHandlerTest.java",
"chars": 3529,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttConnectMessageHandlerTest.java",
"chars": 4251,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttDisconnectMessageHandlerTest.java",
"chars": 2502,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttMessageForwarderTest.java",
"chars": 5250,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttPingreqMessageHandlerTest.java",
"chars": 2843,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttSubscribeMessageHandlerTest.java",
"chars": 3688,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/protocol/mqtt/handler/downstream/MqttUnsubscribeMessageHandlerTest.java",
"chars": 3645,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/src/test/java/org/apache/rocketmq/iot/storage/subscription/InMemorySubscriptionTest.java",
"chars": 9467,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/style/copyright/Apache.xml",
"chars": 1788,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/style/copyright/profiles_settings.xml",
"chars": 2754,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-iot-bridge/style/rmq_checkstyle.xml",
"chars": 6066,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contr"
},
{
"path": "rocketmq-iot-bridge/style/rmq_codeStyle.xml",
"chars": 7109,
"preview": "<!--\n Licensed to the Apache Software Foundation (ASF) under one or more\n contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/.gitignore",
"chars": 33,
"preview": ".idea/\n*.iml\n*.ipr\n*.iws\ntarget/\n"
},
{
"path": "rocketmq-jms/.travis.yml",
"chars": 964,
"preview": "notifications:\n email:\n recipients:\n - zhangke.huangshan@gmail.com\n - zhendongliu92@gmail.com\n on_success"
},
{
"path": "rocketmq-jms/README.md",
"chars": 649,
"preview": "# RocketMQ-JMS\n\n## Introduction\nRocketMQ-JMS is an implement of JMS specification,taking Apache RocketMQ as broker.\nNow "
},
{
"path": "rocketmq-jms/core/pom.xml",
"chars": 1844,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/CommonConstant.java",
"chars": 1195,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/CommonContext.java",
"chars": 4163,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConnection.java",
"chars": 5754,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConnectionFactory.java",
"chars": 4766,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConnectionMetaData.java",
"chars": 4546,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseConstant.java",
"chars": 3464,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseMessageConsumer.java",
"chars": 6677,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseMessageProducer.java",
"chars": 11196,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseSession.java",
"chars": 10183,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/JmsBaseTopic.java",
"chars": 1718,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/RMQPushConsumerExt.java",
"chars": 4451,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsBaseMessage.java",
"chars": 12821,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsBytesMessage.java",
"chars": 7660,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsObjectMessage.java",
"chars": 1353,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/domain/message/JmsTextMessage.java",
"chars": 1403,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/ExceptionUtil.java",
"chars": 1688,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/MessageConverter.java",
"chars": 8231,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/MsgConvertUtil.java",
"chars": 3112,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/java/org/apache/rocketmq/jms/util/URISpecParser.java",
"chars": 2385,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/main/resources/application.conf",
"chars": 28,
"preview": "version = ${project.version}"
},
{
"path": "rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/JmsTestListener.java",
"chars": 2123,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/JmsTestUtil.java",
"chars": 2482,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsBytesMessageTest.java",
"chars": 3815,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsMessageConvertTest.java",
"chars": 3035,
"preview": "package org.apache.rocketmq.jms.domain.message;\n\nimport org.apache.rocketmq.common.message.MessageConst;\nimport org.apac"
},
{
"path": "rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsObjectMessageTest.java",
"chars": 2796,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/domain/message/JmsTextMessageTest.java",
"chars": 1631,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "rocketmq-jms/core/src/test/java/org/apache/rocketmq/jms/integration/IntegrationTestBase.java",
"chars": 8084,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
}
]
// ... and 4548 more files (download for full content)
About this extraction
This page contains the full source code of the apache/incubator-rocketmq-externals GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 4748 files (45.1 MB), approximately 12.1M tokens, and a symbol index with 148868 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.