With some googling I found the solution. Defined the marshaler like this:
<file:marshaler>
      <bean class="org.apache.servicemix.components.util.DefaultFileMarshaler">
        <property name="fileName">
            <bean
class="org.apache.servicemix.expression.JAXPStringXPathExpression">
                   <constructor-arg value="concat('filePrefix-', /someElement, 
'.xml')" />
            </bean>
        </property>
      </bean>
    </file:marshaler>

Works like a charm. :)


Cheers,
- Jussi -


On Fri, Jan 15, 2010 at 5:15 PM, Jussi Nummelin
<[email protected]> wrote:
> Hi,
>
> I'm trying to setup a file-sender endpoint where I'd like to change
> the file name based on the message content.
>
> In the SVN, there is a test case where the marshaler is configured like this:
> <bean class="org.apache.servicemix.components.util.DefaultFileMarshaler"
> id="defaultFileMarshaler">
>      <property name="fileName"><value>concat($name, '.xml')</value></property>
>  </bean>
>
>
> What happens in my environment is that I get the file name like this:
> (No matter what I put as the xpath)
> concat($name, '.xml')
>
> So instead of using xpath, it just takes file name as specified in the 
> property.
>
> So the question is, how to properly define the xpath for the default
> marshaler. I know it should be possible since I remeber using it a
> while ago with some older version of SMX. :)
>
> Btw, I'm using 3.3.1 version and the file component version is 2009.01
>
>
> Cheers,
> - Jussi -
>

Reply via email to