<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:wsil="http://schemas.xmlsoap.org/ws/2001/10/inspection/">
  <channel>
    <title>alek blogs java</title>
    <link>http://www.extreme.indiana.edu/~aslom/blog/</link>
    <description>discovering limits of programming</description>
    <admin:generatorAgent rdf:resource="http://www.extreme.indiana.edu/~aslom/blog/micro" />
    <admin:errorReportsTo rdf:resource="mailto:aslom@indiana.edu" />
    <dc:language>en-us</dc:language>
    <dc:date>2004-05-22T02:40:18Z</dc:date>
    <item>
      <title>WS-Performance (a.k.a WS-Slowness)</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2004/04/01/WSPerformanceAKAWSSlowness.html</link>
      <dc:subject>WSPerformanceAKAWSSlowness</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2004/04/01/WSPerformanceAKAWSSlowness.html</guid>
      <dc:date>2004-04-01T20:55:00-05:00</dc:date>
      <description>


&lt;p>
Web Services Performance (&lt;a href="http://www.extreme.indiana.edu/xgws/specs/wsp/">WS-Performance&lt;/a>) provides policy
assertions that can be used to describe Web service performance
characteristics and in particular provides set of metrics for already
existing Web Services specifications. One of the most important concerns
when composing Web Services is impact on performance of each
specification. Therefore if there could be a synthetic indicator of
performance impact of each specification it could help to automate
estimation of composed Web Services performance and that is
the role of WS-Performance to provide framework for such estimations.
&lt;/p>

&lt;p>
This specification composes especially well with 
&lt;a href="http://www.extreme.indiana.edu/xgws/specs/wsg/ws-goodness.html">WS-Goodness&lt;/a> to
provide Web services that are both good and of reliable performance
and although currently may be a bit slow (as all Web Services ...)
but WS-Performance helps to estimate how fast (or slow) they are! 
&lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>
Web Services Performance (<a href="http://www.extreme.indiana.edu/xgws/specs/wsp/">WS-Performance</a>) provides policy
assertions that can be used to describe Web service performance
characteristics and in particular provides set of metrics for already
existing Web Services specifications. One of the most important concerns
when composing Web Services is impact on performance of each
specification. Therefore if there could be a synthetic indicator of
performance impact of each specification it could help to automate
estimation of composed Web Services performance and that is
the role of WS-Performance to provide framework for such estimations.
</p>

<p>
This specification composes especially well with 
<a href="http://www.extreme.indiana.edu/xgws/specs/wsg/ws-goodness.html">WS-Goodness</a> to
provide Web services that are both good and of reliable performance
and although currently may be a bit slow (as all Web Services ...)
but WS-Performance helps to estimate how fast (or slow) they are! 
</p>



</body>
    </item>
    <item>
      <title>Where Are Java Senior Engineers?</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/08/26/WhereAreJavaSeniorEngineers.html</link>
      <dc:subject>WhereAreJavaSeniorEngineers</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/08/26/WhereAreJavaSeniorEngineers.html</guid>
      <dc:date>2003-08-26T10:55:00-05:00</dc:date>
      <description>


&lt;p>Reading a blog of such high quality as
&lt;a href="http://blogs.gotdotnet.com/cbrumme/">Chris Brumme&lt;/a> where he is
dissecting CLR internals  in such depth (for example
&lt;a href="http://blogs.gotdotnet.com/cbrumme/permalink.aspx/c7af9311-c46e-42e8-89fe-db22cc07b4a6">
asynchronous operations&lt;/a>) that it brings a joy to any engineers heart even if
it is Java  enthusiast.&lt;/p>


&lt;p>I just can not stop to wonder where are Java blogs of such caliber that goes
into such details and are written not by users but by creators.
&lt;a href="http://java.net/">Java.net&lt;/a> seems to be under control of "How-To"
writers (exactly
&lt;a href="http://blogs.gotdotnet.com/cbrumme/permalink.aspx/ec40acce-4ae4-44b8-93ce-27dd896b0d1d">
opposite to what Chris is doing&lt;/a>), evangelists, SUN enthusiasts, and
marketing specialists. Not exactly what I would call &lt;b>"The Source For Java(TM)
Technology"&lt;/b> and engineers seems to be lacking sorely from 
&lt;a href="http://www.java.net/about.html">"a diverse group of engineers,
researchers, technologists, and evangelists at Sun Microsystems"&lt;/a> that was
supposed to propel that site. &lt;/p>


&lt;p>So where is SUN hiding all these Java engineers? &lt;/p>


&lt;p>Please let me know if somebody knows where to find them ...&lt;/p>


&lt;p>&lt;b>UPDATE&lt;/b>: maybe other companies that also work on Java are more open?
What about IBM, BEA, or other leading Java  companies... ? Do their
engineers blog (or are allowed to)? One has to admit that Microsoft seems
recently much more open and interesting place than ever before ...&lt;/p>


&lt;p>And unfortunately &lt;a href="http://weblogs.java.net/jag/">James Gosling&lt;/a>
posts about &lt;a href="http://weblogs.java.net/jag/page4.html#32">Zen and his
grandmother&lt;/a> even though very inspiring does not count as in-depth technical
insights ...). And yes, I am impressed that this blog has now
&lt;a href="http://today.java.net/jag/blog.rss">RSS feed&lt;/a> (took only few
weeks?).&lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>Reading a blog of such high quality as
<a href="http://blogs.gotdotnet.com/cbrumme/">Chris Brumme</a> where he is
dissecting CLR internals  in such depth (for example
<a href="http://blogs.gotdotnet.com/cbrumme/permalink.aspx/c7af9311-c46e-42e8-89fe-db22cc07b4a6">
asynchronous operations</a>) that it brings a joy to any engineers heart even if
it is Java  enthusiast.</p>


<p>I just can not stop to wonder where are Java blogs of such caliber that goes
into such details and are written not by users but by creators.
<a href="http://java.net/">Java.net</a> seems to be under control of "How-To"
writers (exactly
<a href="http://blogs.gotdotnet.com/cbrumme/permalink.aspx/ec40acce-4ae4-44b8-93ce-27dd896b0d1d">
opposite to what Chris is doing</a>), evangelists, SUN enthusiasts, and
marketing specialists. Not exactly what I would call <b>"The Source For Java(TM)
Technology"</b> and engineers seems to be lacking sorely from 
<a href="http://www.java.net/about.html">"a diverse group of engineers,
researchers, technologists, and evangelists at Sun Microsystems"</a> that was
supposed to propel that site. </p>


<p>So where is SUN hiding all these Java engineers? </p>


<p>Please let me know if somebody knows where to find them ...</p>


<p><b>UPDATE</b>: maybe other companies that also work on Java are more open?
What about IBM, BEA, or other leading Java  companies... ? Do their
engineers blog (or are allowed to)? One has to admit that Microsoft seems
recently much more open and interesting place than ever before ...</p>


<p>And unfortunately <a href="http://weblogs.java.net/jag/">James Gosling</a>
posts about <a href="http://weblogs.java.net/jag/page4.html#32">Zen and his
grandmother</a> even though very inspiring does not count as in-depth technical
insights ...). And yes, I am impressed that this blog has now
<a href="http://today.java.net/jag/blog.rss">RSS feed</a> (took only few
weeks?).</p>



</body>
    </item>
    <item>
      <title>MicroLogger: dependable logging</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/08/11/MicroLoggerDependableLogging.html</link>
      <dc:subject>MicroLoggerDependableLogging</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/08/11/MicroLoggerDependableLogging.html</guid>
      <dc:date>2003-08-11T23:32:00-05:00</dc:date>
      <description>


&lt;p>If you need to add logging to your application without worrying about right
version of log4j or commons-logging on CLASSPATH use
&lt;a href="http://freshmeat.net/releases/131068/">MicroLogger&lt;/a>. Just embed one
logger class into your application package hierarchy (&lt;a href="http://www.extreme.indiana.edu/~aslom/blog/micro/src/mblog/MLogger.java">foo.MLogger&lt;/a>)
and  either use it directly or do any tweaks necessary (source code is
provided).&lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>If you need to add logging to your application without worrying about right
version of log4j or commons-logging on CLASSPATH use
<a href="http://freshmeat.net/releases/131068/">MicroLogger</a>. Just embed one
logger class into your application package hierarchy (<a href="http://www.extreme.indiana.edu/~aslom/blog/micro/src/mblog/MLogger.java">foo.MLogger</a>)
and  either use it directly or do any tweaks necessary (source code is
provided).</p>



</body>
    </item>
    <item>
      <title>MicroBlog and story lead-in</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/08/09/MicroBlogAndStoryLeadin.html</link>
      <dc:subject>MicroBlogAndStoryLeadin</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/08/09/MicroBlogAndStoryLeadin.html</guid>
      <dc:date>2003-08-09T18:36:00-05:00</dc:date>
      <description>


&lt;p>If a blog entry (such as my &lt;a href="http://www.extreme.indiana.edu/~aslom/blog/2003/07/20/MemexFuturisticDevice.html">
ramblings about memex&lt;/a>) is long it will occupy too much space on front page
or &lt;a href="http://www.extreme.indiana.edu/~aslom/blog/2003/07/20/index.html">other summary pages&lt;/a>. So it is good to
break blog entry into "lead-in" and the rest of story. &lt;/p>


&lt;p>I have it now implemented in &lt;a href="http://www.extreme.indiana.edu/~aslom/blog/micro/index.html">MicroBlog&lt;/a> by
using a simple convention that if entry has empty paragraph it is used as place
to break entry into lead-in and the rest.&lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>If a blog entry (such as my <a href="2003/07/20/MemexFuturisticDevice.html">
ramblings about memex</a>) is long it will occupy too much space on front page
or <a href="2003/07/20/index.html">other summary pages</a>. So it is good to
break blog entry into "lead-in" and the rest of story. </p>


<p>I have it now implemented in <a href="micro/index.html">MicroBlog</a> by
using a simple convention that if entry has empty paragraph it is used as place
to break entry into lead-in and the rest.</p>



</body>
    </item>
    <item>
      <title>Comparing XB1 to JDOM ...</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/07/30/ComparingXB1ToJDOM.html</link>
      <dc:subject>ComparingXB1ToJDOM</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/07/30/ComparingXB1ToJDOM.html</guid>
      <dc:date>2003-07-30T20:06:00-05:00</dc:date>
      <description>


&lt;p>This is mini review of "&lt;span class="ts">&lt;a href="http://www.artima.com/intv/jdomP.html">A
Design Review of JDOM&lt;/a> (&lt;/span>&lt;span class="sts">A Conversation with Elliotte
Rusty Harold, Part III)&lt;/span>&lt;span class="ts">"&lt;/span>. &lt;/p>


&lt;p> &lt;/p>


&lt;p>Let see how Xml Pull Builder a.k.a. XB1 (for more details on XB1 see its
&lt;a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/xb1/">home page&lt;/a>) compares to JDOM based on points raised in article.&lt;/p>


&lt;h4>A Short History of JDOM&lt;/h4>


&lt;p>Before we do this few word about XB1. XmlPull Builder Version 1 a.k.a. XB1 is
lightweight document object model to represent XML tree that is implemented on
to &lt;a href="http://www.xmlpull.org/">Common API for XML Pull Parsing&lt;/a> and alpha
version is in &lt;a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/">
XPP3/MXP1&lt;/a>.&lt;/p>


&lt;h4>JDOM Offers Many Convenience Methods&lt;/h4>


&lt;p>XB1 is currently rather modest API and do not have lot of methods (except for obvious overloading of
methods) and that makes API quite simple (at least for now).&lt;/p>


&lt;h4>JDOM Allows Malformed Documents&lt;/h4>


&lt;p>XB1 implementation also allows creation of malformed documents or let put it
this way: the implementation does not do extensive checks but XB1 API allows
implementations that will do those checks (XB1 API is composed of interfaces).
BTW: example with control characters is not good as XML allows to have control
characters but escaped as numerical entities AFAIR ...&lt;/p>


&lt;h4>JDOM Ignores Setter Method Conventions&lt;/h4>


&lt;p>I do not see problem here: JDOM is not Java Bean and chaining methods may be
sometimes convenient (but should not be overused). This looks like rather weak
complaint ...&lt;/p>


&lt;h4>JDOM Uses Java Collections&lt;/h4>


&lt;p>XB1 goes one step even further and it uses Generics for even more natural
iterators than mentioned NodeList (currently moving to use future java.lang
SimpleIterator interface so
idiomatic for(XmlElement el: node.elements()) will work in JDK 1.5) .&lt;/p>


&lt;h4>JDOM Uses Too Many Checked Exceptions&lt;/h4>


&lt;p>XB1 has only one exception (at least for now) and it is runtime exception for
all reasons mentioned in the article and i woould add one more reason:
RuntimeException makes it easier to integrate XB1 into existing code.&lt;/p>


&lt;h4>Will JDOM Remain Class-Based?&lt;/h4>


&lt;p>I agree that interface based API is more versatile as it allows to abstract
form implementation and allow creating XML tree models directly from other data
sources that XML event stream from parser (like databases)&lt;/p>


&lt;h4>Conclusion&lt;/h4>


&lt;p>I was disappointed that XPath integration (and good performance of it) was
not mentioned. Also I would like to see some tests that compared memory
footprint and how easy is to build partial tree: this is very easy with XML pull
parsing but quite difficult with push parsing (in SAX it requires provide way to
overwrite endElement() callback and in general is as much fun as writing SOAP
deserializer with SAX). And as far as future of XML Tree APIs: I would like to
see how easy is to annotate XML infoset items with additional
information (needs for it emerges with data bindings and PSVI)&lt;/p>


&lt;p>But after all what makes and breaks APIs is how programmers feel about them,
and I feel good about XB1 when I am using it (nothing to do with the fact that I am author of it
of course ..)&lt;/p>


&lt;p> &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>This is mini review of "<span class="ts"><a href="http://www.artima.com/intv/jdomP.html">A
Design Review of JDOM</a> (</span>
          <span class="sts">A Conversation with Elliotte
Rusty Harold, Part III)</span>
          <span class="ts">"</span>. </p>


<p> </p>


<p>Let see how Xml Pull Builder a.k.a. XB1 (for more details on XB1 see its
<a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/xb1/">home page</a>) compares to JDOM based on points raised in article.</p>


<h4>A Short History of JDOM</h4>


<p>Before we do this few word about XB1. XmlPull Builder Version 1 a.k.a. XB1 is
lightweight document object model to represent XML tree that is implemented on
to <a href="http://www.xmlpull.org/">Common API for XML Pull Parsing</a> and alpha
version is in <a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/">
XPP3/MXP1</a>.</p>


<h4>JDOM Offers Many Convenience Methods</h4>


<p>XB1 is currently rather modest API and do not have lot of methods (except for obvious overloading of
methods) and that makes API quite simple (at least for now).</p>


<h4>JDOM Allows Malformed Documents</h4>


<p>XB1 implementation also allows creation of malformed documents or let put it
this way: the implementation does not do extensive checks but XB1 API allows
implementations that will do those checks (XB1 API is composed of interfaces).
BTW: example with control characters is not good as XML allows to have control
characters but escaped as numerical entities AFAIR ...</p>


<h4>JDOM Ignores Setter Method Conventions</h4>


<p>I do not see problem here: JDOM is not Java Bean and chaining methods may be
sometimes convenient (but should not be overused). This looks like rather weak
complaint ...</p>


<h4>JDOM Uses Java Collections</h4>


<p>XB1 goes one step even further and it uses Generics for even more natural
iterators than mentioned NodeList (currently moving to use future java.lang
SimpleIterator interface so
idiomatic for(XmlElement el: node.elements()) will work in JDK 1.5) .</p>


<h4>JDOM Uses Too Many Checked Exceptions</h4>


<p>XB1 has only one exception (at least for now) and it is runtime exception for
all reasons mentioned in the article and i woould add one more reason:
RuntimeException makes it easier to integrate XB1 into existing code.</p>


<h4>Will JDOM Remain Class-Based?</h4>


<p>I agree that interface based API is more versatile as it allows to abstract
form implementation and allow creating XML tree models directly from other data
sources that XML event stream from parser (like databases)</p>


<h4>Conclusion</h4>


<p>I was disappointed that XPath integration (and good performance of it) was
not mentioned. Also I would like to see some tests that compared memory
footprint and how easy is to build partial tree: this is very easy with XML pull
parsing but quite difficult with push parsing (in SAX it requires provide way to
overwrite endElement() callback and in general is as much fun as writing SOAP
deserializer with SAX). And as far as future of XML Tree APIs: I would like to
see how easy is to annotate XML infoset items with additional
information (needs for it emerges with data bindings and PSVI)</p>


<p>But after all what makes and breaks APIs is how programmers feel about them,
and I feel good about XB1 when I am using it (nothing to do with the fact that I am author of it
of course ..)</p>


<p> </p>



</body>
    </item>
    <item>
      <title>Xydra: easy way to add Web Services to your portal </title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/07/27/XydraEasyWayToAddWebServicesToYourPortal.html</link>
      <dc:subject>XydraEasyWayToAddWebServicesToYourPortal</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/07/27/XydraEasyWayToAddWebServicesToYourPortal.html</guid>
      <dc:date>2003-07-27T23:55:00-05:00</dc:date>
      <description>


&lt;p>&lt;a href="http://www.extreme.indiana.edu/xgws/xydra/">Xydra&lt;/a> is a library
that uses servlet to provide XHTML based WSDL invoker. Xydra servlet takes WSDL
with XML Schema complex types as input, generates XHTML form
to allow user to fill content of input message, gathers submitted input values and converts form name-value pairs
into XML message that is sent it to Web Service and then finally displays result message. &lt;/p>


&lt;p> &lt;/p>


&lt;p>One could ask: there are other WSDL invokers so what makes Xydra unique? Here
is couple reasons:&lt;/p>


        &lt;ul>
          &lt;li>Xydra has pluggable data model and currently two backend to
          represent form and XML message content  One is traditional
          name-value pairs that are structured into tree (called TreePath) and
          second that is based on &lt;a href="http://protege.stanford.edu/">Protege&lt;/a>
          engine to use ontology describing web service to allow more reach
          constraints and relationship validation (called OntoBrew).&lt;/li>
          &lt;li>It is very easy to customize Xydra look and feel: just save
          auto-generated XHTML page, modify it to your needs and tell Xydra to
          use this XHTML page as template. What makes it really easy is that
          template is a regular XHTML page that is used by Xydra processing
          engine (unsurprisingly called Diesel) to annotate it with runtime
          information.&lt;/li>
          &lt;li>Xydra support complex types and generate nice XHTML form UI for
          arbitrarily nested XHTML forms.&lt;/li>
          &lt;li>You get source code so you can improve it :-)&lt;/li>
        &lt;/ul>


&lt;p>Sample installation is available online to test drive Xydra. It is open
source so anybody can play with it, improve it, and give us feedback, patches
are gladly accepted, we may even fix some bugs when reported (good bug report
that contains all information necessary to reproduce problem and/or unit test
greatly increases chances of getting problem fixed ...) &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p><a href="http://www.extreme.indiana.edu/xgws/xydra/">Xydra</a> is a library
that uses servlet to provide XHTML based WSDL invoker. Xydra servlet takes WSDL
with XML Schema complex types as input, generates XHTML form
to allow user to fill content of input message, gathers submitted input values and converts form name-value pairs
into XML message that is sent it to Web Service and then finally displays result message. </p>


<p> </p>


<p>One could ask: there are other WSDL invokers so what makes Xydra unique? Here
is couple reasons:</p>


        <ul>
          <li>Xydra has pluggable data model and currently two backend to
          represent form and XML message content  One is traditional
          name-value pairs that are structured into tree (called TreePath) and
          second that is based on <a href="http://protege.stanford.edu/">Protege</a>
          engine to use ontology describing web service to allow more reach
          constraints and relationship validation (called OntoBrew).</li>
          <li>It is very easy to customize Xydra look and feel: just save
          auto-generated XHTML page, modify it to your needs and tell Xydra to
          use this XHTML page as template. What makes it really easy is that
          template is a regular XHTML page that is used by Xydra processing
          engine (unsurprisingly called Diesel) to annotate it with runtime
          information.</li>
          <li>Xydra support complex types and generate nice XHTML form UI for
          arbitrarily nested XHTML forms.</li>
          <li>You get source code so you can improve it :-)</li>
        </ul>


