From 068fe844e6ea29cffa702cf109008e050aa3cde3 Mon Sep 17 00:00:00 2001 From: hzzz Date: Fri, 8 Jun 2018 13:38:34 +0800 Subject: [PATCH 1/4] env --- .../src/com/fr/start/module/DesignerModuleActivator.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java b/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java index 2855a45f4f..a32ba54b2e 100644 --- a/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java +++ b/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java @@ -1,5 +1,6 @@ package com.fr.start.module; +import com.fr.common.rpc.netty.RemoteCallClient; import com.fr.design.mainframe.loghandler.socketio.DesignerSocketIO; import com.fr.design.module.DesignerModule; import com.fr.general.ModuleContext; @@ -19,6 +20,7 @@ public class DesignerModuleActivator extends Activator implements Prepare { ModuleContext.startModule(DesignerModule.class.getName()); DesignerSocketIO.init(); + RemoteCallClient.getInstance(); } @Override From 5219c6e0d2ba2530fe4c5bd0ea02dc6b062f487c Mon Sep 17 00:00:00 2001 From: hzzz Date: Fri, 8 Jun 2018 13:49:10 +0800 Subject: [PATCH 2/4] env --- designer-base/src/com/fr/env/RemoteEnv.java | 76 ++++++--------------- 1 file changed, 20 insertions(+), 56 deletions(-) diff --git a/designer-base/src/com/fr/env/RemoteEnv.java b/designer-base/src/com/fr/env/RemoteEnv.java index ffb42c122b..2fbd34d417 100644 --- a/designer-base/src/com/fr/env/RemoteEnv.java +++ b/designer-base/src/com/fr/env/RemoteEnv.java @@ -8,7 +8,6 @@ import com.fr.base.remote.RemoteDeziConstants; import com.fr.common.rpc.RemoteCallServerConfig; import com.fr.common.rpc.netty.MessageSendExecutor; import com.fr.common.rpc.netty.RemoteCallClient; -import com.fr.core.env.EnvConstants; import com.fr.core.env.EnvContext; import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.data.TableDataSource; @@ -27,7 +26,6 @@ import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.general.LogRecordTime; import com.fr.general.LogUtils; -import com.fr.general.http.HttpToolbox; import com.fr.io.utils.ResourceIOUtils; import com.fr.json.JSONArray; import com.fr.json.JSONObject; @@ -39,18 +37,15 @@ import com.fr.stable.ArrayUtils; import com.fr.stable.EncodeConstants; import com.fr.stable.Filter; import com.fr.stable.JavaCompileInfo; -import com.fr.stable.ProductConstants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.SvgProvider; import com.fr.stable.file.XMLFileManagerProvider; import com.fr.stable.project.ProjectConstants; import com.fr.stable.xml.XMLTools; -import com.fr.third.guava.base.Strings; -import com.fr.third.guava.collect.ImmutableMap; import com.fr.web.ResourceConstants; -import javax.swing.*; +import javax.swing.JOptionPane; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; @@ -58,7 +53,7 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import java.awt.*; +import java.awt.Component; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -75,8 +70,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import static com.fr.third.guava.base.Preconditions.checkArgument; - /** * @author null */ @@ -217,7 +210,13 @@ public class RemoteEnv extends AbstractEnv implements DesignAut * @throws Exception 异常 */ public boolean testServerConnection() throws Exception { - return testConnection(true, true, DesignerContext.getDesignerFrame()); + try { + connectOnce(); + return true; + } catch (Exception e) { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Datasource-Connection_failed")); + return false; + } } /** @@ -228,7 +227,12 @@ public class RemoteEnv extends AbstractEnv implements DesignAut */ @Override public boolean testServerConnectionWithOutShowMessagePane() throws Exception { - return testConnection(false, true, DesignerContext.getDesignerFrame()); + try { + connectOnce(); + return true; + } catch (Exception e) { + return false; + } } /** @@ -239,55 +243,15 @@ public class RemoteEnv extends AbstractEnv implements DesignAut * @throws Exception 异常 */ public boolean testConnectionWithOutRegisteServer(Component messageParentPane) throws Exception { - return testConnection(true, false, messageParentPane); - } - - - private boolean testConnection(boolean needMessage, boolean isRegisteServer, Component parentComponent) throws Exception { - checkArgument(parentComponent instanceof Component, "parentComponent should be a java.awt.component"); - Component component = parentComponent; - String url = String.format("%s/connection", EnvConstants.toDecisionPath(getPath())); - ImmutableMap params = ImmutableMap.of( - "version", (Object) ProductConstants.DESIGNER_VERSION - ); - ImmutableMap headers = ImmutableMap.of( - EnvConstants.USERNAME, getUser(), - EnvConstants.PWD, getPassword()); - String res = HttpToolbox.post(url, params, headers); - if (Strings.isNullOrEmpty(res)) { - if (needMessage) { - JOptionPane.showMessageDialog(component, Inter.getLocText("Datasource-Connection_failed")); - } - return false; - } else if (ComparatorUtils.equals(res, "true")) { + try { + connectOnce(); return true; - } else { - if (ComparatorUtils.equals(res, EnvConstants.AUTH_ERROR)) { - JOptionPane.showMessageDialog(component, - Inter.getLocText(new String[]{"Datasource-Connection_failed", "Registration-User_Name", "Password", "Error"}, new String[]{",", "", "", "!"}) - , Inter.getLocText("FR-Server-All_Error"), JOptionPane.ERROR_MESSAGE); - return false; - } else { - if (ComparatorUtils.equals(res, EnvConstants.WAR_ERROR)) { - if (needMessage) { - JOptionPane.showMessageDialog(component, Inter.getLocText(new String[]{"Datasource-Connection_failed", "NS-war-remote"}, new String[]{",", "!"})); - } else { - FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Datasource-Connection_failed", "NS-war-remote"}, new String[]{",", "!"})); - } - return false; - } else { - if (needMessage) { - JOptionPane.showMessageDialog(component, Inter.getLocText("Datasource-Connection_failed")); - } else { - FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Datasource-Connection_failed", "Version-does-not-support"}, new String[]{",", "!"})); - } - return false; - } - } + } catch (Exception e) { + JOptionPane.showMessageDialog(messageParentPane, Inter.getLocText("Datasource-Connection_failed")); + return false; } } - private void refreshHttpSProperty() { if (getPath().startsWith(HTTPS_PREFIX) && System.getProperty(CERT_KEY) == null) { DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); From ed0a5118faaa72345285ad9f5454cdc725e00d12 Mon Sep 17 00:00:00 2001 From: hzzz Date: Fri, 8 Jun 2018 16:57:15 +0800 Subject: [PATCH 3/4] env --- designer-base/src/com/fr/env/SignIn.java | 27 ++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/designer-base/src/com/fr/env/SignIn.java b/designer-base/src/com/fr/env/SignIn.java index 902acdaf19..b76c67853a 100644 --- a/designer-base/src/com/fr/env/SignIn.java +++ b/designer-base/src/com/fr/env/SignIn.java @@ -1,9 +1,15 @@ package com.fr.env; +import com.fr.base.operator.connect.ConnectOperator; +import com.fr.common.rpc.RemoteCallServerConfig; +import com.fr.common.rpc.netty.RemoteCallClient; +import com.fr.common.rpc.serialize.SerializeProtocol; import com.fr.core.env.EnvConfig; import com.fr.core.env.EnvContext; import com.fr.core.env.EnvEvent; +import com.fr.core.env.proxy.EnvMessageSendProxy; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.design.mainframe.DesignerContext; import com.fr.design.utils.DesignUtils; import com.fr.event.Event; @@ -12,8 +18,9 @@ import com.fr.event.Listener; import com.fr.event.Null; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.third.guava.reflect.Reflection; -import javax.swing.*; +import javax.swing.JOptionPane; public class SignIn { @@ -34,10 +41,26 @@ public class SignIn { * @throws Exception 异常 */ public static void signIn(EnvConfig selectedEnv) throws Exception { - + SerializeProtocol serializeProtocol = RemoteCallServerConfig.getInstance().getSerializeProtocol(); + if (EnvContext.currentEnv() != null && !ComparatorUtils.equals(EnvContext.currentEnv(), selectedEnv)) { EnvContext.signOut(); } + if (selectedEnv instanceof RemoteEnvConfig) { + RemoteCallClient.getInstance().load( + ((RemoteEnvConfig) selectedEnv).getHost(), + ((RemoteEnvConfig) selectedEnv).getPort(), + serializeProtocol); + } DesignUtils.switchToEnv(selectedEnv); } + + public static void main(String[] args) { + RemoteCallClient.getInstance().load( + "127.0.0.1", + 39999, + SerializeProtocol.KRYOSERIALIZE); + ConnectOperator connectOperator = Reflection.newProxy(ConnectOperator.class, new EnvMessageSendProxy()); + connectOperator.connect("1", "1"); + } } \ No newline at end of file From ef411f86d0f038e02d95e11cd1bdb04365152f43 Mon Sep 17 00:00:00 2001 From: hzzz Date: Fri, 15 Jun 2018 09:19:45 +0800 Subject: [PATCH 4/4] env --- designer-base/src/com/fr/env/RemoteEnv.java | 87 +++++++++++++++------ 1 file changed, 61 insertions(+), 26 deletions(-) diff --git a/designer-base/src/com/fr/env/RemoteEnv.java b/designer-base/src/com/fr/env/RemoteEnv.java index 1e76a6ac78..d5b10071d9 100644 --- a/designer-base/src/com/fr/env/RemoteEnv.java +++ b/designer-base/src/com/fr/env/RemoteEnv.java @@ -9,6 +9,7 @@ import com.fr.base.remote.RemoteDeziConstants; import com.fr.common.rpc.RemoteCallServerConfig; import com.fr.common.rpc.netty.MessageSendExecutor; import com.fr.common.rpc.netty.RemoteCallClient; +import com.fr.core.env.EnvConstants; import com.fr.core.env.EnvContext; import com.fr.data.impl.storeproc.StoreProcedure; import com.fr.dav.AbstractEnv; @@ -22,7 +23,6 @@ import com.fr.general.ComparatorUtils; import com.fr.general.EnvProxyFactory; import com.fr.general.IOUtils; import com.fr.general.Inter; - import com.fr.general.http.HttpToolbox; import com.fr.io.utils.ResourceIOUtils; import com.fr.json.JSONArray; @@ -34,18 +34,16 @@ import com.fr.share.ShareConstants; import com.fr.stable.ArrayUtils; import com.fr.stable.EncodeConstants; import com.fr.stable.Filter; - import com.fr.stable.ProductConstants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.SvgProvider; import com.fr.stable.project.ProjectConstants; - import com.fr.third.guava.base.Strings; import com.fr.third.guava.collect.ImmutableMap; import com.fr.web.ResourceConstants; -import javax.swing.JOptionPane; +import javax.swing.*; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; @@ -53,7 +51,6 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; - import java.awt.*; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -68,6 +65,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import static com.fr.third.guava.base.Preconditions.checkArgument; + /** * @author null */ @@ -109,15 +108,15 @@ public class RemoteEnv extends AbstractEnv implements DesignAut MessageSendExecutor.getInstance().stop(); return true; } - + @Override public EnvProxyFactory getProxyFactory() { - + return new EnvProxyFactory() { - + @Override public T get(Class clazz, T obj) { - + assert clazz != null; try { return MessageSendExecutor.getInstance().execute(clazz); @@ -127,10 +126,10 @@ public class RemoteEnv extends AbstractEnv implements DesignAut } }; } - + @Override public FileOperator getFileOperator() throws Exception { - + return MessageSendExecutor.getInstance().execute(FileOperator.class); } @@ -143,7 +142,7 @@ public class RemoteEnv extends AbstractEnv implements DesignAut public OrganizationOperator getOrganizationOperator() throws Exception { return MessageSendExecutor.getInstance().execute(OrganizationOperator.class); } - + @Override public RemoteEnvConfig getEnvConfig() { return config; @@ -254,12 +253,7 @@ public class RemoteEnv extends AbstractEnv implements DesignAut */ @Override public boolean testServerConnectionWithOutShowMessagePane() throws Exception { - try { - connectOnce(); - return true; - } catch (Exception e) { - return false; - } + return testConnection(false, true, DesignerContext.getDesignerFrame()); } /** @@ -270,15 +264,55 @@ public class RemoteEnv extends AbstractEnv implements DesignAut * @throws Exception 异常 */ public boolean testConnectionWithOutRegisteServer(Component messageParentPane) throws Exception { - try { - connectOnce(); - return true; - } catch (Exception e) { - JOptionPane.showMessageDialog(messageParentPane, Inter.getLocText("Datasource-Connection_failed")); + return testConnection(true, false, messageParentPane); + } + + + private boolean testConnection(boolean needMessage, boolean isRegisteServer, Component parentComponent) throws Exception { + checkArgument(parentComponent instanceof Component, "parentComponent should be a java.awt.component"); + Component component = parentComponent; + String url = String.format("%s/connection", EnvConstants.toDecisionPath(getPath())); + ImmutableMap params = ImmutableMap.of( + "version", (Object) ProductConstants.DESIGNER_VERSION + ); + ImmutableMap headers = ImmutableMap.of( + EnvConstants.USERNAME, getUser(), + EnvConstants.PWD, getPassword()); + String res = HttpToolbox.post(url, params, headers); + if (Strings.isNullOrEmpty(res)) { + if (needMessage) { + JOptionPane.showMessageDialog(component, Inter.getLocText("Datasource-Connection_failed")); + } return false; + } else if (ComparatorUtils.equals(res, "true")) { + return true; + } else { + if (ComparatorUtils.equals(res, EnvConstants.AUTH_ERROR)) { + JOptionPane.showMessageDialog(component, + Inter.getLocText(new String[]{"Datasource-Connection_failed", "Registration-User_Name", "Password", "Error"}, new String[]{",", "", "", "!"}) + , Inter.getLocText("FR-Server-All_Error"), JOptionPane.ERROR_MESSAGE); + return false; + } else { + if (ComparatorUtils.equals(res, EnvConstants.WAR_ERROR)) { + if (needMessage) { + JOptionPane.showMessageDialog(component, Inter.getLocText(new String[]{"Datasource-Connection_failed", "NS-war-remote"}, new String[]{",", "!"})); + } else { + FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Datasource-Connection_failed", "NS-war-remote"}, new String[]{",", "!"})); + } + return false; + } else { + if (needMessage) { + JOptionPane.showMessageDialog(component, Inter.getLocText("Datasource-Connection_failed")); + } else { + FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Datasource-Connection_failed", "Version-does-not-support"}, new String[]{",", "!"})); + } + return false; + } + } } } + private void refreshHttpSProperty() { if (getPath().startsWith(HTTPS_PREFIX) && System.getProperty(CERT_KEY) == null) { DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); @@ -409,8 +443,8 @@ public class RemoteEnv extends AbstractEnv implements DesignAut return Boolean.valueOf(IOUtils.inputStream2String(input, EncodeConstants.ENCODING_UTF_8)); } - - + + /** * nameValuePairs,这个参数要接着this.path,拼成一个URL,否则服务器端req.getParameter是无法得到的 * @@ -543,7 +577,8 @@ public class RemoteEnv extends AbstractEnv implements DesignAut */ @Override public String getWebReportPath() { - return getPath().substring(0, getPath().lastIndexOf("/")); + + return StableUtils.pathJoin(getPath(), getAppName()); } public String[] getProcedureColumns(StoreProcedure storeProcedure, Map parameterMap) throws Exception {