Comment From: wilkinsona

I have reverted this change for now at least as it breaks the build with failures like this:

Caused by: org.springframework.context.ApplicationContextException: Unable to start web server
    at app//org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:164)
    at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:578)
    at app//org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
    at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730)
    at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432)
    at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
    at app//org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:134)
    at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:59)
    at app//org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:47)
    at app//org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1386)
    at app//org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:526)
    at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:134)
    at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:105)
    at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:183)
    at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)
    ... 88 more
Caused by: java.lang.NoClassDefFoundError: org/apache/tomcat/jakartaee/EESpecProfile
    at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.prepareContext(TomcatServletWebServerFactory.java:244)
    at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:209)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:183)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:161)
    ... 102 more
Caused by: java.lang.ClassNotFoundException: org.apache.tomcat.jakartaee.EESpecProfile
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    ... 106 more

Comment From: markt-asf

It appears the refactoring that made EESpecProfile an interface and EESpecProfiles the enum triggered this.

Refactoring the addition of the migration tool transformer to an inner class fixes this for my local test case.There should be a snapshot available to test with in the ASF snapshot repo in an hour or two.

Comment From: wilkinsona

Thanks, Mark. Boot builds cleanly with 10.1.3-SNAPSHOT.

Comment From: sdeleuze

Tomcat 10.1.3 has been cancelled but 10.1.4 has been released instead.