From: <cs-...@li...> - 2011-12-16 15:45:50
|
details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgrepo/c/cs/cs-studio/cs-studio/rev/623106011d8a changeset: 13176:623106011d8a user: kasemir date: Fri Dec 16 08:39:15 2011 -0500 description: SNS scan server: Server query to fetch command descriptions details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgrepo/c/cs/cs-studio/cs-studio/rev/a9bf0c67513b changeset: 13177:a9bf0c67513b user: kasemir date: Fri Dec 16 09:00:18 2011 -0500 description: SNS scan server: Fetch commands from server into editor details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgrepo/c/cs/cs-studio/cs-studio/rev/c8cc2ccd5e91 changeset: 13178:c8cc2ccd5e91 user: kasemir date: Fri Dec 16 09:00:42 2011 -0500 description: SNS scan server: Fetch commands from server into editor details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgrepo/c/cs/cs-studio/cs-studio/rev/b4d3e5163457 changeset: 13179:b4d3e5163457 user: kasemir date: Fri Dec 16 10:44:17 2011 -0500 description: Merge diffstat: applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorProperties.java | 7 +- applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorWork.java | 2 - applications/plugins/org.csstudio.ams.connector.sms/src/org/csstudio/ams/connector/sms/SmsConnectorWork.java | 2 - applications/plugins/org.csstudio.ams.connector.voicemail/src/org/csstudio/ams/connector/voicemail/VoicemailConnectorWork.java | 2 - applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/ConfigurationSynchronizer.java | 25 +- applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorStart.java | 38 +- applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorWork.java | 12 +- applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/management/Restart.java | 4 +- applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/management/Stop.java | 4 +- applications/plugins/org.csstudio.ams/.classpath | 4 +- applications/plugins/org.csstudio.ams/build.properties | 6 +- applications/plugins/org.csstudio.ams/libs/derbyclient.jar | 0 applications/plugins/org.csstudio.ams/libs/derbytools.jar | 0 applications/plugins/org.csstudio.ams/src/org/csstudio/ams/configReplicator/ConfigReplicator.java | 55 +- applications/plugins/org.csstudio.ams/src/org/csstudio/ams/dbAccess/AmsConnectionFactory.java | 23 +- applications/plugins/org.csstudio.ams/src/org/csstudio/ams/dbAccess/ConfigDbProperties.java | 71 ++++ applications/plugins/org.csstudio.ams/src/org/csstudio/ams/dbAccess/IDatabaseProperties.java | 40 ++ applications/plugins/org.csstudio.nams.service.configurationAccess.localStore/.classpath | 4 +- applications/plugins/org.csstudio.nams.service.configurationAccess.localStore/META-INF/MANIFEST.MF | 4 +- applications/plugins/org.csstudio.nams.service.configurationAccess.localStore/build.properties | 6 +- applications/plugins/org.csstudio.nams.service.configurationAccess.localStore/lib-db/derbyclient.jar | 0 applications/plugins/org.csstudio.nams.service.configurationAccess.localStore/lib-db/derbytools.jar | 0 applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/editparts/MeterEditPart.java | 46 +- applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/editparts/TextInputEditpart.java | 35 +- applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/model/MeterModel.java | 9 + applications/plugins/org.csstudio.opibuilder/html/script/AccessWidget.html | 151 ++++++++- applications/plugins/org.csstudio.opibuilder/html/script/ScriptUtil/FileUtil.html | 144 ++++++++- applications/plugins/org.csstudio.opibuilder/html/script/ScriptUtil/ScriptUtil.html | 127 +++++-- applications/plugins/org.csstudio.opibuilder/preferences.ini | 10 +- applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/editparts/AbstractBaseEditPart.java | 76 ++++- applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/scriptUtil/FileUtil.java | 44 ++ applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/scriptUtil/ScriptUtil.java | 157 +++++---- applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/widgetActions/OpenWebpageAction.java | 35 +- applications/plugins/org.csstudio.swt.widgets/src/org/csstudio/swt/widgets/figures/MeterFigure.java | 5 + core/plugins/org.csstudio.platform.libs.jdbc/.classpath | 20 +- core/plugins/org.csstudio.platform.libs.jdbc/META-INF/MANIFEST.MF | 6 +- core/plugins/org.csstudio.platform.libs.jdbc/build.properties | 3 +- core/plugins/org.csstudio.platform.libs.jdbc/libs/ojdbc5_g.jar | 0 core/plugins/org.csstudio.platform.libs.jdbc/libs/ojdbc6_g.jar | 0 core/plugins/org.csstudio.utility.pv.epics/src/org/csstudio/utility/pv/epics/EPICS_V3_PV.java | 20 + products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/Scan.java | 30 +- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/ScanServerImpl.java | 10 + products/SNS/plugins/org.csstudio.scan.server/test/org/csstudio/scan/ScanTest.java | 28 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/META-INF/MANIFEST.MF | 3 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/GUI.java | 7 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/META-INF/MANIFEST.MF | 2 + products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/Messages.java | 1 + products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/ScanEditor.java | 12 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/actions/OpenScanTreeAction.java | 69 ++++ products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/messages.properties | 1 + products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/server/ScanServer.java | 7 + 51 files changed, 1050 insertions(+), 317 deletions(-) diffs (truncated from 2497 to 300 lines): diff -r dae4fd2c038a -r b4d3e5163457 applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorProperties.java --- a/applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorProperties.java Thu Dec 15 16:24:37 2011 -0500 +++ b/applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorProperties.java Fri Dec 16 10:44:17 2011 -0500 @@ -26,8 +26,7 @@ import org.csstudio.ams.connector.email.internal.EMailConnectorPreferenceKey; import org.eclipse.jface.preference.IPreferenceStore; -public class EMailConnectorProperties -{ +public class EMailConnectorProperties { private String mailSenderAdress = null; private String mailAuthUser = null; private String mailAuthPassword = null; @@ -35,8 +34,7 @@ private String mailContent = null; private String mailServerConfig = null; - public EMailConnectorProperties() - { + public EMailConnectorProperties() { IPreferenceStore store = EMailConnectorPlugin.getDefault().getPreferenceStore(); mailSenderAdress = store.getString(EMailConnectorPreferenceKey.P_MAILSENDERADRESS); mailAuthUser = store.getString(EMailConnectorPreferenceKey.P_MAILAUTHUSER); @@ -69,5 +67,4 @@ public String getMailSubject() { return mailSubject; } - } \ No newline at end of file diff -r dae4fd2c038a -r b4d3e5163457 applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorWork.java --- a/applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorWork.java Thu Dec 15 16:24:37 2011 -0500 +++ b/applications/plugins/org.csstudio.ams.connector.email/src/org/csstudio/ams/connector/email/EMailConnectorWork.java Fri Dec 16 10:44:17 2011 -0500 @@ -100,8 +100,6 @@ ecs.setStatus(EMailConnectorStart.STAT_OK); } - Log.log(this, Log.DEBUG, "runs"); - Message message = null; try { diff -r dae4fd2c038a -r b4d3e5163457 applications/plugins/org.csstudio.ams.connector.sms/src/org/csstudio/ams/connector/sms/SmsConnectorWork.java --- a/applications/plugins/org.csstudio.ams.connector.sms/src/org/csstudio/ams/connector/sms/SmsConnectorWork.java Thu Dec 15 16:24:37 2011 -0500 +++ b/applications/plugins/org.csstudio.ams.connector.sms/src/org/csstudio/ams/connector/sms/SmsConnectorWork.java Fri Dec 16 10:44:17 2011 -0500 @@ -146,8 +146,6 @@ if (scs.getStatus() == SmsConnectorStart.STAT_INIT) scs.setStatus(SmsConnectorStart.STAT_OK); - // Log.log(this, Log.DEBUG, "is running"); - Message message = null; try { message = amsReceiver.receive("amsSubscriberSmsModemtest"); diff -r dae4fd2c038a -r b4d3e5163457 applications/plugins/org.csstudio.ams.connector.voicemail/src/org/csstudio/ams/connector/voicemail/VoicemailConnectorWork.java --- a/applications/plugins/org.csstudio.ams.connector.voicemail/src/org/csstudio/ams/connector/voicemail/VoicemailConnectorWork.java Thu Dec 15 16:24:37 2011 -0500 +++ b/applications/plugins/org.csstudio.ams.connector.voicemail/src/org/csstudio/ams/connector/voicemail/VoicemailConnectorWork.java Fri Dec 16 10:44:17 2011 -0500 @@ -120,8 +120,6 @@ if (application.getStatus() == VoicemailConnectorStart.STAT_INIT) application.setStatus(VoicemailConnectorStart.STAT_OK); - // Log.log(this, Log.DEBUG, "runs"); - Message message = null; try { message = amsReceiver.receive("amsSubscriberVm"); diff -r dae4fd2c038a -r b4d3e5163457 applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/ConfigurationSynchronizer.java --- a/applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/ConfigurationSynchronizer.java Thu Dec 15 16:24:37 2011 -0500 +++ b/applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/ConfigurationSynchronizer.java Fri Dec 16 10:44:17 2011 -0500 @@ -1,3 +1,4 @@ + package org.csstudio.ams.distributor; import java.sql.Connection; @@ -11,6 +12,8 @@ import org.csstudio.ams.AmsConstants; import org.csstudio.ams.Log; import org.csstudio.ams.configReplicator.ConfigReplicator; +import org.csstudio.ams.dbAccess.AmsConnectionFactory; +import org.csstudio.ams.dbAccess.ConfigDbProperties; import org.csstudio.ams.dbAccess.configdb.FlagDAO; /** @@ -18,6 +21,7 @@ * into the local application database. */ class ConfigurationSynchronizer implements Runnable { + private static enum SynchronizerState { WAITING_FOR_REQUEST, SYNCHRONIZATION_REQUESTED, @@ -26,7 +30,7 @@ } private final Connection _localDatabaseConnection; - private final Connection _masterDatabaseConnection; + private final ConfigDbProperties dbProperties; private SynchronizerState _state; private boolean _stopped = false; private MessageProducer _jmsProducer; @@ -35,12 +39,12 @@ /** * Creates a new synchronizer object. */ - ConfigurationSynchronizer(Connection localDatabaseConnection, - Connection masterDatabaseConnection, - Session jmsSession, - MessageProducer jmsProducer) { + public ConfigurationSynchronizer(Connection localDatabaseConnection, + ConfigDbProperties prop, + Session jmsSession, + MessageProducer jmsProducer) { _localDatabaseConnection = localDatabaseConnection; - _masterDatabaseConnection = masterDatabaseConnection; + dbProperties = prop; _jmsSession = jmsSession; _jmsProducer = jmsProducer; _state = readSynchronizationState(); @@ -78,7 +82,9 @@ /** * Runs this synchronizer. + * ALTER PROFILE DEFAULT LIMIT IDLE_TIME 60; */ + @Override synchronized public void run() { _stopped = false; while (!_stopped) { @@ -148,11 +154,14 @@ throw new IllegalStateException("Not in state SYNCHRONIZATION_STARTED"); } + Connection masterDatabaseConnection = null; try { - ConfigReplicator.replicateConfiguration(_masterDatabaseConnection, + masterDatabaseConnection = AmsConnectionFactory.getConfigurationDB(dbProperties); + ConfigReplicator.replicateConfiguration(masterDatabaseConnection, _localDatabaseConnection); + AmsConnectionFactory.closeConnection(masterDatabaseConnection); } catch (Exception e) { - Log.log(this, Log.FATAL, "could not replicateConfiguration", e); + Log.log(this, Log.FATAL, "Could not replicateConfiguration", e); } try { diff -r dae4fd2c038a -r b4d3e5163457 applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorStart.java --- a/applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorStart.java Thu Dec 15 16:24:37 2011 -0500 +++ b/applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorStart.java Fri Dec 16 10:44:17 2011 -0500 @@ -36,6 +36,7 @@ import org.csstudio.ams.AmsActivator; import org.csstudio.ams.Log; import org.csstudio.ams.dbAccess.AmsConnectionFactory; +import org.csstudio.ams.dbAccess.ConfigDbProperties; import org.csstudio.ams.distributor.preferences.DistributorPreferenceKey; import org.csstudio.ams.internal.AmsPreferenceKey; import org.eclipse.core.runtime.Platform; @@ -69,6 +70,7 @@ } } + @Override public void stop() { return; } @@ -93,15 +95,16 @@ * * @return The password for management */ - public synchronized String getPassword() - { + public synchronized String getPassword() { return managementPassword; } /** * */ + @Override public Object start(final IApplicationContext context) throws Exception { + Log.log(this, Log.INFO, "Starting Distributor ..."); DistributorPlugin.getDefault().addSessionServiceListener(this); @@ -109,11 +112,17 @@ DistributorPreferenceKey.showPreferences(); final IPreferenceStore prefs = AmsActivator.getDefault().getPreferenceStore(); + final IPreferenceStore store = AmsActivator.getDefault().getPreferenceStore(); + final String dbType = store.getString(AmsPreferenceKey.P_CONFIG_DATABASE_TYPE); + final String dbCon = store.getString(AmsPreferenceKey.P_CONFIG_DATABASE_CONNECTION); + final String user = store.getString(AmsPreferenceKey.P_CONFIG_DATABASE_USER); + final String pwd = store.getString(AmsPreferenceKey.P_CONFIG_DATABASE_PASSWORD); + + ConfigDbProperties dbProp = new ConfigDbProperties(dbType, dbCon, user, pwd); java.sql.Connection localDatabaseConnection = null; - java.sql.Connection masterDatabaseConnection = null; + //java.sql.Connection masterDatabaseConnection = null; try { localDatabaseConnection = AmsConnectionFactory.getApplicationDB(); - masterDatabaseConnection = AmsConnectionFactory.getConfigurationDB(); // Create a JMS sender connection final ConnectionFactory senderConnectionFactory = new ActiveMQConnectionFactory(prefs.getString(AmsPreferenceKey.P_JMS_AMS_SENDER_PROVIDER_URL)); @@ -128,7 +137,7 @@ // Create the synchronizer object for the database synchronization final ConfigurationSynchronizer synchronizer = - new ConfigurationSynchronizer(localDatabaseConnection, masterDatabaseConnection, commandSenderSession, commandMessageProducer); + new ConfigurationSynchronizer(localDatabaseConnection, dbProp, commandSenderSession, commandMessageProducer); final Thread synchronizerThread = new Thread(synchronizer); synchronizerThread.start(); @@ -152,8 +161,9 @@ } // TODO: There really should be two worker classes! - new Thread(worker).start(); - + // new Thread(worker).start(); + worker.start(); + Log.log(this, Log.INFO, "Distributor started"); synchronized (this) { @@ -161,7 +171,9 @@ this.wait(); } } - + + worker.stopWorking(); + worker.join(10000); synchronizer.stop(); synchronizerThread.join(); @@ -175,12 +187,18 @@ return IApplication.EXIT_OK; } finally { AmsConnectionFactory.closeConnection(localDatabaseConnection); - AmsConnectionFactory.closeConnection(masterDatabaseConnection); } Log.log(this, Log.INFO, "DistributorStart is exiting now"); if (xmppService != null) { + synchronized (xmppService) { + try { + xmppService.wait(500L); + } catch (InterruptedException ie) { + Log.log(this, Log.WARN, "xmppService.wait() was interrupted."); + } + } xmppService.disconnect(); } @@ -192,6 +210,7 @@ return exitCode; } + @Override public void bindService(final ISessionService sessionService) { final IPreferencesService pref = Platform.getPreferencesService(); final String xmppServer = pref.getString(DistributorPlugin.PLUGIN_ID, DistributorPreferenceKey.P_XMPP_SERVER, "krynfs.desy.de", null); @@ -206,6 +225,7 @@ } } + @Override public void unbindService(final ISessionService service) { // Nothing to do here } diff -r dae4fd2c038a -r b4d3e5163457 applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorWork.java --- a/applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorWork.java Thu Dec 15 16:24:37 2011 -0500 +++ b/applications/plugins/org.csstudio.ams.distributor/src/org/csstudio/ams/distributor/DistributorWork.java Fri Dec 16 10:44:17 2011 -0500 @@ -109,9 +109,9 @@ private final ConfigurationSynchronizer synchronizer; - public DistributorWork(final java.sql.Connection localDatabaseConnection, final ConfigurationSynchronizer synchronizer) { + public DistributorWork(final java.sql.Connection localDatabaseConnection, final ConfigurationSynchronizer synch) { localAppDb = localDatabaseConnection; - this.synchronizer = synchronizer; + this.synchronizer = synch; // Create the container that holds the information about the connector topics. topicContainer = new ConnectorTopicContainer(); @@ -127,7 +127,8 @@ } } - public void onMessage(final Message message) { + @Override + public void onMessage(final Message message) { synchronized (synchronizer) { try { workOnMessage(message); @@ -194,7 +195,7 @@ } } |