Skip to content

An experimental project aimed at migrating a Struts1.x-based legacy application to a Spring Boot architecture without any code change.

Notifications You must be signed in to change notification settings

springing-struts/struts1-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Springing struts1 core module

An experimental project aimed at migrating legacy Struts 1.x-based applications to a Spring Boot architecture with minimal code changes. Springing Struts1 is a Spring Boot-based web framework that provides a Struts 1.x-compatible API, enabling legacy Java systems to migrate to a modern architecture with reduced cost and risk.

How to Use the Springing Struts1 Core Module

The Springing Struts1 Core Module works as a drop‑in replacement for the following modules:

  • org.apache.struts:struts-core:1.x
  • org.apache.struts:struts-extras:1.x
  • org.apache.struts:struts-taglib:1.x
  • org.apache.struts:struts-tiles:1.x
  • commons-validator:commons-validator:1.x
  • javax.servlet:servlet-api:2.x

If your project is built with Maven, replace the <dependency> entries for the above modules with a single consolidated entry:

<dependency>
  <groupId>io.github.iwauo.springing-struts</groupId>
  <artifactId>struts1-core</artifactId>
  <version>0.0.6</version>
</dependency>

Examples

The following projects demonstrate migration from the official Struts 1.x demo applications using this library:

How to build

Prerequisites

  • A Unix-based system (Mac, WSL2, SteamOS, etc.)
  • Mise version manager

Initial setup

Run the following commands in your terminal.

git clone https://github.com/springing-struts/struts1-core.git
cd struts1-core
mise install

build & test

./scripts/build.sh

The command publishes the locally built module to ./mvn-repo. You can reference it in your project configuration as follows:

For Maven projects

  <repositories>
    <repository>
      <id>local-repo</id>
      <url>file:../mvn-repo</url>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>io.github.iwauo.springing-struts</groupId>
      <artifactId>struts1-core</artifactId>
      <version>0.0.6</version>
    </dependency>
  </dependencies>

For gradle projects:

  repositories {
    maven { url '../mvn-repo' }
  }
  dependencies {
    implementation 'io.github.iwauo.springing-struts:struts1-core:0.0.6
  }

Publish to MavenCentral

Prerequisites

Steps

  1. Generate a GPG key pair

    gpg --gen-key

    Follow the prompts to create your key.

  2. Configure environment variables Copy the example configuration file:

    cp .env .env.local

    Edit .env.local and set the values for each variable (e.g., MAVEN_CENTRAL_USERNAME, SIGNING_PUBLIC_KEY)

  3. Upload the public key to the Ubuntu key server

    gpg --keyserver keyserver.ubuntu.com --send-keys ${SIGNING_PUBLIC_KEY}
  4. Publish the artifact

    ./script/publish-to-maven-central.sh

About

An experimental project aimed at migrating a Struts1.x-based legacy application to a Spring Boot architecture without any code change.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages