[
https://issues.apache.org/jira/browse/CAMEL-23629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-23629 started by Andrea Cosentino.
------------------------------------------------
> camel-irc - align Exchange header constant names with Camel naming convention
> -----------------------------------------------------------------------------
>
> Key: CAMEL-23629
> URL: https://issues.apache.org/jira/browse/CAMEL-23629
> Project: Camel
> Issue Type: Improvement
> Components: camel-irc
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.14.8, 4.18.3, 4.21.0
>
>
> The Exchange header constants defined in
> {{org.apache.camel.component.irc.IrcConstants}} use lowercase / dotted string
> values ({{irc.*}}) that do not follow the Camel naming convention
> ({{CamelIrc*}}). Examples:
> * {{IRC_MESSAGE_TYPE = "irc.messageType"}}
> * {{IRC_TARGET = "irc.target"}}
> * {{IRC_SEND_TO = "irc.sendTo"}}
> * {{IRC_USER_KICKED = "irc.user.kicked"}}
> * {{IRC_USER_HOST = "irc.user.host"}}
> * {{IRC_USER_NICK = "irc.user.nick"}}
> * {{IRC_USER_SERVERNAME = "irc.user.servername"}}
> * {{IRC_USER_USERNAME = "irc.user.username"}}
> * {{IRC_NUM = "irc.num"}}
> * {{IRC_VALUE = "irc.value"}}
> Sibling components ({{camel-jira}} in CAMEL-23576, {{camel-web3j}} in
> CAMEL-23578, {{camel-pdf}} in CAMEL-23579, {{camel-openstack}} in
> CAMEL-23580, {{camel-elasticsearch}} / {{camel-opensearch}} in CAMEL-23581,
> {{camel-github}} in CAMEL-23582, {{camel-arangodb}} in CAMEL-23585,
> {{camel-jt400}} in CAMEL-23587, {{camel-undertow}} in CAMEL-23588,
> {{camel-milo}} in CAMEL-23590, {{camel-shiro}} in CAMEL-23592, {{camel-solr}}
> in CAMEL-23597, and others) have already been migrated to put their Exchange
> header constants inside the {{Camel<Component>*}} namespace so they fall
> within the default {{HeaderFilterStrategy}} ({{Camel*}} /
> {{org.apache.camel.*}}) at transport boundaries. {{camel-irc}} is one of the
> remaining components in this family.
> h3. Proposed change
> Rename the *string values* of the constants to the {{CamelIrc*}} namespace,
> keeping the Java field names unchanged so routes that reference the constants
> symbolically continue to work without modification.
> {code:java}
> // Before
> String IRC_MESSAGE_TYPE = "irc.messageType";
> String IRC_TARGET = "irc.target";
> String IRC_SEND_TO = "irc.sendTo";
> String IRC_USER_KICKED = "irc.user.kicked";
> String IRC_USER_HOST = "irc.user.host";
> String IRC_USER_NICK = "irc.user.nick";
> String IRC_USER_SERVERNAME = "irc.user.servername";
> String IRC_USER_USERNAME = "irc.user.username";
> String IRC_NUM = "irc.num";
> String IRC_VALUE = "irc.value";
> // After
> String IRC_MESSAGE_TYPE = "CamelIrcMessageType";
> String IRC_TARGET = "CamelIrcTarget";
> String IRC_SEND_TO = "CamelIrcSendTo";
> String IRC_USER_KICKED = "CamelIrcUserKicked";
> String IRC_USER_HOST = "CamelIrcUserHost";
> String IRC_USER_NICK = "CamelIrcUserNick";
> String IRC_USER_SERVERNAME = "CamelIrcUserServername";
> String IRC_USER_USERNAME = "CamelIrcUserUsername";
> String IRC_NUM = "CamelIrcNum";
> String IRC_VALUE = "CamelIrcValue";
> {code}
> h3. Scope
> *
> {{components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConstants.java}}
> - constant values.
> *
> {{components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcProducer.java}}
> and {{IrcMessage.java}} reference the constants symbolically (via
> {{IrcConstants.IRC_*}}) - no source change required, only re-verify after the
> rename.
> * Integration tests that reference the literal string values:
> {{IrcPrivmsgIT}}, {{IrcMultiChannelRouteIT}}, {{IrcsListUsersIT}} - update to
> use the new {{CamelIrc*}} values or the {{IrcConstants}} field references.
> * {{components/camel-irc/src/main/docs/irc-component.adoc}} - update the
> message-headers reference.
> * Regenerate the catalog / endpoint-DSL artifacts under
> {{catalog/camel-catalog/src/generated/}} and
> {{components/camel-irc/src/generated/}} ({{mvn -DskipTests install}}).
> * Add a "camel-irc - potential breaking change" entry to
> {{docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc}}
> listing the rename table, matching the pattern used for the other sub-tasks
> of CAMEL-23577. Mirror entries are added to the 4.18 and 4.14 upgrade guides
> as part of the backports.
> h3. Compatibility
> The Java field names remain unchanged, so routes that reference the constants
> symbolically ({{header(IrcConstants.IRC_SEND_TO)}},
> {{.setHeader(IrcConstants.IRC_TARGET, ...)}}, etc.) continue to work without
> modification. Routes that set or read the headers using the literal
> {{"irc.*"}} string values must be updated to the new {{CamelIrc*}} values;
> the upgrade guide documents this as a potential breaking change.
> h3. Note
> {{camel-irc}} was deprecated in 4.21 because its underlying upstream library
> has had no stable release since 2007. The component still ships in 4.20.x,
> the 4.18.x LTS and the 4.14.x LTS lines, and the rename is applied to all of
> them as part of this issue.
> Tracker: CAMEL-23577
--
This message was sent by Atlassian Jira
(v8.20.10#820010)