Project

General

Profile

« Previous | Next » 

Revision e78140b5

Added by Cherian Mathew almost 9 years ago

refactoring due to change in cache package name

View differences:

eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteConfiguration.java
18 18
import org.springframework.transaction.PlatformTransactionManager;
19 19
import org.springframework.transaction.TransactionStatus;
20 20

  
21
import eu.etaxonomy.cdm.api.cache.ICachedCommonService;
22 21
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
23 22
import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;
24 23
import eu.etaxonomy.cdm.ext.geo.IEditGeoService;
24
import eu.etaxonomy.taxeditor.remoting.cache.ICachedCommonService;
25 25
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
26 26

  
27 27

  
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationRemoteController.java
27 27
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
28 28
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
29 29
import eu.etaxonomy.cdm.api.application.RemotingMonitoredGenericApplicationContext;
30
import eu.etaxonomy.cdm.api.cache.CdmModelCacher;
31 30
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
32 31
import eu.etaxonomy.cdm.common.monitor.NullProgressMonitor;
33 32
import eu.etaxonomy.cdm.common.monitor.SubProgressMonitor;
33
import eu.etaxonomy.taxeditor.remoting.cache.CdmModelCacher;
34 34
import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
35 35
import eu.etaxonomy.taxeditor.session.CdmEntitySessionManager;
36 36
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java
13 13
import java.util.Collection;
14 14
import java.util.List;
15 15

  
16
import org.springframework.beans.factory.annotation.Autowired;
17
import org.springframework.stereotype.Component;
18

  
19
import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher;
20
import eu.etaxonomy.cdm.api.service.ICommonService;
21
import eu.etaxonomy.cdm.api.service.IService;
22 16
import eu.etaxonomy.cdm.model.common.CdmBase;
23
import eu.etaxonomy.cdm.model.common.OriginalSourceBase;
17
import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
24 18

  
25 19

  
26 20
/**
......
31 25

  
32 26
public class CdmEntitySession<T extends CdmBase> implements ICdmEntitySession<T>  {
33 27

  
34
    
28

  
35 29
	private CdmEntitySessionManager cdmEntitySessionManager;
36
	
37
	private ISessionEventListener sessionOwner;
38
		
39
	private CdmTransientEntityCacher cdmTransientEntityCacher;	
40
	
41
	private List<T> rootEntities;
42
	
30

  
31
	private final ISessionEventListener sessionOwner;
32

  
33
	private final CdmTransientEntityCacher cdmTransientEntityCacher;
34

  
35
	private final List<T> rootEntities;
36

  
43 37
	CdmEntitySession(ISessionEventListener sessionOwner, CdmEntitySessionManager cdmEntitySessionManager) {
44 38
		this.sessionOwner = sessionOwner;
45 39
		this.cdmTransientEntityCacher = new CdmTransientEntityCacher(sessionOwner, cdmEntitySessionManager);
46 40
		this.rootEntities = new ArrayList<T>();
47
		
41

  
48 42
		cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
49 43
	}
50 44

  
51
	
45

  
52 46
	/* (non-Javadoc)
53 47
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(T)
54 48
	 */
55 49
	@Override
