On Mon, Jan 28, 2013 at 10:14 PM, bp <bhaskar.d...@gmail.com> wrote: > Hi, > > If you would see my Route pasted below,I am using simple language in when > condition (e.g.<when> > <simple>${body.entity.subject} == 'Advertising'</simple>). > Instead of above statement I want something like: > <simple>${body.entity.subject} == > InquiryTypeEnum.ADVERTISING.nameValue()</simple>). > > I don't to achieve above whether simple language is okay or not. I was > trying with javaScript but no luck. >
You cannot do this with the simple language. You can use groovy, mvel, ognl or other strong languages for that. http://camel.apache.org/languages > Thank you in advance for the help. > > Here is my route: > <route id="other.inquiry.mailer" > > <from uri="direct:goToOther"/> > <unmarshal ref="xstream" /> > <convertBodyTo type="com.ebates.domain.inquiry.Message" /> > <transacted ref="required" /> > > <choice> > <when> > <simple>${body.entity.email} != null</simple> > <setHeader > headerName="X-Email-Type"><simple>${body.emailType}</simple></setHeader> > <setHeader > headerName="X-autologin"><simple>${body.loginHeader}</simple></setHeader> > <to uri="bean:debugProcessor"/> > <choice> > <when> > <simple>${body.entity.subject} == 'Advertising'</simple> > <setHeader > headerName="to"><simple>${properties:cs.inquiry.advertising.emailaddress}</simple></setHeader> > </when> > <when> > <simple>${body.entity.subject} == 'Affiliate Program'</simple> > <setHeader > headerName="to"><simple>${properties:cs.inquiry.affiliate_program.emailaddress}</simple></setHeader> > </when> > <otherwise> > <setHeader > headerName="to"><simple>${properties:cs.inquiry.default.emailaddress}</simple></setHeader> > </otherwise> > </choice> > <setHeader > headerName="subject"><simple>${body.entity.subject}</simple></setHeader> > <setHeader > headerName="from"><simple>${body.entity.email}</simple></setHeader> > <to ref="otherInquiryVelocity" /> > <to uri="direct:toConsumer"/> > > </when> > </choice> > </route> > > Here is my Java enum: > > public enum InquiryTypeEnum implements Serializable, BaseEnum { > > ADVERTISING(2L, "Advertising"), > > AFFILIATE_PROGRAM(3L, "Affiliate Program"), > > BECOME_AN_EBATES_MERCHANT(6L, "Become an Ebates Merchant"), > > CASH_BACK_CHECK(10L, "Cash Back Check"), > > private final String name; > private final Long value; > > private InquiryTypeEnum(final Long v, final String n) { > this.value = v; > this.name = n; > } > > public static InquiryTypeEnum fromValue(final Long v) { > for (final InquiryTypeEnum c : InquiryTypeEnum.values()) { > if (c.value.equals(v)) { > return c; > } > } > > return null; > } > > public static InquiryTypeEnum fromValue(final String n) { > for (final InquiryTypeEnum c : InquiryTypeEnum.values()) { > if (c.name.equalsIgnoreCase(n)) { > return c; > } > } > > return null; > } > } > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/How-do-I-use-Java-Enum-instead-of-a-string-into-my-route-in-spring-xml-tp5726445.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen ----------------- Red Hat, Inc. FuseSource is now part of Red Hat Email: cib...@redhat.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen