Closed levi-h closed 9 years ago
java.lang.IllegalArgumentException: Document field names can't have a . in them. (Bad Key: 'org.axonframework.domain.EventMessage')
Suggests a full class name is used as document key. I doubt it's an issue with either, just an edge case triggered by something in Axiom.
The job store could escape the keys, for instance.
[Edit: this was a response to a question that was removed :)]
No, we won't do any key encoding. You should be able to use an arbitrary key for your jobs.
Perhaps I misunderstand what you're saying, but wouldn't escaping help me in using any character that I want (in this case a dot)?
@levi-h jobs in Quartz can have any key you want.
Escaping sounds great in theory. Once you implement it, you discover that for some inputs it causes unintended changes (e.g. if you escape dots with _dot_
and then your input has an actual _dot_
sequence). So you can't correctly unescape.
So simply pick keys that do not violate MongoDB expectations.
Sure, you'd have to escape the escape sequence as well. Or do something as described in http://docs.mongodb.org/manual/faq/developers/#faq-dollar-sign-escaping
Picking keys that are allowed by MongoDB is not as simple as it sounds for the framework user: it's Axon that uses the FQCN.
I'm not sure whether this is more an AxonFramework issue than a quartz-mongodb one, but it will probably be easier to fix in this project :)
Axon uses fully qualified class names as keys in its job data maps when scheduling events. This leads to stack traces like the following:
I'm using 1.9.0 with AxonFramework 2.4.