Certain version jumps require one-off adjustments to the installation. This page summarises them by version. The general procedure for an update is described in Performing an update. In addition, always observe the »Notice board« in teamspace-classic.
If you jump across several versions, work through the notes chronologically (upwards from your current version).
Update to 2025.3
For 2025.3 (the new Genua interface), changes must be made to the existing installation. In addition, at least version 2025.2 must be installed beforehand.
- Switch from Tomcat 9 to Tomcat 10
- Adjustment of the
web.xml
If the special version 2025.2-Genua is installed, the Tomcat switch is not needed – the update to 2025.3 can then be installed as usual.
Switching from Tomcat 9 to Tomcat 10
Genua only runs on Tomcat 10. The steps (paths may vary depending on the system):
- Back up the
ROOT.xmlfrom the Tomcat 9 configuration.- Linux:
/srv/tomcat9/conf/Catalina/localhost/ROOT.xml - Windows:
C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\Catalina\localhost\ROOT.xml
- Linux:
- Back up the
jasper-font-default-1.2.0.jar.- Linux:
/srv/tomcat9/lib/jasper-font-default-1.2.0.jar - Windows:
C:\Program Files\Apache Software Foundation\Tomcat 10\lib\jasper-font-default-1.2.0.jar
- Linux:
- Uninstall Tomcat 9 and install Tomcat 10.
- Linux:
apt install tomcat10 - Windows: tomcat.apache.org
- Linux:
- Start the Tomcat once so that all paths are created.
- Stop the Tomcat and place
ROOT.xmlandjasper-font-default-1.2.0.jarback in their original paths. - Adjust the
server.xml(Linux:/srv/tomcat10/server.xml, Windows:…\Tomcat 10\conf\server.xml):<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" /> […] <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false"> - Adjust the memory.
- Linux (
/etc/defaults/tomcat9ortomcat10):JAVA_OPTS="-Djava.awt.headless=true -Xmx2048m" - Windows: in the Tomcat 10 Manager, check the Java path, add
-Dfile.encoding=UTF8under Java Options and adjust the “Maximum memory pool”.
- Linux (
- Adjust the nightly Tomcat restart.
- Linux (
crontab -e):00 4 * * * systemctl restart tomcat10 >/dev/null 2>&1 - Windows: in
C:\projectfacts\scripte\tomcat_restart.bat, replacetomcat9withtomcat10.
- Linux (
Update to 2024.3
With 2024.3, the web.xml must be extended by two entries – in each of:
$basedir\java\webapp\WEB-INF\web.xml$basedir\webapp\WEB-INF\web.xml
<context-param>
<param-name>app.allowServerCommunication</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<display-name>ImageIO service provider loader/unloader</display-name>
<listener-class>com.twelvemonkeys.servlet.image.IIOProviderContextListener</listener-class>
</listener>
Update to 2024.1
With 2024.1, a full-text index for the ticket activities is created in MySQL. During this, the database briefly needs about 3.5 times the disk space of the ticketprocessitem table. Make sure that there is enough space on the disk.
If you have set up a tmpfs for the tmpdir configuration of MySQL under Linux, add the innodb_tmpdir configuration (if not already present), e.g. in /etc/mysql/mariadb.conf.d/51-projectfacts.cnf:
tmpdir = /var/log/mysql/tmp
innodb_tmpdir = /mnt/userfiles/tmp
The paths are examples. chmod 1777 tmp must be run on the directory for innodb_tmpdir.
Update to 2023.4
With 2023.4, the database connection pool was reworked: instead of managing it itself, the Tomcat’s connection pool is now used. This increases the effort for the update on a one-off basis.
Standard installation
Add the following to the web.xml under <display-name>projectfacts</display-name> (if not already present):
<resource-ref>
<description>MySQL Database Resource</description>
<res-ref-name>jdbc/app_db</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Stop the Tomcat and remove the following context block from the server.xml. Make a note of the docBase path beforehand:
<Context path="" reloadable="false" docBase="/srv/projectfacts/webapp/" useHttpOnly="false">
<Resources cacheMaxSize="65536" />
<Manager pathname="" />
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" asyncSupported="true" />
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
</Context>
In the Tomcat folder ([Tomcat]/conf/Catalina/localhost/ROOT.xml), create the ROOT.xml and transfer docBase and the credentials from the previous data-source.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="false" useHttpOnly="true" docBase="/srv/projectfacts/webapp/">
<Resources cacheMaxSize="65536" />
<Manager pathname="" />
<CookieProcessor sameSiteCookies="lax" />
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" asyncSupported="true" />
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
<Resource name="jdbc/app_db" auth="Container" type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="150" minIdle="30" testOnBorrow="true"
validationQuery="SELECT 1" validationQueryTimeout="10" validationInterval="10000"
username="projectfacts" password="projectfacts"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/projectfacts?useUnicode=true&useSSL=false"
defaultAutoCommit="false" />
</Context>
If a time zone was set after the false in the data-source.xml (e.g. &serverTimezone=Europe/Berlin), be sure to carry it over.
Adjust the deploy-war script
The data-source.xml is no longer needed – all the information is now held in the ROOT.xml. In the deploy-war.sh/.bat, remove the two lines that look for data-source.xml (or download the new deploy scripts from the “Scripe” folder in teamspace-classic). Important: after the update, the data-source.xml must no longer be present, otherwise the system will not start properly.
Docker installation (Linux)
With Docker, instead of the ROOT.xml you create the context.xml at [projectfacts]/webapp/META-INF/context.xml (overwrite an existing file):
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="false" useHttpOnly="true">
<Resources cacheMaxSize="65536" />
<Manager pathname="" />
<CookieProcessor sameSiteCookies="lax" />
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" asyncSupported="true" />
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
<Resource name="jdbc/app_db" auth="Container" type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="150" minIdle="30" testOnBorrow="true"
validationQuery="SELECT 1" validationQueryTimeout="10" validationInterval="10000"
username="projectfacts" password="projectfacts"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/projectfacts?useUnicode=true&useSSL=false"
defaultAutoCommit="false" />
</Context>
Adjust the deploy script so that the context.xml is backed up (otherwise it is overwritten during the update).
Update to 2023.1
With version 2023.1, Java 17 is required. Switch from Java 11 to Java 17 before the update.
- Linux: from Debian 11 or Ubuntu 22.04 LTS onwards (on Ubuntu 20.04, OpenJDK 17 is the last available Java version).
- Windows (does not apply to existing systems): from Windows Server 2016 or higher.
Under Debian 12, only Tomcat 10 is provided from the repository. If Tomcat 9 is required, install it manually (see Additional server configurations).
If you use an LDAP connection, back up the Java keystore with the SSL certificates beforehand (see “Importing an SSL certificate into the Java truststore” in Additional server configurations).
Related topics
- Performing an update Installation Configuration
- Additional server configurations Installation Configuration
- Installing teamspace with Docker Installation Configuration