<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Web Services Contraptions - Java</title>
    <link>http://blog.beuchelt.org/</link>
    <description />
    <language>en-us</language>
    <copyright>Gerald Beuchelt</copyright>
    <lastBuildDate>Wed, 03 Jun 2009 19:00:09 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>work@beuchelt.com</managingEditor>
    <webMaster>work@beuchelt.com</webMaster>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Working currently on an RelaxNG project, I needed to automate conversion of RNG schemas
to a W3C compliant schema in NetBeans. The tool I used to perform the transform is <a href="http://www.thaiopensource.com/relaxng/trang.html">Trang</a>.
I added this macro to the build.xml file: 
</p>
        <div align="left">
          <blockquote>
            <font size="2" face="Courier New">&lt;macrodef name="rng2xsd"
description="Conversion from RNG to XSD schemas"&gt;<br />
    &lt;attribute name="rng" /&gt;<br />
    &lt;attribute name="xsd" /&gt;<br />
    &lt;sequential&gt;<br />
        &lt;echo message="Convert RNG schema (trang/oxygen):
@{rng}"/&gt;<br />
        &lt;java classname="com.thaiopensource.relaxng.translate.Driver"<br />
              
failonerror="true" maxmemory="128m" fork="true"&gt;<br />
            &lt;arg value="-I"/&gt;<br />
            &lt;arg value="rng"/&gt;<br />
            &lt;arg value="-O"/&gt;<br />
            &lt;arg value="XSD"/&gt;<br />
            &lt;arg value="@{rng}"/&gt;<br />
            &lt;arg value="@{xsd}"/&gt;<br />
            &lt;classpath&gt;<br />
               
&lt;pathelement location="resources/tools/trang-20081028.jar"/&gt;<br />
            &lt;/classpath&gt;<br />
        &lt;/java&gt;<br />
    &lt;/sequential&gt;<br />
&lt;/macrodef&gt;</font>
            <br />
          </blockquote>
        </div>
        <p>
All necessary libraries reside in the ./resources/tools directory. Now, in order to
use this macro on a number of RNG files, I decided to use the &lt;for&gt; directive
from ant-contrib. James Allen has good <a href="http://james-allen.tumblr.com/post/112389468/using-ant-contrib-with-netbeans-builds">instructions
on how to integrate ant-contrib within NetBeans</a> (or arbitrary ant environments)
without having to drop the ant-contrib Jar into the ant/NetBeans installation. 
<br /></p>
        <div align="left">
          <blockquote>
            <font size="2" face="Courier New">&lt;target name="convertRng2Xsd"&gt;<br />
    &lt;echo message="Converting RNG Schemas..."/&gt;<br />
    &lt;mkdir dir="${xsd-schemas}"/&gt;<br />
    &lt;for list="${rng-files}" param="file"&gt;<br />
        &lt;sequential&gt;<br />
            &lt;rng2xsd rng="${rng-schemas}/@{file}.rng"
xsd="${xsd-schemas}/@{file}.xsd" /&gt;<br />
        &lt;/sequential&gt;<br />
    &lt;/for&gt;<br />
&lt;/target&gt;<br /></font>
          </blockquote>
        </div>
Here I am iterating over the ${rng-files} property that contains a comma delimited
list of the RNG files you want to convert (without the .rng extension). I filled this
through &lt;pathconvert&gt;: 
<br /><div align="left"><blockquote><font size="2" face="Courier New">&lt;pathconvert property="rng-files"
pathsep=","&gt;<br />
    &lt;mapper&gt;<br />
        &lt;chainedmapper&gt;<br />
            &lt;flattenmapper
/&gt;<br />
            &lt;globmapper
from="*.rng" to="*" /&gt;<br />
        &lt;/chainedmapper&gt;<br />
    &lt;/mapper&gt;<br />
    &lt;path&gt;<br />
        &lt;fileset dir="resources/schemas" includes="*.rng"
/&gt;<br />
    &lt;/path&gt;<br />
&lt;/pathconvert&gt;</font></blockquote></div><p>
Obviously, these XSDs can then be used with any other tools, such as JAXB. 
<br /></p><img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0" /></body>
      <title>Automating RNG to XSD conversion in NetBeans</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0.aspx</guid>
      <link>http://blog.beuchelt.org/2009/06/03/Automating+RNG+To+XSD+Conversion+In+NetBeans.aspx</link>
      <pubDate>Wed, 03 Jun 2009 19:00:09 GMT</pubDate>
      <description>&lt;p&gt;
Working currently on an RelaxNG project, I needed to automate conversion of RNG schemas
to a W3C compliant schema in NetBeans. The tool I used to perform the transform is &lt;a href="http://www.thaiopensource.com/relaxng/trang.html"&gt;Trang&lt;/a&gt;.
I added this macro to the build.xml file: 
&lt;/p&gt;
&lt;div align="left"&gt;&lt;blockquote&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;macrodef name="rng2xsd"
description="Conversion from RNG to XSD schemas"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="rng" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;attribute name="xsd" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequential&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;echo message="Convert RNG schema (trang/oxygen):
@{rng}"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;java classname="com.thaiopensource.relaxng.translate.Driver"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
failonerror="true" maxmemory="128m" fork="true"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="-I"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="rng"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="-O"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="XSD"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="@{rng}"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="@{xsd}"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;classpath&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;pathelement location="resources/tools/trang-20081028.jar"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/classpath&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/java&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequential&amp;gt;&lt;br&gt;
&amp;lt;/macrodef&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;
All necessary libraries reside in the ./resources/tools directory. Now, in order to
use this macro on a number of RNG files, I decided to use the &amp;lt;for&amp;gt; directive
from ant-contrib. James Allen has good &lt;a href="http://james-allen.tumblr.com/post/112389468/using-ant-contrib-with-netbeans-builds"&gt;instructions
on how to integrate ant-contrib within NetBeans&lt;/a&gt; (or arbitrary ant environments)
without having to drop the ant-contrib Jar into the ant/NetBeans installation. 
&lt;br&gt;
&lt;/p&gt;
&lt;div align="left"&gt;&lt;blockquote&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;target name="convertRng2Xsd"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;echo message="Converting RNG Schemas..."/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mkdir dir="${xsd-schemas}"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;for list="${rng-files}" param="file"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequential&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rng2xsd rng="${rng-schemas}/@{file}.rng"
xsd="${xsd-schemas}/@{file}.xsd" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequential&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/for&amp;gt;&lt;br&gt;
&amp;lt;/target&amp;gt;&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;
&lt;/div&gt;
Here I am iterating over the ${rng-files} property that contains a comma delimited
list of the RNG files you want to convert (without the .rng extension). I filled this
through &amp;lt;pathconvert&amp;gt;: 
&lt;br&gt;
&lt;div align="left"&gt;&lt;blockquote&gt;&lt;font size="2" face="Courier New"&gt;&amp;lt;pathconvert property="rng-files"
pathsep=","&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mapper&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;chainedmapper&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;flattenmapper
/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;globmapper
from="*.rng" to="*" /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/chainedmapper&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mapper&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;path&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fileset dir="resources/schemas" includes="*.rng"
/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/path&amp;gt;&lt;br&gt;
&amp;lt;/pathconvert&amp;gt;&lt;/font&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;
Obviously, these XSDs can then be used with any other tools, such as JAXB. 
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,850a1c6d-d1e5-4b2b-b843-c7f3f26e11e0.aspx</comments>
      <category>Java</category>
      <category>Tips and Tricks</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=49a7c937-b82b-433a-a285-74eabfd4f982</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,49a7c937-b82b-433a-a285-74eabfd4f982.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,49a7c937-b82b-433a-a285-74eabfd4f982.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=49a7c937-b82b-433a-a285-74eabfd4f982</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For our current internal project, I needed a way to display images within a Java Swing
application. There are probably as many solutions to this out, as there are swing
programmers, but here is a quick way to get this done, that solves my two major issues: 
</p>
        <p>
Resizable, i.e. when the panel changes in size, the image changes along. 
</p>
        <p>
Integratable with NetBeans, especially with the Matisse component designer. 
</p>
        <p>
This worked for me: 
<br /></p>
        <blockquote>
          <pre>
            <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">
              <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span>
              <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span> ImagePanel <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">extends</span> JPanel
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">private</span> Image
image; <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">private</span> Image
displayImage; <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span> ImagePanel()
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">super</span>();
} <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span> ImagePanel(Image
image) { <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">super</span>(); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">this</span>.image <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> image; <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">this</span>.displayImage <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> image;
} @Override <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> paintComponent(Graphics
g) { fitImage(); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">while</span> (!g.drawImage(displayImage,
0, 0, <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">null</span>))
{ } } @Override <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> setSize(Dimension
d) { <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">super</span>.setSize(d);
} <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">private</span> synchronized <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> fitImage()
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">if</span> (image
!<span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">null</span>)
{ <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span> imageHeight <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> image.getHeight(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">null</span>); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span> imageWidth <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> image.getWidth(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">null</span>);
double ratio <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> ((double)
imageHeight) / ((double) imageWidth); Dimension d <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">this</span>.getSize();
double height <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> d.getHeight();
double width <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> d.getWidth(); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">if</span> (height
== 0 || width == 0) { height <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">this</span>.image.getHeight(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">null</span>);
width <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">this</span>.image.getWidth(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">null</span>);
} <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">else</span> {
double tempH <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Math.floor(ratio
* width); double tempW <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Math.floor(height
/ ratio); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">if</span> (tempH <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">+</span> 1
&gt; height) { width <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> tempW;
} <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">else</span> {
height <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> tempH;
} } displayImage <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> image.getScaledInstance((<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span>)
Math.floor(width), (<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">int</span>)
Math.floor(height), Image.SCALE_DEFAULT); } } <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span> Image
getImage() { <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">return</span> image;
} <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">void</span> setImage(Image
image) { <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">this</span>.image <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> image;
fitImage(); }</span>
          </pre>
        </blockquote>
        <p>
Note the while-loop in the paintComponent() method. Without this, you will only get
partial image updates, since the drawImage() method on Graphics runs in the background.
For very large images or latency sensitive applications this might be an issue, but
for my application this is quite acceptable. 
<br /></p>
        <p>
In order to integrate this class with NetBeans, you create a Swing JPanel with the
graphical designer, and set the "Custom Creation Code" for that panel to be your ImagePanel.
Within the code, you can now easily cast to ImagePanel, thus giving you the full image
functionality, while not sacrificing visual design. 
<br /></p>
        <div align="center">
          <img src="http://blog.beuchelt.org/content/binary/customcode.png" border="0" />
          <br />
          <br />
        </div>
        <p>
          <b>tags</b>:<a href="http://technorati.com/tag/java" rel="tag">java</a><a href="http://technorati.com/tag/swing" rel="tag">swing</a><a href="http://technorati.com/tag/image" rel="tag">image</a><a href="http://technorati.com/tag/panel" rel="tag">panel</a><a href="http://technorati.com/tag/NetBeans" rel="tag">NetBeans</a></p>
        <span id="ctl00_ContentPlaceHolder1_lblResults">
        </span>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=49a7c937-b82b-433a-a285-74eabfd4f982" />
      </body>
      <title>YAIP (Yet another ImagePanel) for Java</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,49a7c937-b82b-433a-a285-74eabfd4f982.aspx</guid>
      <link>http://blog.beuchelt.org/2008/11/18/YAIP+Yet+Another+ImagePanel+For+Java.aspx</link>
      <pubDate>Tue, 18 Nov 2008 21:21:14 GMT</pubDate>
      <description>&lt;p&gt;
For our current internal project, I needed a way to display images within a Java Swing
application. There are probably as many solutions to this out, as there are swing
programmers, but here is a quick way to get this done, that solves my two major issues: 
&lt;/p&gt;
&lt;p&gt;
Resizable, i.e. when the panel changes in size, the image changes along. 
&lt;/p&gt;
&lt;p&gt;
Integratable with NetBeans, especially with the Matisse component designer. 
&lt;/p&gt;
&lt;p&gt;
This worked for me: 
&lt;br&gt;
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; ImagePanel &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;extends&lt;/span&gt; JPanel
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; Image
image; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; Image
displayImage; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; ImagePanel()
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;super&lt;/span&gt;();
} &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; ImagePanel(Image
image) { &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;super&lt;/span&gt;(); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.image &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; image; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.displayImage &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; image;
} @Override &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; paintComponent(Graphics
g) { fitImage(); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;while&lt;/span&gt; (!g.drawImage(displayImage,
0, 0, &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;))
{ } } @Override &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; setSize(Dimension
d) { &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;super&lt;/span&gt;.setSize(d);
} &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;private&lt;/span&gt; synchronized &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; fitImage()
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (image
!&lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;)
{ &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt; imageHeight &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; image.getHeight(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt; imageWidth &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; image.getWidth(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;);
double ratio &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; ((double)
imageHeight) / ((double) imageWidth); Dimension d &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.getSize();
double height &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; d.getHeight();
double width &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; d.getWidth(); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (height
== 0 || width == 0) { height &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.image.getHeight(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;);
width &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.image.getWidth(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;);
} &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;else&lt;/span&gt; {
double tempH &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Math.floor(ratio
* width); double tempW &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Math.floor(height
/ ratio); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (tempH &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;+&lt;/span&gt; 1
&amp;gt; height) { width &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; tempW;
} &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;else&lt;/span&gt; {
height &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; tempH;
} } displayImage &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; image.getScaledInstance((&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt;)
Math.floor(width), (&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;int&lt;/span&gt;)
Math.floor(height), Image.SCALE_DEFAULT); } } &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; Image
getImage() { &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; image;
} &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;void&lt;/span&gt; setImage(Image
image) { &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.image &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; image;
fitImage(); }&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;
Note the while-loop in the paintComponent() method. Without this, you will only get
partial image updates, since the drawImage() method on Graphics runs in the background.
For very large images or latency sensitive applications this might be an issue, but
for my application this is quite acceptable. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
In order to integrate this class with NetBeans, you create a Swing JPanel with the
graphical designer, and set the "Custom Creation Code" for that panel to be your ImagePanel.
Within the code, you can now easily cast to ImagePanel, thus giving you the full image
functionality, while not sacrificing visual design. 
&lt;br&gt;
&lt;/p&gt;
&lt;div align="center"&gt;&lt;img src="http://blog.beuchelt.org/content/binary/customcode.png" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;b&gt;tags&lt;/b&gt;:&lt;a href="http://technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt; &lt;a href="http://technorati.com/tag/swing" rel="tag"&gt;swing&lt;/a&gt; &lt;a href="http://technorati.com/tag/image" rel="tag"&gt;image&lt;/a&gt; &lt;a href="http://technorati.com/tag/panel" rel="tag"&gt;panel&lt;/a&gt; &lt;a href="http://technorati.com/tag/NetBeans" rel="tag"&gt;NetBeans&lt;/a&gt;
&lt;/p&gt;
&lt;span id="ctl00_ContentPlaceHolder1_lblResults"&gt; &lt;/span&gt;&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=49a7c937-b82b-433a-a285-74eabfd4f982" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,49a7c937-b82b-433a-a285-74eabfd4f982.aspx</comments>
      <category>Java</category>
      <category>Tips and Tricks</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=5b4c797c-c10b-4da8-aabd-887375edb1f3</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,5b4c797c-c10b-4da8-aabd-887375edb1f3.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,5b4c797c-c10b-4da8-aabd-887375edb1f3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=5b4c797c-c10b-4da8-aabd-887375edb1f3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Marc recently published a <a href="http://weblogs.java.net/blog/mhadley/archive/2008/02/integrating_jer_2.html">short
tutorial</a> on how to use <a href="http://incubator.apache.org/abdera/">Apache Abdera</a> with
Apache Abdera with our reference implementation of JAX-RS, <a href="http://jersey.dev.java.net/">Jersey</a>.
His code is server side, i.e. it explains using Jersey and Abdera for creating RESTful
web services with Atom payload<sup>[1]</sup>. In this article I will give an example
on how the Jersey client API can be used to consume such a service with realitve ease. 
</p>
        <p>
It is hopefully known that Jersey contains a very simple, yet effective HTTP client
API. Core to it is the heavy use of the builder pattern for creating and configuring
requests. For our example, I start with creating the client: 
</p>
        <pre>
          <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"> Client
c <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Client.create();
WebResource r <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> c.resource(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> URI(someLocation));</span>
        </pre>
        <p>
We can now get the InputStream from the WebResource to read the Atom feed into an
Abdera Feed: 
</p>
        <pre>
          <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"> InputStream
is <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> (InputStream)
r.<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">get</span>(InputStream.<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span>);
Document&lt;Feed&gt; doc <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Abdera.getNewParser().parse(is);
Feed feed <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> doc.getRoot(); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">for</span> (Entry
entry : feed.getEntries()) { 
<br />
doSomething(entry); 
<br />
}</span>
        </pre>
        <p>
Now let's say we want to post an entry to the resource in Marc's article. In this
case we would also have to use his AbderaSupport class, which implementes the proper <a href="https://jsr311.dev.java.net/nonav/javadoc/javax/ws/rs/ext/MessageBodyReader.html">MessageBodyReader</a> and <a href="https://jsr311.dev.java.net/nonav/javadoc/javax/ws/rs/ext/MessageBodyWriter.html">MessageBodyWriter</a> interfaces
for the Abdera objects. On the server side providing these interfaces is enough, but
on the client side we need to configure the Jersey client. The following code helps
doing this: 
</p>
        <pre>
          <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">
            <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span>
            <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">static</span>
            <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span> AbderaClientConfig <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">extends</span> DefaultClientConfig
{ @Override <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">public</span> Set&lt;Class&lt;?&gt;&gt;
getProviderClasses() { Set&lt;Class&lt;?&gt;&gt; classes <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> HashSet&lt;Class&lt;?&gt;&gt;();
classes.add(AbderaSupport.<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">class</span>); <span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">return</span> classes;
} } </span>Thus completing our sample app: </pre>
        <pre>
          <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"> ClientConfig
cf <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> AbderaClientConfig();
Client c <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> Client.create(cf);
WebResource r <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> c.resource(<span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">new</span> URI(someLocation));
Entry entry <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> AbderaSupport.getAbdera().newEntry();
entry.setTitle(...); entry.setContent(...); ClientResponse cr <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> r.type(MediaType.APPLICATION_XML).put(ClientResponse.class,
entry); </span>
        </pre>Done.<br /><br />
tags: <span id="ctl00_ContentPlaceHolder1_lblResults"><a href="http://technorati.com/tag/Jersey" rel="tag">Jersey</a><a href="http://technorati.com/tag/Apache+Abdera" rel="tag">Apache
Abdera</a><a href="http://technorati.com/tag/Atom" rel="tag">Atom</a><a href="http://technorati.com/tag/JAX-RS" rel="tag">JAX-RS</a></span><br /><p>
[1] Tim <a href="http://www.tbray.org/ongoing/When/200x/2008/07/17/AtomPub">pointed
out</a> that this style should properly called "AtomPub", and not APP, AtomPub/Sub
or similar. 
</p><feed><class><class><class></class></class></class></feed><img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=5b4c797c-c10b-4da8-aabd-887375edb1f3" /></body>
      <title>Using Abdera and the Jersey Client API</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,5b4c797c-c10b-4da8-aabd-887375edb1f3.aspx</guid>
      <link>http://blog.beuchelt.org/2008/07/18/Using+Abdera+And+The+Jersey+Client+API.aspx</link>
      <pubDate>Fri, 18 Jul 2008 19:43:10 GMT</pubDate>
      <description>
&lt;p&gt;
Marc recently published a &lt;a href="http://weblogs.java.net/blog/mhadley/archive/2008/02/integrating_jer_2.html"&gt;short
tutorial&lt;/a&gt; on how to use &lt;a href="http://incubator.apache.org/abdera/"&gt;Apache Abdera&lt;/a&gt; with
Apache Abdera with our reference implementation of JAX-RS, &lt;a href="http://jersey.dev.java.net/"&gt;Jersey&lt;/a&gt;.
His code is server side, i.e. it explains using Jersey and Abdera for creating RESTful
web services with Atom payload&lt;sup&gt;[1]&lt;/sup&gt;. In this article I will give an example
on how the Jersey client API can be used to consume such a service with realitve ease. 
&lt;/p&gt;
&lt;p&gt;
It is hopefully known that Jersey contains a very simple, yet effective HTTP client
API. Core to it is the heavy use of the builder pattern for creating and configuring
requests. For our example, I start with creating the client: 
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; Client
c &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Client.create();
WebResource r &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; c.resource(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; URI(someLocation));&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
We can now get the InputStream from the WebResource to read the Atom feed into an
Abdera Feed: 
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; InputStream
is &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; (InputStream)
r.&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;get&lt;/span&gt;(InputStream.&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt;);
Document&amp;lt;Feed&amp;gt; doc &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Abdera.getNewParser().parse(is);
Feed feed &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; doc.getRoot(); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;for&lt;/span&gt; (Entry
entry : feed.getEntries()) { 
&lt;br&gt;
doSomething(entry); 
&lt;br&gt;
}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Now let's say we want to post an entry to the resource in Marc's article. In this
case we would also have to use his AbderaSupport class, which implementes the proper &lt;a href="https://jsr311.dev.java.net/nonav/javadoc/javax/ws/rs/ext/MessageBodyReader.html"&gt;MessageBodyReader&lt;/a&gt; and &lt;a href="https://jsr311.dev.java.net/nonav/javadoc/javax/ws/rs/ext/MessageBodyWriter.html"&gt;MessageBodyWriter&lt;/a&gt; interfaces
for the Abdera objects. On the server side providing these interfaces is enough, but
on the client side we need to configure the Jersey client. The following code helps
doing this: 
&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;static&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt; AbderaClientConfig &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;extends&lt;/span&gt; DefaultClientConfig
{ @Override &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;public&lt;/span&gt; Set&amp;lt;Class&amp;lt;?&amp;gt;&amp;gt;
getProviderClasses() { Set&amp;lt;Class&amp;lt;?&amp;gt;&amp;gt; classes &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; HashSet&amp;lt;Class&amp;lt;?&amp;gt;&amp;gt;();
classes.add(AbderaSupport.&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;class&lt;/span&gt;); &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; classes;
} } &lt;/span&gt;Thus completing our sample app: &lt;/pre&gt;
&lt;pre&gt;&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt; ClientConfig
cf &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; &lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; AbderaClientConfig();
Client c &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; Client.create(cf);
WebResource r &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; c.resource(&lt;span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;new&lt;/span&gt; URI(someLocation));
Entry entry &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; AbderaSupport.getAbdera().newEntry();
entry.setTitle(...); entry.setContent(...); ClientResponse cr &lt;span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; r.type(MediaType.APPLICATION_XML).put(ClientResponse.class,
entry); &lt;/span&gt;&lt;/pre&gt;Done.&lt;br&gt;
&lt;br&gt;
tags: &lt;span id="ctl00_ContentPlaceHolder1_lblResults"&gt;&lt;a href="http://technorati.com/tag/Jersey" rel="tag"&gt;Jersey&lt;/a&gt; &lt;a href="http://technorati.com/tag/Apache+Abdera" rel="tag"&gt;Apache
Abdera&lt;/a&gt; &lt;a href="http://technorati.com/tag/Atom" rel="tag"&gt;Atom&lt;/a&gt; &lt;a href="http://technorati.com/tag/JAX-RS" rel="tag"&gt;JAX-RS&lt;/a&gt; &lt;/span&gt;
&lt;br&gt;
&lt;p&gt;
[1] Tim &lt;a href="http://www.tbray.org/ongoing/When/200x/2008/07/17/AtomPub"&gt;pointed
out&lt;/a&gt; that this style should properly called "AtomPub", and not APP, AtomPub/Sub
or similar. 
&lt;/p&gt;
&lt;feed&gt;
&lt;class&gt;
&lt;class&gt;
&lt;class&gt;
&lt;/class&gt;
&lt;/class&gt;
&lt;/class&gt;
&lt;/feed&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=5b4c797c-c10b-4da8-aabd-887375edb1f3" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,5b4c797c-c10b-4da8-aabd-887375edb1f3.aspx</comments>
      <category>Java</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=7cd78ec9-d4f1-4a44-9741-98beb6e93b75</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,7cd78ec9-d4f1-4a44-9741-98beb6e93b75.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,7cd78ec9-d4f1-4a44-9741-98beb6e93b75.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=7cd78ec9-d4f1-4a44-9741-98beb6e93b75</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is seriously groundbreaking: <a href="http://vasters.com/clemensv/PermaLink,guid,798bbf5b-f9f9-45b9-87ba-f6a30c359af9.aspx">Clemens</a> (also <a href="http://blogs.msdn.com/clemensv/archive/2008/03/31/biztalk-services-r11-ctp-comes-with-a-surprise.aspx">here</a>)
just finished an example of a <a href="https://metro.dev.jav.net/">Metro</a> client
accessing Microsoft's <a href="http://labs.biztalk.net/">BizTalk Services</a> (aka
Internet Service Bus). "Well", you might ask, "what is so groundbreaking about this?
Isn't this what this whole web services thingy was supposed to achieve? Interoperability?!"
</p>
        <p>
Yes, indeed. However, this is the first time ever (to my knowledge) that Microsoft
is releasing JEE code, built with Metro within NetBeans, as part of an <a href="http://labs.biztalk.net/GetStarted.aspx">SDK</a>.
Getting there took quite a while, and was largely enabled by Sun and Microsoft working
very closely together in a series of interop-plugfests. The latest installment of
these got (especially) WS-Trust interoperability to a point where you can now use
the client implementation in Metro to access the STS provided by the .NET Framework. 
<br /></p>
        <p>
Congrats to Clemens, but also the Metro team (namely Jiandong and Harold). 
<br /></p>
        <p>
          <b>tag:</b>
          <a href="http://www.technorati.com/tag/Interoperability" rel="tag">Interoperability</a>, <a href="http://www.technorati.com/tag/WS-Trust" rel="tag">WS-Trust</a>, <a href="http://www.technorati.com/tag/Metro" rel="tag">Metro</a>, <a href="http://www.technorati.com/tag/BizTalk%20Services" rel="tag">BizTalk
Services</a></p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=7cd78ec9-d4f1-4a44-9741-98beb6e93b75" />
      </body>
      <title>Flying pigs over Redmond</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,7cd78ec9-d4f1-4a44-9741-98beb6e93b75.aspx</guid>
      <link>http://blog.beuchelt.org/2008/03/31/Flying+Pigs+Over+Redmond.aspx</link>
      <pubDate>Mon, 31 Mar 2008 18:17:52 GMT</pubDate>
      <description>&lt;p&gt;
This is seriously groundbreaking: &lt;a href="http://vasters.com/clemensv/PermaLink,guid,798bbf5b-f9f9-45b9-87ba-f6a30c359af9.aspx"&gt;Clemens&lt;/a&gt; (also &lt;a href="http://blogs.msdn.com/clemensv/archive/2008/03/31/biztalk-services-r11-ctp-comes-with-a-surprise.aspx"&gt;here&lt;/a&gt;)
just finished an example of a &lt;a href="https://metro.dev.jav.net/"&gt;Metro&lt;/a&gt; client
accessing Microsoft's &lt;a href="http://labs.biztalk.net/"&gt;BizTalk Services&lt;/a&gt; (aka
Internet Service Bus). "Well", you might ask, "what is so groundbreaking about this?
Isn't this what this whole web services thingy was supposed to achieve? Interoperability?!"
&lt;/p&gt;
&lt;p&gt;
Yes, indeed. However, this is the first time ever (to my knowledge) that Microsoft
is releasing JEE code, built with Metro within NetBeans, as part of an &lt;a href="http://labs.biztalk.net/GetStarted.aspx"&gt;SDK&lt;/a&gt;.
Getting there took quite a while, and was largely enabled by Sun and Microsoft working
very closely together in a series of interop-plugfests. The latest installment of
these got (especially) WS-Trust interoperability to a point where you can now use
the client implementation in Metro to access the STS provided by the .NET Framework. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Congrats to Clemens, but also the Metro team (namely Jiandong and Harold). 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;tag:&lt;/b&gt; &lt;a href="http://www.technorati.com/tag/Interoperability" rel="tag"&gt;Interoperability&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/WS-Trust" rel="tag"&gt;WS-Trust&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Metro" rel="tag"&gt;Metro&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/BizTalk%20Services" rel="tag"&gt;BizTalk
Services&lt;/a&gt; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=7cd78ec9-d4f1-4a44-9741-98beb6e93b75" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,7cd78ec9-d4f1-4a44-9741-98beb6e93b75.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=0ec72dde-4e7a-4159-914d-2f50818e3782</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,0ec72dde-4e7a-4159-914d-2f50818e3782.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,0ec72dde-4e7a-4159-914d-2f50818e3782.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=0ec72dde-4e7a-4159-914d-2f50818e3782</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
When you are working with Glassfish (like I am doing now), you might need to capture
your HTTPS traffic. In an earlier post, I explained how to capture and decrypt any
SSL/TLS traffic, as long as you have the server private key. 
</p>
        <p>
While this method is quite effective and universal, it is still a little cumbersome,
especially since the actual SSL decoder in Wireshark is not yet fully integrated into
the analyzer itself. 
</p>
        <p>
For Sun's Glassfish application server, there is a fairly simple way to monitor any
web services HTTPS traffic: 
</p>
        <p>
simply go into the <font face="Courier New">domain.xml</font> file of your domain
and add the following <font face="Courier New">&lt;jvm-options&gt;</font>: 
</p>
        <blockquote>
          <p>
            <font face="Courier New"> &lt;jvm-options&gt;-DWSIT_HOME=${com.sun.aas.installRoot}&lt;/jvm-options&gt;<br />
&lt;jvm-options&gt;-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true&lt;/jvm-options&gt;
&lt;jvm-options&gt;-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true&lt;/jvm-options&gt;</font>
          </p>
        </blockquote>
        <p>
The server.log (in <font face="Courier New">&lt;installRoot&gt;/domains/domain1/logs</font>)
will then contain the fully assembled web services exchanges.
</p>
        <p>
          <b>tag:</b>
          <a href="http://www.technorati.com/tag/glassfish" rel="tag">glassfish</a>, <a href="http://www.technorati.com/tag/java" rel="tag">java</a>, <a href="http://www.technorati.com/tag/wsit" rel="tag">wsit</a>, <a href="http://www.technorati.com/tag/SSL" rel="tag">SSL</a>, <a href="http://www.technorati.com/tag/HTTPS" rel="tag">HTTPS</a></p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=0ec72dde-4e7a-4159-914d-2f50818e3782" />
      </body>
      <title>Glassfish secrets: HTTPS server side traces</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,0ec72dde-4e7a-4159-914d-2f50818e3782.aspx</guid>
      <link>http://blog.beuchelt.org/2007/10/16/Glassfish+Secrets+HTTPS+Server+Side+Traces.aspx</link>
      <pubDate>Tue, 16 Oct 2007 18:11:41 GMT</pubDate>
      <description>&lt;p&gt;
When you are working with Glassfish (like I am doing now), you might need to capture
your HTTPS traffic. In an earlier post, I explained how to capture and decrypt any
SSL/TLS traffic, as long as you have the server private key. 
&lt;/p&gt;
&lt;p&gt;
While this method is quite effective and universal, it is still a little cumbersome,
especially since the actual SSL decoder in Wireshark is not yet fully integrated into
the analyzer itself. 
&lt;/p&gt;
&lt;p&gt;
For Sun's Glassfish application server, there is a fairly simple way to monitor any
web services HTTPS traffic: 
&lt;/p&gt;
&lt;p&gt;
simply go into the &lt;font face="Courier New"&gt;domain.xml&lt;/font&gt; file of your domain
and add the following &lt;font face="Courier New"&gt;&amp;lt;jvm-options&amp;gt;&lt;/font&gt;: 
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;font face="Courier New"&gt; &amp;lt;jvm-options&amp;gt;-DWSIT_HOME=${com.sun.aas.installRoot}&amp;lt;/jvm-options&amp;gt;&lt;br&gt;
&amp;lt;jvm-options&amp;gt;-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true&amp;lt;/jvm-options&amp;gt;
&amp;lt;jvm-options&amp;gt;-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true&amp;lt;/jvm-options&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The server.log (in &lt;font face="Courier New"&gt;&amp;lt;installRoot&amp;gt;/domains/domain1/logs&lt;/font&gt;)
will then contain the fully assembled web services exchanges.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;tag:&lt;/b&gt; &lt;a href="http://www.technorati.com/tag/glassfish" rel="tag"&gt;glassfish&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/wsit" rel="tag"&gt;wsit&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/SSL" rel="tag"&gt;SSL&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/HTTPS" rel="tag"&gt;HTTPS&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=0ec72dde-4e7a-4159-914d-2f50818e3782" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,0ec72dde-4e7a-4159-914d-2f50818e3782.aspx</comments>
      <category>Java</category>
      <category>Tips and Tricks</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=df20462c-94a1-4248-a6e4-69c7e81ef13d</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,df20462c-94a1-4248-a6e4-69c7e81ef13d.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,df20462c-94a1-4248-a6e4-69c7e81ef13d.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=df20462c-94a1-4248-a6e4-69c7e81ef13d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font face="Courier New">keytool</font> is a useful utility for dealing with Java
keystores, but it has a significant disadvantage: you can not export private keys
with a certificate using <font face="Courier New">keytool</font>. Therefore, the only
thing you can so is to add the certificate as a trustedCert into the keystore, but
not as a keyEntry. 
</p>
        <p>
Obviously, this is easily possible through the programmatic interface, but that can
be hasslesome at times. At <a href="http://couchpotato.net/pkeytool/">http://couchpotato.net/pkeytool/</a> you
can find a really nice little tool that allows you to extract the private key in a
separate file, and then re-import the private key file and the cert into a new keystore.
</p>
        <p>
          <b>tag:</b>
          <a href="http://www.technorati.com/tag/security" rel="tag">security</a>, <a href="http://www.technorati.com/tag/java" rel="tag">java</a>, <a href="http://www.technorati.com/tag/keytool" rel="tag">keytool</a></p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=df20462c-94a1-4248-a6e4-69c7e81ef13d" />
      </body>
      <title>Exporting private keys from a Java Keystore through the command line</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,df20462c-94a1-4248-a6e4-69c7e81ef13d.aspx</guid>
      <link>http://blog.beuchelt.org/2007/10/08/Exporting+Private+Keys+From+A+Java+Keystore+Through+The+Command+Line.aspx</link>
      <pubDate>Mon, 08 Oct 2007 21:49:30 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font face="Courier New"&gt;keytool&lt;/font&gt; is a useful utility for dealing with Java
keystores, but it has a significant disadvantage: you can not export private keys
with a certificate using &lt;font face="Courier New"&gt;keytool&lt;/font&gt;. Therefore, the only
thing you can so is to add the certificate as a trustedCert into the keystore, but
not as a keyEntry. 
&lt;/p&gt;
&lt;p&gt;
Obviously, this is easily possible through the programmatic interface, but that can
be hasslesome at times. At &lt;a href="http://couchpotato.net/pkeytool/"&gt;http://couchpotato.net/pkeytool/&lt;/a&gt; you
can find a really nice little tool that allows you to extract the private key in a
separate file, and then re-import the private key file and the cert into a new keystore.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;tag:&lt;/b&gt; &lt;a href="http://www.technorati.com/tag/security" rel="tag"&gt;security&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/keytool" rel="tag"&gt;keytool&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=df20462c-94a1-4248-a6e4-69c7e81ef13d" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,df20462c-94a1-4248-a6e4-69c7e81ef13d.aspx</comments>
      <category>Java</category>
      <category>Tips and Tricks</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=ab517295-35f4-4cf2-9035-c6c96343f238</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,ab517295-35f4-4cf2-9035-c6c96343f238.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,ab517295-35f4-4cf2-9035-c6c96343f238.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=ab517295-35f4-4cf2-9035-c6c96343f238</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In order to go through some exercise here, I recently needed to create a few Java
classes from XSD schema. "Well," I thought, "JAXB with its integrated XJC is your
friend!" And so it is, but you might have to dig a little deeper. 
</p>
        <p>
The problem I was facing was a schema that had references to <a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">WS-Security</a>, <a href="http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd">XML
Encryption</a> and<a href="ttp://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"> XML
Signature</a>. As such, it imported all these schemas from the web using &lt;<font face="Courier New">xsd:import
namespace="..." schemaLocation="http://..." /&gt;</font>. Since <font face="Courier New">xjc</font> is
pretty flexible, accessing these schemas on the web was a charm, even through the
firewall. After all, this is much better than downloading all the referenced schemas
(and all schemas they reference) and edit the imports to point to the right location
in the file system. 
<br /></p>
        <p>
Well, not so quick. In their infinite wisdom and foresight, the schema developers
at OASIS and W3C decided to use <i>different</i> schema locations for XML Dsig. They
reference the same schema (with identical namespace, obviously), but import through
different <font face="Courier New">schemaLocation</font> URIs. That confuses <font face="Courier New">xjc </font>to
no end, since it detects a re-definition of the same object and gives up. 
<br /></p>
        <p>
In order to resolve this problem, you can create an XML Catalog, that allows you to
rewrite (or redefine) URLs referenced in you schema. Here is an example: 
<br /></p>
        <font face="Courier New">
          <p>
            <span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;">&lt;?xml
version=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"1.0"</span>?&gt;<br />
&lt;catalog xmlns=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"urn:oasis:names:tc:entity:xmlns:xml:catalog"</span>&gt;<br />
  &lt;system<br />
      systemId=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"</span><br />
      uri=<span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;">"http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"</span> /&gt;<br />
&lt;/catalog&gt;</span>
          </p>
        </font>
        <p>
This simple catalog redefines the URI used by the XML encryption schema to point to
the one used by OASIS. The <a href="http://www.oasis-open.org/committees/download.php/14809/xml-catalogs.html">XML
Catalog</a> specification provides many more options, and it is good to know that <font face="Courier New">xjc</font> supports
this. 
<br /></p>
        <p>
While this is quite simple, I found it relatively hard to find concrete examples on
how to use this mechanism. 
</p>
        <p>
          <b>tag:</b>
          <a href="http://www.technorati.com/tag/XML%20Catalog" rel="tag">XML Catalog</a>, <a href="http://www.technorati.com/tag/XML%20Schema" rel="tag">XML
Schema</a>, <a href="http://www.technorati.com/tag/XSD" rel="tag">XSD</a>, <a href="http://www.technorati.com/tag/JAXB" rel="tag">JAXB</a>, <a href="http://www.technorati.com/tag/XJC" rel="tag">XJC</a>, <a href="http://www.technorati.com/tag/Data%20Binding" rel="tag">Data
Binding</a></p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=ab517295-35f4-4cf2-9035-c6c96343f238" />
      </body>
      <title>Compiling schemas with JAXB and xjc</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,ab517295-35f4-4cf2-9035-c6c96343f238.aspx</guid>
      <link>http://blog.beuchelt.org/2007/05/24/Compiling+Schemas+With+JAXB+And+Xjc.aspx</link>
      <pubDate>Thu, 24 May 2007 20:17:18 GMT</pubDate>
      <description>&lt;p&gt;
In order to go through some exercise here, I recently needed to create a few Java
classes from XSD schema. "Well," I thought, "JAXB with its integrated XJC is your
friend!" And so it is, but you might have to dig a little deeper. 
&lt;/p&gt;
&lt;p&gt;
The problem I was facing was a schema that had references to &lt;a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&gt;WS-Security&lt;/a&gt;, &lt;a href="http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd"&gt;XML
Encryption&lt;/a&gt; and&lt;a href="ttp://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&gt; XML
Signature&lt;/a&gt;. As such, it imported all these schemas from the web using &amp;lt;&lt;font face="Courier New"&gt;xsd:import
namespace="..." schemaLocation="http://..." /&amp;gt;&lt;/font&gt;. Since &lt;font face="Courier New"&gt;xjc&lt;/font&gt; is
pretty flexible, accessing these schemas on the web was a charm, even through the
firewall. After all, this is much better than downloading all the referenced schemas
(and all schemas they reference) and edit the imports to point to the right location
in the file system. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Well, not so quick. In their infinite wisdom and foresight, the schema developers
at OASIS and W3C decided to use &lt;i&gt;different&lt;/i&gt; schema locations for XML Dsig. They
reference the same schema (with identical namespace, obviously), but import through
different &lt;font face="Courier New"&gt;schemaLocation&lt;/font&gt; URIs. That confuses &lt;font face="Courier New"&gt;xjc &lt;/font&gt;to
no end, since it detects a re-definition of the same object and gives up. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
In order to resolve this problem, you can create an XML Catalog, that allows you to
rewrite (or redefine) URLs referenced in you schema. Here is an example: 
&lt;br&gt;
&lt;/p&gt;
&lt;font face="Courier New"&gt;
&lt;p&gt;
&lt;span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"&gt;&amp;lt;?xml
version=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"1.0"&lt;/span&gt;?&amp;gt;&lt;br&gt;
&amp;lt;catalog xmlns=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"urn:oasis:names:tc:entity:xmlns:xml:catalog"&lt;/span&gt;&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;system&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; systemId=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uri=&lt;span style="color: rgb(102, 102, 102); background-color: rgb(228, 228, 228); font-family: Courier New; font-size: 11px;"&gt;"http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"&lt;/span&gt; /&amp;gt;&lt;br&gt;
&amp;lt;/catalog&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/font&gt; 
&lt;p&gt;
This simple catalog redefines the URI used by the XML encryption schema to point to
the one used by OASIS. The &lt;a href="http://www.oasis-open.org/committees/download.php/14809/xml-catalogs.html"&gt;XML
Catalog&lt;/a&gt; specification provides many more options, and it is good to know that &lt;font face="Courier New"&gt;xjc&lt;/font&gt; supports
this. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
While this is quite simple, I found it relatively hard to find concrete examples on
how to use this mechanism. 
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;tag:&lt;/b&gt; &lt;a href="http://www.technorati.com/tag/XML%20Catalog" rel="tag"&gt;XML Catalog&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/XML%20Schema" rel="tag"&gt;XML
Schema&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/XSD" rel="tag"&gt;XSD&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/JAXB" rel="tag"&gt;JAXB&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/XJC" rel="tag"&gt;XJC&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Data%20Binding" rel="tag"&gt;Data
Binding&lt;/a&gt; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=ab517295-35f4-4cf2-9035-c6c96343f238" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,ab517295-35f4-4cf2-9035-c6c96343f238.aspx</comments>
      <category>Java</category>
      <category>Tips and Tricks</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=6a416f98-87b5-467d-bebb-02bb37bb3a23</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,6a416f98-87b5-467d-bebb-02bb37bb3a23.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,6a416f98-87b5-467d-bebb-02bb37bb3a23.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=6a416f98-87b5-467d-bebb-02bb37bb3a23</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Marina Fisher and I will be presenting
on AJAX interoperability here at JavaOne on Thursday at 5:30pm in Esplanade 302. We
will be covering jMaki, WCF, Silverlight/ASP.NET AJAX and Java REST API interoperability.
For more details, go <a href="http://www28.cplan.com/sb158/session_details.jsp?isid=285840&amp;ilocation_id=158-1&amp;ilanguage=english">here</a>.  
<br /><p><b>tag:</b><a href="http://www.technorati.com/tag/AJAX" rel="tag">AJAX</a>, <a href="http://www.technorati.com/tag/jMaki" rel="tag">jMaki</a>, <a href="http://www.technorati.com/tag/Silverlight" rel="tag">Silverlight</a>, <a href="http://www.technorati.com/tag/Interoperability" rel="tag">Interoperability</a></p><img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=6a416f98-87b5-467d-bebb-02bb37bb3a23" /></body>
      <title>Our JavaOne Session</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,6a416f98-87b5-467d-bebb-02bb37bb3a23.aspx</guid>
      <link>http://blog.beuchelt.org/2007/05/09/Our+JavaOne+Session.aspx</link>
      <pubDate>Wed, 09 May 2007 01:28:18 GMT</pubDate>
      <description>Marina Fisher and I will be presenting on AJAX interoperability here at JavaOne on Thursday at 5:30pm in Esplanade 302. We will be covering jMaki, WCF, Silverlight/ASP.NET AJAX and Java REST API interoperability. For more details, go &lt;a href="http://www28.cplan.com/sb158/session_details.jsp?isid=285840&amp;amp;ilocation_id=158-1&amp;amp;ilanguage=english"&gt;here&lt;/a&gt;.&amp;nbsp; 
&lt;br&gt;
&lt;p&gt;
&lt;b&gt;tag:&lt;/b&gt; &lt;a href="http://www.technorati.com/tag/AJAX" rel="tag"&gt;AJAX&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/jMaki" rel="tag"&gt;jMaki&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Interoperability" rel="tag"&gt;Interoperability&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=6a416f98-87b5-467d-bebb-02bb37bb3a23" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,6a416f98-87b5-467d-bebb-02bb37bb3a23.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=edd6354e-c21b-46bd-a916-04c55b60fcf9</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,edd6354e-c21b-46bd-a916-04c55b60fcf9.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,edd6354e-c21b-46bd-a916-04c55b60fcf9.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=edd6354e-c21b-46bd-a916-04c55b60fcf9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Now - here is something quite interesting about Java directions: I was only remotely
aware of JSR 277 - Java Modules - and took really no big interest in it. However,
this effort might solve some of the self-inflicted problems that I had to deal with
regarding OSGi bundles. 
</p>
        <p>
JSR 277 (which is currently in <a href="http://jcp.org/en/jsr/detail?id=277">early
draft</a>) aims at provinding a simple class versioning mechanism that allows some
of the features of <a href="http://jcp.org/en/jsr/detail?id=291">OSGi</a> bundles. <a href="http://weblogs.java.net/blog/stanleyh/archive/2006/10/jsr277_early_dr.html#more">Stanley
Ho</a> has written some explanatory material on this JSR - from what I could gather,
it should be - at least principally - not too hard for OSGi to deal with Java Modules.
Now if we only could get it working the other way round ...
</p>
        <b>tag:</b>
        <a href="http://www.technorati.com/tag/JSR%20277" rel="tag">JSR 277</a>, <a href="http://www.technorati.com/tag/OSGi" rel="tag">OSGi</a><img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=edd6354e-c21b-46bd-a916-04c55b60fcf9" /></body>
      <title>Bundles and Modules</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,edd6354e-c21b-46bd-a916-04c55b60fcf9.aspx</guid>
      <link>http://blog.beuchelt.org/2007/01/09/Bundles+And+Modules.aspx</link>
      <pubDate>Tue, 09 Jan 2007 00:26:37 GMT</pubDate>
      <description>&lt;p&gt;
Now - here is something quite interesting about Java directions: I was only remotely
aware of JSR 277 - Java Modules - and took really no big interest in it. However,
this effort might solve some of the self-inflicted problems that I had to deal with
regarding OSGi bundles. 
&lt;/p&gt;
&lt;p&gt;
JSR 277 (which is currently in &lt;a href="http://jcp.org/en/jsr/detail?id=277"&gt;early
draft&lt;/a&gt;) aims at provinding a simple class versioning mechanism that allows some
of the features of &lt;a href="http://jcp.org/en/jsr/detail?id=291"&gt;OSGi&lt;/a&gt; bundles. &lt;a href="http://weblogs.java.net/blog/stanleyh/archive/2006/10/jsr277_early_dr.html#more"&gt;Stanley
Ho&lt;/a&gt; has written some explanatory material on this JSR - from what I could gather,
it should be - at least principally - not too hard for OSGi to deal with Java Modules.
Now if we only could get it working the other way round ...
&lt;/p&gt;
&lt;b&gt;tag:&lt;/b&gt; &lt;a href="http://www.technorati.com/tag/JSR%20277" rel="tag"&gt;JSR 277&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/OSGi" rel="tag"&gt;OSGi&lt;/a&gt;&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=edd6354e-c21b-46bd-a916-04c55b60fcf9" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,edd6354e-c21b-46bd-a916-04c55b60fcf9.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=2efaf5ff-2ac6-4708-b010-c76fef544c70</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,2efaf5ff-2ac6-4708-b010-c76fef544c70.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,2efaf5ff-2ac6-4708-b010-c76fef544c70.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=2efaf5ff-2ac6-4708-b010-c76fef544c70</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
David Chappell made some interesting remarks on Java and NetFX during his TechEd session
and on his <a href="http://www.davidchappell.com/blog/">blog</a>. He compares the <a href="http://www.davidchappell.com/blog/2006/04/why-service-component-architecture-is">creation
of SCA</a> by IBM, BEA and some others to the creation of the .NET Framework in 2000. 
</p>
        <p>
I would put this somewhat differently: .NET in 2000 was a (somewhat late) reaction
to the success of the Java platform. As .NET evolved, itwent - essentially - through
the same issues as Java: 1.0 was essentially unusuable, 1.1 kinda worked, and 2.0
(or 1.2 in Java) is/was the first truely usable platform. In this sense, SCA is comparable
to the announcement of the Longhorn pillars, at best. 
<br /></p>
        <p>
In his TechEd session this morning, David was trying to compare SCA with WCF. He noted
that while WCF is in its final beta stages, SCA is just starting with the definition.
This is certainly true. However, there are other simplifying APIs (such as EJB3, <a href="http://dev2dev.bea.com/blog/mrowley/archive/2005/08/jbi_doesnt_host.html">JBI/OpenESB</a>,
WSIT) that have a similar architectural scope as WCF and are in final beta as well.
I strongly recommend reading the <a href="http://www.davidchappell.com/blog/2006/04/why-service-component-architecture-is#comments">comment
section</a> of David's blog article as well, since it contains a lot of interesting
pointers. 
<br /></p>
        <p>
        </p>
        <div style="border-style: solid; border-width: thin; padding: 3px 2%;">
          <a href="http://technorati.com/tag/WSIT" rel="tag">WSIT</a>
          <a href="http://technorati.com/tag/WCF" rel="tag">WCF</a>
          <a href="http://technorati.com/tag/SCA" rel="tag">SCA</a>
          <a href="http://technorati.com/tag/OpenESB" rel="tag">OpenESB</a>
          <a href="http://technorati.com/tag/EJB" rel="tag">EJB</a>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=2efaf5ff-2ac6-4708-b010-c76fef544c70" />
      </body>
      <title>David Chapell on NetFX and Java</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,2efaf5ff-2ac6-4708-b010-c76fef544c70.aspx</guid>
      <link>http://blog.beuchelt.org/2006/06/12/David+Chapell+On+NetFX+And+Java.aspx</link>
      <pubDate>Mon, 12 Jun 2006 14:06:00 GMT</pubDate>
      <description>&lt;p&gt;
David Chappell made some interesting remarks on Java and NetFX during his TechEd session
and on his &lt;a href="http://www.davidchappell.com/blog/"&gt;blog&lt;/a&gt;. He compares the &lt;a href="http://www.davidchappell.com/blog/2006/04/why-service-component-architecture-is"&gt;creation
of SCA&lt;/a&gt; by IBM, BEA and some others to the creation of the .NET Framework in 2000. 
&lt;/p&gt;
&lt;p&gt;
I would put this somewhat differently: .NET in 2000 was a (somewhat late) reaction
to the success of the Java platform. As .NET evolved, itwent - essentially - through
the same issues as Java: 1.0 was essentially unusuable, 1.1 kinda worked, and 2.0
(or 1.2 in Java) is/was the first truely usable platform. In this sense, SCA is comparable
to the announcement of the Longhorn pillars, at best. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
In his TechEd session this morning, David was trying to compare SCA with WCF. He noted
that while WCF is in its final beta stages, SCA is just starting with the definition.
This is certainly true. However, there are other simplifying APIs (such as EJB3, &lt;a href="http://dev2dev.bea.com/blog/mrowley/archive/2005/08/jbi_doesnt_host.html"&gt;JBI/OpenESB&lt;/a&gt;,
WSIT) that have a similar architectural scope as WCF and are in final beta as well.
I strongly recommend reading the &lt;a href="http://www.davidchappell.com/blog/2006/04/why-service-component-architecture-is#comments"&gt;comment
section&lt;/a&gt; of David's blog article as well, since it contains a lot of interesting
pointers. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="border-style: solid; border-width: thin; padding: 3px 2%;"&gt;&lt;a href="http://technorati.com/tag/WSIT" rel="tag"&gt;WSIT&lt;/a&gt; &lt;a href="http://technorati.com/tag/WCF" rel="tag"&gt;WCF&lt;/a&gt; &lt;a href="http://technorati.com/tag/SCA" rel="tag"&gt;SCA&lt;/a&gt; &lt;a href="http://technorati.com/tag/OpenESB" rel="tag"&gt;OpenESB&lt;/a&gt; &lt;a href="http://technorati.com/tag/EJB" rel="tag"&gt;EJB&lt;/a&gt; 
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=2efaf5ff-2ac6-4708-b010-c76fef544c70" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,2efaf5ff-2ac6-4708-b010-c76fef544c70.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Microsoft</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=0ca0ddba-8a5a-4bff-8e62-8fe51407f99c</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,0ca0ddba-8a5a-4bff-8e62-8fe51407f99c.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,0ca0ddba-8a5a-4bff-8e62-8fe51407f99c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=0ca0ddba-8a5a-4bff-8e62-8fe51407f99c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
At this time, most of you have probably heard about the Web Services Interoperability
Toolkit for Java (a.k.a. Project Tango), which enables maximal interoperability between
the upcoming Windows Communication Foundation on .NET and the Java world. If not,
go see <a href="http://wsit.dev.java.net/">http://wsit.dev.java.net/</a> ASAP. 
</p>
        <p>
WSIT will be tightly integrated with the <a href="https://glassfish.dev.java.net/">Glassfish
Sun Application Server</a>, which also features full FastInoset support. In fact,
Glassfish will - based on the HTTP header content type - automatically switch between
text+xml and application/fastinfoset.
</p>
        <p>
Now, with the WCF integration that FIFI will deliver, you will be able to configure
an Indigo client at deploy time (or even after) to use the by far more efficient FI
encoding. And this (re)configuration will only take a change in a single line in the
.config file of that client (assuming that you are using a CustomBinding in the first
place ;-)). 
<br /></p>
        <p>
So, at the end of the day, you can start you deployment of SOAP and RESTful Web Services
with angle brackets and as soon as you need a more efficient encoding, you switch
to FI by simply setting the right config parameter in the WCF client. Can it be less
painful?<br /></p>
        <p>
        </p>
        <div style="border-style:solid;border-width:thin;padding:3px 2%">
          <a href="http://technorati.com/tag/Interoperability" rel="tag">Interoperability</a>
          <a href="http://technorati.com/tag/Web+Services" rel="tag">Web
Services</a>
          <a href="http://technorati.com/tag/REST" rel="tag">REST</a>
          <a href="http://technorati.com/tag/Fast+Infoset" rel="tag">Fast
Infoset</a>
          <a href="http://technorati.com/tag/WCF" rel="tag">WCF</a>
          <a href="http://technorati.com/tag/Indigo" rel="tag">Indigo</a>
          <a href="http://technorati.com/tag/WSIT" rel="tag">WSIT</a>
          <a href="http://technorati.com/tag/FIFI" rel="tag">FIFI</a>
        </div>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=0ca0ddba-8a5a-4bff-8e62-8fe51407f99c" />
      </body>
      <title>WSIT, WCF, and FastInfoset</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,0ca0ddba-8a5a-4bff-8e62-8fe51407f99c.aspx</guid>
      <link>http://blog.beuchelt.org/2006/05/19/WSIT+WCF+And+FastInfoset.aspx</link>
      <pubDate>Fri, 19 May 2006 18:20:26 GMT</pubDate>
      <description>&lt;p&gt;
At this time, most of you have probably heard about the Web Services Interoperability
Toolkit for Java (a.k.a. Project Tango), which enables maximal interoperability between
the upcoming Windows Communication Foundation on .NET and the Java world. If not,
go see &lt;a href="http://wsit.dev.java.net/"&gt;http://wsit.dev.java.net/&lt;/a&gt; ASAP. 
&lt;/p&gt;
&lt;p&gt;
WSIT will be tightly integrated with the &lt;a href="https://glassfish.dev.java.net/"&gt;Glassfish
Sun Application Server&lt;/a&gt;, which also features full FastInoset support. In fact,
Glassfish will - based on the HTTP header content type - automatically switch between
text+xml and application/fastinfoset.
&lt;/p&gt;
&lt;p&gt;
Now, with the WCF integration that FIFI will deliver, you will be able to configure
an Indigo client at deploy time (or even after) to use the by far more efficient FI
encoding. And this (re)configuration will only take a change in a single line in the
.config file of that client (assuming that you are using a CustomBinding in the first
place ;-)). 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
So, at the end of the day, you can start you deployment of SOAP and RESTful Web Services
with angle brackets and as soon as you need a more efficient encoding, you switch
to FI by simply setting the right config parameter in the WCF client. Can it be less
painful?&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;div style="border-style:solid;border-width:thin;padding:3px 2%"&gt;&lt;a href="http://technorati.com/tag/Interoperability" rel="tag"&gt;Interoperability&lt;/a&gt; &lt;a href="http://technorati.com/tag/Web+Services" rel="tag"&gt;Web
Services&lt;/a&gt; &lt;a href="http://technorati.com/tag/REST" rel="tag"&gt;REST&lt;/a&gt; &lt;a href="http://technorati.com/tag/Fast+Infoset" rel="tag"&gt;Fast
Infoset&lt;/a&gt; &lt;a href="http://technorati.com/tag/WCF" rel="tag"&gt;WCF&lt;/a&gt; &lt;a href="http://technorati.com/tag/Indigo" rel="tag"&gt;Indigo&lt;/a&gt; &lt;a href="http://technorati.com/tag/WSIT" rel="tag"&gt;WSIT&lt;/a&gt; &lt;a href="http://technorati.com/tag/FIFI" rel="tag"&gt;FIFI&lt;/a&gt; 
&lt;/div&gt;
&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=0ca0ddba-8a5a-4bff-8e62-8fe51407f99c" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,0ca0ddba-8a5a-4bff-8e62-8fe51407f99c.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Microsoft</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=2b6486eb-5552-46aa-9ffc-6808620a8caf</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,2b6486eb-5552-46aa-9ffc-6808620a8caf.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,2b6486eb-5552-46aa-9ffc-6808620a8caf.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=2b6486eb-5552-46aa-9ffc-6808620a8caf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You might know that StAX (JSR 173) and the System.Xml.XmlReader/Writer classes are
quite similar, at the very least in scope. A very interesting difference (that gave
me a lot of grief in porting/implementing these APIs) is the way namespace attributes
are being treated. 
</p>
        <p>
In StAX, namespace attributes are typically dealt with through different calls than
those used for 'normal' attributes. This special treatment also comes with a table,
where defined namespaces can be stored and referenced. In .NET, a namespace attribute
is just another attribute, but they also have an XML namespace table, managing prefixes
and scope. 
</p>
        <p>
While the differences are only significant on layer 8 and 9 of the ISO stack (politics
and religion), porting from one to the other API is quite interesting and - at times
- forces you to think about the infoset in new ways. 
<br /></p>
        <p>
        </p>
        <div style="border-style:solid;border-width:thin;padding:3px 2%">
          <a href="http://technorati.com/tag/Java" rel="tag">Java</a>
          <a href="http://technorati.com/tag/XML" rel="tag">XML</a>
          <a href="http://technorati.com/tag/.NET" rel="tag">.NET</a>
          <a href="http://technorati.com/tag/StAX" rel="tag">StAX</a>
          <a href="http://technorati.com/tag/JSR+173" rel="tag">JSR
173</a>
          <a href="http://technorati.com/tag/XmlReader" rel="tag">XmlReader</a>
          <a href="http://technorati.com/tag/XmlWriter" rel="tag">XmlWriter</a>
        </div>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=2b6486eb-5552-46aa-9ffc-6808620a8caf" />
      </body>
      <title>Interesting differences between StAX and XmlReader/Writer</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,2b6486eb-5552-46aa-9ffc-6808620a8caf.aspx</guid>
      <link>http://blog.beuchelt.org/2006/05/06/Interesting+Differences+Between+StAX+And+XmlReaderWriter.aspx</link>
      <pubDate>Sat, 06 May 2006 16:13:27 GMT</pubDate>
      <description>&lt;p&gt;
You might know that StAX (JSR 173) and the System.Xml.XmlReader/Writer classes are
quite similar, at the very least in scope. A very interesting difference (that gave
me a lot of grief in porting/implementing these APIs) is the way namespace attributes
are being treated. 
&lt;/p&gt;
&lt;p&gt;
In StAX, namespace attributes are typically dealt with through different calls than
those used for 'normal' attributes. This special treatment also comes with a table,
where defined namespaces can be stored and referenced. In .NET, a namespace attribute
is just another attribute, but they also have an XML namespace table, managing prefixes
and scope. 
&lt;/p&gt;
&lt;p&gt;
While the differences are only significant on layer 8 and 9 of the ISO stack (politics
and religion), porting from one to the other API is quite interesting and - at times
- forces you to think about the infoset in new ways. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;div style="border-style:solid;border-width:thin;padding:3px 2%"&gt;&lt;a href="http://technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt; &lt;a href="http://technorati.com/tag/XML" rel="tag"&gt;XML&lt;/a&gt; &lt;a href="http://technorati.com/tag/.NET" rel="tag"&gt;.NET&lt;/a&gt; &lt;a href="http://technorati.com/tag/StAX" rel="tag"&gt;StAX&lt;/a&gt; &lt;a href="http://technorati.com/tag/JSR+173" rel="tag"&gt;JSR
173&lt;/a&gt; &lt;a href="http://technorati.com/tag/XmlReader" rel="tag"&gt;XmlReader&lt;/a&gt; &lt;a href="http://technorati.com/tag/XmlWriter" rel="tag"&gt;XmlWriter&lt;/a&gt; 
&lt;/div&gt;
&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=2b6486eb-5552-46aa-9ffc-6808620a8caf" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,2b6486eb-5552-46aa-9ffc-6808620a8caf.aspx</comments>
      <category>General</category>
      <category>Interoperability</category>
      <category>Java</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=73132e71-199f-48fd-8abe-855c1375fd18</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,73132e71-199f-48fd-8abe-855c1375fd18.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,73132e71-199f-48fd-8abe-855c1375fd18.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=73132e71-199f-48fd-8abe-855c1375fd18</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
On May 17, 2006 at 9:30pm <a href="http://blogs.sun.com/roller/page/sandoz">Paul</a>, <a href="http://weblogs.java.net/blog/spericas/">Santiago</a> and
I will host a BOF on <a href="https://www28.cplan.com/javaone06_cv_124_1/session_details.jsp?isid=277535&amp;ilocation_id=124-1&amp;ilanguage=english">"Project
FIFI - Bridging the Interoperability Chasm"</a>. FIFI (Fast Infoset For Indigo) is
a prototype project that aims at bringing the <a href="https://fi.dev.java.net/">Fast
Infoset</a><a href="http://www.itu.int/rec/T-REC-X.891/en">ITU-T/ISO standard</a> to
the .NET 2.0 platform and furthermore integrating it with the upcoming Windows Communication
Framework (WCF - aka Indigo).
</p>
        <p>
BOF 2535: Project FIFI - Bridging the Interoperability Chasm<br />
Track: Web Tier 
<br />
Room: Hall E 135 
<br />
Date: 17-MAY-06 
<br />
Start Time: 21:30 
<br /></p>
        <p>
Stay tuned for more. 
</p>
        <p>
        </p>
        <div style="border-style: solid; border-width: thin; padding: 3px 2%;">
          <a href="http://technorati.com/tag/Interoperability" rel="tag">Interoperability</a>
          <a href="http://technorati.com/tag/Standards" rel="tag">Standards</a>
          <a href="http://technorati.com/tag/Web+Services" rel="tag">Web
Services</a>
          <a href="http://technorati.com/tag/Indigo" rel="tag">Indigo</a>
          <a href="http://technorati.com/tag/WCF" rel="tag">WCF</a>
          <a href="http://technorati.com/tag/Fast+Infoset" rel="tag">Fast
Infoset</a>
          <a href="http://technorati.com/tag/FIFI" rel="tag">FIFI</a>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=73132e71-199f-48fd-8abe-855c1375fd18" />
      </body>
      <title>Project FIFI (Fast Infoset For Indigo)</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,73132e71-199f-48fd-8abe-855c1375fd18.aspx</guid>
      <link>http://blog.beuchelt.org/2006/04/18/Project+FIFI+Fast+Infoset+For+Indigo.aspx</link>
      <pubDate>Tue, 18 Apr 2006 16:15:11 GMT</pubDate>
      <description>&lt;p&gt;
On May 17, 2006 at 9:30pm &lt;a href="http://blogs.sun.com/roller/page/sandoz"&gt;Paul&lt;/a&gt;, &lt;a href="http://weblogs.java.net/blog/spericas/"&gt;Santiago&lt;/a&gt; and
I will host a BOF on &lt;a href="https://www28.cplan.com/javaone06_cv_124_1/session_details.jsp?isid=277535&amp;amp;ilocation_id=124-1&amp;amp;ilanguage=english"&gt;"Project
FIFI - Bridging the Interoperability Chasm"&lt;/a&gt;. FIFI (Fast Infoset For Indigo) is
a prototype project that aims at bringing the &lt;a href="https://fi.dev.java.net/"&gt;Fast
Infoset&lt;/a&gt; &lt;a href="http://www.itu.int/rec/T-REC-X.891/en"&gt;ITU-T/ISO standard&lt;/a&gt; to
the .NET 2.0 platform and furthermore integrating it with the upcoming Windows Communication
Framework (WCF - aka Indigo).
&lt;/p&gt;
&lt;p&gt;
BOF 2535: Project FIFI - Bridging the Interoperability Chasm&lt;br&gt;
Track: Web Tier 
&lt;br&gt;
Room: Hall E 135 
&lt;br&gt;
Date: 17-MAY-06 
&lt;br&gt;
Start Time: 21:30 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Stay tuned for more. 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="border-style: solid; border-width: thin; padding: 3px 2%;"&gt;&lt;a href="http://technorati.com/tag/Interoperability" rel="tag"&gt;Interoperability&lt;/a&gt; &lt;a href="http://technorati.com/tag/Standards" rel="tag"&gt;Standards&lt;/a&gt; &lt;a href="http://technorati.com/tag/Web+Services" rel="tag"&gt;Web
Services&lt;/a&gt; &lt;a href="http://technorati.com/tag/Indigo" rel="tag"&gt;Indigo&lt;/a&gt; &lt;a href="http://technorati.com/tag/WCF" rel="tag"&gt;WCF&lt;/a&gt; &lt;a href="http://technorati.com/tag/Fast+Infoset" rel="tag"&gt;Fast
Infoset&lt;/a&gt; &lt;a href="http://technorati.com/tag/FIFI" rel="tag"&gt;FIFI&lt;/a&gt; 
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=73132e71-199f-48fd-8abe-855c1375fd18" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,73132e71-199f-48fd-8abe-855c1375fd18.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=a003755a-410a-453c-bad1-27beed187ff5</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,a003755a-410a-453c-bad1-27beed187ff5.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,a003755a-410a-453c-bad1-27beed187ff5.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=a003755a-410a-453c-bad1-27beed187ff5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Fresh from Washington state: <a href="http://hyperthink.net/blog/2006/04/12/Checkin+1383521.aspx">Indigo
to support POX in TextEncoder</a></p>
        <p>
Combine this with <a href="http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_2.html">Marc
Hadley's adventures with REST in JAX-WS</a>, and you might actually get something
interoperable .. ;-)
</p>
        <p>
        </p>
        <div style="border-style: solid; border-width: thin; padding: 3px 2%;">
          <a href="http://technorati.com/tag/Interoperability" rel="tag">Interoperability</a>
          <a href="http://technorati.com/tag/Web+Services" rel="tag">Web
Services</a>
          <a href="http://technorati.com/tag/POX" rel="tag">POX</a>
          <a href="http://technorati.com/tag/Java" rel="tag">Java</a>
          <a href="http://technorati.com/tag/Indigo" rel="tag">Indigo</a>
          <a href="http://technorati.com/tag/WCF" rel="tag">WCF</a>
          <a href="http://technorati.com/tag/JAX-WS" rel="tag">JAX-WS</a>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=a003755a-410a-453c-bad1-27beed187ff5" />
      </body>
      <title>News on Indigo, POX, and JAX-WS</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,a003755a-410a-453c-bad1-27beed187ff5.aspx</guid>
      <link>http://blog.beuchelt.org/2006/04/13/News+On+Indigo+POX+And+JAXWS.aspx</link>
      <pubDate>Thu, 13 Apr 2006 12:40:01 GMT</pubDate>
      <description>&lt;p&gt;
