juddi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex O'Ree (JIRA)" <juddi-...@ws.apache.org>
Subject [jira] [Commented] (JUDDI-937) PolicyRoundRobin not working without service cache
Date Thu, 29 Oct 2015 11:27:27 GMT

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

Alex O'Ree commented on JUDDI-937:

ok, i'll explain further...

> the lookupEndpoint only fires when the bindingTemplate/accessPoint/useType=endPoint (all
other's are ignored, which is dumb IMO. The jUDDI REST endpoint handles other cases, why not
this one?)

A business has 0 or more services. a service has 0 or more bindings. a binding has 1 access
point with that has a string for the value (usually the URL to the service) and a string for
the type. The type, according to the spec can be "endPoint" which is where you execute the
service, "wsdlDeployment" which means use that for your client (or parse it for the actual
endpoint), and bindingRedirector and something else. The ServiceLocator.lookupEndpoint only
handles "endPoint" correctly. So if you've registered a service, the business/service/binding/accessPoint/type
has to be endPoint in order for it work.

The REST endpoint does not have this limitation and will resolve the execution endpoint of
a service given the service key.

ServiceLocator.lookupEndpoint, without the cache, cannot use round robin since there's (currently)
no way to get the topology object out. If this is a need for you, we can extend the code to
make that part feasible.

> PolicyRoundRobin not working without service cache
> --------------------------------------------------
>                 Key: JUDDI-937
>                 URL: https://issues.apache.org/jira/browse/JUDDI-937
>             Project: jUDDI
>          Issue Type: Bug
>          Components: juddi-client
>    Affects Versions: 3.3.1
>            Reporter: Matthieu Ghilain
>            Priority: Minor
>              Labels: cache, juddi, policy
> I use the following method in order to resolve an endpoint:
> {code:title=Resolve endpoint function|borderStyle=solid}
>  private String resolveEndpointForServiceID(String uddiServiceId) {
>         try {
>             UDDIClient uddiClient = new UDDIClient();
>             ServiceLocator serviceLocator = uddiClient.getServiceLocator("uddiv3");
>             serviceLocator.setPolicy(PolicyRoundRobin.class.getName());
>             return serviceLocator.lookupEndpoint(uddiServiceId);
>         } catch (Exception e) {
>             throw new EndpointResolutionFromUDDIException("Could not resolve endpoint
'"+uddiServiceId+"'.", e);
>         }
>     }
> {code}
> I have registered two different binding templates in juddi. Using this code I always
receive the same endpoint. This comes from the fact that the topology is reloaded each time
the lookupEndpoint is called because there is no cache. I guess that the service policy should
still be able to make a round robin between the binding templates even if no cache is used.

This message was sent by Atlassian JIRA

View raw message