[infinispan-issues] [JBoss JIRA] Commented: (ISPN-1065) Use a better mechanism to parse config files
Pete Muir (JIRA)
jira-events at lists.jboss.org
Wed Jun 15 06:37:29 EDT 2011
[ https://issues.jboss.org/browse/ISPN-1065?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12608783#comment-12608783 ]
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
More information about the infinispan-issues
mailing list