Author: vyemialyanchyk
Date: 2010-09-28 09:07:15 -0400 (Tue, 28 Sep 2010)
New Revision: 25262
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationJavaClasspathTab.java
Log:
https://jira.jboss.org/browse/JBIDE-7197 - fixed
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationJavaClasspathTab.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationJavaClasspathTab.java 2010-09-28
13:01:37 UTC (rev 25261)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationJavaClasspathTab.java 2010-09-28
13:07:15 UTC (rev 25262)
@@ -28,7 +28,18 @@
*/
public class ConsoleConfigurationJavaClasspathTab extends JavaClasspathTab {
+ /**
+ * validation process should include check for successful creation
+ * of configuration xml file for Hibernate Console Configuration.
+ */
protected boolean configurationFileWillBeCreated = false;
+ // for validation process optimization:
+ // presave last time validated configuration and validate result,
+ // to avoid several unnecessary validation -> rebuild for ConsoleConfig
+ // is rather slow operation - so several time rebuild is visible.
+ protected ILaunchConfiguration lastValidatedLaunchConfig = null;
+ protected String lastErrorMessage = null;
+ protected boolean lastRes = false;
public boolean isShowBootpath() {
return false;
@@ -38,6 +49,10 @@
if (!super.isValid(launchConfig)) {
return false;
}
+ if (lastValidatedLaunchConfig != null &&
lastValidatedLaunchConfig.contentsEqual(launchConfig)) {
+ setErrorMessage(lastErrorMessage);
+ return lastRes;
+ }
setErrorMessage(null);
setMessage(null);
boolean resUserClasses = false, resExistArchive = true;
@@ -65,7 +80,7 @@
}
if (resUserClasses && resExistArchive) {
boolean flagTryToBuild = true;
- ConsoleConfiguration ccTest = new ConsoleConfiguration(new
EclipseLaunchConsoleConfigurationPreferences(launchConfig));
+ final ConsoleConfiguration ccTest = new ConsoleConfiguration(new
EclipseLaunchConsoleConfigurationPreferences(launchConfig));
if (configurationFileWillBeCreated) {
// do not make a try to build console configuration in case of
"configurationFileWillBeCreated" and
// exception to resolve the file
@@ -82,14 +97,23 @@
resUserClasses = false;
setErrorMessage(ex.getMessage());
}
+ try {
+ lastValidatedLaunchConfig = launchConfig.getWorkingCopy();
+ } catch (CoreException e1) {
+ lastValidatedLaunchConfig = null;
+ }
}
}
- return resUserClasses && resExistArchive;
+ final boolean res = resUserClasses && resExistArchive;
+ if (lastValidatedLaunchConfig != null) {
+ lastErrorMessage = getErrorMessage();
+ lastRes = res;
+ }
+ return res;
}
public void initializeFrom(ILaunchConfiguration configuration) {
-
- super.initializeFrom( configuration );
+ super.initializeFrom(configuration);
}
public boolean canSave() {