Given:
A
and B
, where B
imports A
.A
exports external.class1
. It defines but does not export external.class1.secretProvider
, internal.SharedSecrets
and internal.class2
(more on these below).A
uses the SharedSecrets mechanism to grant external.class1
access to private methods in internal.class2
using external.class1.secretProvider
.I wish to grant external.class3
(defined in Module B
) access to private methods in internal.class2
but seeing as internal.SharedSecrets
and external.class1.secretProvider
are not exported by A
I have no way of doing so.
Is there a way for B
to access to A
's secrets without exporting them for the whole world to see?
Is there a way for B to access to A's secrets without exporting them for the whole world to see?
If I am not getting the question wrong, you can use qualified exports to make sure you export those packages just to a specific (list of) module. You can do so as :
module A {
exports external.class1.secretProvider to B;
exports internal.SharedSecrets to B;
// ... rest of your declarations
}