Commit 28c2d520 authored by ics's avatar ics
Browse files

Merge branch V3.1_182 into master

parent a3ad6204
3.1.10 DD/MM/YYYY
3.1.31 DD/MM/YYYY
------
* Fix bug in SettingsCommandBox: super method onExecutionPhaseState from CommandBoxPeer was not called from method with the same name in SWTSettingsCommandBoxPeer.
* Add Icon for Lss simulation
3.1.30 23/10/2018
------
* General management of the focus listener in command mode, in order to start modifications for B.Cubitt and E.Lelièvre requests about key listeners for arrow up and down.
* Undo modification in SWTPWidgetFactory (display problem in spy)
3.1.29 12/10/2018
------
* Do not consider tab title (on tab buttons) as a zoomable widget, as parent image does not grow up
* Fix bug in Alarms plugin (causes a NullPointerException on D11 - Sep 16 11:44:37 CEST 2018)
* Add a log message on Start about selected settings file and its content.
* Remove SWT code from non-SWT class (add an abstract class PlotImageItem to remove references to SWTPlotImageItem in MultiplotWindow)
* Order controller and property combo in generic command boxes.
* Remove escape default listener from AuthenticationPopup so that specific Nomad code is executed.
* Fix bug: in settings plugin, when switching from Edition to Execution state (and vice versa), setProperty method must be called also for PropertyComboFiller.
3.1.28 14/09/2018
------
* Fix bug: getSelection method from Tree class returns an empty array if not any TreeItem selected AND not null, so we must check array size instead of "!= null"
* (see crash on D16: Sep 6 13:49:01 CEST 2018 - RC183)
* Add icons for Notification and WatchDog
* Add logger tool
* Fix bug in parameter survey: move check on date range (< 7 days) in the code of the plot button.
3.1.27 04/09/2018
------
* Fix bug: In multiplot window, image file may be of wrong format if "under construction" => an SWTException is thrown
* See crashes which occur on Fipps and nomad-cea on 3rd and 4th september:
* Problem when creating new image:Plot#multiplot_z_data.0.47#ADCs 47///Invalid image
* java.lang.IllegalArgumentException: Argument not valid
* at fr.ill.ics.client.view.widget.plot.multiplotwindow.swt.SWTPlotImageCanvas$1.paintControl(SWTPlotImageCanvas.java:67)
3.1.26 30/08/2018
------
* Fix bug: sometimes minimum spacing style was not taken into account.
* Improve plots: When Axis in log mode, display log(z) on mouseover does not make sense, users want to know the real z value.
* Deprecated code since Java10.
3.1.25 18/06/2018
------
* Add Camera controller image
* Fix bugs around UndoState of properties: in DynamicComposite and in SettingsHelper
3.1.24 11/06/2018
------
* Fix bug reported by S.Prevost on D11 (10/06/2018): when a SpecialCollimationSettings is saved in an user's scan, when dropped the combo is not initialised:
* that's because "34.0" is stored in the XML file and "34.00" in valuesAndLabels map... ===> Remove trailing zeros before storing value
* Change some log messages level from warning to info.
3.1.23 30/05/2018
------
* Since modification of afterSwitchContainer method in ControllerPluginPeer to reduce number of calls to refresh method (see log of version 3.1.21 17/05/2018),
* some plugins with switchable composites were not correctly displayed at start.
* Remember previous state for button used as graphical switcher. Allows to restore more / less options button state.
3.1.22 18/05/2018
------
* Add debug message to fix bug happening in spies (NullPointerException in method containsSpyFamily(SpyHolder.java:148))
3.1.21 17/05/2018
------
* Fix bug on parameter survey: when day is changing and range is already 7-day wide, the message "You cannot select more than 7 days" keeps displaying in an infinite loop.
* The problem is fixed by increasing both from and to date when day changes.
* Add a condition on MainWindowPeer.refresh in method afterSwitchContainer (ControllerPluginPeer) to avoid multiple and useless refreshes.
3.1.20 19/04/2018
------
* Allow users to define 5 different ranges for a forloop (instead of 3 until now)
3.1.19 18/04/2018
------
* Fix bugs occuring sometimes on d22 / d17 / figaro...: a PropertyChangedEvent is triggered whereas the plot viewer has already been
* "terminated" (i.e. the method terminate() has been called). It causes a sequence of exceptions (NullPointerException, "WidgetIsDisposed"Exception, ...)
* => synchronise MaxiPlotViewer instance in plotDataChanged() method and terminate() method.
* Fix bug in SampleSequencer: when deleting a line from dynamiccomposite (by decreasing number of configurations) parent composite of simple images were not disposed.
3.1.18 12/04/2018
------
* Scan plot: optimization plots have the live size (current points and repeater). Avoid to plot points not measuring yet.
* Avoid crash: In SWTPlotAxis.computeTextWidth (axisComposite disposed...) (see crash on Salsa - 08/04/2018 - 09:36)
* Remove log messages (added in CommandLine shell to figure out the problem occurring on in22) because log files are really too big...
3.1.17 06/04/2018
------
* Fix bugs in Alarms plugin:
- Message "Warning not found" while the warning is not yet created
- Crash "NullPointerException" on Thales (ConditionsControllerSetupPlugin.createWarning)
- Increase commandbox content width (+8px)
* Added more control on the survey subscriber.
* Merged the clean-exit branch to improve the exit.
3.1.16 27/03/2018
------
* Add log messages in CommandLine shell to figure out the problem occurring on in22
* Change the way parameter survey works to avoid looping error box:
* - if to_date < from_date, dates are switched,
* - if date range is > 7 days, combos are cleared and plot is not updated if open,
* - if a date > today is entered, it is replaced with today.
* Method clear (SWTPlotAxis) was called twice in SWTLegendGradient
* Close statistic window when plot dimensions change (2D <--> 3D)
3.1.15 19/03/2018
------
* Merge with V3.1b: fix bug about settings command boxes.
3.1.14 14/03/2018
------
* Fix Bug: Remove forcing update global coordinates for projection cause zoom 1d not working
3.1.13 14/03/2018
-----
* Fix bug: command line substring.
3.1.12 13/03/2018
-----
* Fix Bug: Projection Y in 3d plot was wrong or black
3.1.11 13/03/2018
-----
* Change tab for deselected tab: tab grey was too close from background grey
* Fix bug: When plotPreferencesData.xml file does not exist, NumberFormatException in PlotPreferencesData.getHeight(PlotPreferencesData.java:93)
* Fix bug: Check that currentSelectedRoi is not null before calling deleteServerRoi method.
* Fix bug: Crash when deleting a for loop command box. Order of calls to the server was bad.
* Fix bug: When scrolling into command line history using up arrow a command ending with a carriage return is therefore automatically executed.
* Avoid crash: In Plot3DViewer.updatePlotLegend when viewState? or plotLegend? is null...
* Avoid unexpected behaviour: Settings command box in editor were changing server values!
3.1.10 28/02/2018
-----
* Fix bug: Spy one template size problem at some times (swt problem?). It didn't shown arrow + setpoint.
3.1.9 19/02/2018
-----
* Fix bug: Multiplot windows did pack on shell, that gave a bad window size
......
......@@ -37,6 +37,7 @@ TEMP_FILE2="$HOME/serverlog/tmp2.txt"
# Test arguments
if [ "$1" = "--debug" ]
then
# By default.
args="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
fi
......@@ -44,10 +45,10 @@ SYSTEMVERSION=`uname -a | grep x86_64`
if [ -n "$SYSTEMVERSION" ]
then
# 64 bits, we set the variable SWT_GTK3 here so that we can change it
java $args -DSWT_GTK3=0 -Djava.library.path=lib64/gtk:lib64/common/calculator:/usr/lib -Djava.util.logging.config.file=conf/client/logging.properties -jar lib64/nomadgui-gtk.linux.x86_64.jar $1 2> $TEMP_FILE 1>&2
java $args -DSWT_GTK3=0 -Djava.library.path=lib64/gtk:lib64/common/calculator:/usr/lib:/usr/lib:/usr/lib/x86_64-linux-gnu/jni -Djava.util.logging.config.file=conf/client/logging.properties -jar lib64/nomadgui-gtk.linux.x86_64.jar $1 2> $TEMP_FILE 1>&2
else
# 32 bits
java $args -DSWT_GTK3=0 -Djava.library.path=lib/gtk:lib/common/calculator:/usr/lib -Djava.util.logging.config.file=conf/client/logging.properties -jar lib/nomadgui-gtk.linux.x86.jar $1 2> $TEMP_FILE 1>&2
java $args -DSWT_GTK3=0 -Djava.library.path=lib/gtk:lib/common/calculator:/usr/lib:/usr/lib:/usr/lib/x86_64-linux-gnu/jni -Djava.util.logging.config.file=conf/client/logging.properties -jar lib/nomadgui-gtk.linux.x86.jar $1 2> $TEMP_FILE 1>&2
fi
STATUS=$?
......@@ -76,5 +77,3 @@ then
mail -s "[`hostname`][client] crash" nomad_l@ill.fr < $FILE
fi
fi
cmo kill nomadgui
......@@ -5,5 +5,5 @@
# DEBIAN
-Djava.library.path=lib64/common/calculator:/usr/lib
-Djava.library.path=lib64/common/calculator:/usr/lib:/usr/lib/x86_64-linux-gnu/jni
-Djava.util.logging.config.file=conf/client/logging.properties
\ No newline at end of file
......@@ -114,6 +114,7 @@ parameterSurveyDateCannotBeInTheFutureMessage=Date must be less or equal to
parameterSurveyFromDateMustBeBeforeToDateMessage="From" date must be less or equal to "To" date
parameterSurveyPropertyAlreadyInPlotMessage=This property has been already added !
parameterSurveyPropertyAlreadyInPlotTitle=Error
parameterSurveyCannotForeseeFutureMessage=Nomad does not offer the ability to foresee the future yet!
parameterSurveyMaximum7DaysMessage=You cannot select more than 7 days
notDraggableBecauseNoStartCommandExistsMessage=WARNING: No start command exists for controller
errorOccurredInCommandZoneTitle=Error occurred
......@@ -146,7 +147,6 @@ serverErrorConsoleResizeButtonToolTip=Adjust message column width
serverErrorConsoleCloseButtonToolTip=Close window
instrumentSettingsPluginSaveButtonToolTip=Apply changes
plotFullViewButtonToolTip=Show 100% of the plot
plotSaveImageButtonToolTip=Save plot as an image
plotExportButtonToolTip=Export data as ASCII format
plot3DSwitchToSurfaceViewButtonToolTip=Show ortho view
plot3DSwitchToOrthoViewButtonToolTip=Show surface view
......@@ -258,4 +258,11 @@ cameoUnableToStartSimulationServerMessage=Timeout while starting simulation serv
cameoErrorTitle=Error
cameoStartingSimulationServerMessage=Starting simulation server with Cameo...
fileNotFoundMessage=File not found:
\ No newline at end of file
fileNotFoundMessage=File not found:
# logger
loggerUserNameRequiredMessage=Name is required.
loggerMessageRequiredMessage=A log message is required.
loggerSureYouWantToCancelLogMessage=Are you sure you want to cancel your log message ?
maintenancePropertiesNotFoundMessage=Maintenance properties not found!
maintenanceControllerNotPresentMessage=Maintenance controller not configured!
\ No newline at end of file
......@@ -70,6 +70,8 @@ ppp,3,command
racer,5,command
coll5,5,command
rafin,5,command
kco,3,command
magfin,4,command
for,3,keyword
endfor,6,keyword
break,5,keyword
......
......@@ -86,7 +86,7 @@ logImagesDirectory=logImagesDirectory
imageGenerationFrequency=1000
#Rendering mode
renderingMode=5
renderingMode=0
#Maximum data size used for VBO smooth rendering mode (xSize * ySize)
maximumDataSize=9000000
......
......@@ -35,6 +35,8 @@ menu.view.logs=&Logs
menu.view.multiplot=&Multiplot window
menu.view.imageViewer=Image &viewer
menu.view.configurationErrors=Configuration errors
menu.view.logger=Logger tool
menu.command.newEditor=&New Editor
menu.command.saveEditor=&Save Editor
menu.command.saveLaunchPad=&Save Launch pad
......@@ -360,7 +362,7 @@ conditionsExpressionLabel=Condition
conditionsMailLabel=Mail to
conditionsSmsLabel=Send a SMS to
conditionsMessageLabel=Message
conditionsTriggerGeneralStopLabel=Stop command zone
conditionsTriggerGeneralStopLabel=Stop launch pad
conditionsActionLabel=Action
conditionsOnLabel=On
conditionsOffLabel=Off
......@@ -499,6 +501,7 @@ plotToolItem.cutImageToolTip=Cut image
plotToolItem.savePlotImageToolTip=Save plot as an image
plotToolItem.savePlotTextToolTip=Save plot information as text
plotToolItem.aspectRatioToolTip=Activate / Deactivate ratio aspect
plot.autoContrastLabel=Auto contrast
temperature.celsiusValue=C
temperature.celsiusLabel=~degreeC
......@@ -508,4 +511,16 @@ temperature.kelvinLabel=K
fileNamePrefix=File name:
textViewerTitle=Text viewer
textViewerPrintButton=Print
textViewerPDFButton=Save as PDF
\ No newline at end of file
textViewerPDFButton=Save as PDF
# Logger window
loggerWindowTitle=Logger
loggerTitle=Keep trace of an event occurring on
userNamePrefix=Name
loggerMessageInfo=Describe your intervention in the box below:
loggerOKButton=Save log message
loggerCancelButton=Cancel log message
loggerErrorTitleMessage=Save log message
otherUser=-- Other --
selectUser=-- Select a name --
\ No newline at end of file
......@@ -12,6 +12,7 @@ AXISSELECTOR=axis
BARRILET=barriletFaiseau
BATH_AND_HUMIDITY=bathAndHumidity
BEAM_PARAMETERS=beamParameters
CAMERA=camera
CALIBRATION=callibration
CHOPPER=chopper
CHOPPERS=choppers
......@@ -44,6 +45,7 @@ KF=kf
KI=ki
LASER=laser
LEVEL=level
LSS_SIMULATION=lss_simulation
MAGNET=magnet
METER=meter
MANOMETER=meter
......@@ -52,6 +54,7 @@ MONOCHROMATOR=monochromator
MOSAIC=mosaic
MULTIPLE_AXIS=multipleAxis
NEUTRON=neutron
NOTIFICATION=notification
PEAKSEARCH=peakSearch
PH=ph
PHASE=phase
......
......@@ -26,7 +26,7 @@ handlers= java.util.logging.FileHandler
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level=WARNING
.level=INFO
############################################################
# Handler specific properties.
......
......@@ -4,10 +4,11 @@
<item key="menu.file.quit" action="fr.ill.ics.client.view.menu.QuitAction" accelerator="q"/>
</menu>
<menu key="menu.view">
<item key="menu.view.logs" check="true" action="fr.ill.ics.client.view.menu.ShowHideLogsAction" accelerator="l"/>
<item key="menu.view.logs" action="fr.ill.ics.client.view.menu.ShowHideLogsAction" accelerator="l"/>
<item key="menu.view.multiplot" check="true" action="fr.ill.ics.client.view.menu.ShowHideMultiPlotAction" accelerator="m"/>
<item key="menu.view.imageViewer" action="fr.ill.ics.client.view.menu.OpenImageViewerAction" accelerator="w" instruments="gamma33,gamma26,d9,d19,ssci7,thales,gamma15"/>
<item key="menu.view.configurationErrors" action="fr.ill.ics.client.view.menu.ShowConfigurationErrorsAction"/>
<item key="menu.view.logger" action="fr.ill.ics.client.view.menu.OpenLoggerAction"/>
</menu>
<menu key="menu.hardware">
<item key="menu.hardware.pause" check="true" action="fr.ill.ics.client.view.menu.HardwarePauseAction" accelerator="p"/>
......
......@@ -36,3 +36,7 @@ UTILITIES_IMAGE_VIEWER_CONTROLLER=utilities_image_viewer
UTILITIES_IMAGE_VIEWER_CONTENT_PROPERTY=content
UTILITIES_IMAGE_VIEWER_SIZE_PROPERTY=size
UTILITIES_IMAGE_VIEWER_TYPE_PROPERTY=type
MAINTENANCE_CONTROLLER=maintenance
MAINTENANCE_NAME_PROPERTY=name
MAINTENANCE_MESSAGE_PROPERTY=message
\ No newline at end of file
......@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>fr.ill.ics</groupId>
<artifactId>nomadgui</artifactId>
<version>3.1.10-SNAPSHOT</version>
<version>3.1.30</version>
<name>NomadGUI</name>
<description>Graphical user interface for Nomad</description>
<scm>
......@@ -132,12 +132,31 @@
<artifactId>jogl-all-main</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>fr.ill.ics</groupId>
<artifactId>nomadcommandsystem</artifactId>
<version>3.1.4-SNAPSHOT</version>
<version>3.1.9</version>
</dependency>
<dependency>
<groupId>fr.ill.ics</groupId>
<artifactId>nomadlogsgui</artifactId>
<version>0.0.1</version>
</dependency>
<!-- **************************************************************** JFACE ****************************************************************
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.jface</artifactId>
<version>3.14.0</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt</artifactId>
</exclusion>
</exclusions>
</dependency>
******************************************************************************************************************************************* -->
</dependencies>
<build>
......
......@@ -15,7 +15,6 @@
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*/
package fr.ill.ics.client.control;
import java.io.BufferedWriter;
......@@ -35,10 +34,14 @@ import fr.ill.ics.bridge.LoginManager;
import fr.ill.ics.bridge.command.CommandZoneWrapper;
import fr.ill.ics.bridge.commandline.CommandLineProxyWrapper;
import fr.ill.ics.cameo.Application;
import fr.ill.ics.cameo.Application.Instance;
import fr.ill.ics.cameo.Server;
import fr.ill.ics.client.control.admin.AdministratorLogin;
import fr.ill.ics.client.control.command.CommandWindow;
import fr.ill.ics.client.control.command.commandline.CommandLine;
import fr.ill.ics.client.control.command.navigation.button.TabButton;
import fr.ill.ics.client.control.login.Authentication;
import fr.ill.ics.client.control.login.ServerConnection;
import fr.ill.ics.client.control.login.UserConnection;
import fr.ill.ics.client.control.plugin.selection.CommandsSelectionPlugin;
import fr.ill.ics.client.control.plugin.selection.HardwareSelectionPlugin;
......@@ -65,6 +68,10 @@ import fr.ill.ics.util.exception.ParticularWidgetNotFoundException;
import fr.ill.ics.util.exception.PropertyNotFoundException;
public class MainWindow {
private final static String NOMADLOGS_APPLICATION_NAME = "nlogs";
private final static int MAX_SECONDS = 15;
private final static String NOMAD_ADMINISTRATOR = "nomadAdministrator";
private final static String serverExceptionsDirectory = ConfigManager.NOMAD_CLIENT_FILES + ConfigManager.FILE_SEPARATOR + "log" + ConfigManager.FILE_SEPARATOR + ".server";
......@@ -100,17 +107,24 @@ public class MainWindow {
private int serverIdCounter = 0;
private static boolean useNomadLogs = false;
private Authentication authentication;
private SelectionPlugin selectionPluginBeforeAdminLogin;
private Server cameoServer;
private Instance nomadLogsInstance;
/**
* @param args
*/
public static void main(String[] args) {
int exitCode = 0;
try {
for (int i = 0; i < args.length; i++) {
if (args[i].equals("-testEvents")) {
......@@ -122,36 +136,36 @@ public class MainWindow {
}
/*
int mb = 1024*1024;
//Getting the runtime reference from system
Runtime runtime = Runtime.getRuntime();
System.out.println("##### Heap utilisation statistics [MB] #####");
//Print used memory
System.out.println("Used Memory:"
+ (runtime.totalMemory() - runtime.freeMemory()) / mb);
//Print free memory
System.out.println("Free Memory:"
+ runtime.freeMemory() / mb);
//Print total available memory
System.out.println("Total Memory:" + runtime.totalMemory() / mb);
//Print Maximum available memory
System.out.println("Max Memory:" + runtime.maxMemory() / mb);
*/
MainWindow.getInstance().init();
if (testConfig) {
TestClientConfiguration.getInstance().run();
if (ConfigManager.CONFIGURATION_ERROR) {
throw new ExitException(-1);
}
throw new ExitException(0);
} else {
boolean isAdministrator = false;
try {
......@@ -163,24 +177,33 @@ public class MainWindow {
AdministratorLogin.getInstance().setIsLogged(true);
MainWindow.getInstance().onAdministratorLogin();
}
MainWindow.getInstance().run();
}
} catch (ExitException e) {
System.out.println("Exit exception");
exitCode = e.getExitCode();
System.out.println("Exiting with code " + exitCode);
} catch (Exception e) {
} catch (Throwable e) {
System.err.println("Unexpected exception");
e.printStackTrace();
} finally {
System.out.println("Resetting Cameo application");
MainWindow.getInstance().reset();
System.out.println("Terminating Cameo application");
Application.This.terminate();
System.out.println("Terminated Cameo application");
}
System.out.println("Exiting with code " + exitCode);
// Get out with exit code.
System.exit(exitCode);
}
......@@ -202,11 +225,11 @@ public class MainWindow {
ConfigManager.initInstance();
String[] cameoArgs = {ConfigManager.getInstance().getServerEndpoint() + ":nomadgui"};
Application.This.init(cameoArgs);
ServerInstance.getInstance().init();
// Create logs directory if it doesn't exist
File logsDirectory = new File(ConfigManager.getInstance().getString("logsDirectory"));
if (!logsDirectory.exists()) {
......@@ -232,6 +255,13 @@ public class MainWindow {
}
MainWindowPeer.getInstance().enableMenuItem("menu.view.configurationErrors", false);
MainWindowPeer.getInstance().enableMenuItem("menu.view.logger", false);
try {
useNomadLogs = Boolean.valueOf(ConfigManager.getInstance().getPreferenceValue(ConfigManager.USE_NOMADLOGS));
} catch (Exception e) {
useNomadLogs = false;
}
boolean isCommandLineMode = Boolean.valueOf(ConfigManager.getInstance().getPreferenceValue(ConfigManager.LAUNCH_PAD_TEXT_MODE));
if (isCommandLineMode) {
......@@ -275,7 +305,7 @@ public class MainWindow {
e.printStackTrace();
writer.close();
throw new ExitException(-1);
} catch (IOException ioe) {
ioe.printStackTrace();
}
......@@ -397,12 +427,28 @@ public class MainWindow {
public void onExit() throws ExitException {
System.out.println("Logging out of server");
CommandWindow.getInstance().stopRunningSimulationServers(); // simulation servers (if any...)
CommandZoneWrapper.getInstance(CommandZoneWrapper.SERVER_ID).release(); // real server
LoginManager.getInstance().logout(CommandZoneWrapper.SERVER_ID);
throw new ExitException(0);
}
private void reset() {
System.out.println("Trying to reset tabs");
// Do not kill the simulation servers directly but calling onReset that resets the Cameo objects.
if (CommandWindow.getInstance().getNavigationBar() != null) {
ArrayList<TabButton> copy = new ArrayList<TabButton>(CommandWindow.getInstance().getNavigationBar().getTabs());
for (TabButton b : copy) {
b.onReset();
}
}
System.out.println("Reset tabs");
CommandZoneWrapper.getInstance(CommandZoneWrapper.SERVER_ID).release();
LoginManager.getInstance().logout(CommandZoneWrapper.SERVER_ID);
}
public void goToNode(String selectionPluginId, String nodeName) {
SelectionPlugin selectionPlugin = null;
......@@ -638,6 +684,7 @@ public class MainWindow {
}
public void onAdministratorLogout() {
if (currentSelectionPlugin == hardwareSelectionPlugin) {
selectionPluginBeforeAdminLogin.selectButton();
}
......@@ -673,6 +720,58 @@ public class MainWindow {
public void onParticularWidgetNotFoundException(ParticularWidgetNotFoundException e) {
//DialogManager.getInstance().onConfigurationException(e);
}
public static boolean useNomadLogs() {
return useNomadLogs;
}
public void startNomadLogs() {
System.out.println("Starting NomadLogs with Cameo");
if (cameoServer == null) {
String nomadServerLocation = ConfigManager.getInstance().getNomadServerEndpoint();
if (nomadServerLocation != null) {
cameoServer = new Server(nomadServerLocation);
}
}
if (cameoServer != null) {
nomadLogsInstance = cameoServer.start(NOMADLOGS_APPLICATION_NAME);
if (nomadLogsInstance.exists()) {
System.out.println("Starting " + nomadLogsInstance);
String serverId = nomadLogsInstance.getId()+"";
boolean nomadLogsIsLaunched;