Jira Data Center Plugin and Jackson JSON/XML Parser

The Jira SDK includes a very outdated version of Jackson - v1.9.13 (as seen in \target\jira\webapp\WEB-INF\lib\jackson-core-asl-1.9.13-atlassian-6.jar).

My Jira plugin requires a later version, so I’ve been using v2.9.7 without issue. I added Jackson 2.9.7 to my plugin POM, it gets included in the JAR output, and it runs.

But this afternoon (5 minutes before this post), when I rebuild my plugin, some updates happened and suddenly I get this exception:

com.fasterxml.jackson.core.jsongenerationexception: underlying stax xmlstreamwriter (of type com.ctc.wstx.sw.repairingnsstreamwriter) does not implement stax2 api natively and is missing method 'writeRaw'

writeRaw is required when I enable Jackson’s serialization feature to indent the output. It looks like something in Jira gave Jackson an incompatible implementation of stax2 XmlStreamWriter.

What really is required to use an up-to-date version of Jackson parser?

I give up. You win.

Jira has its own repackaged Jackson parser. I managed to include my own Jackson (but only up to v2.9.7, anything newer will cause problems when dealing with Insight objects) for JSON parsing.

Now that I need XML processing too, I found out Jira also has its own XMLStreamWriter from Woodstox, which is not compatible with Jackson v2.9.7.

I tried packing my own Woodstox and instructing Jackson to use it, but it doesn’t function. Trying to use it hangs the thread.

So you win. For XML parsing I changed to JAXB. Before we have DLL hell, now we have Maven hell.