Code cleanup

Jens Pelzetter 2020-12-09 20:26:03 +01:00
parent 8bddae0711
commit 93c300df1d
6 changed files with 23 additions and 164 deletions

View File

@ -34,7 +34,7 @@ public class ExportTaskStatus implements Comparable<ExportTaskStatus> {
private LocalDateTime started; private LocalDateTime started;
private ImExportTaskStatusEnum status; private ImExportTaskStatus status;
private Throwable exception; private Throwable exception;
@ -54,11 +54,11 @@ public class ExportTaskStatus implements Comparable<ExportTaskStatus> {
this.started = started; this.started = started;
} }
public ImExportTaskStatusEnum getStatus() { public ImExportTaskStatus getStatus() {
return status; return status;
} }
protected void setStatus(final ImExportTaskStatusEnum status) { protected void setStatus(final ImExportTaskStatus status) {
this.status = status; this.status = status;
} }
@ -104,7 +104,7 @@ public class ExportTaskStatus implements Comparable<ExportTaskStatus> {
} }
public boolean canEqual(final Object obj) { public boolean canEqual(final Object obj) {
return obj instanceof ImExportTaskStatus; return obj instanceof ExportTaskStatus;
} }
@Override @Override

View File

@ -18,121 +18,14 @@
*/ */
package org.libreccm.ui.admin.imexport; package org.libreccm.ui.admin.imexport;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Comparator;
import java.util.Objects;
import java.util.concurrent.Future;
/** /**
* *
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a> * @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/ */
public class ImExportTaskStatus implements Comparable<ImExportTaskStatus> { public enum ImExportTaskStatus {
private String name; ERROR,
FINISHED,
private LocalDateTime started; RUNNING,
private Future<?> status;
public String getName() {
return name;
}
protected void setName(final String name) {
this.name = name;
}
public LocalDateTime getStarted() {
return started;
}
public String getStartedAsIso() {
return DateTimeFormatter.ISO_DATE_TIME.withZone(
ZoneId.systemDefault()).format(started
);
}
protected void setStarted(final LocalDateTime started) {
this.started = started;
}
public Future<?> getStatus() {
return status;
}
protected void setStatus(final Future<?> status) {
this.status = status;
}
public boolean isDone() {
return status.isDone();
}
protected void cancel() {
status.cancel(true);
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + Objects.hashCode(this.name);
hash = 23 * hash + Objects.hashCode(this.started);
return hash;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof ImExportTaskStatus)) {
return false;
}
final ImExportTaskStatus other = (ImExportTaskStatus) obj;
if (!other.canEqual(this)) {
return false;
}
if (!Objects.equals(this.name, other.getName())) {
return false;
}
return Objects.equals(this.started, other.getStarted());
}
public boolean canEqual(final Object obj) {
return obj instanceof ImExportTaskStatus;
}
@Override
public int compareTo(final ImExportTaskStatus other) {
return Comparator
.nullsFirst(Comparator
.comparing(ImExportTaskStatus::getName)
.thenComparing(ImExportTaskStatus::getStarted)
)
.compare(this, other);
}
@Override
public String toString() {
return String.format(
"%s{ "
+ "name = %s, "
+ "started = %s, "
+ "status = %s"
+ " }",
super.toString(),
name,
DateTimeFormatter.ISO_DATE_TIME.withZone(
ZoneId.systemDefault()
).format(started),
Objects.toString(status)
);
}
} }

View File

@ -1,31 +0,0 @@
/*
* Copyright (C) 2020 LibreCCM Foundation.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package org.libreccm.ui.admin.imexport;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
*/
public enum ImExportTaskStatusEnum {
ERROR,
FINISHED,
RUNNING,
}

View File

@ -45,7 +45,7 @@ public class ImExportTasks {
final String exportName = task.getName(); final String exportName = task.getName();
importExport.exportEntities(entities, exportName); importExport.exportEntities(entities, exportName);
task.getStatus().setStatus(ImExportTaskStatusEnum.FINISHED); task.getStatus().setStatus(ImExportTaskStatus.FINISHED);
return task; return task;
} }

View File