<p>Sample installation is available online to test drive Xydra. It is open
source so anybody can play with it, improve it, and give us feedback, patches
are gladly accepted, we may even fix some bugs when reported (good bug report
that contains all information necessary to reproduce problem and/or unit test
greatly increases chances of getting problem fixed ...) </p>



</body>
    </item>
    <item>
      <title>microBlog improved</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/07/15/microBlogImproved.html</link>
      <dc:subject>microBlogImproved</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/07/15/microBlogImproved.html</guid>
      <dc:date>2003-07-15T19:25:00-05:00</dc:date>
      <description>


&lt;p>microBlog improved: finally resolved generating and linking pages for
multiple categories and fixed category specific RSS feeds.&lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>microBlog improved: finally resolved generating and linking pages for
multiple categories and fixed category specific RSS feeds.</p>



</body>
    </item>
    <item>
      <title>Beyond J2EE and Jini is ... ?</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/06/28/BeyondJ2EEAndJiniIs.html</link>
      <dc:subject>BeyondJ2EEAndJiniIs</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/06/28/BeyondJ2EEAndJiniIs.html</guid>
      <dc:date>2003-06-28T16:40:00-05:00</dc:date>
      <description>


&lt;p>Talip Ozturk writes about
&lt;a href="http://www.freeroller.net/page/talipozturk/20030625#jini_vs_j2ee">J2EE
and Jini&lt;/a> and what is relationship between them: &lt;/p>


&lt;p>(...)They are not truely competing technologies rather complementary
technologies. if you are writing a J2EE server, you can use Jini's dynamic, self
healing features. if a Jini service needs to persist data in a way that entity
beans does, then the Jini service can make use of a J2EE server to do that. if
you are writing JMS implementation, you might want to leverage Jini JavaSpaces
technology. JNDI might internally be interfacing with Jini Lookup Service to
gain some dynamic behaviour.(...)&lt;/p>


&lt;p>I think that distributed computing is changing with advent of Web Services
and in particular Grids. The feature may be something like &lt;b>distributed
container&lt;/b> that is dynamically created from available services (similar to
Jini but on Internet scale) that guaranteed to have all required resources such
as performance, bandwidth, transactions etc. as described in SLA, QoS, ... (in
this respect it is meeting and superseding requirements of J2EE).&lt;/p>


&lt;p>Anyway only future can really tell and some technologies seem to stay longer
(or shorter) than predicted.&lt;/p>


&lt;p> &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>Talip Ozturk writes about
<a href="http://www.freeroller.net/page/talipozturk/20030625#jini_vs_j2ee">J2EE
and Jini</a> and what is relationship between them: </p>


<p>(...)They are not truely competing technologies rather complementary
technologies. if you are writing a J2EE server, you can use Jini's dynamic, self
healing features. if a Jini service needs to persist data in a way that entity
beans does, then the Jini service can make use of a J2EE server to do that. if
you are writing JMS implementation, you might want to leverage Jini JavaSpaces
technology. JNDI might internally be interfacing with Jini Lookup Service to
gain some dynamic behaviour.(...)</p>


<p>I think that distributed computing is changing with advent of Web Services
and in particular Grids. The feature may be something like <b>distributed
container</b> that is dynamically created from available services (similar to
Jini but on Internet scale) that guaranteed to have all required resources such
as performance, bandwidth, transactions etc. as described in SLA, QoS, ... (in
this respect it is meeting and superseding requirements of J2EE).</p>


<p>Anyway only future can really tell and some technologies seem to stay longer
(or shorter) than predicted.</p>


<p> </p>



</body>
    </item>
    <item>
      <title>WSE2 younger brother of WSIF?</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/06/25/WSE2YoungerBrotherOfWSIF.html</link>
      <dc:subject>WSE2YoungerBrotherOfWSIF</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/06/25/WSE2YoungerBrotherOfWSIF.html</guid>
      <dc:date>2003-06-25T22:20:00-05:00</dc:date>
      <description>

&lt;blockquote>&lt;p>
(...)Ok, so let's start to talk about the product:
It is about SOAP Services. Actually, they still call it Web Services but in fact,
it has nothing to do with the web at all.
It is only about SOAP anymore - and it is only about SOAP as a framing format anymore.
Frankly, I think that this is a very good thing: using HTTP in your mission critical
applications might not be the best idea.
&lt;b>Wouldn't it be way cooler if you could just take an XML document,
wrap it in a SOAP envelope and send it over whatever reliable protocol you like?&lt;/b>
While still using all WS-* and GXA specifications?
&lt;/p>&lt;/blockquote>

