- Version: Java 17 (LTS)
- Tested With: OpenJDK 17.0.17
- Purpose: Application runtime
- Maven: 3.6+ (tested with 3.8.7)
- Purpose: Build and dependency management
- Production: Microsoft SQL Server 2019+
- Development/Testing: HSQLDB 2.7.1 (embedded)
- Note: Oracle support exists in QRE framework but DDEC uses SQL Server
- Embedded: Apache Tomcat 9.0.73 (via Spring Boot)
- Port: 8080 (HTTP)
- Embedded: Apache ActiveMQ 5.16.6
- Port: 61616
- Purpose: IMS message queue emulation
- Keycloak: 20.0.3
- Purpose: SSO authentication for production
- Alternative: Basic HTTP auth with in-memory users
| Dependency |
Version |
Purpose |
| spring-boot-starter-web |
2.7.10 |
Web MVC framework |
| spring-boot-starter-data-jpa |
2.7.10 |
JPA/Hibernate support |
| spring-boot-starter-security |
2.7.10 |
Security framework |
| spring-boot-starter-tomcat |
2.7.10 |
Embedded Tomcat |
| spring-boot-starter-activemq |
2.7.10 |
ActiveMQ integration |
| Dependency |
Purpose |
| spring-core |
Core utilities, IoC container |
| spring-beans |
Bean factory, dependency injection |
| spring-context |
Application context |
| spring-web |
Web support |
| spring-webmvc |
MVC framework |
| spring-jdbc |
JDBC abstraction |
| spring-tx |
Transaction management |
| spring-jms |
JMS messaging support |
| Dependency |
Version |
Purpose |
| mssql-jdbc |
11.2.3.jre17 |
SQL Server JDBC driver |
| hsqldb |
2.7.1 |
In-memory database for testing |
| hibernate-core |
5.3.1.Final |
ORM framework |
| commons-dbcp |
1.4 |
Connection pooling |
| Dependency |
Version |
Purpose |
| javax.servlet-api |
4.0.1 |
Servlet API |
| javax.servlet.jsp-api |
2.3.1 |
JSP API |
| jstl |
1.2 |
JSP tag library |
| tomcat-embed-jasper |
9.0.73 |
JSP compilation |
| Dependency |
Version |
Purpose |
| keycloak-spring-boot-starter |
20.0.3 |
Keycloak integration |
| spring-security-core |
5.7.7 |
Core security |
| spring-security-web |
5.7.7 |
Web security filters |
| spring-security-config |
5.7.7 |
Security configuration |
| bouncy-castle |
1.70 |
Cryptography provider |
| Dependency |
Version |
Purpose |
| activemq-broker |
5.16.6 |
Embedded message broker |
| activemq-kahadb-store |
5.16.6 |
Message persistence |
| spring-jms |
5.3.26 |
JMS template support |
| Dependency |
Version |
Purpose |
| commons-lang3 |
3.8.1 |
String/object utilities |
| commons-io |
2.11.0 |
File I/O utilities |
| commons-csv |
1.9.0 |
CSV parsing (test data) |
| guava |
31.1-jre |
Google utilities |
| jackson-databind |
2.13.4 |
JSON processing |
| jsch |
0.1.55 |
SFTP client |
| Dependency |
Version |
Purpose |
| slf4j-api |
1.7.36 |
Logging facade |
| logback-classic |
1.2.11 |
Logging implementation |
| Dependency |
Version |
Purpose |
| junit |
4.13.2 |
Unit testing |
| mockito-core |
4.5.1 |
Mocking framework |
| hamcrest |
2.2 |
Assertion matchers |
| spring-test |
5.3.26 |
Spring test support |
These are internal dependencies - built from source, not downloaded:
| Module |
Purpose |
| qre2-core |
Core data types, configuration, COBOL support |
| qre2-data |
Database access, SQL execution, dialect support |
| qre2-file |
Flat file I/O, VSAM emulation |
| qre2-cobol |
COBOL copybook parsing, data conversion |
| qre2-web |
Web MVC, screen model, form handling |
| qre2-batch-core |
Batch job framework |
| qre2-ims |
IMS transaction manager emulation |
| qre2-mvs-starter |
Spring Boot auto-configuration |
| qre2-mvs-starter-ims |
IMS-specific starter |
| qre2-batch-korn |
Korn shell script integration |
| qre2-test |
Test utilities |
| qre2-core-test |
Integration test support |
qre.data.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
qre.data.url=jdbc:sqlserver://SERVER_IP;databaseName=DDEC;trustServerCertificate=true;sendStringParametersAsUnicode=false
qre.data.username=DDEC_APPL
qre.data.password=YOUR_PASSWORD
qre.data.schema.application=DDEC
qre.data.driverClassName=org.hsqldb.jdbc.JDBCDriver
qre.data.url=jdbc:hsqldb:mem:ddec
qre.data.username=sa
qre.data.password=
| Port |
Service |
Required |
| 8080 |
Tomcat HTTP |
Yes |
| 61616 |
ActiveMQ |
Yes (embedded) |
| 1433 |
SQL Server |
Production only |
| 8443 |
Keycloak HTTPS |
Production only |
# Minimum (development)
-Xms512m -Xmx1024m
# Recommended (production)
-Xms1024m -Xmx2048m
# Required for Java 17
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
| Component |
Memory |
| Base application |
~400MB |
| ActiveMQ broker |
~100MB |
| Hibernate cache |
~200MB |
| Request handling |
~300MB |
| Total recommended |
1-2GB |
| Component |
Minimum |
Tested |
Maximum |
| Java |
11 |
17 |
21 |
| Maven |
3.6 |
3.8.7 |
3.9.x |
| SQL Server |
2017 |
2019 |
2022 |
| Keycloak |
18.0 |
20.0.3 |
22.x |
The codebase uses some older dependency versions. For production deployment, consider updating:
- Log4j: Not used (uses Logback), but verify transitive dependencies
- Spring: 5.3.x is in maintenance mode; 6.x requires Java 17+
- Hibernate: 5.x is stable but 6.x is current
- Jackson: Keep updated for security patches
Run mvn dependency:tree to see full dependency graph and check for CVEs.