Unfortunately I have realised that the way I thought I was testing the TCK was not overriding the version of Jakarta Transactions in Glassfish (I was still using a -Djavax.transaction-api.version-... rather than a -Djakarta.transaction-api.version=...). I have found that having changed that the testing to use Glassfish with Jakarta Transaction from `master` no longer work.
start.appserver.unix:
[exec] Waiting for domain1 to start ..Command start-domain failed.
[exec] Error starting domain domain1.
[exec] The server exited prematurely with exit code 1.
[exec] Before it died, it produced the following output:
[exec]
[exec] Launching GlassFish on Felix platform
[exec] Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishRuntime@6d06edc4 in service registry.
[exec] Completed shutdown of GlassFish runtime
[exec] We are in non-embedded mode, so org.glassfish.main.core.glassfish [105] has nothing to do.
[exec] Feb 03, 2022 2:37:12 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner createBundleProvisioner
[exec] INFO: Create bundle provisioner class = class com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.
[exec] Exception in thread "main" java.lang.reflect.InvocationTargetException
[exec] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[exec] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[exec] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[exec] at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:73)
[exec] at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:30)
[exec] Caused by: org.jvnet.hk2.config.ConfigPopulatorException: Failed to parse domain.xml
[exec] at org.glassfish.config.support.DomainXml.throwParseError(DomainXml.java:166)
[exec] at org.glassfish.config.support.DomainXml.run(DomainXml.java:114)
[exec] at org.jvnet.hk2.config.ConfigurationPopulator.populateConfig(ConfigurationPopulator.java:34)
[exec] at org.glassfish.hk2.bootstrap.HK2Populator.populateConfig(HK2Populator.java:83)
[exec] at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.populateConfig(AbstractModulesRegistryImpl.java:190)
[exec] at com.sun.enterprise.module.bootstrap.Main.createServiceLocator(Main.java:249)
[exec] at org.jvnet.hk2.osgiadapter.HK2Main.createServiceLocator(HK2Main.java:96)
[exec] at com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishRuntime.newGlassFish(EmbeddedOSGiGlassFishRuntime.java:88)
[exec] at com.sun.enterprise.glassfish.bootstrap.GlassFishRuntimeDecorator.newGlassFish(GlassFishRuntimeDecorator.java:43)
[exec] at com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishRuntime.newGlassFish(OSGiGlassFishRuntime.java:66)
[exec] at com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:89)
[exec] ... 6 more
[exec] Caused by: org.glassfish.config.support.DomainXml$NoBackupException: No usable configuration file at /home/jenkins/agent/workspace/eclipse-ee4j_jta-api-openjdk-jdk11-latest/glassfish7/glassfish/domains/domain1/config
[exec] at org.glassfish.config.support.DomainXml.getAlternativeDomainXml(DomainXml.java:228)
[exec] at org.glassfish.config.support.DomainXml.run(DomainXml.java:110)
[exec] ... 15 more
[exec] Suppressed: A MultiException has 2 exceptions. They are:
[exec] 1. com.sun.enterprise.module.ResolveError: Failed to start OSGiModuleImpl:: Bundle = [org.glassfish.main.resources.mail-connector [207]], State = [NEW]
[exec] 2. java.lang.IllegalStateException: Could not load descriptor SystemDescriptor(
[exec] implementation=org.glassfish.resources.mail.config.MailResourceInjector
[exec] name=mail-resource
[exec] contracts={org.glassfish.resources.mail.config.MailResourceInjector,org.jvnet.hk2.config.ConfigInjector}
[exec] scope=jakarta.inject.Singleton
[exec] qualifiers={org.jvnet.hk2.config.InjectionTarget}
[exec] descriptorType=CLASS
[exec] descriptorVisibility=NORMAL
[exec] metadata=@object-type={optional,default\:user,datatype\:java.lang.String,leaf},@store-protocol={optional,default\:imap,datatype\:java.lang.String,leaf},@description={optional,datatype\:java.lang.String,leaf},@deployment-order={optional,default\:100,datatype\:java.lang.Integer,leaf},<property>={collection\:org.jvnet.hk2.config.types.Property,collection\:org.jvnet.hk2.config.types.Property},keyed-as={com.sun.enterprise.config.serverbeans.BindableResource},@transport-protocol={optional,default\:smtp,datatype\:java.lang.String,leaf},target={org.glassfish.resources.mail.config.MailResource},@jndi-name={optional,datatype\:java.lang.String,leaf},@debug={optional,default\:false,datatype\:java.lang.Boolean,leaf},@user={optional,datatype\:java.lang.String,leaf},@enabled={optional,default\:true,datatype\:java.lang.Boolean,leaf,optional,default\:true,datatype\:java.lang.Boolean,leaf},@store-protocol-class={optional,default\:com.sun.mail.imap.IMAPStore,datatype\:java.lang.String,leaf},@transport-protocol-class={optional,default\:com.sun.mail.smtp.SMTPTransport,datatype\:java.lang.String,leaf},@host={optional,datatype\:java.lang.String,leaf},key={@jndi-name},@from={optional,datatype\:java.lang.String,leaf},Bundle-SymbolicName={org.glassfish.main.resources.mail-connector},Bundle-Version={7.0.0.SNAPSHOT}
[exec] rank=0
[exec] loader=OsgiPopulatorPostProcessor.HK2Loader(OSGiModuleImpl:: Bundle = [org.glassfish.main.resources.mail-connector [207]], State = [NEW],1997623038)
[exec] proxiable=null
[exec] proxyForSameScope=null
[exec] analysisName=null
[exec] id=24
[exec] locatorId=0
[exec] identityHashCode=2041036732
[exec] reified=false)
[exec]
[exec] at org.jvnet.hk2.internal.ServiceLocatorImpl.loadClass(ServiceLocatorImpl.java:2262)
[exec] at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:433)
[exec] at org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:452)
[exec] at org.jvnet.hk2.config.DomDocument$InjectionTargetFilter.matches(DomDocument.java:160)
[exec] at org.jvnet.hk2.internal.ServiceLocatorImpl.getDescriptors(ServiceLocatorImpl.java:342)
[exec] at org.jvnet.hk2.internal.ServiceLocatorImpl.getDescriptors(ServiceLocatorImpl.java:384)
[exec] at org.jvnet.hk2.internal.ServiceLocatorImpl.getBestDescriptor(ServiceLocatorImpl.java:392)
[exec] at org.jvnet.hk2.config.DomDocument.buildModel(DomDocument.java:111)
[exec] at org.jvnet.hk2.config.ConfigModel.parseValue(ConfigModel.java:937)
[exec] at org.jvnet.hk2.config.ConfigModel.<init>(ConfigModel.java:852)
[exec] at org.jvnet.hk2.config.DomDocument.buildModel(DomDocument.java:90)
[exec] at org.jvnet.hk2.config.DomDocument.getModelByElementName(DomDocument.java:138)
[exec] at org.jvnet.hk2.config.ConfigParser.handleElement(ConfigParser.java:141)
[exec] at org.jvnet.hk2.config.ConfigParser.parse(ConfigParser.java:77)
[exec] at org.jvnet.hk2.config.ConfigParser.parse(ConfigParser.java:71)
[exec] at org.glassfish.config.support.DomainXml.parseDomainXml(DomainXml.java:284)
[exec] at org.glassfish.config.support.DomainXml.run(DomainXml.java:99)
[exec] ... 15 more
[exec] Caused by: com.sun.enterprise.module.ResolveError: Failed to start OSGiModuleImpl:: Bundle = [org.glassfish.main.resources.mail-connector [207]], State = [NEW]
[exec] at org.jvnet.hk2.osgiadapter.OSGiModuleImpl.start(OSGiModuleImpl.java:193)
[exec] at org.jvnet.hk2.osgiadapter.OsgiPopulatorPostProcessor$1.loadClass(OsgiPopulatorPostProcessor.java:54)
[exec] at org.jvnet.hk2.internal.ServiceLocatorImpl.loadClass(ServiceLocatorImpl.java:2254)
[exec] ... 31 more
[exec] Caused by: org.osgi.framework.BundleException: Unable to resolve org.glassfish.main.resources.mail-connector [207](R 207.0): missing requirement [org.glassfish.main.resources.mail-connector [207](R 207.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.resource)(version>=2.0.0)(!(version>=3.0.0))) [caused by: Unable to resolve jakarta.resource-api [148](R 148.0): missing requirement [jakarta.resource-api [148](R 148.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.transaction)(version>=2.0.0)(!(version>=3.0.0)))] Unresolved requirements: [[org.glassfish.main.resources.mail-connector [207](R 207.0)] osgi.wiring.package; (&(osgi.wiring.package=jakarta.resource)(version>=2.0.0)(!(version>=3.0.0)))]
[exec] at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
[exec] at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
[exec] at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:1006)
[exec] at org.jvnet.hk2.osgiadapter.OSGiModuleImpl.startBundle(OSGiModuleImpl.java:224)
[exec] at org.jvnet.hk2.osgiadapter.OSGiModuleImpl.start(OSGiModuleImpl.java:185)
[exec] ... 33 more
[exec]
[exec] Result: 1
[echo] The App Server is now available.
[echo] ts.home = /home/jenkins/agent/workspace/eclipse-ee4j_jta-api-openjdk-jdk11-latest/transactions-tck/bin/xml/../..
[echo] In a bundle
[echo] The deliverable currently in use is /home/jenkins/agent/workspace/eclipse-ee4j_jta-api-openjdk-jdk11-latest/transactions-tck/bin/xml/../../bin.