&lt;p>
this &lt;a href="http://www.extreme.indiana.edu/~aslom/blog/">desription of WSE2&lt;/a> sounds like what
&lt;a href="http://ws.apache.org/wsif/">WSIF&lt;/a> except that
WSIF has support for industry standards such as CORBA/IIOP
and does not require to send SOAP envlopes.
&lt;/p>
&lt;p>However the problem with WSIF that it is only client side ...&lt;/p>



&lt;p> &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

<blockquote><p>
(...)Ok, so let's start to talk about the product:
It is about SOAP Services. Actually, they still call it Web Services but in fact,
it has nothing to do with the web at all.
It is only about SOAP anymore - and it is only about SOAP as a framing format anymore.
Frankly, I think that this is a very good thing: using HTTP in your mission critical
applications might not be the best idea.
<b>Wouldn't it be way cooler if you could just take an XML document,
wrap it in a SOAP envelope and send it over whatever reliable protocol you like?</b>
While still using all WS-* and GXA specifications?
</p>
        </blockquote>

<p>
this <a href="">desription of WSE2</a> sounds like what
<a href="http://ws.apache.org/wsif/">WSIF</a> except that
WSIF has support for industry standards such as CORBA/IIOP
and does not require to send SOAP envlopes.
</p>
<p>However the problem with WSIF that it is only client side ...</p>



<p> </p>



</body>
    </item>
    <item>
      <title>Where is my meta super uber maven?</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/06/15/WhereIsMyMetaSuperUberMaven.html</link>
      <dc:subject>WhereIsMyMetaSuperUberMaven</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/06/15/WhereIsMyMetaSuperUberMaven.html</guid>
      <dc:date>2003-06-15T01:10:00-05:00</dc:date>
      <description>

&lt;p>Rants can be fun especially of they touch the gist of real issue, such as
&lt;a href="http://www.freeroller.net/page/fate/20030610#why_maven_sucks">Hani on
maven&lt;/a>:&lt;/p>

&lt;blockquote>
  &lt;p>(...)No doubt that road will in turn lead to yet another tool to manage
  maven.(...) &lt;/p>
&lt;/blockquote>

&lt;p>If you build metadata driven build tool then better you make it easy for
users, trying to fix tool by adding another tool with more metadata may not help
...&lt;/p>


</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

<p>Rants can be fun especially of they touch the gist of real issue, such as
<a href="http://www.freeroller.net/page/fate/20030610#why_maven_sucks">Hani on
maven</a>:</p>

<blockquote>
  <p>(...)No doubt that road will in turn lead to yet another tool to manage
  maven.(...) </p>
</blockquote>

<p>If you build metadata driven build tool then better you make it easy for
users, trying to fix tool by adding another tool with more metadata may not help
...</p>


</body>
    </item>
    <item>
      <title>debugging past</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/03/13/debuggingPast.html</link>
      <dc:subject>debuggingPast</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/03/13/debuggingPast.html</guid>
      <dc:date>2003-03-13T23:55:00-05:00</dc:date>
      <description>
wouldn't it be great to be able to see not only current state in debugger
but also what happened before, kind of like VCR? now this is one step closer:
&lt;a href="http://java.sun.com/features/2002/08/omnidebug.html">Omniscient Debugging (ODB)&lt;/a>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
wouldn't it be great to be able to see not only current state in debugger
but also what happened before, kind of like VCR? now this is one step closer:
<a href="http://java.sun.com/features/2002/08/omnidebug.html">Omniscient Debugging (ODB)</a>

</body>
    </item>
    <item>
      <title>adding aspects to XML parser</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/03/03/addingAspectsToXMLParser.html</link>
      <dc:subject>addingAspectsToXMLParser</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/03/03/addingAspectsToXMLParser.html</guid>
      <dc:date>2003-03-03</dc:date>
      <description>
that seems like a powerful concept to add new functionality to XML parser
that makes parsing easier as lower level functions are seeminglessly combined
with new aspects. As an example i am adding aspect framework to XmlPull API (as an addon)
to allow dynamically add any number of extensions and integrate them with any parser
implementation.

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
that seems like a powerful concept to add new functionality to XML parser
that makes parsing easier as lower level functions are seeminglessly combined
with new aspects. As an example i am adding aspect framework to XmlPull API (as an addon)
to allow dynamically add any number of extensions and integrate them with any parser
implementation.

</body>
    </item>
    <item>
      <title>Maven the best tool to produce useless docs</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/03/02/MavenTheBestToolToProduceUselessDocs.html</link>
      <dc:subject>MavenTheBestToolToProduceUselessDocs</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/03/02/MavenTheBestToolToProduceUselessDocs.html</guid>
      <dc:date>2003-03-02T19:40:00-05:00</dc:date>
      <description>
Nobody can complain that
&lt;a href="http://jakarta.apache.org/commons/logging/">Commons Logging&lt;/a> has no documentation
- it does have many pages of HTML that contains enough useful info to fill few paragraphs
but still it was converted and generated meticulously into dozens or hundreds of pages
that gives no meaningful info on what is current status of project, who are contributors
&lt;a href="http://jakarta.apache.org/commons/logging/team-list.html">project team page&lt;/a> has nobody:

&lt;blockquote>
 There are no developers working on this project. Please check back at a later date.
&lt;/blockquote>

&lt;p>Great way to waste time if you happened to get to  this page from google and not to much
more useful
&lt;a href="http://jakarta.apache.org/commons/logging.html">old fashioned simple HTML page&lt;/a>
with kinds of info i need: documentation (just API - could be more but still OK) and
release notes and nothing more!
&lt;/p>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
Nobody can complain that
<a href="http://jakarta.apache.org/commons/logging/">Commons Logging</a> has no documentation
- it does have many pages of HTML that contains enough useful info to fill few paragraphs
but still it was converted and generated meticulously into dozens or hundreds of pages
that gives no meaningful info on what is current status of project, who are contributors
<a href="http://jakarta.apache.org/commons/logging/team-list.html">project team page</a> has nobody:

<blockquote>
 There are no developers working on this project. Please check back at a later date.
</blockquote>

<p>Great way to waste time if you happened to get to  this page from google and not to much
more useful
<a href="http://jakarta.apache.org/commons/logging.html">old fashioned simple HTML page</a>
with kinds of info i need: documentation (just API - could be more but still OK) and
release notes and nothing more!
</p>

