private List<String> getDSConfigCommandLineArguments() { List<String> args = new ArrayList<>(); args.add("set-backend-index-prop"); args.add("--backend-name"); args.add(backendName); args.add("--index-name"); args.add(attributeName); if (!indexTypes.equals(indexToModify.getTypes())) { // To add Set<IndexTypeDescriptor> toAdd = new TreeSet<>(); for (IndexTypeDescriptor newType : indexTypes) { if (!indexToModify.getTypes().contains(newType)) { toAdd.add(newType); } } // To delete Set<IndexTypeDescriptor> toDelete = new TreeSet<>(); for (IndexTypeDescriptor oldType : indexToModify.getTypes()) { if (!indexTypes.contains(oldType)) { toDelete.add(oldType); } } for (IndexTypeDescriptor newType : toDelete) { args.add("--remove"); args.add("index-type:" + newType); } for (IndexTypeDescriptor newType : toAdd) { args.add("--add"); args.add("index-type:" + newType.toBackendIndexType()); } } if (entryLimitValue != indexToModify.getEntryLimit()) { args.add("--set"); args.add("index-entry-limit:" + entryLimitValue); } args.addAll(getConnectionCommandLineArguments()); args.add("--no-prompt"); return args; }
private void modifyBackendIndexOnline(final PluggableBackendCfgClient backend) throws OpenDsException { final BackendIndexCfgClient index = backend.getBackendIndex(attributeName); if (!indexTypes.equals(indexToModify.getTypes())) { index.setIndexType(IndexTypeDescriptor.toBackendIndexTypes(indexTypes)); } if (entryLimitValue != index.getIndexEntryLimit()) { index.setIndexEntryLimit(entryLimitValue); } index.commit(); }