java.module.annotation
Annotation Type AllowShadowing


@Target(value=SUPERPACKAGE)
@Retention(value=RUNTIME)
public @interface AllowShadowing

Indicates that the shadowing check is disabled on the module instance of the corresponding module definition when shallow validation is performed initialization. This metadata annotation is applied to the development module, i.e. the superpackage construct.

For example,

    @Version("1.7.0")
    superpackage opensource.utils {
       // Exports classes
       export org.foo.utils.*;

       // Membership - all classes in the listed package
       member package org.foo.utils;
       ....
    }

    // Uses @AllowShadowing to mark a module to explicitly allow 
    // shadowing of classes from its imported modules. Otherwise,
    // shallow validation would fail.
    @Version("1.0")
    @AllowShadowing
    superpackage com.wombat.webservice {
       // The imported module is optional.
       @Optional
       @VersionConstraint([1.0, 2.0)")
       import opensource.utils;

         // Membership - all classes in the listed package
       member package org.foo.utils.;
         ....
    } 
 

Since:
1.7.0
Author:
Stanley M. Ho