Hi Folks,
I'm close to finishing off my long overdue patch for adding Gora support to
Log4J 2.X [0] however I have a question which I hope I've explained well
enough.
In my implementation, the 'object' I am modeling is a Gora instance of the
Log4j 2.X NoSqlObject [1].
As you can see this object is relatively simple with numerous set(key,
value) methods where keys are always strings.
The data modeling issue I am having is how to model the complex value if it
is, for example, an Object, Object[ ], NoSqlObject or NoSqlObject[ ]?
I _think_ I encountered a similar issue a long time aho and turned to Avro
IDL to sort the issue out however before I do that I was thinking something
along the lines of the following

{
  "name": "GoraNoSqlObject",
  "type": "record",
  "namespace": "org.apache.logging.log4j.nosql.appender.gora",
  "doc": "GoraNoSqlObject represents the Gora implementation of NoSqlObject.",
  "fields": [
    {
      "name": "keySimpleValue",
      "type": {
        "type": "map",
        "values": ["null","NoSqlObject"]
      },
      "doc": "Sets the value of a property on this object to a nested
complex object.",
      "default": {
        ...
      }
    },
...

 This however would assume that I could model 'NoSqlObject' elsewhere, and
that it had been compiled and available on the GoraCompiler classpath prior
to this GoraNoSqlObject class being compiled. To me this just doesn't look
right.
I just want to get feedback from anyone interested in this to see how they
would build the data model.
Thanks
Lewis

[0] https://issues.apache.org/jira/browse/LOG4J2-603
[1]
https://logging.apache.org/log4j/2.0/log4j-nosql/apidocs/index.html?org/apache/logging/log4j/nosql/appender/NoSqlObject.html

-- 
*Lewis*

Reply via email to