Fresh from Washington state: &lt;a href="http://hyperthink.net/blog/2006/04/12/Checkin+1383521.aspx"&gt;Indigo
to support POX in TextEncoder&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Combine this with &lt;a href="http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_2.html"&gt;Marc
Hadley's adventures with REST in JAX-WS&lt;/a&gt;, and you might actually get something
interoperable .. ;-)
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="border-style: solid; border-width: thin; padding: 3px 2%;"&gt;&lt;a href="http://technorati.com/tag/Interoperability" rel="tag"&gt;Interoperability&lt;/a&gt; &lt;a href="http://technorati.com/tag/Web+Services" rel="tag"&gt;Web
Services&lt;/a&gt; &lt;a href="http://technorati.com/tag/POX" rel="tag"&gt;POX&lt;/a&gt; &lt;a href="http://technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt; &lt;a href="http://technorati.com/tag/Indigo" rel="tag"&gt;Indigo&lt;/a&gt; &lt;a href="http://technorati.com/tag/WCF" rel="tag"&gt;WCF&lt;/a&gt; &lt;a href="http://technorati.com/tag/JAX-WS" rel="tag"&gt;JAX-WS&lt;/a&gt; 
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=a003755a-410a-453c-bad1-27beed187ff5" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,a003755a-410a-453c-bad1-27beed187ff5.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Microsoft</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=9e605608-869f-4e98-87dd-3d9eb23bf40c</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,9e605608-869f-4e98-87dd-3d9eb23bf40c.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,9e605608-869f-4e98-87dd-3d9eb23bf40c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=9e605608-869f-4e98-87dd-3d9eb23bf40c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today, Sun <a href="http://www.sun.com/smi/Press/sunflash/2006-04/sunflash.20060411.1.xml">opens
their Enterprise tools</a> to the <a href="http://netbeans.org">NetBeans</a> community.
This is really good news for Java developers, since they now get a truly modular,
extensible, easy-to-use and easy-to-install IDE, that features: 
</p>
        <ul>
          <li>
UML modelers (both ways) 
<br /></li>
          <li>
XML tools</li>
          <li>
SOAP orchestration<br /></li>
        </ul>
        <p>
        </p>
        <p>
This is obviously in addtition to the Matisse UI builder, the profiler, the J2ME development
tools etc. Also, the NetBeans platform is now also being used for non-development
applications (see e.g. the <a href="https://humaitrader.dev.java.net/">Stocktrader
application</a>).
</p>
        <p>
        </p>
        <div style="border-style: solid; border-width: thin; padding: 3px 2%;">
          <a href="http://technorati.com/tag/NetBeans" rel="tag">NetBeans</a>
          <a href="http://technorati.com/tag/Java" rel="tag">Java</a>
          <a href="http://technorati.com/tag/XML" rel="tag">XML</a>
          <a href="http://technorati.com/tag/Web+Services" rel="tag">Web
Services</a>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=9e605608-869f-4e98-87dd-3d9eb23bf40c" />
      </body>
      <title>Sun Enterprise Studio Open Sourced</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,9e605608-869f-4e98-87dd-3d9eb23bf40c.aspx</guid>
      <link>http://blog.beuchelt.org/2006/04/12/Sun+Enterprise+Studio+Open+Sourced.aspx</link>
      <pubDate>Wed, 12 Apr 2006 14:37:54 GMT</pubDate>
      <description>&lt;p&gt;
Today, Sun &lt;a href="http://www.sun.com/smi/Press/sunflash/2006-04/sunflash.20060411.1.xml"&gt;opens
their Enterprise tools&lt;/a&gt; to the &lt;a href="http://netbeans.org"&gt;NetBeans&lt;/a&gt; community.
This is really good news for Java developers, since they now get a truly modular,
extensible, easy-to-use and easy-to-install IDE, that features: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
UML modelers (both ways) 
&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
XML tools&lt;/li&gt;
&lt;li&gt;
SOAP orchestration&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
This is obviously in addtition to the Matisse UI builder, the profiler, the J2ME development
tools etc. Also, the NetBeans platform is now also being used for non-development
applications (see e.g. the &lt;a href="https://humaitrader.dev.java.net/"&gt;Stocktrader
application&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="border-style: solid; border-width: thin; padding: 3px 2%;"&gt;&lt;a href="http://technorati.com/tag/NetBeans" rel="tag"&gt;NetBeans&lt;/a&gt; &lt;a href="http://technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt; &lt;a href="http://technorati.com/tag/XML" rel="tag"&gt;XML&lt;/a&gt; &lt;a href="http://technorati.com/tag/Web+Services" rel="tag"&gt;Web
Services&lt;/a&gt; 
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=9e605608-869f-4e98-87dd-3d9eb23bf40c" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,9e605608-869f-4e98-87dd-3d9eb23bf40c.aspx</comments>
      <category>General</category>
      <category>Java</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=eb9a43d7-2faf-41df-af88-4220c27b04dc</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,eb9a43d7-2faf-41df-af88-4220c27b04dc.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,eb9a43d7-2faf-41df-af88-4220c27b04dc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=eb9a43d7-2faf-41df-af88-4220c27b04dc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Marc is working on a nice and *clean* <a href="http://weblogs.java.net/blog/mhadley/archive/2005/05/wadl_revision.html">web
application description language</a> (WADL) that can be used for non-SOAP web services
as well. 
</p>
        <p>
For an introduction to RESTful web services with JAX-WS, please take a look at his <a href="http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_2.html">recent
post</a>. It might be an interesting excercise to get this to work with Clemens' <a href="http://friends.newtelligence.net/clemensv/PermaLink,guid,33c5fdc9-bb07-4c7b-bab7-9726a15c5b2c.aspx">RESTful
extension for WCF</a>. 
<br /></p>
        <div style="border-style: dotted; border-width: thin; padding: 3px 2%;">
          <a href="http://technorati.com/tag/Java" rel="tag">Java</a>
          <a href="http://technorati.com/tag/Web+Services" rel="tag">Web
Services</a>
          <a href="http://technorati.com/tag/REST" rel="tag">REST</a>
        </div>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=eb9a43d7-2faf-41df-af88-4220c27b04dc" />
      </body>
      <title>WADL and REST with JAX-WS</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,eb9a43d7-2faf-41df-af88-4220c27b04dc.aspx</guid>
      <link>http://blog.beuchelt.org/2006/04/04/WADL+And+REST+With+JAXWS.aspx</link>
      <pubDate>Tue, 04 Apr 2006 14:53:26 GMT</pubDate>
      <description>&lt;p&gt;
Marc is working on a nice and *clean* &lt;a href="http://weblogs.java.net/blog/mhadley/archive/2005/05/wadl_revision.html"&gt;web
application description language&lt;/a&gt; (WADL) that can be used for non-SOAP web services
as well. 
&lt;/p&gt;
&lt;p&gt;
For an introduction to RESTful web services with JAX-WS, please take a look at his &lt;a href="http://weblogs.java.net/blog/mhadley/archive/2006/03/restful_web_ser_2.html"&gt;recent
post&lt;/a&gt;. It might be an interesting excercise to get this to work with Clemens' &lt;a href="http://friends.newtelligence.net/clemensv/PermaLink,guid,33c5fdc9-bb07-4c7b-bab7-9726a15c5b2c.aspx"&gt;RESTful
extension for WCF&lt;/a&gt;. 
&lt;br&gt;
&lt;/p&gt;
&lt;div style="border-style: dotted; border-width: thin; padding: 3px 2%;"&gt;&lt;a href="http://technorati.com/tag/Java" rel="tag"&gt;Java&lt;/a&gt; &lt;a href="http://technorati.com/tag/Web+Services" rel="tag"&gt;Web
Services&lt;/a&gt; &lt;a href="http://technorati.com/tag/REST" rel="tag"&gt;REST&lt;/a&gt; 
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=eb9a43d7-2faf-41df-af88-4220c27b04dc" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,eb9a43d7-2faf-41df-af88-4220c27b04dc.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=138cc078-70e7-40a9-814a-069c7efea760</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,138cc078-70e7-40a9-814a-069c7efea760.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,138cc078-70e7-40a9-814a-069c7efea760.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=138cc078-70e7-40a9-814a-069c7efea760</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://blogs.sun.com/roller/page/superpat?entry=infocard_from_java">Pat</a> found <a href="http://xmldap.blogspot.com/2006/03/simple-java-based-relying-party.html">this
interesting article by Chuck</a>. It is on a Java implementation of the InfoCard protocol. 
<br /><br />
Tags: <a href="http://technorati.com/tag/InfoCard">InfoCard</a>, <a href="http://technorati.com/tag/Interoperability">Interoperability</a>, <a href="http://technorati.com/tag/Java">Java</a>, <a href="http://technorati.com/tag/Identity">Identity</a><br /><p></p><img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=138cc078-70e7-40a9-814a-069c7efea760" /></body>
      <title>Java InfoCard</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,138cc078-70e7-40a9-814a-069c7efea760.aspx</guid>
      <link>http://blog.beuchelt.org/2006/04/03/Java+InfoCard.aspx</link>
      <pubDate>Mon, 03 Apr 2006 16:14:36 GMT</pubDate>
      <description>&lt;a href="http://blogs.sun.com/roller/page/superpat?entry=infocard_from_java"&gt;Pat&lt;/a&gt; found &lt;a href="http://xmldap.blogspot.com/2006/03/simple-java-based-relying-party.html"&gt;this
interesting article by Chuck&lt;/a&gt;. It is on a Java implementation of the InfoCard protocol. 
&lt;br&gt;
&lt;br&gt;
Tags: &lt;a href="http://technorati.com/tag/InfoCard"&gt;InfoCard&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Interoperability"&gt;Interoperability&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Java"&gt;Java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Identity"&gt;Identity&lt;/a&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=138cc078-70e7-40a9-814a-069c7efea760" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,138cc078-70e7-40a9-814a-069c7efea760.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Security</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=373e9ab3-7c37-4fe6-be85-76e2565c5de3</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,373e9ab3-7c37-4fe6-be85-76e2565c5de3.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,373e9ab3-7c37-4fe6-be85-76e2565c5de3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=373e9ab3-7c37-4fe6-be85-76e2565c5de3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">While XUL is definitively an interesting
alternative to XAML for creating application through XML, Java now has its own: <a href="http://www.jaxxframework.org/wiki/Main_Page">JAXX</a><br /><br />
If you are interested in UI design, using XML in new ways or XAML (the markup language
for creating .NET applications in WPF), you might want to check out JAXX as well. 
<br /><br />
Tags: <a href="http://technorati.com/tag/JAXX">JAXX</a>, <a href="http://technorati.com/tag/Java">Java</a>, <a href="http://technorati.com/tag/XML">XML</a>, <a href="http://technorati.com/tag/XAML">XAML</a><br /><p></p><img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=373e9ab3-7c37-4fe6-be85-76e2565c5de3" /></body>
      <title>XAML for Java - Well, almost</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,373e9ab3-7c37-4fe6-be85-76e2565c5de3.aspx</guid>
      <link>http://blog.beuchelt.org/2006/04/03/XAML+For+Java+Well+Almost.aspx</link>
      <pubDate>Mon, 03 Apr 2006 16:00:46 GMT</pubDate>
      <description>While XUL is definitively an interesting alternative to XAML for creating application through XML, Java now has its own: &lt;a href="http://www.jaxxframework.org/wiki/Main_Page"&gt;JAXX&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
If you are interested in UI design, using XML in new ways or XAML (the markup language
for creating .NET applications in WPF), you might want to check out JAXX as well. 
&lt;br&gt;
&lt;br&gt;
Tags: &lt;a href="http://technorati.com/tag/JAXX"&gt;JAXX&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Java"&gt;Java&lt;/a&gt;, &lt;a href="http://technorati.com/tag/XML"&gt;XML&lt;/a&gt;, &lt;a href="http://technorati.com/tag/XAML"&gt;XAML&lt;/a&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=373e9ab3-7c37-4fe6-be85-76e2565c5de3" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,373e9ab3-7c37-4fe6-be85-76e2565c5de3.aspx</comments>
      <category>Java</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=2da5878a-b6c3-46b5-aadc-5d62d2a0089e</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,2da5878a-b6c3-46b5-aadc-5d62d2a0089e.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,2da5878a-b6c3-46b5-aadc-5d62d2a0089e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=2da5878a-b6c3-46b5-aadc-5d62d2a0089e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div>I you would like to understand better what Sun Microsystems is doing in the context
of Web Services interoperability, particularly with Microsoft's upcoming Windows Communication
Foundataion (formerly Codename Indigo), please take a look at Harold's article.
</div>
        <div> 
</div>
        <div>
          <a href="http://weblogs.java.net/blog/haroldcarr/archive/2006/02/an_overview_of_1.html#more">http://weblogs.java.net/blog/haroldcarr/archive/2006/02/an_overview_of_1.html#more</a>
        </div>
        <div> 
</div>
        <div>He has a very good graphic up there: 
</div>
        <div> 
</div>
        <div align="center">
          <img alt="" src="http://weblogs.java.net/blog/haroldcarr/SpecOverview_sm.png" align="middle" border="0" hspace="0" />
        </div>
        <div align="left">Technorati Tags : <a href="http://technorati.com/tag/Web" target="_blank" rel="tag">Web</a>, <a href="http://technorati.com/tag/Services" target="_blank" rel="tag">Services</a>, <a href="http://technorati.com/tag/Project" target="_blank" rel="tag">Project</a>, <a href="http://technorati.com/tag/Tango" target="_blank" rel="tag">Tango</a>, <a href="http://technorati.com/tag/Indigo" target="_blank" rel="tag">Indigo</a>, <a href="http://technorati.com/tag/WCF" target="_blank" rel="tag">WCF</a>, <a href="http://technorati.com/tag/Microsoft" target="_blank" rel="tag">Microsoft</a>, <a href="http://technorati.com/tag/Interoperability" target="_blank" rel="tag">Interoperability</a><!-- End Technorati Tags --></div>
        <div align="left"> 
</div>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=2da5878a-b6c3-46b5-aadc-5d62d2a0089e" />
      </body>
      <title>Information on Project Tango</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,2da5878a-b6c3-46b5-aadc-5d62d2a0089e.aspx</guid>
      <link>http://blog.beuchelt.org/2006/02/10/Information+On+Project+Tango.aspx</link>
      <pubDate>Fri, 10 Feb 2006 17:34:53 GMT</pubDate>
      <description>&lt;div&gt;I you would like to understand better what Sun Microsystems is doing in the context
of Web Services interoperability, particularly with Microsoft's upcoming Windows Communication
Foundataion (formerly Codename Indigo), please take a look at Harold's article.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;a href="http://weblogs.java.net/blog/haroldcarr/archive/2006/02/an_overview_of_1.html#more"&gt;http://weblogs.java.net/blog/haroldcarr/archive/2006/02/an_overview_of_1.html#more&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;He has a very good graphic up there: 
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div align="center"&gt;&lt;img alt="" src="http://weblogs.java.net/blog/haroldcarr/SpecOverview_sm.png" align="middle" border="0" hspace="0"&gt;
&lt;/div&gt;
&lt;div align="left"&gt;Technorati Tags : &lt;a href="http://technorati.com/tag/Web" target="_blank" rel="tag"&gt;Web&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Services" target="_blank" rel="tag"&gt;Services&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Project" target="_blank" rel="tag"&gt;Project&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Tango" target="_blank" rel="tag"&gt;Tango&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Indigo" target="_blank" rel="tag"&gt;Indigo&lt;/a&gt;, &lt;a href="http://technorati.com/tag/WCF" target="_blank" rel="tag"&gt;WCF&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Microsoft" target="_blank" rel="tag"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tag/Interoperability" target="_blank" rel="tag"&gt;Interoperability&lt;/a&gt;
&lt;!-- End Technorati Tags --&gt;
&lt;/div&gt;
&lt;div align="left"&gt;&amp;nbsp;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=2da5878a-b6c3-46b5-aadc-5d62d2a0089e" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,2da5878a-b6c3-46b5-aadc-5d62d2a0089e.aspx</comments>
      <category>General</category>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=979e20e6-ce61-4947-bcdf-fbf181d84337</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,979e20e6-ce61-4947-bcdf-fbf181d84337.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,979e20e6-ce61-4947-bcdf-fbf181d84337.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=979e20e6-ce61-4947-bcdf-fbf181d84337</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
It's a little geeky and doesn't carry much importance, but I just liked it from a
political point of view...
</p>
        <p>
NetBeans 5.0 Beta on Windows Vista September 2005 CTP: 
</p>
        <p>
          <img style="WIDTH: 755px; HEIGHT: 600px" height="926" src="http://beuchelt.blogdns.net:8080/content/binary/NB5.0 on LH.JPG" width="1231" border="0" />
        </p>
        <p>
I used the 1.5.0 update 5 JDK (from <a href="http://java.sun.com/">http://java.sun.com/</a>)
and the recently released NB installer ... worked like a charm and even the bugs are
the same as under 2003 and XP. The icons in the file chooser dialog were also matched
to the new Vista UI .. looked nice. 
</p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=979e20e6-ce61-4947-bcdf-fbf181d84337" />
      </body>
      <title>NetBeans on Vista</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,979e20e6-ce61-4947-bcdf-fbf181d84337.aspx</guid>
      <link>http://blog.beuchelt.org/2005/10/06/NetBeans+On+Vista.aspx</link>
      <pubDate>Thu, 06 Oct 2005 18:51:41 GMT</pubDate>
      <description>&lt;p&gt;
It's a little geeky and doesn't carry much importance, but I just liked it from a
political point of view...
&lt;/p&gt;
&lt;p&gt;
NetBeans 5.0 Beta on Windows Vista September 2005 CTP: 
&lt;/p&gt;
&lt;p&gt;
&lt;img style="WIDTH: 755px; HEIGHT: 600px" height=926 src="http://beuchelt.blogdns.net:8080/content/binary/NB5.0 on LH.JPG" width=1231 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
I used the 1.5.0 update 5 JDK (from &lt;a href="http://java.sun.com/"&gt;http://java.sun.com/&lt;/a&gt;)
and the recently released NB installer ... worked like a charm and even the bugs are
the same as under 2003 and XP. The icons in the file chooser dialog were also matched
to the new Vista UI .. looked nice. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=979e20e6-ce61-4947-bcdf-fbf181d84337" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,979e20e6-ce61-4947-bcdf-fbf181d84337.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Microsoft</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=ef00e41d-d34c-42df-b4ea-ff2dee8565f3</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,ef00e41d-d34c-42df-b4ea-ff2dee8565f3.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,ef00e41d-d34c-42df-b4ea-ff2dee8565f3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=ef00e41d-d34c-42df-b4ea-ff2dee8565f3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The new NetBeans web services client is quite nice. It is now almost as easy as with
Visual Studio to integrate a web service into your application: After pointing the
IDE to the WSDL, it generates the necessary proxies and you can then integrate them
by right clicking your methods in the source editor and add web operations: 
</p>
        <p>
          <img style="WIDTH: 785px; HEIGHT: 540px" height="335" src="http://beuchelt.blogdns.net:8080/content/binary/nb5.jpg" width="419" border="0" />
        </p>
        <p>
This works right out of the box with ASP.NET 2.0 web services, although it has some
issues with complex types (like e.g. an ArrayList). Those get deserialized as SOAPElements
which is workable, but requires some SOAP DOM coding. 
</p>
        <p>
Indigo (WCF) web services seem to have more issues - I guess this is related to Microsoft
splitting up the WSDL into some smaller files (wsdl1, xsd0, etc.)
</p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=ef00e41d-d34c-42df-b4ea-ff2dee8565f3" />
      </body>
      <title>NetBeans 5.0 &amp; Web Services</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,ef00e41d-d34c-42df-b4ea-ff2dee8565f3.aspx</guid>
      <link>http://blog.beuchelt.org/2005/09/30/NetBeans+50+Web+Services.aspx</link>
      <pubDate>Fri, 30 Sep 2005 14:09:18 GMT</pubDate>
      <description>&lt;p&gt;
The new NetBeans web services client is quite nice. It is now almost as easy as with
Visual Studio to integrate a web service into your application: After pointing the
IDE to the WSDL, it generates the necessary proxies and you can then integrate them
by right clicking your methods in the source editor and add web operations: 
&lt;/p&gt;
&lt;p&gt;
&lt;img style="WIDTH: 785px; HEIGHT: 540px" height=335 src="http://beuchelt.blogdns.net:8080/content/binary/nb5.jpg" width=419 border=0&gt;
&lt;/p&gt;
&lt;p&gt;
This works right out of the box with ASP.NET 2.0 web services, although it has some
issues with complex types (like e.g. an ArrayList). Those get deserialized as SOAPElements
which is workable, but requires some SOAP DOM coding. 
&lt;/p&gt;
&lt;p&gt;
Indigo (WCF) web services seem to have more issues - I guess this is related to Microsoft
splitting up the WSDL into some smaller files (wsdl1, xsd0, etc.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=ef00e41d-d34c-42df-b4ea-ff2dee8565f3" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,ef00e41d-d34c-42df-b4ea-ff2dee8565f3.aspx</comments>
      <category>Interoperability</category>
      <category>Java</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://blog.beuchelt.org/Trackback.aspx?guid=c5daa164-9db4-41a9-a12d-81f07f57e2f3</trackback:ping>
      <pingback:server>http://blog.beuchelt.org/pingback.aspx</pingback:server>
      <pingback:target>http://blog.beuchelt.org/PermaLink,guid,c5daa164-9db4-41a9-a12d-81f07f57e2f3.aspx</pingback:target>
      <dc:creator>Gerald Beuchelt</dc:creator>
      <wfw:comment>http://blog.beuchelt.org/CommentView,guid,c5daa164-9db4-41a9-a12d-81f07f57e2f3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.beuchelt.org/SyndicationService.asmx/GetEntryCommentsRss?guid=c5daa164-9db4-41a9-a12d-81f07f57e2f3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you are looking for a Java IDE, please take a look at the latest Netbeans 5.0 beta: <a href="http://www.netbeans.org/">http://www.netbeans.org/</a></p>
        <p>
Some of the new features: 
</p>
        <ul>
          <li>
Support for Tomcat, Sun Application Server, BEA WebLogic and JBoss 
</li>
          <li>
Massively improved GUI builder (Matisse) 
</li>
          <li>
Web Services client support built-in 
</li>
          <li>
Web Frameworks (JSF or Struts), including palette drag-and-drop</li>
        </ul>
        <p>
I will post more about this a little later. 
</p>
        <img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=c5daa164-9db4-41a9-a12d-81f07f57e2f3" />
      </body>
      <title>Netbeans 5.0 Beta is out</title>
      <guid isPermaLink="false">http://blog.beuchelt.org/PermaLink,guid,c5daa164-9db4-41a9-a12d-81f07f57e2f3.aspx</guid>
      <link>http://blog.beuchelt.org/2005/09/28/Netbeans+50+Beta+Is+Out.aspx</link>
      <pubDate>Wed, 28 Sep 2005 16:17:42 GMT</pubDate>
      <description>&lt;p&gt;
If you are looking for a Java IDE, please take a look at the latest Netbeans 5.0 beta: &lt;a href="http://www.netbeans.org/"&gt;http://www.netbeans.org/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Some of the new features: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Support for Tomcat, Sun Application Server, BEA WebLogic and JBoss 
&lt;li&gt;
Massively improved GUI builder (Matisse) 
&lt;li&gt;
Web Services client support built-in 
&lt;li&gt;
Web Frameworks (JSF or Struts), including palette drag-and-drop&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I will post more about this a little later. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.beuchelt.org/aggbug.ashx?id=c5daa164-9db4-41a9-a12d-81f07f57e2f3" /&gt;</description>
      <comments>http://blog.beuchelt.org/CommentView,guid,c5daa164-9db4-41a9-a12d-81f07f57e2f3.aspx</comments>
      <category>General</category>
      <category>Java</category>
    </item>
  </channel>
</rss>