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 Original file line Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import org.geoserver.platform.resource.Resource; 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.opengis.filter.Filter;
import org.springframework.batch.core.BatchStatus; import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.ExitStatus;
Expand Down Expand Up @@ -42,11 +40,11 @@ public abstract class AbstractExecutionAdapter {


private Resource archiveFile; private Resource archiveFile;


private String wsFilter; private Filter wsFilter;


private String siFilter; private Filter siFilter;


private String liFilter; private Filter liFilter;


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


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


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


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


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


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


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


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


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


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


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


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


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


xStream.registerLocalConverter( xStream.registerLocalConverter(
AbstractExecutionAdapter.class, AbstractExecutionAdapter.class,
"filter", "wsFilter",
new FilterConverter(xStream.getMapper(), xStream.getReflectionProvider())); 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()); ClassAliasingMapper stepExecutionsMapper = new ClassAliasingMapper(xStream.getMapper());
stepExecutionsMapper.addClassAlias("step", StepExecution.class); 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. */ /** @author Alessio Fabiani, GeoSolutions S.A.S. */
public static class FilterConverter extends ReflectionConverter { public static class FilterConverter extends ReflectionConverter {


private String fieldName;

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


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


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

0 comments on commit 50dbc32

Please sign in to comment.