DE·EN
Code Modernization
Java and Eclipse modernization, accelerated by AI, delivered in fixed scope.
We upgrade, clean up, and test long-lived Java and Eclipse codebases. AI agents do the
mechanical work, combined with proven vogella tooling and our Eclipse Java MCP server, which
validates every change and makes it verifiable. The services below describe what we do, what
we deliberately leave out, and what you get at the end. We work in your repository, remote or
onsite.
- ScopeAgreed before we start, including what we leave out
- DurationA fixed number of days at a fixed price
- ResultWorking code and a report you can check
- PrivacyModels on our servers or in your network
For all services: your code is in Git, and the build runs locally with
Maven or Gradle. Anything beyond that is stated on the service itself.
Java modernization
4 services
Bringing a long-lived Java codebase back to a current, secure, and buildable state, one
bounded step at a time.
3 to 5 daysJava · Eclipse
Unreachable classes, unused constants, orphaned members, and dangling imports, found by an agent and then proven dead by your IDE's own compiler and search index before a single line is deleted.
In scope
- Internal, non-exported code
- Reference search across the whole workspace, not one project
- Registry scan of plugin.xml, e4xmi, reflection and Class.forName sites
- Build and problem-marker diff after every round, repeated until nothing new falls out
Out of scope
- Exported public API: zero references in one workspace proves nothing
- Behavioural refactoring
- Dependency upgrades
Dry run on eclipse.platform.ui: 3,692 lines removed from 148 files, zero compile errors. 38 classes, 49 constant groups, 3 private members, 107 imports, across six rounds. The safety net held back dozens of classes used from other repositories, a class referenced only from another plug-in's plugin.xml, and e4 addons registered only in .e4xmi files.
PrerequisiteThe projects import into the Eclipse IDE, because the proof runs on its compiler and search index.
You getA cleaned-up codebase, committed to Git in stages, a detailed report of every deletion with the evidence behind it, and a list of possible follow-ups for your team.
Request this service
5 daysJava
Moving a codebase from Java 8, 11, or 17 to Java 21 or 25, together with the libraries that have to move with it, with a green build and a passing test suite at every step rather than one large jump at the end.
In scope
- Toolchain, build files, and CI configuration
- Library dependency updates, in waves with a green build after each
- Removed and deprecated JDK API
- New compiler warnings introduced by the release
- Mechanical language modernization: records, switch, pattern matching
Out of scope
- Framework major upgrades
- Deliberate behavioural change
- Performance tuning
PrerequisiteThe test suite passes today, otherwise there is nothing to compare the upgrade against.
You getA repository building and testing on the new Java version and on current library versions, with the toolchain and CI updated, every forced change explained in its commit, and a list of the places we only adapted mechanically and that your team should revisit.
Request this service
5 daysJava
Coverage on the code you are about to change, not an average across the repository. Characterization tests first, so the behaviour you have today is pinned down before anyone touches it.
In scope
- Coverage baseline and the areas worth covering
- Characterization tests for existing behaviour
- Flaky tests identified and stabilized
- Agent-generated tests, reviewed line by line with your team
- Mutation testing as the real quality signal
Out of scope
- Rewriting production code beyond extracting seams
- Building end-to-end or UI test infrastructure from scratch
You getReviewed tests in your repository, a coverage baseline and delta, a mutation score that shows the tests actually assert something, and the areas still unprotected, ranked by risk.
Request this service
5 daysJava
Measure, do not guess. Profiling under a realistic load, the most expensive findings first, and every change backed by a before and after number.
In scope
- Profiling under a realistic load: CPU, allocation, heap
- Proven hot spots, ranked by effect
- Memory leaks and retention, through heap dump analysis
- Allocation pressure and garbage collector configuration
- A benchmark that stays in the repository
Out of scope
- Architectural rewrites
- Database, infrastructure, and hardware tuning
- Running monitoring or APM for you
- A promised improvement of X percent
PrerequisiteA reproducible load case, or a representative workload we can run.
You getA measurement log with before and after numbers, the commits behind every proven optimization, a benchmark that stays in your repository so you can reproduce the numbers yourself, and the optimizations we measured but did not yet apply, ranked by effort and expected gain.
Request this service
Eclipse RCP and plug-ins
2 services
We maintain parts of the Eclipse Platform itself, so these are the codebases we know from
the inside.
5 to 10 daysEclipse RCP
Bringing an Eclipse RCP application to the current Eclipse release and a current Java version, in waves, with a launchable application after every single wave.
In scope
- Target platform update in waves
- Replacement of removed and deprecated platform API
- Product, feature, and launch configuration
- Current Java version for the product and its build
Out of scope
- Eclipse 3 to Eclipse 4 rewrite
- User interface redesign
PrerequisiteA target platform and a Tycho build we can run.
You getA product that builds, launches, and passes its tests on the current Eclipse and Java release, with each removed API replacement documented in its commit, and the APIs we bridged for compatibility listed with their clean replacement for later.
Request this service
5 to 10 daysEclipse RCP
Moving an Eclipse 3 application onto the Eclipse 4 application model and dependency injection, incrementally, with the compatibility layer carrying whatever has not moved yet.
In scope
- Application model and dependency injection
- Parts, handlers, and commands
- Incremental migration behind the compatibility layer
Out of scope
- Full user interface redesign
- New features
PrerequisiteA target platform and a Tycho build we can run.
You getAn application on the e4 model with a documented migration path for the parts we deliberately left on the compatibility layer.
Request this service
Engineering practice
2 services
Work that changes how the team builds, rather than what the codebase contains.
2 to 3 daysAny stack
A review agent on your pull requests that has learned your house rules from your own review history, tuned until its findings are worth reading.
In scope
- Agent wired into your existing CI
- House rules derived from your review history
- False-positive tuning on real pull requests
Out of scope
- Replacing human review
- Blocking merges without team agreement
PrerequisiteA CI with pull requests, GitHub or GitLab, and permission to set up a bot.
You getA review agent running in your CI, its rules committed to the repository, a written team convention for what it may and may not block, and the rules we deliberately left off, with the reasoning.
Request this service
3 to 5 daysAny stack
Turning the workflows your team repeats by hand into agent skills, and connecting the agent to your internal tools through MCP so it works with your systems, not around them.
In scope
- Skills for your repeated workflows
- MCP servers for your internal tools
- Context files and prompts, reviewed and committed
Out of scope
- Building the internal tools themselves
- Operating the AI infrastructure long term
PrerequisiteAn agent client already in use in the team.
You getSkills and MCP integrations committed to your repository, with the context files and prompts that make them work, and the workflows worth doing next, ranked by effort.
Request this service
Nothing here fits?
These are the engagements we run often enough to scope and price up front. If your case
sits between two of them, or is larger than any of them, tell us what the codebase looks like
and where it hurts. You get back a scope, a duration, and a deliverable in the same form as
the cards above.
For a longer programme across a whole codebase, see the
Java modernization workshop.
Describe your case
Or reach us directly: sales@vogella.com
· +49 40 7880 4360