[ 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:53 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)