@Override public RepeatStatus handle( StepContribution contribution, ChunkContext chunkContext, JobExecution jobExecution, BackupRestoreItem context) { Resource inputDirectory; Resource outputDirectory; if (GenericTaskletUtils.isBackup(context)) { // we are doing a backup inputDirectory = dataDirectory.getRoot(); outputDirectory = GenericTaskletUtils.getOutputDirectory(jobExecution); } else { // we are doing a restore inputDirectory = GenericTaskletUtils.getInputDirectory(jobExecution); outputDirectory = dataDirectory.getRoot(); } copyFile(inputDirectory, EXTRA_FILE_NAME, outputDirectory, EXTRA_FILE_NAME); return RepeatStatus.FINISHED; }
@Test public void testSidecarFilesWriter() throws Exception { CatalogBackupRestoreTasklet catalogTsklet = new CatalogBackupRestoreTasklet(backupFacade); File tmpDd = File.createTempFile("template", "tmp", new File("target")); tmpDd.delete(); tmpDd.mkdir(); GeoServerDataDirectory dd = new GeoServerDataDirectory(tmpDd); File tmpTd = File.createTempFile("template", "tmp", new File("target")); tmpTd.delete(); tmpTd.mkdir(); GeoServerDataDirectory td = new GeoServerDataDirectory(tmpTd); BackupUtils.extractTo(file("data.zip"), dd.get(Paths.BASE)); // Backup other configuration bits, like images, palettes, user projections and so on... catalogTsklet.backupRestoreAdditionalResources(dd.getResourceStore(), td.get(Paths.BASE)); assertTrue(Resources.exists(Files.asResource(new File(td.get(Paths.BASE).dir(), "demo")))); assertTrue( Resources.exists(Files.asResource(new File(td.get(Paths.BASE).dir(), "images")))); assertTrue(Resources.exists(Files.asResource(new File(td.get(Paths.BASE).dir(), "logs")))); assertTrue( Resources.exists(Files.asResource(new File(td.get(Paths.BASE).dir(), "palettes")))); assertTrue( Resources.exists( Files.asResource(new File(td.get(Paths.BASE).dir(), "user_projections")))); assertTrue( Resources.exists( Files.asResource(new File(td.get(Paths.BASE).dir(), "validation")))); assertTrue(Resources.exists(Files.asResource(new File(td.get(Paths.BASE).dir(), "www")))); }
GeoServer geoserver = getGeoServer(); CatalogBackupRestoreTasklet catalogTsklet = new CatalogBackupRestoreTasklet(backupFacade); catalogTsklet.doWrite(geoserver.getGlobal(), td.get(Paths.BASE), "global.xml"); catalogTsklet.doWrite(geoserver.getSettings(), td.get(Paths.BASE), "settings.xml"); catalogTsklet.doWrite(geoserver.getLogging(), td.get(Paths.BASE), "logging.xml"); Files.asResource(new File(td.get(Paths.BASE).dir(), "logging.xml")))); XStreamPersister xstream = catalogTsklet.getxStreamPersisterFactory().createXMLPersister(); xstream.setCatalog(cat); xstream.setReferenceByName(true); assertEquals(geoserver.getLogging(), gsLogging); catalogTsklet.doWrite( cat.getDefaultWorkspace(), BackupUtils.dir(td.get(Paths.BASE), "workspaces"),