opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexDescriptor.java
@@ -30,7 +30,9 @@ import java.util.Collections; import java.util.List; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope; import org.forgerock.opendj.ldap.SearchScope; import org.opends.server.admin.std.meta.BackendVLVIndexCfgDefn; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn; import org.opends.server.types.DN; /** @@ -39,7 +41,7 @@ public class VLVIndexDescriptor extends AbstractIndexDescriptor { private final DN baseDN; private final Scope scope; private final SearchScope scope; private final String filter; private List<VLVSortOrder> sortOrder = Collections.emptyList(); private final int maxBlockSize; @@ -63,7 +65,7 @@ * @param maxBlockSize * the maximum block size of the VLV index. */ public VLVIndexDescriptor(String name, BackendDescriptor backend, DN baseDN, Scope scope, String filter, public VLVIndexDescriptor(String name, BackendDescriptor backend, DN baseDN, SearchScope scope, String filter, List<VLVSortOrder> sortOrder, int maxBlockSize) { super(name, backend); @@ -113,7 +115,7 @@ * * @return the scope of the search indexed by the VLV index. */ public Scope getScope() public SearchScope getScope() { return scope; } @@ -184,4 +186,112 @@ return maxBlockSize; } /** * Returns the equivalent {@code BackendVLVIndexCfgDefn.Scope} to the provided * search scope. * * @param scope * The {@code SearchScope} to convert. * @return the equivalent {@code BackendVLVIndexCfgDefn.Scope} to the provided * search scope. */ public static BackendVLVIndexCfgDefn.Scope getPluggableBackendVLVIndexScope(final SearchScope scope) { switch (scope.asEnum()) { case BASE_OBJECT: return BackendVLVIndexCfgDefn.Scope.BASE_OBJECT; case SINGLE_LEVEL: return BackendVLVIndexCfgDefn.Scope.SINGLE_LEVEL; case SUBORDINATES: return BackendVLVIndexCfgDefn.Scope.SUBORDINATE_SUBTREE; case WHOLE_SUBTREE: return BackendVLVIndexCfgDefn.Scope.WHOLE_SUBTREE; case UNKNOWN: default: throw new IllegalArgumentException("Unsupported SearchScope: " + scope); } } // FIXME: Remove once local-db backend will be pluggable. /** * Returns the equivalent {@code LocalDBVLVIndexCfgDefn.Scope} to the provided * search scope. * * @param scope * The {@code SearchScope} to convert. * @return the equivalent {@code LocalDBVLVIndexCfgDefn.Scope} to the provided * search scope. */ public static LocalDBVLVIndexCfgDefn.Scope getLocalDBVLVIndexScope(final SearchScope scope) { switch (scope.asEnum()) { case BASE_OBJECT: return LocalDBVLVIndexCfgDefn.Scope.BASE_OBJECT; case SINGLE_LEVEL: return LocalDBVLVIndexCfgDefn.Scope.SINGLE_LEVEL; case SUBORDINATES: return LocalDBVLVIndexCfgDefn.Scope.SUBORDINATE_SUBTREE; case WHOLE_SUBTREE: return LocalDBVLVIndexCfgDefn.Scope.WHOLE_SUBTREE; case UNKNOWN: default: throw new IllegalArgumentException("Unsupported SearchScope: " + scope); } } /** * Convert the provided {@code BackendVLVIndexCfgDefn.Scope} to * {@code SearchScope}. * * @param scope * The scope to convert. * @return the provided {@code BackendVLVIndexCfgDefn.Scope} to * {@code SearchScope} */ public static SearchScope toSearchScope(final BackendVLVIndexCfgDefn.Scope scope) { switch (scope) { case BASE_OBJECT: return SearchScope.BASE_OBJECT; case SINGLE_LEVEL: return SearchScope.SINGLE_LEVEL; case SUBORDINATE_SUBTREE: return SearchScope.SUBORDINATES; case WHOLE_SUBTREE: return SearchScope.WHOLE_SUBTREE; default: throw new IllegalArgumentException("Unsupported BackendVLVIndexCfgDefn.Scope: " + scope); } } // FIXME: Remove once local-db backend will be pluggable. /** * Convert the provided {@code LocalDBVLVIndexCfgDefn.Scope} to * {@code SearchScope}. * * @param scope * The scope to convert. * @return the provided {@code LocalDBVLVIndexCfgDefn.Scope} to * {@code SearchScope} */ public static SearchScope toSearchScope(final LocalDBVLVIndexCfgDefn.Scope scope) { switch (scope) { case BASE_OBJECT: return SearchScope.BASE_OBJECT; case SINGLE_LEVEL: return SearchScope.SINGLE_LEVEL; case SUBORDINATE_SUBTREE: return SearchScope.SUBORDINATES; case WHOLE_SUBTREE: return SearchScope.WHOLE_SUBTREE; default: throw new IllegalArgumentException("Unsupported LocalDBVLVIndexCfgDefn.Scope: " + scope); } } } opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexTableModel.java
@@ -29,6 +29,7 @@ import static org.opends.messages.AdminToolMessages.*; import org.forgerock.opendj.ldap.SearchScope; import org.opends.guitools.controlpanel.util.Utilities; /** @@ -114,43 +115,41 @@ } /** * Returns the VLV index scope value in String format. This is the value used * Returns the VLV index scope value in String format. This is the value used * to make String comparisons. * @param i the VLV index. * * @param scope * the VLV index. * @return the VLV index scope value in String format. */ private String getScopeStringValue(VLVIndexDescriptor i) private String toUIString(final SearchScope scope) { String s; switch (i.getScope()) switch (scope.asEnum()) { case BASE_OBJECT: s = "Base Object"; break; return INFO_CTRL_PANEL_VLV_INDEX_BASE_OBJECT_LABEL.get().toString(); case SINGLE_LEVEL: s = "Single Level"; break; return INFO_CTRL_PANEL_VLV_INDEX_SINGLE_LEVEL_LABEL.get().toString(); case SUBORDINATES: return INFO_CTRL_PANEL_VLV_INDEX_SUBORDINATE_SUBTREE_LABEL.get().toString(); case WHOLE_SUBTREE: s = "Whole Subtree"; break; case SUBORDINATE_SUBTREE: s = "Subordinate Subtree"; break; return INFO_CTRL_PANEL_VLV_INDEX_WHOLE_SUBTREE_LABEL.get().toString(); default: throw new RuntimeException("Unknown scope: "+i.getScope()); throw new IllegalArgumentException("Unknown scope: " + scope); } return s; } /** * Returns the VLV index scope display value in String format. This is the * Returns the VLV index scope display value in String format. This is the * value to be stored in the table model. * @param i the VLV index. * * @param i * the VLV index. * @return the VLV index DN value in String format. */ private String getScopeDisplayValue(VLVIndexDescriptor i) private String getScopeDisplayValue(final VLVIndexDescriptor i) { return "<html>"+getScopeStringValue(i); return "<html>" + toUIString(i.getScope()); } /** @@ -205,7 +204,7 @@ private int compareScopes(VLVIndexDescriptor i1, VLVIndexDescriptor i2) { return getScopeStringValue(i1).compareTo(getScopeStringValue(i2)); return toUIString(i1.getScope()).compareTo(toUIString(i2.getScope())); } private int compareFilters(VLVIndexDescriptor i1, VLVIndexDescriptor i2) opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java
@@ -61,6 +61,7 @@ import javax.swing.event.ListSelectionListener; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.ldap.SearchScope; import org.opends.guitools.controlpanel.datamodel.BackendDescriptor; import org.opends.guitools.controlpanel.datamodel.BaseDNDescriptor; import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement; @@ -77,7 +78,6 @@ import org.opends.guitools.controlpanel.util.Utilities; import org.opends.server.admin.DefinedDefaultBehaviorProvider; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope; import org.opends.server.protocols.ldap.LDAPFilter; import org.opends.server.types.AttributeType; import org.opends.server.types.DN; @@ -251,6 +251,7 @@ lines.add("ds-cfg-filter: " + filter.getText().trim()); lines.add("ds-cfg-sort-order: " + getSortOrderStringValue(getSortOrder())); lines.add("ds-cfg-base-dn: " + getBaseDN()); lines.add("ds-cfg-scope: " + VLVIndexDescriptor.getLocalDBVLVIndexScope(getScope())); lines.add("ds-cfg-max-block-size: " + maxBlockSize.getText().trim()); StringBuilder sb = new StringBuilder(); for (String line : lines) @@ -266,26 +267,26 @@ * * @return the scope of the VLV index as it appears on the panel. */ protected Scope getScope() protected SearchScope getScope() { Scope scope; if (baseObject.isSelected()) { scope = Scope.BASE_OBJECT; return SearchScope.BASE_OBJECT; } else if (singleLevel.isSelected()) { scope = Scope.SINGLE_LEVEL; return SearchScope.SINGLE_LEVEL; } else if (subordinateSubtree.isSelected()) { scope = Scope.SUBORDINATE_SUBTREE; return SearchScope.SUBORDINATES; } else else if (wholeSubtree.isSelected()) { scope = Scope.WHOLE_SUBTREE; return SearchScope.WHOLE_SUBTREE; } return scope; throw new IllegalStateException("At least one scope should be selected"); } /** opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewVLVIndexPanel.java
@@ -44,6 +44,7 @@ import javax.swing.SwingUtilities; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.ldap.SearchScope; import org.opends.guitools.controlpanel.datamodel.BackendDescriptor; import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo; import org.opends.guitools.controlpanel.datamodel.ServerDescriptor; @@ -60,7 +61,6 @@ import org.opends.server.admin.std.client.LocalDBVLVIndexCfgClient; import org.opends.server.admin.std.client.RootCfgClient; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope; import org.opends.server.core.DirectoryServer; import org.opends.server.types.DN; import org.opends.server.types.DirectoryException; @@ -165,7 +165,7 @@ { private final Set<String> backendSet; private final String indexName; private final Scope scope; private final SearchScope searchScope; private final List<VLVSortOrder> sortOrder; private final String baseDN; private final String filterValue; @@ -192,7 +192,7 @@ sortOrder = getSortOrder(); baseDN = getBaseDN(); filterValue = filter.getText().trim(); scope = getScope(); searchScope = getScope(); backendID = backendName.getText(); ldif = getIndexLDIF(indexName); sortOrderStringValue = getSortOrderStringValue(sortOrder); @@ -363,7 +363,7 @@ index.setFilter(filter.getText().trim()); index.setSortOrder(getSortOrderStringValue(getSortOrder())); index.setBaseDN(DN.valueOf(getBaseDN())); index.setScope(getScope()); index.setScope(VLVIndexDescriptor.getLocalDBVLVIndexScope(getScope())); index.setMaxBlockSize(Integer.parseInt(maxBlockSize.getText().trim())); index.commit(); } @@ -405,8 +405,8 @@ { if (backend.getBackendID().equalsIgnoreCase(backendID)) { newIndex = new VLVIndexDescriptor(indexName, backend, DN.valueOf(baseDN), scope, filterValue, sortOrder, maxBlock); newIndex = new VLVIndexDescriptor( indexName, backend, DN.valueOf(baseDN), searchScope, filterValue, sortOrder, maxBlock); getInfo().registerModifiedIndex(newIndex); notifyConfigurationElementCreated(newIndex); break; @@ -449,7 +449,7 @@ args.add("filter:" + filterValue); args.add("--set"); args.add("scope:" + scope); args.add("scope:" + VLVIndexDescriptor.getLocalDBVLVIndexScope(searchScope)); args.add("--set"); args.add("sort-order:" + sortOrderStringValue); opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java
@@ -60,6 +60,9 @@ import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.config.server.ConfigException; import org.forgerock.opendj.ldap.SearchScope; import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor; import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement; import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo; @@ -73,15 +76,12 @@ import org.opends.guitools.controlpanel.task.Task; import org.opends.guitools.controlpanel.util.ConfigReader; import org.opends.guitools.controlpanel.util.Utilities; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.config.server.ConfigException; import org.opends.server.admin.client.ManagementContext; import org.opends.server.admin.client.ldap.JNDIDirContextAdaptor; import org.opends.server.admin.client.ldap.LDAPManagementContext; import org.opends.server.admin.std.client.LocalDBBackendCfgClient; import org.opends.server.admin.std.client.LocalDBVLVIndexCfgClient; import org.opends.server.admin.std.client.RootCfgClient; import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope; import org.opends.server.core.DirectoryServer; import org.opends.server.types.DN; import org.opends.server.types.Entry; @@ -456,7 +456,8 @@ baseDN.setText(dn); baseDNs.setSelectedItem(OTHER_BASE_DN); } selectScopeRadioButton(index); selectScopeRadioButton(index.getScope()); filter.setText(index.getFilter()); // Simulate a remove to update the attribute combo box and add them again. @@ -509,9 +510,9 @@ scrollListener.updateBorder(); } private void selectScopeRadioButton(final VLVIndexDescriptor index) private void selectScopeRadioButton(final SearchScope indexScope) { switch (index.getScope()) switch (indexScope.asEnum()) { case BASE_OBJECT: baseObject.setSelected(true); @@ -519,12 +520,14 @@ case SINGLE_LEVEL: singleLevel.setSelected(true); break; case SUBORDINATE_SUBTREE: case SUBORDINATES: subordinateSubtree.setSelected(true); break; case WHOLE_SUBTREE: wholeSubtree.setSelected(true); break; default: break; } } @@ -532,7 +535,7 @@ { try { return !index.getBaseDN().equals(DN.valueOf(getBaseDN())) || index.getScope() != getScope() return !index.getBaseDN().equals(DN.valueOf(getBaseDN())) || !index.getScope().equals(getScope()) || !index.getFilter().equals(filter.getText().trim()) || !index.getSortOrder().equals(getSortOrder()) || !Integer.toString(index.getMaxBlockSize()).equals(maxBlockSize.getText().trim()); } @@ -552,7 +555,7 @@ private final String indexName; private final String baseDN; private final String filterValue; private final Scope scope; private final SearchScope searchScope; private final List<VLVSortOrder> sortOrder; private final String backendID; private final String sortOrderStringValue; @@ -579,7 +582,7 @@ sortOrder = getSortOrder(); baseDN = getBaseDN(); filterValue = filter.getText().trim(); scope = getScope(); searchScope = getScope(); sortOrderStringValue = getSortOrderStringValue(sortOrder); ldif = getIndexLDIF(indexName); maxBlock = Integer.parseInt(maxBlockSize.getText()); @@ -754,9 +757,9 @@ index.setFilter(filterValue); } if (indexToModify.getScope() != scope) if (indexToModify.getScope() != searchScope) { index.setScope(scope); index.setScope(VLVIndexDescriptor.getLocalDBVLVIndexScope(searchScope)); } if (!indexToModify.getSortOrder().equals(sortOrder)) @@ -797,7 +800,7 @@ { updateConfiguration(); modifiedIndex = new VLVIndexDescriptor(indexName, indexToModify.getBackend(), DN.valueOf(baseDN), scope, filterValue, new VLVIndexDescriptor(indexName, indexToModify.getBackend(), DN.valueOf(baseDN), searchScope, filterValue, sortOrder, maxBlock); getInfo().registerModifiedIndex(modifiedIndex); state = State.FINISHED_SUCCESSFULLY; @@ -842,10 +845,10 @@ throw new RuntimeException("Unexpected error parsing DN " + getBaseDN() + ": " + odse, odse); } if (indexToModify.getScope() != scope) if (indexToModify.getScope() != searchScope) { args.add("--set"); args.add("scope:" + scope); args.add("scope:" + VLVIndexDescriptor.getLocalDBVLVIndexScope(searchScope)); } if (!indexToModify.getFilter().equals(filterValue)) { opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
@@ -501,8 +501,8 @@ String s = index.getSortOrder(); List<VLVSortOrder> sortOrder = getVLVSortOrder(s); vlvIndexes.add(new VLVIndexDescriptor( index.getName(), null, index.getBaseDN(), index.getScope(), index.getFilter(), sortOrder, index.getMaxBlockSize())); index.getName(), null, index.getBaseDN(), VLVIndexDescriptor.toSearchScope(index.getScope()), index.getFilter(), sortOrder, index.getMaxBlockSize())); } } catch (OpenDsException oe) opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
@@ -255,8 +255,9 @@ final LocalDBVLVIndexCfg index = db.getLocalDBVLVIndex(vlvIndexName); final String s = index.getSortOrder(); final List<VLVSortOrder> sortOrder = getVLVSortOrder(s); vlvIndexes.add(new VLVIndexDescriptor(index.getName(), null, index.getBaseDN(), index.getScope(), index.getFilter(), sortOrder, index.getMaxBlockSize())); vlvIndexes.add(new VLVIndexDescriptor( index.getName(), null, index.getBaseDN(), VLVIndexDescriptor.toSearchScope(index.getScope()), index.getFilter(), sortOrder, index.getMaxBlockSize())); } } catch (final ConfigException ce)