[ 
https://issues.apache.org/jira/browse/CAMEL-12343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16403682#comment-16403682
 ] 

ASF GitHub Bot commented on CAMEL-12343:
----------------------------------------

fhassak commented on issue #2252: CAMEL-12343 : refer to new constructor with 
defaultCamelContext for deprecated constructor
URL: https://github.com/apache/camel/pull/2252#issuecomment-373943230
 
 
   Conclusion : no Backward compatibility between version 2.19.2 and 2.20.2 
because i need to change my code. I really prefer to detect error at compile 
time instead of runtime...

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Using DefautMessage() and GenericFileMessage() without CamelContext throw 
> Exception
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-12343
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12343
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.20.0, 2.20.1, 2.20.2, 2.21.0
>            Reporter: Farès Hassak
>            Assignee: Claus Ibsen
>            Priority: Major
>
> Hello,
> I am using version 2.19.2 and try to migrate to version 2.20.2 (and then to 
> 2.21.0).
> Using DefautMessage() and GenericFileMessage() without CamelContext throw 
> Exception :
> {code:java}
> java.lang.IllegalArgumentException: CamelContext must be specified on: 
> Message[] at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:342)
> {code}
> In version 2.20.0, I see that these constructor was deprecated and new 
> contructors was introduced for this new feature 
> https://issues.apache.org/jira/browse/CAMEL-11149 :
> To remain better backward compatibility, i would suggest to refer the new 
> constructor in deprecated contructor  :
> {code:java}
>  @Deprecated
>     public DefaultMessage() {
>         this(new DefaultCamelContext()); //use new contructor with 
> DefaultCamelContext to avoid exception
>     }
>     public DefaultMessage(CamelContext camelContext) {
>         setCamelContext(camelContext);
>     }
> {code}
> {code:java}
>     @Deprecated
>     public GenericFileMessage() {
>         this(new DefaultCamelContext()); //use new contructor with 
> DefaultCamelContext to avoid exception
>     }
>     public GenericFileMessage(CamelContext camelContext) {
>         super(camelContext);
>     }
>     /**
>      * @deprecated use {@link #GenericFileMessage(CamelContext, GenericFile)}
>      */
>     @Deprecated
>     public GenericFileMessage(GenericFile<T> file) {
>         this(new DefaultCamelContext(), file); //use new contructor with 
> DefaultCamelContext to avoid exception
>     }
>     public GenericFileMessage(CamelContext camelContext, GenericFile<T> file) 
> {
>         super(camelContext);
>         this.file = file;
>     }
> {code}
> Otherwise, the deprecated constructeur must be deleted in order to detect 
> errors at compile time and not at runtime.
> Farès



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to