[
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