Comments (4)
Yes.
I see
public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse(" ...
With respect to naming, do you prefer schema
to SCHEMA$
?
With respect to timing, maybe tonight.
I don't mean to steal your fun! The fix for issue #1 gets us almost all the way there. The hard parts were:
- what does a companion object definition look like when it is extracted/decomposed into its AST (err, into the quasiquote representation of its AST)
- where to splice in such a definition
This ought to do the trick, pattern match in an annotated class and emit an updated class and companion object:
q"""$mods class $name[..$tparams](..$first)(...$rest) extends ..$newParents { $self => ..$newBody };
object ${newTermName(name.toString)} { $newVal }"""
from avro-scala-macro-annotations.
@julianpeeters awesome, glad this can be fixed! I'm pretty much indifferent on naming of the companion object schema field, although the Scala style guide says "Constant names should be in upper camel case" so maybe it should be named Schema
?
from avro-scala-macro-annotations.
Sorry for any trouble this has caused you.
Does version 0.7 solve your issues? (Now up at Sontatype, syncing with Maven Central soon)
Was kinda locked into using "SCHEMA$" already, so without a strong objection, there it is, '$' in the name and all 🎱
from avro-scala-macro-annotations.
Just tested this out in 0.7 with the kafka schema registry - works great! Thanks a bunch for fixing this so quickly! 💯
from avro-scala-macro-annotations.
Related Issues (20)
- Adding default values in the schema? HOT 6
- Null valued field exclusion HOT 9
- Support for "map" type? HOT 10
- Issues reading and writing evolved records with the old schemas HOT 2
- Supported collection types HOT 2
- Type macro to Unit HOT 2
- Support AVDL files HOT 2
- AvroTypeProvider generated case class aren't specific records HOT 2
- Support case classes that already have a companion object HOT 3
- Have to use @AvroTypeProvider first and @AvroRecord second
- Support enums HOT 3
- Compile time typecheck fails on doubly+ nested types HOT 1
- logger didn't work out so well...
- AvroTypeProvider expansion from a schema with nested records works for .avro, fails for .avsc HOT 1
- Error reading an array of schmas HOT 1
- Support for nesting in a more hierarchical manner HOT 6
- Serializing with generic writer and deserializing with specific reader HOT 2
- How to use it properly? HOT 1
- What am I doing wrong? HOT 3
- Scala 2.12 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from avro-scala-macro-annotations.