diff --git a/src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java b/src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java index 7b7339e2772..a7c06371368 100644 --- a/src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java +++ b/src/java.base/share/classes/java/util/random/RandomGeneratorFactory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -142,8 +142,9 @@ public final class RandomGeneratorFactory { * @return Map of RandomGeneratorFactory classes. */ private static Map> createFactoryMap() { + FactoryMapHolder.class.getModule().addUses(RandomGenerator.class); return ServiceLoader - .load(RandomGenerator.class) + .load(RandomGenerator.class, ClassLoader.getPlatformClassLoader()) .stream() .filter(p -> !p.type().isInterface()) .collect(Collectors.toMap(p -> p.type().getSimpleName(), Function.identity())); @@ -341,9 +342,6 @@ public final class RandomGeneratorFactory { * {@link RandomGenerator} that utilize the {@code name} * algorithm. * - * @implSpec Availability is determined by RandomGeneratorFactory using the - * service provider API to locate implementations of the RandomGenerator interface. - * * @param name Name of random number generator * algorithm * @param Sub-interface of {@link RandomGenerator} to produce @@ -376,12 +374,9 @@ public final class RandomGeneratorFactory { /** * Returns a non-empty stream of available {@link RandomGeneratorFactory RandomGeneratorFactory(s)}. - * + *

* RandomGenerators that are marked as deprecated are not included in the result. * - * @implSpec Availability is determined by RandomGeneratorFactory using the service provider API - * to locate implementations of the RandomGenerator interface. - * * @return a non-empty stream of all available {@link RandomGeneratorFactory RandomGeneratorFactory(s)}. */ public static Stream> all() { @@ -615,5 +610,3 @@ public final class RandomGeneratorFactory { } } - - diff --git a/src/java.base/share/classes/java/util/random/package-info.java b/src/java.base/share/classes/java/util/random/package-info.java index b4dfe28f796..2e16b319f44 100644 --- a/src/java.base/share/classes/java/util/random/package-info.java +++ b/src/java.base/share/classes/java/util/random/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,9 +50,7 @@ *

The principal supporting class is {@link RandomGeneratorFactory}. This * can be used to generate multiple random number generators for a specific * algorithm. {@link RandomGeneratorFactory} also provides methods for - * selecting random number generator algorithms. RandomGeneratorFactory - * registers implementations of {@link RandomGenerator} interface using the - * service provider API. + * selecting random number generator algorithms. * *

An important subsidiary interface is * {@link RandomGenerator.StreamableGenerator}, which provides methods for @@ -636,4 +634,3 @@ * @since 17 */ package java.util.random; - diff --git a/src/jdk.random/share/classes/jdk/random/L128X1024MixRandom.java b/src/java.base/share/classes/jdk/internal/random/L128X1024MixRandom.java similarity index 99% rename from src/jdk.random/share/classes/jdk/random/L128X1024MixRandom.java rename to src/java.base/share/classes/jdk/internal/random/L128X1024MixRandom.java index 46f8a642d54..e6f4f896dc0 100644 --- a/src/jdk.random/share/classes/jdk/random/L128X1024MixRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L128X1024MixRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/L128X128MixRandom.java b/src/java.base/share/classes/jdk/internal/random/L128X128MixRandom.java similarity index 99% rename from src/jdk.random/share/classes/jdk/random/L128X128MixRandom.java rename to src/java.base/share/classes/jdk/internal/random/L128X128MixRandom.java index ac12b96b4d2..d03fcfc0864 100644 --- a/src/jdk.random/share/classes/jdk/random/L128X128MixRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L128X128MixRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/L128X256MixRandom.java b/src/java.base/share/classes/jdk/internal/random/L128X256MixRandom.java similarity index 99% rename from src/jdk.random/share/classes/jdk/random/L128X256MixRandom.java rename to src/java.base/share/classes/jdk/internal/random/L128X256MixRandom.java index f34956e40a1..81440d7316a 100644 --- a/src/jdk.random/share/classes/jdk/random/L128X256MixRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L128X256MixRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/L32X64MixRandom.java b/src/java.base/share/classes/jdk/internal/random/L32X64MixRandom.java similarity index 98% rename from src/jdk.random/share/classes/jdk/random/L32X64MixRandom.java rename to src/java.base/share/classes/jdk/internal/random/L32X64MixRandom.java index 1b64a4b28cd..0f6beea7bc7 100644 --- a/src/jdk.random/share/classes/jdk/random/L32X64MixRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L32X64MixRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/L64X1024MixRandom.java b/src/java.base/share/classes/jdk/internal/random/L64X1024MixRandom.java similarity index 99% rename from src/jdk.random/share/classes/jdk/random/L64X1024MixRandom.java rename to src/java.base/share/classes/jdk/internal/random/L64X1024MixRandom.java index 9ec81997bde..e4eb82d450e 100644 --- a/src/jdk.random/share/classes/jdk/random/L64X1024MixRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L64X1024MixRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/L64X128MixRandom.java b/src/java.base/share/classes/jdk/internal/random/L64X128MixRandom.java similarity index 98% rename from src/jdk.random/share/classes/jdk/random/L64X128MixRandom.java rename to src/java.base/share/classes/jdk/internal/random/L64X128MixRandom.java index 4188e85e89f..7dd757f312b 100644 --- a/src/jdk.random/share/classes/jdk/random/L64X128MixRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L64X128MixRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/L64X128StarStarRandom.java b/src/java.base/share/classes/jdk/internal/random/L64X128StarStarRandom.java similarity index 98% rename from src/jdk.random/share/classes/jdk/random/L64X128StarStarRandom.java rename to src/java.base/share/classes/jdk/internal/random/L64X128StarStarRandom.java index 139b27223b6..15b9bc312da 100644 --- a/src/jdk.random/share/classes/jdk/random/L64X128StarStarRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L64X128StarStarRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/L64X256MixRandom.java b/src/java.base/share/classes/jdk/internal/random/L64X256MixRandom.java similarity index 99% rename from src/jdk.random/share/classes/jdk/random/L64X256MixRandom.java rename to src/java.base/share/classes/jdk/internal/random/L64X256MixRandom.java index 0c0cbb43687..bb605df5fdc 100644 --- a/src/jdk.random/share/classes/jdk/random/L64X256MixRandom.java +++ b/src/java.base/share/classes/jdk/internal/random/L64X256MixRandom.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/Xoroshiro128PlusPlus.java b/src/java.base/share/classes/jdk/internal/random/Xoroshiro128PlusPlus.java similarity index 99% rename from src/jdk.random/share/classes/jdk/random/Xoroshiro128PlusPlus.java rename to src/java.base/share/classes/jdk/internal/random/Xoroshiro128PlusPlus.java index ba8daaf7246..d20b3cf9e6a 100644 --- a/src/jdk.random/share/classes/jdk/random/Xoroshiro128PlusPlus.java +++ b/src/java.base/share/classes/jdk/internal/random/Xoroshiro128PlusPlus.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/jdk.random/share/classes/jdk/random/Xoshiro256PlusPlus.java b/src/java.base/share/classes/jdk/internal/random/Xoshiro256PlusPlus.java similarity index 99% rename from src/jdk.random/share/classes/jdk/random/Xoshiro256PlusPlus.java rename to src/java.base/share/classes/jdk/internal/random/Xoshiro256PlusPlus.java index 5c9cc606597..fdefe02dd03 100644 --- a/src/jdk.random/share/classes/jdk/random/Xoshiro256PlusPlus.java +++ b/src/java.base/share/classes/jdk/internal/random/Xoshiro256PlusPlus.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ * questions. */ -package jdk.random; +package jdk.internal.random; import java.util.concurrent.atomic.AtomicLong; import java.util.random.RandomGenerator; diff --git a/src/java.base/share/classes/module-info.java b/src/java.base/share/classes/module-info.java index 17a66b856a1..edbbad78c9d 100644 --- a/src/java.base/share/classes/module-info.java +++ b/src/java.base/share/classes/module-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -268,8 +268,6 @@ module java.base { jdk.jfr; exports jdk.internal.util.xml.impl to jdk.jfr; - exports jdk.internal.util.random to - jdk.random; exports jdk.internal.util to java.desktop, java.prefs, @@ -396,7 +394,6 @@ module java.base { uses java.time.chrono.AbstractChronology; uses java.time.chrono.Chronology; uses java.time.zone.ZoneRulesProvider; - uses java.util.random.RandomGenerator; uses java.util.spi.CalendarDataProvider; uses java.util.spi.CalendarNameProvider; uses java.util.spi.CurrencyNameProvider; @@ -425,6 +422,16 @@ module java.base { provides java.util.random.RandomGenerator with java.security.SecureRandom, java.util.Random, - java.util.SplittableRandom; + java.util.SplittableRandom, + jdk.internal.random.L32X64MixRandom, + jdk.internal.random.L64X128MixRandom, + jdk.internal.random.L64X128StarStarRandom, + jdk.internal.random.L64X256MixRandom, + jdk.internal.random.L64X1024MixRandom, + jdk.internal.random.L128X128MixRandom, + jdk.internal.random.L128X256MixRandom, + jdk.internal.random.L128X1024MixRandom, + jdk.internal.random.Xoroshiro128PlusPlus, + jdk.internal.random.Xoshiro256PlusPlus; } diff --git a/src/jdk.random/share/classes/module-info.java b/src/jdk.random/share/classes/module-info.java deleted file mode 100644 index 3d82090f313..00000000000 --- a/src/jdk.random/share/classes/module-info.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -import jdk.internal.util.random.RandomSupport; - -/** - * Defines implementations of the - * {@linkplain java.util.random.RandomGenerator RandomGenerator Interface}. - * - * @provides jdk.random.L128X1024MixRandom - * @provides jdk.random.L128X128MixRandom - * @provides jdk.random.L128X256MixRandom - * @provides jdk.random.L32X64MixRandom - * @provides jdk.random.L64X1024MixRandom - * @provides jdk.random.L64X128MixRandom - * @provides jdk.random.L64X128StarStarRandom - * @provides jdk.random.L64X256MixRandom - * @provides jdk.random.Xoroshiro128PlusPlus - * @provides jdk.random.Xoshiro256PlusPlus - * - * @uses java.util.random.RandomGenerator - * - * @moduleGraph - * @since 16 - */ -module jdk.random { - exports jdk.random to - java.base; - - provides java.util.random.RandomGenerator with - jdk.random.L32X64MixRandom, - jdk.random.L64X128MixRandom, - jdk.random.L64X128StarStarRandom, - jdk.random.L64X256MixRandom, - jdk.random.L64X1024MixRandom, - jdk.random.L128X128MixRandom, - jdk.random.L128X256MixRandom, - jdk.random.L128X1024MixRandom, - jdk.random.Xoroshiro128PlusPlus, - jdk.random.Xoshiro256PlusPlus; -}