Author: jeff.yuchang
Date: 2011-02-04 22:18:19 -0500 (Fri, 04 Feb 2011)
New Revision: 637
Added:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/DummySession.java
Removed:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/DummySession.java
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStore.java
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/osgi/Activator.java
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/resources/META-INF/persistence.xml
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStoreTest.java
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/resources/META-INF/persistence.xml
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/SessionStore.java
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/DefaultMonitor.java
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/InMemorySessionStore.java
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/DefaultMonitorTest.java
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/InMemorySessionStoreTest.java
Log:
*SAVARA-166, update the SessionStore API, remove the checked exception etc.
* renaming the savara-session to savara-monitor-session.
* added capability of getting transaction manager from JNDI name that was specified in
configuration.
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/SessionStore.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/SessionStore.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/SessionStore.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -17,6 +17,8 @@
*/
package org.savara.monitor;
+import java.io.Serializable;
+
import org.savara.common.config.Configuration;
import org.savara.protocol.ProtocolId;
@@ -35,7 +37,7 @@
* @param config The configuration
* @throws IOException Failed to initialize session store
*/
- public void initialize(Configuration config) throws java.io.IOException;
+ public void initialize(Configuration config);
/**
* This method returns a new session associated with
@@ -43,12 +45,10 @@
*
* @param pid The protocol id
* @param cid The conversation instance id
+ * @param session, The session object
* @return The session
- * @throws IllegalArgumentException Protocol or conversation instance id is invalid
- * @throws IOException Failed to create new session
*/
- public java.io.Serializable create(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException;
+ public java.io.Serializable create(ProtocolId pid, ConversationInstanceId cid,
Serializable session);
/**
* This method returns an existing session associated with
@@ -57,11 +57,8 @@
* @param pid The protocol id
* @param cid The conversation instance id
* @return The session
- * @throws IllegalArgumentException Protocol or conversation instance id is invalid
- * @throws IOException Failed to retrieve session
*/
- public java.io.Serializable find(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException;
+ public java.io.Serializable find(ProtocolId pid, ConversationInstanceId cid);
/**
* This method removes an existing session associated
@@ -69,11 +66,8 @@
*
* @param pid The protocol id
* @param cid The conversation instance id
- * @throws IllegalArgumentException Conversation instance id is invalid or unknown
- * @throws java.io.IOException Failed to remove existing session
*/
- public void remove(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException;
+ public void remove(ProtocolId pid, ConversationInstanceId cid);
/**
* This method updates an existing session associated
@@ -82,18 +76,13 @@
* @param pid The protocol id
* @param cid The conversation instance id
* @param session The session
- * @throws IllegalArgumentException Conversation instance id is invalid or unknown
- * @throws java.io.IOException Failed to update existing session
*/
public void update(ProtocolId pid, ConversationInstanceId cid,
- java.io.Serializable session) throws IllegalArgumentException,
- java.io.IOException;
+ java.io.Serializable session);
/**
* This method closes the session store.
- *
- * @throws java.io.IOException Failed to close the session store
*/
- public void close() throws java.io.IOException;
+ public void close();
}
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/DefaultMonitor.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/DefaultMonitor.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/DefaultMonitor.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -32,6 +32,7 @@
import org.scribble.protocol.export.monitor.MonitorProtocolExporter;
import org.scribble.protocol.model.ProtocolModel;
import org.scribble.protocol.monitor.DefaultProtocolMonitor;
+import org.scribble.protocol.monitor.DefaultSession;
import org.scribble.protocol.monitor.MonitorContext;
import org.scribble.protocol.monitor.ProtocolMonitor;
import org.scribble.protocol.monitor.Result;
@@ -170,7 +171,8 @@
boolean f_created=false;
if (session == null) {
- session = m_sessionStore.create(pid, cid);
+ session = new DefaultSession();
+ m_sessionStore.create(pid, cid, session);
// Try to create new session
if (session instanceof Session) {
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/InMemorySessionStore.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/InMemorySessionStore.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor/src/main/java/org/savara/monitor/impl/InMemorySessionStore.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -17,11 +17,12 @@
*/
package org.savara.monitor.impl;
+import java.io.Serializable;
+
import org.savara.common.config.Configuration;
import org.savara.monitor.ConversationInstanceId;
import org.savara.monitor.SessionStore;
import org.savara.protocol.ProtocolId;
-import org.scribble.protocol.monitor.DefaultSession;
public class InMemorySessionStore implements SessionStore {
@@ -35,7 +36,7 @@
* @param config The configuration
* @throws IOException Failed to initialize session store
*/
- public void initialize(Configuration config) throws java.io.IOException {
+ public void initialize(Configuration config){
}
/**
@@ -70,19 +71,16 @@
* @throws IllegalArgumentException Protocol or conversation id is invalid
* @throws IOException Failed to create new session
*/
- public java.io.Serializable create(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException {
+ public java.io.Serializable create(ProtocolId pid, ConversationInstanceId cid,
Serializable session) {
if (pid == null) {
throw new IllegalArgumentException("Protocol id not specified");
} else if (cid == null) {
throw new IllegalArgumentException("Conversation instance id not
specified");
}
- java.io.Serializable ret=new DefaultSession();
+ addSession(pid, cid, session);
- addSession(pid, cid, ret);
-
- return(ret);
+ return(session);
}
/**
@@ -95,8 +93,7 @@
* @throws IllegalArgumentException Protocol or conversation id is invalid
* @throws IOException Failed to retrieve session
*/
- public java.io.Serializable find(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException {
+ public java.io.Serializable find(ProtocolId pid, ConversationInstanceId cid) {
java.io.Serializable ret=null;
if (pid == null) {
@@ -124,8 +121,7 @@
* @throws IllegalArgumentException Conversation instance id is invalid or unknown
* @throws java.io.IOException Failed to remove existing session
*/
- public void remove(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException {
+ public void remove(ProtocolId pid, ConversationInstanceId cid) {
if (pid == null) {
throw new IllegalArgumentException("Protocol id not specified");
} else if (cid == null) {
@@ -154,12 +150,8 @@
* @param pid The protocol id
* @param cid The conversation instance id
* @param session The session
- * @throws IllegalArgumentException Conversation instance id is invalid or unknown
- * @throws java.io.IOException Failed to update existing session
*/
- public void update(ProtocolId pid, ConversationInstanceId cid,
- java.io.Serializable session) throws IllegalArgumentException,
- java.io.IOException {
+ public void update(ProtocolId pid, ConversationInstanceId cid, java.io.Serializable
session) {
if (pid == null) {
throw new IllegalArgumentException("Protocol id not specified");
} else if (cid == null) {
@@ -181,7 +173,7 @@
*
* @throws java.io.IOException Failed to close the session store
*/
- public void close() throws java.io.IOException {
+ public void close(){
}
}
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/DefaultMonitorTest.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/DefaultMonitorTest.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/DefaultMonitorTest.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -130,7 +130,7 @@
DefaultSession s1=new DefaultSession();
try {
- store.create(pid, cid);
+ store.create(pid, cid, s1);
store.update(pid, cid, s1);
} catch(Exception e) {
fail("Failed: "+e);
@@ -194,8 +194,7 @@
return(s1);
}
- public void remove(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, IOException {
+ public void remove(ProtocolId pid, ConversationInstanceId cid) {
f_removed = true;
}
};
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/InMemorySessionStoreTest.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/InMemorySessionStoreTest.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor/src/test/java/org/savara/monitor/impl/InMemorySessionStoreTest.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -22,6 +22,7 @@
import org.junit.Test;
import org.savara.monitor.ConversationInstanceId;
import org.savara.protocol.ProtocolId;
+import org.scribble.protocol.monitor.DefaultSession;
public class InMemorySessionStoreTest {
@@ -30,7 +31,7 @@
InMemorySessionStore store=new InMemorySessionStore();
try {
- store.create(new ProtocolId("name","role"), null);
+ store.create(new ProtocolId("name","role"), null, null);
fail("Should have thrown IllegalArgumentException");
} catch(IllegalArgumentException iae) {
@@ -45,7 +46,7 @@
InMemorySessionStore store=new InMemorySessionStore();
try {
- store.create(null, new ConversationInstanceId("id"));
+ store.create(null, new ConversationInstanceId("id"), null);
fail("Should have thrown IllegalArgumentException");
} catch(IllegalArgumentException iae) {
@@ -58,18 +59,18 @@
@Test
public void testCreateSessionDuplicateInvalidId() {
InMemorySessionStore store=new InMemorySessionStore();
-
+ DefaultSession session = new DefaultSession();
try {
ProtocolId pid=new ProtocolId("p","r");
ConversationInstanceId id=new ConversationInstanceId("1");
try {
- store.create(pid, id);
+ store.create(pid, id, session);
} catch(Exception inner) {
fail("Should not have failed");
}
- store.create(pid, id);
+ store.create(pid, id, session);
fail("Should have thrown IllegalArgumentException");
} catch(IllegalArgumentException iae) {
@@ -82,12 +83,12 @@
@Test
public void testCreateSession() {
InMemorySessionStore store=new InMemorySessionStore();
-
+ DefaultSession s = new DefaultSession();
try {
ProtocolId pid=new ProtocolId("p","r");
ConversationInstanceId id=new ConversationInstanceId("1");
- if (store.create(pid, id) == null) {
+ if (store.create(pid, id, s) == null) {
fail("No context created");
}
@@ -99,12 +100,12 @@
@Test
public void testRemoveSession() {
InMemorySessionStore store=new InMemorySessionStore();
-
+ DefaultSession s = new DefaultSession();
try {
ProtocolId pid=new ProtocolId("p","r");
ConversationInstanceId id=new ConversationInstanceId("1");
- if (store.create(pid, id) == null) {
+ if (store.create(pid, id, s) == null) {
fail("No context created");
}
@@ -127,6 +128,7 @@
@Test
public void testFindSession() {
InMemorySessionStore store=new InMemorySessionStore();
+ DefaultSession s = new DefaultSession();
try {
ProtocolId pid=new ProtocolId("p","r");
@@ -134,7 +136,7 @@
java.io.Serializable c1=null;
- if ((c1=store.create(pid, id1)) == null) {
+ if ((c1=store.create(pid, id1, s)) == null) {
fail("No context created for id 1");
}
@@ -142,7 +144,7 @@
java.io.Serializable c2=null;
- if ((c2=store.create(pid, id2)) == null) {
+ if ((c2=store.create(pid, id2, s)) == null) {
fail("No context created for id 2");
}
@@ -163,6 +165,7 @@
@Test
public void testUpdateSession() {
InMemorySessionStore store=new InMemorySessionStore();
+ DefaultSession s = new DefaultSession();
try {
ProtocolId pid=new ProtocolId("p","r");
@@ -170,7 +173,7 @@
java.io.Serializable c1=null;
- if ((c1=store.create(pid, id1)) == null) {
+ if ((c1=store.create(pid, id1, s)) == null) {
fail("No session created for id 1");
}
@@ -178,7 +181,7 @@
java.io.Serializable c2=null;
- if ((c2=store.create(pid, id2)) == null) {
+ if ((c2=store.create(pid, id2, s)) == null) {
fail("No session created for id 2");
}
Deleted:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/DummySession.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/DummySession.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/DummySession.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -1,21 +0,0 @@
-package org.savara.monitor.sstore.rdbms;
-
-import java.io.Serializable;
-
-public class DummySession implements Serializable{
-
- private static final long serialVersionUID = -6624913741004684358L;
-
- private String description;
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
-
-
-}
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStore.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStore.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStore.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -24,6 +24,8 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
@@ -43,8 +45,11 @@
*/
public class RDBMSSessionStore implements SessionStore {
+ public static final String TRANSACTION_MANAGER_JNDI_NAME =
"transaction.manager.jndi.name";
+
private static final Logger logger =
Logger.getLogger(RDBMSSessionStore.class.toString());
+
private static EntityManagerFactory emf;
private EntityManager entityManager;
@@ -57,47 +62,65 @@
this.txManager = txManager;
}
+ public RDBMSSessionStore() {
+
+ }
+
/*
* (non-Javadoc)
* @see
org.savara.monitor.SessionStore#initialize(org.savara.common.config.Configuration)
*/
- public void initialize(Configuration config) throws java.io.IOException {
+ public void initialize(Configuration config){
if (emf == null) {
Map<String, String> props = new HashMap<String, String>();
//TODO: convert some of configuration properties into props map.
- emf = Persistence.createEntityManagerFactory("savara-session", props);
+ emf = Persistence.createEntityManagerFactory("savara-monitor-session",
props);
}
if (entityManager == null || !entityManager.isOpen()) {
entityManager = emf.createEntityManager();
}
+ if (config != null) {
+ String txManagerJndiName = config.getProperty(TRANSACTION_MANAGER_JNDI_NAME);
+ if (txManagerJndiName != null) {
+ getTransactionManagerFromJNDI(txManagerJndiName);
+ }
+ }
if (txManager != null) {
tx = new JPAJTAContext(txManager, entityManager);
} else {
tx = new JPANonTxContext(entityManager);
}
}
+
+ private void getTransactionManagerFromJNDI(String txManagerJndiName) {
+ try {
+ txManager = (TransactionManager) InitialContext.doLookup(txManagerJndiName);
+ } catch (NamingException e) {
+ logger.log(Level.SEVERE, "Error in getting Transaction Manager from JNDI: "
+ txManagerJndiName);
+ throw new RuntimeException(e);
+ }
+ }
/*
* (non-Javadoc)
* @see org.savara.monitor.SessionStore#create(org.savara.protocol.ProtocolId,
org.savara.monitor.ConversationInstanceId)
*/
- public java.io.Serializable create(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException {
+ public java.io.Serializable create(ProtocolId pid, ConversationInstanceId cid,
Serializable session) {
RDBMSSession psession = new RDBMSSession();
psession.setProtocolName(pid.getName());
psession.setProtocolRole(pid.getRole());
psession.setConversationInstanceId(cid.getId());
- psession.setSession(new DummySession());
+ psession.setSession(session);
- try {
- Serializable s = this.find(pid, cid);
- if (s != null) {
- throw new IllegalArgumentException("The session with [" + pid + cid
+"] already existed.");
- }
-
+ Serializable s = this.find(pid, cid);
+ if (s != null) {
+ throw new IllegalArgumentException("The session with [" + pid + cid +"]
already existed.");
+ }
+
+ try {
tx.begin();
entityManager.persist(psession);
tx.commit();
@@ -114,8 +137,7 @@
* (non-Javadoc)
* @see org.savara.monitor.SessionStore#find(org.savara.protocol.ProtocolId,
org.savara.monitor.ConversationInstanceId)
*/
- public java.io.Serializable find(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException {
+ public java.io.Serializable find(ProtocolId pid, ConversationInstanceId cid) {
try {
tx.begin();
List<?> sessions =
entityManager.createNamedQuery(RDBMSSession.GET_SESSION_BY_KEY)
@@ -143,8 +165,7 @@
* (non-Javadoc)
* @see org.savara.monitor.SessionStore#remove(org.savara.protocol.ProtocolId,
org.savara.monitor.ConversationInstanceId)
*/
- public void remove(ProtocolId pid, ConversationInstanceId cid)
- throws IllegalArgumentException, java.io.IOException {
+ public void remove(ProtocolId pid, ConversationInstanceId cid) {
try {
tx.begin();
entityManager.createNamedQuery(RDBMSSession.REMOVE_SESSION_BY_KEY)
@@ -165,8 +186,7 @@
* @see org.savara.monitor.SessionStore#update(org.savara.protocol.ProtocolId,
org.savara.monitor.ConversationInstanceId, java.io.Serializable)
*/
public void update(ProtocolId pid, ConversationInstanceId cid,
- java.io.Serializable session) throws IllegalArgumentException,
- java.io.IOException {
+ java.io.Serializable session) {
try {
tx.begin();
RDBMSSession s = (RDBMSSession)
entityManager.createNamedQuery(RDBMSSession.GET_SESSION_BY_KEY)
@@ -188,7 +208,7 @@
* (non-Javadoc)
* @see org.savara.monitor.SessionStore#close()
*/
- public void close() throws java.io.IOException {
+ public void close() {
if (entityManager != null && entityManager.isOpen()) {
entityManager.close();
}
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/osgi/Activator.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/osgi/Activator.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/java/org/savara/monitor/sstore/rdbms/osgi/Activator.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -45,7 +45,7 @@
// Register the SessionStore implementation
Properties props = new Properties();
- SessionStore ss=new RDBMSSessionStore(null);
+ SessionStore ss=new RDBMSSessionStore();
m_serviceRegistration = context.registerService(SessionStore.class.getName(),
ss, props);
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/resources/META-INF/persistence.xml
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/resources/META-INF/persistence.xml 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/main/resources/META-INF/persistence.xml 2011-02-05
03:18:19 UTC (rev 637)
@@ -4,7 +4,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
- <persistence-unit name="savara-session"
transaction-type="JTA">
+ <persistence-unit name="savara-monitor-session"
transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>org.savara.monitor.sstore.rdbms.RDBMSSession</class>
</persistence-unit>
Added:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/DummySession.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/DummySession.java
(rev 0)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/DummySession.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -0,0 +1,21 @@
+package org.savara.monitor.sstore.rdbms;
+
+import java.io.Serializable;
+
+public class DummySession implements Serializable{
+
+ private static final long serialVersionUID = -6624913741004684358L;
+
+ private String description;
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+
+
+}
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStoreTest.java
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStoreTest.java 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/java/org/savara/monitor/sstore/rdbms/RDBMSSessionStoreTest.java 2011-02-05
03:18:19 UTC (rev 637)
@@ -29,27 +29,31 @@
import org.savara.protocol.ProtocolId;
/**
+ *
+ *
* @author Jeff Yu
*
*/
public class RDBMSSessionStoreTest extends Assert{
private static RDBMSSessionStore store;
-
+
private static ProtocolId pid;
- private static ConversationInstanceId cid;
+ private static DummySession session;
@BeforeClass
public static void setUp() throws Exception{
Class.forName("org.h2.Driver");
DriverManager.getConnection("jdbc:h2:target/db/h2", "sa",
"");
+
+ store = new RDBMSSessionStore();
+ store.initialize(null);
- pid = new ProtocolId("Jeff", "Developer");
- cid = new ConversationInstanceId();
+ pid = new ProtocolId("name", "role");
- store = new RDBMSSessionStore(null);
- store.initialize(null);
+ session = new DummySession();
+ session.setDescription("DummySession");
}
@@ -59,17 +63,50 @@
}
@Test
- public void testCreateNewSession() throws Exception {
- Serializable o = store.create(pid, cid);
+ public void testCreateNewSession() throws Exception {
+ ConversationInstanceId cid = new ConversationInstanceId("1");
+ Serializable o = store.create(pid, cid, session);
+ assertEquals("DummySession", ((DummySession)o).getDescription());
}
@Test
+ public void testCreateDuplicatedSession() throws Exception {
+ ConversationInstanceId cid = new ConversationInstanceId("11");
+ store.create(pid, cid, session);
+ DummySession session2 = new DummySession();
+
+ try {
+ store.create(pid, cid, session2);
+ fail ("here should not be executed");
+ } catch (IllegalArgumentException e) {
+ // expected exception
+ }
+ }
+
+ @Test
public void testFindSession() throws Exception {
+ ConversationInstanceId cid = new ConversationInstanceId("2");
+ store.create(pid, cid, session);
Serializable o = store.find(pid, cid);
+ assertEquals("DummySession", ((DummySession)o).getDescription() );
}
@Test
+ public void testUpdateSession() throws Exception {
+ ConversationInstanceId cid = new ConversationInstanceId("3");
+ DummySession ds = new DummySession();
+ ds.setDescription("first one");
+ store.create(pid, cid, ds);
+ ds.setDescription("Updated Session");
+ store.update(pid, cid, ds);
+ Serializable o = store.find(pid, cid);
+ assertEquals("Updated Session", ((DummySession)o).getDescription() );
+ }
+
+ @Test
public void testDeleteSession() throws Exception {
+ ConversationInstanceId cid = new ConversationInstanceId("4");
+ store.create(pid, cid, session);
store.remove(pid, cid);
Serializable o = store.find(pid, cid);
assertNull(o);
Modified:
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/resources/META-INF/persistence.xml
===================================================================
---
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/resources/META-INF/persistence.xml 2011-02-04
11:35:10 UTC (rev 636)
+++
branches/experimental/2.0.x/bundles/org.savara.monitor.sstore.rdbms/src/test/resources/META-INF/persistence.xml 2011-02-05
03:18:19 UTC (rev 637)
@@ -4,7 +4,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
- <persistence-unit name="savara-session"
transaction-type="RESOURCE_LOCAL">
+ <persistence-unit name="savara-monitor-session"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>org.savara.monitor.sstore.rdbms.RDBMSSession</class>
<properties>