Hi everyone,

I have a problem using the exclusiveReadLockStrategy for Ftp2 component.
I implemented the GenericFileExclusiveReadLockStrategy interface in my class
and imported the bean in the DSL and then specified
the exclusiveReadLockStrategy=#mybean on the FTP component URI (like I saw
here:
http://camel.465427.n5.nabble.com/How-to-Use-exclusiveReadLockStrategy-property-in-file-component-td604330.html
)

The problem is I get this error:

javax.jbi.JBIException: java.lang.Exception: Error deploying SU
msp-endpoints-ftp-test
at
org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.install(ServiceAssemblyInstaller.java:101)[93:org.apache.servicemix.jbi.deployer:1.4.0.fuse-01-09]
at
org.apache.servicemix.jbi.deployer.impl.Deployer.onBundleStarted(Deployer.java:334)[93:org.apache.servicemix.jbi.deployer:1.4.0.fuse-01-09]
at
org.apache.servicemix.jbi.deployer.impl.Deployer.bundleChanged(Deployer.java:264)[93:org.apache.servicemix.jbi.deployer:1.4.0.fuse-01-09]
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:919)[osgi-3.6.0.v20100517.jar:]
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)[osgi-3.6.0.v20100517.jar:]
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149)[osgi-3.6.0.v20100517.jar:]
at
org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1349)[osgi-3.6.0.v20100517.jar:]
at
org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1300)[osgi-3.6.0.v20100517.jar:]
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:380)[osgi-3.6.0.v20100517.jar:]
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)[osgi-3.6.0.v20100517.jar:]
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.start(DirectoryWatcher.java:1136)[6:org.apache.felix.fileinstall:3.0.2]
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.start(DirectoryWatcher.java:1122)[6:org.apache.felix.fileinstall:3.0.2]
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1115)[6:org.apache.felix.fileinstall:3.0.2]
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:433)[6:org.apache.felix.fileinstall:3.0.2]
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:241)[6:org.apache.felix.fileinstall:3.0.2]
Caused by: java.lang.Exception: Error deploying SU msp-endpoints-ftp-test
at
org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.deploySUs(ServiceAssemblyInstaller.java:213)[93:org.apache.servicemix.jbi.deployer:1.4.0.fuse-01-09]
at
org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.install(ServiceAssemblyInstaller.java:85)[93:org.apache.servicemix.jbi.deployer:1.4.0.fuse-01-09]
... 14 more
Caused by: javax.jbi.management.DeploymentException: <component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message";>
<component-name>servicemix-camel</component-name>
<component-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-msg><msg-loc-info><loc-token/><loc-message>Could not deploy
xbean service unit</loc-message></msg-loc-info></task-status-msg>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token />
<loc-message>org.apache.camel.FailedToCreateRouteException: Failed to create
route route24: Route[[From[ftp://ftp-test@xxxx/MSP-ORDERS-TEST?pas...
because of Failed to resolve endpoint:
ftp://ftp-test@xxxx/MSP-ORDERS-TEST?binary=true&exclusiveReadLockStrategy=%23lockStrategy&move=.archive&moveFailed=.error&password=xxxx
due to: Could not find a suitable setter for property:
exclusiveReadLockStrategy as there isn't a setter method with same type:
de.edigrid.maspero.FtpChangedLockStrategy nor type conversion possible: No
type converter available to convert from type:
de.edigrid.maspero.FtpChangedLockStrategy to the required type:
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy with
value de.edigrid.maspero.FtpChangedLockStrategy@38a10fbf</loc-message>
<stack-trace><![CDATA[org.apache.camel.RuntimeCamelException:
org.apache.camel.FailedToCreateRouteException: Failed to create route
route24: Route[[From[ftp://ftp-test@xxxx/MSP-ORDERS-TEST?pas... because of
Failed to resolve endpoint:
ftp://ftp-test@xxxx/MSP-ORDERS-TEST?binary=true&exclusiveReadLockStrategy=%23lockStrategy&move=.archive&moveFailed=.error&password=xxxx
due to: Could not find a suitable setter for property:
exclusiveReadLockStrategy as there isn't a setter method with same type:
de.edigrid.maspero.FtpChangedLockStrategy nor type conversion possible: No
type converter available to convert from type:
de.edigrid.maspero.FtpChangedLockStrategy to the required type:
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy with
value de.edigrid.maspero.FtpChangedLockStrategy@38a10fbf
at
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1139)
at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:103)
at
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:238)
at
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
at
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
at
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:88)
at
org.apache.servicemix.camel.CamelSpringDeployer.deploy(CamelSpringDeployer.java:76)
at
org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
at
org.apache.servicemix.jbi.deployer.artifacts.ServiceUnitImpl.deploy(ServiceUnitImpl.java:104)
at
org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.deploySUs(ServiceAssemblyInstaller.java:207)
at
org.apache.servicemix.jbi.deployer.impl.ServiceAssemblyInstaller.install(ServiceAssemblyInstaller.java:85)
at
org.apache.servicemix.jbi.deployer.impl.Deployer.onBundleStarted(Deployer.java:334)
at
org.apache.servicemix.jbi.deployer.impl.Deployer.bundleChanged(Deployer.java:264)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:919)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149)
at
org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1349)
at
org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1300)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:380)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.start(DirectoryWatcher.java:1136)
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.start(DirectoryWatcher.java:1122)
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1115)
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:433)
at
org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:241)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create
route route24: Route[[From[ftp://ftp-test@xxxx/MSP-ORDERS-TEST?pas...
because of Failed to resolve endpoint:
ftp://ftp-test@xxxx/MSP-ORDERS-TEST?binary=true&exclusiveReadLockStrategy=%23lockStrategy&move=.archive&moveFailed=.error&password=xxxx
due to: Could not find a suitable setter for property:
exclusiveReadLockStrategy as there isn't a setter method with same type:
de.edigrid.maspero.FtpChangedLockStrategy nor type conversion possible: No
type converter available to convert from type:
de.edigrid.maspero.FtpChangedLockStrategy to the required type:
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy with
value de.edigrid.maspero.FtpChangedLockStrategy@38a10fbf
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:166)
at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:700)
at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1623)
at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1412)
at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1321)
at
org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:164)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1299)
at
org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:203)
at
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:101)
... 26 more
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to
resolve endpoint:
ftp://ftp-test@xxxx/MSP-ORDERS-TEST?binary=true&exclusiveReadLockStrategy=%23lockStrategy&move=.archive&moveFailed=.error&password=xxxx
due to: Could not find a suitable setter for property:
exclusiveReadLockStrategy as there isn't a setter method with same type:
de.edigrid.maspero.FtpChangedLockStrategy nor type conversion possible: No
type converter available to convert from type:
de.edigrid.maspero.FtpChangedLockStrategy to the required type:
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy with
value de.edigrid.maspero.FtpChangedLockStrategy@38a10fbf
at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:448)
at
org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:47)
at
org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:176)
at
org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:110)
at
org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:116)
at
org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72)
at
org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:88)
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:755)
at
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:161)
... 36 more
Caused by: java.lang.IllegalArgumentException: Could not find a suitable
setter for property: exclusiveReadLockStrategy as there isn't a setter
method with same type: de.edigrid.maspero.FtpChangedLockStrategy nor type
conversion possible: No type converter available to convert from type:
de.edigrid.maspero.FtpChangedLockStrategy to the required type:
org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy with
value de.edigrid.maspero.FtpChangedLockStrategy@38a10fbf
at
org.apache.camel.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:341)
at
org.apache.camel.util.EndpointHelper.setReferenceProperties(EndpointHelper.java:250)
at
org.apache.camel.impl.DefaultComponent.setProperties(DefaultComponent.java:199)
at
org.apache.camel.component.file.GenericFileComponent.createEndpoint(GenericFileComponent.java:65)
at
org.apache.camel.component.file.GenericFileComponent.createEndpoint(GenericFileComponent.java:36)
at
org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:75)
at
org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:430)
... 44 more

This could be because I'm importing Camel Core via Maven in order to be able
to compile my custom strategy class and Servicemix is running the Camel from
another bundle so the classes are not compatible?

Is there any workaround for this? I'm trying to make a Changed lock strategy
for FTP component, I'll contribute it to Camel when it's done but I just
need to run it before finishing it.

Thank you for your time.
Laurentiu Trica

Reply via email to