What is the most recommended method for conveying the license state to the perspective components in order to protect them ?
Your gateway hook is notified of the module's license state and any optional configuration keys you included within it. The simplest solution is to save the relevant information into private static fields of some "activation" class, or the hook class itself, and expose them via public static getter methods. Call the public static getters where you feel appropriate in your codebase.
Arguably, it is more efficient to attach listeners to your activation class and "push" the state when the module is notified of changes, but it is much more complex.
My question was more focused on transferring the license to the perspective component.
Up to this point, I see two possibilities.
The first is to transmit it through a message via the delegate.
And the second is to expose the license state with an endpoint and then retrieve it using a poller within the component.
I wonder if there are other methods available.
Which one is the most performance-efficient, and which one is the most secure?
I wouldn't try to enforce on the component side. Just check on the java side and send a fixed set of static component data when the trial expires.