summaryrefslogtreecommitdiff
path: root/orktrack
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2005-12-06 21:18:30 +0000
committerHenri Herscher <henri@oreka.org>2005-12-06 21:18:30 +0000
commita17b1dd992c8d9b77b35340258da2cc42aae618d (patch)
tree440df1ad2f6ce424d0f09e2e8f699eea386f2ef8 /orktrack
parent6d6960fa6f15a057cc6aff7b521236b32a39bd66 (diff)
Simplified handling of incoming tapes
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@97 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orktrack')
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/Port.java6
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/ProgramManager.java2
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/TapeManager.java78
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/test/PortTest.java4
4 files changed, 84 insertions, 6 deletions
diff --git a/orktrack/src/net/sf/oreka/orktrack/Port.java b/orktrack/src/net/sf/oreka/orktrack/Port.java
index 4ebd1e3..72a82fb 100644
--- a/orktrack/src/net/sf/oreka/orktrack/Port.java
+++ b/orktrack/src/net/sf/oreka/orktrack/Port.java
@@ -163,7 +163,7 @@ public class Port {
recSegment.setLocalParty(metadataMessage.getLocalParty());
recSegment.setLocalEntryPoint(metadataMessage.getLocalEntryPoint());
recSegment.setRecSessionOffset(0);
- recSegment.setPort(recPort);
+ recSegment.setRecPort(recPort);
if(metadataMessage.getLocalParty() != "") {
User user = UserManager.instance().getByLoginString(metadataMessage.getLocalParty(), hbnSession);
@@ -218,7 +218,7 @@ public class Port {
recTape.setExpiryTimestamp(new Date());
recTape.setFilename(stopMessage.getFilename());
recTape.setLocalParty(stopMessage.getLocalParty());
- recTape.setPort(recPort);
+ recTape.setRecPort(recPort);
recTape.setRemoteParty(stopMessage.getRemoteParty());
recTape.setTimestamp(timestamp);
recTape.setService(srv);
@@ -234,7 +234,7 @@ public class Port {
recSegment.setLocalParty(stopMessage.getLocalParty());
recSegment.setLocalEntryPoint(stopMessage.getLocalEntryPoint());
recSegment.setRecTape(recTape);
- recSegment.setPort(recPort);
+ recSegment.setRecPort(recPort);
if(stopMessage.getLocalParty() != "") {
User user = UserManager.instance().getByLoginString(stopMessage.getLocalParty(), hbnSession);
diff --git a/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java b/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java
index c21e688..8bcbd94 100644
--- a/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java
+++ b/orktrack/src/net/sf/oreka/orktrack/ProgramManager.java
@@ -151,7 +151,7 @@ public class ProgramManager {
if ( !drop &&
(prog.getTargetPort() != null) &&
- (seg.getPort().getId() != prog.getTargetPort().getId()) ) {
+ (seg.getRecPort().getId() != prog.getTargetPort().getId()) ) {
dropReason = "Target Port";
drop = true;
}
diff --git a/orktrack/src/net/sf/oreka/orktrack/TapeManager.java b/orktrack/src/net/sf/oreka/orktrack/TapeManager.java
new file mode 100644
index 0000000..21544bf
--- /dev/null
+++ b/orktrack/src/net/sf/oreka/orktrack/TapeManager.java
@@ -0,0 +1,78 @@
+package net.sf.oreka.orktrack;
+
+import java.util.Date;
+
+import net.sf.oreka.orktrack.messages.TapeMessage;
+import net.sf.oreka.persistent.RecSegment;
+import net.sf.oreka.persistent.RecTape;
+import net.sf.oreka.persistent.Service;
+import net.sf.oreka.persistent.User;
+
+import org.apache.log4j.Logger;
+import org.hibernate.Session;
+
+public class TapeManager {
+
+ static Logger logger = Logger.getLogger(TapeManager.class);
+
+ static TapeManager tapeManager = null;
+
+ private TapeManager () {
+ }
+
+ public static TapeManager instance() {
+ if (tapeManager == null) {
+ tapeManager = new TapeManager();
+ }
+ return tapeManager;
+ }
+
+
+ public void notifyTapeMessage(TapeMessage tapeMessage, Session hbnSession, Service srv) {
+
+ if (tapeMessage.getStage() == TapeMessage.CaptureStage.START) {
+ ; // tape start message
+ }
+ else {
+ // Tape stop message
+ long date = ((long)tapeMessage.getTimestamp()) * 1000;
+ Date timestamp = new Date(date);
+
+ // create a new tape record
+ RecTape recTape = new RecTape();
+ recTape.setDirection(tapeMessage.getDirection());
+ recTape.setDuration(tapeMessage.getDuration());
+ recTape.setExpiryTimestamp(new Date());
+ recTape.setFilename(tapeMessage.getFilename());
+ recTape.setLocalParty(tapeMessage.getLocalParty());
+ recTape.setRecPortName(tapeMessage.getCapturePort());
+ recTape.setRemoteParty(tapeMessage.getRemoteParty());
+ recTape.setTimestamp(timestamp);
+ recTape.setService(srv);
+ hbnSession.save(recTape);
+ logger.info("Written tape:" + tapeMessage.getRecId() + " as " + recTape.getId());
+
+ RecSegment recSegment = new RecSegment();
+ recSegment.setTimestamp(timestamp);
+ recSegment.setDirection(tapeMessage.getDirection());
+ recSegment.setDuration(tapeMessage.getDuration());
+ recSegment.setRemoteParty(tapeMessage.getRemoteParty());
+ recSegment.setLocalParty(tapeMessage.getLocalParty());
+ recSegment.setLocalEntryPoint(tapeMessage.getLocalEntryPoint());
+ recSegment.setRecTape(recTape);
+ recSegment.setRecPortName(recTape.getRecPortName());
+
+ if(tapeMessage.getLocalParty() != "") {
+ User user = UserManager.instance().getByLoginString(tapeMessage.getLocalParty(), hbnSession);
+ recSegment.setUser(user);
+ }
+ if (ProgramManager.instance().filterSegmentAgainstAllPrograms(recSegment, hbnSession)) {
+ hbnSession.save(recSegment);
+ logger.info("Written segment:" + tapeMessage.getRecId() + " as " + recSegment.getId());
+ }
+ else {
+ logger.info("Tape:" + tapeMessage.getRecId() + " generates no segment");
+ }
+ }
+ }
+}
diff --git a/orktrack/src/net/sf/oreka/orktrack/test/PortTest.java b/orktrack/src/net/sf/oreka/orktrack/test/PortTest.java
index 9c4e30c..9359ffb 100644
--- a/orktrack/src/net/sf/oreka/orktrack/test/PortTest.java
+++ b/orktrack/src/net/sf/oreka/orktrack/test/PortTest.java
@@ -190,8 +190,8 @@ public class PortTest extends TestCase {
Session hbnSession = OrkTrack.hibernateManager.getSession();
Transaction tx = hbnSession.beginTransaction();
- Service recService = ServiceManager.retrieveOrCreate("recservice", hbnSession);
- Service ctiService = ServiceManager.retrieveOrCreate("ctiservice", hbnSession);
+ Service recService = ServiceManager.retrieveOrCreate("recservice", "localhost", hbnSession);
+ Service ctiService = ServiceManager.retrieveOrCreate("ctiservice", "localhost", hbnSession);
ctiService.setRecordMaster(true);
hbnSession.save(recService);