diff --git a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java index 981833491..d04992876 100644 --- a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -1,9 +1,9 @@ package com.fr.design.gui.itree.filetree; import com.fr.base.Env; -import com.fr.base.env.EnvContext; -import com.fr.base.env.proxy.EnvProxy; -import com.fr.base.env.resource.EnvConfigUtils; +import com.fr.core.env.EnvContext; +import com.fr.core.env.proxy.EnvProxy; +import com.fr.core.env.resource.EnvConfigUtils; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.env.operator.file.TplFileOperator; import com.fr.file.filetree.FileNode; diff --git a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java index 8d222701f..8d22b77a4 100644 --- a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java +++ b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java @@ -2,7 +2,7 @@ package com.fr.design.remote.action; import com.fr.base.BaseUtils; import com.fr.base.FRContext; -import com.fr.base.env.proxy.EnvProxy; +import com.fr.core.env.proxy.EnvProxy; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index 0f1fcc6f8..2c568583a 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -1,8 +1,8 @@ package com.fr.design.remote.ui; -import com.fr.base.env.EnvContext; -import com.fr.base.env.proxy.EnvProxy; -import com.fr.base.env.resource.EnvConfigUtils; +import com.fr.core.env.EnvContext; +import com.fr.core.env.proxy.EnvProxy; +import com.fr.core.env.resource.EnvConfigUtils; import com.fr.design.border.UITitledBorder; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; diff --git a/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java b/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java index df843a5df..20417b2fb 100644 --- a/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java +++ b/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java @@ -1,20 +1,45 @@ package com.fr.start.module; +import com.fr.base.ModifiedTable; +import com.fr.base.Parameter; +import com.fr.base.StoreProcedureParameter; +import com.fr.base.TableData; +import com.fr.base.env.serializer.OldSerializerAdapter; +import com.fr.base.env.serializer.ProcedureDataModelSerializer; +import com.fr.base.env.user.LocalUserCenter; +import com.fr.base.env.user.RemoteUserCenter; +import com.fr.base.operator.connection.DataConnectionOperator; +import com.fr.base.operator.connection.LocalDataConnectionOperator; +import com.fr.base.operator.file.FileOperator; +import com.fr.base.operator.file.LocalFileOperator; +import com.fr.core.env.operator.envinfo.EnvInfoOperator; +import com.fr.core.env.operator.envinfo.LocalEnvInfoOperator; +import com.fr.core.env.operator.user.UserCenter; +import com.fr.core.env.proxy.EnvProxy; +import com.fr.data.core.db.TableProcedure; +import com.fr.data.impl.Connection; +import com.fr.data.impl.storeproc.ProcedureDataModel; +import com.fr.data.impl.storeproc.StoreProcedure; +import com.fr.dav.DavXMLUtils; import com.fr.design.DesignerEnvManager; +import com.fr.file.filetree.FileNode; import com.fr.general.ComparatorUtils; import com.fr.module.Activator; import com.fr.start.EnvSwitcher; import com.fr.start.StartServer; +import java.io.InputStream; +import java.io.OutputStream; + /** * Created by juhaoyu on 2018/1/8. * 设计器启动时的环境相关模块activator */ public class DesignerEnvProvider extends Activator { - + @Override public void start() { - + String[] args = getModule().upFindSingleton(StartupArgs.class).get(); if (args != null) { for (String arg : args) { @@ -26,16 +51,150 @@ public class DesignerEnvProvider extends Activator { } } getRoot().setSingleton(EnvSwitcher.class, new EnvSwitcher()); + + initEnvOperators(); + //设置好环境即可,具体跟环境有关的模块会自动调用 getRoot().getSingleton(EnvSwitcher.class).switch2LastEnv(); } - - - @Override public void stop() { //清空模块 getRoot().removeSingleton(EnvSwitcher.class); } + + private void initEnvOperators() { + addSerializers(); + EnvProxy.addLocalService(FileOperator.class, new LocalFileOperator()); + EnvProxy.addLocalService(DataConnectionOperator.class, new LocalDataConnectionOperator()); + EnvProxy.addLocalService(EnvInfoOperator.class, new LocalEnvInfoOperator()); + EnvProxy.addLocalService(UserCenter.class, new LocalUserCenter()); + EnvProxy.addRemoteService(UserCenter.class, new RemoteUserCenter()); + } + + private void addSerializers() { + EnvProxy.addSerializer(ProcedureDataModel[].class, new ProcedureDataModelSerializer()); + + EnvProxy.addSerializer(ModifiedTable.class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(ModifiedTable obj, OutputStream out) throws Exception { + DavXMLUtils.writeXMLModifiedTables(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public ModifiedTable desializer(InputStream in) throws Exception { + return DavXMLUtils.readXMLModifiedTables(in); + } + } + )); + + EnvProxy.addSerializer(com.fr.data.impl.Connection.class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(Connection obj, OutputStream out) { + DavXMLUtils.writeXMLFileDatabaseConnection(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public Connection desializer(InputStream in) throws Exception { + return DavXMLUtils.readXMLDatabaseConnection(in); + } + } + )); + + EnvProxy.addSerializer(FileNode[].class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(FileNode[] obj, OutputStream out) { + DavXMLUtils.writeXMLFileNodes(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public FileNode[] desializer(InputStream in) { + return DavXMLUtils.readXMLFileNodes(in); + } + } + )); + + EnvProxy.addSerializer(TableProcedure[].class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(TableProcedure[] obj, OutputStream out) { + DavXMLUtils.writeXMLFileSQLTable(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public TableProcedure[] desializer(InputStream in) throws Exception { + return DavXMLUtils.readXMLSQLTables(in); + } + } + )); + + EnvProxy.addSerializer(TableData.class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(TableData obj, OutputStream out) { + DavXMLUtils.writeXMLFileTableData(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public TableData desializer(InputStream in) throws Exception { + return DavXMLUtils.readXMLTableData(in); + } + } + )); + + EnvProxy.addSerializer(Parameter[].class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(Parameter[] obj, OutputStream out) { + DavXMLUtils.writeXMLFileParameters(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public Parameter[] desializer(InputStream in) throws Exception { + return DavXMLUtils.readXMLParameters(in); + } + } + )); + + EnvProxy.addSerializer(StoreProcedure.class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(StoreProcedure obj, OutputStream out) { + DavXMLUtils.writeXMLFileStoreProcedure(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public StoreProcedure desializer(InputStream in) throws Exception { + return DavXMLUtils.readXMLStoreProcedure(in); + } + } + )); + + EnvProxy.addSerializer(StoreProcedureParameter[].class, new OldSerializerAdapter( + new OldSerializerAdapter.OldSerializer() { + @Override + public void serializer(StoreProcedureParameter[] obj, OutputStream out) { + DavXMLUtils.writeXMLFileParameters(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + @Override + public StoreProcedureParameter[] desializer(InputStream in) throws Exception { + return DavXMLUtils.readXMLStoreProcedureParameters(in); + } + } + )); + } + }