diff -r e71a52521e19 core.startup/test/unit/src/org/netbeans/core/startup/ModuleListTest.java --- a/core.startup/test/unit/src/org/netbeans/core/startup/ModuleListTest.java Mon Feb 04 00:16:53 2013 +0100 +++ b/core.startup/test/unit/src/org/netbeans/core/startup/ModuleListTest.java Mon Feb 04 10:29:17 2013 +0100 @@ -71,6 +71,7 @@ import org.openide.filesystems.FileUtil; import org.openide.filesystems.LocalFileSystem; import org.openide.modules.InstalledFileLocator; +import org.openide.modules.ModuleInfo; import org.openide.modules.Places; import org.openide.modules.api.PlacesTestUtils; import org.openide.util.test.MockLookup; @@ -184,7 +185,7 @@ assertFile(new File(data, "org-bar_disabled.xml"), FileUtil.toFile(bar)); // Check that changes in disk are parsed and applied (#13921) LoggedPCListener listener2 = new LoggedPCListener(); - Module m1 = mgr.get("org.foo"); + ModuleInfo m1 = mgr.findCodeNameBase("org.foo"); m1.addPropertyChangeListener(listener2); copy(new File(data, "org-foo.xml"), foo); /* Does not seem to refresh reliably enough: diff -r e71a52521e19 o.n.bootstrap/manifest.mf --- a/o.n.bootstrap/manifest.mf Mon Feb 04 00:16:53 2013 +0100 +++ b/o.n.bootstrap/manifest.mf Mon Feb 04 10:29:17 2013 +0100 @@ -1,6 +1,6 @@ Manifest-Version: 1.0 OpenIDE-Module: org.netbeans.bootstrap/1 -OpenIDE-Module-Specification-Version: 2.57 +OpenIDE-Module-Specification-Version: 2.58 OpenIDE-Module-Localizing-Bundle: org/netbeans/Bundle.properties OpenIDE-Module-Recommends: org.netbeans.NetigsoFramework diff -r e71a52521e19 o.n.bootstrap/nbproject/project.xml --- a/o.n.bootstrap/nbproject/project.xml Mon Feb 04 00:16:53 2013 +0100 +++ b/o.n.bootstrap/nbproject/project.xml Mon Feb 04 10:29:17 2013 +0100 @@ -54,7 +54,7 @@ - 7.30 + 7.37 diff -r e71a52521e19 o.n.bootstrap/src/org/netbeans/ModuleManager.java --- a/o.n.bootstrap/src/org/netbeans/ModuleManager.java Mon Feb 04 00:16:53 2013 +0100 +++ b/o.n.bootstrap/src/org/netbeans/ModuleManager.java Mon Feb 04 10:29:17 2013 +0100 @@ -77,11 +77,8 @@ import java.util.TreeSet; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import java.util.jar.Manifest; import java.util.logging.Level; -import org.openide.LifecycleManager; import org.openide.modules.Dependency; import org.openide.modules.ModuleInfo; import org.openide.modules.Modules; @@ -353,6 +350,11 @@ return modulesByName.get(codeNameBase); } + @Override + public ModuleInfo findCodeNameBase(String cnb) { + return get(cnb); + } + public @Override ModuleInfo ownerOf(Class clazz) { ClassLoader cl = clazz.getClassLoader(); if (cl instanceof Util.ModuleProvider) { diff -r e71a52521e19 openide.modules/manifest.mf --- a/openide.modules/manifest.mf Mon Feb 04 00:16:53 2013 +0100 +++ b/openide.modules/manifest.mf Mon Feb 04 10:29:17 2013 +0100 @@ -1,5 +1,5 @@ Manifest-Version: 1.0 OpenIDE-Module: org.openide.modules OpenIDE-Module-Localizing-Bundle: org/openide/modules/Bundle.properties -OpenIDE-Module-Specification-Version: 7.36 +OpenIDE-Module-Specification-Version: 7.37 diff -r e71a52521e19 openide.modules/src/org/openide/modules/Modules.java --- a/openide.modules/src/org/openide/modules/Modules.java Mon Feb 04 00:16:53 2013 +0100 +++ b/openide.modules/src/org/openide/modules/Modules.java Mon Feb 04 10:29:17 2013 +0100 @@ -48,7 +48,11 @@ * Information about the set of available {@linkplain ModuleInfo modules}. * @since org.openide.modules 7.19 */ -public abstract class Modules { +public class Modules { + /** + * Constructor for subclasses. + */ + protected Modules() {} /** * Gets the singleton set of modules. @@ -59,15 +63,25 @@ public static Modules getDefault() { Modules impl = Lookup.getDefault().lookup(Modules.class); if (impl == null) { - impl = new Trivial(); + impl = new Modules(); } return impl; } - /** - * Constructor for subclasses. + /* Finds a module with given code name base. + * @param cnb the {@link ModuleInfo#getCodeNameBase() code name base} of a module + * @return the found module or null, if such module is not known + * to the system + * @since 7.37 */ - protected Modules() {} + public ModuleInfo findCodeNameBase(String cnb) { + for (ModuleInfo module : Lookup.getDefault().lookupAll(ModuleInfo.class)) { + if (cnb.equals(module.getCodeNameBase())) { + return module; + } + } + return null; + } /** * Finds the module which loaded a class. @@ -75,19 +89,12 @@ * @return the owner of the class, or null if it is not owned by any module * @see ModuleInfo#owns */ - public abstract ModuleInfo ownerOf(Class clazz); - - private static class Trivial extends Modules { - - public @Override ModuleInfo ownerOf(Class clazz) { - for (ModuleInfo module : Lookup.getDefault().lookupAll(ModuleInfo.class)) { - if (module.owns(clazz)) { - return module; - } + public ModuleInfo ownerOf(Class clazz) { + for (ModuleInfo module : Lookup.getDefault().lookupAll(ModuleInfo.class)) { + if (module.owns(clazz)) { + return module; } - return null; } - + return null; } - }