diff -r 9587e4825f10 glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/JavaEEServerModuleFactory.java --- a/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/JavaEEServerModuleFactory.java Fri Nov 20 21:53:40 2009 +0100 +++ b/glassfish.javaee/src/org/netbeans/modules/glassfish/javaee/JavaEEServerModuleFactory.java Sat Nov 21 19:01:55 2009 +0100 @@ -55,7 +55,6 @@ import org.netbeans.api.project.libraries.Library; import org.netbeans.api.project.libraries.LibraryManager; import org.netbeans.modules.glassfish.javaee.ide.Hk2PluginProperties; -import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceCreationException; import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceProperties; import org.netbeans.modules.glassfish.spi.GlassfishModule; import org.netbeans.modules.glassfish.spi.GlassfishModuleFactory; @@ -63,6 +62,7 @@ import org.netbeans.modules.glassfish.spi.ServerUtilities; import org.netbeans.spi.project.libraries.LibraryTypeProvider; import org.netbeans.spi.project.libraries.support.LibrariesSupport; +import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; import org.openide.modules.InstalledFileLocator; import org.openide.util.Lookup; @@ -99,6 +99,22 @@ return false; } + private static void registerServerInstanceFO(FileObject serverInstanceDir, + Map props) { + String name = FileUtil.findFreeFileName(serverInstanceDir, "gfv3_autoregistered_instance", null); // NOI18N + FileObject instanceFO; + try { + instanceFO = serverInstanceDir.createData(name); + for (Map.Entry entry : props.entrySet()) { + instanceFO.setAttribute(entry.getKey(), entry.getValue()); + } + instanceFO.setAttribute(InstanceProperties.REGISTERED_WITHOUT_UI, "true"); // NOI18N + } catch (IOException e) { + Logger.getLogger("glassfish-javaee").log(Level.INFO, "Cannot register the default Tomcat server."); // NOI18N + Logger.getLogger("glassfish-javaee").log(Level.INFO, null, e); + } + } + public Object createModule(Lookup instanceLookup) { // When creating JavaEE support, also ensure this instance is added to j2eeserver InstanceProperties ip = null; @@ -108,19 +124,12 @@ String url = props.get(InstanceProperties.URL_ATTR); ip = InstanceProperties.getInstanceProperties(url); if(ip == null) { - String username = props.get(InstanceProperties.USERNAME_ATTR); - String password = props.get(InstanceProperties.PASSWORD_ATTR); - String displayName = props.get(InstanceProperties.DISPLAY_NAME_ATTR); - try { - ip = InstanceProperties.createInstancePropertiesWithoutUI( - url, username, password, displayName, props); - } catch (InstanceCreationException ex) { - Logger.getLogger("glassfish-javaee").log(Level.WARNING, null, ex); // NOI18N - } + FileObject serverInstanceDir = FileUtil.getConfigFile("J2EE/InstalledServers"); // NOI18N - if(ip == null) { - Logger.getLogger("glassfish-javaee").log(Level.INFO, - "Unable to create/locate J2EE InstanceProperties for " + url); + if (serverInstanceDir != null) { + registerServerInstanceFO(serverInstanceDir, props); + } else { + Logger.getLogger("glassfish-javaee").log(Level.INFO, "Cannot register the default Tomcat server. The //J2EE//InstalledServers folder cannot be found."); // NOI18N } } diff -r 9587e4825f10 j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerRegistry.java --- a/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerRegistry.java Fri Nov 20 21:53:40 2009 +0100 +++ b/j2eeserver/src/org/netbeans/modules/j2ee/deployment/impl/ServerRegistry.java Sat Nov 21 19:01:55 2009 +0100 @@ -53,6 +53,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Enumeration; import java.util.EventListener; import java.util.HashMap; import java.util.HashSet; @@ -487,8 +488,13 @@ String displayName = (String) fo.getAttribute(InstanceProperties.DISPLAY_NAME_ATTR); String withoutUI = (String) fo.getAttribute(InstanceProperties.REGISTERED_WITHOUT_UI); boolean withoutUIFlag = withoutUI == null ? false : Boolean.valueOf(withoutUI); + Map props = new HashMap(); + for(Enumeration e = fo.getAttributes(); e.hasMoreElements();) { + String name = e.nextElement(); + props.put(name, fo.getAttribute(name).toString()); + } try { - addInstanceImpl(url, username, password, displayName, withoutUIFlag, null); + addInstanceImpl(url, username, password, displayName, withoutUIFlag, props); } catch (InstanceCreationException ice) { // yes... we are ignoring this.. because that }