Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-02 Thread Matt Sicker
On Tuesday, 1 April 2014, Gary Gregory wrote: > Also interesting: Google GSON in on my Eclipse project CP, so it must be > brought in... somehow... > > Could be mongo or couch? > Gary > > > On Tue, Apr 1, 2014 at 5:37 PM, Gary Gregory wrote: > > JacksonXmlProperty? Why not JsonProperty? Couldn'

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Gary Gregory
Also interesting: Google GSON in on my Eclipse project CP, so it must be brought in... somehow... Gary On Tue, Apr 1, 2014 at 5:37 PM, Gary Gregory wrote: > JacksonXmlProperty? Why not JsonProperty? Couldn't you then use JSON or > XML? Still learning Jackson... > > Gary > > > On Tue, Apr 1, 20

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Ralph Goers
I have no idea why it is named JacksonXmlProperty instead of JsonProperty, but it is for extended XML annotations. Ralph On Apr 1, 2014, at 2:37 PM, Gary Gregory wrote: > JacksonXmlProperty? Why not JsonProperty? Couldn't you then use JSON or XML? > Still learning Jackson... > > Gary > > >

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Ralph Goers
I have both examples there. Ralph On Apr 1, 2014, at 1:57 PM, Matt Sicker wrote: > Is that for the XML or JSON mapping? > > > On 1 April 2014 15:55, Ralph Goers wrote: > Also, with Jackson you only have to annotate things where the normal mapping > doesn’t do what you want. For example, by

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Gary Gregory
JacksonXmlProperty? Why not JsonProperty? Couldn't you then use JSON or XML? Still learning Jackson... Gary On Tue, Apr 1, 2014 at 4:49 PM, Ralph Goers wrote: > I just did this the other day for both XML and JSON. > > For XML I did: > > public static TransactionRequest deserialize(String xm

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Matt Sicker
Actually, that brought up an idea I just had. Since the XML parsing log4j's config does isn't strict about whether you use an attribute or nested element (which sounds like it meshes nicely with JSON), maybe the parsing can be unified somewhat? I know I made some progress at de-duplicating code in

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Matt Sicker
Is that for the XML or JSON mapping? On 1 April 2014 15:55, Ralph Goers wrote: > Also, with Jackson you only have to annotate things where the normal > mapping doesn’t do what you want. For example, by default everything will > be an element. You need to annotate it if you want it to be an attr

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Ralph Goers
Also, with Jackson you only have to annotate things where the normal mapping doesn’t do what you want. For example, by default everything will be an element. You need to annotate it if you want it to be an attribute. On Apr 1, 2014, at 1:52 PM, Ralph Goers wrote: > Oops - For XML the serializ

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Ralph Goers
Oops - For XML the serialization is public void serialize(OutputStream stream) { try { final XmlMapper mapper = new XmlMapper(); mapper.writeValue(stream, this); } catch (Exception ex) { ex.printStackTrace(); } } On Apr 1, 2014,

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Matt Sicker
It's amusing that both Jackson and Woodstox are both FasterXML projects. You'd think there'd be some code sharing going on? Or is FasterXML more like Apache or Codehaus? On 1 April 2014 15:49, Ralph Goers wrote: > I just did this the other day for both XML and JSON. > > For XML I did: > > p

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Ralph Goers
I just did this the other day for both XML and JSON. For XML I did: public static TransactionRequest deserialize(String xmlFile) { try { XmlMapper mapper = new XmlMapper(); InputStream stream = new FileInputStream(xmlFile); return mapper.readValue

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Gary Gregory
Well... so much for Jackson making my life easy. Jackson says it "supports" JAXB annotations but that must be only for the simplest cases. Jackson does not work with the JAXB annotations I used on Log4jLogEvents. This suppose this is not surprising. Back to the drawing board... Gary On Tue, Apr

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Gary Gregory
All good ideas, thank you. The JSON API I know best is GSON, which let's you listen to objects opening and closing. Maybe Jackson has something like that... I'll have to dig in. Gary On Tue, Apr 1, 2014 at 11:14 AM, Ralph Goers wrote: > So you are hacking the stream before passing it to the unm

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Ralph Goers
So you are hacking the stream before passing it to the unmarshalling framework? Then you will have to keep track of the ‘{‘ and ‘}’ characters yourself, either with the stack Matt suggests or as a counter. Ralph On Apr 1, 2014, at 8:07 AM, Matt Sicker wrote: > Keep a stack of {'s and pop the

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Nick Williams
That would work if he was parsing the JSON manually, which is itself an extremely complex thing to do. It sounds like he's using Jackson—and rightly so. I'm not entirely sure how to do this with Jackson, but I help out with the development over there from time to time, and I can ask the mailing

Re: LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Matt Sicker
Keep a stack of {'s and pop them when you get a }. Like a deterministic pushdown automaton. On 1 April 2014 07:45, Gary Gregory wrote: > I have a local patch for LOG4J2-583 to have the Log4j TCP and UDP socket > servers unmarhsal XML log events. > > This is "easy" for XML because when you have

LOG4J2-583, XML and JSON unmarshalling

2014-04-01 Thread Gary Gregory
I have a local patch for LOG4J2-583 to have the Log4j TCP and UDP socket servers unmarhsal XML log events. This is "easy" for XML because when you have a stream of bytes and you know its encoding, you can look for the end of an event by looking for its closing tag: . Right now, my XML processing c