</body>
    </item>
    <item>
      <title>Java Package Versioning is not easy...</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/02/20/JavaPackageVersioningIsNotEasy.html</link>
      <dc:subject>JavaPackageVersioningIsNotEasy</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/02/20/JavaPackageVersioningIsNotEasy.html</guid>
      <dc:date>2003-02-20T20:20:00-05:00</dc:date>
      <description>

&lt;p>As I have discovered after few hours of frustration support for versioning in Java is awkward
and is based on
&lt;a href="http://java.sun.com/products/jdk/1.2/docs/guide/versioning/">Package Versioning&lt;/a>
spec that has only HTML description but does not have a working example
(&lt;a href="http://www.javaworld.com/javaworld/jw-09-2002/jw-0920-jpvs_p.html">article in JavaWorld&lt;/a>
and working example provided
were very helpful to figure out what was going on ...)
&lt;/p>
  &lt;p>This is one of those rare moments that i wish i used other programming
  language than Java where they better solved this issue. for example it turned
  out that it does not work until at least one class from package is loaded into
  application and instead of trying to load package classes the API simply
  returns null exactly the same value if package is not available at all in
  current classloader - so the developer needs to guess why null was returned
  ... &lt;/p>
&lt;p>My main problems are that it is only package based (i can always just version one package for library
for simplicity) and it not possible to use API if code is not in JAR file and that is &lt;b>big problem&lt;/b>.
in such case Package.getPackage("package") returns not null but all calls to get getSpecificationVersion() etc.
&lt;strong>will always return null&lt;/strong> as implementation completely ignores my MANIFEST.MF even though
it is on CLASSPATH but it is not in JAR file (one more reason to have real class metadata support in Java ...)
&lt;/p>
&lt;p>one nice thing i found is good and useful schema for assigning version numbers
with MAJOR[.MINOR][.MICRO][_PATCH_NUMBER|-MILESTONE_NUMBER], &lt;br>&lt;/br>
for example: 1.1, 2.20.1, 3.4.5_03, 4.5-beta1
(more details in
&lt;a href="http://java.sun.com/j2se/1.4/docs/guide/plugin/developer_guide/extensions.html#specifying">notes
about  Specification-Version&lt;/a>

and very good rationale
on not making implemntation versions comparable as described in
&lt;a href="http://java.sun.com/products/jdk/1.2/docs/guide/versioning/spec/VersioningSpecification.html#RationaleLimitingImplVersionNumbers">Rationale
for Limiting Implementation Version Numbers to Identity&lt;/a>, excerpt:
&lt;/p>

&lt;blockquote>
A bug first appears in some version of a vendors package
and may or may not continue to be a problem in subsequent versions.
If the client of the buggy package uses a workaround based on version numbers,
it could correctly work around the bug in the specific version.
Now, if the buggy package was fixed, how would the client package
know whether the bug was fixed or not?
If it assumed that higher versions still contained the bug,
it would still try to work around the bug.
The workaround itself might not work correctly with the non-buggy package.
This could cause a cascade of bugs caused by fixing a bug.
Only the developer, through testing with a new version,
can determine whether or not the workaround for a bug is still
necessary or whether it will cause problems with the correctly behaving package.
The developer only knows that the bug exists in a particular individual versions.
&lt;/blockquote>

&lt;p>current solution: define package.Version.check(String version) (example in
XSOAP) and not waste more time on it ...
&lt;/p>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

<p>As I have discovered after few hours of frustration support for versioning in Java is awkward
and is based on
<a href="http://java.sun.com/products/jdk/1.2/docs/guide/versioning/">Package Versioning</a>
spec that has only HTML description but does not have a working example
(<a href="http://www.javaworld.com/javaworld/jw-09-2002/jw-0920-jpvs_p.html">article in JavaWorld</a>
and working example provided
were very helpful to figure out what was going on ...)
</p>
  <p>This is one of those rare moments that i wish i used other programming
  language than Java where they better solved this issue. for example it turned
  out that it does not work until at least one class from package is loaded into
  application and instead of trying to load package classes the API simply
  returns null exactly the same value if package is not available at all in
  current classloader - so the developer needs to guess why null was returned
  ... </p>
<p>My main problems are that it is only package based (i can always just version one package for library
for simplicity) and it not possible to use API if code is not in JAR file and that is <b>big problem</b>.
in such case Package.getPackage("package") returns not null but all calls to get getSpecificationVersion() etc.
<strong>will always return null</strong> as implementation completely ignores my MANIFEST.MF even though
it is on CLASSPATH but it is not in JAR file (one more reason to have real class metadata support in Java ...)
</p>
<p>one nice thing i found is good and useful schema for assigning version numbers
with MAJOR[.MINOR][.MICRO][_PATCH_NUMBER|-MILESTONE_NUMBER], <br></br>
for example: 1.1, 2.20.1, 3.4.5_03, 4.5-beta1
(more details in
<a href="http://java.sun.com/j2se/1.4/docs/guide/plugin/developer_guide/extensions.html#specifying">notes
about  Specification-Version</a>

and very good rationale
on not making implemntation versions comparable as described in
<a href="http://java.sun.com/products/jdk/1.2/docs/guide/versioning/spec/VersioningSpecification.html#RationaleLimitingImplVersionNumbers">Rationale
for Limiting Implementation Version Numbers to Identity</a>, excerpt:
</p>

<blockquote>
A bug first appears in some version of a vendors package
and may or may not continue to be a problem in subsequent versions.
If the client of the buggy package uses a workaround based on version numbers,
it could correctly work around the bug in the specific version.
Now, if the buggy package was fixed, how would the client package
know whether the bug was fixed or not?
If it assumed that higher versions still contained the bug,
it would still try to work around the bug.
The workaround itself might not work correctly with the non-buggy package.
This could cause a cascade of bugs caused by fixing a bug.
Only the developer, through testing with a new version,
can determine whether or not the workaround for a bug is still
necessary or whether it will cause problems with the correctly behaving package.
The developer only knows that the bug exists in a particular individual versions.
</blockquote>

<p>current solution: define package.Version.check(String version) (example in
XSOAP) and not waste more time on it ...
</p>

</body>
    </item>
    <item>
      <title>60+ reasons why java is better</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2003/01/19/60ReasonsWhyJavaIsBetter.html</link>
      <dc:subject>60ReasonsWhyJavaIsBetter</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/01/19/60ReasonsWhyJavaIsBetter.html</guid>
      <dc:date>2003-01-19</dc:date>
      <description>

&lt;a href="http://www.freeroller.net/page/ceperez/20030118#why_java_is_better_than3">so now i know ...&lt;/a>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

<a href="http://www.freeroller.net/page/ceperez/20030118#why_java_is_better_than3">so now i know ...</a>

</body>
    </item>
    <item>
      <title>marketing ...</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2002/12/25/marketing.html</link>
      <dc:subject>marketing</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/12/25/marketing.html</guid>
      <dc:date>2002-12-25</dc:date>
      <description>
&lt;p>
better marketing &lt;b>that&lt;/b> is what really matters. example?
&lt;br>&lt;/br>
my minilogger has nicer syntax as it does not require class parameter to getLogger()
so less redundancy and no need to do this awaful redundancy
(and that is &lt;em>typical&lt;/em> pattern in code that uses Log4J):
&lt;/p>

&lt;pre>public class Xxxxxx {
  private static Logger logger = Logger.getLogger(Prunable.class);
&lt;/pre>

it is &lt;em>hardly&lt;/em> if i have to chase for bugs when i my class logger gets out
of sync with class name
(look on &lt;a href="http://www.freeroller.net/page/matsh/20021219">Productive Environments: Log with log4j&lt;/a>)
- typical problem of code redundancy
i.e. class Prunable was used as template to create Xxxx but logger is still
reporting for Prunable - it may be good but it may be also a mistake
and definitely it is better to declare intention with your code:

&lt;pre>public class Xxxxxx {
  private static Logger logger = Logger.getLogger();
&lt;/pre>

no confusion here: Logger works for containing class


</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
<p>
better marketing <b>that</b> is what really matters. example?
<br></br>
my minilogger has nicer syntax as it does not require class parameter to getLogger()
so less redundancy and no need to do this awaful redundancy
(and that is <em>typical</em> pattern in code that uses Log4J):
</p>

<pre>public class Xxxxxx {
  private static Logger logger = Logger.getLogger(Prunable.class);
</pre>

it is <em>hardly</em> if i have to chase for bugs when i my class logger gets out
of sync with class name
(look on <a href="http://www.freeroller.net/page/matsh/20021219">Productive Environments: Log with log4j</a>)
- typical problem of code redundancy
i.e. class Prunable was used as template to create Xxxx but logger is still
reporting for Prunable - it may be good but it may be also a mistake
and definitely it is better to declare intention with your code:

<pre>public class Xxxxxx {
  private static Logger logger = Logger.getLogger();
</pre>

no confusion here: Logger works for containing class


</body>
    </item>
    <item>
      <title>XML Pull Builder API (XB1)</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2002/11/30/XMLPullBuilderAPIXB1.html</link>
      <dc:subject>XMLPullBuilderAPIXB1</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/11/30/XMLPullBuilderAPIXB1.html</guid>
      <dc:date>2002-11-30</dc:date>
      <description>

&lt;p>
i love XML Pull Builder API and it may not be good sign as i am its author ...
&lt;/p>
&lt;p>
Anyway, this is second reincarnation of XPP2 XmlPullNode but this time done with
all very nice decomposition into interfaces and value objects and both
really easy to use (no longer prefixes or raw XML names are required)
and really fast and powerful - essentially can be as fast as streaming
pull parser as user can for part of tree work with pull parser directly :-)
&lt;/p>

&lt;p>The API is modeled after
&lt;a href="http://www.w3.org/TR/xml-infoset/">XML Information Set&lt;/a>
and allows building incrementally XML trees from events streamed from pull parser
(user can start navigating tree before whole XML input was parsed!)
and has an unique ability to bypass tree building for selected sub trees
to work directly with underlying event stream.
This coupled with ability to create XML tree that can mix in any
Java Object allows to represent objects derived from XML (databinding)
in the XML tree.
&lt;/p>

&lt;p>The unique feature of API is ability to achieve high performance
that is common in streaming parsers
and ease of use associated with tree approaches in the same API
by provising very precise control over XML tree creation and access
to underlying streaming parser &lt;strong>during&lt;/strong> tree creation
(API users needs to do it if and only if they do want to bypass default tree
creation and replace it with their customized object tree, work directly with XML
events or just skip unneded parts of XML that do not need to be in XML node tree).
&lt;/p>

&lt;p>Now the challenge is how to do it in C++ and to make it easy
(especially memory operations) so it can favorably compare to DOM ...
&lt;/p>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

<p>
i love XML Pull Builder API and it may not be good sign as i am its author ...
</p>
<p>
Anyway, this is second reincarnation of XPP2 XmlPullNode but this time done with
all very nice decomposition into interfaces and value objects and both
really easy to use (no longer prefixes or raw XML names are required)
and really fast and powerful - essentially can be as fast as streaming
pull parser as user can for part of tree work with pull parser directly :-)
</p>

<p>The API is modeled after
<a href="http://www.w3.org/TR/xml-infoset/">XML Information Set</a>
and allows building incrementally XML trees from events streamed from pull parser
(user can start navigating tree before whole XML input was parsed!)
and has an unique ability to bypass tree building for selected sub trees
to work directly with underlying event stream.
This coupled with ability to create XML tree that can mix in any
Java Object allows to represent objects derived from XML (databinding)
in the XML tree.
</p>

<p>The unique feature of API is ability to achieve high performance
that is common in streaming parsers
and ease of use associated with tree approaches in the same API
by provising very precise control over XML tree creation and access
to underlying streaming parser <strong>during</strong> tree creation
(API users needs to do it if and only if they do want to bypass default tree
creation and replace it with their customized object tree, work directly with XML
events or just skip unneded parts of XML that do not need to be in XML node tree).
</p>

<p>Now the challenge is how to do it in C++ and to make it easy
(especially memory operations) so it can favorably compare to DOM ...
</p>

</body>
    </item>
    <item>
      <title>CodeGuide Wishlist</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2002/11/29/CodeGuideWishlist.html</link>
      <dc:subject>CodeGuideWishlist</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/11/29/CodeGuideWishlist.html</guid>
      <dc:date>2002-11-29T20:20:00-06:00</dc:date>
      <description>

Codeguide Omnicore Wishlist

let me first state i really like CodeGuide = Incredible Power and Simplicity
however there are seom issues that are still not resilved
&lt;ul>

&lt;li>organize imports: when multiple imports are possible let user choose
(and not show dialog that multiple choices are possible ...)
&lt;/li>

&lt;li>more powerful completion that will search all classes and not only
what is imported (so it can work with Ctrl-O and no need to leave import package.*)
&lt;/li>

&lt;li>multiple run parameter sets - so i can configure different set of parameters
&lt;/li>

&lt;li>allow to execute any JUnit test or even one method from TestCase just
by selecting it by mouse
&lt;/li>


&lt;/ul>


</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

Codeguide Omnicore Wishlist

let me first state i really like CodeGuide = Incredible Power and Simplicity
however there are seom issues that are still not resilved
<ul>

<li>organize imports: when multiple imports are possible let user choose
(and not show dialog that multiple choices are possible ...)
</li>

<li>more powerful completion that will search all classes and not only
what is imported (so it can work with Ctrl-O and no need to leave import package.*)
</li>

<li>multiple run parameter sets - so i can configure different set of parameters
</li>

<li>allow to execute any JUnit test or even one method from TestCase just
by selecting it by mouse
</li>


</ul>


</body>
    </item>
    <item>
      <title>one of dream J* features already provided by minilogger</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2002/11/11/oneOfDreamJFeaturesAlreadyProvidedByMinilogger.html</link>
      <dc:subject>oneOfDreamJFeaturesAlreadyProvidedByMinilogger</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/11/11/oneOfDreamJFeaturesAlreadyProvidedByMinilogger.html</guid>
      <dc:date>2002-11-11</dc:date>
      <description>

in
&lt;a href="http://radio.weblogs.com/0112098/2002/11/12.html#a245">James Strachan blog&lt;/a>
he writes about
&lt;a href="http://radio.weblogs.com/0112098/stories/2002/11/12/j.html">features to add to Java to
compete with C#&lt;/a>
including &lt;em>thisClass&lt;/em> and uses example of Logger:

&lt;blockquote>
&lt;p>A constant for the current class instance
&lt;/p>
            &lt;p>
We have this but why not a thisClass?
&lt;/p>
            &lt;p>
Its a PITA to have to cut and paste class names when they could easily be a compile time constant. e.g.
&lt;/p>
&lt;pre>public class Foo {
    private Logger log = LogFactory.getLog( thisClass );
&lt;/pre>

&lt;p>instead of&lt;/p>

&lt;pre>    private Logger log = LogFactory.getLog( Foo.class );
&lt;/pre>

&lt;p>which can lead to cut-and-paste errors. This is a common issue with using static methods in a generic way.
&lt;/p>
            &lt;p>
This is a very trivial change.
&lt;/p>
&lt;/blockquote>

and this is already solved by &lt;a href="http://www.extreme.indiana.edu/~aslom/minilogger/">minilogger&lt;/a>
where you can write
&lt;pre>    private Logger log = LogFactory.getLog();
&lt;/pre>
and miniLogger &lt;b>can do it now&lt;/b>: it will guess current thisClass  from context.
without changes to language to have thisClass
</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

in
<a href="http://radio.weblogs.com/0112098/2002/11/12.html#a245">James Strachan blog</a>
he writes about
<a href="http://radio.weblogs.com/0112098/stories/2002/11/12/j.html">features to add to Java to
compete with C#</a>
including <em>thisClass</em> and uses example of Logger:

<blockquote>
<p>A constant for the current class instance
</p>
            <p>
We have this but why not a thisClass?
</p>
            <p>
Its a PITA to have to cut and paste class names when they could easily be a compile time constant. e.g.
</p>
<pre>public class Foo {
    private Logger log = LogFactory.getLog( thisClass );
</pre>

<p>instead of</p>

<pre>    private Logger log = LogFactory.getLog( Foo.class );
</pre>

<p>which can lead to cut-and-paste errors. This is a common issue with using static methods in a generic way.
</p>
            <p>
This is a very trivial change.
</p>
</blockquote>

and this is already solved by <a href="http://www.extreme.indiana.edu/~aslom/minilogger/">minilogger</a>
where you can write
<pre>    private Logger log = LogFactory.getLog();
</pre>
and miniLogger <b>can do it now</b>: it will guess current thisClass  from context.
without changes to language to have thisClass
</body>
    </item>
    <item>
      <title>code guide gripes</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/java/2002/11/11/codeGuideGripes.html</link>
      <dc:subject>codeGuideGripes</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/11/11/codeGuideGripes.html</guid>
      <dc:date>2002-11-11</dc:date>
      <description>

even though Code Guide 5 is better to write code than Intellij IDEA 3
with its unbelievable-until-you-try instantaneous incremental compiler
there are some small changes that would greatly improve CG5 usefulness:

&lt;ul>
&lt;li>organize imports (Ctrl-O) should give choice when class
can be imported from multiple packages
&lt;/li>
&lt;li>add extended completion (Ctrl-Space?) that would allow to
lookup classes that are not yet imported. right now i have to
write class name from memory and then do Ctrl-O as thanks to Ctrl-O
i have no longer import * declarations ...
&lt;/li>
&lt;li>dependencies between projects: so i do not need to have long
list of all projects source trees but instead can say current
project depends on project Foo and Bar and when CG5 compiles current project
it will check dependencies and compile a dependent project if needed
and then add automatically to CLASSPATH dependent project .class output
(and related libraries)
&lt;/li>
&lt;li>project settings/classpath management: needs ability to add
multiple source tree or jar files AT ONCE!!!
&lt;/li>
&lt;/ul>


</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

even though Code Guide 5 is better to write code than Intellij IDEA 3
with its unbelievable-until-you-try instantaneous incremental compiler
there are some small changes that would greatly improve CG5 usefulness:

<ul>
<li>organize imports (Ctrl-O) should give choice when class
can be imported from multiple packages
</li>
<li>add extended completion (Ctrl-Space?) that would allow to
lookup classes that are not yet imported. right now i have to
write class name from memory and then do Ctrl-O as thanks to Ctrl-O
i have no longer import * declarations ...
</li>
<li>dependencies between projects: so i do not need to have long
list of all projects source trees but instead can say current
project depends on project Foo and Bar and when CG5 compiles current project
it will check dependencies and compile a dependent project if needed
and then add automatically to CLASSPATH dependent project .class output
(and related libraries)
</li>
<li>project settings/classpath management: needs ability to add
multiple source tree or jar files AT ONCE!!!
</li>
</ul>


</body>
    </item>
  </channel>
</rss>
