Skip to content

Commit

Permalink
- minor optimization: filter fileds as Filter type
Browse files Browse the repository at this point in the history
  • Loading branch information
Alessio Fabiani committed Nov 27, 2018
1 parent dc27849 commit 50dbc32
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import org.geoserver.platform.resource.Resource;
import org.geotools.filter.text.cql2.CQLException;
import org.geotools.filter.text.ecql.ECQL;
import org.opengis.filter.Filter;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.ExitStatus;
Expand Down Expand Up @@ -42,11 +40,11 @@ public abstract class AbstractExecutionAdapter {

private Resource archiveFile;

private String wsFilter;
private Filter wsFilter;

private String siFilter;
private Filter siFilter;

private String liFilter;
private Filter liFilter;

/**
* Default Constructor
Expand Down Expand Up @@ -258,43 +256,31 @@ public void setArchiveFile(Resource archiveFile) {

/** @return the wsFilter */
public Filter getWsFilter() {
try {
return wsFilter != null ? ECQL.toFilter(wsFilter) : null;
} catch (CQLException e) {
return null;
}
return wsFilter;
}

/** @param wsFilter the wsFilter to set */
public void setWsFilter(String wsFilter) {
public void setWsFilter(Filter wsFilter) {
this.wsFilter = wsFilter;
}

/** @return the siFilter */
public Filter getSiFilter() {
try {
return siFilter != null ? ECQL.toFilter(siFilter) : null;
} catch (CQLException e) {
return null;
}
return siFilter;
}

/** @param siFilter the siFilter to set */
public void setSiFilter(String siFilter) {
public void setSiFilter(Filter siFilter) {
this.siFilter = siFilter;
}

/** @return the liFilter */
public Filter getLiFilter() {
try {
return liFilter != null ? ECQL.toFilter(liFilter) : null;
} catch (CQLException e) {
return null;
}
return liFilter;
}

/** @param liFilter the liFilter to set */
public void setLiFilter(String liFilter) {
public void setLiFilter(Filter liFilter) {
this.liFilter = liFilter;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -440,9 +440,9 @@ private BackupExecutionAdapter runBackupAsync(

backupExecution.setArchiveFile(archiveFile);
backupExecution.setOverwrite(overwrite);
backupExecution.setWsFilter(wsFilter != null ? ECQL.toCQL(wsFilter) : null);
backupExecution.setSiFilter(siFilter != null ? ECQL.toCQL(siFilter) : null);
backupExecution.setLiFilter(liFilter != null ? ECQL.toCQL(liFilter) : null);
backupExecution.setWsFilter(wsFilter);
backupExecution.setSiFilter(siFilter);
backupExecution.setLiFilter(liFilter);

backupExecution.getOptions().add("OVERWRITE=" + overwrite);
for (Entry jobParam : jobParameters.toProperties().entrySet()) {
Expand Down Expand Up @@ -551,9 +551,9 @@ private RestoreExecutionAdapter runRestoreAsync(
new RestoreExecutionAdapter(jobExecution, totalNumberOfRestoreSteps);
restoreExecutions.put(restoreExecution.getId(), restoreExecution);
restoreExecution.setArchiveFile(archiveFile);
restoreExecution.setWsFilter(wsFilter != null ? ECQL.toCQL(wsFilter) : null);
restoreExecution.setSiFilter(siFilter != null ? ECQL.toCQL(siFilter) : null);
restoreExecution.setLiFilter(liFilter != null ? ECQL.toCQL(liFilter) : null);
restoreExecution.setWsFilter(wsFilter);
restoreExecution.setSiFilter(siFilter);
restoreExecution.setLiFilter(liFilter);

for (Entry jobParam : jobParameters.toProperties().entrySet()) {
if (!PARAM_OUTPUT_FILE_PATH.equals(jobParam.getKey())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import org.geoserver.backuprestore.BackupExecutionAdapter;
import org.geoserver.platform.resource.Resource;
import org.geoserver.platform.resource.Resources;
import org.geotools.filter.text.ecql.ECQL;
import org.geotools.util.logging.Logging;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.JobExecution;
Expand Down Expand Up @@ -77,12 +76,9 @@ public void beforeJob(JobExecution jobExecution) {
jobExecution, backupFacade.getTotalNumberOfBackupSteps());
this.backupExecution.setArchiveFile(archiveFile);
this.backupExecution.setOverwrite(overwrite);
this.backupExecution.setWsFilter(
bkp.getWsFilter() != null ? ECQL.toCQL(bkp.getWsFilter()) : null);
this.backupExecution.setSiFilter(
bkp.getSiFilter() != null ? ECQL.toCQL(bkp.getSiFilter()) : null);
this.backupExecution.setLiFilter(
bkp.getLiFilter() != null ? ECQL.toCQL(bkp.getLiFilter()) : null);
this.backupExecution.setWsFilter(bkp.getWsFilter());
this.backupExecution.setSiFilter(bkp.getSiFilter());
this.backupExecution.setLiFilter(bkp.getLiFilter());
this.backupExecution.getOptions().addAll(options);

this.backupFacade
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import org.geoserver.catalog.impl.CatalogImpl;
import org.geoserver.platform.resource.Resource;
import org.geoserver.platform.resource.Resources;
import org.geotools.filter.text.ecql.ECQL;
import org.geotools.util.decorate.Wrapper;
import org.geotools.util.logging.Logging;
import org.springframework.batch.core.BatchStatus;
Expand Down Expand Up @@ -85,12 +84,9 @@ public void beforeJob(JobExecution jobExecution) {
jobExecution, backupFacade.getTotalNumberOfRestoreSteps());
this.restoreExecution.setArchiveFile(archiveFile);
this.restoreExecution.setRestoreCatalog(restoreCatalog);
this.restoreExecution.setWsFilter(
rst.getWsFilter() != null ? ECQL.toCQL(rst.getWsFilter()) : null);
this.restoreExecution.setSiFilter(
rst.getSiFilter() != null ? ECQL.toCQL(rst.getSiFilter()) : null);
this.restoreExecution.setLiFilter(
rst.getLiFilter() != null ? ECQL.toCQL(rst.getLiFilter()) : null);
this.restoreExecution.setWsFilter(rst.getWsFilter());
this.restoreExecution.setSiFilter(rst.getSiFilter());
this.restoreExecution.setLiFilter(rst.getLiFilter());

this.restoreExecution.getOptions().addAll(options);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,21 @@ public boolean canConvert(Class type) {

xStream.registerLocalConverter(
AbstractExecutionAdapter.class,
"filter",
new FilterConverter(xStream.getMapper(), xStream.getReflectionProvider()));
"wsFilter",
new FilterConverter(
"wsFilter", xStream.getMapper(), xStream.getReflectionProvider()));

xStream.registerLocalConverter(
AbstractExecutionAdapter.class,
"siFilter",
new FilterConverter(
"siFilter", xStream.getMapper(), xStream.getReflectionProvider()));

xStream.registerLocalConverter(
AbstractExecutionAdapter.class,
"liFilter",
new FilterConverter(
"liFilter", xStream.getMapper(), xStream.getReflectionProvider()));

ClassAliasingMapper stepExecutionsMapper = new ClassAliasingMapper(xStream.getMapper());
stepExecutionsMapper.addClassAlias("step", StepExecution.class);
Expand Down Expand Up @@ -376,12 +389,16 @@ public boolean canConvert(Class clazz) {
/** @author Alessio Fabiani, GeoSolutions S.A.S. */
public static class FilterConverter extends ReflectionConverter {

private String fieldName;

/**
* @param mapper
* @param reflectionProvider
*/
public FilterConverter(Mapper mapper, ReflectionProvider reflectionProvider) {
public FilterConverter(
String fieldName, Mapper mapper, ReflectionProvider reflectionProvider) {
super(mapper, reflectionProvider);
this.fieldName = fieldName;
}

@SuppressWarnings("rawtypes")
Expand All @@ -403,7 +420,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
Filter filter = null;

String nodeName = reader.getNodeName();
if ("filter".equals(nodeName)) {
if (fieldName.equals(nodeName)) {
try {
filter = ECQL.toFilter(reader.getValue());
} catch (CQLException e) {
Expand Down

0 comments on commit 50dbc32

Please sign in to comment.