Hi, When I get a chance I was planning to work out how to get this working without using the environment stuff and using properties placeholder configurer
Sent from my Galaxy S2 On Mar 14, 2013 4:56 AM, "Oliver Moser" <[email protected]> wrote: > Hi Dan > > On 2013-03-13 18:42, Daniel Kulp wrote: > >> 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). >> > Thanks. > > On the other hand, I just finished upgrading to 2.7.3, and with this > version, Jason's approach (the > "**PropertyPlaceholderResolvingCo**nduitConfigurer") > seems to work. Looks like some things changed in this regard from 2.6 to > 2.7. > > However, I still have to explicitly add the Properties that holds the > endpoints urls (${client1.url} in my sample below) using > > ((**ConfigurableApplicationContext**)context).getEnvironment(). > getPropertySources().addFirst(**new > ResourcePropertySource(**additionalProperties)); > // <-- additionalProperties points to "/WEB-INF/backends-local.** > properties" > > in setApplicationContext() of the HTTPConduitConfigurer implementation. > I'm not sure why the properties that I have configured using > > <context:property-placeholder location="/WEB-INF/backends-** > local.properties"/> > > are not available at the time the HTTPConduitConfigurer is initialized. > Also played with depends-on, but that didn't do the trick. > > cheers > > > >> 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<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 >>> >> > -- > Oliver Moser >
