Legacy Java Application Support
for Perth, Melbourne, Sydney, Brisbane businesses.

Java 8 → 17/21 upgrades, Spring Boot migration, EJB modernisation, Oracle JDK licensing resolution, application server decommissioning, and ongoing support.

We take over legacy Java codebases. Perth-based, Australia-wide.

Technology stack architecture overview
Perth Based. Australia Wide.
Java 8 → 17/21 Upgrades
Spring Boot & EJB Migration
Fixed-Price Quotes
Legacy Java

Your Java application still works — but the technology around it has moved on

Legacy Java is everywhere. Enterprise applications built on Java 6, 7, or 8 running business-critical processes for years — sometimes decades. They work. They are reliable. But the JDK is end-of-life, the framework is outdated, the application server costs a fortune in licensing, and nobody wants to touch the code.

The most common scenario: a Java application that the business depends on, built by a team that no longer exists. The original architect left. The consulting company that built it is gone. The code is undocumented. But it runs payroll, processes orders, or manages inventory — and it cannot just be switched off.

We take over legacy Java codebases. Audit the application, upgrade the JDK, modernise the framework (Spring Boot 3), decommission expensive application servers, and provide ongoing support. No judgement about the code — we just make it maintainable.

Legacy Java application modernisation with JDK upgrade and Spring Boot migration
What We Do

Legacy Java support services — by type

JDK upgrades, Spring migration, security patching, ongoing support, and application server decommissioning.

Java Version Upgrades (8 → 17/21)

Java 8 was released in 2014 and is still the most widely deployed Java version. Oracle changed the licensing model — post-2019 Java 8 updates from Oracle require a commercial licence. Many businesses are stuck on the last free Java 8 update or have unknowingly lapsed their licence.

Java 17 (LTS, released 2021) and Java 21 (LTS, released 2023) are the current long-term support versions. The upgrade path involves handling removed APIs (Nashorn JavaScript engine, Java EE modules), updating dependencies, and resolving breaking changes in newer JDKs.

We also sort out the JDK distribution question. Oracle JDK, Eclipse Temurin (AdoptOpenJDK), Amazon Corretto, Azul Zulu — which one? For most businesses, Temurin or Corretto are the right choice. Free, well-supported, and production-ready.

Spring Framework & Spring Boot Migration

Spring Framework 4.x and 5.x to Spring Framework 6 / Spring Boot 3. The big jump: Spring 6 / Spring Boot 3 requires Java 17+ and Jakarta EE (javax → jakarta namespace change). This namespace migration affects every import statement using javax.servlet, javax.persistence, javax.validation.

Spring MVC → Spring Boot migration for applications that never adopted Boot. Older Spring applications using XML configuration migrated to Java configuration and annotations. Spring Security configuration updates (the security configuration DSL has changed significantly).

EJB → Spring migration for J2EE applications. Enterprise JavaBeans replaced with Spring dependency injection, Spring Data JPA, and Spring Security. Session beans, message-driven beans, and entity beans replaced with modern Spring equivalents.

Security Patching & Vulnerability Fixes

Java applications with security vulnerabilities. Log4j (CVE-2021-44228) was the headline, but there are many more: outdated libraries in the classpath, insecure deserialization, XML entity injection, and JDBC injection.

We run dependency analysis (OWASP Dependency-Check, Snyk), review authentication and authorisation logic, check for common Java vulnerabilities, and fix everything. Maven/Gradle dependencies updated to patched versions.

For applications on end-of-life Java versions (Java 6, 7, and Oracle Java 8 without a support contract), the most important security fix is the JDK upgrade itself. Old JDKs have known vulnerabilities that will not be patched.

Ongoing Java Application Support

Monthly support plans for legacy Java applications. Bug fixes, security monitoring, dependency management, performance investigations, and small feature requests. A developer who knows your codebase.

Many legacy Java applications run critical business processes but nobody in the organisation understands the code. The original developer left years ago. The application works, but nobody dares touch it.

We take over legacy Java codebases. Audit the application, document the architecture, set up CI/CD (Jenkins, GitHub Actions, or GitLab CI), and resume maintenance. We work with Maven, Gradle, Ant, or whatever build system the project uses.

Application Server Modernisation

Legacy Java applications running on WebSphere, WebLogic, JBoss/WildFly, or GlassFish. These heavyweight application servers are expensive (licensing), complex (configuration), and increasingly unnecessary.

Modern Java applications run on embedded servers — Spring Boot with embedded Tomcat, Jetty, or Undertow. The application is a single JAR file that starts with `java -jar`. No application server installation, no EAR/WAR deployment, no JNDI configuration.

The migration involves extracting the application from the app server's proprietary features (WebSphere's Java EE extensions, WebLogic clustering, JBoss-specific annotations) and replacing them with Spring Boot equivalents or standard Java.

Java version upgrade from Java 8 to Java 17/21 LTS with dependency resolution
Spring Framework migration from 4.x/5.x to Spring Boot 3 with Jakarta EE namespace changes
Java security patching with OWASP dependency check and Log4j vulnerability remediation
Ongoing legacy Java application support with documentation, CI/CD, and maintenance
Java application server migration from WebSphere/WebLogic to Spring Boot with embedded Tomcat
Legacy database migration project
Case Study

