[ https://issues.apache.org/activemq/browse/CAMEL-1350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=62173#action_62173 ]
Bengt Rodehav commented on CAMEL-1350: -------------------------------------- Yes, the concept of many consumers is a bit new to me since that's a possibility that now exists (a good one I think). However, isn't it up to the developer (the user of camel-quickfix) to make a choice whether or not the message should be resent. Perhaps it's possible to mark the exchange as being resent or "retried". Perhaps some of the more experienced Camel guys could comment on that. I think that's being used in other parts of Camel. A property on the exchange could even have a counter indicating if it's the first, second etc retry. Nevertheless, it's probably true that one would not like to cause a resend too often. I think you know much better than me when this is desirable. One concern I have is guaranteed delivery. I don't want QuickFix/J to falsely believe that the message was taken care of before I have been able to store it persistently, e g in a database or or on a JMS queue. I think this is a very relevant scenario that must be addressed. E g imagine that I receive an ExecutionReport (I mainly work with back-office systems), it passes along my Camel route but before it reaches the point where it's stored in my ActiveMQ persistent queue, my computer stops (no power). Where does that leave me? Will I receive that ExecutionReport again (from QuickFix/J) or is it lost? Pluggable interceptors sounds like a very good idea. Are you planning on using Camel's interceptor concept? > camel-quickfix component in apache camel distribution > ----------------------------------------------------- > > Key: CAMEL-1350 > URL: https://issues.apache.org/activemq/browse/CAMEL-1350 > Project: Apache Camel > Issue Type: New Feature > Environment: <properties> > <camel-version>2.0-SNAPSHOT</camel-version> > <fuse-version>2.x-fuse-SNAPSHOT</fuse-version> > <activemq-version>5.2.0</activemq-version> > <quickfix-version>1.3.3</quickfix-version> > <mina-version>1.1.0</mina-version> > <slf4j-version>1.5.6</slf4j-version> > </properties> > Reporter: Charles Moulliard > Assignee: Hadrian Zbarcea > Fix For: 2.5.0 > > Attachments: camel-quickfix-2.zip, camel-quickfix.patch, > camel-quickfix.zip, camel-quickfix.zip, QuickFixDataFormat.java, > reportincident.quickfix.zip > > > Hi, > ATTENTION: Ignoring converter type: org.apache.camel.fix.FixConverter as a > dependent class could not be found: java.lang.NoClassDefFoundError: > biz/c24/io/api/data/DataType > java.lang.NoClassDefFoundError: biz/c24/io/api/data/DataType > at java.lang.Class.getDeclaredMethods0(Native Method) > at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) > at java.lang.Class.getDeclaredMethods(Class.java:1791) > at > org.apache.camel.impl.converter.AnnotationTypeConverterLoader.loadConverterMethods(AnnotationTypeConverterLoader.java:147) > at > org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:78) > at > org.apache.camel.impl.converter.DefaultTypeConverter.checkLoaded(DefaultTypeConverter.java:260) > at > org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:95) > at > org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:71) > at > org.apache.camel.util.IntrospectionSupport.convert(IntrospectionSupport.java:263) > at > org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:221) > at > org.apache.camel.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:188) > at > org.apache.camel.impl.DefaultComponent.setProperties(DefaultComponent.java:213) > at > org.apache.camel.component.file.GenericFileComponent.createEndpoint(GenericFileComponent.java:63) > at > org.apache.camel.component.file.GenericFileComponent.createEndpoint(GenericFileComponent.java:33) > at > org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:81) > at > org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:330) > at > org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:54) > at org.apache.camel.model.RouteType.resolveEndpoint(RouteType.java:96) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:106) > at > org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:112) > at org.apache.camel.model.FromType.resolveEndpoint(FromType.java:72) > at > org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:81) > at org.apache.camel.model.RouteType.addRoutes(RouteType.java:239) > at org.apache.camel.model.RouteType.addRoutes(RouteType.java:86) > at > org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:661) > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:651) > at > org.apache.camel.spring.SpringCamelContext.maybeDoStart(SpringCamelContext.java:166) > at > org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:161) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at > org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:96) > at > org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:115) > at > org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78) > at > org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49) > at > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76) > at > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274) > at > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736) > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383) > at > org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) > at > org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) > at > org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:232) > at org.apache.camel.spring.Main.doStart(Main.java:186) > at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:49) > at org.apache.camel.util.MainSupport.run(MainSupport.java:121) > at org.apache.camel.util.MainSupport.run(MainSupport.java:299) > at org.apache.camel.spring.Main.main(Main.java:98) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.camel.maven.RunMojo$1.run(RunMojo.java:396) > at java.lang.Thread.run(Thread.java:619) > The org.apache.camel.fix.FixConverter class uses proprietary classes : > import biz.c24.io.api.data.BooleanDataType; > import biz.c24.io.api.data.CharDataType; > import biz.c24.io.api.data.ComplexDataObject; > import biz.c24.io.api.data.ComplexDataType; > import biz.c24.io.api.data.DataType; > import biz.c24.io.api.data.DateDataType; > import biz.c24.io.api.data.Element; > import biz.c24.io.api.data.IntDataType; > import biz.c24.io.api.data.NumberDataType; > import biz.c24.io.api.data.StringDataType; > import biz.c24.io.api.presentation.TextualSource; > import biz.c24.io.fix42.NewOrderSingleElement; > Except if those classes are part of open source community but How can I use > this component without Artix Data Service ? > ex config : > <route> > <from uri="fixserver:banzai-to-camel.cfg" /> > <to uri="log:quickfix" /> > </route> -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.