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;