Browserless Application Creation: Difference between revisions

From CTMS
No edit summary
(Moved to internal documentation)
Tag: Replaced
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{Note}} For internal use only
{{Note}} Moved to internal documentation in OBS Hub
 
== Introduction ==
 
All of the code to generate Browserless Oracle installers is located here:
[https://apteanonline.sharepoint.com/:f:/r/teams/RDCALIDUS/Shared%20Documents/CALIDUS%20TMS/BrowserlessOracle?csf=1&web=1&e=vQZ5Qi Browserless Oracle on Sharepoint]
 
== Folder Contents ==
 
{{Note}} Folders in <span style="color:red">red</span> below are working directories and should '''not''' be accessed/maintained when creating builds.
 
* <span style="color:red">'''Builds'''</span>
 
:This directory contains a temporary folder for each client/version built and is generated during the browserless oracle build for each client
 
* '''Config'''
 
:This directory contains batch files which are used for configuring each individual client. See the Creating an installer package for details.
 
* '''Documents'''
 
:Documentation relating to the process
 
* '''Installers'''
 
:This directory contains the built executable installers for release to the client. there will be a folder for each client/version built
 
* <span style="color:red">'''Java'''</span>
 
:This directory contains the java versions which will be build into the installer packages
 
* <span style="color:red">'''Resource'''</span>
 
:This directory contains the scripts, sources and configuration files used in the build
 
* '''Setup'''
 
:This directory contains the software which must be installed on the users PC prior to running the installer creation process.
:{{Note}} These are for CREATING installer packages, and are NOT required on the final users machines.
 
 
== Creating an Installer package ==
 
*Pre-Requisites
 
:InnoSetup and Launch4J must be installed before an installer can be created. Run the installers from the Setup directory and accept all defaults during the process.
 
*Creation process
 
The batch script to create an installer is in the main Browserless Oracle directory:
 
  createNewBuild.bat
 
Before this is executed, a Config script is required. These are stored in the Config directory.
 
The scripts should be named by client. To create a new script for a new client, copy an existing one, rename and then amend it.
 
A client script should look like this:
 
set WMSTMS=
set BUILD=
set PREFIX=
set PROD=
set TEST=
set QA=
set JAVA_VER=
REM **** USE _GENERATE GUI.bat to generate a unique GUID for each client - ONLY DO THIS ONCE PER CLIENT!!!
set GUID=
 
*WMSTMS - Should be either TMS or WMS dependent on the system
*BUILD - the build version of the installer e.g. 1.0
*PREFIX - the clients "short" code (usually the first part of the database name before tst or prd) e.g. psdt, lfst, schw etc.
*PROD - the Production URL for the client
*TEST - the Production URL for the client
*QA - the Production URL for the client. Leave blank (but do not remove the line) if no QA/UAT system exists.
*GUID - a unique identifier for the client which is used to identify the install in the registry.
:If this is a new client script, run '''_GENERATE GUI.bat''' to generate a new GUID:
 
Generated GUI:
bcc4b78c-11c7-4bf0-840d-275b5bc729be
This has been pasted into the clipboard - Paste this into the "<client>".bat file on the line GUID=xxx
Press any key to continue . . .
 
:Paste this value onto the GUID line
 
:{{Note}} Once generated, these GUID values should not be changed for the client
 
Once the client script has been created, the '''createNewBuild.bat''' can be executed.
 
This will prompt for a client ID, which should match the name of the client script.
 
Once executed, the process will generate all of the files needed for the installer, sign them, and package them into an exe.
 
Example:
 
Client: Polar Speed
Polar Speed Browserless Oracle Build 15/02/2024 11:35:45.14
Create calidus_info.txt
launch4j
signtool - EXE
Inno Setup USER
Inno Setup ADMIN
signtool - Installer
Press any key to continue . . .
 
The above run would create 2 installers (User/Admin) in the Installers directory within Aptean Calidus-TMS or WMS and then a client/version directory:
 
Aptean Calidus-TMS-Polar Speed_ADMIN.exe
Aptean Calidus-TMS-Polar Speed_USER.exe
 
These are the signed executable installers which should be issued to the client. {{Note}} '''These installers should be tested on your own PC before issue to the client'''
 
 
== Additional Technical Details ==
 
*'''Java'''
 
New Java JRE packages should be downloaded from the [https://adoptium.net/en-GB/temurin/releases/?variant=openjdk17&os=windows&arch=x64&package=jre Eclipse Temurin] site and placed in the Java directory as jdk-xxx
{{Note}} This may change if we start using Oracle Java packages.
 
Once this is done, you should edit '''createJavaJRE.bat''' and change the set JAVA=xxx to match the folder above.
 
Run '''createJavaJRE.bat''' to create a java-xxx directory which has a cut down version of Java with only the required files to run browserless oracle.
 
The java-xxx should then be added to the JAVA_VER parameter inside the required Config script for the client.
 
 
*'''frmsal'''
 
The frmsal jar files are located in Resource\frmsal
 
The build process will try to locate a frmsal file which matches the exe being produced e.g. psdttst.frmsal.jar.
If it finds a specific frmsal for the build it will use this, and if not, it will use the generic frmsal.jar
 
 
*'''Signing Certificate'''
 
The certificate is located in Resource\Aptean. If updated, the following lines will need amending in Resouce\core.bat:
 
set CERT=..\..\Resource\Aptean\Aptean_Inc.pfx
set CERTPASS=A23cDez37Fx
set CEREX=29/03/2025
 
 
*'''Additional Info File'''
 
The file \Resource\calidus_info_generic.txt will be pulled into the calidus_info.txt file built into the installer exe.
 
Any '''non-client''' specific info which is required can be added to this file.
 
 
 
[[Category:Browserless]]
[[Category:Development]]

Latest revision as of 09:59, 11 April 2025

Note Note: Moved to internal documentation in OBS Hub