[ 
https://issues.apache.org/jira/browse/JUDDI-456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13028880#comment-13028880
 ] 

Kurt T Stam commented on JUDDI-456:
-----------------------------------

Hi Tom,

So to be clear for a combineCategoryBags on Service (and also looking at the 
BindingTemplates we need to create QL that produces a UNION SQL like:

select service.entity_key, scb.id from juddiv3.j3_business_service service 
join juddiv3.j3_service_category_bag scb on service.entity_key = 
scb.entity_key, 
juddiv3.j3_keyed_reference kr0, juddiv3.j3_keyed_reference kr1 
where (kr0.category_bag_id=scb.id and 
kr0.tmodel_key_ref='uddi:uddi.joepublisher.com:tmodel01' and 
kr0.key_value='value-z') or (kr1.category_bag_id=scb.id and
kr1.tmodel_key_ref='uddi:uddi.joepublisher.com:tmodel02' and 
kr1.key_value='value-x') group by  service.entity_key, scb.id 
UNION
select service.entity_key, bcb.id from juddiv3.j3_business_service service join 
juddiv3.j3_binding_template bt on service.entity_key = bt.service_key join
juddiv3.j3_binding_category_bag bcb on bt.entity_key = bcb.entity_key,
juddiv3.j3_keyed_reference kr0, juddiv3.j3_keyed_reference kr1 
where (kr0.category_bag_id=bcb.id and 
kr0.tmodel_key_ref='uddi:uddi.joepublisher.com:tmodel01' and 
kr0.key_value='value-z') or (kr1.category_bag_id=bcb.id and
kr1.tmodel_key_ref='uddi:uddi.joepublisher.com:tmodel02' and 
kr1.key_value='value-x') group by  service.entity_key, bcb.id ;

And then you get back a bag of keys and in java we need to see if we have both 
unique keys.


> combineCategoryBags findQualifier not performing correctly.
> -----------------------------------------------------------
>
>                 Key: JUDDI-456
>                 URL: https://issues.apache.org/jira/browse/JUDDI-456
>             Project: jUDDI
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.0.3
>         Environment: Tomcat 6.0.29, PostgreSQL 8.4
>            Reporter: Jason Brown
>            Assignee: Tom Cunningham
>            Priority: Minor
>             Fix For: 3.1.0
>
>         Attachments: juddi-456-patch.txt, union.sql
>
>
> When performing queries using the combineCategoryBags findQualifier the 
> cateogoryBag does not appear to be combined as it is defined in the 
> specification in section 5.1.4.3. 
> Considering the following setup (assuming that the tModels referenced are 
> defined):
> one business entity ("uddi:business:01") with a service ("udd:service:01") 
> with a categoryBag containing tModelKey in a keyedReference which evaluates 
> to "uddi:test01" and a keyValue which evalues "value-x" containing a binding 
> (uddi:binding:01) with a cateogryBag which has the tModelKey which evaluates 
> to "uddi:test02" and a keyValue which evaluates to "value-y"
> <businessEntity businessKey="uddi:business:01">
>         <name>uddi:business:01</name>
>         <businessServices>
>             <businessService businessKey="uddi:business:01" 
> serviceKey="uddi:service:01">
>                 <name>uddi:service:01</name>
>                 <bindingTemplates>
>                     <bindingTemplate  serviceKey="uddi:service:01" 
> bindingKey="uddi:binding:01">
>                         
> <accessPoint>http://www.testing.com/binding:01</accessPoint>
>                         <categoryBag>
>                             <keyedReference tModelKey="uddi:tmodel:01" 
> keyValue="value-y"/>
>                         </categoryBag>
>                     </bindingTemplate>
>                 </bindingTemplates>
>                 <categoryBag>
>                     <keyedReference tModelKey="uddi:tmodel:02" 
> keyValue="value-x"/>
>                 </categoryBag>
>             </businessService>
>         </businessServices>
>     </businessEntity>
> a second business entity ("uddi:business:02") has a service 
> ("udd:service:02") with a categoryBag containing tModelKey in a 
> keyedReference which evaluates to "uddi:test01" and a keyValue which evalues 
> "value-x" containing a binding (uddi:binding:02) with a cateogryBag which has 
> the tModelKey which evaluates to "uddi:test02" and a keyValue which evaluates 
> to "value-z"
> <businessEntity businessKey="uddi:business:01">
>         <name>uddi:business:01</name>
>         <businessServices>
>             <businessService businessKey="uddi:business:02" 
> serviceKey="uddi:service:02">
>                 <name>uddi:service:02</name>
>                 <bindingTemplates>
>                     <bindingTemplate  serviceKey="uddi:service:02" 
> bindingKey="uddi:binding:02">
>                         
> <accessPoint>http://www.testing.com/binding:02</accessPoint>
>                         <categoryBag>
>                             <keyedReference tModelKey="uddi:tmodel:01" 
> keyValue="value-z"/>
>                         </categoryBag>
>                     </bindingTemplate>
>                 </bindingTemplates>
>                 <categoryBag>
>                     <keyedReference tModelKey="uddi:tmodel:02" 
> keyValue="value-x"/>
>                 </categoryBag>
>             </businessService>
>         </businessServices>
>     </businessEntity>
> If the following query is performed:
> <find_service xmlns="urn:uddi-org:api_v3>
>       <findQualifiers>
>     <findQualifier>combineCategoryBags</findQualifier>
>   </findQualifiers>
>   <categoryBag>
>     <keyedReference keyValue="value-z" tModelKey="uddi:tmodel:01"/>
>               <keyedReference keyValue="value-x"tModelKey="uddi:tmodel:02"/>
>  </categoryBag>
> </find_service>
> If I am understanding the way the findQualifer is described in the 
> specification (the category bags for the service level and below are combined 
> for the purposes of the query),the expected service to be returned is 
> "uddi:service:02". When this query is performed, no services are returned 
> from the registry. Is this findQualifer implemented?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to