cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-6865) Add cache for target resouce method matching
Date Fri, 04 Nov 2016 17:06:58 GMT

     [ 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: 3.1.9
                   3.2.0

> 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.9
>
>         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)

Mime
View raw message