On Mar 13, 2013, at 10:07 AM, Oliver Moser <[email protected]> wrote:

> Hi Glen
> 
> On 2013-03-13 14:38, Glen Mazza wrote:
>> I don't have an answer to your question, but to clarify, are you
>> saying that if you upgraded to the latest CXF 2.7.3 Jason's approach
>> would work for you?  (Is doing such an upgrade an option for you if it
>> would?)
> I don't know if upgrading would make Jason's approach work for me, but 
> somehow I assumed that his approach was intended for CXF 2.4 (jira says 
> affected version 2.4.3)
> 
> Anyways, I can give it a try an upgrade to CXF 2.7, but I'm not sure if that 
> will help.
> 
> Question for me that still remains is how to replace the default configurer, 
> so that I can handle the property placeholders in my own implementation.

You can always do a:

Configurer cfg = bus.getExtension(Configurer.class);
cfg = new MyCustomConfigurer(cfg);  
bus.setExtension(cfg, Configurer.class);

where MyCustomConfigurer wrappers the original and delegates to it for anything 
you don't handle yourself (conduits).

Dan




> 
> cheers
> 
> Oliver
> 
> 
>> 
>> Glen
>> 
>> On 03/13/2013 06:32 AM, Oliver Moser wrote:
>>> Hi Glen
>>> 
>>> On 2013-03-12 22:03, Glen Mazza wrote:
>>>> Hmm.  http-conf configuration is for a specific port, and it's
>>>> presently assumed that the properties for that port would be the same
>>>> regardless of the client connecting to it.  Dan Kulp informed me on
>>>> IRC there's already a JIRA request to provide something quite similar
>>>> to what you're requesting
>>>> (https://issues.apache.org/jira/browse/CXF-4811).
>>> I had a look at the jira. However, the approach Jason posted does not work 
>>> for me.
>>> 
>>> I'm using cxf 2.6.1, and the PatternSyntaxException happens during 
>>> initialization of the spring bus.
>>> 
>>> setApplicationContext() in SpringBus.java also sets the various extensions, 
>>> amongst them
>>> 
>>>    ...
>>>    setExtension(new ConfigurerImpl(applicationContext), Configurer.class);
>>>    ...
>>> 
>>> ConfigurerImpl parses the bean definitions for wildcards (via 
>>> initWildcardDefinitionMap()), and this is where the PatternException occurs.
>>> 
>>> So, is there a way to replace the default configurer with a custom 
>>> configurer that basically does what Jasons custom conduit configurer does? 
>>> I.e. first replace property placeholders and run the pattern matcher on the 
>>> resulting string?
>>> 
>>> cheers
>>> 
>>> Oliver
>>> 
>>> 
>>> 
>>>> 
>>>> It would be messy, but if you configure two configuration files, one
>>>> for each client, each having a different http-conf configuration, and
>>>> reference them from the same Java class, that *might* work (unsure -
>>>> haven't tested it.)
>>>> 
>>>> Glen
>>>> 
>>>> On 03/12/2013 11:27 AM, Oliver Moser wrote:
>>>>> Hi
>>>>> 
>>>>> I recently stumbled over a configuration issue with http conduits that 
>>>>> i'm still not able to resolve.
>>>>> 
>>>>> I have two jaxws:clients configured that have the same service class 
>>>>> associated:
>>>>> 
>>>>>    <jaxws:client id="client1"
>>>>>                  serviceClass="a.b.c.PortType"
>>>>>                  address="${client1.url}"
>>>>>                  username="${client1.username}"
>>>>>                  password="${client1.password}">
>>>>>    </jaxws:client>
>>>>> 
>>>>>    <jaxws:client id="client2"
>>>>>                  serviceClass="a.b.c.PortType"
>>>>>                  address="${client2.url}"
>>>>>                  username="${client2.sysid}"
>>>>>                  password="${client2.password}">
>>>>>    </jaxws:client>
>>>>> 
>>>>> How can I configure two seperate http-conf:conduits that have different 
>>>>> settings for proxy, timeout etc.? I cannot reference it via 
>>>>> "{http://acme.com/}PortType"; since they are the same for both clients, 
>>>>> nor can I use wildcards. What would work is if I could use the property 
>>>>> placeholders for the URLs, since the endpoints are different:
>>>>> 
>>>>> 
>>>>>    <http-conf:conduit name="${client1.url}">
>>>>>        <http-conf:client ConnectionTimeout="10000"
>>>>>                          ReceiveTimeout="20000"
>>>>>                          ProxyServer="${proxy.host}"
>>>>>                          ProxyServerPort="${proxy.port}"/>
>>>>>    </http-conf:conduit>
>>>>> 
>>>>>    <http-conf:conduit name="${client2.url}">
>>>>>        <http-conf:client ConnectionTimeout="30000"
>>>>>                          ReceiveTimeout="40000"/>
>>>>>    </http-conf:conduit>
>>>>> 
>>>>> However, a regex is expected in this case, and hence this try fails with 
>>>>> a PatternSyntaxException.
>>>>> 
>>>>> anyone got an idea on how to solve this? Maybe I miss something.
>>>>> 
>>>>> cheers
>>>>> 
>>> 
> 
> -- 
> Oliver Moser

-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to