Hey Justin,
Some questions and remarks with respect to the schema building memory
leak and things I came across working on it.
(1) The class SchemaLocator is a final class. Is there a specific reason
for that?
Its method - locating purely on namespace - is not good for app-schema,
as one namespace can have many multiple schema's. Would it be okay for
me to remove the final modifier from the class so I can extend it for
app-schema XSD's?
(2) After clearing out all directive & substitution group references of
a schema, I noticed that a lot of schema's still kept hanging around.
The reason for that appeared to be through SchemaIndexImpl instances
that kept hanging around through adapters. Though I noticed you've been
aware of that yourself because you added a 'destroy' method that cleans
it up. However, that destroy method is never called in app-schema :/ A
blame for the app-schema developers...
(3) About the same SchemaIndexImpl. I noticed that these are usually
built from an array of XSDSchema instances, usually all dependencies are
included in this array. I noticed this is actually unnecessary work. If
a schema is built with dependencies on other schema's, all elements of
the imported/included schema's are automatically incorporated in the
main schema by the EMF framework. If we only passed on the main schema
to the SchemaIndexImpl without the dependencies, the result would be the
same with less work. Just something I noticed.
(4) Notice that the WFS XSD classes already had a flush() method, but
these are no good. All they do is set the schema to null inside the
object... but doesn't remove references from static GML object. I made a
complete flush method in the XSD base class, and removed the ones from
the WFS classes. Anywhere where flush is already called, the schema is
now properly cleaned up.
I am basically finished and will upload the patches soon. I will add
some more remarks and explanations then.
Regards
--
*Niels Charlier*
Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914
Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151
------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself;
WebMatrix provides all the features you need to develop and
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel