697 * <p> This method is safe for concurrent use and so allows multiple agents
698 * to instrument and update the same module at around the same time. </p>
699 *
700 * @param module the module to redefine
701 * @param extraReads the possibly-empty set of additional modules to read
702 * @param extraExports the possibly-empty map of additional packages to export
703 * @param extraOpens the possibly-empty map of additional packages to open
704 * @param extraUses the possibly-empty set of additional services to use
705 * @param extraProvides the possibly-empty map of additional services to provide
706 *
707 * @throws IllegalArgumentException
708 * If {@code extraExports} or {@code extraOpens} contains a key
709 * that is not a package in the module; if {@code extraExports} or
710 * {@code extraOpens} maps a key to an empty set; if a value in the
711 * {@code extraProvides} map contains a service provider type that
712 * is not a member of the module or an implementation of the service;
713 * or {@code extraProvides} maps a key to an empty list
714 * @throws NullPointerException if any of the arguments are {@code null} or
715 * any of the Sets or Maps contains a {@code null} key or value
716 * @since 9
717 */
718 void redefineModule(Module module,
719 Set<Module> extraReads,
720 Map<String, Set<Module>> extraExports,
721 Map<String, Set<Module>> extraOpens,
722 Set<Class<?>> extraUses,
723 Map<Class<?>, List<Class<?>>> extraProvides);
724 }
|
697 * <p> This method is safe for concurrent use and so allows multiple agents
698 * to instrument and update the same module at around the same time. </p>
699 *
700 * @param module the module to redefine
701 * @param extraReads the possibly-empty set of additional modules to read
702 * @param extraExports the possibly-empty map of additional packages to export
703 * @param extraOpens the possibly-empty map of additional packages to open
704 * @param extraUses the possibly-empty set of additional services to use
705 * @param extraProvides the possibly-empty map of additional services to provide
706 *
707 * @throws IllegalArgumentException
708 * If {@code extraExports} or {@code extraOpens} contains a key
709 * that is not a package in the module; if {@code extraExports} or
710 * {@code extraOpens} maps a key to an empty set; if a value in the
711 * {@code extraProvides} map contains a service provider type that
712 * is not a member of the module or an implementation of the service;
713 * or {@code extraProvides} maps a key to an empty list
714 * @throws NullPointerException if any of the arguments are {@code null} or
715 * any of the Sets or Maps contains a {@code null} key or value
716 * @since 9
717 * @spec JPMS
718 */
719 void redefineModule(Module module,
720 Set<Module> extraReads,
721 Map<String, Set<Module>> extraExports,
722 Map<String, Set<Module>> extraOpens,
723 Set<Class<?>> extraUses,
724 Map<Class<?>, List<Class<?>>> extraProvides);
725 }
|