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.
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 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.
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 →Why upgrading your Java application matters
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.
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 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.
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.
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.
Legacy Java situations we handle
If one of these sounds familiar, talk to us.
Java 8 → Java 17/21
The most common upgrade. Java 8 to current LTS. Resolve removed APIs, update dependencies, sort out JDK licensing.
Spring MVC → Spring Boot
Legacy Spring application modernised to Spring Boot. XML config → annotations. WAR → executable JAR. Embedded server replaces app server.
javax → jakarta Migration
Java EE namespace change. Every javax.servlet, javax.persistence, and javax.validation import updated for Spring Boot 3 / Jakarta EE.
WebSphere/WebLogic → Spring Boot
Expensive application server replaced with Spring Boot embedded Tomcat. Lower costs, simpler deployment, cloud-ready.
Developer Left
Java developer or team moved on. Nobody understands the legacy code. Need someone to take over and maintain it.
Oracle JDK Licensing Issue
Oracle Java licence compliance concern. Migration to free JDK distribution (Temurin, Corretto) to eliminate licensing fees and risk.
Legacy Java modernisation — step by step
Assess, build, upgrade, test, deploy. Everything in staging before production.
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.
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.