Thanks Daniel,

this was pretty much the conclusion that we'd come to as well.

cheers,

j

On Mon, 2008-06-02 at 16:28 -0400, Daniel Kulp wrote:
> Apparently not supported...   :-(
> 
> I've been googling a bit and discovered that it's pretty much  
> impossible to do this from custom namespace BeanDefintionParsers that  
> process the full DOM element themselves.   In our case, we feed the  
> DOM element into JAXB to have it parse it into the JAXB bean that was  
> generated from the schema with the jaxb code generator.
> 
> The PropertyPlaceholderConfigurer thing only looks at the  
> BeanDefinition arguments that are "String", "List", and "Map" types  
> (and other BeanDefinitions).   Thus, it cannot dig into JAXB things  
> that we create to sub in values (and it wouldn't be able to since in  
> the JAXB objects, the type could be something like an int that would  
> hold the property).
> 
> I have it semi-working by writing the DOM element to a string and  
> using a factory to re-parse that string later in the factory method.    
> Thus, Spring will see the big long string, sub in the vars, and then  
> we'll re-parse into JAXB.   Kind of sucks, but at least semi-works.
> 
> The "better" solution would probably be to write a JAXB plugin or  
> something that would process the DOM element and build up a spring  
> BeanDefinition instead of an actual JAXB bean.   That's probably quite  
> complex though.   We might be able to do it with an XJC plugin that  
> would generate a special "SpringParser" thing for each bean.   I  
> definitely need to think about this some more.
> 
> In anycase, if I can get the tests passing with my hack, I'll commit  
> it, but I'm really not happy about the solution.  It smells of crappy  
> code.
> 
> Dan
> 
> 
> 
> On May 27, 2008, at 11:44 PM, Jason Dwyer wrote:
> 
> > hi,
> >
> > we've been using the SOAP/JMS transport with cxf happily for a  
> > couple of
> > months, and have come to a point where we're setting up deployment
> > topologies for production environments, and need to make the values  
> > for
> > the jms destination/address configurable.
> >
> > however, it appears that due to the way cxf loads up beans
> > automagically, there is no way we are able to reference property
> > placeholders for the values we want to configure.
> >
> > eg:
> >
> > <beans>
> > ...
> >             <bean id="propertyConfigurer"
> >
> > class 
> > = 
> > "org 
> > .springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> >             <property name="location">
> >                     <value>classpath:jms.properties</value>
> >             </property>
> >     </bean>
> > ...
> >
> >     <jms:destination
> >             name="{http://some.namespace.com}AccountServicePort.jms- 
> > destination">
> >             <jms:address destinationStyle="queue"
> >                     jndiConnectionFactoryName="ConnectionFactory"
> >                     jndiDestinationName="${acccount.queue.name}"
> >                     connectionUserName="${jms.username}"
> >                         connectionPassword="${jms.password}">
> >                     <jms:JMSNamingProperty 
> > name="java.naming.factory.initial"
> >                             value="${connectionFactory.class}" />
> >                     <jms:JMSNamingProperty name="java.naming.provider.url"
> >                             value="${jms.host.url}" />
> >             </jms:address>
> >     </jms:destination>
> >
> > </beans>
> >
> > and in jms.properties, we set up the values as per standard
> > propertyPLaceholderConfigurer practice.
> >
> >
> > we've tried moving the jms:destinations into cxf.xml in the root of  
> > the
> > classpath, and let cxf find it by itself, to no avail, as well as
> > putting all the definitions into our standard applicationContext.xml
> > which is loaded by the cxf servlet ( as well as programatically with a
> > ClassPathXmlApplicationContext ).
> >
> >
> > is there a viable workaround for this?
> >
> > thanks in advance,
> >
> > j.dwyer
> 
> ---
> Daniel Kulp
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
> 
> 
> 
> 

Reply via email to