Vojtech Szocs has uploaded a new change for review.
Change subject: webadmin,userportal: Optimize syntax checker handling
......................................................................
webadmin,userportal: Optimize syntax checker handling
1. access to (search) syntax checker instance is now provided
through Configurator#getSyntaxChecker
* UserPortalConfigurator#getSyntaxChecker returns null
(not available in UserPortal context)
* WebAdminConfigurator#getSyntaxChecker returns instance
obtained via SyntaxCheckerFactory
2. removed SearchableListModel#syntaxChecker field along
with related code (instance initialization, getter)
3. modified SearchableListModel#isSearchValidForServerSideSorting
to access syntax checker through Configurator
* in UserPortal context, syntax checker will be null
and above method will simply return true
* in WebAdmin context, syntax checker will be non-null
and existing behavior will be retained
4. modified SearchSuggestModel to access syntax checker
through Configurator
5. removed unused SyntaxCheckerFactory#getUISyntaxChecker
This patch improves performance of UserPortal while keeping
existing behavior of WebAdmin (where syntax checker is used
in SearchableListModel#isSearchValidForServerSideSorting).
Change-Id: Iab7f369fa26452fe49c57f99dc53919a2bad0412
Signed-off-by: Vojtech Szocs <[email protected]>
---
M
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerFactory.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/autocomplete/SearchSuggestModel.java
M
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java
6 files changed, 30 insertions(+), 22 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/84/41284/1
diff --git
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerFactory.java
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerFactory.java
index 4220b4b..2ac3ac3 100644
---
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerFactory.java
+++
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SyntaxCheckerFactory.java
@@ -35,7 +35,4 @@
return ConfigAuthenticationMethod;
}
- public static ISyntaxChecker getUISyntaxChecker() {
- return uiSyntaxChecker;
- }
}
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
index 790983a..1f5ac69 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java
@@ -2,6 +2,7 @@
import org.ovirt.engine.core.common.queries.ConfigurationValues;
import org.ovirt.engine.core.compat.Version;
+import org.ovirt.engine.core.searchbackend.ISyntaxChecker;
import org.ovirt.engine.ui.frontend.AsyncQuery;
import org.ovirt.engine.ui.frontend.INewAsyncCallback;
import org.ovirt.engine.ui.frontend.utils.BaseContextPathData;
@@ -28,7 +29,6 @@
private static final String DOCS_ROOT =
BaseContextPathData.getInstance().getRelativePath() + "docs/manual";
//$NON-NLS-1$
private static final String CSH_ROOT =
BaseContextPathData.getInstance().getRelativePath() + "docs/csh"; //$NON-NLS-1$
private static final String JSON = ".json"; //$NON-NLS-1$
-
private static String localeDir;
@@ -333,4 +333,9 @@
public abstract Float clientBrowserVersion();
+ /**
+ * Returns the UI syntax checker instance or {@code null} if not available.
+ */
+ public abstract ISyntaxChecker getSyntaxChecker();
+
}
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
index 392a8ae..a47233f 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
@@ -14,7 +14,6 @@
import org.ovirt.engine.core.common.businessentities.BusinessEntity;
import org.ovirt.engine.core.common.businessentities.HasStoragePool;
import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
-import org.ovirt.engine.core.common.queries.ConfigurationValues;
import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -26,7 +25,6 @@
import org.ovirt.engine.core.compat.StringHelper;
import org.ovirt.engine.core.searchbackend.ISyntaxChecker;
import org.ovirt.engine.core.searchbackend.SyntaxChecker;
-import org.ovirt.engine.core.searchbackend.SyntaxCheckerFactory;
import org.ovirt.engine.core.searchbackend.SyntaxContainer;
import org.ovirt.engine.core.searchbackend.SyntaxError;
import org.ovirt.engine.core.searchbackend.SyntaxObject;
@@ -64,11 +62,6 @@
private static final Logger logger =
Logger.getLogger(SearchableListModel.class.getName());
private static final String PAGE_STRING_REGEX =
"[\\s]+page[\\s]+[1-9]+[0-9]*[\\s]*$"; //$NON-NLS-1$
private static final String PAGE_NUMBER_REGEX = "[1-9]+[0-9]*$";
//$NON-NLS-1$
-
- // Syntax checker singleton instance.
- // Note: must be static since SyntaxCheckerFactory.createUISyntaxChecker
method
- // works with single syntax checker instance (uiSyntaxChecker) for the
entire UI.
- private static ISyntaxChecker syntaxChecker;
private UICommand privateSearchCommand;
private HandlerRegistration timerChangeHandler;
@@ -305,15 +298,6 @@
// should have paging will set it explicitly in their constructors.
getSearchNextPageCommand().setIsAvailable(false);
getSearchPreviousPageCommand().setIsAvailable(false);
-
- if (syntaxChecker == null) {
- syntaxChecker = SyntaxCheckerFactory.createUISyntaxChecker(
- (String)
AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.AuthenticationMethod));
- }
- }
-
- protected ISyntaxChecker getSyntaxChecker() {
- return syntaxChecker;
}
/**
@@ -808,8 +792,13 @@
* Otherwise, this method returns {@code true}.
*/
public boolean isSearchValidForServerSideSorting() {
+ ISyntaxChecker syntaxChecker = getConfigurator().getSyntaxChecker();
+ if (syntaxChecker == null) {
+ return true;
+ }
+
String search = getSearchString();
- SyntaxContainer syntaxResult =
getSyntaxChecker().analyzeSyntaxState(search, true);
+ SyntaxContainer syntaxResult =
syntaxChecker.analyzeSyntaxState(search, true);
if (syntaxResult.getError() != SyntaxError.NO_ERROR) {
return false;
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/autocomplete/SearchSuggestModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/autocomplete/SearchSuggestModel.java
index 9a6da84..5b4464e 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/autocomplete/SearchSuggestModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/autocomplete/SearchSuggestModel.java
@@ -88,7 +88,7 @@
{
getItems().clear();
- SyntaxContainer syntax = getSyntaxChecker().getCompletion(search);
+ SyntaxContainer syntax =
getConfigurator().getSyntaxChecker().getCompletion(search);
int lastHandledIndex = syntax.getLastHandledIndex();
String pf = search.substring(0, lastHandledIndex);
diff --git
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java
index b785bfc..ca15d5f 100644
---
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java
+++
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java
@@ -3,6 +3,7 @@
import java.util.List;
import org.ovirt.engine.core.compat.Version;
+import org.ovirt.engine.core.searchbackend.ISyntaxChecker;
import org.ovirt.engine.ui.common.uicommon.ClientAgentType;
import org.ovirt.engine.ui.common.uicommon.ContextSensitiveHelpManager;
import org.ovirt.engine.ui.frontend.AsyncQuery;
@@ -149,4 +150,10 @@
public Float clientBrowserVersion() {
return clientAgentType.version;
}
+
+ @Override
+ public ISyntaxChecker getSyntaxChecker() {
+ return null;
+ }
+
}
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java
index cc09ca9..219edad 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java
@@ -2,10 +2,14 @@
import java.util.ArrayList;
+import org.ovirt.engine.core.common.queries.ConfigurationValues;
import org.ovirt.engine.core.compat.Version;
+import org.ovirt.engine.core.searchbackend.ISyntaxChecker;
+import org.ovirt.engine.core.searchbackend.SyntaxCheckerFactory;
import org.ovirt.engine.ui.common.uicommon.ClientAgentType;
import org.ovirt.engine.ui.common.uicommon.ContextSensitiveHelpManager;
import org.ovirt.engine.ui.uicommonweb.Configurator;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
import org.ovirt.engine.ui.uicommonweb.models.vms.ISpice;
import org.ovirt.engine.ui.uicommonweb.models.vms.WANDisableEffects;
import org.ovirt.engine.ui.uicompat.Event;
@@ -97,4 +101,10 @@
return clientAgentType.version;
}
+ @Override
+ public ISyntaxChecker getSyntaxChecker() {
+ return SyntaxCheckerFactory.createUISyntaxChecker(
+ (String)
AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.AuthenticationMethod));
+ }
+
}
--
To view, visit https://gerrit.ovirt.org/41284
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iab7f369fa26452fe49c57f99dc53919a2bad0412
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Vojtech Szocs <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches