Installation Manual
Introduction
HaloCAD KPro is a Java-based component that is a proxy for HaloCORE for DMS Add-On and communicates with the HaloENGINE and HaloENGINE Service.
About this Manual
This manual walks you through installing and configuring HaloCAD KPro and includes many references to other sources of related information.
System Requirements
The following table lists the requirements for HaloCAD KPro.
Required components | Details |
---|---|
The following components are necessary for a DMS-integrated environment.
|
|
For an ECTR integrated environment with CAD application, HaloCAD for CAD application, as well as the components listed above, are necessary. | Please refer to the HaloCAD Installation Manual for more information on how to set up the add-on. |
Requirements
Installing the HaloCAD KPro Application
Setting up HaloCAD KPro involves installing the HaloCAD KPro application (which installs Tomcat, Java, and deploys the KPro war file) and adjusting the war properties via the command line.
Note:
If HaloCAD KPro is running on the same computer as the HaloENGINE, the HaloCAD KPro installer will use Tomcat and Java, which have already been set up by the HaloENGINE Server installer.
If HaloCAD KPro is installed on a different machine, Java and Tomcat will be installed by the HaloCAD KPro installer.
Tomcat must be restarted following any configuration or Tomcat certificate configuration.
Limitation
In previous versions, the KPro proxy supported the following scenarios.
Case 1: Operating HaloCAD KPro and HaloENGINE on the same machine.
Case 2: Running HaloCAD KPro and HaloENGINE on different machines
As of version 6.6, the KPro proxy only supports Case 1. However, the configuration tool will show Case 2 options as well. Case 2 will only be functionally available based on user demand.

