2 * Copyright (C) 2014 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.api
.application
;
12 import org
.apache
.log4j
.Logger
;
13 import org
.springframework
.beans
.BeansException
;
14 import org
.springframework
.context
.ApplicationContext
;
15 import org
.springframework
.context
.ApplicationContextAware
;
16 import org
.springframework
.security
.authentication
.ProviderManager
;
17 import org
.springframework
.security
.authentication
.UsernamePasswordAuthenticationToken
;
18 import org
.springframework
.security
.core
.Authentication
;
19 import org
.springframework
.security
.core
.context
.SecurityContext
;
20 import org
.springframework
.security
.core
.context
.SecurityContextHolder
;
21 import org
.springframework
.stereotype
.Component
;
22 import org
.springframework
.transaction
.PlatformTransactionManager
;
23 import org
.springframework
.transaction
.TransactionStatus
;
25 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
26 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolderMock
;
27 import eu
.etaxonomy
.cdm
.api
.service
.IAgentService
;
28 import eu
.etaxonomy
.cdm
.api
.service
.IClassificationService
;
29 import eu
.etaxonomy
.cdm
.api
.service
.ICollectionService
;
30 import eu
.etaxonomy
.cdm
.api
.service
.ICommonService
;
31 import eu
.etaxonomy
.cdm
.api
.service
.IDatabaseService
;
32 import eu
.etaxonomy
.cdm
.api
.service
.IDescriptionService
;
33 import eu
.etaxonomy
.cdm
.api
.service
.IEntityConstraintViolationService
;
34 import eu
.etaxonomy
.cdm
.api
.service
.IEntityValidationService
;
35 import eu
.etaxonomy
.cdm
.api
.service
.IFeatureNodeService
;
36 import eu
.etaxonomy
.cdm
.api
.service
.IFeatureTreeService
;
37 import eu
.etaxonomy
.cdm
.api
.service
.IGrantedAuthorityService
;
38 import eu
.etaxonomy
.cdm
.api
.service
.IGroupService
;
39 import eu
.etaxonomy
.cdm
.api
.service
.IIdentificationKeyService
;
40 import eu
.etaxonomy
.cdm
.api
.service
.ILocationService
;
41 import eu
.etaxonomy
.cdm
.api
.service
.IMediaService
;
42 import eu
.etaxonomy
.cdm
.api
.service
.INameService
;
43 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
44 import eu
.etaxonomy
.cdm
.api
.service
.IPolytomousKeyNodeService
;
45 import eu
.etaxonomy
.cdm
.api
.service
.IPolytomousKeyService
;
46 import eu
.etaxonomy
.cdm
.api
.service
.IReferenceService
;
47 import eu
.etaxonomy
.cdm
.api
.service
.IService
;
48 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonNodeService
;
49 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonService
;
50 import eu
.etaxonomy
.cdm
.api
.service
.ITermService
;
51 import eu
.etaxonomy
.cdm
.api
.service
.IUserService
;
52 import eu
.etaxonomy
.cdm
.api
.service
.IVocabularyService
;
53 import eu
.etaxonomy
.cdm
.api
.service
.IWorkingSetService
;
54 import eu
.etaxonomy
.cdm
.api
.service
.molecular
.IAmplificationService
;
55 import eu
.etaxonomy
.cdm
.api
.service
.molecular
.IPrimerService
;
56 import eu
.etaxonomy
.cdm
.api
.service
.molecular
.ISequenceService
;
57 import eu
.etaxonomy
.cdm
.ext
.geo
.IEditGeoService
;
58 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
59 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.permission
.ICdmPermissionEvaluator
;
60 import eu
.etaxonomy
.taxeditor
.service
.ICachedCommonService
;
61 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySessionManager
;
65 * CDM Application Configuration class which manages the configuration for remoting
70 public class CdmApplicationRemoteConfiguration
implements ICdmApplicationConfiguration
, ApplicationContextAware
{
72 @SuppressWarnings("unused")
73 private static final Logger logger
= Logger
.getLogger(CdmApplicationRemoteConfiguration
.class);
75 protected ApplicationContext applicationContext
;
78 public CdmApplicationRemoteConfiguration() {}
80 // ****************************** APPLICATION CONTEXT *************************************************/
83 public void setApplicationContext(ApplicationContext applicationContext
) throws BeansException
{
84 this.applicationContext
= applicationContext
;
88 * @see eu.etaxonomy.cdm.api.application.CdmApplicationDefaultConfiguration#getTransactionManager()
91 public PlatformTransactionManager
getTransactionManager() throws UnsupportedOperationException
{
92 throw new UnsupportedOperationException("getTransactionManager is not implemented for CdmApplicationRemoteConfiguration");
100 public IEditGeoService
getEditGeoService() {
101 return (IEditGeoService
)getBean("editGeoService");
107 public ICachedCommonService
getCachedCommonService(){
108 return (ICachedCommonService
) getBean("cachedCommonService");
112 public ICdmEntitySessionManager
getCdmEntitySessionManager() {
113 return (ICdmEntitySessionManager
) getBean("cdmEntitySessionManager");
121 // ****************************** GETTER *************************************************/
124 public final Object
getBean(String name
){
125 return this.applicationContext
.getBean(name
);
129 public IAgentService
getAgentService(){
130 return (IAgentService
) getBean("agentService");
134 public IDatabaseService
getDatabaseService(){
135 return (IDatabaseService
) getBean("databaseService");
139 public INameService
getNameService(){
140 return (INameService
) getBean("nameService");
144 public IReferenceService
getReferenceService(){
145 return (IReferenceService
) getBean("referenceService");
149 public ITaxonService
getTaxonService(){
150 return (ITaxonService
) getBean("taxonService");
154 public IClassificationService
getClassificationService(){
155 return (IClassificationService
) getBean("classificationService");
159 public ITaxonNodeService
getTaxonNodeService(){
160 return (ITaxonNodeService
) getBean("taxonNodeService");
164 public IDescriptionService
getDescriptionService(){
165 return (IDescriptionService
) getBean("descriptionService");
169 public IOccurrenceService
getOccurrenceService(){
170 return (IOccurrenceService
) getBean("occurrenceService");
174 public IPrimerService
getPrimerService(){
175 return (IPrimerService
) getBean("primerService");
179 public IAmplificationService
getAmplificationService(){
180 return (IAmplificationService
) getBean("amplificationService");
184 public ISequenceService
getSequenceService(){
185 return (ISequenceService
) getBean("sequenceService");
189 public IMediaService
getMediaService(){
190 return (IMediaService
) getBean("mediaService");
194 public ITermService
getTermService(){
195 return (ITermService
) getBean("termService");
199 public ICommonService
getCommonService(){
200 return (ICommonService
) getBean("commonService");
204 public ILocationService
getLocationService(){
205 return (ILocationService
) getBean("locationService");
209 public IUserService
getUserService(){
210 return (IUserService
) getBean("userService");
214 public IGrantedAuthorityService
getGrantedAuthorityService(){
215 return (IGrantedAuthorityService
) getBean("grantedAuthorityService");
219 public IService
<CdmBase
> getMainService(){
220 return (IService
<CdmBase
>) getBean("mainService");
225 public ProviderManager
getAuthenticationManager(){
226 return (ProviderManager
) getBean("authenticationManager");
231 public ConversationHolder
NewConversation() {
232 return new ConversationHolderMock();
236 public ICollectionService
getCollectionService(){
237 return (ICollectionService
) getBean("collectionService");
241 public IFeatureTreeService
getFeatureTreeService(){
242 return (IFeatureTreeService
) getBean("featureTreeService");
246 public IFeatureNodeService
getFeatureNodeService(){
247 return (IFeatureNodeService
) getBean("featureNodeService");
251 public IVocabularyService
getVocabularyService(){
252 return (IVocabularyService
) getBean("vocabularyService");
256 public IIdentificationKeyService
getIdentificationKeyService(){
257 return (IIdentificationKeyService
) getBean("identificationKeyService");
261 public IPolytomousKeyService
getPolytomousKeyService(){
262 return (IPolytomousKeyService
) getBean("polytomousKeyService");
267 public IPolytomousKeyNodeService
getPolytomousKeyNodeService(){
268 return (IPolytomousKeyNodeService
) getBean("polytomousKeyNodeService");
272 public IWorkingSetService
getWorkingSetService(){
273 return (IWorkingSetService
) getBean("workingSetService");
277 public IGroupService
getGroupService(){
278 return (IGroupService
) getBean("groupService");
283 public IEntityValidationService
getEntityValidationService(){
284 return (IEntityValidationService
) getBean("entityValidationService");
289 public IEntityConstraintViolationService
getEntityConstraintViolationService(){
290 return (IEntityConstraintViolationService
) getBean("entityConstraintViolationService");
294 public ICdmPermissionEvaluator
getPermissionEvaluator(){
295 return (ICdmPermissionEvaluator
) getBean("cdmPermissionEvaluator");
300 public TransactionStatus
startTransaction() throws UnsupportedOperationException
{
301 throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");
305 public TransactionStatus
startTransaction(Boolean readOnly
) throws UnsupportedOperationException
{
306 throw new UnsupportedOperationException("startTransaction is not implemented for CdmApplicationRemoteConfiguration");
311 public void commitTransaction(TransactionStatus txStatus
) throws UnsupportedOperationException
{
312 throw new UnsupportedOperationException("commitTransaction is not implemented for CdmApplicationRemoteConfiguration");
316 public void authenticate(String username
, String password
){
317 UsernamePasswordAuthenticationToken tokenForUser
= new UsernamePasswordAuthenticationToken(username
, password
);
318 Authentication authentication
= this.getAuthenticationManager().authenticate(tokenForUser
);
319 SecurityContext context
= SecurityContextHolder
.getContext();
320 context
.setAuthentication(authentication
);