<html><body>
<p><tt>gavin.king@gmail.com wrote on 01/08/2009 08:22:37 AM:<br>
&gt; &gt;&gt; However, I'm aware that there are some developers who still prefer to<br>
&gt; &gt;&gt; use XML for everything. I'm not sure exactly how many of them there<br>
&gt; &gt;&gt; are, nor to what extent we should to cater to their needs, nor which<br>
&gt; &gt;&gt; of the XML formats they prefer.<br>
&gt; &gt;<br>
&gt; &gt; Given they already have build tools in place for generating DDs, a<br>
&gt; &gt; syntactical change of this magnitude would require significant rewrites<br>
&gt; &gt; for them to take advantage of this spec. &nbsp;Adding elements is not as<br>
&gt; &gt; big a deal.<br>
&gt; <br>
&gt; I don't really know what you mean here. I'm not aware of anyone who is<br>
&gt; using tooling to generate metadata relating to dependency injection.<br>
&gt; I'm sure someone, somewhere has done this, but I don't believe it's at<br>
&gt; all common.<br>
</tt><br>
<tt>While I'm sure it's not &quot;common&quot;, there are a large number of ISVs that</tt><br>
<tt>do this because they want to build their software to run on more than </tt><br>
<tt>one vendor, so they automate the build differences.</tt><br>
<br>
<tt>There's also a substantial number of enterprise customers that do model</tt><br>
<tt>driven development and generate a substantial portion of their code base.<br>
<br>
&gt; &gt; I think the point is that you need to know XML Schema with this spec.<br>
&gt; &gt; whereas you follow patterns for the platform DDs. &nbsp;Assuming you use<br>
&gt; &gt; an IDE and get content assist, most IDE DD editors will preset the<br>
&gt; &gt; DD namespaces so you can get content assist whereas generated XML schemas<br>
&gt; &gt; require knowledge of how to add additional namespaces and configure<br>
&gt; &gt; IDEs to use them. &nbsp;That's not exactly trivial if all you want to do<br>
&gt; &gt; is develop and use business logic.<br>
&gt; <br>
&gt; My IDE (Eclipse) automagically understands XML schema. There's no<br>
&gt; configuration needed. Yes, I need to add the list of namespaces at the<br>
&gt; top of my file but that's really not very difficult. I'm inclined to<br>
&gt; think that pretty much everyone already knows how to do this. For one<br>
&gt; thing, Spring uses the namespace-based approach, and a big chunk of EE<br>
&gt; developers use Spring.<br>
</tt><br>
<tt>I understand, but given that distinction, the EE DDs follow the same</tt><br>
<tt>pattern and rules and get just as much help from the IDE. &nbsp;You still</tt><br>
<tt>get content assist with documentation, etc. &nbsp;However, once you start</tt><br>
<tt>creating new schemas and they aren't served by an internet location,</tt><br>
<tt>you need to start managing your XML Catalog so the schemas for those</tt><br>
<tt>new namespaces can be found.</tt><br>
<tt><br>
&gt; And the point is that the new-style XML gives you context assist and<br>
&gt; validation for much more stuff than the old-style XML. With the old<br>
&gt; style XML you get content assist for &lt;class&gt; and &lt;method&gt;, elements<br>
&gt; that simply don't exist in the new-style XML! The old-style doesn't<br>
&gt; help you at all when you start typing the actual class and method<br>
&gt; names - which are more or less the *only* things you need to type in<br>
&gt; the new-style XML (where they *can* be autocompleted).<br>
</tt><br>
<tt>Ok, so what you are attempting to do is turn semantic content into</tt><br>
<tt>syntax. &nbsp;I understand how this can help in some cases, but not all</tt><br>
<tt>(e.g. defining method sets), but I think that's beside the point.</tt><br>
<tt>The point is that there's a platform pattern. &nbsp;To integrate with the</tt><br>
<tt>platform, I think you need to conform to the platform pattern. &nbsp;If</tt><br>
<tt>you don't like the platform pattern, then the entire pattern ought</tt><br>
<tt>to be consistently changed, not just one portion of it.<br>
<br>
&gt; &gt; The only caveat to this is that this spec. is supposed to integrate<br>
&gt; &gt; JSF and EJB, so JSF developers are more likely to be familiar with<br>
&gt; &gt; dealing with namespaces. &nbsp;However, I got the impression that the<br>
&gt; &gt; developers this spec. would be most targetted at would be the business<br>
&gt; &gt; logic developers.<br>
&gt; <br>
&gt; Thanks Jim, this is a point that I had missed: that the approach in<br>
&gt; the current spec *is* already used in the platform, in both JSF and<br>
&gt; JSP ! :-)<br>
</tt><br>
<tt>Well, to be fair, I don't think the issue is namespaces. &nbsp;It's the</tt><br>
<tt>element / attribute schema style.<br>
<br>
&gt; &gt;&gt; Say I'm using a library written by someone else, that can be<br>
&gt; &gt;&gt; configured using a web beans XML schema. How is this schema any<br>
&gt; &gt;&gt; different from any other XML schema that is used by developers today<br>
&gt; &gt;&gt; to configure stuff? Remember, the XML author is not required to know<br>
&gt; &gt;&gt; anything at all about the underlying Java classes and methods to<br>
&gt; &gt;&gt; author this configuration document. They get a schema, and they write<br>
&gt; &gt;&gt; XML using the elements defined by that schema. They don't know that<br>
&gt; &gt;&gt; the element names are actually Java class and method names.<br>
&gt; &gt;<br>
&gt; &gt; A typical component developer doesn't knowingly deal with XML schema<br>
&gt; &gt; unless they are a web services component developer.<br>
&gt; <br>
&gt; I don't believe that's right. All the EE XML formats are defined using<br>
&gt; schemas. Every EE developer today deals with schemas every day.<br>
</tt><br>
<tt>An average EJB developer that actually updates DDs will use a syntax that</tt><br>
<tt>looks like:</tt><br>
<br>
<font color="#008080" face="Courier New">&lt;</font><font color="#3F8080" face="Courier New">ejb-jar</font><font face="Courier New"> </font><font color="#800080" face="Courier New">xmlns</font><font face="Courier New">=</font><i><font color="#4200FF" face="Courier New">&quot;<a href="http://java.sun.com/xml/ns/javaee">http://java.sun.com/xml/ns/javaee</a>&quot;</font></i><font face="Courier New"> </font><br>
<font face="Courier New">        </font><font color="#800080" face="Courier New">xmlns:xsi</font><font face="Courier New">=</font><i><font color="#4200FF" face="Courier New">&quot;<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>&quot;</font></i><br>
<font face="Courier New">        </font><font color="#800080" face="Courier New">xsi:schemaLocation</font><font face="Courier New">=</font><i><font color="#4200FF" face="Courier New">&quot;<a href="http://java.sun.com/xml/ns/javaee">http://java.sun.com/xml/ns/javaee</a> <a href="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd</a>&quot;</font></i><br>
<font face="Courier New">        </font><font color="#800080" face="Courier New">version</font><font face="Courier New">=</font><i><font color="#4200FF" face="Courier New">&quot;3.0&quot;</font></i><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">        </font><font color="#008080" face="Courier New">&lt;</font><font color="#3F8080" face="Courier New">display-name</font><font color="#008080" face="Courier New">&gt;</font><u><font face="Courier New">Testdd</font></u><font color="#008080" face="Courier New">&lt;/</font><font color="#3F8080" face="Courier New">display-name</font><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">        </font><font color="#008080" face="Courier New">&lt;</font><font color="#3F8080" face="Courier New">enterprise-beans</font><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">                </font><font color="#008080" face="Courier New">&lt;</font><font color="#3F8080" face="Courier New">session</font><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">                  </font><font color="#008080" face="Courier New">&lt;</font><font color="#3F8080" face="Courier New">ejb-name</font><font color="#008080" face="Courier New">&gt;</font><font face="Courier New">cart</font><font color="#008080" face="Courier New">&lt;/</font><font color="#3F8080" face="Courier New">ejb-name</font><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">                  </font><font color="#008080" face="Courier New">&lt;</font><font color="#3F8080" face="Courier New">business-local</font><font color="#008080" face="Courier New">&gt;</font><font face="Courier New">test.ShoppingCart</font><font color="#008080" face="Courier New">&lt;/</font><font color="#3F8080" face="Courier New">business-local</font><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">                  </font><font color="#008080" face="Courier New">&lt;</font><font color="#3F8080" face="Courier New">ejb-class</font><font color="#008080" face="Courier New">&gt;</font><font face="Courier New">test.ShoppingCartBean</font><font color="#008080" face="Courier New">&lt;/</font><font color="#3F8080" face="Courier New">ejb-class</font><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">                </font><font color="#008080" face="Courier New">&lt;/</font><font color="#3F8080" face="Courier New">session</font><font color="#008080" face="Courier New">&gt;</font><br>
<font face="Courier New">        </font><font color="#008080" face="Courier New">&lt;/</font><font color="#3F8080" face="Courier New">enterprise-beans</font><font color="#008080" face="Courier New">&gt;</font><br>
<font color="#008080" face="Courier New">&lt;/</font><font color="#3F8080" face="Courier New">ejb-jar</font><font color="#008080" face="Courier New">&gt;</font><br>
<br>
<tt>While it's true that this is an XML document instance, most developers</tt><br>
<tt>don't know and don't care. &nbsp;They just follow a pattern for filling out</tt><br>
<tt>the data. &nbsp;That was the point.</tt><br>
<tt><br>
&gt; It's certainly true that the vast majority of developers don't<br>
&gt; *define* schemas, but the whole point of this is that they don't need<br>
&gt; to in web beans either: the schema can be generated by javac.<br>
</tt><br>
<tt>Except for the fact that it IS new schema and they must be aware of</tt><br>
<tt>it and the impact on the content.</tt><br>
<tt><br>
Anyway, my point remains that platform consistency needs to be maintained</tt><br>
<tt>or we will lose the concept of a platform and degenerate into a bunch</tt><br>
<tt>of piece parts. &nbsp;If we can get the platform to move to a more modern</tt><br>
<tt>XML style, I'm ok with that too. &nbsp;I just want integrated consistency.</tt><br>
<tt><br>
Thanks,<br>
Jim Knutson<br>
WebSphere J2EE Architect</tt><br>
<br>
</body></html>