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