diff -r 0106276390ea j2eeserver/apichanges.xml --- a/j2eeserver/apichanges.xml Tue Jul 22 12:59:06 2008 -0700 +++ b/j2eeserver/apichanges.xml Wed Jul 23 15:29:12 2008 -0700 @@ -111,6 +111,27 @@ + + + + Provide a way for a plugin to register a "default instance" + without deep knowledge of the serverRegistry implementation. + + + + + + +

+ OptionalDeploymentManagerFactory gets a new stub, that plugin + implementations would override. The Plugin author can assume + that the ServerRegistry is initialized to the point where it + can support the creation on instances. +

+
+ + +
diff -r 0106276390ea j2eeserver/nbproject/project.properties --- a/j2eeserver/nbproject/project.properties Tue Jul 22 12:59:06 2008 -0700 +++ b/j2eeserver/nbproject/project.properties Wed Jul 23 15:29:12 2008 -0700 @@ -39,7 +39,7 @@ is.autoload=true javac.source=1.5 -spec.version.base=1.49.0 +spec.version.base=1.50.0 javadoc.overview=${basedir}/api/doc/overview.html javadoc.arch=${basedir}/arch.xml diff -r 0106276390ea j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerRegistry.java --- a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerRegistry.java Tue Jul 22 12:59:06 2008 -0700 +++ b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerRegistry.java Wed Jul 23 15:29:12 2008 -0700 @@ -66,6 +66,7 @@ import java.util.Set; import java.util.logging.Level; import org.netbeans.modules.j2ee.deployment.devmodules.spi.InstanceListener; +import org.netbeans.modules.j2ee.deployment.plugins.spi.OptionalDeploymentManagerFactory; import org.netbeans.modules.j2ee.deployment.profiler.spi.Profiler; import org.openide.filesystems.FileAttributeEvent; import org.openide.filesystems.FileChangeListener; @@ -105,7 +106,7 @@ public synchronized static boolean wasInitialized () { return instance != null && instance.servers != null && instance.instances != null; } - private transient Map servers = null; + private transient Map servers = null; private transient Map instances = null; private transient Collection pluginListeners = new HashSet(); private transient Collection instanceListeners = new ArrayList(); @@ -134,6 +135,14 @@ for (int i = 0; i < ch.length; i++) { addPlugin(ch[i]); } + LOGGER.log(Level.FINE, "Initializing default instances"); // NOI18N + for (String s : serversMap().keySet()) { + Server server = serversMap().get(s); + OptionalDeploymentManagerFactory odmf = server.getOptionalFactory(); + if (null != odmf) { + odmf.registerDefaultInstance(); + } + } LOGGER.log(Level.FINE, "Loading server instances"); // NOI18N dir = rep.getDefaultFileSystem().findResource(DIR_INSTALLED_SERVERS); dir.addFileChangeListener(new InstanceInstallListener()); @@ -146,7 +155,7 @@ } } - private Map serversMap() { + private Map serversMap() { init(); return servers; } diff -r 0106276390ea j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/OptionalDeploymentManagerFactory.java --- a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/OptionalDeploymentManagerFactory.java Tue Jul 22 12:59:06 2008 -0700 +++ b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/plugins/spi/OptionalDeploymentManagerFactory.java Wed Jul 23 15:29:12 2008 -0700 @@ -167,4 +167,14 @@ return null; } + /** + * Allows a plugin to insert an initial "instance" in the server registry, + * after the registry has completed initialization. + * + * @since 1.50 + */ + public void registerDefaultInstance() { + return; + } + }