View Javadoc

1   package de.tivsource.page.admin.actions.maintenance.backup;
2   
3   import java.io.File;
4   import java.io.FileInputStream;
5   import java.io.InputStream;
6   
7   import org.apache.logging.log4j.LogManager;
8   import org.apache.logging.log4j.Logger;
9   import org.apache.struts2.convention.annotation.Action;
10  import org.apache.struts2.convention.annotation.Actions;
11  import org.apache.struts2.convention.annotation.Result;
12  
13  import de.tivsource.ejb3plugin.InjectEJB;
14  import de.tivsource.page.admin.actions.EmptyAction;
15  import de.tivsource.page.admin.backup.BackupZipFile;
16  import de.tivsource.page.dao.administration.RoleDaoLocal;
17  import de.tivsource.page.dao.administration.UserDaoLocal;
18  import de.tivsource.page.dao.appointment.AppointmentDaoLocal;
19  import de.tivsource.page.dao.companion.CompanionDaoLocal;
20  import de.tivsource.page.dao.companion.CompanionGroupDaoLocal;
21  import de.tivsource.page.dao.event.EventDaoLocal;
22  import de.tivsource.page.dao.gallery.GalleryDaoLocal;
23  import de.tivsource.page.dao.location.LocationDaoLocal;
24  import de.tivsource.page.dao.manual.ManualDaoLocal;
25  import de.tivsource.page.dao.message.MessageDaoLocal;
26  import de.tivsource.page.dao.news.NewsDaoLocal;
27  import de.tivsource.page.dao.page.PageDaoLocal;
28  import de.tivsource.page.dao.picture.PictureDaoLocal;
29  import de.tivsource.page.dao.property.PropertyDaoLocal;
30  import de.tivsource.page.dao.reservation.ReservationDaoLocal;
31  import de.tivsource.page.dao.slider.SliderDaoLocal;
32  import de.tivsource.page.dao.vacancy.VacancyDaoLocal;
33  
34  /**
35   * 
36   * @author Marc Michele
37   *
38   */
39  public class BackupDatabaseAction extends EmptyAction {
40  
41  	/**
42  	 * Serial Version UID.
43  	 */
44      private static final long serialVersionUID = -4395588224647598044L;
45  
46      /**
47       * Statischer Logger der Klasse.
48       */
49      private static final Logger LOGGER = LogManager.getLogger(BackupDatabaseAction.class);
50  
51  	@InjectEJB(name="GalleryDao")
52      private GalleryDaoLocal galleryDaoLocal;
53  
54  	@InjectEJB(name="PictureDao")
55      private PictureDaoLocal pictureDaoLocal;
56  
57  	@InjectEJB(name="PageDao")
58      private PageDaoLocal pageDaoLocal;
59  
60      @InjectEJB(name="RoleDao")
61      private RoleDaoLocal roleDaoLocal;
62  
63      @InjectEJB(name="UserDao")
64      private UserDaoLocal userDaoLocal;
65  
66      @InjectEJB(name="PropertyDao")
67      private PropertyDaoLocal propertyDaoLocal;
68  
69      @InjectEJB(name="LocationDao")
70      private LocationDaoLocal locationDaoLocal;
71  
72      @InjectEJB(name="EventDao")
73      private EventDaoLocal eventDaoLocal;
74  
75      @InjectEJB(name="MessageDao")
76      private MessageDaoLocal messageDaoLocal;
77  
78      @InjectEJB(name="NewsDao")
79      private NewsDaoLocal newsDaoLocal;
80      
81      @InjectEJB(name="ReservationDao")
82      private ReservationDaoLocal reservationDaoLocal;
83  
84      @InjectEJB(name="VacancyDao")
85      private VacancyDaoLocal vacancyDaoLocal;
86  
87      @InjectEJB(name="ManualDao")
88      private ManualDaoLocal manualDaoLocal;
89  
90      @InjectEJB(name="AppointmentDao")
91      private AppointmentDaoLocal appointmentDaoLocal;
92  
93      @InjectEJB(name="CompanionGroupDao")
94      private CompanionGroupDaoLocal companionGroupDaoLocal;
95  
96      @InjectEJB(name="CompanionDao")
97      private CompanionDaoLocal companionDaoLocal;
98  
99      @InjectEJB(name="SliderDao")
100     private SliderDaoLocal sliderDaoLocal;
101 
102 	private InputStream fileStream;
103 
104 	@Override
105     @Actions({
106         @Action(
107         		value = "database", 
108         		results = { @Result(
109         				           name = "success", 
110         				           type="stream", 
111         				           params={"contentType", "text/plain", "inputName", "fileStream", "contentDisposition", "attachment;filename=tiv_page_database.zip"}
112         				           ) }
113         )
114     })
115     public String execute() throws Exception {
116     	LOGGER.info("execute() aufgerufen.");
117     	BackupZipFile.setGalleryDaoLocal(galleryDaoLocal);
118     	BackupZipFile.setPictureDaoLocal(pictureDaoLocal);
119     	BackupZipFile.setPageDaoLocal(pageDaoLocal);
120     	BackupZipFile.setRoleDaoLocal(roleDaoLocal);
121     	BackupZipFile.setUserDaoLocal(userDaoLocal);
122     	BackupZipFile.setPropertyDaoLocal(propertyDaoLocal);
123     	BackupZipFile.setLocationDaoLocal(locationDaoLocal);
124     	BackupZipFile.setEventDaoLocal(eventDaoLocal);
125     	BackupZipFile.setMessageDaoLocal(messageDaoLocal);
126     	BackupZipFile.setNewsDaoLocal(newsDaoLocal);
127     	BackupZipFile.setReservationDaoLocal(reservationDaoLocal);
128     	BackupZipFile.setVacancyDaoLocal(vacancyDaoLocal);
129     	BackupZipFile.setManualDaoLocal(manualDaoLocal);
130     	BackupZipFile.setAppointmentDaoLocal(appointmentDaoLocal);
131     	BackupZipFile.setCompanionGroupDaoLocal(companionGroupDaoLocal);
132         BackupZipFile.setCompanionDaoLocal(companionDaoLocal);
133         BackupZipFile.setSliderDaoLocal(sliderDaoLocal);
134     	File backupFile = BackupZipFile.getZipFile();
135     	fileStream = new FileInputStream(backupFile);
136     	backupFile.delete();
137     	return SUCCESS;
138     }
139     
140     public InputStream getFileStream() {
141 		return fileStream;
142 	}
143     
144 }// Ende class