[ 
https://issues.apache.org/jira/browse/CXF-6865?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Beryozkin updated CXF-6865:
----------------------------------
    Fix Version/s:     (was: 3.0.10)
                       (was: 3.1.7)
                   3.1.8

> Add cache for target resouce method matching
> --------------------------------------------
>
>                 Key: CXF-6865
>                 URL: https://issues.apache.org/jira/browse/CXF-6865
>             Project: CXF
>          Issue Type: Improvement
>          Components: JAX-RS
>    Affects Versions: 3.1.6, 3.0.9
>         Environment: mac, windows
>            Reporter: Neal Hu
>             Fix For: 3.2.0, 3.1.8
>
>         Attachments: JAXRSInInterceptor.patch, ResourceMethodCache.java
>
>
> Find the target resouce method in JAXRSInInterceptor is time comsuming:
> JAXRSInInterceptor.java:159==>JAXRSUtils.selectResourceClass(resources, 
> rawPath, message);
> Adding cache for the ori, matchedvalues and mediatype will improve the 
> performence.
> The bottleneck of the CXF implementation is recursiive searching the target 
> root resouce classes.
> {code:java}
> String ckey = message.get(Message.BASE_PATH) + ":" + rawPath + ":" + 
> httpMethod + ":" + requestContentType + ":" + acceptTypes;
>         if (resourceMethodCache != null) {
>             ResourceMethodCache rmCache = resourceMethodCache.get(ckey);
>             if (rmCache != null) {
>                 ori = rmCache.getOperationResourceInfo();
>                 matchedValues = rmCache.getValues();
>                 String mediaType = rmCache.getMediaType();
>                 if (!ori.isSubResourceLocator() && mediaType != null) {
>                     message.getExchange().put(Message.CONTENT_TYPE, 
> mediaType);
>                 }
>                 setExchangeProperties(message, exchange, ori, matchedValues, 
> resources.size());
>                 shouldFind = false;
>             }
>         }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to