? ide/welcome/manifest-subst.mf ? core/test/unit/src/org/netbeans/core/modules/PlatformDependencySatisfied.java Index: ide/applemenu/manifest.mf =================================================================== RCS file: /cvs/ide/applemenu/manifest.mf,v retrieving revision 1.1 diff -u -r1.1 manifest.mf --- ide/applemenu/manifest.mf 8 Jun 2004 12:46:02 -0000 1.1 +++ ide/applemenu/manifest.mf 2 Aug 2004 15:23:49 -0000 @@ -4,6 +4,7 @@ OpenIDE-Module-Install: org/netbeans/modules/applemenu/Install.class OpenIDE-Module-Layer: org/netbeans/modules/applemenu/layer.xml OpenIDE-Module-Specification-Version: 1.1 +OpenIDE-Module-Requires: org.openide.modules.os.MacOSX Index: ide/applemenu/nbproject/project.properties =================================================================== RCS file: /cvs/ide/applemenu/nbproject/project.properties,v retrieving revision 1.1 diff -u -r1.1 project.properties --- ide/applemenu/nbproject/project.properties 8 Jun 2004 12:46:08 -0000 1.1 +++ ide/applemenu/nbproject/project.properties 2 Aug 2004 15:23:49 -0000 @@ -11,3 +11,4 @@ nbm.needs.restart=true cp.extra=eawtstub/dist/eawtstub.jar +is.eager=true Index: core/src/org/netbeans/core/modules/Module.java =================================================================== RCS file: /cvs/core/src/org/netbeans/core/modules/Module.java,v retrieving revision 1.54 diff -u -r1.54 Module.java --- core/src/org/netbeans/core/modules/Module.java 29 Jul 2004 18:35:01 -0000 1.54 +++ core/src/org/netbeans/core/modules/Module.java 2 Aug 2004 15:23:50 -0000 @@ -438,6 +438,18 @@ throw new IllegalArgumentException("Duplicate entries in OpenIDE-Module-Provides: " + providesS); // NOI18N } } + String[] additionalProvides = mgr.refineProvides (this); + if (additionalProvides != null) { + if (provides == null) { + provides = additionalProvides; + } else { + ArrayList l = new ArrayList (); + l.addAll (Arrays.asList (provides)); + l.addAll (Arrays.asList (additionalProvides)); + provides = (String[])l.toArray (provides); + } + } + // Exports String exportsS = attr.getValue("OpenIDE-Module-Public-Packages"); // NOI18N if (exportsS != null) { Index: core/src/org/netbeans/core/modules/ModuleInstaller.java =================================================================== RCS file: /cvs/core/src/org/netbeans/core/modules/ModuleInstaller.java,v retrieving revision 1.9 diff -u -r1.9 ModuleInstaller.java --- core/src/org/netbeans/core/modules/ModuleInstaller.java 18 Dec 2002 23:41:29 -0000 1.9 +++ core/src/org/netbeans/core/modules/ModuleInstaller.java 2 Aug 2004 15:23:50 -0000 @@ -156,6 +156,14 @@ public void refineClassLoader(Module m, List parents) { // do nothing } + + /** Optionally adds additional token for the module. + * @param m the module to add token to + * @return null or list of tokens this module provides + */ + public String[] refineProvides (Module m) { + return null; + } /** Is this package special in that the package domain cache should be disabled for it? * The result must never change between subsequent calls for the same argument. Index: core/src/org/netbeans/core/modules/ModuleManager.java =================================================================== RCS file: /cvs/core/src/org/netbeans/core/modules/ModuleManager.java,v retrieving revision 1.62 diff -u -r1.62 ModuleManager.java --- core/src/org/netbeans/core/modules/ModuleManager.java 2 Jul 2003 18:56:33 -0000 1.62 +++ core/src/org/netbeans/core/modules/ModuleManager.java 2 Aug 2004 15:23:51 -0000 @@ -500,6 +500,11 @@ void refineDependencies(Module m, Set dependencies) { installer.refineDependencies(m, dependencies); } + /** Allows the installer to add provides (used to provide name of platform we run on) + */ + String[] refineProvides (Module m) { + return installer.refineProvides (m); + } /** Used by Module to communicate with the ModuleInstaller re. classloader. */ void refineClassLoader(Module m, List parents) { // #27853: Index: core/src/org/netbeans/core/modules/NbInstaller.java =================================================================== RCS file: /cvs/core/src/org/netbeans/core/modules/NbInstaller.java,v retrieving revision 1.76 diff -u -r1.76 NbInstaller.java --- core/src/org/netbeans/core/modules/NbInstaller.java 16 May 2004 16:09:20 -0000 1.76 +++ core/src/org/netbeans/core/modules/NbInstaller.java 2 Aug 2004 15:23:51 -0000 @@ -721,6 +721,28 @@ } } + public String[] refineProvides (Module m) { + if (m.getCodeNameBase ().equals ("org.openide")) { // NOI18N + ArrayList tokens = new ArrayList (); + if (org.openide.util.Utilities.isUnix ()) { + tokens.add ("org.openide.modules.os.Unix"); // NOI18N + } + + if (org.openide.util.Utilities.isWindows ()) { + tokens.add ("org.openide.modules.os.Windows"); // NOI18N + } + + if ((org.openide.util.Utilities.getOperatingSystem () & org.openide.util.Utilities.OS_MAC) != 0) { + tokens.add ("org.openide.modules.os.MacOSX"); // NOI18N + } + + return tokens.isEmpty() ? null : (String[])tokens.toArray (new String[0]); + + } + return null; + } + + private void addLoadersRecursively(List parents, Dependency[] deps, Set parentModules, Module master, Set addedParentNames) { for (int i = 0; i < deps.length; i++) { if (deps[i].getType() != Dependency.TYPE_MODULE) {