001package de.deepamehta.plugins.images.migrations; 002 003import de.deepamehta.core.service.Inject; 004import de.deepamehta.core.service.Migration; 005import de.deepamehta.plugins.files.ItemKind; 006import de.deepamehta.plugins.files.ResourceInfo; 007import de.deepamehta.plugins.files.service.FilesService; 008import de.deepamehta.plugins.images.ImagePlugin; 009import java.io.File; 010import java.util.logging.Logger; 011import javax.ws.rs.WebApplicationException; 012 013/** 014 * 015 * @author <malte@mikromedia.de> 016 */ 017public class Migration1 extends Migration { 018 019 private static final Logger log = Logger.getLogger(Migration1.class.getName()); 020 021 @Inject 022 FilesService fileService; 023 024 @Override 025 public void run() { 026 try { 027 // check image file repository 028 ResourceInfo resourceInfo = fileService.getResourceInfo(ImagePlugin.FILEREPO_IMAGES_SUBFOLDER); 029 if (resourceInfo.getItemKind() != ItemKind.DIRECTORY) { 030 String message = "Migration1: image storage directory " + ImagePlugin.FILE_REPOSITORY_PATH + File.separator 031 + ImagePlugin.FILEREPO_IMAGES_SUBFOLDER + " can not be used"; 032 throw new IllegalStateException(message); 033 } 034 } catch (WebApplicationException e) { 035 // catch fileService info request error 036 if (e.getResponse().getStatus() != 404) { 037 throw e; 038 } else { 039 log.info("Migration1: create image directory"); 040 fileService.createFolder(ImagePlugin.FILEREPO_IMAGES_SUBFOLDER, "/"); 041 } 042 } catch (Exception e) { 043 throw new RuntimeException(e); 044 } 045 } 046 047}