From 6149f95eed5ad18e5ab4ee355852c3ccb600de39 Mon Sep 17 00:00:00 2001 From: Simon Ebner Date: Tue, 17 Dec 2013 09:41:54 +0100 Subject: [PATCH] Changes for 2.x fda version FDA-95 Fixed command line start scripts for new Java entry points --- application/pom.xml | 2 +- application/src/main/scripts/fda_convert | 2 +- application/src/main/scripts/fda_scan | 2 +- application/src/main/scripts/fda_vis | 2 +- branding/pom.xml | 2 +- .../core/windows/view/ui/Bundle.properties | 4 +-- fda.ui.cdump/pom.xml | 2 +- fda.ui.ce/pom.xml | 2 +- fda.ui.cm/pom.xml | 2 +- fda.ui.ee/pom.xml | 5 +-- .../java/ch/psi/fda/ui/ee/Configuration.java | 30 ++++++++++++++++ .../ch/psi/fda/ui/ee/ExecutionExecutable.java | 35 +++++++++---------- .../main/java/ch/psi/fda/ui/ee/Installer.java | 29 +++++++-------- .../fda/ui/ee/SimpleConversionService.java | 27 +++++++------- .../psi/fda/ui/ee/SimpleExecutionService.java | 9 +++-- .../fda/ui/ee/SimpleVisualizationService.java | 20 ++++++----- fda.ui.preferences/pom.xml | 2 +- pom.xml | 2 +- 18 files changed, 104 insertions(+), 75 deletions(-) create mode 100644 fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Configuration.java diff --git a/application/pom.xml b/application/pom.xml index b1b51e5..6642da5 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -5,7 +5,7 @@ ch.psi fda.ui - 1.1.40 + 2.0.1 application diff --git a/application/src/main/scripts/fda_convert b/application/src/main/scripts/fda_convert index d9dbd70..1bb989d 100644 --- a/application/src/main/scripts/fda_convert +++ b/application/src/main/scripts/fda_convert @@ -37,4 +37,4 @@ do done # Execute java -java -Xmx1024m -XX:MaxPermSize=128m -cp $CLASSPATH -Dch.psi.fda.home=${APPLICATION_HOME} -Djava.util.logging.config.file=${APPLICATION_HOME}/config/logging.properties $VM_ARGUMENTS ch.psi.fda.co.ConversionEngine $ARGUMENTS \ No newline at end of file +java -Xmx1024m -XX:MaxPermSize=128m -cp $CLASSPATH -Dch.psi.fda.home=${APPLICATION_HOME} -Djava.util.logging.config.file=${APPLICATION_HOME}/config/logging.properties $VM_ARGUMENTS ch.psi.fda.ConversionMain $ARGUMENTS \ No newline at end of file diff --git a/application/src/main/scripts/fda_scan b/application/src/main/scripts/fda_scan index 67358c5..f00b49a 100644 --- a/application/src/main/scripts/fda_scan +++ b/application/src/main/scripts/fda_scan @@ -37,4 +37,4 @@ do done # Execute java -java -Xmx1024m -XX:MaxPermSize=128m -Dch.psi.fda.home=${APPLICATION_HOME} $VM_ARGUMENTS -cp $CLASSPATH ch.psi.fda.aq.AcquisitionMain $ARGUMENTS \ No newline at end of file +java -Xmx1024m -XX:MaxPermSize=128m -Dch.psi.fda.home=${APPLICATION_HOME} $VM_ARGUMENTS -cp $CLASSPATH ch.psi.fda.AcquisitionMain $ARGUMENTS \ No newline at end of file diff --git a/application/src/main/scripts/fda_vis b/application/src/main/scripts/fda_vis index f550fc4..8931ce0 100644 --- a/application/src/main/scripts/fda_vis +++ b/application/src/main/scripts/fda_vis @@ -37,4 +37,4 @@ do done # Execute java -java -Xmx1024m -XX:MaxPermSize=128m -cp $CLASSPATH -Dch.psi.fda.home=${APPLICATION_HOME} -Djava.util.logging.config.file=${APPLICATION_HOME}/config/logging.properties $VM_ARGUMENTS ch.psi.fda.vis.VisualizationEngine $ARGUMENTS \ No newline at end of file +java -Xmx1024m -XX:MaxPermSize=128m -cp $CLASSPATH -Dch.psi.fda.home=${APPLICATION_HOME} -Djava.util.logging.config.file=${APPLICATION_HOME}/config/logging.properties $VM_ARGUMENTS ch.psi.fda.VisualizationMain $ARGUMENTS \ No newline at end of file diff --git a/branding/pom.xml b/branding/pom.xml index 8b90c40..572adef 100644 --- a/branding/pom.xml +++ b/branding/pom.xml @@ -5,7 +5,7 @@ ch.psi fda.ui - 1.1.40 + 2.0.1 branding diff --git a/branding/src/main/nbm-branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties b/branding/src/main/nbm-branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties index a6fcda1..8a86750 100644 --- a/branding/src/main/nbm-branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties +++ b/branding/src/main/nbm-branding/modules/org-netbeans-core-windows.jar/org/netbeans/core/windows/view/ui/Bundle.properties @@ -1,2 +1,2 @@ -CTL_MainWindow_Title=FDA 1.1.40 -CTL_MainWindow_Title_No_Project=FDA 1.1.40 +CTL_MainWindow_Title=FDA 2.0.1 +CTL_MainWindow_Title_No_Project=FDA 2.0.1 diff --git a/fda.ui.cdump/pom.xml b/fda.ui.cdump/pom.xml index 3d42d4d..94b34ce 100644 --- a/fda.ui.cdump/pom.xml +++ b/fda.ui.cdump/pom.xml @@ -4,7 +4,7 @@ fda.ui ch.psi - 1.1.40 + 2.0.1 fda.ui.cdump diff --git a/fda.ui.ce/pom.xml b/fda.ui.ce/pom.xml index d2bcea7..be31724 100644 --- a/fda.ui.ce/pom.xml +++ b/fda.ui.ce/pom.xml @@ -4,7 +4,7 @@ fda.ui ch.psi - 1.1.40 + 2.0.1 fda.ui.ce diff --git a/fda.ui.cm/pom.xml b/fda.ui.cm/pom.xml index 9bcb264..3be90c8 100644 --- a/fda.ui.cm/pom.xml +++ b/fda.ui.cm/pom.xml @@ -4,7 +4,7 @@ fda.ui ch.psi - 1.1.40 + 2.0.1 fda.ui.cm diff --git a/fda.ui.ee/pom.xml b/fda.ui.ee/pom.xml index 44668f4..ec25b13 100644 --- a/fda.ui.ee/pom.xml +++ b/fda.ui.ee/pom.xml @@ -4,7 +4,7 @@ fda.ui ch.psi - 1.1.40 + 2.0.1 fda.ui.ee @@ -87,7 +87,7 @@ ch.psi fda - 1.1.40 + 2.0.1 jar @@ -103,6 +103,7 @@ ch.psi.fda.model ch.psi.fda.model.v1 ch.psi.fda.ui.ee.api + org.xml.sax diff --git a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Configuration.java b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Configuration.java new file mode 100644 index 0000000..780ebcc --- /dev/null +++ b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Configuration.java @@ -0,0 +1,30 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package ch.psi.fda.ui.ee; + +import ch.psi.fda.aq.AcquisitionConfiguration; + +/** + * + * @author ebner + */ +public class Configuration { + private static final Configuration instance = new Configuration(); + private final AcquisitionConfiguration configuration; + + private Configuration(){ + configuration = new AcquisitionConfiguration(); + } + + public static Configuration getInstance(){ + return instance; + } + + public AcquisitionConfiguration getConfiguration(){ + return configuration; + } +} diff --git a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/ExecutionExecutable.java b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/ExecutionExecutable.java index 2ddf3f7..9696482 100644 --- a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/ExecutionExecutable.java +++ b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/ExecutionExecutable.java @@ -18,9 +18,14 @@ package ch.psi.fda.ui.ee; import ch.psi.fda.aq.Acquisition; -import ch.psi.fda.core.messages.DataQueue; +import ch.psi.fda.aq.VisualizationMapper; import ch.psi.fda.model.v1.Configuration; import ch.psi.fda.visualizer.Visualizer; +import ch.psi.jcae.impl.DefaultChannelService; +import com.google.common.eventbus.AsyncEventBus; +import com.google.common.eventbus.EventBus; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.logging.Level; import java.util.logging.Logger; import org.netbeans.api.progress.ProgressHandle; @@ -78,6 +83,7 @@ public class ExecutionExecutable implements Runnable { Visualizer visualizer = null; + ExecutorService executor=null; try { // Read in base configuration // AcquisitionEngineConfiguration configuration = AcquisitionEngineConfiguration.getInstance(); @@ -86,14 +92,16 @@ public class ExecutionExecutable implements Runnable { handle.progress(25); - acquisition = new Acquisition(); - DataQueue vdq = acquisition.initalize(c, true); + executor = Executors.newSingleThreadExecutor(); + EventBus ebus = new AsyncEventBus(executor); + acquisition = new Acquisition(new DefaultChannelService(), ch.psi.fda.ui.ee.Configuration.getInstance().getConfiguration()); + acquisition.initalize(ebus, c); - visualizer = new Visualizer(vdq, c.getVisualization()); + visualizer = new Visualizer(VisualizationMapper.mapVisualizations(c.getVisualization())); // Configure visualizer that visualizing Thread terminates automatically // visualizer.setAutoTerminate(true); // visualizer.setAutoTerminateAt(c.getNumberOfExecution()); - visualizer.setTerminateAtEOS(true); +// visualizer.setTerminateAtEOS(true); if(c.getScan() != null && c.getScan().getCdimension()!=null){ // If there is a continuous dimension only update the plot a the end of a line. // Improvement of performance @@ -101,6 +109,7 @@ public class ExecutionExecutable implements Runnable { visualizer.setUpdateAtStreamDelimiter(true); visualizer.setUpdateAtEndOfStream(true); } + ebus.register(visualizer); tc.updatePanel(visualizer.getPlotPanels()); @@ -108,12 +117,6 @@ public class ExecutionExecutable implements Runnable { handle.switchToIndeterminate(); - - // Run acquisition engine - if (visualizer != null) { - visualizer.startVisualization(); - } - // Execute acquisition logic acquisition.execute(); @@ -146,14 +149,10 @@ public class ExecutionExecutable implements Runnable { // acquisition = null; Logger.getLogger(ExecutionExecutable.class.getName()).log(Level.INFO, "Stop visualizer"); - if(visualizer != null){ - try { - visualizer.stopVisualization(); - } catch (InterruptedException ex) { - Exceptions.printStackTrace(ex); - } + if(executor!=null){ + executor.shutdownNow(); } - + // Indicate end of task Logger.getLogger(ExecutionExecutable.class.getName()).log(Level.INFO, "Destroy handle"); handle.finish(); diff --git a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Installer.java b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Installer.java index c63cc57..3f26e9b 100644 --- a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Installer.java +++ b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/Installer.java @@ -16,16 +16,12 @@ */ package ch.psi.fda.ui.ee; -import ch.psi.fda.aq.AcquisitionEngineConfiguration; import ch.psi.fda.install.ApplicationConfigurator; -import ch.psi.jcae.JcaeProperties; import ch.psi.fda.ui.preferences.api.Preferences; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; -import java.io.IOException; import org.openide.modules.ModuleInstall; -import org.openide.util.Exceptions; import org.openide.util.Lookup; /** @@ -44,12 +40,13 @@ public class Installer extends ModuleInstall { ApplicationConfigurator c = new ApplicationConfigurator(); c.initializeApplication(); - try { - AcquisitionEngineConfiguration.getInstance().reloadConfiguration(); - JcaeProperties.getInstance().loadProperties(); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } +// try { + Configuration.getInstance().getConfiguration().loadConfiguration(); +// new AcquisitionConfiguration().loadConfiguration(); +// JcaeProperties.getInstance().loadProperties(); +// } catch (IOException ex) { +// Exceptions.printStackTrace(ex); +// } // Register a change listener to reconfigure scan engine when the home directory changes @@ -63,12 +60,12 @@ public class Installer extends ModuleInstall { ApplicationConfigurator c = new ApplicationConfigurator(); c.initializeApplication(); - try { - AcquisitionEngineConfiguration.getInstance().reloadConfiguration(); - JcaeProperties.getInstance().loadProperties(); - } catch (IOException ex) { - Exceptions.printStackTrace(ex); - } +// try { + Configuration.getInstance().getConfiguration().loadConfiguration(); +// JcaeProperties.getInstance().loadProperties(); +// } catch (IOException ex) { +// Exceptions.printStackTrace(ex); +// } } }); diff --git a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleConversionService.java b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleConversionService.java index 3ad70ff..05991b4 100644 --- a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleConversionService.java +++ b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleConversionService.java @@ -28,6 +28,7 @@ import ch.psi.fda.serializer.DataSerializerTXT; import ch.psi.fda.serializer.DataSerializerTXT2D; import ch.psi.fda.serializer.DataSerializerTXTSplit; import ch.psi.fda.ui.ee.api.ConversionService; +import com.google.common.eventbus.EventBus; import java.io.File; import java.util.logging.Level; import java.util.logging.Logger; @@ -49,39 +50,39 @@ public class SimpleConversionService implements ConversionService { try { Logger.getLogger(SimpleConversionService.class.getName()).log(Level.INFO, "Convert file {0} from {1} to {2}", new Object[]{input.getAbsolutePath(), reader, writer}); - + + EventBus ebus = new EventBus(); // Create deserializer final DataDeserializer deserializer; if (reader.equals(Reader.TXT)) { - deserializer = new DataDeserializerTXT(input); + deserializer = new DataDeserializerTXT(ebus, input); } else if (reader.equals(Reader.MDA)) { - deserializer = new DataDeserializerMDA(input); + deserializer = new DataDeserializerMDA(ebus, input); } else { throw new IllegalArgumentException("Reader of type " + reader + " not supported."); } final DataSerializer serializer; if (writer.equals(Writer.MAT)) { - serializer = new DataSerializerMAT(deserializer.getQueue(), output); + serializer = new DataSerializerMAT(output); } else if (writer.equals(Writer.MAT_2D)) { - serializer = new DataSerializerMAT2D(deserializer.getQueue(), output); + serializer = new DataSerializerMAT2D(output); } else if (writer.equals(Writer.TXT)) { - serializer = new DataSerializerTXT(deserializer.getQueue(), output, false); + serializer = new DataSerializerTXT(output, false); } else if (writer.equals(Writer.TXT_2D)) { - serializer = new DataSerializerTXT2D(deserializer.getQueue(), output); + serializer = new DataSerializerTXT2D(output); } else if (writer.equals(Writer.TXT_SPLIT)) { - serializer = new DataSerializerTXTSplit(deserializer.getQueue(), output); + serializer = new DataSerializerTXTSplit(output); } else if (writer.equals(Writer.MDA)) { - serializer = new DataSerializerMDA(deserializer.getQueue(), output); + serializer = new DataSerializerMDA(output); } else if (writer.equals(Writer.MAT_2D_Z)) { - serializer = new DataSerializerMAT2DZigZag(deserializer.getQueue(), output); + serializer = new DataSerializerMAT2DZigZag(output); } else { throw new IllegalArgumentException("Writer of type " + writer + " not supported."); } + ebus.register(serializer); - // Convert file - deserializer.run(); - serializer.run(); + deserializer.read(); } catch (Exception e) { // Inform the user without waiting for its response diff --git a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleExecutionService.java b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleExecutionService.java index f92928d..6448b49 100644 --- a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleExecutionService.java +++ b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleExecutionService.java @@ -17,12 +17,11 @@ package ch.psi.fda.ui.ee; -import ch.psi.fda.aq.AcquisitionEngineConfiguration; import ch.psi.fda.ui.ee.api.ExecutionService; import ch.psi.fda.model.ModelManager; import ch.psi.fda.model.v1.Configuration; import ch.psi.fda.model.v1.Recipient; -import ch.psi.fda.notification.NotificationAgent; +import ch.psi.fda.aq.NotificationAgent; import java.io.File; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; @@ -42,7 +41,7 @@ import org.openide.util.lookup.ServiceProvider; * Very simple implementation of the execution service. * The service wraps the Acquisition object of the fda project * - * This service is not threadsave! + * This service is not thread save! * @author ebner */ @ServiceProvider(service=ExecutionService.class) @@ -166,7 +165,7 @@ public class SimpleExecutionService implements ExecutionService { @Override public void testNotification(String recipient) { - NotificationAgent a = new NotificationAgent(AcquisitionEngineConfiguration.getInstance().getSmptServer(), "fda.test.notification@psi.ch"); + NotificationAgent a = new NotificationAgent(ch.psi.fda.ui.ee.Configuration.getInstance().getConfiguration().getSmptServer(), "fda.test.notification@psi.ch"); Recipient r = new Recipient(); r.setValue(recipient); r.setError(true); @@ -178,7 +177,7 @@ public class SimpleExecutionService implements ExecutionService { @Override public boolean supportsFeature(String feature) { if(feature.equalsIgnoreCase("ch.psi.aq.feature.otfscan")){ - String prefix = AcquisitionEngineConfiguration.getInstance().getOtfChannelPrefix(); + String prefix = ch.psi.fda.ui.ee.Configuration.getInstance().getConfiguration().getOtfChannelPrefix(); if(prefix != null && !prefix.trim().equals("")){ return true; } diff --git a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleVisualizationService.java b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleVisualizationService.java index c14698b..2e98cea 100644 --- a/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleVisualizationService.java +++ b/fda.ui.ee/src/main/java/ch/psi/fda/ui/ee/SimpleVisualizationService.java @@ -16,14 +16,18 @@ */ package ch.psi.fda.ui.ee; +import ch.psi.fda.aq.VisualizationMapper; import ch.psi.fda.ui.ee.api.VisualizationService; import ch.psi.fda.deserializer.DataDeserializer; import ch.psi.fda.deserializer.DataDeserializerTXT; import ch.psi.fda.model.ModelManager; import ch.psi.fda.model.v1.Configuration; import ch.psi.fda.visualizer.Visualizer; +import com.google.common.eventbus.AsyncEventBus; +import com.google.common.eventbus.EventBus; import java.io.File; import java.util.List; +import java.util.concurrent.Executors; import java.util.logging.Level; import java.util.logging.Logger; import org.openide.DialogDisplayer; @@ -76,26 +80,24 @@ public class SimpleVisualizationService implements VisualizationService { throw new RuntimeException("Unable to load configuration file " + cfile.getAbsolutePath(), e); } - - DataDeserializer deserializer = new DataDeserializerTXT(file); + EventBus ebus = new AsyncEventBus(Executors.newSingleThreadExecutor()); + DataDeserializer deserializer = new DataDeserializerTXT(ebus, file); // Create Visualizer - Visualizer visualizer = new Visualizer(deserializer.getQueue(), c.getVisualization()); - visualizer.setTerminateAtEOS(true); + Visualizer visualizer = new Visualizer(VisualizationMapper.mapVisualizations(c.getVisualization())); +// visualizer.setTerminateAtEOS(true); visualizer.setUpdateAtStreamElement(false); visualizer.setUpdateAtStreamDelimiter(false); visualizer.setUpdateAtEndOfStream(true); + + ebus.register(visualizer); tc.updatePanel(visualizer.getPlotPanels()); // Start deserializer and visualizer - Thread td = new Thread(deserializer); - td.start(); - Logger.getLogger(SimpleVisualizationService.class.getName()).log(Level.INFO, "Visualization started"); + deserializer.read(); - visualizer.startVisualization(); - td.join(); Logger.getLogger(SimpleVisualizationService.class.getName()).log(Level.INFO, "Deserializiation finished"); // visualizer.visualize(); diff --git a/fda.ui.preferences/pom.xml b/fda.ui.preferences/pom.xml index e2091f8..4a0ceb6 100644 --- a/fda.ui.preferences/pom.xml +++ b/fda.ui.preferences/pom.xml @@ -4,7 +4,7 @@ fda.ui ch.psi - 1.1.40 + 2.0.1 fda.ui.preferences diff --git a/pom.xml b/pom.xml index 7a59476..afec881 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ ch.psi fda.ui - 1.1.40 + 2.0.1 pom fda.ui - NB App Parent