From: <cs-...@li...> - 2012-02-21 13:47:27
|
details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/5798543145e2 changeset: 14005:5798543145e2 user: kasemir date: Fri Feb 17 14:55:29 2012 -0500 description: SNS scan system: ScanContext does not expose all devices details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/df37f60d3c57 changeset: 14006:df37f60d3c57 user: kasemir date: Fri Feb 17 15:14:24 2012 -0500 description: SNS scan system: tweak details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/f9b3b772c89e changeset: 14007:f9b3b772c89e user: kasemir date: Fri Feb 17 16:14:09 2012 -0500 description: SNS scan system: Moved ScanContextImpl into Scan details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/79822905d979 changeset: 14008:79822905d979 user: kasemir date: Fri Feb 17 16:29:57 2012 -0500 description: SNS scan system: tweak details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/043ff2ec1c2f changeset: 14009:043ff2ec1c2f user: kasemir date: Fri Feb 17 16:35:12 2012 -0500 description: Merge details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/9d8a857e37ce changeset: 14010:9d8a857e37ce user: kasemir date: Tue Feb 21 08:46:49 2012 -0500 description: Merge diffstat: applications/plugins/org.csstudio.ams.application.deliverysystem/AmsDeliverySystem.product | 2 +- applications/plugins/org.csstudio.ams.application.deliverysystem/plugin.xml | 2 +- applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/GatewayStatusNotification.java | 24 +- applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/OutgoingSmsQueue.java | 2 - applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java | 2 +- applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryWorker.java | 53 +- applications/plugins/org.csstudio.ams.delivery.voicemail/.classpath | 3 +- applications/plugins/org.csstudio.ams.delivery.voicemail/META-INF/MANIFEST.MF | 1 + applications/plugins/org.csstudio.ams.delivery.voicemail/build.properties | 5 +- applications/plugins/org.csstudio.ams.delivery.voicemail/lib/log4j-1.2.16.jar | 0 applications/plugins/org.csstudio.ams.delivery.voicemail/lib/maryclient.jar | 0 applications/plugins/org.csstudio.ams.delivery.voicemail/src/org/csstudio/ams/delivery/voicemail/isdn/CapiCaller.java | 14 +- applications/plugins/org.csstudio.ams.delivery.voicemail/src/org/csstudio/ams/delivery/voicemail/speech/SpeechProducer.java | 26 +- applications/plugins/org.csstudio.ams/plugin_customization.ini | 2 +- applications/plugins/org.csstudio.domain.common/src/java/org/csstudio/domain/common/SiteId.java | 3 +- applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/editparts/DisplayEditpart.java | 45 + applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/runmode/OPIRuntimeDelegate.java | 26 +- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/Messages.java | 2 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/messages.properties | 2 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/HistoricSamples.java | 19 +- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/LiveSamples.java | 16 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/Model.java | 43 +- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/ModelItem.java | 29 +- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/ModelListenerHeadlessTest.java | 9 +- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/PVItem.java | 25 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/PVItemHeadlessTest.java | 40 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/PVSamples.java | 8 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/PVSamplesUnitTest.java | 88 +++ applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/PlotSample.java | 45 +- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/model/TestSampleBuilder.java | 11 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/propsheet/ChangeWaveformIndexCommand.java | 58 ++ applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/propsheet/EditFormulaDialog.java | 9 +- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/propsheet/TraceTableHandler.java | 47 + applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/sampleview/SampleView.java | 120 +++- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/ui/AddPVDialog.java | 144 +++- applications/plugins/org.csstudio.trends.databrowser2/src/org/csstudio/trends/databrowser2/waveformview/WaveformView.java | 110 +++- products/KEK/features/org.csstudio.kek.eclipse.feature/feature.xml | 7 + products/KEK/plugins/org.csstudio.kek.product/plugin.xml | 4 +- products/KEK/plugins/org.csstudio.kek.product/plugin_customization.ini | 1 + products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/commandimpl/WaitForDevicesCommand.java | 11 +- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/ScanCommandImplTool.java | 4 +- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/ScanContext.java | 15 +- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/internal/Scan.java | 156 ++++- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/internal/ScanContextImpl.java | 200 ------- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/internal/ScanEngine.java | 11 +- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/internal/ScanQueueItem.java | 17 +- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/internal/ScanServerImpl.java | 4 +- products/SNS/plugins/org.csstudio.scan.server/test/org/csstudio/scan/LoopCommandHeadlessTest.java | 41 +- products/SNS/plugins/org.csstudio.scan.server/test/org/csstudio/scan/ScanEngineHeadlessTest.java | 260 ++++++++++ products/SNS/plugins/org.csstudio.scan.server/test/org/csstudio/scan/ScanEngineTest.java | 255 --------- products/SNS/plugins/org.csstudio.scan.server/test/org/csstudio/scan/ScanTest.java | 15 +- products/SNS/plugins/org.csstudio.scan.server/test/org/csstudio/scan/SetCommandImplHeadlessTest.java | 16 +- 52 files changed, 1316 insertions(+), 736 deletions(-) diffs (truncated from 3525 to 300 lines): diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.application.deliverysystem/AmsDeliverySystem.product --- a/applications/plugins/org.csstudio.ams.application.deliverysystem/AmsDeliverySystem.product Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.application.deliverysystem/AmsDeliverySystem.product Tue Feb 21 08:46:49 2012 -0500 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <?pde version="3.5"?> -<product name="AmsDeliverySystem" id="org.csstudio.ams.application.deliverysystem.AmsDeliverySystemProduct" application="org.csstudio.ams.application.deliverysystem.DeliverySystemApplication" useFeatures="false" includeLaunchers="true"> +<product name="AmsDeliverySystem" id="org.csstudio.ams.application.deliverysystem.AmsDeliveryProduct" application="org.csstudio.ams.application.deliverysystem.DeliverySystemApplication" useFeatures="false" includeLaunchers="true"> <configIni use="default"> </configIni> diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.application.deliverysystem/plugin.xml --- a/applications/plugins/org.csstudio.ams.application.deliverysystem/plugin.xml Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.application.deliverysystem/plugin.xml Tue Feb 21 08:46:49 2012 -0500 @@ -25,7 +25,7 @@ </command> </extension> <extension - id="AmsDeliverySystemProduct" + id="AmsDeliveryProduct" point="org.eclipse.core.runtime.products"> <product application="org.csstudio.ams.application.deliverysystem.DeliverySystemApplication" diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/GatewayStatusNotification.java --- a/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/GatewayStatusNotification.java Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/GatewayStatusNotification.java Tue Feb 21 08:46:49 2012 -0500 @@ -33,21 +33,17 @@ * @author Markus Moeller * */ -public class GatewayStatusNotification implements IGatewayStatusNotification -{ +public class GatewayStatusNotification implements IGatewayStatusNotification { + /** Contains the Collector objects that hold the restart count for each modem */ private final Hashtable<String, Collector> gatewayRestart; - public GatewayStatusNotification(final String[] gatewayId) - { + public GatewayStatusNotification(final String[] gatewayId) { gatewayRestart = new Hashtable<String, Collector>(); - if(gatewayId != null) - { - for(final String s : gatewayId) - { - if(s != null) - { + if(gatewayId != null) { + for(final String s : gatewayId) { + if(s != null) { final Collector c = new Collector(); c.setApplication("AmsSmsConnector"); c.setDescriptor("Restart count of " + s); @@ -60,9 +56,11 @@ } @Override - public void process(final AGateway gateway, final GatewayStatuses oldStatus, final GatewayStatuses newStatus) { - if((gatewayRestart.containsKey(gateway.getGatewayId())) && (newStatus == GatewayStatuses.RESTART)) - { + public void process(final AGateway gateway, + final GatewayStatuses oldStatus, + final GatewayStatuses newStatus) { + if((gatewayRestart.containsKey(gateway.getGatewayId())) + && (newStatus == GatewayStatuses.RESTART)) { gatewayRestart.get(gateway.getGatewayId()).incrementValue(); } } diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/OutgoingSmsQueue.java --- a/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/OutgoingSmsQueue.java Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/OutgoingSmsQueue.java Tue Feb 21 08:46:49 2012 -0500 @@ -36,8 +36,6 @@ import org.slf4j.LoggerFactory; /** - * TODO (mmoeller) : - * * @author mmoeller * @version 1.0 * @since 18.12.2011 diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java --- a/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java Tue Feb 21 08:46:49 2012 -0500 @@ -225,7 +225,7 @@ mapMessage.setString("HOST", Environment.getInstance().getHostName()); mapMessage.setString("USER", Environment.getInstance().getUserName()); mapMessage.setString("NAME", "AMS_SYSTEM_CHECK_ANSWER"); - mapMessage.setString("APPLICATION-ID", "SmsConnector"); + mapMessage.setString("APPLICATION-ID", "SmsDeliveryWorker"); mapMessage.setString("DESTINATION", "AmsSystemMonitor"); producer.sendMessage(mapMessage); diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryWorker.java --- a/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryWorker.java Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryWorker.java Tue Feb 21 08:46:49 2012 -0500 @@ -26,6 +26,8 @@ package org.csstudio.ams.delivery.sms; import java.util.ArrayList; +import java.util.List; + import javax.jms.JMSException; import javax.jms.MapMessage; import javax.jms.Message; @@ -39,6 +41,7 @@ import org.csstudio.ams.delivery.jms.JmsSender; import org.csstudio.ams.delivery.message.BaseAlarmMessage.State; import org.csstudio.ams.delivery.message.BaseIncomingMessage; +import org.csstudio.ams.delivery.queue.IncomingQueue; import org.csstudio.ams.delivery.sms.internal.SmsConnectorPreferenceKey; import org.csstudio.ams.internal.AmsPreferenceKey; import org.csstudio.platform.utility.jms.JmsSimpleProducer; @@ -53,8 +56,6 @@ import org.smslib.Message.MessageTypes; /** - * TODO (mmoeller) : - * * @author mmoeller * @version 1.0 * @since 17.12.2011 @@ -72,8 +73,12 @@ private JmsSimpleProducer amsPublisherReply; + private Object lock; + private OutgoingSmsQueue outgoingQueue; + private IncomingQueue<BaseIncomingMessage> incomingQueue; + private SmsDeliveryDevice smsDevice; private ModemInfoContainer modemInfo; @@ -93,7 +98,9 @@ */ public SmsDeliveryWorker() { workerName = this.getClass().getSimpleName(); + lock = new Object(); outgoingQueue = new OutgoingSmsQueue(); + incomingQueue = new IncomingQueue<BaseIncomingMessage>(); // First create the JMS connections initJms(); @@ -134,27 +141,24 @@ @Override public void run() { - ArrayList<SmsAlarmMessage> outgoing = null; - LOG.info(workerName + " is running."); while(running) { - synchronized (outgoingQueue) { + synchronized (lock) { try { if (outgoingQueue.isEmpty() && (!testStatus.isActive())) { - outgoingQueue.wait(); + lock.wait(); } else { - outgoingQueue.wait(readWaitingPeriod); + lock.wait(readWaitingPeriod); } workerCheckFlag = false; } catch (InterruptedException ie) { LOG.error("I have been interrupted."); } - - outgoing = outgoingQueue.getCurrentContent(); } - if (outgoing.size() > 0) { + if (outgoingQueue.hasContent()) { + ArrayList<SmsAlarmMessage> outgoing = outgoingQueue.getCurrentContent(); LOG.info("Zu senden: " + outgoing.size()); for (SmsAlarmMessage o : outgoing) { if (smsDevice.sendMessage(o) == false) { @@ -172,6 +176,15 @@ outgoing.clear(); outgoing = null; } + + if (incomingQueue.hasContent()) { + List<BaseIncomingMessage> incoming = incomingQueue.getCurrentContent(); + for (BaseIncomingMessage o : incoming) { + if (processIncomingMessages(o) == false) { + checkDeviceTest(o); + } + } + } } smsDevice.stopDevice(); @@ -347,8 +360,8 @@ testStatus.reset(); testStatus.setCheckId(checkId); smsDevice.sendDeviceTestMessage(testStatus); - synchronized (outgoingQueue) { - outgoingQueue.notify(); + synchronized (lock) { + lock.notify(); } } else { LOG.info("A modem check is still active. Ignoring the new modem check."); @@ -367,15 +380,15 @@ Object[] param = { msg.getText(), msg.getOriginator(), gateway.getGatewayId() }; LOG.info("Incoming message: {} from phone number {} received by gateway {}", param); BaseIncomingMessage inMsg = new BaseIncomingMessage(msg); - if (processIncomingMessages(inMsg) == false) { - checkDeviceTest(inMsg); - } - + incomingQueue.addMessage(inMsg); if (smsDevice.deleteMessage(msg)) { LOG.info("Message is deleted."); } else { LOG.warn("Message cannot be deleted."); } + synchronized (lock) { + lock.notify(); + } } private void acknowledge(Message message) { @@ -525,16 +538,16 @@ @Override public void stopWorking() { running = false; - synchronized (outgoingQueue) { - outgoingQueue.notify(); + synchronized (lock) { + lock.notify(); } } @Override public boolean isWorking() { workerCheckFlag = true; - synchronized (outgoingQueue) { - outgoingQueue.notify(); + synchronized (lock) { + lock.notify(); } Object localLock = new Object(); synchronized (localLock) { diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.voicemail/.classpath --- a/applications/plugins/org.csstudio.ams.delivery.voicemail/.classpath Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.voicemail/.classpath Tue Feb 21 08:46:49 2012 -0500 @@ -1,7 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> + <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.16.jar"/> + <classpathentry exported="true" kind="lib" path="lib/maryclient.jar"/> <classpathentry exported="true" kind="lib" path="lib/capi.jar"/> - <classpathentry exported="true" kind="lib" path="lib/maryclient.jar"/> <classpathentry exported="true" kind="lib" path="lib/signalproc.jar"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.voicemail/META-INF/MANIFEST.MF --- a/applications/plugins/org.csstudio.ams.delivery.voicemail/META-INF/MANIFEST.MF Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.voicemail/META-INF/MANIFEST.MF Tue Feb 21 08:46:49 2012 -0500 @@ -20,6 +20,7 @@ org.csstudio.ams.delivery.queue, org.csstudio.ams.delivery.service Bundle-ClassPath: ., + lib/log4j-1.2.16.jar, lib/capi.jar, lib/maryclient.jar, lib/signalproc.jar diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.voicemail/build.properties --- a/applications/plugins/org.csstudio.ams.delivery.voicemail/build.properties Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.voicemail/build.properties Tue Feb 21 08:46:49 2012 -0500 @@ -3,6 +3,7 @@ bin.includes = META-INF/,\ .,\ lib/capi.jar,\ + lib/signalproc.jar,\ + plugin.xml,\ lib/maryclient.jar,\ - lib/signalproc.jar,\ - plugin.xml + lib/log4j-1.2.16.jar diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.voicemail/lib/log4j-1.2.16.jar Binary file applications/plugins/org.csstudio.ams.delivery.voicemail/lib/log4j-1.2.16.jar has changed diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.voicemail/lib/maryclient.jar Binary file applications/plugins/org.csstudio.ams.delivery.voicemail/lib/maryclient.jar has changed diff -r 364e424f0d16 -r 9d8a857e37ce applications/plugins/org.csstudio.ams.delivery.voicemail/src/org/csstudio/ams/delivery/voicemail/isdn/CapiCaller.java --- a/applications/plugins/org.csstudio.ams.delivery.voicemail/src/org/csstudio/ams/delivery/voicemail/isdn/CapiCaller.java Fri Feb 17 11:05:35 2012 -0500 +++ b/applications/plugins/org.csstudio.ams.delivery.voicemail/src/org/csstudio/ams/delivery/voicemail/isdn/CapiCaller.java Tue Feb 21 08:46:49 2012 -0500 @@ -114,7 +114,7 @@ String key = null; boolean repeat = true; - if(speech.getInputType().compareToIgnoreCase("text_de") == 0) { + if(speech.getLocal().compareToIgnoreCase("de") == 0) { baos = speech.getAudioStream("Guten Tag. Dies ist eine Nachricht des Alarmsystems. Benutzen Sie die Taste 1, um den Text zu hören."); } else { baos = speech.getAudioStream("Hello. This is a message from the alarm system. Use key 1 to hear the text."); |