001: /**
002: * LibreSource
003: * Copyright (C) 2004-2008 Artenum SARL / INRIA
004: * http://www.libresource.org - contact@artenum.com
005: *
006: * This file is part of the LibreSource software,
007: * which can be used and distributed under license conditions.
008: * The license conditions are provided in the LICENSE.TXT file
009: * at the root path of the packaging that enclose this file.
010: * More information can be found at
011: * - http://dev.libresource.org/home/license
012: *
013: * Initial authors :
014: *
015: * Guillaume Bort / INRIA
016: * Francois Charoy / Universite Nancy 2
017: * Julien Forest / Artenum
018: * Claude Godart / Universite Henry Poincare
019: * Florent Jouille / INRIA
020: * Sebastien Jourdain / INRIA / Artenum
021: * Yves Lerumeur / Artenum
022: * Pascal Molli / Universite Henry Poincare
023: * Gerald Oster / INRIA
024: * Mariarosa Penzi / Artenum
025: * Gerard Sookahet / Artenum
026: * Raphael Tani / INRIA
027: *
028: * Contributors :
029: *
030: * Stephane Bagnier / Artenum
031: * Amadou Dia / Artenum-IUP Blois
032: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
033: */package org.libresource.so6.server.ls.ejb;
034:
035: import org.libresource.so6.server.ls.ejb.model.WorkspaceValue;
036: import org.libresource.so6.server.ls.util.WorkspaceUtil;
037:
038: import java.util.Vector;
039:
040: import javax.ejb.CreateException;
041: import javax.ejb.EntityBean;
042: import javax.ejb.EntityContext;
043: import javax.ejb.RemoveException;
044:
045: /**
046: * Workspace
047: * @author <a href="mailto:jourdain@loria.fr">Sebastien Jourdain</a> - <a href="http://www.inria.fr">INRIA Lorraine</a>
048: *
049: * @ejb.bean
050: * name="Workspace"
051: * type="CMP"
052: * transaction-type="Container"
053: * reentrant="true"
054: * view-type="local"
055: * primkey-field="id"
056: * cmp-version="2.x"
057: * jndi-name="Workspace"
058: * local-jndi-name="Workspace_L"
059: *
060: * @jonas.bean
061: * ejb-name="Workspace"
062: * jndi-name="Workspace"
063: *
064: * @jonas.jdbc-mapping
065: * jndi-name="@DATASOURCE@"
066: * automatic-pk="false"
067: *
068: * @jboss.datasource name="java:/@DATASOURCE@" mapping="@DATASOURCE_MAPPING@"
069: *
070: * @jonas.shared false
071: * @jonas.passivation-timeout 600
072: * @jonas.min-pool-size 10000
073: *
074: * @ejb.finder
075: * signature= "java.lang.String findByWorkspaceId(java.lang.String wsId)"
076: * query ="SELECT OBJECT(ws) FROM Workspace ws WHERE ws.workspaceId = ?1 "
077: * transaction-type="Supports"
078: *
079: * @ejb.value-object match="normal" name="Workspace"
080: *
081: * @ejb.transaction type="Supports"
082: * @jonas.lock-policy policy="container-read-uncommitted"
083: */
084: public abstract class WorkspaceBean implements EntityBean {
085: protected EntityContext ctx;
086:
087: /**
088: * @ejb.create-method
089: */
090: public String ejbCreate(String workspaceId) throws CreateException {
091: setId(WorkspaceUtil.generateGUID(this ));
092: setWorkspaceId(workspaceId);
093:
094: return null;
095: }
096:
097: // persistent fields
098:
099: /**
100: * @ejb.persistent-field
101: * @ejb.interface-method
102: * @ejb.value-object match="normal"
103: * @ejb.transaction type="Supports"
104: */
105: public abstract String getId();
106:
107: /**
108: * @ejb.persistent-field
109: * @ejb.interface-method
110: * @ejb.transaction type="Mandatory"
111: */
112: public abstract void setId(String id);
113:
114: /**
115: * @ejb.persistent-field
116: * @ejb.interface-method
117: * @ejb.value-object match="normal"
118: * @ejb.transaction type="Supports"
119: */
120: public abstract String getWorkspaceId();
121:
122: /**
123: * @ejb.persistent-field
124: * @ejb.interface-method
125: * @ejb.transaction type="Mandatory"
126: */
127: public abstract void setWorkspaceId(String id);
128:
129: /**
130: * @ejb.persistent-field
131: * @ejb.interface-method
132: * @ejb.value-object match="normal"
133: * @ejb.transaction type="Supports"
134: */
135: public abstract Vector getGlobalConnectedQueue();
136:
137: /**
138: * @ejb.persistent-field
139: * @ejb.interface-method
140: * @ejb.transaction type="Mandatory"
141: */
142: public abstract void setGlobalConnectedQueue(Vector connectedQueues);
143:
144: // persistent relationships
145:
146: /**
147: * @ejb.interface-method
148: * @ejb.relation name="WorkspaceConnection"
149: * role-name="Workspace-of-Connections"
150: * @ejb.transaction type="Supports"
151: *
152: * @ejb.value-object aggregate="org.libresource.so6.server.ls.ejb.model.WsConnectionResourceValue"
153: * aggregate-name="WsConnection"
154: * members="org.libresource.so6.server.ls.interfaces.WsConnectionResourceLocal"
155: * members-name="WsConnectionResource"
156: * type="java.util.Collection" match="libresource"
157: * relation="external"
158: */
159: public abstract java.util.Collection getConnections();
160:
161: /**
162: * @ejb.interface-method
163: * @ejb.transaction type="Mandatory"
164: */
165: public abstract void setConnections(java.util.Collection connections);
166:
167: /**
168: * @ejb.interface-method
169: * @ejb.transaction type="Supports"
170: */
171: public abstract WorkspaceValue getWorkspaceValue();
172:
173: // standard call back methods
174: public void setEntityContext(EntityContext ec) {
175: ctx = ec;
176: }
177:
178: public void unsetEntityContext() {
179: ctx = null;
180: }
181:
182: public void ejbLoad() {
183: }
184:
185: public void ejbStore() {
186: }
187:
188: public void ejbActivate() {
189: }
190:
191: public void ejbPassivate() {
192: }
193:
194: public void ejbRemove() throws RemoveException {
195: }
196: }
|