hg: jigsaw/jake/jdk: 2 new changesets

Ali Ebrahimi ali.ebrahimi1781 at gmail.com
Wed Nov 4 15:55:06 UTC 2015


Hi,

On Wed, Nov 4, 2015 at 5:34 PM, <alan.bateman at oracle.com> wrote:
>
>
> Changeset: fd7cc28c24c7
> Author:    alanb
> Date:      2015-11-04 13:59 +0000
> URL:       http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7
>
> Improve finding source module when creating a layer
> Expand test coverage for implied readability + layers
>
> ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java
> ! src/java.base/share/classes/java/lang/reflect/Module.java
> ! test/jdk/jigsaw/module/ConfigurationTest.java
> ! test/jdk/jigsaw/reflect/Layer/LayerTest.java
>
>
In recent change to Module.java:

+++ b/src/java.base/share/classes/java/lang/reflect/Module.java	Wed
Nov 04 13:59:58 2015 +0000
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.2>@@
-40,6 +40,7 @@ <http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.3>
import java.util.HashSet;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.4>
import java.util.Map;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.5>
import java.util.Objects;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.6>+import
java.util.Optional;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.7>
import java.util.Set;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.8>
import java.util.WeakHashMap;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.9>
import java.util.concurrent.locks.Lock;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.10>@@
-891,12 +892,32 @@
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.11>
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.12>
         // reads
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.13>
         Set<Module> reads = new HashSet<>();
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.14>-
         for (ModuleDescriptor other: cf.reads(descriptor)) {
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.15>+
         for (ModuleDescriptor other : cf.reads(descriptor)) {
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.16>+
             Module m2 = null;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.17>+
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.18>+
             // Search the configuration and parent layers for the
module <http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.19>+
               // descriptor. This is temporary until Configuration
defines <http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.20>+
               // an API to return the layer + name of the source
rather than <http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.21>+
               // the module descriptor.
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.22>
             String dn = other.name();
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.23>-
             Module m2 = modules.get(dn);
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.24>-
             Layer parent = cf.layer();
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.25>-
             if (m2 == null && parent != null)
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.26>-
                 m2 = parent.findModule(other.name()).orElse(null);
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.27>+
             Module candidate = modules.get(dn);
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.28>+
             if (candidate != null &&
other.equals(candidate.getDescriptor())) {
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.29>+
                 m2 = candidate;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.30>+
             } else {
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.31>+
                 Layer parent = cf.layer();
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.32>+
                 while (parent != null) {
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.33>+
                     Optional<Module> om = parent.findModule(dn);
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.34>+
                     if (om.isPresent()) {
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.35>+
                         candidate = om.get();
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.36>+
                         if (other.equals(candidate.getDescriptor()))
{ <http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.37>+
                               m2 = candidate;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.38>+
                             break;
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.39>+
                         }
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.40>+
                     }
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.41>+
                     parent = parent.parent().orElse(null);
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.42>+
                 }
<http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/fd7cc28c24c7#l2.43>+
             }


Layer.findModule already do recursive search for modules in parent layers



-- 

Best Regards,
Ali Ebrahimi


More information about the jigsaw-dev mailing list