Sure. We can make this utility to provide byte[] for compiled class. Though the utility will give a OutputStream object.. One can get byte[] out of that.
On Fri, Jan 22, 2016 at 2:56 PM, Timothy Farkas <[email protected]> wrote: > Suggestion: +1 for automatic generation of schema. The user should be able > to override the a manually specified schema though. > > Question: If the mechanism used to generate the class can produce a byte[] > array, then you can send the byte[] array for the class to downstream > operators and load the class from the byte[] array in each operator. An > example of how to do this is here: > > > http://stackoverflow.com/questions/1781091/java-how-to-load-class-stored-as-byte-into-the-jvm > > Thanks, > Tim > > On Fri, Jan 22, 2016 at 12:59 AM, Priyanka Gugale < > [email protected]> > wrote: > > > Hi, > > > > Suggestion: > > This came up with one of the discussion with Pramod, will it be a good > > idea, for database input operators to generate pojo based on the selected > > column field names and types? No need to accept json input from user. > > > > Question: > > How can we share this POJO among multiple operators when application is > > already launched and class is generated on the fly? > > > > -Priyanka > > > > On Thu, Jan 21, 2016 at 11:16 PM, Chinmay Kolhatkar < > > [email protected] > > > wrote: > > > > > Hi All, > > > > > > We're planning to add a utility in malhar-library for generating a POJO > > > class on the fly from given JSON schema. > > > > > > Use case is where the application is provided with schema and that > needs > > to > > > be used in one or more operators either as a tuple over the stream OR > for > > > processing. > > > > > > General Design: > > > 1. Utility will be provided with fqcn of the class and schema > definition > > > provided as json. > > > 2. The schema definition will look like following: > > > { > > > "fqcn":"<qualified class name>", > > > "fields": [ > > > { > > > "name":"field1", > > > "type":"long" > > > }, > > > { > > > "name":"field2", > > > "type": "string" > > > } > > > ] > > > } > > > 3. Supported types identified in "type" JSON field are: > > > boolean, char, byte, short, int, float, long, double > > > 4. The output of this utility will be a generated .class file in the > form > > > of FSDataOutputStream. > > > 5. Xbean asm5 library will be used for this. > > > 6. Following methods will be added to the generated class: > > > a. Getter/Setter methods for given fields. > > > b. simple toString - Generate string equivalent for all the fields > > > c. hashCode method - calculate the overall hashCode using > individual > > > field hashcodes, similar to how String.hashCode generates hashCode of > > > string using chars in it. > > > d. equals method - Similar to how String.equals method has done it > > > using individual char. > > > > > > > > > Questions I have about the functionality: > > > 1. Should the utility also support nested pojo definition via schema > > json? > > > In such case the field definition can look like following: > > > { "name":"nestedField", "type":"<fqcn of nested class>", > > > "fields":[....] } > > > The nested class will be provided > > > > > > 2. Should the utility also support giving out the JarOutputStream which > > > will have a generated jar? > > > > > > Please let me know your thoughts. > > > > > > Thanks, > > > Chinmay. > > > > > >