HaloCAD KPro installed in different setups
Install the HaloCAD KPro using the GUI-based setup program provided in the installation package.
To begin the interactive installation, double-click the installer
HaloCAD_KPro_Setup.exe
file. Depending on your Windows security settings, you may get a warning such as "Do you want to allow the following program to make changes to this computer?". If you get this security warning, click the Yes button to continue the installation.When the installer starts, you will see the startup dialog followed by the welcome dialog:
Startup Dialog
Welcome dialog
Click Next to continue the installation. The end-user license agreement dialog will appear:
End-User License Agreement dialog
Read the End-User License Agreement. If you agree, select I accept the terms in the License Agreement and click Next.
The Tomcat memory pool size configuration dialog will appear:
Tomcat pool size configuration dialog
If you want to change the default values of the Initial Memory Pool and Total Memory Pool, enter the amount of memory you want to allocate. Note: Make sure that the Total Memory Pool should not exceed the available RAM on the System. Click Next.
The destination folder selection dialog will appear:
Destination folder dialog
By default, application files are stored in the program files directory (
C:\Program Files\Secude\
). If you would like to choose an alternate location, click the Browse button and select your location preference. When you are finished, click Next.The installation begins and progress is shown in the dialog.
Installing dialog
When the installation is completed, you will see a message confirming that the HaloCAD KPro has been successfully installed.
Completing the HaloCAD KPro dialog
Click Close to close the installation wizard.
What to do Next?
Configure HaloCAD KPro using the HaloENGINE Tool.
Silent Installation
Besides graphical mode, the HaloENGINE can be installed in silent mode, which does not require user involvement or display a user interface. Open a command prompt, navigate to the installer's folder, and enter HaloCAD_KPro_Setup.exe -help
. Enter the required input and press Enter. The installation will be completed successfully.
Configuring the KPro Properties
Case 1: HaloCAD KPro and HaloENGINE on the Same Machine
Prerequisites
At this point, the HaloENGINE must be able to fetch MPIP labels.
The Server Keystore and a Client Keystore for KPro Proxy must be available in the HaloENGINE. For illustration purposes, the Client Keystore (for sample,
ClientKey.jks
) is used for communication between HaloCAD KPro and HaloENGINE.For HTTPS Content Server only:
Please note that HaloCAD KPro defaults to HTTPS = False.
To use HTTPS, you need to get the Content Server instance certificate and then add it to the Keystore (HaloENGINE Tomcat) using the HaloENGINE tool.
Follow the steps to set up HaloCAD KPro:
Step 1: Set the Environment Variable.
Under System Variables, set the variable "
JAVA_HOME
" to the Secude JRE directory. For example,JAVA_HOME=C:\Program Files\Secude\secude-jre
.Under System Variables, edit the “
Path
” variable to add "JAVA_HOME
" to it. For example,Path=%PATH%;%JAVA_HOME%\bin
.
Step 2: Generate KPro configuration properties.
Extract the zipped folder.
To run the HaloENGINE tools:
Copy
halo-engine-tools<version>.zip
file to the desktop and extract it.Open Command Prompt with administrator rights and change directory to
halo-engine-tools-<version>\bin
.Run the options one by one. For illustration purposes, a sample is given below.
Syntax, " or " Output
|
Select 1 to proceed with case 1.
|
Option 1 Description: Creates HaloCAD KPro configuration properties. Note:
|
Select 1 from the output list.
|
Option 2 Description: Make changes to the war file. |
Select 2 from the output list.
|
Option 3 Description: Make changes to |
Select 3 from the output list.
|
Option 4 Description: Make changes to “MaxThreads” in |
Select 4 from the output list.
|
Option 5 Description (only for HTTPS-enabled Content Server): If your Content Server is HTTPS-enabled, you must use this option to add the Content Server certificate to the HaloENGINE Tomcat Keystore. |
Select 5 from the output list.
|
Option 0 Description: Once you have finished the above instructions, press entering option 0 to leave the command line. |
Test the configuration
Restart the HaloENGINE Tomcat service.
Enter the web service endpoint in a browser:
http://<IPaddress or FQDN>:<port>/halocad-kpro/new-service?wsdl.
For example,http://10.41.14.69:8383/halocad-kpro/new-service?wsdl
The endpoint must be resolved with no error.
How to Update?
This section describes how to update HaloCAD KPro from previous versions to the latest version. Please note that HaloCAD KPro 6.7 is only compatible with HaloENGINE 6.7.
Update from HALOCORE KPro to HaloCAD KPro
This section is for users who are using previous versions of HALOCORE KPro (for example, <6.6) and want to update to HaloCAD KPro.
Step 1: Backup files from earlier version of HALOCORE KPro.
Stop the Tomcat Service
Take a backup of the configuration and the Tomcat folders.
Uninstall the HALOCORE KPro version using the installer.
Step 2: Create files that are compatible with the new HaloENGINE.
If the Halo Core Server is installed, please migrate with the appropriate batch file for HaloENGINE compatibility and upgrade to HaloENGINE 6.7.x.x.
At this point, make sure both HaloENGINE Service and HaloENGINE are installed.
Step 3: Run the batch file.
Create a system variable
JAVA_HOME
and copy theHaloENGINE_HOME
value. For example,JAVA_HOME = D:\test\SECUDE\secude-jre
Open a command prompt and navigate to the folder where
makeNewKProConfig.bat
is available in the product package.Execute the batch file as shown below:
CODEmakeNewKProConfig.bat <path to the old config file> <a backup folder name> For example: makeNewKProConfig.bat D:\Office\Test_zip_files\config D:\Office\Test_zip_files\config_backup
If the script (
.bat
) is executed without issues, the backup folder will be automatically deleted. Ensure that the backup folder is free of any other files as it will be deleted.The folder that contains the older "config" will be replaced with the new 6.7 compatible "config".
Step 4: Install HaloCAD KPro version
Install HaloCAD KPro using the installer.
Stop the Tomcat service.
Create a
config
folder in the HaloCAD KPro installation folder.Copy the files from the
D:\Office\Test_zip_files\config
to theHaloCAD KPro\config
folder.Execute
halo-engine-tools.bat
to generate the log folder.Start configuring using the tool, as described in Case 1 (1 to 5). Note: To use the previous versions (<6.6) of the server certificate
HalocoreServer.cer
, simply rename it toHaloENGINE.cer
.
Update of HaloCAD KPro from Version 6.6.x.x to 6.7.x.x
This section is for those who have already installed HaloCAD KPro 6.6 and want to update to the latest 6.7 version. It is recommended to make a backup of the configuration properties file.
Navigate to the directory in which the HaloCAD KPro installation package is located and double-click the HaloCAD_KPro_Setup.exe
.
The installation begins with the following dialog:
Update screen #1
If you choose to remove the component, choose Uninstall; otherwise, select Update and proceed to Step 4. To remove, follow the steps outlined below.
Uninstall: If you wish to uninstall the KPro component, select Uninstall and click Next.
To the question, "You are about to uninstall the HaloCAD Kpro. Are you sure you want to uninstall the application?", answer Yes.
To the question, "Do you want to keep the HaloCAD Kpro configuration files?", answer Yes. It is only possible to keep the Tomcat folder, and the only way to obtain the configuration files is to manually create a backup. If you select No, no files are taken as a back up.
After completing the uninstallation process, click Close to close the wizard.
Update: The update will begin, and once finished, you will see the completion dialog.
Click Close to close the update wizard.
Use the HaloENGINE tool to adjust the configuration. Note: To use the previous versions (<6.6) of the server certificate
HalocoreServer.cer
, simply rename it toHaloENGINE.cer
.
Permission
After completing the configuration, there will be
kpro_config.properties
file created atC:\Program Files\Secude\HaloCAD KPro\config.
If you don't specify a location for the error log and local audit log, the directory defaults to
C:\Program Files\Secude\HaloCAD KPro\logs\
. You must ensure that these directories allow accessing them in your system. To do so, assign folder permissions to "ALL APPLICATION PACKAGES
".
Auto Clearance of Session Files
HaloCAD KPro comprises two Schedulers to delete old files based on file expiration criteria. As a default behavior during a file upload/download, a folder is created with a unique session ID. When the session ends, a JSON file will be created in Tomcat's temp directory, which contains session details.
For example: [{"expiration":"yyyymmddhhmmss","sessionId":"ebabc39a-5c10-478b-b61c-9e292ce1fe9b"}]
Scheduler ECTR—Here, the actual expiry for a session is calculated from 3 hours after the session ID's end session function is triggered. Thus, the files are maintained in the same folder and remain valid for another 3 hours. However, the scheduler runs (
sessiondetails.json
) every 2 hours on session IDs, examines and deletes the files which had reached their expiration.Scheduler KPro—Here, the actual expiry for a session is calculated 1 hour after the session ID's end session function is triggered. The scheduler runs (
kprosessiondetails.json
) every 3 hours on session IDs, examines and deletes the files which had reached their expiration.
Appendix
This section provides supplemental information.
Open-source Software
Third-party software/code is included or bundled with Secude's products according to its appropriate license. Secude conducts testing to make sure the third-party products are compatible with and perform as intended with Secude applications.
The third-party libraries and dependencies used by HaloCAD KPro are shown in the table below.
Library | Version | Source Code | License Name | License Link |
---|---|---|---|---|
javax.xml.bind:jaxb-api | 2.3.1 | CDDL-1.0 | ||
javax.xml.ws:jaxws-api | 2.3.1 | CDDL-1.0 | ||
javax.xml.soap:javax.xml.soap-api | 1.4.0 | CDDL-1.0 | https://github.com/javaee/javax.xml.soap/blob/master/LICENSE | |
javax.annotation:javax.annotation-api | 1.3.2 | CDDL-1.0 | https://github.com/javaee/javax.xml.soap/blob/master/LICENSE | |
com.sun.activation:javax.activation-api | 1.2.0 | https://repo1.maven.org/maven2/javax/activation/javax.activation-api/1.2.0/ | CDDL-1.0 | https://github.com/javaee/activation/blob/master/LICENSE.txt |
com.sun.activation: jakarta.activation | 1.2.2 | CDDL-1.0 | ||
org.slf4j:slf4j-api | 1.7.36 | MIT | ||
com.sun.xml.bind:jaxb-impl | 2.3.5 | CDDL-1.1 | ||
jakarta.xml.bind:jakarta.xml.bind-api | 2.3.3 | BSD 3 | https://github.com/eclipse-ee4j/jaxb-api/blob/master/LICENSE.md | |
joda-time:joda-time | 2.12.7 | Apache 2.0 | https://github.com/JodaOrg/joda-time/blob/master/LICENSE.txt | |
net.iharder:base64 | 2.3.9 | Public Domain | ||
org.graylog2:syslog4j | 0.9.60 | LGPL 2.1 | https://github.com/graylog-labs/syslog4j-graylog2/blob/master/LICENSE | |
ch.qos.logback:logback-classic | 1.2.13 | LGPL 2.1 | ||
ch.qos.logback:logback-core | 1.2.13 | LGPL 2.1 | ||
com.googlecode.json-simple:json-simple | 1.1.1 | Apache 2.0 | https://github.com/fangyidong/json-simple/blob/master/LICENSE.txt | |
org.apache.commons:commons-lang3 | 3.13 | Apache 2.0 | https://github.com/apache/commons-lang/blob/master/LICENSE.txt | |
nl.basjes.parse.useragent:yauaa | 5.23 | Apache 2.0 | ||
org.eclipse.persistence:org.eclipse.persistence.moxy | 2.7.9 | https://github.com/eclipse-ee4j/eclipselink/tree/master/moxy | EPL 2.0 | https://github.com/eclipse-ee4j/eclipselink/blob/master/LICENSE.md |
com.google.guava:guava | 33.0.0-jre.jar | Apache 2.0 | ||
org.apache.logging.log4j:log4j-api | 2.20.0 | Apache 2.0 | https://github.com/apache/logging-log4j2/blob/release-2.x/LICENSE.txt | |
com.javax0.license3j:license3j | 3.2.0 | Apache 2.0 | ||
javax.servlet:javax.servlet-api | 4.0.1 | CDDL-1.0 | ||
org.apache.poi:poi-ooxml | 5.2.3 | Apache 2.0 | ||
com.univocity:univocity-parsers | 2.9.1 | Apache 2.0 | ||
com.opencsv:opencsv | 5.9 | Apache 2.0 | ||
com.ibm.icu:icu4j | 70.1 | ICU license | ||
com.fasterxml.jackson.core:jackson-databind | 2.13.5 | Apache 2.0 | https://github.com/FasterXML/jackson-databind/blob/2.13/LICENSE | |
com.datastax.oss:java-driver-core | 4.17.0 | Apache 2.0 | ||
com.datastax.oss:java-driver-query-builder | 4.17.0 | Apache 2.0 | ||
com.datastax.oss:java-driver-mapper-runtime | 4.17.0 | Apache 2.0 | ||
org.json:json | 20211205 | org.JSON | ||
org.apache.httpcomponents:httpclient | 4.5.14 | Apache 2.0 | https://github.com/apache/httpcomponents-client/blob/master/LICENSE.txt | |
com.google.protobuf:protobuf-java | 3.21.7 | BSD 3-Clause | https://github.com/protocolbuffers/protobuf/blob/master/LICENSE | |
org.apache.cxf:cxf-rt-frontend-jaxws | 3.5.8 | Apache 2.0 | ||
org.apache.cxf:cxf-rt-rs-security-cors | 3.5.8 | Apache 2.0 | ||
org.apache.cxf:cxf-rt-ws-rm | 3.5.8 | Apache 2.0 | ||
com.sun.xml.ws:rt | 2.3.0 | https://jar-download.com/artifacts/com.sun.xml.ws/rt/2.3.0/source-code | EDL 1.0 | |
org.springframework: spring-context | 5.3.33 | https://github.com/spring-projects/spring-framework/tree/main/spring-context | Apache 2.0 | https://github.com/spring-projects/spring-framework/blob/main/src/docs/dist/license.txt |
org.springframework:spring-web | 5.3.33 | https://github.com/spring-projects/spring-framework/tree/main/spring-web | Apache 2.0 | https://github.com/spring-projects/spring-framework/blob/main/src/docs/dist/license.txt |
org.codehaus.woodstox:stax2-api | 3.1.4 | Apache 2.0 | ||
org.springframework.boot:spring-boot-starter-web | 2.7.18 | Apache 2.0 | https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt | |
org.springframework.boot:spring-boot-starter-security | 2.7.18 | Apache 2.0 | https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt | |
org.springframework.security:spring-security-jwt | 1.1.1. | Apache 2.0 | https://github.com/spring-projects/spring-security-oauth/blob/main/license.txt | |
o.jsonwebtoken:jjwt | 0.9.1 | Apache 2.0 | ||
javax.resource:javax.resource-api | 1.7.1 | CDDL-1.0 | https://github.com/javaee/javax.resource/blob/master/LICENSE | |
commons-io:commons-io | 2.5 | Apache 2.0 | https://github.com/apache/commons-io/blob/master/LICENSE.txt | |
commons-fileupload:commons-fileupload | 1.2.1 | Apache 2.0 | https://github.com/apache/commons-fileupload/blob/master/LICENSE.txt | |
commons-beanutils:commons-beanutils | 1.9.4 | Apache 2.0 | https://github.com/apache/commons-beanutils/blob/master/LICENSE.txt | |
org.springframework.boot:spring-boot-gradle-plugin | 2.7.18 | https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project | Apache 2.0 | https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt |
org.springframework.batch:spring-batch-core | 4.3.10 | Apache 2.0 | https://github.com/spring-projects/spring-batch/blob/main/LICENSE.txt | |
org.springframework.batch:spring-batch-infrastructure | 4.3.7 | Apache 2.0 | https://github.com/spring-projects/spring-batch/blob/main/LICENSE.txt | |
org.springframework.boot:spring-boot-starter-actuator | 2.7.18 | https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project | Apache 2.0 | https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt |
org.springframework.hateoas:spring-hateoas | 1.4.1 | Apache 2.0 | https://github.com/spring-projects/spring-hateoas/blob/main/LICENSE | |
org.jolokia:jolokia-core | 1.7.2 | Apache 2.0 | ||
org.dizitart:nitrite | 3.2.0 | Apache 2.0 | https://github.com/nitrite/nitrite-java/blob/develop/LICENSE.md | |
com.microsoft.azure:msal4j | 1.7.1 | https://github.com/AzureAD/microsoft-authentication-library-for-java | MIT | https://github.com/AzureAD/microsoft-authentication-library-for-java/blob/dev/LICENSE |
org.springframework.boot:spring-boot-starter-oauth2-resource-server | 5.8.2 | https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project | Apache 2.0 | https://github.com/spring-projects/spring-boot/blob/main/LICENSE.txt |
org.springframework.security:spring-security-oauth2-jose | 5.8.2 | Apache 2.0 | https://github.com/spring-projects/spring-security -https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt | |
org.springframework.security.oauth:spring-security-oauth2 | 2.5.2.RELEASE | Apache 2.0 | https://github.com/spring-projects/spring-security -https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt | |
org.springframework.security:spring-security-oauth2-client | 5.8.2 | Apache 2.0 | https://github.com/spring-projects/spring-security -https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt | |
org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure | 2.6.8 | Apache 2.0 | https://github.com/spring-projects/spring-security -https://github.com/spring-projects/spring-security/blob/main/LICENSE.txt | |
Tomcat | 9.0.X | Apache 2.0 | ||
Java | 11 | - |
Open-source software
Uninstalling the HaloCAD KPro Component
Method #1
When you no longer use the service, you may uninstall the application. Uninstalling removes all files and registry settings that were added to your computer during the initial installation.
Follow the below steps to uninstall:
Click Start menu > go to Control Panel > Programs > Programs and Features > Uninstall a Program > select HaloCAD KPro application from the list > right-click and select Uninstall option or double-click on the installer
HaloCAD_KPro_Setup.exe
.Depending on your Windows security settings, you may get a security warning as "Do you want to allow the following program to make changes to this computer?". If you get this security warning, click the Yes button to confirm that you want to uninstall the application.
The following confirmation message will appear:
Uninstall message #1
Click Yes to confirm that you want to remove it from the computer.
You will be prompted to save a backup of the configuration files.
Uninstall message #2
Click Yes. It is only possible to keep the Tomcat folder, and the only way to obtain the configuration files is to manually create a backup. If you select No, no files are taken as a backup.
Uninstall message #3
Click OK to close the message.