Hi Martin; apparently we needed you for this discussion - thanks for the detailed email.
Martin Desruisseaux wrote: > I may bring nothing new (the last Adrian's email explain well most of > my views), but I would like to summarize what I think are the most > important points: > > * We are not replacing existing technology. We are enabling a > functionality bundled in Java 6. This is equivalent to "implements > java.io.Serializable" to existing classes. Not quite; you are binding the java bean to one schema; ie Filter is written in Filter 1.1 format right? For Serialization you could provide a way for a modified class unmarshall data that had been written out using a previous version. Can someone tell me how this is done with JaxB (I just have not looked at the library enough; there should be a way right?). Can we do anything smart with XmlJavaTypeAdapter? or XmlAdapter? > * Enabling JAXB in Java 6 does not introduce any new dependencies and > have absolutly no impact on public API. It does not even appears in > the javadoc - it is really invisible. Understood. > * While it work well with Maven and NetBeans, Justin and Jody have > reported problems with Eclipse. I think this is just a technical problem; Eclipse is often very careful - I am sure we can fix this with a dummy jar or a solid jaxb dependency either way would work. Can we leave this one out of the debate - it is a build issue and does not matter in terms of long term planning. > * Justin worries about the philosophical implication of forcing a > technology. I also worry about this but I phrased it the other way; can we clean up the other technologies (SAX and DOM). Aside: Please note that these technologies also had the "single version" issue - so even though I keep mentioning Filter 1.0 and Filter 1.1 as an example - we may as a group decide we are okay targeting one version as a limitation. It is just that a limitation - as long as it is one we can accept we should be good. > * Why enabling JAXB and not Hibernate? Because JAXB is bundled in > Java 6 and used by other Sun technologies around Glassfish, while > Hibernate annotations would introduce a new dependency. Hibernate can now be used just from standard java persistence annotations; there are several persistance libraries that can read in EJB annotations and configure their "mapping" to relational tables. > * Adding JAXB annotations do not prevent you in any way to add > Hibernate annotations if you wish. True. > Annotations from different packages can live together no matter their > name. So we are not blocking usage of any other technology. We are blocking one specific use; we are blocking people from adding JAXB annotations (ie we already added them so they are stuck if they want to write a Filter out as part of Catalog Query and a WFS Query in the same program using JAXB. > * Simone worries about the confusion that could brings the mix of JAXB > and Hibernate annotations in the same class. Avoiding messy code is a > strong goal for me. But in this case, I see > this issue in the same way than a big method: when a method is big, > we use comments for separating logical blocks in the code. I agree that is is a concern; but I do find annotations to be more clean then the earlier attempts with magic javadoc comments used by Jaxor etc... we were doomed with lots of annotations the moment C# came out with the feature. > * Except for the problems in Java 5 build (to be resolved by removing > annotations from that build), the only real inconvenient I can see is > the increase in size. We can also do a trade off clean up the internal JDOM use and replace it with JAXB? > I want to setup an ecosystem with different flavors of GeoTools > releases: "Java 5 vs Java 6", "full featured vs lightweight", "all > referencing in one JAR", etc. May sound scary, but my understanding is > that distributed versioning systems is opening opportunities that we > didn't had before. We need to take on this challange; I was asked about it in my training course today by a customer; we have Thuens asking about it in South Africa. Can anyone in the community get a time/funding write down how to do distributed version control for GeoTools; and we should probably cover the use of an m2 repository mirror as well. Jody ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Geotools-devel mailing list Geotools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel