<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1959408945184434193</id><updated>2012-01-30T10:42:49.483-08:00</updated><title type='text'>Apache Java UDDI aka jUDDI</title><subtitle type='html'>Blog for the &lt;a href="http://ws.apache.org/juddi/"&gt;Apache jUDDI&lt;/a&gt; project</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-2539318730666453330</id><published>2011-05-23T07:59:00.000-07:00</published><updated>2011-05-23T11:39:53.239-07:00</updated><title type='text'>Getting Started with UDDI v3</title><content type='html'>Nowadays it is very easy to get started with a UDDI v3 registry. Here are the steps to get started with jUDDI v3. &lt;br /&gt;&lt;br /&gt;1. From the &lt;a href="http://juddi.apache.org/releases.html"&gt;jUDDI releases page&lt;/a&gt;, download the latest jUDDI v3 tomcat-bundle, or if you want an additional browser then you can download the portal-bundle.&lt;br /&gt;&lt;br /&gt;2. Unzip the bundle and start the server by running the &lt;tomcat&gt;bin/start.sh (use the start.bat on windows).&lt;br /&gt;&lt;br /&gt;3. Since the UDDI v3 API is a WebServices API you can interact with it using tools like SoapUI. Visit &lt;a href="http://www.soapui.org/"&gt;http://www.soapui.org/&lt;/a&gt; to download SoapUI. Unzip the SoapUI.zip and start it using &lt;soapui&gt;/bin/soapui.sh.&lt;br /&gt;&lt;br /&gt;4. Open your browser to &lt;a href="http://localhost:8080/juddiv3"&gt;http://localhost:8080/juddiv3&lt;/a&gt;, and save the wsdls for the &lt;a href="http://localhost:8080/juddiv3/services/security?wsdl"&gt;security&lt;/a&gt;, &lt;a href="http://localhost:8080/juddiv3/services/publish?wsdl"&gt;publish&lt;/a&gt; and &lt;a href="http://localhost:8080/juddiv3/services/inquiry?wsdl"&gt;inquiry&lt;/a&gt; API.&lt;br /&gt;&lt;br /&gt;5. Import these WSDLs into a SoapUI project, and you are now ready to use the API. See also the demo to publish and delete a business.&lt;br /&gt;&lt;br /&gt;The demo is broken down into 2 parts, please scroll down for part 2 of the demo.&lt;br /&gt;&lt;br /&gt;&lt;object height="777" width="1108"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/CreateBusiness1.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/CreateBusiness1.swf" height="690" width="888"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="777" width="1108"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/CreateBusiness2.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/CreateBusiness2.swf" height="690" width="888"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-2539318730666453330?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/2539318730666453330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2011/05/getting-started-with-uddi-v3.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2539318730666453330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2539318730666453330'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2011/05/getting-started-with-uddi-v3.html' title='Getting Started with UDDI v3'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-7200681603508772298</id><published>2011-04-19T06:59:00.000-07:00</published><updated>2011-04-19T07:00:55.405-07:00</updated><title type='text'>WSDL to UDDI Mapping</title><content type='html'>I was just working on added the standard WSDL and BPEL to UDDI mappings to the the juddi-client, when I came across this article. Nice post Kasun.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kasunweranga.blogspot.com/2011/04/wsdl-to-uddi-mapping.html?spref=bl"&gt;Kasun&amp;#39;s Blog: WSDL to UDDI Mapping&lt;/a&gt;: "Introduction   Universal Description, Discovery and Integration (UDDI) is a platform independent, Extensible Markup Language (XML) based..."&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-7200681603508772298?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/7200681603508772298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2011/04/wsdl-to-uddi-mapping.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/7200681603508772298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/7200681603508772298'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2011/04/wsdl-to-uddi-mapping.html' title='WSDL to UDDI Mapping'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-3074959969269227141</id><published>2011-03-11T07:18:00.000-08:00</published><updated>2011-03-11T11:18:29.919-08:00</updated><title type='text'>How to register Java RMI services into jUDDI</title><content type='html'>The UDDI v3 specification speaks about 5 UDDI transport tModels to define the type of protocol a binding of a service is using. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://uddi.org/pubs/uddi_v3.htm#_Toc85908340"&gt;11.3.3 UDDI HTTP Transport&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uddi.org/pubs/uddi_v3.htm#_Toc85908341"&gt;11.3.4 UDDI SMTP Transport&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uddi.org/pubs/uddi_v3.htm#_Toc85908342"&gt;11.3.5 UDDI FTP Transport&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uddi.org/pubs/uddi_v3.htm#_Toc85908343"&gt;11.3.6 UDDI Fax Transport&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uddi.org/pubs/uddi_v3.htm#_Toc85908344"&gt;11.3.7 UDDI Telephone Transport&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The jUDDI project is adding out-of-the-box support for RMI. For an application written in Java we think it makes sense to support Java specific transports and starting at with the jUDDI-3.1 release we will support two more Transports: rmi and jndi-rmi, where the jndi-rmi transport is a special version of the rmi transport (We'll come back to that later).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Introduction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In UDDI, tModels are used to establish the existence of a variety of concepts and to point to their technical definitions. Transport tModels are referenced by service bindings to describe the type of transport used to invoke the service, either when other parts of the technical fingerprint (other tModels referenced in the same bindingTemplate) do not specify the transport used by the particular service binding, or when the service provider wants to explicitly call out the transport in the technical fingerprint so as to enable discovery. Transport tModels are frequently coupled with other tModels that describe more completely what the service does. For example, the RMI Transport tModel may be coupled with the SOAP Protocol tModel to indicate that a Web service communicates using SOAP over RMI. The RMI Transport tModel provides a means for designating that services transport messages using the RMI protocol.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Design Goals&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The RMI Transport tModel is provided to enable discovery of services that transport messages using the RMI protocol. This tModel can be used alone to provide a technical fingerprint for simple services that are accessed through HTTP when they might otherwise not have a tModel to reference in their bindingTemplates, or it can be used in conjunction with other protocol tModels to indicate the applicable transport when other parts of the technical fingerprint are ambiguous or silent with respect to the transport to use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI RMI Transport tModel Definition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Name:&lt;/span&gt; uddi-org:rmi&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Description:&lt;/span&gt; A Java service that uses RMI transport&lt;br /&gt;&lt;span style="font-style:italic;"&gt;UDDI Key (V3):&lt;/span&gt; uddi:uddi.org:transport:rmi&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Evolved V1,V2 format key:&lt;/span&gt; N/A&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Categorization:&lt;/span&gt; transport&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI RMI Transport&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI RMI Transport tModel Structure&lt;/span&gt;&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;tModel&lt;br /&gt; tModelKey="uddi:uddi.org:transport:http"&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;uddi-org:rmi&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;Java RMI based service registered to the Java Registry&amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;overviewDoc&amp;gt;&lt;br /&gt;    &amp;lt;overviewURL useType="text"&amp;gt;&lt;br /&gt;      http://juddi.apache.org/docs/3.0/userguide/html/chap-root_seed_data.html#sect-rmi&lt;br /&gt;    &amp;lt;/overviewURL&amp;gt; &lt;br /&gt;  &amp;lt;/overviewDoc&amp;gt; &lt;br /&gt;  &amp;lt;categoryBag&amp;gt;&lt;br /&gt;    &amp;lt;keyedReference keyName="uddi-org:types:transport"&lt;br /&gt;      keyValue="transport" &lt;br /&gt;      tModelKey="uddi:uddi.org:categorization:types"/&amp;gt; &lt;br /&gt;   &amp;lt;/categoryBag&amp;gt;&lt;br /&gt;&amp;lt;/tModel&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI RMI Transport Example of use&lt;/span&gt;&lt;br /&gt;The following is a typical bindingTemplate for a simple service that references the RMI Transport tModel:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;bindingTemplate bindingKey="uddi:...." serviceKey="uddi:...."&amp;gt; &lt;br /&gt;  &amp;lt;description xml:lang="en"&amp;gt;Buy from Bigfoot Breweries over&lt;br /&gt;    the Web&amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;accessPoint useType="endpoint"&lt;br /&gt;    rmi://hostname:1099/shopService&lt;br /&gt;  &amp;lt;/accessPoint&amp;gt;&lt;br /&gt;  &amp;lt;tModelInstanceDetails&amp;gt;&lt;br /&gt;    &amp;lt;tModelInstanceInfo &lt;br /&gt;      tModelKey="uddi:uddi.org:transport:rmi /&amp;gt;&lt;br /&gt;  &amp;lt;/tModelInstanceDetails&amp;gt;&lt;br /&gt;&amp;lt;/bindingTemplate&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI JNDI-RMI Transport tModel Definition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Name:&lt;/span&gt; uddi-org:jndi-rmi&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Description:&lt;/span&gt; A Java service that uses JNDI-RMI transport&lt;br /&gt;&lt;span style="font-style:italic;"&gt;UDDI Key (V3):&lt;/span&gt; uddi:uddi.org:transport:jndi-rmi&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Evolved V1,V2 format key:&lt;/span&gt; N/A&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Categorization:&lt;/span&gt; transport&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI RMI Transport&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI JNDI-RMI Transport tModel Structure&lt;/span&gt;&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;tModel&lt;br /&gt; tModelKey="uddi:uddi.org:transport:jndi-rmi"&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;uddi-org:jndi-rmi&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt; A Java RMI based service registered to a JNDI Registry &amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;overviewDoc&amp;gt;&lt;br /&gt;    &amp;lt;overviewURL useType="text"&amp;gt;&lt;br /&gt;      http://juddi.apache.org/docs/3.0/userguide/html/chap-root_seed_data.html#sect-jndi-rmi&lt;br /&gt;    &amp;lt;/overviewURL&amp;gt; &lt;br /&gt;  &amp;lt;/overviewDoc&amp;gt; &lt;br /&gt;  &amp;lt;categoryBag&amp;gt;&lt;br /&gt;    &amp;lt;keyedReference keyName="uddi-org:types:transport"&lt;br /&gt;      keyValue="transport" &lt;br /&gt;      tModelKey="uddi:uddi.org:categorization:types"/&amp;gt; &lt;br /&gt;   &amp;lt;/categoryBag&amp;gt;&lt;br /&gt;&amp;lt;/tModel&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UDDI JNDI-RMI Transport Example of use&lt;/span&gt;&lt;br /&gt;The following is a typical bindingTemplate for a simple service that references the JNDI-RMI Transport tModel. Optionally an InitialContext can be provided in the instanceParms, which should be used by the client at runtime to lookup the service as registered in that JNDI (somecontext/shopService) in this case:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;bindingTemplate bindingKey="uddi:...." serviceKey="uddi:...."&amp;gt; &lt;br /&gt;  &amp;lt;description xml:lang="en"&amp;gt;Buy from Bigfoot Breweries over&lt;br /&gt;    the Web&amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;accessPoint useType="endpoint"&lt;br /&gt;    jndi-rmi://somecontext/shopService&lt;br /&gt;  &amp;lt;/accessPoint&amp;gt;&lt;br /&gt;  &amp;lt;tModelInstanceDetails&amp;gt;&lt;br /&gt;    &amp;lt;tModelInstanceInfo &lt;br /&gt;      tModelKey="uddi:uddi.org:transport:jndi-rmi /&amp;gt;&lt;br /&gt;     &amp;lt;instanceParms&amp;gt;&lt;br /&gt;        &amp;lt;![CDATA[&lt;br /&gt;        &amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;        &amp;lt;initialContextInfo&amp;gt;&lt;br /&gt;            &amp;lt;contextProperty name="java.naming.factory.initial" &lt;br /&gt;                value="org.jnp.interfaces.NamingContextFactory"/&amp;gt;&lt;br /&gt;            &amp;lt;contextProperty name="java.naming.provider.url" &lt;br /&gt;                value="jnp://localhost:1099"/&amp;gt;&lt;br /&gt;            &amp;lt;contextProperty name="java.naming.factory.url.pkgs" &lt;br /&gt;                value="org.jboss.naming:org.jnp.interfaces"/&amp;gt;&lt;br /&gt;        &amp;lt;/initialContextInfo&amp;gt;&lt;br /&gt;        ]]&amp;gt;&lt;br /&gt;  &amp;lt;/tModelInstanceDetails&amp;gt;&lt;br /&gt;&amp;lt;/bindingTemplate&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Other UDDI registries will also be able to store RMI based services, as long as you add the &lt;br /&gt;'uddi:uddi.org:transport:rmi' and 'uddi:uddi.org:transport:jndi-rmi' tModels.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-3074959969269227141?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/3074959969269227141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2011/03/how-to-register-java-rmi-services-into.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/3074959969269227141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/3074959969269227141'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2011/03/how-to-register-java-rmi-services-into.html' title='How to register Java RMI services into jUDDI'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-2040248694361364814</id><published>2010-11-08T14:49:00.000-08:00</published><updated>2010-11-08T16:11:55.174-08:00</updated><title type='text'>RiftSaw integrates jUDDI for auto-registration of BPEL processes.</title><content type='html'>Recently I worked on &lt;a href="http://www.jboss.org/riftsaw"&gt;RiftSaw&lt;/a&gt;. &lt;a href="http://www.jboss.org/riftsaw"&gt;RiftSaw&lt;/a&gt; is the &lt;a href="http://ode.apache.org/"&gt;Apache ODE&lt;/a&gt; BPEL engine deployed to JBoss. The deployment code in RiftSaw allows BPEL processes to be deployed to the appserver in jar archives. When the BPEL process is deployed both the Service and its BindingTemplate (EndPoint information) are registered, and a partnerLinkChannel is created for each partnerLink. UDDI lookup will obtain the WSDL Endpoint from the UDDI and access this URL to obtain the WSDL straight from the Service. Upon undeployment the BindingTemplate is removed from the UDDI Registry. The Service is removed with the removal of the last BindingTemplate. For more information see the &lt;a href="both the Service and its BindingTemplate (EndPoint information) are registered, and a partnerLinkChannel is created for each partnerLink. UDDI lookup will obtain the WSDL Endpoint from the UDDI and access this URL to obtain the WSDL straight from the Service. Upon undeployment the BindingTemplate is removed from the UDDI Registry"&gt;RiftSaw User Guide&lt;/a&gt;. This functionality allows for dynamic endpoint discovery of BPEL Services. &lt;br /&gt;&lt;br /&gt;Most of the functionality developed for RiftSaw integration is part of the &lt;a href="http://juddi.apache.org/"&gt;jUDDI&lt;/a&gt; client code. If you are interested check out the functionality of the &lt;a href="http://juddi.apache.org/apidocs/org/apache/juddi/v3/client/config/UDDIClerk.html"&gt;UDDIClerk&lt;/a&gt;. Note that the same &lt;a href="http://juddi.apache.org/apidocs/org/apache/juddi/v3/client/config/UDDIClerk.html"&gt;UDDIClerk&lt;/a&gt; is used by the &lt;a href="http://apachejuddi.blogspot.com/2010/02/uddi-annotations-demo-to-register.html"&gt;UDDI Annotations&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-2040248694361364814?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/2040248694361364814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/11/riftsaw-integrates-juddi-for-auto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2040248694361364814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2040248694361364814'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/11/riftsaw-integrates-juddi-for-auto.html' title='RiftSaw integrates jUDDI for auto-registration of BPEL processes.'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-1505224831234666411</id><published>2010-10-12T06:26:00.000-07:00</published><updated>2010-10-12T06:32:07.092-07:00</updated><title type='text'>jUDDI TLP has new website location</title><content type='html'>Now that jUDDI has become a Top Level Project, our coordinates are changing. Most noticeably our site is now found at &lt;a href="http://juddi.apache.org"&gt;juddi.apache.org&lt;/a&gt; and Scout is found at &lt;a href="http://juddi.apache.org/scout/"&gt;juddi.apache.org/scout/&lt;/a&gt;. Our mailing lists have been migrated (along with the existing users and archives). We now have user@juddi.apache.org and dev@juddi.apache.org, for both jUDDI and Scout. Please update your bookmarks.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-1505224831234666411?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/1505224831234666411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/10/juddi-tlp-has-new-website-location.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1505224831234666411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1505224831234666411'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/10/juddi-tlp-has-new-website-location.html' title='jUDDI TLP has new website location'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-2952859290002416009</id><published>2010-10-01T12:40:00.001-07:00</published><updated>2010-10-01T13:09:52.476-07:00</updated><title type='text'>Short introduction to the jUDDI QA Process</title><content type='html'>We've recorded a short presentation about the jUDDI QA Process. We believe that there are three levels of testing:&lt;br /&gt;&lt;br /&gt;Unit tests&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Functionality&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Regression of components&lt;/li&gt;&lt;/ul&gt;Integration tests&lt;br /&gt;&lt;ul&gt;&lt;li&gt;System level functionality&lt;/li&gt;&lt;li&gt;Regression across components&lt;/li&gt;&lt;/ul&gt;QA tests&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Long running and repetitive, simulating real user load (memory leaks, performance)&lt;/li&gt;&lt;/ul&gt;For the QA tests we use XLT, and it it's simplest form the XLT agent and reporting engine are run on the same machine as the jUDDI server. However at true performance load testing multiple agents are deployed on dedicated machines.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fAUX2tnEInU/TKY6mPYxilI/AAAAAAAAAHk/3xtLbdACjws/s1600/Screen+shot+2010-10-01+at+3.44.25+PM.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 360px; height: 244px;" src="http://2.bp.blogspot.com/_fAUX2tnEInU/TKY6mPYxilI/AAAAAAAAAHk/3xtLbdACjws/s400/Screen+shot+2010-10-01+at+3.44.25+PM.png" alt="" id="BLOGGER_PHOTO_ID_5523166421656373842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Deployment Architecture showing how XLT is hooked up to load jUDDI.&lt;br /&gt;&lt;br /&gt;&lt;object width="1108" height="777"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/QAProcess.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/QAProcess.swf" width="903" height="767"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The slides of the presentation can be download &lt;a href="http://svn.apache.org/repos/asf/webservices/juddi/trunk/qa/QATestingProcess.pdf"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-2952859290002416009?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/2952859290002416009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/10/short-introduction-to-juddi-qa-process.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2952859290002416009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2952859290002416009'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/10/short-introduction-to-juddi-qa-process.html' title='Short introduction to the jUDDI QA Process'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fAUX2tnEInU/TKY6mPYxilI/AAAAAAAAAHk/3xtLbdACjws/s72-c/Screen+shot+2010-10-01+at+3.44.25+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-9200171584756173491</id><published>2010-09-11T14:43:00.001-07:00</published><updated>2010-09-11T14:53:30.542-07:00</updated><title type='text'>Hurray! jUDDI is now a TLP project!</title><content type='html'>I hope your summer has been good. Not too much coding went on but instead the big news is that recently a &lt;a href="http://markmail.org/message/yboktfwa7fjloxyx"&gt;vote&lt;/a&gt; passed to make &lt;a href="http://ws.apache.org/juddi/"&gt;jUDDI&lt;/a&gt; a Top Level Project (TLP). The ASF Board approved that both &lt;a href="http://ws.apache.org/juddi/"&gt;jUDDI&lt;/a&gt; and &lt;a href="http://ws.apache.org/scout/index.html"&gt;Scout&lt;/a&gt; will be combined into one project called "jUDDI". This is quite exciting and it is another major step for the project. It does mean that we will go through a bit of a reorganization though to move from subproject of &lt;a href="http://ws.apache.org/"&gt;Apache WS&lt;/a&gt; to the new TLP status.  Stay tuned!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-9200171584756173491?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/9200171584756173491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/09/hurray-juddi-is-now-tlp-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/9200171584756173491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/9200171584756173491'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/09/hurray-juddi-is-now-tlp-project.html' title='Hurray! jUDDI is now a TLP project!'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-5735979702969858458</id><published>2010-07-22T10:50:00.000-07:00</published><updated>2010-07-22T11:32:55.404-07:00</updated><title type='text'>jUDDI v3.0.3 Released</title><content type='html'>I'm proud to announce that the latest jUDDI code has been &lt;a href="http://ws.apache.org/juddi/releases.html"&gt;released as version 3.0.3&lt;/a&gt;. As always a huge thanks to all who were involved. This release addresses a number of issues reported by our users, and it adds some new functionality on XRegistration and case folding of Keys. All keys are now case folded to support databases that do not handle case sensitive comparisons. Note that this may lead to issues if you are upgrading from a previous version of jUDDI which contains non-case folded keys. It is therefore recommended to reinstall the database if possible.&lt;br /&gt;&lt;br /&gt;For a complete overview of the Release Notes see:&lt;br /&gt;&lt;a href="http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10401&amp;amp;styleName=Html&amp;amp;version=12314518"&gt;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10401&amp;amp;styleName=Html&amp;amp;version=12314518&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-5735979702969858458?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/5735979702969858458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/07/juddi-v303-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/5735979702969858458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/5735979702969858458'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/07/juddi-v303-released.html' title='jUDDI v3.0.3 Released'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-3855426865739961349</id><published>2010-07-22T06:48:00.000-07:00</published><updated>2010-07-22T06:55:25.719-07:00</updated><title type='text'>Simple Publish Example Demo</title><content type='html'>In a previous blog post we detailed how to &lt;a href="http://apachejuddi.blogspot.com/2010/02/simple-publishing-using-juddi-api.html"&gt;publish some UDDI entities&lt;/a&gt; to the Registry. &lt;br /&gt;&lt;br /&gt;In the following demo it is shown how to run the simple-publish example.&lt;br /&gt;&lt;br /&gt;&lt;object width="1108" height="777"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/simple-publish.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/simple-publish.swf" width="1108" height="777"&gt;&lt;br /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-3855426865739961349?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/3855426865739961349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/07/simple-publish-example-demo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/3855426865739961349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/3855426865739961349'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/07/simple-publish-example-demo.html' title='Simple Publish Example Demo'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-2288412878758798359</id><published>2010-05-18T06:44:00.000-07:00</published><updated>2010-05-19T11:08:04.540-07:00</updated><title type='text'>jUDDI v3.0.2 Released</title><content type='html'>I'm proud to announce that the latest jUDDI code has been &lt;a href="http://ws.apache.org/juddi/releases.html"&gt;released&lt;/a&gt; as version 3.0.2. A huge thanks to all who were involved. This was the first release using the release plugin and hosting the release on Nexus. It contains a slew of bug fixes and small enhancements. One enhancement is the ability to use multiple client (managers) on the same Classloader, which was important when inVM Transport between client and server  is used. Also we resolved what seemed memory leak issues with OpenJPA which turned out related to not running the enhancement phase correctly. This means that the bundles now use OpenJPA by default. Finally, we added a ton of &lt;a href="http://ws.apache.org/juddi/docs/3.0/userguide/html/index.html"&gt;documentation&lt;/a&gt;, and as our users are starting to use the new features we have already received some great addition documentation back.&lt;br /&gt;&lt;br /&gt;For a full report see the Release Notes - jUDDI - Version 3.0.2&lt;br /&gt;&lt;br /&gt;&lt;a href="http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10401&amp;amp;styleName=Html&amp;amp;version=12314553"&gt;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10401&amp;amp;styleName=Html&amp;amp;version=12314553&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-2288412878758798359?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/2288412878758798359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/05/juddi-v302-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2288412878758798359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/2288412878758798359'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/05/juddi-v302-released.html' title='jUDDI v3.0.2 Released'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-6648307567055347796</id><published>2010-02-25T11:11:00.000-08:00</published><updated>2010-03-01T10:00:39.858-08:00</updated><title type='text'>Simple Publishing Using the jUDDI API</title><content type='html'>One of the most common requests we get on the message board is “How do I publish a service using jUDDI?” This question holds a wide berth, as it can result anywhere from not understanding the UDDI data model, to confusion around how jUDDI is set up, to the order of steps required to publish artifacts in the registry, to general use of the API – and everything in between. This article will attempt to answer this “loaded” question and, while not going into too much detail, will hopefully clear some of the confusion about publishing into the jUDDI registry.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;font-size:100%;"  &gt;UDDI Data Model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Before you begin publishing artifacts, you need to know exactly how to break down your data into the UDDI model. This topic is covered extensively in the specification, particularly in section 3, so I only want to gloss over some for details. Readers interested in more extensive coverage should most definitely take a look at the UDDI specification.&lt;br /&gt;&lt;br /&gt;Below is a great diagram of the UDDI data model (taken directly from the specification):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_dfHA9UxAmM0/S4bRNJUru3I/AAAAAAAAAAk/JHirkbqoU88/s1600-h/uddi-core-datastructures.gif"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 194px;" src="http://4.bp.blogspot.com/_dfHA9UxAmM0/S4bRNJUru3I/AAAAAAAAAAk/JHirkbqoU88/s400/uddi-core-datastructures.gif" alt="" id="BLOGGER_PHOTO_ID_5442267223494998898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see, data is organized into a hierarchical pattern. Business Entities are at the top of the pyramid, they contain Business Services and those services in turn contain Binding Templates. TModels (or technical models) are a catch-all structure that can do anything from categorize one of the main entities, describe the technical details of a binding (ex. protocols, transports, etc), to registering a key partition. TModels won’t be covered too much in this article as I want to focus on the three main UDDI entities.&lt;br /&gt;&lt;br /&gt;The hierarchy defined in the diagram is self-explanatory. You must first have a Business Entity before you can publish any services. And you must have a Business Service before you can publish a Binding Template. There is no getting around this structure; this is the way UDDI works.&lt;br /&gt;&lt;br /&gt;Business Entities describe the organizational unit responsible for the services it publishes. It generally consist of a description and contact information. How one chooses to use the Business Entity is really dependent on the particular case. If you’re one small company, you will likely just have one Business Entity. If you are a larger company with multiple departments, you may want to have a Business Entity per department. (The question may arise if you can have one uber-Business Entity and multiple child Business Entities representing the departments. The answer is yes, you can relate Business Entities using Publisher Assertions, but that is beyond the scope of this article.)&lt;br /&gt;&lt;br /&gt;Business Services are the cogs of the SOA landscape. They represent units of functionality that are consumed by clients. In UDDI, there’s not much to a service structure; mainly descriptive information like name, description and categories. The meat of the technical details about the service is contained in its child Binding Templates.&lt;br /&gt;&lt;br /&gt;Binding Templates, as mentioned above, give the details about the technical specification of the service. This can be as simple as just providing the service’s access point, to providing the location of the service WSDL to more complicated scenarios to breaking down the technical details of the WSDL (when used in concert with tModels). Once again, getting into these scenarios is beyond the scope of this article but may be the subject of future articles.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;font-size:100%;"  &gt;jUDDI Additions to the Model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Out of the box, jUDDI provides some additional structure to the data model described in the specification. Primarily, this is the concept of the Publisher.&lt;br /&gt;&lt;br /&gt;The UDDI specification talks about ownership of the entities that are published within the registry, but makes no mention about how ownership should be handled. Basically, it is left up to the particular implementation to decide how to handle “users” that have publishing rights in the registry.&lt;br /&gt;&lt;br /&gt;Enter the jUDDI Publisher. The Publisher is essentially an out-of-the-box implementation of an identity management system. Per the specification, before assets can be published into the registry, a “publisher” must authenticate with the registry by retrieving an authorization token. This authorization token is then attached to future publish calls to assign ownership to the published entities.&lt;br /&gt;&lt;br /&gt;jUDDI’s Publisher concept is really quite simple, particularly when using the default authentication. You can save a Publisher to the registry using jUDDI’s custom API and then use that Publisher to publish your assets into the registry. jUDDI allows for integration into your own identity management system, circumventing the Publisher entirely if desired. This is discussed in more detail in the documentation, but for purposes of this article, we will be using the simple out-of-the-box Publisher solution.&lt;br /&gt;&lt;br /&gt;One quick note: ownership is essentially assigned to a given registry entity by using its “authorizedName” field. The “authorizedName” field is defined in the specification in the operationalInfo structure which keeps track of operational info for each entity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;font-size:100%;"  &gt;UDDI and jUDDI API&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Knowing the UDDI data model is all well and good. But to truly interact with the registry, you need to know how the UDDI API is structured and how jUDDI implements this API. The UDDI API is covered in great detail in chapter 5 of the specification but will be summarized here.&lt;br /&gt;&lt;br /&gt;UDDI divides their API into several “sets” – each representing a specific area of functionality. The API sets are listed below:&lt;br /&gt;&lt;div class="itemizedlist"&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Inquiry&lt;/span&gt; – deals with querying the registry to  return details on entities within         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Publication&lt;/span&gt; – handles publishing entities into  the registry         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Security&lt;/span&gt; – open-ended specification that  handles authentication         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Custody and Ownership Transfer&lt;/span&gt; – deals with  transferring ownership and custody of entities         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Subscription&lt;/span&gt; – allows clients to retrieve  information on entities in a timely manner using a subscription format         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Subscription Listener&lt;/span&gt; – client API that  accepts subscription results         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Value Set (Validation and Caching)&lt;/span&gt;– validates  keyed reference values (not implemented by jUDDI)         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt; &lt;a id="d0e1574"&gt;          &lt;span style="font-style: italic;"&gt;Replication&lt;/span&gt; – deals with federation of data  between registry nodes (not implemented by jUDDI)         &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;The most commonly used APIs are the Inquiry, Publication and Security APIs. These APIs provide the standard functions for interacting with the registry.&lt;br /&gt;&lt;br /&gt;The jUDDI server implements each of these API sets as a JAX-WS compliant web service and each method defined in the API set is simply a method in the corresponding web service. The client module provided by jUDDI uses a “transport” class that defines how the call is to be made. The default transport uses JAX-WS but there are several alternative ways to make calls to the API. Please refer to the documentation for more information.&lt;br /&gt;&lt;br /&gt;One final note, jUDDI defines its own API set. This API set contains methods that deal with handling Publishers as well as other useful maintenance functions (mostly related to jUDDI’s subscription model). This API set is obviously proprietary to jUDDI and doesn’t conform to the UDDI specification.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Getting Started&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that we’ve covered the basics of the data model and API sets, it’s time to get started with the publishing sample. The first thing that must happen is to get the jUDDI server up and running. Please refer to this &lt;a href="http://apachejuddi.blogspot.com/2010/02/getting-started-with-juddi-v3.html"&gt;article&lt;/a&gt; that explains how to start the jUDDI server.  The source code can be found in the source repository at this &lt;a href="http://svn.apache.org/viewvc/webservices/juddi/trunk/docs/examples/simple-publish/"&gt;location&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Simple Publishing Example&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We will now go over the “simple-publish” example found in the documentation. This sample expands upon the HelloWorld example in that after retrieving an authentication token, a Publisher, BusinessEntity and BusinessService are published to the registry.&lt;br /&gt;&lt;br /&gt;The sample consists of only one class: SimplePublish. Let’s start by taking a look at the constructor:&lt;br /&gt;&lt;pre class="Java" name="code"&gt;&lt;br /&gt;public SimplePublish() {&lt;br /&gt;  try {&lt;br /&gt;      String clazz = UDDIClientContainer.getUDDIClerkManager(null).&lt;br /&gt;                     getClientConfig().getUDDINode("default").getProxyTransport();&lt;br /&gt;      Class transportClass = ClassUtil.forName(clazz, Transport.class);&lt;br /&gt;      if (transportClass!=null) {&lt;br /&gt;          Transport transport = (Transport) transportClass.getConstructor(String.class).newInstance("default");&lt;br /&gt;&lt;br /&gt;          security = transport.getUDDISecurityService();&lt;br /&gt;          juddiApi = transport.getJUDDIApiService();&lt;br /&gt;          publish = transport.getUDDIPublishService();&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;  catch (Exception e) {&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The constructor uses the jUDDI client API to retrieve the transport from the default node. You can refer to the documentation if you’re confused about how clerks and nodes work. Suffice it to say, we are simply retrieving the default client transport class which is designed to make UDDI calls out using JAX-WS web services.&lt;br /&gt;&lt;br /&gt;Once the transport is instantiated, we grab the three API sets we need for this demo: 1) the Security API set so we can get authorization tokens, 2) the proprietary jUDDI API set so we can save a Publisher and 3) the Publication API set so we can actually publish entities to the registry.&lt;br /&gt;&lt;br /&gt;All the magic happens in the publish method. We will look at that next.&lt;br /&gt;&lt;br /&gt;Here are the first few lines of the publish method:&lt;br /&gt;&lt;pre class="Java" name="code"&gt;&lt;br /&gt;// Setting up the values to get an authentication token for the 'root' user ('root' user has admin privileges&lt;br /&gt;// and can save other publishers).&lt;br /&gt;GetAuthToken getAuthTokenRoot = new GetAuthToken();&lt;br /&gt;getAuthTokenRoot.setUserID("root");&lt;br /&gt;getAuthTokenRoot.setCred("");&lt;br /&gt;&lt;br /&gt;// Making API call that retrieves the authentication token for the 'root' user.&lt;br /&gt;AuthToken rootAuthToken = security.getAuthToken(getAuthTokenRoot);&lt;br /&gt;System.out.println ("root AUTHTOKEN = " + rootAuthToken.getAuthInfo());&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This code simply gets the authorization token for the ‘root’ user. The ‘root’ user (or publisher) is automatically installed in every jUDDI instance and acts as the “administrator” for jUDDI API calls. Additionally, the ‘root’ user is the owning publisher for all the initial services installed with jUDDI. You may be wondering what those “initial services” are. Well, since the UDDI API sets are all implemented as web services by jUDDI, every jUDDI node actually registers those services inside itself. This is done per the specification.&lt;br /&gt;&lt;br /&gt;Let’s get back to the code. Now that we have root authorization, we can add a publisher:&lt;br /&gt;&lt;pre class="Java" name="code"&gt;&lt;br /&gt;// Creating a new publisher that we will use to publish our entities to.&lt;br /&gt;Publisher p = new Publisher();&lt;br /&gt;p.setAuthorizedName("my-publisher");&lt;br /&gt;p.setPublisherName("My Publisher");&lt;br /&gt;&lt;br /&gt;// Adding the publisher to the "save" structure, using the 'root' user authentication info and saving away.&lt;br /&gt;SavePublisher sp = new SavePublisher();&lt;br /&gt;sp.getPublisher().add(p);&lt;br /&gt;sp.setAuthInfo(rootAuthToken.getAuthInfo());&lt;br /&gt;juddiApi.savePublisher(sp);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here we’ve simply used the jUDDI API to save a publisher with authorized name “my-publisher”. Notice how the authorization token for the ‘root’ user is used. Next, we need to get the authorization token for this new publisher:&lt;br /&gt;&lt;pre class="Java" name="code"&gt;&lt;br /&gt;// Our publisher is now saved, so now we want to retrieve its authentication token&lt;br /&gt;GetAuthToken getAuthTokenMyPub = new GetAuthToken();&lt;br /&gt;getAuthTokenMyPub.setUserID("my-publisher");&lt;br /&gt;getAuthTokenMyPub.setCred("");&lt;br /&gt;AuthToken myPubAuthToken = security.getAuthToken(getAuthTokenMyPub);&lt;br /&gt;System.out.println ("myPub AUTHTOKEN = " + myPubAuthToken.getAuthInfo());&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This is pretty straightforward. You’ll note that no credentials have been set on both authorization calls. This is because we’re using the default authenticator which doesn’t require credentials. We have our authorization token for our new publisher, now we can simply publish away:&lt;br /&gt;&lt;pre class="Java" name="code"&gt;&lt;br /&gt;// Creating the parent business entity that will contain our service.&lt;br /&gt;BusinessEntity myBusEntity = new BusinessEntity();&lt;br /&gt;Name myBusName = new Name();&lt;br /&gt;myBusName.setValue("My Business");&lt;br /&gt;myBusEntity.getName().add(myBusName);&lt;br /&gt; &lt;br /&gt;// Adding the business entity to the "save" structure, using our publisher's authentication info and saving away.&lt;br /&gt;SaveBusiness sb = new SaveBusiness();&lt;br /&gt;sb.getBusinessEntity().add(myBusEntity);&lt;br /&gt;sb.setAuthInfo(myPubAuthToken.getAuthInfo());&lt;br /&gt;BusinessDetail bd = publish.saveBusiness(sb);&lt;br /&gt;String myBusKey = bd.getBusinessEntity().get(0).getBusinessKey();&lt;br /&gt;System.out.println("myBusiness key:  " + myBusKey);&lt;br /&gt; &lt;br /&gt;// Creating a service to save.  Only adding the minimum data: the parent business key retrieved from saving the business&lt;br /&gt;// above and a single name.&lt;br /&gt;BusinessService myService = new BusinessService();&lt;br /&gt;myService.setBusinessKey(myBusKey);&lt;br /&gt;Name myServName = new Name();&lt;br /&gt;myServName.setValue("My Service");&lt;br /&gt;myService.getName().add(myServName);&lt;br /&gt;// Add binding templates, etc...&lt;br /&gt; &lt;br /&gt;// Adding the service to the "save" structure, using our publisher's authentication info and saving away.&lt;br /&gt;SaveService ss = new SaveService();&lt;br /&gt;ss.getBusinessService().add(myService);&lt;br /&gt;ss.setAuthInfo(myPubAuthToken.getAuthInfo());&lt;br /&gt;ServiceDetail sd = publish.saveService(ss);&lt;br /&gt;String myServKey = sd.getBusinessService().get(0).getServiceKey();&lt;br /&gt;System.out.println("myService key:  " + myServKey);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To summarize, here we have created and saved a BusinessEntity and then created and saved a BusinessService. We’ve just added the bare minimum data to each entity (and in fact, have not added any BindingTemplates to the service). Obviously, you would want to fill out each structure with greater information, particularly with services. However, this is beyond the scope of this article, which aims to simply show you how to programmatically publish entities.&lt;br /&gt;&lt;br /&gt;There are a couple important notes regarding the use of entity keys. Version 3 of the specification allows for publishers to create their own keys but also instructs implementers to have a default method. Here we have gone with the default implementation by leaving each entity’s “key” field blank in the save call. jUDDI’s default key generator simply takes the node’s partition and appends a GUID. In a default installation, it will look something like this:&lt;br /&gt;&lt;br /&gt;   uddi:juddi.apache.org:&amp;lt;GUID&amp;gt;&lt;br /&gt;&lt;br /&gt;You can, of course, customize all of this, but that is left for another article. The second important point is that when the BusinessService is saved, I’ve had to explicitly set its parent business key (retrieved from previous call saving the business). This is a necessary step when the service is saved in a separate call like this. Otherwise you would get an error because jUDDI won’t know where to find the parent entity. I could have added this service to the BusinessEntity’s service collection and saved it with the call to saveBusiness. In that scenario I would not have to set the parent business key.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-family:arial;font-size:100%;"  &gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That does it for this article. Hopefully I managed to clear some of the confusion around the open-ended question, “How do I publish a service using jUDDI?”.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-6648307567055347796?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/6648307567055347796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/simple-publishing-using-juddi-api.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/6648307567055347796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/6648307567055347796'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/simple-publishing-using-juddi-api.html' title='Simple Publishing Using the jUDDI API'/><author><name>Jeff Faath</name><uri>http://www.blogger.com/profile/01579671343160149939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_dfHA9UxAmM0/S4bRNJUru3I/AAAAAAAAAAk/JHirkbqoU88/s72-c/uddi-core-datastructures.gif' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-6230466750194296754</id><published>2010-02-23T11:38:00.000-08:00</published><updated>2010-02-23T14:34:13.235-08:00</updated><title type='text'>UDDI Annotations Demo to Register a WebService</title><content type='html'>This demo shows how to use UDDI annotations to register a service into a UDDI v3 compliant registry. For more detailed information see the &lt;a href="http://ws.apache.org/juddi/docs/3.0/userguide/html/chap-UDDI_annotations.html"&gt;jUDDI Userguide on annotations&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Part1:&lt;br /&gt;&lt;object width="909" height="605"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/HelloWorld1.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/HelloWorld1.swf" width="909" height="605"&gt;&lt;br /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Part2:&lt;br /&gt;&lt;object width="824" height="580"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/HelloWorld2.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/HelloWorld2.swf" width="824" height="580"&gt;&lt;br /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-6230466750194296754?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/6230466750194296754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/uddi-annotations-demo-to-register.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/6230466750194296754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/6230466750194296754'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/uddi-annotations-demo-to-register.html' title='UDDI Annotations Demo to Register a WebService'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-87599503862377063</id><published>2010-02-23T08:53:00.000-08:00</published><updated>2010-02-23T09:05:31.471-08:00</updated><title type='text'>UDDI v3 HelloWord</title><content type='html'>This demo shows a how to obtain an authentication token from a UDDI v3 Server. It is using the juddi-client, which connects to a jUDDI-3.0.1 server over JAX-WS. Note that since it is using the UDDI v3 API this should work using any UDDI v3 compliant server. To bring up a jUDDI server see the &lt;a href="http://apachejuddi.blogspot.com/2010/02/getting-started-with-juddi-v3.html"&gt;GettingStarted&lt;/a&gt; demo.&lt;br /&gt;&lt;br /&gt;&lt;object width="910" height="946"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/HelloWorld.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/HelloWorld.swf" width="910" height="946"&gt;&lt;br /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-87599503862377063?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/87599503862377063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/uddi-v3-helloword.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/87599503862377063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/87599503862377063'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/uddi-v3-helloword.html' title='UDDI v3 HelloWord'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-1739772394146570268</id><published>2010-02-23T08:09:00.000-08:00</published><updated>2010-02-23T08:12:36.221-08:00</updated><title type='text'>Getting Started with jUDDI v3</title><content type='html'>A flash demo on how to get started with the jUDDI v3 server.&lt;br /&gt;&lt;br /&gt;&lt;object width="767" height="736"&gt;&lt;br /&gt;&lt;param name="movie" value="http://ws.apache.org/juddi/demos/GettingStarted.swf"&gt;&lt;br /&gt;&lt;embed src="http://ws.apache.org/juddi/demos/GettingStarted.swf" width="767" height="736"&gt;&lt;br /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-1739772394146570268?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/1739772394146570268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/getting-started-with-juddi-v3.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1739772394146570268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1739772394146570268'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/getting-started-with-juddi-v3.html' title='Getting Started with jUDDI v3'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-794438347017249328</id><published>2010-02-22T08:09:00.000-08:00</published><updated>2010-02-22T08:23:51.767-08:00</updated><title type='text'>jUDDI load tested in the Amazon Cloud</title><content type='html'>Our friends at &lt;a href="http://gqpartners.com"&gt;Global Quality Partners, LLC&lt;/a&gt; and &lt;a href="http://www.xceptance.com"&gt;Xceptance, Inc&lt;/a&gt; posted a nice article on load testing jUDDI 3.0.0 on JBOSS 5.1 (the CXF web services stack) using Red Hat Enterprise Linux 5.3 and MySQL 5.0 all running in the Amazon EC2.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dzone.com/links/juddiv300_holds_its_own_under_load.html"&gt;http://www.dzone.com/links/juddiv300_holds_its_own_under_load.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Great work guys!&lt;br /&gt;&lt;br /&gt;--Kurt&lt;br /&gt;&lt;br /&gt;p.s. the testsjavascript:void(0) are checked in under the 'qa' directory in the jUDDI source tree. And if you want to run it follow the instructions in the GettingStarted.txt:&lt;br /&gt;&lt;br /&gt;1. Start the jUDDI server at port 8080.&lt;br /&gt;&lt;br /&gt;2. Place the license.xml.donotcheckin file in the qa/xlt directory. If you are a developer on the jUDDI project you can receive a copy of this file by asking for it on the juddi-dev mailing list. Without the license XLT is limited to running 5 users.&lt;br /&gt;&lt;br /&gt;3. Run 'ant loadtest'. This will download XLT, configure the XLT software and start the loadtest&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-794438347017249328?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/794438347017249328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/juddi-load-tested-in-amazon-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/794438347017249328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/794438347017249328'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2010/02/juddi-load-tested-in-amazon-cloud.html' title='jUDDI load tested in the Amazon Cloud'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-6310527234874815284</id><published>2009-11-13T06:49:00.000-08:00</published><updated>2009-11-13T14:20:22.196-08:00</updated><title type='text'>UDDI Annotations - How do I self-register my service?</title><content type='html'>So you just installed jUDDI, and you're all proud you managed to get it up and running, but now you're asking yourself: "How do I register my own services?". You have a few options actually.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1. You can do it programmatically using the juddi-client UDDIv3 API library, check out the code in the &lt;a href="http://svn.apache.org/viewvc/webservices/juddi/tags/juddi-3.0.0/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java?view=markup"&gt;TckBusinessService&lt;/a&gt; class for some inspiration.&lt;/li&gt;&lt;li&gt;2. You can do it programmatically using the JAXR API. &lt;a href="http://ws.apache.org/scout/"&gt;Apache Scout&lt;/a&gt; supports both the v2 and v3 UDDI protocols.&lt;/li&gt;&lt;li&gt;3. You can use a console, although the current jUDDI-portal based console only supports browsing at the moment, but you could pretty easily extend it and contribute it back.&lt;/li&gt;&lt;li&gt;4. You can use annotations, jUDDI v3 introduces annotations that can be used to register a (web-)service at deploy time. I think that this is by far the easiest way to go about it. This is what I'm going to discuss in the blog post.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt;Annotations on (Web)Services Example&lt;/h2&gt;&lt;br /&gt;Let's start with an example: the &lt;a href="http://svn.apache.org/viewvc/webservices/juddi/tags/juddi-3.0.0/juddiv3-samples/src/main/java/org/apache/juddi/samples. /HelloWorldImpl.java?view=markup"&gt;HelloWorldService&lt;/a&gt;. Using the JAX-WS WebService annotation the simplest implementation of this class would look like:&lt;br /&gt;&lt;pre class="Java" name="code"&gt;&lt;br /&gt;@WebService(&lt;br /&gt;  endpointInterface = "org.apache.juddi.samples.HelloWorld",&lt;br /&gt;  serviceName = "HelloWorld")&lt;br /&gt;  &lt;br /&gt;    public class HelloWorldImpl implements HelloWorld {&lt;br /&gt;  &lt;br /&gt;  public String sayHi(String text) {&lt;br /&gt;      System.out.println("sayHi called");&lt;br /&gt;      return "Hello " + text;&lt;br /&gt;  }&lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and when using CXF the beans.xml would need the following entry&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt; &amp;lt;jaxws:endpoint id="helloworld" implementor="org.apache.juddi.samples.HelloWorldImpl"&lt;br /&gt;  address="/helloworld" /&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;to bring it up under the &lt;a href="http://localhost:8080/juddiv3-samples/helloworld"&gt;http://localhost:8080/juddiv3-samples/helloworld&lt;/a&gt; if you deploy the juddiv3-samples war.&lt;br /&gt;To enable registration at deploy time of this service you can use two UDDI annotations; one to register the service and one to register the endpoint, UDDIService and UDDIServiceBinding respectively. For example the annotations may look like&lt;br /&gt;&lt;pre class="java" name="code"&gt;&lt;br /&gt;@UDDIService(&lt;br /&gt;  businessKey="uddi:myBusinessKey",&lt;br /&gt;  serviceKey="uddi:myServiceKey",&lt;br /&gt;  description = "Hello World test service") &lt;br /&gt;@UDDIServiceBinding(&lt;br /&gt;  bindingKey="uddi:myServiceBindingKey",&lt;br /&gt;  description="WSDL endpoint for the hello${department} Service. This service is used for testing the jUDDI annotation functionality",&lt;br /&gt;  accessPointType="wsdlDeployment",&lt;br /&gt;  accessPoint="http://localhost:8080/juddiv3-samples/services/helloworld?wsdl") &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next you need to instruct a clerk to do the registration at deploy time. A clerk is UDDI publisher that can work from the back office, by candle light, no heat, you get the picture. We call him "BobCratchit". Bob needs to know which UDDI registry to publish to and under what UDDI publisher. All of this is defined in the META-INF/uddi.xml file.&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1" ?&amp;gt;&lt;br /&gt;&amp;lt;uddi&amp;gt;&lt;br /&gt; &amp;lt;reloadDelay&amp;gt;5000&amp;lt;/reloadDelay&amp;gt;&lt;br /&gt; &amp;lt;manager name="example-manager"&amp;gt;&lt;br /&gt;  &amp;lt;nodes&amp;gt;&lt;br /&gt;   &amp;lt;node&amp;gt;&lt;br /&gt;    &amp;lt;name&amp;gt;default&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;description&amp;gt;Sales jUDDI node&amp;lt;/description&amp;gt;  &lt;br /&gt;    &amp;lt;properties&amp;gt;&lt;br /&gt;     &amp;lt;property name="serverName"  value="sales"/&amp;gt;&lt;br /&gt;     &amp;lt;property name="serverPort"  value="8080"/&amp;gt;&lt;br /&gt;     &amp;lt;property name="keyDomain"   value="sales.apache.org"/&amp;gt;&lt;br /&gt;     &amp;lt;property name="department"  value="sales" /&amp;gt;&lt;br /&gt;    &amp;lt;/properties&amp;gt;&lt;br /&gt;    &amp;lt;proxyTransport&amp;gt;org.apache.juddi.v3.client.transport.InVMTransport&amp;lt;/proxyTransport&amp;gt;&lt;br /&gt;    &amp;lt;custodyTransferUrl&amp;gt;org.apache.juddi.api.impl.UDDICustodyTransferImpl&amp;lt;/custodyTransferUrl&amp;gt;&lt;br /&gt;    &amp;lt;inquiryUrl&amp;gt;org.apache.juddi.api.impl.UDDIInquiryImpl&amp;lt;/inquiryUrl&amp;gt;&lt;br /&gt;    &amp;lt;publishUrl&amp;gt;org.apache.juddi.api.impl.UDDIPublicationImpl&amp;lt;/publishUrl&amp;gt;&lt;br /&gt;    &amp;lt;securityUrl&amp;gt;org.apache.juddi.api.impl.UDDISecurityImpl&amp;lt;/securityUrl&amp;gt;&lt;br /&gt;     &amp;lt;subscriptionUrl&amp;gt;org.apache.juddi.api.impl.UDDISubscriptionImpl&amp;lt;/subscriptionUrl&amp;gt;&lt;br /&gt;    &amp;lt;subscriptionListenerUrl&amp;gt;org.apache.juddi.api.impl.UDDISubscriptionListenerImpl&amp;lt;/subscriptionListenerUrl&amp;gt;&lt;br /&gt;    &amp;lt;juddiApiUrl&amp;gt;org.apache.juddi.api.impl.JUDDIApiImpl&amp;lt;/juddiApiUrl&amp;gt;&lt;br /&gt;   &amp;lt;/node&amp;gt;&lt;br /&gt;  &amp;lt;/nodes&amp;gt;&lt;br /&gt;  &amp;lt;clerks registerOnStartup="true"&amp;gt;&lt;br /&gt;           &amp;lt;clerk name="BobCratchit" node="default" publisher="sales" password="sales"&amp;gt;&lt;br /&gt;                &amp;lt;class&amp;gt;org.apache.juddi.samples.HelloWorldImpl&amp;lt;/class&amp;gt;&lt;br /&gt;           &amp;lt;/clerk&amp;gt;&lt;br /&gt;        &amp;lt;/clerks&amp;gt;&lt;br /&gt; &amp;lt;/manager&amp;gt;&lt;br /&gt;&amp;lt;/uddi&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A uddi.xml file can contain only one manager entry and the manager should have a name that is unique to your deployment environment. Within the manager you can specific as many nodes and clerks as you want. Each node contains the UDDI v3 endpoints of the UDDIv3 internal services. Each clerk must reference a node, and it must be supplied with the credentials of the publisher account. In this example we have:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;clerk name="BobCratchit" node="default" publisher="sales" password="sales"&amp;gt;&lt;br /&gt;    &amp;lt;class&amp;gt;org.apache.juddi.samples.HelloWorldImpl&amp;lt;/class&amp;gt;&lt;br /&gt;&amp;lt;/clerk&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;which means that Bob is using the node connection setting of the node with name "default", and that he will be using the "sales" publisher, for which the password it "sales". There is some analogy here as to how datasources are defined. Finally you reference the class that contains the annotations in the clerk block. Make sure to have the juddi-client and uddi-ws jars on your classpath and you should be good to go.&lt;br /&gt;Note that the juddiv3-samples.war ships with jUDDI-3.0.0 for you to get started.&lt;br /&gt;&lt;h2&gt;UDDIService&lt;/h2&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td&gt;serviceName&lt;/td&gt;&lt;td&gt;The name of the service, by default the clerk will use the one name specified in the WebService annotation.&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;description&lt;/td&gt;&lt;td&gt;Human readable description of the service&lt;/td&gt;&lt;td&gt;required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;serviceKey&lt;/td&gt;&lt;td&gt;UDDI v3 Key of the Service&lt;/td&gt;&lt;td&gt;required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;businessKey&lt;/td&gt;&lt;td&gt;UDDI v3 Key of the Business that should own this Service. The business should exist in the registry at time of registration&lt;/td&gt;&lt;td&gt;required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;lang&lt;/td&gt;&lt;td&gt;Language locale which will be used for the name and description, defaults to "en" if omitted&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;categoryBag&lt;/td&gt;&lt;td&gt;Definition of a CategoryBag, see below for details&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;h2&gt;UDDIServiceBinding&lt;/h2&gt;&lt;br /&gt;The UDDIServiceBinding annotation cannot be used by itself at the moment. It needs to go along side a UDDIService annotation.&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;bindingKey&lt;/td&gt;&lt;td&gt;UDDI v3 Key of the ServiceBinding&lt;/td&gt;&lt;td&gt;required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;description&lt;/td&gt;&lt;td&gt;Human readable description of the service&lt;/td&gt;&lt;td&gt;required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;accessPointType&lt;/td&gt;&lt;td&gt;UDDI v3 AccessPointType, defaults to wsdlDeployment if omitted&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;accessPoint&lt;/td&gt;&lt;td&gt;Endpoint reference&lt;/td&gt;&lt;td&gt;required&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;lang&lt;/td&gt;&lt;td&gt;Language locale which will be used for the name and description, defaults to "en" if omitted&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;tModelKeys&lt;/td&gt;&lt;td&gt;Comma-separated list of tModelKeys key reference&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;tr&gt;&lt;tr&gt;&lt;td&gt;categoryBag&lt;/td&gt;&lt;td&gt;Definition of a CategoryBag, see below for details&lt;/td&gt;&lt;td&gt;optional&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;h2&gt;CategoryBag&lt;/h2&gt;&lt;br /&gt;The CategoryBag is an optional element in both the UDDIService and UDDIServiceBinding annotation. Represented as XML a CategoryBag can contain a list of keyedReferences, for example&lt;br /&gt;&lt;pre class="XML" name="code"&gt; &lt;br /&gt;&amp;lt;categoryBag&amp;gt;&lt;br /&gt;     &amp;lt;keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" /&amp;gt;&lt;br /&gt;            &amp;lt;keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:wsdl2" keyValue="wsdlDeployment2" /&amp;gt;&lt;br /&gt;   &amp;lt;/categoryBag&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;in the annotation this would look like&lt;br /&gt;&lt;pre class="java" name="code"&gt; &lt;br /&gt; categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types," +&lt;br /&gt;      "keyedReference=keyName=uddi-org:types:wsdl2;keyValue=wsdlDeployment2;tModelKey=uddi:uddi.org:categorization:types2",&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;For a complete example you can check one of the &lt;a href="http://svn.apache.org/viewvc/webservices/juddi/tags/juddi-3.0.0/juddi-client/src/test/java/org/apache/juddi/v3/client/HelloWorldMockup.java?revision=829052&amp;view=markup"&gt;unittests&lt;/a&gt;.&lt;br /&gt;If you now check the jUDDI portal, in the browser you should see the HelloWorld Service&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fAUX2tnEInU/Sv3GYfT2mxI/AAAAAAAAAGw/qH227D-UkeI/s1600-h/uddibrowser.png"&gt;&lt;img style="block:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 188px;" src="http://3.bp.blogspot.com/_fAUX2tnEInU/Sv3GYfT2mxI/AAAAAAAAAGw/qH227D-UkeI/s400/uddibrowser.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5403693251938392850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Dynamic Runtime Properties&lt;/h2&gt;&lt;br /&gt;The downside of using annotations is that after your class is compiled it is hard to change the values set in the annotations. In particular when a field contains runtime dependent value like the hostname and port this becomes a problem. Therefor we added support to define custom properties in the 'node' section of the uddi.xml.&lt;br /&gt;&lt;pre class="xml" name="code"&gt;&lt;br /&gt;&amp;lt;properties&amp;gt;&lt;br /&gt;    &amp;lt;property name="serverName"  value="sales"/&amp;gt;&lt;br /&gt;    &amp;lt;property name="serverPort"  value="8080"/&amp;gt;&lt;br /&gt;&amp;lt;/properties&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;These properties are then referenced in the annotation like:&lt;br /&gt;&lt;pre class="java" name="code"&gt;&lt;br /&gt;accessPoint="http://${serverName}:${serverPort}/juddiv3-samples/services/helloworld?wsdl")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;Summary&lt;/h2&gt;&lt;br /&gt;jUDDI-3.0.0 introduces a client side library which contain annotations for self-registration of a service and its binding at deployment time, and unregistration of the serviceBinding at undeploy time. This library can be used with any UDDI v3 compliant Registry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-6310527234874815284?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/6310527234874815284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2009/11/uddi-annotations-how-do-i-self-register.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/6310527234874815284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/6310527234874815284'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2009/11/uddi-annotations-how-do-i-self-register.html' title='UDDI Annotations - How do I self-register my service?'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fAUX2tnEInU/Sv3GYfT2mxI/AAAAAAAAAGw/qH227D-UkeI/s72-c/uddibrowser.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-1278619424012926375</id><published>2009-10-29T06:25:00.001-07:00</published><updated>2009-10-29T08:47:36.197-07:00</updated><title type='text'>jUDDI-3.0.0 Released!</title><content type='html'>I'm proud to announce that jUDDI-3.0.0 is released! &lt;a href="http://ws.apache.org/juddi/"&gt;jUDDI&lt;/a&gt; now supports all the required UDDIv3 APIs. jUDDI-3.0.0 has a lot of new and exiting features, some of which are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Implements all the UDDIv3 required APIs.&lt;/li&gt;&lt;li&gt;Plugin architecture for Cryption and Authentication.&lt;/li&gt;&lt;li&gt;Flexible way of seeding your UDDI node.&lt;/li&gt;&lt;li&gt;Using the following specifications to keep the jUDDI code base small&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JPA (tested with OpenJPA and Hibernate) and&lt;/li&gt;   &lt;li&gt;JAXB (tested with SUNs implementation, and native JDK6)&lt;/li&gt;   &lt;li&gt;JAX-WS (tested with CXF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Annotations to Self-Register/UnRegister your services and their Bindings.&lt;/li&gt;&lt;li&gt;Support for multi-node UDDI setups using the client and server-side Subscription APIs.&lt;/li&gt;&lt;li&gt;Introduction of the "UDDI Clerk" concept to support cross registration of UDDI entities.&lt;/li&gt;&lt;li&gt;UDDI Console with GWT based portlets&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Browse portlet&lt;/li&gt;&lt;li&gt;Search portlet&lt;/li&gt;&lt;li&gt;Subscription portlet&lt;/li&gt;&lt;li&gt;Publisher portlet&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Ready-to-go bundles: &lt;a href="http://www.apache.org/dist/ws/juddi/3_0/"&gt;juddi-tomcat and juddi-portal.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Run in Embedded mode, RMI or SOAP.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tested to work with &lt;a href="http://ws.apache.org/scout/index.html"&gt;Scout-1.2&lt;/a&gt; (JAXR).&lt;/li&gt;&lt;li&gt;Integrated into&lt;a href="http://labs.jboss.com/jbossesb/"&gt; JBossESB&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;In production for the past 6 months at &lt;a href="ttp://www.esigma.com/"&gt;eSigma&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Tested with both SUN and OpenJDK JDKs.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tested under load using &lt;a href="http://xlt.xceptance.de/download/results/juddi/20090731-132952/"&gt;XLT&lt;/a&gt; test suite.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Each of these bullet-points really needs its own blog post! Until then please check out the &lt;a href="http://svn.apache.org/repos/asf/webservices/juddi/trunk/docs/jUDDI-UserGuide.pdf"&gt;User Guide&lt;/a&gt; for more details.&lt;br /&gt;&lt;br /&gt;cheers,&lt;br /&gt;&lt;br /&gt;the &lt;a href="http://ws.apache.org/juddi/team-list.html"&gt;jUDDI team&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-1278619424012926375?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/1278619424012926375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/juddi-300-released.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1278619424012926375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1278619424012926375'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/juddi-300-released.html' title='jUDDI-3.0.0 Released!'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-3956333406606344976</id><published>2009-10-23T11:16:00.000-07:00</published><updated>2009-10-23T11:29:42.378-07:00</updated><title type='text'>Release of Scout-1.2 adds UDDI v3 support</title><content type='html'>The Scout team is proud to announce the release of &lt;a href="http://ws.apache.org/scout/releases.html"&gt;Scout-1.2&lt;/a&gt;, Scout is an implementation of the JAXR specification (Java API for XML Registries). The &lt;a href="http://ws.apache.org/scout/releases.html"&gt;Scout-1.2&lt;/a&gt; release adds UDDI v3 support. To find out more you can visit the &lt;a href="http://ws.apache.org/scout/index.html"&gt;Scout Project&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Scout team wants to know if you are using JAXR for anything but communicating to a UDDI registry. Are you interested in support for ebXML?&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-3956333406606344976?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/3956333406606344976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/release-of-scout-12-adds-uddi-v3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/3956333406606344976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/3956333406606344976'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/release-of-scout-12-adds-uddi-v3.html' title='Release of Scout-1.2 adds UDDI v3 support'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-4519905001108274843</id><published>2009-10-15T11:57:00.000-07:00</published><updated>2009-10-15T17:38:07.279-07:00</updated><title type='text'>Release jUDDI 3.0.0.rc1</title><content type='html'>Last week we got to a &lt;a href="http://ws.apache.org/juddi/releases.html"&gt;Release Candidate for 3.0.0&lt;/a&gt;, which has been through some pretty rigorous load testing performed by &lt;a href="http://www.xceptance.com/news-main/items/xceptance-software-technologies-inc-and-global-quality-partners-llc-sponsor-load-testing-for-apache-juddi.html"&gt;Xceptance Software Technologies, Inc&lt;/a&gt; and &lt;a href="http://www.gqpartners.com/"&gt;Global Quality Partners, LLC&lt;/a&gt;. The 3.0 codebase has been running in production at &lt;a href="http://www.esigma.com/"&gt;eSigma&lt;/a&gt; for the better half of a year now, and the &lt;a href="http://labs.jboss.com/jbossesb/"&gt;JBossESB&lt;/a&gt; project has recently integrated the 3.0.0.rc1 into their trunk. An interesting detail there is that the integration uses &lt;a href="http://java.sun.com/webservices/jaxr/"&gt;JAXR&lt;/a&gt; (Java API for XML Registries) and &lt;a href="http://ws.apache.org/scout/"&gt;Apache Scout-1.2&lt;/a&gt; now supports both the UDDIv2 and the UDDIv3 spec in the back end.&lt;br /&gt;&lt;br /&gt;We've been working hard and any day now we will start a vote for 3.0.0 final.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-4519905001108274843?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/4519905001108274843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/release-juddi-300-cr1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/4519905001108274843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/4519905001108274843'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/release-juddi-300-cr1.html' title='Release jUDDI 3.0.0.rc1'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-5888927578525721312</id><published>2009-10-14T19:02:00.000-07:00</published><updated>2009-12-10T11:29:55.530-08:00</updated><title type='text'>jUDDI IRC channel</title><content type='html'>If you want to talk UDDI come look us up on IRC using irc.freenode.net #juddi. At least you will find our juddi-bot there reporting on the status of the integration builds :). The integration builds are now running on &lt;a href="http://ci.apache.org/buildbot.html"&gt;Buildbot&lt;/a&gt;. The IRC logs can be found here: &lt;a href="http://echelog.matzon.dk/logs/browse/juddi"&gt;http://echelog.matzon.dk/logs/browse/juddi&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-5888927578525721312?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/5888927578525721312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/juddi-irc-channel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/5888927578525721312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/5888927578525721312'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2009/10/juddi-irc-channel.html' title='jUDDI IRC channel'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-5134290331983387613</id><published>2009-08-11T08:30:00.000-07:00</published><updated>2009-08-11T09:35:18.069-07:00</updated><title type='text'>jUDDI 2.0.1 released</title><content type='html'>The SQL scripts provided with the jUDDI v2 release where updated.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-5134290331983387613?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/5134290331983387613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2009/08/juddi-201-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/5134290331983387613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/5134290331983387613'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2009/08/juddi-201-released.html' title='jUDDI 2.0.1 released'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1959408945184434193.post-1190803322137229352</id><published>2009-07-28T13:44:00.000-07:00</published><updated>2009-07-28T14:37:21.582-07:00</updated><title type='text'>Release jUDDI v2 - Thank you Steve Viens</title><content type='html'>The release of jUDDI v2 marks the beginning of a new era.&lt;br /&gt;&lt;br /&gt;jUDDI is the brainchild of Steve Viens, who led the project from the inception year of 2003 to 2007. jUDDI started as project on SourceForge and was into the Apache Incubator in Oct 8, 2003. The project graduated to the Apache Web Services Project in March 24, 2004. In 2004 the project pushed to get to a 1.0 release, and the jUDDI-0.9rc3 release turned out to be a strong candidate. The move to Apache gave the project more visibility and the different 0.9 release candidates have been bundled with many Application Servers. Thank you Steve for building a UDDI community and for all the hard work to get jUDDI where it is now!&lt;br /&gt;&lt;br /&gt;Recently we changed the major release version to 2, this to line up the jUDDI version with the UDDI spec version she implements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;jUDDIv2 implements the UDDIv2 specification&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;jUDDIv3 implements the UDDIv3 specification&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To easiest way to get started with jUDDI is to download the &lt;a href="http://www.apache.org/dist/ws/juddi/2_0/"&gt;juddi-tomcat-2.0.0&lt;/a&gt; bundle. This is a ready to go jUDDI server running on Tomcat. Once this is running you can &lt;a href="http://ws.apache.org/juddi/usersguide.html"&gt;read up&lt;/a&gt; on how to switch from the embedded Derby database to let's say MySQL. If you have question please browse through the answers given on the &lt;a href="http://ws.apache.org/juddi/mail-lists.html"&gt;jUDDI mailing lists.&lt;/a&gt; If you don't find one, simply get involved and ask your own question.&lt;br /&gt;&lt;br /&gt;What's next?&lt;br /&gt;&lt;br /&gt;With jUDDIv2 released we can now fully focus on implementing the UDDI v3 specification. More on that later.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;--Kurt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1959408945184434193-1190803322137229352?l=apachejuddi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://apachejuddi.blogspot.com/feeds/1190803322137229352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://apachejuddi.blogspot.com/2009/07/release-juddi-v2-thank-you-steve-viens.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1190803322137229352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1959408945184434193/posts/default/1190803322137229352'/><link rel='alternate' type='text/html' href='http://apachejuddi.blogspot.com/2009/07/release-juddi-v2-thank-you-steve-viens.html' title='Release jUDDI v2 - Thank you Steve Viens'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry></feed>
