Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

An Introduction to Red Hat Application Migration Toolkit

June 1, 2018
Christian Huffman
Related topics:
Developer toolsApplication modernization
Related products:
Streams for Apache Kafka

    [In case you aren't following the Red Hat JBoss Middleware blog, we are reposting An Introduction to Red Hat Application Migration Toolkit on developers.redhat.com.]

    Application migration and modernization can be a daunting task. Not only do you have to update legacy applications with newer libraries and APIs, but often you must also address new frameworks, infrastructures, and architectures all while simultaneously keeping resources dedicated to new features and versions.

    Red Hat Application Migration Toolkit (RHAMT), formerly known as Windup, provides a set of utilities for easing this process. Applications can be analyzed through a command-line interface (CLI), through a web-based interface, or directly inside Eclipse, allowing immediate modification of the source code.

    These utilities allow you to quickly gain insights into thousands of your applications simultaneously. They identify migration challenges and code or dependencies shared between applications, and they accelerate making the necessary code changes to have your applications run in the latest middleware platforms.

    Choosing the Right Distribution

    You’ve read the introduction, possibly seen a video, and are eager to run your first application through the process. Where do you begin?

    RHAMT provides a number of different distributions to meet your needs, and all include detailed reports that highlight migration issues with effort estimation. Each of these is summarized below.

    CLI

    CLI Download – Product Documentation

    The CLI is a command-line tool that provides access to the reports without the overhead of the other tools. It includes a wide array of customization options, and it allows you to finely tune the RHAMT analysis options or integrate with external automation tools.

    Web Console

    Web Console Download – Product Documentation

    The web console is a web-based system that allows a team of users to assess and prioritize migration and modernization efforts. In addition, applications can be grouped into projects for analysis.

    Eclipse Plug-in

    Eclipse Plug-in Download – Product Documentation

    The Eclipse plug-in provides assistance directly in Eclipse and Red Hat JBoss Developer Studio (JBDS), and it allows developers to see migration issues directly in the source code. The Eclipse plug-in also provides guidance on resolving issues and offers automatic code replacement where possible.

    Start by Choosing a Distribution

    • If you’re working on a team that needs concurrent access to the reports, or you have a large number of applications to analyze, then choose the web console.
    • If you’re a developer familiar with Eclipse or JBDS and want live feedback, then start with the Eclipse plug-in.
    • Otherwise, we recommend starting with the CLI.

    Follow the download link for the chosen distribution, and then examine the first few chapters in the appropriate guide to install and run the tool.

    Analyzing an Application

    Assume you have a local installation of RHAMT, located at RHAMT_HOME, and an application you want to analyze. For the purposes of this blog, we’ll also assume that you chose the CLI. With that out of the way, let’s get started.

    The analysis is performed by calling rhamt-cli and passing it in the application along with any desired options, as seen in the following example.

    $ bin/rhamt-cli --sourceMode --input /path/to/source_folder/ --output /path/to/output_folder/ --target eap7

    The options are straightforward:

    • –sourceMode indicates the input files are source files instead of compiled binaries.
    • –input specifies the path to the file or directory containing the files to be analyzed.
    • –output specifies the path to the directory to contain the reports.
    • –target specifies the technology to migrate to; it is used to determine the rules for the analysis.

    Once the analysis finishes, a message will be seen in the console indicating the path to the report.

    Report created: /path/to/output_folder/index.html
    Access it at this URL: file:///path/to/output_folder/index.html

    Rules

    All of RHAMT’s distributions utilize the same rules engine to analyze the APIs, technologies, and architectures used by the application you plan to migrate. This engine extracts files from archives, decompiles classes, scans and classifies file types, analyzes XML and other file content, analyzes application code, and then generates the reports.

    Each of these actions is handled by defined rules, which consist of a set of actions to perform once conditions are met. We’ll look more in-depth at how rules work and at creating your own custom rules in a subsequent post, but for now, know that RHAMT includes a comprehensive set of standard migration rules to get you started.

    Just Want to "Lift and Shift"?

    Lifting and shifting, or rehosting, an application is one possible first step in migrating it. This process involves moving the application onto a different target runtime or infrastructure. A common end goal of this stage is to make the smallest number of changes to have the application running successfully in a cloud environment.

    Once the application is successfully running in the cloud, the next step is to modernize the application so that it’s natively designed for a cloud environment. Instead of simply rehosting the application, this step involves redesigning it, moving unnecessary dependencies and libraries outside the application.

    Regardless of which step you’re at, RHAMT assists with both of these steps by providing a set of cloud-ready rules. Once executed against the application, a detailed report is created that indicates what changes should be made. For anyone familiar with using RHAMT to migrate middleware platforms, the process is similar: examine the report and adjust your application based on the feedback.

    It’s that simple.

    Summary

    Wherever you are in the migration process, I’d recommend looking at RHAMT. It’s extremely simple to set up, and it comes with a number of default rules to assist in any part of the migration and modernization process. In addition, RHAMT facilitates solving unique problems once; after a given solution has been identified, a custom rule can be created to capture that solution, vastly simplifying the migration process.

    Stay tuned for our next update, where we discuss how to create custom rules to better utilize RHAMT in your environment.

    References

    • Red Hat Application Migration Toolkit
    • Product Documentation for Red Hat Application Migration Toolkit
    Last updated: April 29, 2024

    Recent Posts

    • Protect data offloaded to GPU-accelerated environments with OpenShift sandboxed containers

    • Case study: Measuring energy efficiency on the x64 platform

    • How to prevent AI inference stack silent failures

    • Preventing GPU waste: A guide to JIT checkpointing with Kubeflow Trainer on OpenShift AI

    • How to manage TLS certificates used by OpenShift GitOps operator

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.