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
37
38
39 public class BackupDatabaseAction extends EmptyAction {
40
41
42
43
44 private static final long serialVersionUID = -4395588224647598044L;
45
46
47
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 }