Skip to content

Commit

Permalink
0004909: Snapshot progress bar now uses IProgressListener (#153)
Browse files Browse the repository at this point in the history
* 0004909: Added snapshot progress bar

* 0004909: Snapshot progress bar now uses IProgressListener
  • Loading branch information
evan-miller-jumpmind committed Mar 23, 2021
1 parent cc0b4b0 commit cba51d6
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 51 deletions.
Expand Up @@ -34,6 +34,7 @@
import org.jumpmind.symmetric.ITypedPropertiesFactory;
import org.jumpmind.symmetric.db.ISymmetricDialect;
import org.jumpmind.symmetric.db.sqlite.SqliteSymmetricDialect;
import org.jumpmind.symmetric.ext.IProgressListener;
import org.jumpmind.symmetric.io.stage.IStagingManager;
import org.jumpmind.symmetric.io.stage.StagingManager;
import org.jumpmind.symmetric.job.IJobManager;
Expand Down Expand Up @@ -216,7 +217,7 @@ public int getAvailableThreads(CommunicationType communicationType) {

}

public File snapshot() {
public File snapshot(IProgressListener listener) {
return null;
}

Expand Down
Expand Up @@ -62,6 +62,7 @@
import org.jumpmind.symmetric.common.SystemConstants;
import org.jumpmind.symmetric.db.ISymmetricDialect;
import org.jumpmind.symmetric.db.JdbcSymmetricDialectFactory;
import org.jumpmind.symmetric.ext.IProgressListener;
import org.jumpmind.symmetric.io.stage.BatchStagingManager;
import org.jumpmind.symmetric.io.stage.IStagingManager;
import org.jumpmind.symmetric.job.IJobManager;
Expand Down Expand Up @@ -546,8 +547,8 @@ public ApplicationContext getSpringContext() {
return springContext;
}

public File snapshot() {
return SnapshotUtil.createSnapshot(this);
public File snapshot(IProgressListener listener) {
return SnapshotUtil.createSnapshot(this, listener);
}

public IMonitorService getMonitorService() {
Expand Down
Expand Up @@ -111,7 +111,7 @@ public void purge() {

@ManagedOperation(description = "Create a snapshot of the current state of the system")
public String snapshot() {
File file = engine.snapshot();
File file = engine.snapshot(null);
if (file != null) {
return file.getAbsolutePath();
} else {
Expand Down
Expand Up @@ -75,6 +75,7 @@
import org.jumpmind.symmetric.csv.CsvWriter;
import org.jumpmind.symmetric.db.firebird.FirebirdSymmetricDialect;
import org.jumpmind.symmetric.db.mysql.MySqlSymmetricDialect;
import org.jumpmind.symmetric.ext.IProgressListener;
import org.jumpmind.symmetric.io.data.DbExport;
import org.jumpmind.symmetric.io.data.DbExport.Format;
import org.jumpmind.symmetric.job.IJob;
Expand All @@ -87,7 +88,6 @@
import org.jumpmind.symmetric.model.TriggerHistory;
import org.jumpmind.symmetric.monitor.MonitorTypeBlock;
import org.jumpmind.symmetric.service.IClusterService;
import org.jumpmind.symmetric.service.IExtensionService;
import org.jumpmind.symmetric.service.INodeService;
import org.jumpmind.symmetric.service.IParameterService;
import org.jumpmind.symmetric.service.ITriggerRouterService;
Expand All @@ -110,11 +110,10 @@ public static File getSnapshotDirectory(ISymmetricEngine engine) {
return snapshotsDir;
}

public static File createSnapshot(ISymmetricEngine engine) {

IExtensionService extensionService = engine.getExtensionService();
for (ISnapshotCreationListener l : extensionService.getExtensionPointList(ISnapshotCreationListener.class)) {
l.snapshotStepCompleted(0, 5);
public static File createSnapshot(ISymmetricEngine engine, IProgressListener listener) {

if (listener != null) {
listener.checkpoint(engine.getEngineName(), 0, 5);
}

String dirName = engine.getEngineName().replaceAll(" ", "-") + "-" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
Expand Down Expand Up @@ -145,8 +144,8 @@ public static File createSnapshot(ISymmetricEngine engine) {
log.warn("Failed to copy " + serviceConfFile.getName() + " to the snapshot directory", e);
}

for (ISnapshotCreationListener l : extensionService.getExtensionPointList(ISnapshotCreationListener.class)) {
l.snapshotStepCompleted(1, 5);
if (listener != null) {
listener.checkpoint(engine.getEngineName(), 1, 5);
}

FileOutputStream fos = null;
Expand Down Expand Up @@ -220,8 +219,8 @@ public static File createSnapshot(ISymmetricEngine engine) {
}
}

for (ISnapshotCreationListener l : extensionService.getExtensionPointList(ISnapshotCreationListener.class)) {
l.snapshotStepCompleted(2, 5);
if (listener != null) {
listener.checkpoint(engine.getEngineName(), 2, 5);
}

String tablePrefix = engine.getTablePrefix();
Expand Down Expand Up @@ -397,8 +396,8 @@ public static File createSnapshot(ISymmetricEngine engine) {
"show session variables");
}

for (ISnapshotCreationListener l : extensionService.getExtensionPointList(ISnapshotCreationListener.class)) {
l.snapshotStepCompleted(3, 5);
if (listener != null) {
listener.checkpoint(engine.getEngineName(), 3, 5);
}

if (!engine.getParameterService().is(ParameterConstants.CLUSTER_LOCKING_ENABLED)) {
Expand Down Expand Up @@ -490,8 +489,8 @@ public static File createSnapshot(ISymmetricEngine engine) {
}
}

for (ISnapshotCreationListener l : extensionService.getExtensionPointList(ISnapshotCreationListener.class)) {
l.snapshotStepCompleted(4, 5);
if (listener != null) {
listener.checkpoint(engine.getEngineName(), 4, 5);
}

File jarFile = null;
Expand All @@ -507,8 +506,8 @@ public static File createSnapshot(ISymmetricEngine engine) {
throw new IoException("Failed to package snapshot files into archive", e);
}

for (ISnapshotCreationListener l : extensionService.getExtensionPointList(ISnapshotCreationListener.class)) {
l.snapshotStepCompleted(5, 5);
if (listener != null) {
listener.checkpoint(engine.getEngineName(), 5, 5);
}

log.info("Done creating snapshot file");
Expand Down
Expand Up @@ -29,6 +29,7 @@
import org.jumpmind.db.sql.ISqlTemplate;
import org.jumpmind.security.ISecurityService;
import org.jumpmind.symmetric.db.ISymmetricDialect;
import org.jumpmind.symmetric.ext.IProgressListener;
import org.jumpmind.symmetric.io.stage.IStagingManager;
import org.jumpmind.symmetric.job.IJobManager;
import org.jumpmind.symmetric.model.NodeStatus;
Expand Down Expand Up @@ -324,7 +325,7 @@ public interface ISymmetricEngine {

public IDatabasePlatform getDatabasePlatform();

public File snapshot();
public File snapshot(IProgressListener listener);

public List<File> listSnapshots();

Expand Down

This file was deleted.

Expand Up @@ -379,7 +379,7 @@ public boolean invokeJob(@PathVariable("engine") String engineName, @RequestPara
public final void getSnapshot(@PathVariable("engine") String engineName,
HttpServletResponse resp) {
ISymmetricEngine engine = getSymmetricEngine(engineName);
File file = engine.snapshot();
File file = engine.snapshot(null);
resp.setHeader("Content-Disposition",
String.format("attachment; filename=%s", file.getName()));
try(BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) {
Expand Down

0 comments on commit cba51d6

Please sign in to comment.