diff options
author | Henri Herscher <henri@oreka.org> | 2005-12-06 21:18:30 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2005-12-06 21:18:30 +0000 |
commit | a17b1dd992c8d9b77b35340258da2cc42aae618d (patch) | |
tree | 440df1ad2f6ce424d0f09e2e8f699eea386f2ef8 /orktrack/src | |
parent | 6d6960fa6f15a057cc6aff7b521236b32a39bd66 (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/src')
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); |