This is an automated email from the git hooks/post-receive script. New commit to branch feature/8405_migration_mode_serveur in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit d519e37f45520253509fa3e2fcc2e259e128bca8 Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Tue Jul 26 17:10:08 2016 +0200 Migrate Server Mode UI refs #8405 --- observe-application-swing/pom.xml | 6 ++ .../observe/ObserveSwingApplicationContext.java | 25 +++++++ .../fr/ird/observe/ui/ObserveMainUIHandler.java | 4 -- .../observe/ui/actions/StartH2WebServerAction.java | 18 +++-- .../observe/ui/actions/StartServerModeAction.java | 78 ++++++++++++---------- .../observe/ui/actions/StopH2WebServerAction.java | 12 ++-- .../observe/ui/actions/StopServerModeAction.java | 24 ++++--- 7 files changed, 103 insertions(+), 64 deletions(-) diff --git a/observe-application-swing/pom.xml b/observe-application-swing/pom.xml index 4726437..9549daf 100644 --- a/observe-application-swing/pom.xml +++ b/observe-application-swing/pom.xml @@ -249,6 +249,12 @@ <artifactId>jxlayer</artifactId> </dependency> + <!-- persistence --> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + </dependency> + <!-- FreeMarker --> <dependency> <groupId>org.freemarker</groupId> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java index 3ecc245..d8d1edb 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ObserveSwingApplicationContext.java @@ -90,6 +90,7 @@ import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.CardLayout2; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.h2.tools.Server; import javax.swing.ActionMap; import javax.swing.JOptionPane; @@ -203,6 +204,14 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im public static final JAXXContextEntryDef<List<String>> NODE_TO_RESELECT_ENTRY_DEF = UIHelper.newListContextEntryDef("nodeToReselect"); + /** the jaxx context entry to store the h2 server instance when the application switched to server mode */ + public static final JAXXContextEntryDef<Server> H2_SERVER_ENTRY_DEF = + JAXXUtil.newContextEntryDef(Server.class); + + /** the jaxx context entry to store the h2 webserver instance when the application switched to server mode */ + public static final JAXXContextEntryDef<Server> H2_WEBSERVER_ENTRY_DEF = + JAXXUtil.newContextEntryDef(Server.class); + protected final ReferenceBinderEngine referenceBinderEngine = new ReferenceBinderEngineSupplier().get(); public ObserveSwingApplicationConfig getConfig() { @@ -925,6 +934,22 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im return dataSource; } + public Server getH2Server() { + return H2_SERVER_ENTRY_DEF.getContextValue(this); + } + + public void setH2Server(Server server) { + H2_SERVER_ENTRY_DEF.setContextValue(this, server); + } + + public Server getH2WebServer() { + return H2_WEBSERVER_ENTRY_DEF.getContextValue(this); + } + + public void setH2WebServer(Server server) { + H2_WEBSERVER_ENTRY_DEF.setContextValue(this, server); + } + protected void sanitizeOpenIds(String[] ids) { if (ids != null) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java index 4bdcd19..11a72cd 100755 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUIHandler.java @@ -76,10 +76,6 @@ public class ObserveMainUIHandler { /** Logger */ static private Log log = LogFactory.getLog(ObserveMainUIHandler.class); - public static final String H2_SERVER = "server"; - - public static final String H2_WEB_SERVER = "webServer"; - public void changeNavigationNode(ObserveMainUI ui, TreeSelectionEvent event) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartH2WebServerAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartH2WebServerAction.java index d3cc916..140a92a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartH2WebServerAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartH2WebServerAction.java @@ -22,11 +22,13 @@ package fr.ird.observe.ui.actions; * #L% */ +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.h2.tools.Server; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; @@ -74,13 +76,15 @@ public class StartH2WebServerAction extends AbstractAction { try { - //FIXME -// Server server = Server.createWebServer("-webAllowOthers"); -// server.start(); -// -// Server.openBrowser(server.getURL()); -// -// ui.setContextValue(server, ObserveMainUIHandler.H2_WEB_SERVER); + Server server = Server.createWebServer("-webAllowOthers"); + server.start(); + + Server.openBrowser(server.getURL()); + + // On mémorise l'instance du server dans le contexte applicatif afin de pouvoir la récupérer plus tard, + // par exemple lorsque l'on souhaitera arrêter le server. + ObserveSwingApplicationContext.get().setH2WebServer(server); + ui.setH2WebServer(true); } catch (Exception e) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java index 2d36f0a..5ee4398 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StartServerModeAction.java @@ -22,16 +22,21 @@ package fr.ird.observe.ui.actions; * #L% */ +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.ui.ObserveMainUI; +import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUIMode; import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.ErrorDialogUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.h2.tools.Server; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; import java.io.File; +import java.sql.SQLException; import static org.nuiton.i18n.I18n.t; @@ -79,42 +84,43 @@ public class StartServerModeAction extends AbstractAction { ui.setMode(ObserveUIMode.SERVER); - //FIXME -// try { -// -// Server server = Server.createTcpServer("-tcp", -// "-tcpAllowOthers", -// "-ifExists", -// "-baseDir", dbDirectory.getAbsolutePath(), -// "-tcpDaemon", -// "-tcpPort", -// String.valueOf(port)); -// -// String url = String.format(ObserveMainUIHandler.H2_SERVER_URL_PATTERN, -// server.getURL(), -// dbDirectory.getAbsolutePath()); -// -// server.start(); -// if (log.isInfoEnabled()) { -// log.info("server starts at " + url); -// } -// -// String text = t("observe.message.server.info", dbDirectory); -// ui.getServerModeInfo().setText(text); -// -// ui.getServerModeURL().setText(url); -// ui.getServerModeLogin().setText(h2Login); -// ui.getServerModePassword().setText(h2Password); -// -// ui.setContextValue(server, ObserveMainUIHandler.H2_SERVER); -// -// } catch (SQLException e) { -// -// if (log.isErrorEnabled()) { -// log.error("Could not start h2 server ", e); -// } -// ErrorDialogUI.showError(e); -// } + try { + + Server server = Server.createTcpServer("-tcp", + "-tcpAllowOthers", + "-ifExists", + "-baseDir", dbDirectory.getAbsolutePath(), + "-tcpDaemon", + "-tcpPort", + String.valueOf(port)); + + String url = String.format(ObserveMainUIHandler.H2_SERVER_URL_PATTERN, + server.getURL(), + dbDirectory.getAbsolutePath()); + + server.start(); + if (log.isInfoEnabled()) { + log.info("server starts at " + url); + } + + String text = t("observe.message.server.info", dbDirectory); + ui.getServerModeInfo().setText(text); + + ui.getServerModeURL().setText(url); + ui.getServerModeLogin().setText(h2Login); + ui.getServerModePassword().setText(h2Password); + + // On mémorise l'instance du server dans le contexte applicatif afin de pouvoir la récupérer plus tard, + // par exemple lorsque l'on souhaitera arrêter le server. + ObserveSwingApplicationContext.get().setH2Server(server); + + } catch (SQLException e) { + + if (log.isErrorEnabled()) { + log.error("Could not start h2 server ", e); + } + ErrorDialogUI.showError(e); + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopH2WebServerAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopH2WebServerAction.java index f405b8b..6e19bf8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopH2WebServerAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopH2WebServerAction.java @@ -22,11 +22,12 @@ package fr.ird.observe.ui.actions; * #L% */ +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ui.ObserveMainUI; -import fr.ird.observe.ui.ObserveMainUIHandler; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.h2.tools.Server; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; @@ -65,11 +66,10 @@ public class StopH2WebServerAction extends AbstractAction { log.info("Will stop web server mode..."); } - //FIXME -// Server server = ui.getContextValue(Server.class, ObserveMainUIHandler.H2_WEB_SERVER); -// if (server != null) { -// server.stop(); -// } + Server server = ObserveSwingApplicationContext.get().getH2WebServer(); + if (server != null) { + server.stop(); + } ui.setH2WebServer(false); } else { if (log.isWarnEnabled()) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopServerModeAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopServerModeAction.java index aa0311b..9ed7c8d 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopServerModeAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/actions/StopServerModeAction.java @@ -22,12 +22,13 @@ package fr.ird.observe.ui.actions; * #L% */ +import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.ui.ObserveMainUI; -import fr.ird.observe.ui.ObserveMainUIHandler; import fr.ird.observe.ui.ObserveUIMode; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.h2.tools.Server; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; @@ -64,11 +65,12 @@ public class StopServerModeAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("Will stop server mode..."); } - //FIXME -// Server server = ui.getContextValue(Server.class, ObserveMainUIHandler.H2_SERVER); -// if (server != null) { -// server.stop(); -// } + + Server server = ObserveSwingApplicationContext.get().getH2Server(); + + if (server != null) { + server.stop(); + } ui.setMode(ObserveUIMode.NO_DB); if (ui.isH2WebServer()) { @@ -85,11 +87,11 @@ public class StopServerModeAction extends AbstractAction { if (log.isInfoEnabled()) { log.info("Will stop web server mode..."); } - //FIXME -// Server server = ui.getContextValue(Server.class, ObserveMainUIHandler.H2_WEB_SERVER); -// if (server != null) { -// server.stop(); -// } + + Server server = ObserveSwingApplicationContext.get().getH2WebServer(); + if (server != null) { + server.stop(); + } ui.setH2WebServer(false); } else { if (log.isWarnEnabled()) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.