Legacy database migration that preserved 15 years of data

We migrated a sporting club from Microsoft Access to a modern web platform. Fifteen years of member data, registrations and competition records — safely moved and now cloud-accessible.

Read the full case study →
15 yrs Data preserved
100% Cloud accessible
50% Less admin time
Why Modernise

Why upgrading your Java application matters

Oracle Java licensing comparison with free JDK distributions like Temurin and Corretto

Stop paying Oracle Java licensing — or sort it out properly

Oracle changed Java licensing in January 2023. The "Oracle Java SE Universal Subscription" is now priced per-employee (not per-installation). For a 100-person company, that is roughly US$15 per employee per month — US$18,000/year for Java.

Most businesses do not need Oracle JDK. Eclipse Temurin, Amazon Corretto, and Azul Zulu are free, open-source JDK distributions with long-term support. Same Java, no licence fees.

If your organisation is running Oracle JDK without a current subscription, you may be out of compliance. We help sort this out: migrate to a free JDK distribution, ensure your Java version is supported, and remove the licensing risk.

Java performance improvements with ZGC, virtual threads, and GraalVM native compilation

Modern Java is significantly faster

Java 17 and 21 include years of garbage collection improvements, JIT compiler optimisations, and language features that enable better code. ZGC and Shenandoah garbage collectors virtually eliminate GC pauses. Virtual threads (Java 21) dramatically improve throughput for I/O-bound applications.

Spring Boot 3 with GraalVM native image compilation produces executables that start in milliseconds instead of seconds. For microservices and containerised deployments, this is transformative.

Startup time, memory usage, and throughput all improve significantly on modern Java. For applications running on cloud infrastructure, this directly translates to lower compute costs.

Modern Java developer experience with Java 21 features and Spring Boot 3

Modern Java attracts better developers

Nobody wants to work on a Java 6 application with EJB 2.x, JSP views, and an Ant build. Candidates ask about the tech stack. "Java 8 with Spring MVC on WebSphere" signals technical debt and slow-moving management.

"Java 21, Spring Boot 3, Docker, Kubernetes" tells developers the team is competent, the codebase is modern, and the work will be interesting. Hiring is dramatically easier.

Existing team members benefit too. Modern Java (records, sealed classes, pattern matching, text blocks) is a significantly better language. Modern Spring Boot is a pleasure to work with compared to legacy Spring XML configuration.

Java cloud deployment with Docker containers, Kubernetes, and CI/CD pipelines

Modern Java deploys to cloud natively

Legacy Java applications running on heavyweight application servers are difficult to containerise. Modern Spring Boot applications produce a single JAR or Docker image that deploys to any cloud platform.

Kubernetes, Azure App Service, AWS ECS, Google Cloud Run — all designed for containerised applications. Modern Java fits this model naturally. Legacy Java on WebSphere or WebLogic does not.

CI/CD pipelines for modern Java are straightforward. Maven or Gradle build, Docker image, push to registry, deploy. No more complex EAR deployments to application servers.

Support Services

Legacy Java support and maintenance

Emergency fixes, security audits, code takeovers, and monthly support plans.

Emergency Java Fixes

Production down? Critical bug? Security vulnerability like Log4Shell? We respond to Java application emergencies quickly.

Security Audit

OWASP Dependency-Check, code review, authentication/authorisation analysis, and Java vulnerability assessment.

Dependency Management

Maven/Gradle dependencies audited, updated, and untangled. Abandoned libraries replaced with maintained alternatives.

Code Takeover

Original Java developer gone? We audit the codebase, document the architecture, set up CI/CD, and resume development.

Performance Profiling

JVM tuning, garbage collection analysis, thread dump analysis, memory leak detection, and database query optimisation.

Monthly Support Plans

Retainer-based support. Bug fixes, security patches, dependency updates, monitoring, and feature development.

Java Support

Legacy Java application need a developer?

Send us access to the codebase. We will audit it and provide an upgrade plan with fixed pricing.

Common Scenarios

Legacy Java situations we handle

If one of these sounds familiar, talk to us.

01

Java 8 → Java 17/21

The most common upgrade. Java 8 to current LTS. Resolve removed APIs, update dependencies, sort out JDK licensing.

02

Spring MVC → Spring Boot

Legacy Spring application modernised to Spring Boot. XML config → annotations. WAR → executable JAR. Embedded server replaces app server.

03

javax → jakarta Migration

Java EE namespace change. Every javax.servlet, javax.persistence, and javax.validation import updated for Spring Boot 3 / Jakarta EE.

04

WebSphere/WebLogic → Spring Boot

Expensive application server replaced with Spring Boot embedded Tomcat. Lower costs, simpler deployment, cloud-ready.

05

Developer Left

Java developer or team moved on. Nobody understands the legacy code. Need someone to take over and maintain it.

06

Oracle JDK Licensing Issue

Oracle Java licence compliance concern. Migration to free JDK distribution (Temurin, Corretto) to eliminate licensing fees and risk.

How It Works

Legacy Java modernisation — step by step

Assess, build, upgrade, test, deploy. Everything in staging before production.

p01
p01

1. Application Assessment

Review the codebase, build system (Maven/Gradle/Ant), Java version, application server, Spring version, and all dependencies. Identify EOL components, security vulnerabilities, and upgrade blockers. You get a detailed report.

p02
p02

2. Build & CI/CD Setup

Build system modernised if needed (Ant → Maven/Gradle). CI/CD pipeline configured. Staging environment set up matching production. Tests run as baseline.

p03
p03

3. JDK & Framework Upgrade

JDK upgraded to target version. Spring, Hibernate, and other frameworks upgraded. Jakarta namespace migration. Removed APIs replaced. All compile errors resolved.

p04
p04

4. Dependency Updates

Maven/Gradle dependencies updated to current versions. Abandoned libraries replaced. Security vulnerabilities in the dependency tree resolved.

p05
p05

5. Testing & Deployment

Full test suite run. Manual testing of critical workflows. Performance benchmarked. Deployed to staging, validated, then deployed to production with rollback plan.

p06
p06

6. Post-Upgrade Monitoring

Application monitored for 4 weeks post-upgrade. JVM metrics, error tracking, and performance comparison. Issues caught and resolved promptly.

Technical Context

Technologies involved in Java modernisation

JDK, frameworks, databases, build tools, and cloud platforms.

Java Development

Our main Java page covering new Java projects, Spring Boot development, and enterprise applications.

Spring Boot

The modern Java application framework. Most Java modernisations target Spring Boot as the platform.

Oracle / PostgreSQL

The database behind many legacy Java applications. Oracle to PostgreSQL migration is common alongside Java upgrades.

Docker & Kubernetes

Containerised deployment for modernised Java applications. Replaces heavyweight application servers.

AWS / Azure

Cloud deployment for Java applications. ECS, EKS, Azure App Service, and managed Kubernetes.

Maven / Gradle

Java build tools. Dependency management, build automation, and CI/CD integration.

Our Java 8 application on WebSphere was costing us $40,000/year in licensing. HELLO PEOPLE migrated it to Java 21 + Spring Boot 3 + Docker in twelve weeks. Runs on AWS now at a fraction of the cost. WebSphere is gone and nobody misses it.

IT Director Logistics company, Melbourne
FAQs

Common questions about legacy Java support

Is Java 8 still supported?

Oracle Java 8 public updates ended January 2019 for commercial use. Extended support requires an Oracle Java SE Subscription. Free alternatives: Eclipse Temurin, Amazon Corretto, and Azul Zulu all provide Java 8 builds with security patches. But upgrading to Java 17 or 21 is the better long-term path.

How much does a legacy Java upgrade cost?

Java version upgrade only (8 → 17/21): $5,000 to $15,000. Spring Framework migration (Spring MVC → Spring Boot 3): $10,000 to $30,000. Full modernisation (Java 8 + EJB + WebSphere → Java 21 + Spring Boot 3 + Docker): $30,000 to $80,000+. We audit and quote fixed-price.

How long does the upgrade take?

Java version jump only: 2-4 weeks. Spring migration: 4-10 weeks. Full modernisation: 8-20+ weeks. The main variables are application size, framework complexity, and the number of proprietary app server dependencies.

What about the javax → jakarta namespace change?

Spring Boot 3 / Spring Framework 6 require Jakarta EE (jakarta.* packages instead of javax.*). This affects every import statement using javax.servlet, javax.persistence, javax.validation, etc. Tools like OpenRewrite automate most of the change, but testing is still needed.

Can we migrate from Oracle JDK to a free alternative?

Yes. Eclipse Temurin, Amazon Corretto, and Azul Zulu are drop-in replacements for Oracle JDK. Same Java, same APIs, fully compatible. We swap the JDK, test the application, and verify everything works. Usually takes 1-2 days plus testing.

What about our EJB components?

EJB (Enterprise JavaBeans) is effectively dead in modern Java development. We migrate EJB components to Spring equivalents: Session Beans → Spring Services, Entity Beans → JPA/Spring Data, Message-Driven Beans → Spring JMS or Spring AMQP.

Can you take over our Java application from the original developer?

Yes. Legacy Java codebase takeover is a core service. We need repository access and server/deployment access. We audit the code, document the architecture, set up CI/CD, and handle ongoing maintenance.

Should we upgrade or rebuild from scratch?

Depends on the codebase quality and business requirements. If the architecture is sound and the application does what the business needs, upgrading is usually cheaper and faster. If the architecture is fundamentally broken or the business needs have changed significantly, a rebuild may be the better investment. We assess and advise honestly.

Get Started

Ready to modernise your Java application?

Send us repository access and we will audit the application. Clear plan, fixed-price quote, no obligations.

Tell Us About Your Java Application

Java version, framework, application server, and what you need done. We will audit and come back with a plan.

Prefer a quick chat? Call 0425 531 127 – we're Perth-based and we answer the phone.