1. 30 7月, 2019 1 次提交
    • S
      [schema] KeyValue schema support using AUTO_CONSUME as key/value schema (#4839) · dd7cc890
      Sijie Guo 提交于
      *Motivation*
      
      Currently KeyValue schema doesn't support using AUTO_CONSUME.
      
      This PR is to add this support.
      
      This PR is based on #4836
      
      *Changes*
      
      - refactor a bit on Schema interface to support fetching schema info for both AutoConsumeSchema and KeyValueSchema before subscribing
      - add AUTO_CONSUME support to KeyValueSchema
      - add tests
      dd7cc890
  2. 04 6月, 2019 1 次提交
  3. 28 4月, 2019 1 次提交
    • C
      Add the multi version schema support (#3876) · d5ff0828
      congbo 提交于
      ### Motivation
      
      Fix #3742
      
      In order to decode the message correctly by AVRO schema, we need to know the schema what the message is.
      
      ### Modification
      
      - Introduced Schema Reader and Schema Writer for StructSchema.
         - Reader is used to decode message
         - Writer is used to encode message
      - The implementations of StructSchema, provides their schema reader and writer implementations. 
      - Introduced a schema reader cache for caching the readers for different schema versions. 
      d5ff0828
  4. 30 3月, 2019 1 次提交
    • S
      [schema] store schema type correctly in schema registry (#3940) · 7e7175db
      Sijie Guo 提交于
      *Motivation*
      
      Fixes #3925
      
      We have 3 places of defining schema type enums. We kept adding
      new schema type in pulsar-common. However we don't update the schema type
      in wire protocol and schema storage.
      
      This causes `SchemaType.NONE` is stored in SchemaRegistry.
      It fails debeizum connector on restarting.
      
      *Modifications*
      
      Make sure all 3 places have consistent schema type definitions.
      Record the correct schema type.
      7e7175db
  5. 28 2月, 2019 1 次提交
    • S
      [schema] Introduce `GenericSchema` interface (#3683) · f4d56624
      Sijie Guo 提交于
      *Motivation*
      
      In order to introduce `GenericRecordBuilder`, we need to know the fields in a `GenericSchema`.
      Otherwise, there is no way for us to build a GenericRecord.
      
      *Modifications*
      
      This proposal refactors current generic schema by introducing a `GenericSchema`. This generic schema
      provides interfaces to retrieve the fields of a `GenericRecordSchema`.
      
      *Additionally*
      
      This proposal adding the primitive schemas into `Schema` class. So people can program primitive schemas
      using Schema interface rather than specific implementations.
      f4d56624
  6. 26 2月, 2019 1 次提交
    • S
      [schema] Introduce multi version generic record schema (#3670) · 3c36705f
      Sijie Guo 提交于
      *Motivation*
      
      Currently AUTO_CONSUME only supports decoding records from latest schema.
      All the schema versions are lost. It makes AUTO_CONSUME less useful in some use cases,
      such as CDC. Because there is no way for the applications to know which version of schema
      that a message is using.
      
      In order to support multi-version schema, we need to propagate schema version from
      message header through schema#decode method to the decoded record.
      
      *Modifications*
      
      - Introduce a new decode method `decode(byte[] data, byte[] schemaVersion)`. This allows the implementation
        to leverage the schema version.
      - Introduce a method `supportSchemaVersioning` to tell which decode methods to use. Because most of the schema
        implementations such as primitive schemas and POJO based schema doesn't make any sense to use schema version.
      - Introduce a SchemaProvider which returns a specific schema instance for a given schema version
      - Implement a MultiVersionGenericRecordSchema which decode the messages based on schema version. All the records
        decoded by this schema will have schema version and its corresponding schema definitions.
      
      *NOTES
      
      This implementation only introduce the mechanism. But it doesn't wire the multi-version schema
      with auto_consume schema. There will be a subsequent pull request on implementing a schema provider
      that fetches and caches schemas from brokers.
      3c36705f
  7. 09 1月, 2019 1 次提交
  8. 15 12月, 2018 1 次提交
    • B
      remove pulsar-client-schema (#3184) · 5dd4b6e7
      Boyang Jerry Peng 提交于
      * remove pulsar-client-schema
      
      * shade avro dependencies in pulsar-client-kafka-shaded
      
      * refactor api to separate module
      
      * adding schema back
      
      * cleaning up
      
      * fix license issue
      
      * fixing licenses
      
      * cleaning up
      
      * adding back lombok
      
      * cleaning up
      5dd4b6e7
  9. 08 10月, 2018 1 次提交
    • S
      [schema] provide a flag to disable/enable schema validation on broker (#2730) · 0da4e4af
      Sijie Guo 提交于
      *Motivation*
      
      We need an upgrade/backward compatibility story for schema enforcement. Especially around:
      
      - `Producers cannot connect without a schema to topics with a schema`
      
      *Changes*
      
      - provide a flag on brokers to enable schema validation (and disabled it by default). this allows a smooth upgrade on brokers,
        otherwise, it will break all non-java producers on topics with schema immediately when upgrade to the new version
      0da4e4af
  10. 04 10月, 2018 1 次提交
    • S
      [schema] introduce AUTO_PRODUCE schema (#2685) · 1f373262
      Sijie Guo 提交于
      *Motivation*
      
      Currently trigger function is broken due to the schema enforcement we added recently:
      A producer without schema can't produce messages into a topic with schema.
      
      *Changes*
      
      - Rename `AUTO` to `AUTO_CONSUME`
      - Introduce `AUTO_PRODUCE` schema. The schema produces `byte[]`, but it will validate
        the bytes are compatible with the schema associated with the topic before producing.
      - Change trigger function to use `AUTO_PRODUCE` schema.
      1f373262
  11. 01 9月, 2018 1 次提交
  12. 17 7月, 2018 1 次提交
  13. 01 5月, 2018 1 次提交
  14. 30 3月, 2018 1 次提交
    • L
      More Pulsar Functions documentation (#1362) · 5f1aed2a
      Luc Perkins 提交于
      * add note on multiple input topics
      
      * fix CSS for highlight blocks
      
      * more java API docs
      
      * fix scrolling issue
      
      * add CLI documentation for pulsar-admin functions
      
      * fix YAML issues
      
      * add PF to features list on front page
      
      * add note about SPEs to feature description
      
      * remove unnecessary include in local config
      
      * add new badges to templates
      
      * add section on core programming modeL
      
      * add section on the SDK
      
      * begin adding section on java sdk
      
      * comparison table for native vs SDK
      
      * add decrementCounter method
      
      * add link
      
      * add counters section
      
      * update example functions
      
      * revert Context object to master
      
      * add user config section for java
      
      * fix misspelling in error output
      
      * add new PF config to YAML descriptor
      
      * add processing guarantees doc to the sidebar
      
      * update download URL and add trigger command to CLI docs
      
      * add logTopic flag to CLI docs
      
      * use native python function in quickstart
      
      * add intro to java section
      
      * update example functions and finish draft of API doc
      
      * fix URL in sidebar config
      
      * finish user config section in API doc
      
      * add example ContextFunction
      
      * finish draft of processing guarantees doc
      
      * add section on triggering
      
      * comment out subscription types section for now
      
      * remove unnecessary console.log statement
      
      * remove <hr> in docs template
      
      * add missing DefaultSerDe class import
      
      * fix error output to match test expectation
      
      * Add missing license header to new example Pulsar Function
      5f1aed2a
  15. 14 3月, 2018 1 次提交
  16. 04 3月, 2018 8 次提交
  17. 03 3月, 2018 1 次提交
    • I
      Utilities for arquillian integration tests (#1310) · 44e06635
      Ivan Kelly 提交于
      * Utilities for arquillian integration tests
      
      A set of utilities for working with clusters set up in arquillian.
      
      - Utilities to work with docker
      - Utilities to work with arquillian pulsar clusters
      - Await strategies that arquillian uses to know if a node is up
      - Stop actions to copy logs at the end of a test suite
      
      * Move to log4j2
      
      * Pull in extra dependencies for log4j yml configuration
      44e06635
  18. 24 6月, 2017 1 次提交
  19. 23 6月, 2017 1 次提交
  20. 07 9月, 2016 1 次提交