You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@juddi.apache.org by Kurt T Stam <ku...@gmail.com> on 2012/09/17 19:10:59 UTC

Re: juddi multiple service binding

Hi Igor,

Sure you should be able to use the same business and seriviceKey and a 
different bindingKey (which should happen by itself if it run on a 
different server).

Good luck!

-Kurt

On 9/17/12 12:09 PM, Igor Azarny wrote:
> Hi Kurt !
>
> Is it possible to register several bindings to one service key using 
> @UDDIServiceBinding ?
>
> Example
>
>
>
>
> @UDDIService(
> businessKey="uddi:${keyDomain}:${department}",
> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
>         description = "Bangolio award definition provider",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>
> @UDDIServiceBinding(
> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-bangolio-wsdl",
> description="WSDL endpoint for the bangolio award definition provider",
> accessPointType="wsdlDeployment",
> accessPoint="http://${serverName}:${serverPort}/aprod/services/bangolioawarddefinitionprovider?wsdl",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
> )
> @WebService (
> endpointInterface = "org.domainAwardDefinitionProvider",
>         serviceName = "awardDefinitionProvider"
> )
> public class BangolioAwardDefinitionProviderImpl implements 
> AwardDefinitionProvider , ServletContextAware {
>
>
>
> @UDDIService(
> businessKey="uddi:${keyDomain}:${department}",
> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
>         description = "Zimbra award definition provider",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>
> @UDDIServiceBinding(
> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-zimbra-wsdl",
> description="WSDL endpoint for the zimbra award definition provider",
> accessPointType="wsdlDeployment",
> accessPoint="http://${serverName}:${serverPort}/aprod/services/zimbraawarddefinitionprovider?wsdl",
> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
> )
>
> @WebService (
> endpointInterface = "org.domainAwardDefinitionProvider",
>         serviceName = "awardDefinitionProvider"
> )
> public class ZimbraAwardDefinitionProviderImpl implements 
> AwardDefinitionProvider , ServletContextAware {
>
>
>
> Thanks, Igor


Re: juddi multiple service binding

Posted by Kurt T Stam <ku...@gmail.com>.
Hi Igor,

I just went over the code and you are right; it simply parses the 
annotations and then calls register. So it never 'merges'
with an existing service (but rather writes over another one). Please 
open a Jira for it. You can try making a patch yourself, you'd have to 
do a lookup for each service in the second for-loop below to see if it 
exists, and then 'merge' the existing info (bindingTemplates) with the 
new one before calling register. Should be fairly straightforward. If 
you attach the patch in jira (preferable with unittest) we will merge it 
in quickly.

In the UDDIClerkManager:

public void registerAnnotatedServices() {
         Map<String,UDDIClerk> uddiClerks = clientConfig.getUDDIClerks();
         if (uddiClerks.size() > 0) {
             AnnotationProcessor ap = new AnnotationProcessor();
             for (UDDIClerk uddiClerk : uddiClerks.values()) {
                 Collection<BusinessService> services = 
ap.readServiceAnnotations(
uddiClerk.getClassWithAnnotations(),uddiClerk.getUDDINode().getProperties());
                 for (BusinessService businessService : services) {
                     log.info("Node=" + 
uddiClerk.getUDDINode().getApiNode().getName());
                     uddiClerk.register(businessService, 
uddiClerk.getUDDINode().getApiNode());
                 }
             }
         }
     }

Cheers,

--Kurt

p.s. please register with the user@juddi.apache.org mailing list, so 
other users may help out or be helped out by our conversation.



On 9/17/12 2:49 PM, Igor Azarny wrote:
> Hi Kurt !
>
> Couple of options was tested:
>
> 1. localhost and pc domain name as part of bindind key for different 
> web service  implementations in the same war.
> 2. suffix of binding key was different "-zimbra-wsdl" and "-bangolio-wsdl"
>
> but result was not as expected - service has only one bindings. This 
> was checked via jaxr scout and data base.
>
> Any ideas or need to raise a bug ?
>
> Thanks, Igor
>
> ------------------------------------------------------------------------
> *From:* Kurt T Stam <ku...@gmail.com>
> *To:* "user@juddi.apache.org" <us...@juddi.apache.org>
> *Cc:* Igor Azarny <ia...@yahoo.com>; "kstam@apache.org" 
> <ks...@apache.org>
> *Sent:* Monday, September 17, 2012 8:10 PM
> *Subject:* Re: juddi multiple service binding
>
> Hi Igor,
>
> Sure you should be able to use the same business and seriviceKey and a 
> different bindingKey (which should happen by itself if it run on a 
> different server).
>
> Good luck!
>
> -Kurt
>
> On 9/17/12 12:09 PM, Igor Azarny wrote:
>> Hi Kurt !
>>
>> Is it possible to register several bindings to one service key using 
>> @UDDIServiceBinding ?
>>
>> Example
>>
>>
>>
>>
>> @UDDIService(
>> businessKey="uddi:${keyDomain}:${department}",
>> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
>>       description = "Bangolio award definition provider",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>>
>> @UDDIServiceBinding(
>> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-bangolio-wsdl",
>>       description="WSDL endpoint for the bangolio award definition 
>> provider",
>>       accessPointType="wsdlDeployment",
>> accessPoint="http://$ 
>> <http://%24/>{serverName}:${serverPort}/aprod/services/bangolioawarddefinitionprovider?wsdl",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
>> )
>> @WebService (
>>       endpointInterface = "org.domainAwardDefinitionProvider",
>>       serviceName = "awardDefinitionProvider"
>> )
>> public class BangolioAwardDefinitionProviderImpl implements 
>> AwardDefinitionProvider , ServletContextAware {
>>
>>
>>
>> @UDDIService(
>> businessKey="uddi:${keyDomain}:${department}",
>> serviceKey="uddi:${keyDomain}:${department}-awardDefinitionProvider",
>>       description = "Zimbra award definition provider",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types")
>>
>> @UDDIServiceBinding(
>> bindingKey="uddi:${keyDomain}:${serverName}-${serverPort}-${department}-zimbra-wsdl",
>>       description="WSDL endpoint for the zimbra award definition 
>> provider",
>>       accessPointType="wsdlDeployment",
>> accessPoint="http://$ 
>> <http://%24/>{serverName}:${serverPort}/aprod/services/zimbraawarddefinitionprovider?wsdl",
>> categoryBag="keyedReference=keyName=uddi-org:types:wsdl;keyValue=wsdlDeployment;tModelKey=uddi:uddi.org:categorization:types"
>> )
>>
>> @WebService (
>>       endpointInterface = "org.domainAwardDefinitionProvider",
>>       serviceName = "awardDefinitionProvider"
>> )
>> public class ZimbraAwardDefinitionProviderImpl implements 
>> AwardDefinitionProvider , ServletContextAware {
>>
>>
>>
>> Thanks, Igor
>
>
>