# GalleryInstancePreDestruction.java

    package org.silverpeas.components.gallery;

    import jakarta.inject.Inject;
    import jakarta.inject.Named;
    import jakarta.transaction.Transactional;
    import org.silverpeas.components.gallery.service.GalleryService;
    import org.silverpeas.core.admin.component.ComponentInstancePreDestruction;
    import org.silverpeas.core.admin.user.model.UserDetail;
    import org.silverpeas.core.annotation.Bean;
    import org.silverpeas.core.node.model.NodePK;
    import org.silverpeas.core.util.file.FileRepositoryManager;
    import org.silverpeas.core.util.file.FileUtil;
    import org.silverpeas.kernel.annotation.Technical;

    import java.io.File;

    /**
     * @author Yohann Chastagnier
     */
    @Technical
    @Bean
    @Named
    public class GalleryInstancePreDestruction implements ComponentInstancePreDestruction {

      @Inject
      private GalleryService mediaService;

      @Transactional
      @Override
      public void preDestroy(final String componentInstanceId) {
        mediaService.deleteAlbum(UserDetail.getCurrentRequester(), componentInstanceId,
                new NodePK(NodePK.ROOT_NODE_ID, componentInstanceId));
        FileUtil.deleteEmptyDir(new File(FileRepositoryManager.getAbsolutePath(componentInstanceId)));
      }
    }