[
https://issues.jboss.org/browse/ISPN-1065?page=com.atlassian.jira.plugin....
]
Pete Muir commented on ISPN-1065:
---------------------------------
We would need to fully validate the configuration as it comes into the config model itself
as the route to this could be via XML, programmatic, some other DSL. At the same time,
it's important to put as many validations as possible in the XSD. This means we get
feedback to the user as quickly as possible (when they write the xml). The other thing to
consider with this is it's really important to report back to the user the
line/position where they made the mistake - just saying you had an error with an element
name is less than useful.
The way I've handled this in the past is to create a generic "Location"
object which can report details on where the config originated. This just exposes a couple
of methods like String getLocation(); - and then we have an XML impl which can point at
the file name, the line etc. We then populate this Location object for every configuration
element the user provides, and pass it to the configuration model along with the XML
transformed config. This way, when an error occurs in the config model, we can report
exactly where it originated.
And yes, we definitely want to make sure the XSD has full docs in in it so that these get
auto-suggested for the user. There are tools out there that will generate a nice html page
from the XSD.
We still of course would need to align the config (java) model docs and the schema docs
somehow.
Use a better mechanism to parse config files
--------------------------------------------
Key: ISPN-1065
URL:
https://issues.jboss.org/browse/ISPN-1065
Project: Infinispan
Issue Type: Enhancement
Components: Configuration
Affects Versions: 4.2.1.FINAL
Reporter: Manik Surtani
Assignee: Vladimir Blagojevic
Labels: jaxb
Fix For: 5.1.0.BETA1, 5.1.0.Final
The current codebase heavily relies on JAXB to:
1. Generate a XSD schema from a Configuration bean
2. Generate a parser to use with an XML configuration
This is known to be slow, and can significantly add to start up time:
{quote}
We did some analysis of our AS6 descriptor code which was using JAXB (800ms), compared to
straight stax (10ms)
{quote}
A possible solution could be to still use JAXB to generate the schema, but to also write
a Maven plugin which would generate a STAX parser based on the XSD schema and
Configuration bean at build time. Infinispan would then use this STAX parser rather than
a JAXB generated parser, which would be a lot faster.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira