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] [Comment Edited] (CXF-4811) Allow conduit match pattern to be customized.
Date Thu, 02 Jul 2015 15:52:08 GMT

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

Sergey Beryozkin edited comment on CXF-4811 at 7/2/15 3:51 PM:
---------------------------------------------------------------

Trying to build on Dan's idea:

{code:xml}
<http:conduitMapper conduit="service1Conduit" url="http://\$\{server.name\}:\$\{server.port\}/services/*"/>
{code}


was (Author: sergey_beryozkin):
Trying to build on Dan's idea:

<code:xml>
<http:conduitMapper conduit="service1Conduit" url="http://\$\{server.name\}:\$\{server.port\}/services/*"/>
</code>

> Allow conduit match pattern to be customized.
> ---------------------------------------------
>
>                 Key: CXF-4811
>                 URL: https://issues.apache.org/jira/browse/CXF-4811
>             Project: CXF
>          Issue Type: New Feature
>          Components: Integration
>    Affects Versions: 2.4.3
>            Reporter: Ivan Latysh
>            Priority: Critical
>
> Use-case:
>   Developed jaxrs client has no knowledge of the server URL until it is shipped to a
customer.
>   To address the issue, server name and port has been externalized and handled by a standard
{{PropertyPlaceholderConfigurer}}:
> {code}
> <jaxrs:client id="serviceClient"
> address="http://${server.name}:${server.port}/services/*"/>
> <context:property-placeholder/>
> <bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
> 		<property name="order" value="1"/>
> 		<property name="ignoreUnresolvablePlaceholders" value="false"/>
> </bean>
> {code}
> But currently http conduit can not be configured as match pattern is set the conduit
name, rather than a property.
> {code}
> <cxf-http:conduit name="http://localhost/services.*" />
> {code}
> The best option is to introduce custom URL Matchers, so conduit delegate actual URL matching
to a configurable implementation.
> Than a simple solution would be to extend org.apache.cxf.configuration.spring.ConfigurerImpl
and resolve the property placeholders before compiling the pattern in {{initWildcardDefinitionMap}}
method. But the poor architectural decisions led to {{PropertyResourceConfigurer}} to be non-reusable.
It supports rigid visitor pattern, and do not even provide a method to resolve a property
placeholder after {{postProcessBeanFactory}} has been called.
> So the dirty hack would be to configure pattern in the conduit property, rather in the
name.
> {code}
> <cxf-http:conduit id="service1Conduit">
>   <property name="url" value="http://${server.name}:${server.port}/services/*">
> </cxf-http:conduit>
> {code}



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

Mime
View raw message