Mercurial > hg > ismi-richfaces
annotate src/main/java/de/mpiwg/itgroup/ismi/entry/beans/ApplicationBean.java @ 134:25bfcc9d757c
effort to re-use more relations when saving entities.
new replaceMultipleSourceRelations() and changes to use it.
changes for renamed replaceUniqueSourceRelation().
author | casties |
---|---|
date | Fri, 24 Feb 2017 20:25:33 +0100 |
parents | 4aa8c425685d |
children | 62d5276ed785 |
rev | line source |
---|---|
1 | 1 package de.mpiwg.itgroup.ismi.entry.beans; |
2 | |
3 import java.io.Serializable; | |
4 import java.util.ArrayList; | |
5 import java.util.Arrays; | |
6 import java.util.List; | |
7 | |
8 import javax.faces.context.FacesContext; | |
9 import javax.faces.model.SelectItem; | |
10 import javax.servlet.http.HttpServletRequest; | |
11 | |
12 import org.apache.commons.lang.StringUtils; | |
13 import org.apache.log4j.Logger; | |
14 import org.mpi.openmind.cache.WrapperService; | |
15 import org.mpi.openmind.configuration.ConfigurationService; | |
16 import org.mpi.openmind.repository.bo.Entity; | |
17 import org.mpi.openmind.repository.services.ServiceRegistry; | |
18 import org.mpi.openmind.search.SearchService; | |
19 import org.mpi.openmind.security.SecurityService; | |
20 | |
21 import de.mpiwg.itgroup.ismi.entry.dataBeans.SimpleSearchCache; | |
22 import de.mpiwg.itgroup.ismi.publicView.PublicCodexList; | |
23 | |
24 /** | |
25 * <p> | |
26 * Application scope data bean for your application. Create properties here to | |
27 * represent cached data that should be made available to all users and pages in | |
28 * the application. | |
29 * </p> | |
30 * | |
31 * <p> | |
32 * An instance of this class will be created for you automatically, the first | |
33 * time your application evaluates a value binding expression or method binding | |
34 * expression that references a managed bean using this class. | |
35 * </p> | |
36 * | |
37 * @version ApplicationBean1.java | |
38 * @version Created on 23.06.2009, 10:58:17 | |
39 * @author jurzua | |
40 */ | |
41 | |
42 public class ApplicationBean implements Serializable{ | |
43 | |
44 private static final long serialVersionUID = 804932192506497432L; | |
45 | |
46 private static Logger logger = Logger.getLogger(ApplicationBean.class); | |
47 | |
48 public static String urlISMIExportServiceAuthors = | |
56
ce1cd2450848
change title list export service url. remove biographies menu.
casties
parents:
14
diff
changeset
|
49 "https://ismi-dev.mpiwg-berlin.mpg.de/zope-ismi/database/export/authorsTitlesWitness"; |
1 | 50 |
51 public static String urlISMIExportServiceTitles = | |
56
ce1cd2450848
change title list export service url. remove biographies menu.
casties
parents:
14
diff
changeset
|
52 "https://ismi-dev.mpiwg-berlin.mpg.de/zope-ismi/database/export/titlesWitnesses"; |
1 | 53 |
54 private BiographyBean biographyBean; | |
55 | |
56 private PublicCodexList publicCodexList; | |
57 | |
58 public static String generateExportURL(String urlRoot, List<Long> list, String mode){ | |
59 StringBuilder sb = new StringBuilder(urlRoot); | |
60 | |
61 sb.append("?ids=" + generateIdList(list)); | |
62 | |
63 if(StringUtils.isNotEmpty(mode)){ | |
64 sb.append("&mode=" + mode); | |
65 } | |
66 | |
67 return sb.toString(); | |
68 } | |
69 | |
70 public static String generateIdList(List<Long> list){ | |
71 StringBuilder sb = new StringBuilder(); | |
72 | |
73 int count = 0; | |
74 for(Long id : list){ | |
75 | |
76 if(count>0){ | |
77 sb.append("%7C"); | |
78 } | |
79 sb.append(id); | |
80 count++; | |
81 } | |
82 return sb.toString(); | |
83 } | |
84 | |
85 public static String generateExportURL(String urlRoot, String idList, String mode){ | |
86 StringBuilder sb = new StringBuilder(urlRoot); | |
87 | |
88 sb.append("?ids=" + idList); | |
89 if(StringUtils.isNotEmpty(mode)){ | |
90 sb.append("&mode=" + mode); | |
91 } | |
92 | |
93 return sb.toString(); | |
94 } | |
95 | |
96 | |
97 public static String generateExportURL(String urlRoot, Long id, String mode){ | |
98 StringBuilder sb = new StringBuilder(urlRoot); | |
99 | |
100 sb.append("?ids=" + id); | |
101 if(StringUtils.isNotEmpty(mode)){ | |
102 sb.append("&mode=" + mode); | |
103 } | |
104 | |
105 return sb.toString(); | |
106 } | |
107 | |
108 public static String CURRENT_WITNESS = "CurrentWitness"; | |
109 public static String CURRENT_CODEX = "CurrentCodex"; | |
110 public static String CURRENT_TEXT = "CurrentText"; | |
111 public static String CURRENT_PERSON = "CurrentPerson"; | |
112 public static String CURRENT_ALIAS = "CurrentAlias"; | |
113 public static String CURRENT_COLLECTION = "CurrentCollection"; | |
114 public static String CURRENT_REPOSITORY = "CurrentRepository"; | |
115 public static String CURRENT_CITY = "CurrentCity"; | |
116 public static String CURRENT_SUBJECT = "CurrentSubject"; | |
117 public static String CURRENT_ROLE = "CurrentRole"; | |
118 public static String CURRENT_DIGI = "CurrentDigi"; | |
119 | |
120 private transient SimpleSearchCache simpleSearchCache; | |
121 ServiceRegistry serviceRegistry = null; | |
122 | |
123 | |
124 private List<SelectItem> roleList = new ArrayList<SelectItem>(); | |
125 private List<Entity> entityRoleList = new ArrayList<Entity>(); | |
126 private boolean roleListDirty = true; | |
127 | |
128 private static List<SelectItem> yes_no = new ArrayList<SelectItem>(); | |
129 private static List<SelectItem> roles = new ArrayList<SelectItem>(); | |
130 | |
131 private static List<SelectItem> suggestedStatus = new ArrayList<SelectItem>(); | |
132 private static List<SelectItem> suggestedBindings = new ArrayList<SelectItem>(); | |
133 private static List<SelectItem> writingSurfaces = new ArrayList<SelectItem>(); | |
134 private static List<SelectItem> pageLayout = new ArrayList<SelectItem>(); | |
135 private static List<SelectItem> scripts = new ArrayList<SelectItem>(); | |
136 private static List<SelectItem> sourcesOfInformation = new ArrayList<SelectItem>(); | |
137 private static List<SelectItem> suggestedLanguages = new ArrayList<SelectItem>(); | |
138 private static List<SelectItem> suggestedTextTypes = new ArrayList<SelectItem>(); | |
139 private static List<SelectItem> suggestedBoolean = new ArrayList<SelectItem>(); | |
140 | |
141 | |
142 public static String STATUS_NEED_VERIFICATION = "needs verification"; | |
143 public static String STATUS_VERIFIED_BY_CATALOGUE = "verified by catalogue"; | |
144 public static String STATUS_VERIFIED_BY_WITNESS = "verified by witness"; | |
145 public static String STATUS_NOT_CHECKED = "not checked"; | |
146 | |
147 public static String FORMATED_DATE = "formatted date"; | |
148 public static String PLAIN_DATE = "plain date"; | |
149 private static List<SelectItem> dateTypes = new ArrayList<SelectItem>(); | |
150 | |
151 private List<SelectItem> suggestedSubjects = null; | |
152 | |
153 public void resetSuggestedSubjects(){ | |
154 this.suggestedSubjects = new ArrayList<SelectItem>(); | |
155 this.suggestedSubjects.add(new SelectItem(null, "-- choose --")); | |
156 | |
157 List<Entity> cats = getWrapper().getEntitiesByAtt("SUBJECT", "type", "main_subject", -1, false); | |
158 | |
159 for(Entity cat : cats){ | |
160 SelectItem item = new SelectItem(cat.getId(), cat.getOwnValue()); | |
161 | |
162 item.setStyle("font-weight: bold; padding-left: 0px; font-size: 14;"); | |
163 this.suggestedSubjects.add(item); | |
164 List<Entity> subCats = getWrapper().getSourcesForTargetRelation(cat, "is_part_of", "SUBJECT", -1); | |
165 for(Entity subCat : subCats){ | |
166 | |
167 item = new SelectItem(subCat.getId(), subCat.getOwnValue()); | |
168 item.setStyle("padding-left: 10px; font-size: 12;"); | |
169 this.suggestedSubjects.add(item); | |
170 | |
171 List<Entity> subsubCats = getWrapper().getSourcesForTargetRelation(subCat, "is_part_of", "SUBJECT", -1); | |
172 for(Entity subsubCat : subsubCats){ | |
173 if(subsubCat != null){ | |
174 item = new SelectItem(subsubCat.getId(), subsubCat.getOwnValue()); | |
175 | |
176 this.suggestedSubjects.add(item); | |
177 | |
178 }else{ | |
119 | 179 logger.debug("error in resetSuggestedSubjects: main="+cat+" sub="+subCat); |
180 //System.out.println("####################ERROR####################"); | |
181 //System.out.println("resetSuggestedSubjects"); | |
182 //System.out.println(" main: " + cat); | |
183 //System.out.println(" sub: " + subCat); | |
1 | 184 } |
185 } | |
186 } | |
187 } | |
188 } | |
189 | |
190 public List<SelectItem> getSuggestedSubjects() { | |
191 if(suggestedSubjects == null){ | |
192 this.resetSuggestedSubjects(); | |
193 } | |
194 return suggestedSubjects; | |
195 } | |
196 | |
197 public void setSuggestedSubjects(List<SelectItem> suggestedSubjects) { | |
198 this.suggestedSubjects = suggestedSubjects; | |
199 } | |
200 | |
201 static{ | |
202 | |
203 dateTypes.add(new SelectItem(FORMATED_DATE)); | |
204 dateTypes.add(new SelectItem(PLAIN_DATE)); | |
205 | |
206 String[] status = new String[]{"needs verification", "verified by catalogue", "verified by witness"}; | |
207 Arrays.sort(status); | |
208 | |
209 suggestedStatus.add(new SelectItem("", STATUS_NOT_CHECKED)); | |
210 for(int i=0; i< status.length; i++){ | |
211 suggestedStatus.add(new SelectItem(status[i])); | |
212 } | |
213 | |
214 String[] binding = new String[]{"cardboard", "leather with flap", "leather without flap"}; | |
215 Arrays.sort(binding); | |
216 | |
217 suggestedBindings.add(new SelectItem("", "-- choose --")); | |
218 for(int i=0; i< binding.length; i++){ | |
219 suggestedBindings.add(new SelectItem(binding[i])); | |
220 } | |
221 | |
222 | |
223 String[] langs = new String[] { "Arabic", "Persian-Farsi", | |
224 "Greek-classical", "Hebrew", "Latin", "Syriac", "Armenian", | |
225 "Castillian", "Catalan", "Chinese", "French", "German", | |
226 "Greek-Byzantine", "Hindi", "Italian", "Mongolian", | |
227 "Persian-Old", "Persian-Middle", "Russian", "Sanskrit", | |
228 "Turkish (Ottoman pre-1839)", "Turkish (Ottoman 1839-)", | |
229 "Turkish (pre-Ottoman)", "Turkish-Republican", "Urdu", "Uighur" }; | |
230 Arrays.sort(langs); | |
231 | |
232 suggestedLanguages.add(new SelectItem("", "-- choose --")); | |
233 for(int i = 0; i < langs.length; i++){ | |
234 suggestedLanguages.add(new SelectItem(langs[i])); | |
235 } | |
236 | |
237 String[] tts = new String[] { | |
238 "First-order prose composition (or compilation) [matn]", | |
239 "First-order verse composition (didactic poem)", | |
240 "Second-order composition (Commentary) [sharh]", | |
241 "Third-order composition (Supercommentary)", | |
242 "Fourth-order composition (Gloss)", | |
243 "Fifth-order composition (Supergloss)", | |
244 "Sixth-order composition", "Seventh-order composition", | |
245 "Rearrangement", "Abridgement (epitome)", "Versification", | |
246 "Translation", "Paraphrase", "Supplement" }; | |
247 Arrays.sort(tts); | |
248 | |
249 suggestedTextTypes.add(new SelectItem("", "-- choose --")); | |
250 for(int i = 0; i < tts.length; i++){ | |
251 suggestedTextTypes.add(new SelectItem(tts[i])); | |
252 } | |
253 | |
254 yes_no.add(new SelectItem("", "-- choose --")); | |
255 yes_no.add(new SelectItem("yes")); | |
256 yes_no.add(new SelectItem("no")); | |
257 | |
258 suggestedBoolean.add(new SelectItem("", "-- choose --")); | |
259 suggestedBoolean.add(new SelectItem("true")); | |
260 suggestedBoolean.add(new SelectItem("false")); | |
261 | |
262 roles.add(new SelectItem("", "-- choose --")); | |
263 roles.add(new SelectItem("annotator")); | |
264 roles.add(new SelectItem("author")); | |
265 roles.add(new SelectItem("copyist")); | |
266 roles.add(new SelectItem("illuminator")); | |
267 roles.add(new SelectItem("illustrator")); | |
268 roles.add(new SelectItem("owner")); | |
269 roles.add(new SelectItem("patron")); | |
270 roles.add(new SelectItem("reader")); | |
271 roles.add(new SelectItem("student")); | |
272 roles.add(new SelectItem("teacher")); | |
273 roles.add(new SelectItem("translator")); | |
274 | |
275 writingSurfaces.add(new SelectItem("", "-- choose --")); | |
276 writingSurfaces.add(new SelectItem("HARD", "HARD")); | |
277 writingSurfaces.add(new SelectItem("marble", " marble")); | |
278 writingSurfaces.add(new SelectItem("metal instrument", " metal instrument")); | |
279 writingSurfaces.add(new SelectItem("stone", " stone")); | |
280 writingSurfaces.add(new SelectItem("SOFT", "SOFT")); | |
281 writingSurfaces.add(new SelectItem("paper", " paper")); | |
282 writingSurfaces.add(new SelectItem("papyrus", " papyrus")); | |
283 writingSurfaces.add(new SelectItem("parchment", " parchment")); | |
284 | |
285 pageLayout.add(new SelectItem("", "-- choose --")); | |
286 pageLayout.add(new SelectItem("Frame-ruled")); | |
287 pageLayout.add(new SelectItem("Paper")); | |
288 | |
289 scripts.add(new SelectItem("", "-- choose --")); | |
290 scripts.add(new SelectItem("Maghribi")); | |
291 scripts.add(new SelectItem("Naskh")); | |
292 scripts.add(new SelectItem("Nasta'liq")); | |
293 scripts.add(new SelectItem("Riqa'")); | |
294 scripts.add(new SelectItem("Ruq'ah")); | |
295 scripts.add(new SelectItem("Shikastah")); | |
296 scripts.add(new SelectItem("Sudani")); | |
297 scripts.add(new SelectItem("Ta'liq")); | |
298 scripts.add(new SelectItem("Tawqi'")); | |
299 scripts.add(new SelectItem("Other-see Notes")); | |
300 | |
301 | |
302 sourcesOfInformation.add(new SelectItem("", "-- choose --")); | |
303 sourcesOfInformation.add(new SelectItem("Actual Witness")); | |
304 sourcesOfInformation.add(new SelectItem("Microfilm")); | |
305 sourcesOfInformation.add(new SelectItem("Digital Form (DVD/CD)")); | |
306 sourcesOfInformation.add(new SelectItem("Catalogue (Give Full Citation In Notes)")); | |
307 } | |
308 | |
309 public SearchService getSS() { | |
310 return serviceRegistry.getSearchService(); | |
311 } | |
312 | |
313 public WrapperService getWrapper() { | |
314 return serviceRegistry.getWrapper(); | |
315 } | |
316 | |
317 public SecurityService getSecurityService() { | |
318 return serviceRegistry.getSecurityService(); | |
319 } | |
320 | |
321 public ConfigurationService getConfService(){ | |
322 return serviceRegistry.getConfigurationService(); | |
323 } | |
324 | |
325 /** | |
326 * <p> | |
327 * Construct a new application data bean instance. | |
328 * </p> | |
329 */ | |
330 public ApplicationBean() { | |
331 logger.info("Initialize ApplicationBean1"); | |
332 this.serviceRegistry = new ServiceRegistry(); | |
333 this.simpleSearchCache = new SimpleSearchCache(serviceRegistry); | |
334 } | |
335 | |
336 public List<SelectItem> getYes_no() { | |
337 return yes_no; | |
338 } | |
339 | |
340 public List<SelectItem> getRoles() { | |
341 return roles; | |
342 } | |
343 | |
344 public List<SelectItem> getWritingSurfaces(){ | |
345 return writingSurfaces; | |
346 } | |
347 | |
348 public List<SelectItem> getPageLayout(){ | |
349 return pageLayout; | |
350 } | |
351 | |
352 public List<SelectItem> getScripts(){ | |
353 return scripts; | |
354 } | |
355 | |
356 public List<SelectItem> getSuggestedStatus(){ | |
357 return suggestedStatus; | |
358 } | |
359 | |
360 public List<SelectItem> getSuggestedBindings(){ | |
361 return suggestedBindings; | |
362 } | |
363 | |
364 public List<SelectItem> getSourcesOfInformation(){ | |
365 return sourcesOfInformation; | |
366 } | |
367 | |
368 public List<SelectItem> getSuggestedLanguages(){ | |
369 return suggestedLanguages; | |
370 } | |
371 | |
372 public List<SelectItem> getSuggestedTextTypes(){ | |
373 return suggestedTextTypes; | |
374 } | |
375 | |
376 public List<SelectItem> getSuggestedBoolean(){ | |
377 return suggestedBoolean; | |
378 } | |
379 | |
380 public List<SelectItem> getDateTypes(){ | |
381 return dateTypes; | |
382 } | |
383 | |
384 public SimpleSearchCache getSimpleSearchCache() { | |
385 return simpleSearchCache; | |
386 } | |
387 | |
388 public void setSimpleSearchCache(SimpleSearchCache simpleSearchCache) { | |
389 this.simpleSearchCache = simpleSearchCache; | |
390 } | |
391 | |
392 public void setRoleListAsDirty(){ | |
393 this.roleListDirty = true; | |
394 } | |
395 | |
396 public String getRoot(){ | |
397 return FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath(); | |
398 } | |
399 | |
400 public List<SelectItem> getRoleList(){ | |
401 if(roleListDirty){ | |
402 this.roleList = new ArrayList<SelectItem>(); | |
403 this.entityRoleList = getWrapper().getEntitiesByDef("ROLE"); | |
404 for(Entity e : this.entityRoleList){ | |
405 this.roleList.add(new SelectItem(e.getId(), e.getOwnValue())); | |
406 } | |
407 this.roleListDirty = false; | |
408 } | |
409 | |
410 return this.roleList; | |
411 } | |
412 | |
413 public String getEditImage(){ | |
414 return "/resources/images/system/edit_20.png"; | |
415 } | |
416 | |
417 public String getImgEdit16(){ | |
418 return "/resources/images/system/edit_16.png"; | |
419 } | |
420 | |
421 public String getImgEdit32(){ | |
422 return "/resources/images/system/edit_32.png"; | |
423 } | |
424 | |
425 public String getImgRemove16(){ | |
426 return "/resources/images/system/remove_16.png"; | |
427 } | |
428 | |
429 public String getImgRemove32(){ | |
430 return "/resources/images/system/remove_32.png"; | |
431 } | |
432 | |
433 public String getImgVersions16(){ | |
434 return "/resources/images/system/versions_16.png"; | |
435 } | |
436 | |
437 public String getImgVersions32(){ | |
438 return "/resources/images/system/versions_32.png"; | |
439 } | |
440 | |
441 public String getImgSave16(){ | |
442 return "/resources/images/system/save_16.png"; | |
443 } | |
444 | |
445 public String getImgSave32(){ | |
446 return "/resources/images/system/save_32.png"; | |
447 } | |
448 | |
449 public String getImgClean16(){ | |
450 return "/resources/images/system/clean_16.png"; | |
451 } | |
452 | |
453 public String getImgClean32(){ | |
454 return "/resources/images/system/clean_32.png"; | |
455 } | |
456 | |
457 public String getImgNew16(){ | |
458 return "/resources/images/system/new_16.png"; | |
459 } | |
460 | |
461 public String getImgNew32(){ | |
462 return "/resources/images/system/new_32.png"; | |
463 } | |
464 | |
465 public String getImgSeach16(){ | |
466 return "/resources/images/system/search_16.png"; | |
467 } | |
468 | |
469 public String getImgSearch32(){ | |
470 return "/resources/images/system/search_32.png"; | |
471 } | |
472 | |
473 public String getDisplayImage(){ | |
474 return "/resources/images/display_32.png"; | |
475 } | |
476 | |
477 public String getWorldImage(){ | |
478 return "/resources/images/icy_earth_32.png"; | |
479 } | |
480 | |
481 public String getBookImage(){ | |
482 return "/resources/images/book_32.png"; | |
483 } | |
484 | |
485 public String getSearchImage(){ | |
486 return "/resources/images/search_32.png"; | |
487 } | |
488 | |
489 public String getImgNetwork32(){ | |
490 return "/resources/images/network_32.png"; | |
491 } | |
492 | |
493 public String getImgPerson32(){ | |
494 return "/resources/images/person_32.png"; | |
495 } | |
496 | |
497 | |
498 public String getImgDown32(){ | |
499 return "/resources/images/down_32.png"; | |
500 } | |
501 | |
502 public String getImgUp32(){ | |
503 return "/resources/images/up_32.png"; | |
504 } | |
505 | |
506 ///**** | |
507 //private List<Entity> texts; | |
508 private List<SelectItem> textsSelectItems; | |
509 private boolean dirty = false; | |
510 | |
511 private void updateListAllTexts(){ | |
512 textsSelectItems = new ArrayList<SelectItem>(); | |
513 for (Entity text : getWrapper().getEntitiesByDef("TEXT")){ | |
514 textsSelectItems.add(new SelectItem(text.getId(), text.getOwnValue() + " [" +text.getId()+ "]")); | |
515 } | |
516 } | |
517 | |
518 public List<SelectItem> getAllTexts() { | |
519 if(this.dirty || textsSelectItems == null){ | |
520 this.updateListAllTexts(); | |
521 this.dirty = false; | |
522 } | |
523 return textsSelectItems; | |
524 } | |
525 | |
526 public void setAllTextsAsDirty(){ | |
527 this.dirty = true; | |
528 } | |
529 | |
530 public String getJSConfirmationSave(){ | |
531 return "if(!confirm('Do you really want to save the changes?')){ return false; };"; | |
532 } | |
533 | |
534 public String getJSConfirmationLogout(){ | |
535 return "if(!confirm('Do you really want to end your session?')){ return false; };"; | |
536 } | |
537 | |
538 public String getJSConfirmationDelete(){ | |
539 return "if(!confirm('Do you really want to delete this?')){ return false; };"; | |
540 } | |
541 | |
542 public String getJSConfirmationSaveAsNew(){ | |
543 return "if(!confirm('Do you really want to save the entity as new?')){ return false;};"; | |
544 } | |
545 | |
546 public String getJSConfirmationMerge(){ | |
547 return "if(!confirm('Do you really want to merge these entities?')){ return false;};"; | |
548 } | |
549 | |
550 public String getJSConfirmationCleanForm(){ | |
551 return "if(!confirm('Do you really want to clear the form?')){ return false;};"; | |
552 } | |
553 | |
554 public String getContextRoot(){ | |
555 | |
556 HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); | |
557 | |
558 | |
559 | |
560 String port = (StringUtils.equals(request.getLocalPort() + "", "80")) ? "" : (":" + request.getLocalPort()); | |
561 String path = request.getScheme() + "://" + request.getLocalName() + port + request.getContextPath(); | |
562 | |
563 return path; | |
564 } | |
565 | |
566 public BiographyBean getBiographyBean(){ | |
567 if(biographyBean == null) | |
568 this.biographyBean = new BiographyBean(); | |
569 return this.biographyBean; | |
570 } | |
571 | |
572 public PublicCodexList getPublicCodexList(){ | |
573 if(publicCodexList == null){ | |
574 publicCodexList = new PublicCodexList(); | |
575 } | |
576 return publicCodexList; | |
577 } | |
94
d2cee1040062
new servlet lifecycle listener to shut down Spring ApplicationBean.
casties
parents:
60
diff
changeset
|
578 |
d2cee1040062
new servlet lifecycle listener to shut down Spring ApplicationBean.
casties
parents:
60
diff
changeset
|
579 public ServiceRegistry getServiceRegistry() { |
d2cee1040062
new servlet lifecycle listener to shut down Spring ApplicationBean.
casties
parents:
60
diff
changeset
|
580 return this.serviceRegistry; |
d2cee1040062
new servlet lifecycle listener to shut down Spring ApplicationBean.
casties
parents:
60
diff
changeset
|
581 } |
1 | 582 } |