@ -109,7 +109,7 @@ public class ImportExportTaskManager {
new ExportTask(exportName, LocalDate.now(), entities, taskStatus) new ExportTask(exportName, LocalDate.now(), entities, taskStatus)
).handle((task , ex) -> handleExportTaskResult(task, ex, taskStatus)); ).handle((task , ex) -> handleExportTaskResult(task, ex, taskStatus));
taskStatus.setStatus(ImExportTaskStatusEnum.RUNNING); taskStatus.setStatus(ImExportTaskStatus.RUNNING);
exportTasks.add(taskStatus); exportTasks.add(taskStatus);
} }
@ -120,19 +120,16 @@ public class ImportExportTaskManager {
new ImportTask(importName, LocalDate.now(), taskStatus) new ImportTask(importName, LocalDate.now(), taskStatus)
).handle((task, ex) -> handleImportTaskResult(task, ex, taskStatus)); ).handle((task, ex) -> handleImportTaskResult(task, ex, taskStatus));
taskStatus.setStatus(ImExportTaskStatusEnum.RUNNING); taskStatus.setStatus(ImExportTaskStatus.RUNNING);
importTasks.add(taskStatus); importTasks.add(taskStatus);
} }
@Schedule(hour = "*", minute = "*/5", persistent = false) @Schedule(hour = "*", minute = "*/5", persistent = false)
protected void removeFinishedTasks() { protected void removeFinishedTasks() {
exportTasks.removeIf(taskStatus -> taskStatus.getStatus() == ImExportTaskStatusEnum.FINISHED); exportTasks.removeIf(taskStatus -> taskStatus.getStatus() == ImExportTaskStatus.FINISHED);
// importTasks.removeIf(taskStatus -> taskStatus.getStatus() == ImExportTaskStatusEnum.FINISHED); // importTasks.removeIf(taskStatus -> taskStatus.getStatus() == ImExportTaskStatus.FINISHED);
} }
public void cancelTask(final ImExportTaskStatus task) {
task.cancel();
}
private Set<? extends Exportable> collectEntities( private Set<? extends Exportable> collectEntities(
final Class<Exportable> ofType final Class<Exportable> ofType
@ -152,9 +149,9 @@ public class ImportExportTaskManager {
final ExportTask task, final Throwable ex, final ExportTaskStatus status final ExportTask task, final Throwable ex, final ExportTaskStatus status
) { ) {
if (ex == null) { if (ex == null) {
status.setStatus(ImExportTaskStatusEnum.FINISHED); status.setStatus(ImExportTaskStatus.FINISHED);
} else { } else {
status.setStatus(ImExportTaskStatusEnum.ERROR); status.setStatus(ImExportTaskStatus.ERROR);
status.setException(ex); status.setException(ex);
LOGGER.error("Export Task {} failed ", task); LOGGER.error("Export Task {} failed ", task);
LOGGER.error("with exception:", ex); LOGGER.error("with exception:", ex);
@ -166,9 +163,9 @@ public class ImportExportTaskManager {
final ImportTask task, final Throwable ex, final ImportTaskStatus status final ImportTask task, final Throwable ex, final ImportTaskStatus status
) { ) {
if (ex == null) { if (ex == null) {
status.setStatus(ImExportTaskStatusEnum.FINISHED); status.setStatus(ImExportTaskStatus.FINISHED);
} else { } else {
status.setStatus(ImExportTaskStatusEnum.ERROR); status.setStatus(ImExportTaskStatus.ERROR);
status.setException(ex); status.setException(ex);
LOGGER.error("Import Task {} failed", task); LOGGER.error("Import Task {} failed", task);
LOGGER.error("with exception: ", ex); LOGGER.error("with exception: ", ex);

View File

@ -34,7 +34,7 @@ public class ImportTaskStatus implements Comparable<ImportTaskStatus> {
private LocalDateTime started; private LocalDateTime started;
private ImExportTaskStatusEnum status; private ImExportTaskStatus status;
private Throwable exception; private Throwable exception;
@ -55,11 +55,11 @@ public class ImportTaskStatus implements Comparable<ImportTaskStatus> {
this.started = started; this.started = started;
} }
public ImExportTaskStatusEnum getStatus() { public ImExportTaskStatus getStatus() {
return status; return status;
} }
protected void setStatus(final ImExportTaskStatusEnum status) { protected void setStatus(final ImExportTaskStatus status) {
this.status = status; this.status = status;
} }
@ -88,7 +88,7 @@ public class ImportTaskStatus implements Comparable<ImportTaskStatus> {
if (obj == null) { if (obj == null) {
return false; return false;
} }
if (!(obj instanceof ImExportTaskStatus)) { if (!(obj instanceof ExportTaskStatus)) {
return false; return false;
} }
final ImportTaskStatus other = (ImportTaskStatus) obj; final ImportTaskStatus other = (ImportTaskStatus) obj;
@ -106,7 +106,7 @@ public class ImportTaskStatus implements Comparable<ImportTaskStatus> {
public boolean canEqual(final Object obj) { public boolean canEqual(final Object obj) {
return obj instanceof ImExportTaskStatus; return obj instanceof ImportTaskStatus;
} }
@Override @Override