1
2
3
4 package de.tivsource.page.admin.backup;
5
6 import java.io.File;
7 import java.io.FileInputStream;
8 import java.io.FileOutputStream;
9 import java.io.IOException;
10 import java.util.Iterator;
11 import java.util.List;
12 import java.util.zip.ZipEntry;
13 import java.util.zip.ZipOutputStream;
14
15 import org.apache.logging.log4j.LogManager;
16 import org.apache.logging.log4j.Logger;
17
18 import de.tivsource.page.dao.administration.RoleDaoLocal;
19 import de.tivsource.page.dao.administration.UserDaoLocal;
20 import de.tivsource.page.dao.appointment.AppointmentDaoLocal;
21 import de.tivsource.page.dao.companion.CompanionDaoLocal;
22 import de.tivsource.page.dao.companion.CompanionGroupDaoLocal;
23 import de.tivsource.page.dao.event.EventDaoLocal;
24 import de.tivsource.page.dao.gallery.GalleryDaoLocal;
25 import de.tivsource.page.dao.location.LocationDaoLocal;
26 import de.tivsource.page.dao.manual.ManualDaoLocal;
27 import de.tivsource.page.dao.message.MessageDaoLocal;
28 import de.tivsource.page.dao.news.NewsDaoLocal;
29 import de.tivsource.page.dao.page.PageDaoLocal;
30 import de.tivsource.page.dao.picture.PictureDaoLocal;
31 import de.tivsource.page.dao.property.PropertyDaoLocal;
32 import de.tivsource.page.dao.reservation.ReservationDaoLocal;
33 import de.tivsource.page.dao.slider.SliderDaoLocal;
34 import de.tivsource.page.dao.vacancy.VacancyDaoLocal;
35
36
37
38
39
40 public class BackupZipFile {
41
42
43
44
45 private static final Logger LOGGER = LogManager.getLogger(BackupZipFile.class);
46
47 private static GalleryDaoLocal galleryDaoLocal;
48
49 private static PictureDaoLocal pictureDaoLocal;
50
51 private static PageDaoLocal pageDaoLocal;
52
53 private static UserDaoLocal userDaoLocal;
54
55 private static RoleDaoLocal roleDaoLocal;
56
57 private static PropertyDaoLocal propertyDaoLocal;
58
59 private static LocationDaoLocal locationDaoLocal;
60
61 private static EventDaoLocal eventDaoLocal;
62
63 private static MessageDaoLocal messageDaoLocal;
64
65 private static NewsDaoLocal newsDaoLocal;
66
67 private static ReservationDaoLocal reservationDaoLocal;
68
69 private static VacancyDaoLocal vacancyDaoLocal;
70
71 private static ManualDaoLocal manualDaoLocal;
72
73 private static AppointmentDaoLocal appointmentDaoLocal;
74
75 private static CompanionGroupDaoLocal companionGroupDaoLocal;
76
77 private static CompanionDaoLocal companionDaoLocal;
78
79 private static SliderDaoLocal sliderDaoLocal;
80
81 private static byte[] buffer = new byte[1024];
82
83 public static void setGalleryDaoLocal(GalleryDaoLocal galleryDaoLocal) {
84 BackupZipFile.galleryDaoLocal = galleryDaoLocal;
85 }
86
87 public static void setPictureDaoLocal(PictureDaoLocal pictureDaoLocal) {
88 BackupZipFile.pictureDaoLocal = pictureDaoLocal;
89 }
90
91 public static void setPageDaoLocal(PageDaoLocal pageDaoLocal) {
92 BackupZipFile.pageDaoLocal = pageDaoLocal;
93 }
94
95 public static void setUserDaoLocal(UserDaoLocal userDaoLocal) {
96 BackupZipFile.userDaoLocal = userDaoLocal;
97 }
98
99 public static void setRoleDaoLocal(RoleDaoLocal roleDaoLocal) {
100 BackupZipFile.roleDaoLocal = roleDaoLocal;
101 }
102
103 public static void setPropertyDaoLocal(PropertyDaoLocal propertyDaoLocal) {
104 BackupZipFile.propertyDaoLocal = propertyDaoLocal;
105 }
106
107 public static void setLocationDaoLocal(LocationDaoLocal locationDaoLocal) {
108 BackupZipFile.locationDaoLocal = locationDaoLocal;
109 }
110
111 public static void setEventDaoLocal(EventDaoLocal eventDaoLocal) {
112 BackupZipFile.eventDaoLocal = eventDaoLocal;
113 }
114
115 public static void setMessageDaoLocal(MessageDaoLocal messageDaoLocal) {
116 BackupZipFile.messageDaoLocal = messageDaoLocal;
117 }
118
119 public static void setNewsDaoLocal(NewsDaoLocal newsDaoLocal) {
120 BackupZipFile.newsDaoLocal = newsDaoLocal;
121 }
122
123 public static void setReservationDaoLocal(ReservationDaoLocal reservationDaoLocal) {
124 BackupZipFile.reservationDaoLocal = reservationDaoLocal;
125 }
126
127 public static void setVacancyDaoLocal(VacancyDaoLocal vacancyDaoLocal) {
128 BackupZipFile.vacancyDaoLocal = vacancyDaoLocal;
129 }
130
131 public static void setManualDaoLocal(ManualDaoLocal manualDaoLocal) {
132 BackupZipFile.manualDaoLocal = manualDaoLocal;
133 }
134
135 public static void setAppointmentDaoLocal(AppointmentDaoLocal appointmentDaoLocal) {
136 BackupZipFile.appointmentDaoLocal = appointmentDaoLocal;
137 }
138
139 public static void setCompanionGroupDaoLocal(CompanionGroupDaoLocal companionGroupDaoLocal) {
140 BackupZipFile.companionGroupDaoLocal = companionGroupDaoLocal;
141 }
142
143 public static void setCompanionDaoLocal(CompanionDaoLocal companionDaoLocal) {
144 BackupZipFile.companionDaoLocal = companionDaoLocal;
145 }
146
147
148
149
150 public static void setSliderDaoLocal(SliderDaoLocal sliderDaoLocal) {
151 BackupZipFile.sliderDaoLocal = sliderDaoLocal;
152 }
153
154 public static File getZipFile() throws IOException {
155 LOGGER.info("getZipFile() aufgerufen.");
156
157
158 File zipFile = File.createTempFile("complete_tivpage", "zip");
159 ZipOutputStream outZipFile = new ZipOutputStream(new FileOutputStream(zipFile));
160
161
162
163
164 BackupGallery.setGalleryDaoLocal(galleryDaoLocal);
165 addData(BackupGallery.getBackupFile(), outZipFile, "gallery.csv");
166
167
168
169
170 BackupPicture.setPictureDaoLocal(pictureDaoLocal);
171 addData(BackupPicture.getBackupFile(), outZipFile, "picture.csv");
172
173
174
175
176 BackupPage.setPageDaoLocal(pageDaoLocal);
177 BackupPage backupPage = new BackupPage();
178 addMultiData(backupPage.getBackupFiles(), outZipFile);
179
180
181
182
183 BackupRole.setRoleDaoLocal(roleDaoLocal);
184 addData(BackupRole.getBackupFile(), outZipFile, "role.csv");
185
186
187
188
189 BackupUser.setUserDaoLocal(userDaoLocal);
190 addData(BackupUser.getBackupFile(), outZipFile, "user.csv");
191
192
193
194
195 BackupProperty.setPropertyDaoLocal(propertyDaoLocal);
196 addData(BackupProperty.getBackupFile(), outZipFile, "property.csv");
197
198
199
200
201 BackupLocation.setLocationDaoLocal(locationDaoLocal);
202 addData(BackupLocation.getBackupFile(), outZipFile, "location.csv");
203
204
205
206
207 BackupEvent.setEventDaoLocal(eventDaoLocal);;
208 addData(BackupEvent.getBackupFile(), outZipFile, "event.csv");
209
210
211
212
213 BackupMessage.setMessageDaoLocal(messageDaoLocal);
214 BackupMessage backupMessage = new BackupMessage();
215 addMultiData(backupMessage.getBackupFiles(), outZipFile);
216
217
218
219
220 BackupNews.setNewsDaoLocal(newsDaoLocal);
221 BackupNews backupNews = new BackupNews();
222 addMultiData(backupNews.getBackupFiles(), outZipFile);
223
224
225
226
227 BackupReservation.setReservationDaoLocal(reservationDaoLocal);
228 BackupReservation backupReservation = new BackupReservation();
229 addMultiData(backupReservation.getBackupFiles(), outZipFile);
230
231
232
233
234 BackupVacancy.setVacancyDaoLocal(vacancyDaoLocal);
235 BackupVacancy backupVacancy = new BackupVacancy();
236 addMultiData(backupVacancy.getBackupFiles(), outZipFile);
237
238
239
240
241 BackupManual.setManualDaoLocal(manualDaoLocal);
242 BackupManual backupManual = new BackupManual();
243 addMultiData(backupManual.getBackupFiles(), outZipFile);
244
245
246
247
248 BackupAppointment.setAppointmentDaoLocal(appointmentDaoLocal);
249 BackupAppointment backupAppointment = new BackupAppointment();
250 addMultiData(backupAppointment.getBackupFiles(), outZipFile);
251
252
253
254
255 BackupCompanionGroup.setCompanionGroupDaoLocal(companionGroupDaoLocal);
256 addData(BackupCompanionGroup.getBackupFile(), outZipFile, "companionGroup.csv");
257
258
259
260
261 BackupCompanion.setCompanionDaoLocal(companionDaoLocal);
262 addData(BackupCompanion.getBackupFile(), outZipFile, "companion.csv");
263
264
265
266
267 BackupSlider.setSliderDaoLocal(sliderDaoLocal);
268 addData(BackupSlider.getBackupFile(), outZipFile, "slider.csv");
269
270
271 outZipFile.close();
272
273 return zipFile;
274 }
275
276 private static void addData(File file, ZipOutputStream zipOutputStream,
277 String filename) throws IOException {
278
279 FileInputStream fileInputStream = new FileInputStream(file);
280
281
282 zipOutputStream.putNextEntry(new ZipEntry(filename));
283
284
285 int len;
286 while ((len = fileInputStream.read(buffer)) > 0) {
287 zipOutputStream.write(buffer, 0, len);
288 }
289
290 zipOutputStream.closeEntry();
291 fileInputStream.close();
292 file.delete();
293 }
294
295 private static void addMultiData(List<File> files,
296 ZipOutputStream zipOutputStream) throws IOException {
297 Iterator<File> fileIterator = files.iterator();
298 while (fileIterator.hasNext()) {
299 File next = fileIterator.next();
300 addData(next, zipOutputStream, next.getName());
301 }
302 }
303
304 }