56
	public <T extends Object> T load(T obj) {		
57
		return (T) cdmTransientEntityCacher.load(obj,true);
50
	public <T extends Object> T load(T obj) {
51
		return cdmTransientEntityCacher.load(obj,true);
58 52
	}
59 53

  
60 54

  
......
62 56
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#load(T)
63 57
	 */
64 58
	@Override
65
	public <T extends CdmBase> T load(T cdmBase) {		
59
	public <T extends CdmBase> T load(T cdmBase) {
66 60
		return (T)cdmTransientEntityCacher.load(cdmBase,true);
67 61
	}
68 62

  
......
71 65
	 */
72 66
	@Override
73 67
	public <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList) {
74
		
68

  
75 69
		return cdmTransientEntityCacher.load(cdmBaseList,true);
76 70
	}
77
	
71

  
78 72
	/* (non-Javadoc)
79 73
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#setEntitiesAsLatest()
80 74
	 */
81 75
	@Override
82 76
	public void setEntitiesAsLatest() {
83
		List<CdmBase> entities = cdmTransientEntityCacher.getAllEntities();
84
		for(CdmBase entity : entities) {
85
			cdmEntitySessionManager.setEntityAsLatest(entity);
86
		}
77
	    //FIXME:Remoting need to think more about whether we really need this
78
//		List<CdmBase> entities = cdmTransientEntityCacher.getAllEntities();
79
//		for(CdmBase entity : entities) {
80
//			cdmEntitySessionManager.setEntityAsLatest(entity);
81
//		}
87 82
	}
88
	
89
	
83

  
84

  
90 85
	/* (non-Javadoc)
91 86
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySession#dispose()
92 87
	 */
......
95 90
		rootEntities.clear();
96 91
		cdmTransientEntityCacher.dispose();
97 92
	}
98
		
99
	
93

  
94

  
100 95

  
101 96
}
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java
16 16
import org.apache.log4j.Logger;
17 17
import org.springframework.stereotype.Component;
18 18

  
19
import eu.etaxonomy.cdm.api.cache.CdmTransientEntityCacher;
20 19
import eu.etaxonomy.cdm.model.common.CdmBase;
21 20

  
22 21
/**
......
24 23
 * @date 16 Oct 2014
25 24
 *
26 25
 */
27
@Component("cdmEntitySessionManager")
26
@Component
28 27
public class CdmEntitySessionManager implements ICdmEntitySessionManager {
29 28
	private static final Logger logger = Logger.getLogger(CdmEntitySessionManager.class);
30 29

  
31
    private Map<ISessionEventListener, CdmEntitySession> ownerSessionMap = 
30
    private final Map<ISessionEventListener, CdmEntitySession> ownerSessionMap =
32 31
    		new HashMap<ISessionEventListener, CdmEntitySession>();
33
    
34
//    private HashMap<String, HashSet<CdmClientBase<T>>> entitiesMap = 
35
//    		new HashMap<String, HashSet<CdmClientBase<T>>>();
36
    
37
    private CdmTransientEntityCacher latestEntityCacher =
38
    		new CdmTransientEntityCacher("latestEntityCacher", this);
39
    
32

  
33

  
40 34
    private ICdmEntitySession activeSession;
41 35

  
42
   
43
	
36

  
37
    public CdmEntitySessionManager() {
38

  
39
    }
40

  
44 41
	private ICdmEntitySession newSession(ISessionEventListener sessionOwner, boolean setAsActive) {
45 42
		CdmEntitySession session = ownerSessionMap.get(sessionOwner);
46
		if(session == null) {		
43
		if(session == null) {
47 44
			session = new CdmEntitySession(sessionOwner, this);
48 45
			addToOwnerSessionMap(sessionOwner, session);
49 46
		}
50
		
47

  
51 48
		if(setAsActive) {
52 49
			activeSession = session;
53
		}		
50
		}
54 51
		return session;
55 52
	}
56
	
53

  
57 54
	/* (non-Javadoc)
58 55
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#bind(eu.etaxonomy.taxeditor.session.ISessionEventListener)
59 56
	 */
......
69 66
		}
70 67
		activeSession = session;
71 68
	}
72
	
69

  
73 70
	/* (non-Javadoc)
74 71
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.taxeditor.session.ISessionEventListener, T)
75 72
	 */
76 73
	@Override
77 74
	public <T extends Object> T load(ISessionEventListener sessionOwner, T obj) {
78
		ICdmEntitySession session = newSession(sessionOwner,true);		
75
		ICdmEntitySession session = newSession(sessionOwner,true);
79 76
		return (T) session.load(obj);
80 77
	}
81
	
78

  
82 79
	/* (non-Javadoc)
83 80
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
84 81
	 */
......
99 96
		ICdmEntitySession session = newSession(sessionOwner,true);
100 97
		return (T)session.load(cdmBase);
