-
Notifications
You must be signed in to change notification settings - Fork 74
Initial commit of Camel 3/4 upgrade rules - add stepwise upgrade rules #935
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
2511be3
to
c1b6fa8
Compare
@cunningt Thanks so much for your contribution Tom. |
Hi @PhilipCattanach - https://camel.apache.org/blog/2023/01/camel4roadmap/ shows the roadmap for Camel 4 - there's a vote going on right now for the third milestone release which will probably be this week. If the schedule posted is correct, 4.0 probably is released in a May/June timeframe. |
@cunningt - Just some feedback on camel3/camel2/xml-31-changes.windup.xml When dealing with Java classes Windup is far, far more efficient when executing rules that use the javaclass references when criteria. Rather than the filecontent pattern= , filename={*}.java Rule: classes-removed-camel31-00001 Rule: xml-removed-camel31-00001 Rule:xml-removed-camel31-00002 Rule:xml-moved-camel31-00001 Rule:xml-moved-camel31-00002 Rule:xml-moved-camel31-00002 Rule:xml-moved-camel31-00003 All windup.xml rules files need a corresponding windup.text.xml in the tests sub-folder. |
…s for Camel/Camel Spring Boot based on the upgrade guides for each release seen here https://camel.apache.org/manual/camel-3x-upgrade-guide.html and https://camel.apache.org/manual/camel-4-migration-guide.html
c1b6fa8
to
9ff0c13
Compare
@PhilipCattanach Thank you! I've gone ahead and changed all of the filecontent looking for *.java -> javaclass and changed all of the links to include the respective anchors to make them more specific. I'm working through creating the required test elements and it will probably take me a day or two more to supply them. The one question I have is on the link titles - I'd like to keep the link titles in a somewhat consistent format with the already-existing migration rules existing for camel 2-> 3 because I can see scenarios where someone wants to upgrade from Camel 2-> Camel 4, and I tried to mirror that (see : https://github.com/windup/windup-rulesets/blob/master/rules/rules-reviewed/camel3/camel2/component-changes.windup.xml#L36 for an example). Are the upper case link titles necessary? |
Hi @cunningt |
Added windup.test.xml for each windup.xml, tests for every rule, and data subfolders including .java / .properties / pom.xml files that will cause the rules to fire. Tested each rules file separately (example : |
@cunningt - Thanks so much for this substantive contribution to Windup. Awesome! |
@cunningt thanks for the contribution! Regarding naming, it would be good if you could make a couple changes so that it fits a bit more with the conventions that we generally use:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @cunningt, I have done a preliminary review. There are quite a few general things that need to be changed, in case you want to start with those. I'll take a look again when you go through these 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cunningt looks good, I have just left a couple of comments and questions, mostly:
- Property rules (
filecontent
) can be simplified to enhance performance - Wondering about some 7-pointers - you are the subject matter expert, so I'll leave it to you, I was just wondering if some of those rules really require a rearchitecture.
Hi! I'd like to add some camel upgrade rules to help users upgrade to various different camel versions between 3 and 4.
Camel has upgrade guides for each minor version between 3 and 4 -- https://camel.apache.org/manual/camel-3x-upgrade-guide.html - I've tried to create rules based on the information contained in these guides. The rules are a best effort at matching the changes based on severity and on importance in migration - they aren't complete with every change talked about in the guides but we will try to add more.
Additionally, a first effort at Camel 4 migration is included based on https://camel.apache.org/manual/camel-4-migration-guide.html. Camel 4 is not final yet, and I do not think the migration steps are final either, so the guide may change and we will try to add / change rules based on changes.