diff -r ebca69d673fd groovy.grails/src/org/netbeans/modules/groovy/grails/settings/GrailsRuntimePanel.java --- a/groovy.grails/src/org/netbeans/modules/groovy/grails/settings/GrailsRuntimePanel.java Mon Jun 02 16:27:07 2008 +0200 +++ b/groovy.grails/src/org/netbeans/modules/groovy/grails/settings/GrailsRuntimePanel.java Mon Jun 02 18:07:08 2008 +0200 @@ -12,7 +12,6 @@ import org.openide.awt.HtmlBrowser; import org.openide.awt.HtmlBrowser; import org.openide.util.Exceptions; import org.openide.util.NbBundle; -import org.openide.util.Utilities; final class GrailsRuntimePanel extends javax.swing.JPanel { @@ -25,16 +24,6 @@ final class GrailsRuntimePanel extends j initComponents(); // TODO listen to changes in form fields and call controller.changed() } - - boolean checkForGrailsExecutable ( File pathToGrails ) { - String GRAILS_BINARY = "grails"; - - if(Utilities.isWindows()){ - GRAILS_BINARY = "grails.bat"; - } - - return new File (new File (pathToGrails, "bin"), GRAILS_BINARY).isFile (); - } void displayGrailsHomeWarning() { DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message( @@ -123,7 +112,7 @@ final class GrailsRuntimePanel extends j SwingUtilities.getWindowAncestor (this), NbBundle.getMessage(GrailsRuntimePanel.class, "LBL_Select_Directory")); if (r == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile (); - if (!checkForGrailsExecutable(file)) { + if (!settings.checkForGrailsExecutable(file)) { displayGrailsHomeWarning(); return; } @@ -158,7 +147,7 @@ final class GrailsRuntimePanel extends j void store() { String location = grailsHomeLocation.getText(); - if (!checkForGrailsExecutable(new File(location))) { + if (!settings.checkForGrailsExecutable(new File(location))) { displayGrailsHomeWarning(); return; } diff -r ebca69d673fd groovy.grails/src/org/netbeans/modules/groovy/grails/settings/GrailsSettings.java --- a/groovy.grails/src/org/netbeans/modules/groovy/grails/settings/GrailsSettings.java Mon Jun 02 16:27:07 2008 +0200 +++ b/groovy.grails/src/org/netbeans/modules/groovy/grails/settings/GrailsSettings.java Mon Jun 02 18:07:08 2008 +0200 @@ -29,11 +29,13 @@ package org.netbeans.modules.groovy.grai import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; +import java.io.File; import java.util.prefs.Preferences; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectInformation; import org.netbeans.modules.groovy.grails.api.GrailsEnvironment; import org.openide.util.NbPreferences; +import org.openide.util.Utilities; /** * @@ -173,4 +175,14 @@ public final class GrailsSettings { private Preferences getPreferences() { return NbPreferences.forModule(GrailsSettings.class); } + + public boolean checkForGrailsExecutable ( File pathToGrails ) { + String grailsBinary = "startGrails"; + + if(Utilities.isWindows()){ + grailsBinary += ".bat"; + } + + return new File (new File (pathToGrails, "bin"), grailsBinary).isFile (); + } } diff -r ebca69d673fd groovy.grails/test/unit/src/org/netbeans/modules/groovy/grails/settings/GrailsSettingsTest.java --- a/groovy.grails/test/unit/src/org/netbeans/modules/groovy/grails/settings/GrailsSettingsTest.java Mon Jun 02 16:27:07 2008 +0200 +++ b/groovy.grails/test/unit/src/org/netbeans/modules/groovy/grails/settings/GrailsSettingsTest.java Mon Jun 02 18:07:09 2008 +0200 @@ -39,6 +39,7 @@ package org.netbeans.modules.groovy.grails.settings; +import java.io.File; import java.io.IOException; import org.netbeans.api.project.Project; import org.netbeans.junit.NbTestCase; @@ -108,4 +109,21 @@ public class GrailsSettingsTest extends settings.setDeployDirForProject(project, "directory2"); assertEquals("directory2", settings.getDeployDirForProject(project)); } + + public void testCheckForGrailsExecutableFromDebPackage() throws IOException { + assertGrailsExecutableExists(new File("/usr/share/grails")); + } + + public void testCheckForGrailsExecutableFromEnvVariable() throws IOException { + if (System.getenv("GRAILS_HOME") != null) { + assertGrailsExecutableExists(new File(System.getenv("GRAILS_HOME"))); + } + } + + private void assertGrailsExecutableExists(File grailsHome) { + if (grailsHome.exists()) { + final GrailsSettings settings = GrailsSettings.getInstance(); + assertEquals(true, settings.checkForGrailsExecutable(grailsHome)); + } + } }