diff --git a/installation/delivery/delivery.properties b/installation/delivery/delivery.properties index 695808028..f6d9d9d98 100644 --- a/installation/delivery/delivery.properties +++ b/installation/delivery/delivery.properties @@ -8,4 +8,4 @@ delivery.dir=/tmp #release number of the delivery item release.number=v9.0.4.0 #tag of xyna-modeller release -xynamodeller.release.tag=9.0.3.1 +xynamodeller.release.tag=main diff --git a/modules/xact/ssh/file/XMOM/xact/ssh/file/SSHServerParameter.xml b/modules/xact/ssh/file/XMOM/xact/ssh/file/SSHServerParameter.xml index ed87c0165..7e64d99b8 100644 --- a/modules/xact/ssh/file/XMOM/xact/ssh/file/SSHServerParameter.xml +++ b/modules/xact/ssh/file/XMOM/xact/ssh/file/SSHServerParameter.xml @@ -40,6 +40,31 @@ Integer + + + String + + + + + String + + + + + String + + + + + String + + + + + String + + Limit Bandwidth; kbit/s diff --git a/modules/xact/ssh/file/application.xml b/modules/xact/ssh/file/application.xml index a271ba623..6e6d76a01 100644 --- a/modules/xact/ssh/file/application.xml +++ b/modules/xact/ssh/file/application.xml @@ -16,7 +16,7 @@ * limitations under the License. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> - + SSH File Transfer (SCP) SSH file transfer (SCP) diff --git a/modules/xact/ssh/file/mdmimpl/SSHFileTransferImpl/src/xact/ssh/file/impl/SSHFileTransferServiceOperationImpl.java b/modules/xact/ssh/file/mdmimpl/SSHFileTransferImpl/src/xact/ssh/file/impl/SSHFileTransferServiceOperationImpl.java index 97ed83802..83ba23d86 100644 --- a/modules/xact/ssh/file/mdmimpl/SSHFileTransferImpl/src/xact/ssh/file/impl/SSHFileTransferServiceOperationImpl.java +++ b/modules/xact/ssh/file/mdmimpl/SSHFileTransferImpl/src/xact/ssh/file/impl/SSHFileTransferServiceOperationImpl.java @@ -69,7 +69,7 @@ public Long getOnUnDeploymentTimeout() { // If null is returned, the default timeout (defined by XynaProperty xyna.xdev.xfractmod.xmdm.deploymenthandler.timeout) will be used. return null; } - + public BehaviorAfterOnUnDeploymentTimeout getBehaviorAfterOnUnDeploymentTimeout() { // Defines the behavior of the (un)deployment after reaching the timeout and if this service ignores a Thread.interrupt. // - BehaviorAfterOnUnDeploymentTimeout.EXCEPTION: Deployment will be aborted, while undeployment will log the exception and NOT abort. @@ -118,7 +118,7 @@ public void scpDocumentToRemoteHost(SSHServerParameter server, Document document @Override public Container scpFromRemoteHost(SSHServerParameter server, File remoteFile, Text location) { - String localName = remoteFile.getPath(); //FIXME lokaler name übergebn? + String localName = remoteFile.getPath(); //FIXME lokaler name übergebn? int idx = localName.lastIndexOf('/'); if ( idx > 0 ) { localName = localName.substring(idx+1); @@ -211,15 +211,45 @@ private Session getSession(SSHServerParameter server) throws JSchException { int port = server.getPort() == null ? 22 : server.getPort().intValue(); Session s = jsch.getSession(server.getUser(), server.getHost(), port); - PassphraseRetrievingUserInfo userInfo = - new PassphraseRetrievingUserInfo(new SecureStorablePassphraseStore(), new LogAdapter(logger) ); - s.setUserInfo(userInfo); s.setConfig("StrictHostKeyChecking", "no"); //FIXME sinnvoll? + if (server.getPassword() != null && server.getPassword().length() > 0) { + PassphraseRetrievingUserInfo userInfo = + new PassphraseRetrievingUserInfo(new SecureStorablePassphraseStore(), new LogAdapter(logger) ); + s.setUserInfo(userInfo); s.setPassword(server.getPassword()); userInfo.setPassword(server.getPassword()); + s.setConfig("PreferredAuthentications", "password,keyboard-interactive"); } - s.setConfig("PreferredAuthentications", "password,keyboard-interactive"); + + String knownHostsFile = server.getKnownHostFile(); + String privateKeyFile = server.getPrivateKeyFile(); + String privateKey = server.getPrivateKey(); + String publicKey = server.getPublicKey(); + String passPhrase = server.getPassPhrase(); + if (privateKey != null && privateKey.length() > 0) { + String charset = "US-ASCII"; + try { + if (publicKey==null) publicKey = ""; + if (passPhrase==null) passPhrase = ""; + byte[] privateKeyBytes = privateKey.getBytes(charset); + byte[] publicKeyBytes = publicKey.getBytes(charset); + byte[] passPhraseBytes = passPhrase.getBytes(charset); + jsch.setConfig("PreferredAuthentications", "publickey"); + jsch.addIdentity("id_rsa", privateKeyBytes, publicKeyBytes, passPhraseBytes); + } catch(Exception ex) { + + } + } else if (privateKeyFile != null && privateKeyFile.length() > 0) { + jsch.setConfig("PreferredAuthentications", "publickey"); + jsch.setConfig("StrictHostKeyChecking", "no"); + jsch.addIdentity(privateKeyFile, passPhrase); + } + if (knownHostsFile != null && knownHostsFile.length() > 0) { + jsch.setKnownHosts(knownHostsFile); + jsch.setConfig("StrictHostKeyChecking", "yes"); + } + if(server.getSCPTimeouts() != null && server.getSCPTimeouts().getConnectionTimeout() != null && server.getSCPTimeouts().getConnectionTimeout() > 0) s.connect(server.getSCPTimeouts().getConnectionTimeout()); else diff --git a/modules/xmcp/gitIntegration/application.xml b/modules/xmcp/gitIntegration/application.xml index 22459eb7e..6ffbfca4f 100644 --- a/modules/xmcp/gitIntegration/application.xml +++ b/modules/xmcp/gitIntegration/application.xml @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---> +--> diff --git a/modules/xmcp/gitIntegration/mdmimpl/WorkspaceObjectManagementImpl/src/xmcp/gitintegration/impl/processing/XMOMStorableProcessor.java b/modules/xmcp/gitIntegration/mdmimpl/WorkspaceObjectManagementImpl/src/xmcp/gitintegration/impl/processing/XMOMStorableProcessor.java index 8ad15d618..80e50d256 100644 --- a/modules/xmcp/gitIntegration/mdmimpl/WorkspaceObjectManagementImpl/src/xmcp/gitintegration/impl/processing/XMOMStorableProcessor.java +++ b/modules/xmcp/gitIntegration/mdmimpl/WorkspaceObjectManagementImpl/src/xmcp/gitintegration/impl/processing/XMOMStorableProcessor.java @@ -28,6 +28,7 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import com.gip.xyna.XynaFactory; import com.gip.xyna.xnwh.persistence.xmom.XMOMODSMapping; import com.gip.xyna.xnwh.persistence.xmom.XMOMODSMappingUtils; import com.gip.xyna.xprc.xfractwfe.generation.xml.XmlBuilder; @@ -207,23 +208,36 @@ public List createItems(Long revision) { @Override public void create(XMOMStorable item, long revision) { - // TODO Auto-generated method stub - + XMOMODSMapping mapping = new XMOMODSMapping(); + mapping.setId(XynaFactory.getInstance().getXynaNetworkWarehouse().getXMOMPersistence().getXMOMPersistenceManagement().genId()); + mapping.setRevision(revision); + mapping.setPath(item.getPath()); + mapping.setFqpath(item.getFQPath()); + mapping.setFqxmlname(item.getXMLName()); + mapping.setTablename(item.getODSName()); + mapping.setColumnname(item.getColumnName()); + mapping.setUserdefined(false); + try { + XMOMODSMappingUtils.storeMapping(mapping); + } catch (Exception e) { + throw new RuntimeException(e); + } } @Override public void modify(XMOMStorable from, XMOMStorable to, long revision) { - // TODO Auto-generated method stub - + this.delete(from, revision); + this.create(to, revision); } @Override public void delete(XMOMStorable item, long revision) { - // TODO Auto-generated method stub - + try { + XMOMODSMappingUtils.removeForRevisionNameAndFqPath(revision, item.getXMLName(), item.getFQPath()); + } catch (Exception e) { + throw new RuntimeException(e); + } } - - } diff --git a/modules/xmcp/guihttp/application.xml b/modules/xmcp/guihttp/application.xml index fee89f032..8426ec8d1 100644 --- a/modules/xmcp/guihttp/application.xml +++ b/modules/xmcp/guihttp/application.xml @@ -29,7 +29,7 @@ ZetaFramework - 0.6.47 + 0.6.48 XynaPropertyMgmt diff --git a/modules/xmcp/guihttp/filterimpl/H5XdevFilter/automatedTests/configurator.py b/modules/xmcp/guihttp/filterimpl/H5XdevFilter/automatedTests/configurator.py index 00426f5be..ecfea0d72 100644 --- a/modules/xmcp/guihttp/filterimpl/H5XdevFilter/automatedTests/configurator.py +++ b/modules/xmcp/guihttp/filterimpl/H5XdevFilter/automatedTests/configurator.py @@ -29,7 +29,7 @@ class Configurator: factorySettings = { "ip": str, - "port": bool, + "port": int, "username": str, "password": str, "https": bool, diff --git a/modules/xmcp/multirole/application.xml b/modules/xmcp/multirole/application.xml index e41b38bfb..f2a70b7a6 100644 --- a/modules/xmcp/multirole/application.xml +++ b/modules/xmcp/multirole/application.xml @@ -29,7 +29,7 @@ ZetaFramework - 0.6.47 + 0.6.48 diff --git a/modules/xmcp/zetaFramework/XMOM/xmcp/forms/datatypes/UploadButtonDefinition.xml b/modules/xmcp/zetaFramework/XMOM/xmcp/forms/datatypes/UploadButtonDefinition.xml new file mode 100644 index 000000000..b05a5fba8 --- /dev/null +++ b/modules/xmcp/zetaFramework/XMOM/xmcp/forms/datatypes/UploadButtonDefinition.xml @@ -0,0 +1,28 @@ + + + + + false + + + + String + + + diff --git a/modules/xmcp/zetaFramework/application.xml b/modules/xmcp/zetaFramework/application.xml index fb7114827..0b4bb4c35 100644 --- a/modules/xmcp/zetaFramework/application.xml +++ b/modules/xmcp/zetaFramework/application.xml @@ -16,7 +16,7 @@ * limitations under the License. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> - + @@ -191,6 +191,10 @@ xmcp.forms.datatypes.TreePanelDefinition DATATYPE + + xmcp.forms.datatypes.UploadButtonDefinition + DATATYPE + xmcp.forms.datatypes.DefinitionListDefinition DATATYPE diff --git a/server/src/com/gip/xyna/xmcp/xguisupport/messagebus/MessageStore.java b/server/src/com/gip/xyna/xmcp/xguisupport/messagebus/MessageStore.java index 014c2c9ad..dddab908e 100644 --- a/server/src/com/gip/xyna/xmcp/xguisupport/messagebus/MessageStore.java +++ b/server/src/com/gip/xyna/xmcp/xguisupport/messagebus/MessageStore.java @@ -72,6 +72,7 @@ public void run() { } } }); + thread.setName("MessageStore"); thread.setDaemon(true); thread.start(); } diff --git a/server/src/com/gip/xyna/xnwh/persistence/xmom/XMOMODSMappingUtils.java b/server/src/com/gip/xyna/xnwh/persistence/xmom/XMOMODSMappingUtils.java index 30387a79a..4f536a5fc 100644 --- a/server/src/com/gip/xyna/xnwh/persistence/xmom/XMOMODSMappingUtils.java +++ b/server/src/com/gip/xyna/xnwh/persistence/xmom/XMOMODSMappingUtils.java @@ -480,11 +480,18 @@ private static void createMapping(PathBuilder path, NameType nameType, String un mapping.setColumnname(uniqueName); break; default : - new IllegalArgumentException("Unextpacted NameType: " + nameType); + new IllegalArgumentException("Unexpected NameType: " + nameType); } mapping.setUserdefined(false); + mapping.setUserdefined(false); + XMOMODSMappingUtils.storeMapping(mapping); + } + + + public static void storeMapping(XMOMODSMapping mapping) throws PersistenceLayerException { ODS ods = ODSImpl.getInstance(); ODSConnection con = ods.openConnection(ODSConnectionType.HISTORY); + XMOMPersistenceManagement persistenceMgmt = XynaFactory.getInstance().getXynaNetworkWarehouse().getXMOMPersistence().getXMOMPersistenceManagement(); try { persistenceMgmt.storeConfigAndSetPersistenceLayers(mapping, con); } finally { @@ -495,8 +502,8 @@ private static void createMapping(PathBuilder path, NameType nameType, String un } } } - - + + public static Set discoverPaths(Set domsThatCacheSubtypes, DOM dom, GenerationBaseCache parseAdditionalCache) { DOM currentRoot = getSuperRoot(dom); Set paths = new HashSet(); @@ -734,6 +741,21 @@ public static XMOMODSMapping getByNameRevisionFqPath(String name, Long revision, } + public static void removeForRevisionNameAndFqPath(Long revision, String name, String fqPath) throws PersistenceLayerException { + ODS ods = ODSImpl.getInstance(); + ODSConnection con = ods.openConnection(ODSConnectionType.HISTORY); + try { + List result = executeQuery(con, ROOTNAME_REVISION_AND_FQPATH_QUERY, new Parameter(name, revision, fqPath)); + if (result.size() > 0) { + con.delete(result); + con.commit(); + } + } finally { + con.closeConnection(); + } + } + + public static void removeAllForRevision(long revision) throws PersistenceLayerException { ODS ods = ODSImpl.getInstance(); ODSConnection con = ods.openConnection(ODSConnectionType.HISTORY); diff --git a/server/src/com/gip/xyna/xprc/xsched/CapacityManagement.java b/server/src/com/gip/xyna/xprc/xsched/CapacityManagement.java index 71bea59a6..2f17ce9d3 100644 --- a/server/src/com/gip/xyna/xprc/xsched/CapacityManagement.java +++ b/server/src/com/gip/xyna/xprc/xsched/CapacityManagement.java @@ -164,7 +164,7 @@ public void onChange(ClusterState newState) { private class FactoryShutdownClusterStateChangeHandler implements ClusterStateChangeHandler { - private volatile Timer shutdownTimer = new Timer(); + private volatile Timer shutdownTimer = new Timer("CapacityManagement - FactoryShutdownClusterStateChangeHandler - shutdown timer"); private volatile boolean shutDownInitialized = false; private ClusterState state;