101 98
	}
102
	
99

  
103 100
	/* (non-Javadoc)
104 101
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(T)
105 102
	 */
......
110 107
		}
111 108
		return (T)activeSession.load(cdmBase);
112 109
	}
113
	
110

  
114 111

  
115 112
	/* (non-Javadoc)
116 113
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(eu.etaxonomy.taxeditor.session.ISessionEventListener, java.util.Collection)
......
120 117
		ICdmEntitySession session = newSession(sessionOwner,true);
121 118
		return session.load(cdmBaseList);
122 119
	}
123
	
124
	
120

  
121

  
125 122
	/* (non-Javadoc)
126 123
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#load(java.util.Collection)
127 124
	 */
......
133 130
		return activeSession.load(cdmBaseList);
134 131
	}
135 132

  
136
	
133

  
137 134
	/* (non-Javadoc)
138 135
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ISessionEventListener)
139 136
	 */
......
144 141
			logger.info("No Session connected to owner, nothing to dispose");
145 142
			return;
146 143
		}
147
		session.dispose();	
144
		session.dispose();
148 145
	}
149
	
146

  
150 147
	 void addToOwnerSessionMap(ISessionEventListener owner, CdmEntitySession session) {
151 148
		ownerSessionMap.put(owner, session);
152 149
	}
153
	
154 150

  
155
	void setEntityAsLatest(CdmBase cdmBase) {		
156
		latestEntityCacher.put(cdmBase);
157
	}
158
	
159
	void promoteSessionEntitiesToLatest(ISessionEventListener owner) {
160
		ICdmEntitySession session = ownerSessionMap.get(owner);
161
		if(session != null) {
162
			session.setEntitiesAsLatest();
163
		}
164
	}
165 151

  
166 152
}
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/mock/MockCdmEntitySessionManager.java
2 2

  
3 3
import java.util.Collection;
4 4

  
5
import org.springframework.stereotype.Component;
6

  
7
import eu.etaxonomy.cdm.api.service.IService;
8 5
import eu.etaxonomy.cdm.model.common.CdmBase;
9
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
10 6
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
11 7
import eu.etaxonomy.taxeditor.session.ISessionEventListener;
12 8

  
......
15 11

  
16 12

  
17 13
	@Override
18
	public void bind(ISessionEventListener sessionOwner) {		
14
	public void bind(ISessionEventListener sessionOwner) {
19 15
	}
20 16

  
21 17
	@Override
......
52 48

  
53 49
	@Override
54 50
	public void dispose(ISessionEventListener owner) {
55
		
51

  
56 52
	}
57 53

  
58 54
}
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/collection/internal/AbstractPersistentCollection.java
60 60
import org.jboss.logging.Logger;
61 61

  
62 62
import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
63
import eu.etaxonomy.cdm.api.cache.CachedCommonServiceImpl.CollectionField;
64
import eu.etaxonomy.cdm.api.cache.ICachedCommonService;
65 63
import eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException;
64
import eu.etaxonomy.taxeditor.remoting.cache.ICachedCommonService;
65
import eu.etaxonomy.taxeditor.remoting.cache.CachedCommonServiceImpl.CollectionField;
66 66

  
67 67
/**
68 68
 * Base class implementing {@link org.hibernate.collection.spi.PersistentCollection}
eu.etaxonomy.taxeditor.cdmlib/src/main/java/org/hibernate/proxy/AbstractLazyInitializer.java
40 40
import org.jboss.logging.Logger;
41 41

  
42 42
import eu.etaxonomy.cdm.api.application.CdmApplicationRemoteConfiguration;
43
import eu.etaxonomy.cdm.api.cache.ICachedCommonService;
44 43
import eu.etaxonomy.cdm.model.common.CdmBase;
44
import eu.etaxonomy.taxeditor.remoting.cache.ICachedCommonService;
45 45

  
46 46
/**
47 47
 * Convenience base class for lazy initialization handlers.  Centralizes the basic plumbing of doing lazy

Also available in: Unified diff