88import org .springframework .shell .core .annotation .CliOption ;
99import org .springframework .stereotype .Component ;
1010
11+ import java .io .File ;
12+
1113@ Component
1214public class GeoserverCommands implements CommandMarker {
1315
@@ -18,7 +20,7 @@ public void setGeoserver(Geoserver gs) {
1820 this .geoserver = gs ;
1921 }
2022
21- @ CliAvailabilityIndicator ({"geoserver reset" , "geoserver reload" })
23+ @ CliAvailabilityIndicator ({"geoserver reset" , "geoserver reload" , "geoserver backup" })
2224 public boolean isCommandAvailable () {
2325 return geoserver .isSet ();
2426 }
@@ -56,4 +58,25 @@ public boolean reload() {
5658 GeoServerRESTPublisher publisher = new GeoServerRESTPublisher (geoserver .getUrl (), geoserver .getUser (), geoserver .getPassword ());
5759 return publisher .reload ();
5860 }
61+
62+ @ CliCommand (value = "geoserver backup" , help = "Backup Geoserver's configuration." )
63+ public boolean backup (
64+ @ CliOption (key = "directory" , mandatory = true , help = "The backup " ) String backupDir ,
65+ @ CliOption (key = "includedata" , mandatory = false , unspecifiedDefaultValue = "false" , help = "The include data flag" ) boolean includeData ,
66+ @ CliOption (key = "includegwc" , mandatory = false , unspecifiedDefaultValue = "false" , help = "The include GWC flag" ) boolean includeGwc ,
67+ @ CliOption (key = "includelog" , mandatory = false , unspecifiedDefaultValue = "false" , help = "The include log files flag" ) boolean includeLog
68+ ) {
69+ GeoServerRESTPublisher publisher = new GeoServerRESTPublisher (geoserver .getUrl (), geoserver .getUser (), geoserver .getPassword ());
70+ String result = publisher .backup (backupDir , includeData , includeGwc , includeLog );
71+ return result != null ;
72+ }
73+
74+ @ CliCommand (value = "geoserver restore" , help = "Restore Geoserver's configuration from a backup directory." )
75+ public boolean restore (
76+ @ CliOption (key = "directory" , mandatory = true , help = "The backup " ) String backupDir
77+ ) {
78+ GeoServerRESTPublisher publisher = new GeoServerRESTPublisher (geoserver .getUrl (), geoserver .getUser (), geoserver .getPassword ());
79+ String result = publisher .restore (backupDir );
80+ return result != null ;
81+ }
5982}
0 commit comments