On Tue, Jan 29, 2013 at 10:14 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > 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 >
I logged a ticket to improve simple language, as others have asked about this in the past https://issues.apache.org/jira/browse/CAMEL-6016 Also SpringEL supports this. So we should do the same in Camel. > > >> 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 -- 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