Replace I18n Proxytoys with ByteBuddy (MAGNOLIA-7617)

[MAGNOLIA-7431] Replace I18n Proxytoys instrumentation logic with ByteBuddy Created: 19/Dec/18  Updated: 03/Sep/19  Resolved: 02/Apr/19

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: None
Fix Version/s: 6.1

Type: Sub-task Priority: Neutral
Reporter: Aleksandr Pchelintcev Assignee: Aleksandr Pchelintcev
Resolution: Fixed Votes: 1
Labels: i18n, innovation_days, proxy, tech-debt
Remaining Estimate: 0d
Time Spent: 5.5d
Original Estimate: Not Specified

Issue Links:
Relates
relates to MAGNOLIA-7433 Replace CGLIB based MutableWrapper im... Closed
causality
is causing MGNLCTS-103 Exported translation file in Magnolia... Closed
Template:
Team: Foundation

 Description   
  • CGLIB (and esp. Proxytoys) is not actively maintained at the moment whereas ByteBuddy is developed and updated on a regular basis and has a good support online by the author.
  • CGLIB generates proxy which does decoration/method dispatching in Runtime, adding quite a lot of penalty on interaction with enhanced definitions (any method call would result in reflection-based look-ups, annotation inspection etc). ByteBuddy in turn generates method bytecode that "fuses" the delegates in, resulting in close to none overhead in runtime.
  • ByteBuddy API and logic is much cleaner and elegant than of ProxyToys, which leads to the easier to maintain code on our side.

Generated at Mon Feb 12 04:23:42 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.