On 27/01/2026 21:44, Fatima Qaisar wrote:

<snip/>

‎I attempted to continue building the tomcat-maven-plugin locally.
Initially, the build was failing due to JDK compatibility issues. I
experimented with updating some configurations to improve compatibility
with newer JDK versions(jdk 17+), and with those changes I was able to
build 6 of the modules successfully, although the remaining two were still
failing after I tried changing tomcat8 version to a newer one.

I've been working with Java 8 locally and that seems to be working reasonably well.

One of the things I haven't looked at yet is how the plug-in handles the different minimum Java versions. Tomcat 7 has a minimum Java version of Java 6 and Tomcat 8 has a minimum Java version of Java 7. Looking forward, is it Java 8 for Tomcat 9, Java 11 for Tomcat 10 and Java 17 for Tomcat 11.

You need to understand how the plug-in handles that in order to plan for what you need to aim for.

Talking of aims, before you get too far it would be good to set out a high level set of aims and an outline plan of how to get there. In terms of aims, updating to support Tomcat 9, 10 & 11 are the obvious ones. What other aims would you add?

In terms of a plan, there are several ways I can think of to tackle this. What is your outline plan at this stage (in terms of detail I'm thinking of no more than 10 short bullet points just to give high level overview)?

‎In parallel, I reviewed some recent pull requests and then retried
building the plugin from a clean, synced version of the codebase (without
my local changes). In this case, all modules built successfully except for
the archetype module, which failed RAT checks for four files. After
skipping those checks, the build progressed further and only the archetype
module failed to build

Interesting. I didn't see any errors. Everything built for me. You need to start from a working build so this seems like a good place to focus attention.

I was using Java 8 from the command line and running "mvn clean package" which is what I usually use when testing Maven builds locally. That might not be the best option - I'm no Maven expert - but it has been working for me for a while.

What did you do to get those errors?

The main issues I’ve observed are:

· Non-resolvable parent POMs due to ${rootArtifactId} placeholders
· Leading backslashes in groupId and artifactId values

My understanding is that those are expected in an archetype so should not be the source of any errors.

‎At this point, I wanted to ask for your guidance: would it be more useful
for me to continue digging into these build and configuration issues until
I can fully resolve them, or would you recommend focusing on other areas
for now to first build a stronger understanding of the project? Moreover,
should I try adding license headers to the files which are failing the rat
checks?

Short term I would suggest:
- get the current HEAD building cleanly with Java 8
- work on the high level aims and high level plan
- testing a local build with a simple "Hello World" web application to confirm that the plug-in works

I've just seen there is a tc8.x branch. It would be good to understand if that is new work on Tomcat 8 support or if it has already been integrated into main.

‎Tomorrow, I plan to start by reviewing the class you suggested and
studying Maven plugin architecture in more detail.
‎
‎For context, my current setup is:
‎
‎- OS: Windows 10
‎- JDK: 25.0.2
‎- Apache Maven: 3.9.12

All sounds good. Let me know if you have any questions.

Mark


‎
‎Thank you for your time and guidance.
‎
‎Best regards,
‎Fatima

On Tue, Jan 27, 2026, 10:30 PM Mark Thomas <[email protected]> wrote:

On 27/01/2026 08:52, Mark Thomas wrote:
On 27/01/2026 08:32, Fatima Qaisar wrote:
Hi Mark,

Thank you so much for your detailed reply and for offering to mentor.
I’m
genuinely excited about the possibility of contributing to Tomcat
through a
GSoC project.

That is great. Just remember we can't guarantee anything. GSoC is a
competitive process both within the ASF and across all the
organisations. There are only a limited number of slots. I'll do what I
can to support you but I can't make any promises about whether the
project will be accepted or not.

I’ve already cloned the tomcat-maven-plugin repository, fixed a few
typos
in the README, and submitted a pull request. I also tried building the
project, which currently fails — I’ll investigate further and report my
findings soon.

Great. I'll look at the PR shortly. I'll also check out the repo so I
can follow along with what you are doing.

You'll see that I have been through and enabled dependabot, updated the
dependencies, fixed any issues caused by the updates and merged some of
the PRs.

The PRs I haven't merged fall into one or more of the following categories:
- needs a test case
- has merge conflicts
- includes unnecessary / unwanted changes
- is an initial implementation Tomcat 9 support (we probably need to
chat about how best to do this)

#44 is particularly interesting as there are a LOT of changes in there.
How to extract useful changes from this another topic for discussion.

Mark


I’m particularly interested in the Maven plugin project. Could you
suggest
which technical areas or skills I should focus on early to prepare
effectively (e.g., Maven internals, plugin architecture, or Tomcat’s
build/deployment process)? I’ll also explore the other project ideas
in the
coming days to understand them better, and then I’ll update you with a
concrete project direction.

I haven't looked at the code so this is only a guess. I'd suggest the
following:
- The o.a.c.startup.Tomcat class. This forms the basis of all embedded
Tomcat uses. There are lots of examples in the unit tests of how to use
it.
- Maven plug-in architecture is likely to be useful.

Beyond that, I suspect you'll find yourself having to learn about lots
of different areas depending on where the bugs are. Something that might
help is trying to spot groups of similar bugs and tackling them together
so you don't have to research a completely new area every time you start
a new bug.

I am committed to a full-time GSoC project this summer. I can contribute
part-time until mid-June due to university commitments, after which I
will
dedicate myself full-time to the project.

OK full-time has an expectation of ~350 hours work on the project. The
important thing is that you can get at least that much work done in the
GSoC timescales. Exactly when you get it done is less important.

Thank you again for this opportunity; I truly appreciate your guidance
and
support. I’ll follow up soon with an update on my progress.

Sounds good.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to