[ 
https://issues.apache.org/jira/browse/CAMEL-16243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pawan Mundhra updated CAMEL-16243:
----------------------------------
    Description: 
 

Recently we upgraded our Application's overall camel version from 2.16.0 to 
3.4.4. We are using several camel components in our applications such as:

camel-jms, camel-restlet, camel-restlet, cale-zookeeper, camel-file, 
camel-rest, etc...

 

One of the component we used in our Application was camel-restlet component 
(version 2.16.0) where after migration to camel 3.x, we are facing issue in 
service start-up.

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]

 

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 
(as we need to use camel-jms component as well) and it seems that both 
camel-api-3.4 and camel-api-3.0.0-RC2 cannot be kept together as it gives me 
some other error if both these libraries are present in the classpath.

 

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.

  was:
 

Recently we upgraded our Application's overall camel version from 2.16.0 to 
3.4.4. We are using several camel components in our applications such as:

camel-jms, camel-restlet, camel-restlet, cale-zookeeper, camel-file, 
camel-rest, etc...

 

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]

 

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 
(as we need to use camel-jms component as well) and it seems that both 
camel-api-3.4 and camel-api-3.0.0-RC2 cannot be kept together as it gives me 
some other error if both these libraries are present in the classpath.

 

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.


> 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. We are using several camel components in our applications such as:
> camel-jms, camel-restlet, camel-restlet, cale-zookeeper, camel-file, 
> camel-rest, etc...
>  
> One of the component we used in our Application was camel-restlet component 
> (version 2.16.0) where after migration to camel 3.x, we are facing issue in 
> service start-up.
> 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]
>  
> 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 (as we need to use camel-jms component as well) and it seems that 
> both camel-api-3.4 and camel-api-3.0.0-RC2 cannot be kept together as it 
> gives me some other error if both these libraries are present in the 
> classpath.
>  
> 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)

Reply via email to