[
https://issues.apache.org/jira/browse/CAMEL-16243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-16243.
---------------------------------
Resolution: Invalid
camel-restlet is removed, as documented in the migration guide. And its
deprecated in 2.x.
> camel-restlet : Compatibility issue of camel-restlet with camel-api library
> resulting in e
> "NoSuchMethodError:org.apache.camel.CamelContext.getRestConfiguration(Ljava/lang/String;Z)Lorg/apache/camel/spi/RestConfiguration"
> in RestletComponent class
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-16243
> URL: https://issues.apache.org/jira/browse/CAMEL-16243
> Project: Camel
> Issue Type: Bug
> Components: camel-restlet
> Environment: Open JDK 11.0.2
> Reporter: Pawan Mundhra
> Priority: Major
> Fix For: 3.x
>
>
>
> Recently we upgraded our Application's overall camel version from 2.16.0 to
> 3.4.4
> One of the component we used in our Application was camel-restlet component
> (version 2.16.0).
> Issue #1 : It seems camel removed the restlet component after 3.x. Could not
> find much documentation which would let us know how to migrate the existing
> camel-restlet component
> Issue #2 : We gave a try to upgrade the camel-restlet component to 3.0.0-RC2.
> But during start-up of our service, we faced an error as mentioned in the
> below stack trace.
> {code:java}
> Exception in thread "main" java.lang.NoSuchMethodError:
> org.apache.camel.CamelContext.getRestConfiguration(Ljava/lang/String;Z)Lorg/apache/camel/spi/RestConfiguration;
> at
> org.apache.camel.component.restlet.RestletComponent.doStart(RestletComponent.java:215)
> at
> org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3026)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.startServices(AbstractCamelContext.java:3032)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2759)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2658)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2621)
> at
> org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2453)
> at
> com.nri.csd.inf.console.service.GatewayService.startCamelContextIfNotStarted(GatewayService.java:201)
> at
> com.nri.csd.inf.console.service.GatewayService.postStart(GatewayService.java:100)
> at
> com.nri.csd.inf.console.service.AbstractLaunchableService.start(AbstractLaunchableService.java:216)
> at
> com.nri.csd.inf.console.ConsoleLauncher.main(ConsoleLauncher.java:96)
> {code}
> Found in the code that RestletComponent java class in camel-restlet-3.0.0-RC2
> version has an API doStart() in which at line 215, there is a call to
> CamelContext class's method getRestConfiguration("restlet", true) (class in
> camel-api jar).
>
> {code:java}
> 210 @Override
> 211 protected void doStart() throws Exception {
> 212 super.doStart();
> 213
> 214 // configure component options
> 215 RestConfiguration config =
> getCamelContext().getRestConfiguration("restlet", true);
> 216 // configure additional options on spark configuration
> 217 if (config.getComponentProperties() != null &&
> !config.getComponentProperties().isEmpty()) {
> 218 setProperties(this, config.getComponentProperties());
> 219 }
> 220
> 221 cleanupConverters(enabledConverters);
> 222
> 223 component.start();
> 2234 }
> {code}
> The API called at line 215 above (i.e. getRestConfiguration) seems to be
> removed from the class org.apache.camel.CamelContext in library camel-api
> during upgradation to 3.2 from 3.1.
> Refer this
> [https://camel.apache.org/manual/latest/camel-3x-upgrade-guide-3_2.html]
> It seems that there is incompatibility with camel-restlet 3.0.0-RC2 along
> with Camel 3.2 and above.
>
> However the above API in org.apache.camel.CamelContext in camel-api-3.0.0-RC2
> is modified but I am having a transitive dependency upon camel-api-3.4
> library and it seems that both camel-api-3.4 and camel-api-3.0.0-RC2 cannot
> be kept together.
>
> One solution I can think of is revert the downgrade the Camel version to 3.1
> instead of 3.4 which we would like to avoid.
> Please suggest what course of action can be taken for this issue with minimum
> impact or what is the compatibility of camel-restlet component and camel-api,
> camel-support libraries. We want all to be compatible with camel 3.4.0
> version.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)