eclipse-ee4j / jakartaee-tck-tools

Other
7 stars 15 forks source link

Follow up on `Closed Missing ear lib that leads to compile error in generated code for unknown jpa_ee_propagation_cm_ext variable` #94

Closed scottmarlow closed 1 month ago

scottmarlow commented 1 month ago

Follow up on https://github.com/eclipse-ee4j/jakartaee-tck-tools/pull/93 + https://github.com/eclipse-ee4j/jakartaee-tck-tools/issues/92

scottmarlow commented 1 month ago

Thank you @starksm64 for the improvement and added tests. I was able to run the tests locally and see the following output printed to the console while running the added test_jpa_ee_propagation_cm_extended test:

Parsing(/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended/build.xml) Target 'package' location: /home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended/build.xml:39:


  • props file set to "/tmp/smarlow-cts-props.txt"

    Vehicles: [] [09:43:31.970] tck.jakarta./INFO Executing package target dependencies: [] PackageTarget{ clientJarDef=client{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_client.jar, fullArchiveName=jpa_ee_propagation_cm_ext_client.jar, excludedFiles=[com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$Fault.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$SetupException.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Client.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class]} clientJars=[client{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_client.jar, fullArchiveName=jpa_ee_propagation_cm_ext_client.jar, excludedFiles=[com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$Fault.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$SetupException.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Client.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class]}] earDef=ear{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.ear, fullArchiveName=jpa_ee_propagation_cm_ext.ear, excludedFiles=null}module files:

FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_client.jar, /home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_ejb.jar]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='lib', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext.jar]}lib files:

ears=[ear{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.ear, fullArchiveName=jpa_ee_propagation_cm_ext.ear, excludedFiles=null}module files:

FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_client.jar, /home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_ejb.jar]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='lib', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext.jar]}lib files: ] ejbJarDef=ejb{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_ejb.jar, fullArchiveName=jpa_ee_propagation_cm_ext_ejb.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]} ejbJars=[ejb{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_ejb.jar, fullArchiveName=jpa_ee_propagation_cm_ext_ejb.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]}] parDef=par{descriptor=modified.persistence.xml, descriptorDir=., archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.jar, fullArchiveName=jpa_ee_propagation_cm_ext.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/A.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/Account.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/B.class]} FileSet{dir='/tmp', prefix='', includes=[/tmp/modified.persistence.xml]} pars=[par{descriptor=modified.persistence.xml, descriptorDir=., archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.jar, fullArchiveName=jpa_ee_propagation_cm_ext.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/A.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/Account.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/B.class]} FileSet{dir='/tmp', prefix='', includes=[/tmp/modified.persistence.xml]}] warDef=null wars=[] rarDef=null vehiclesDef=null unhandledTaks=[] targetArchives=[]} Client: client{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_client.jar, fullArchiveName=jpa_ee_propagation_cm_ext_client.jar, excludedFiles=[com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$Fault.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$SetupException.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Client.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class]} Ejb: ejb{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_ejb.jar, fullArchiveName=jpa_ee_propagation_cm_ext_ejb.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]} Par: par{descriptor=modified.persistence.xml, descriptorDir=., archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.jar, fullArchiveName=jpa_ee_propagation_cm_ext.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/A.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/Account.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/B.class]} FileSet{dir='/tmp', prefix='', includes=[/tmp/modified.persistence.xml]} Ear: ear{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.ear, fullArchiveName=jpa_ee_propagation_cm_ext.ear, excludedFiles=null}module files:

FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_client.jar, /home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_ejb.jar]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='lib', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext.jar]}lib files:

The EE 10 tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended/build.xml contents are:

scottmarlow commented 1 month ago

The new test output that I still see a compile error with for platform-tests/src/main/java/ee/jakarta/tck/persistence/ee/propagation/cm/jta/ClientTest.java:

package ee.jakarta.tck.persistence.ee.propagation.cm.extended;

import ee.jakarta.tck.persistence.ee.propagation.cm.extended.Client;
import java.net.URL;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.OperateOnDeployment;
import org.jboss.arquillian.container.test.api.OverProtocol;
import org.jboss.arquillian.container.test.api.TargetsContainer;
import org.jboss.arquillian.junit5.ArquillianExtension;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.exporter.ZipExporter;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
import tck.arquillian.protocol.common.TargetVehicle;

@ExtendWith(ArquillianExtension.class)
@Tag("javaee")

public class ClientTest extends ee.jakarta.tck.persistence.ee.propagation.cm.extended.Client {
    /**
        EE10 Deployment Descriptors:
        jpa_ee_propagation_cm_ext: META-INF/persistence.xml
        jpa_ee_propagation_cm_ext_client: jar.sun-application-client.xml
        jpa_ee_propagation_cm_ext_ejb: jar.sun-ejb-jar.xml

        Found Descriptors:
        Client:

        Ejb:

        Ear:

        */
        @TargetsContainer("tck-appclient")
        @OverProtocol("appclient")
        @Deployment(name = "jpa_ee_propagation_cm_ext", order = 2)
        public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor) {
        // Client
            // the jar with the correct archive name
            JavaArchive jpa_ee_propagation_cm_ext_client = ShrinkWrap.create(JavaArchive.class, "jpa_ee_propagation_cm_ext_client.jar");
            // The class files
            jpa_ee_propagation_cm_ext_client.addClasses(
            ee.jakarta.tck.persistence.ee.pluggability.contracts.resource_local.Client.class,
            ee.jakarta.tck.persistence.ee.propagation.cm.extended.Stateful3IF.class,
            com.sun.ts.lib.harness.EETest.class
            );
            // The application-client.xml descriptor
            URL resURL = Client.class.getResource("com/sun/ts/tests/jpa/ee/propagation/cm/extended/");
            if(resURL != null) {
              jpa_ee_propagation_cm_ext_client.addAsManifestResource(resURL, "application-client.xml");
            }
            // The sun-application-client.xml file need to be added or should this be in in the vendor Arquillian extension?
            resURL = Client.class.getResource("/com/sun/ts/tests/jpa/ee/propagation/cm/extended/.jar.sun-application-client.xml");
            if(resURL != null) {
              jpa_ee_propagation_cm_ext_client.addAsManifestResource(resURL, "application-client.xml");
            }
            jpa_ee_propagation_cm_ext_client.addAsManifestResource(new StringAsset("Main-Class: " + Client.class.getName() + "\n"), "MANIFEST.MF");
            archiveProcessor.processClientArchive(jpa_ee_propagation_cm_ext_client, Client.class, resURL);

        // Ejb
            // the jar with the correct archive name
            JavaArchive jpa_ee_propagation_cm_ext_ejb = ShrinkWrap.create(JavaArchive.class, "jpa_ee_propagation_cm_ext_ejb.jar");
            // The class files
            jpa_ee_propagation_cm_ext_ejb.addClasses(
                ee.jakarta.tck.persistence.ee.propagation.cm.extended.Stateful3IF.class,
                ee.jakarta.tck.persistence.ee.propagation.cm.extended.TellerBean.class,
                ee.jakarta.tck.persistence.ee.propagation.cm.extended.Teller.class,
                ee.jakarta.tck.persistence.ee.propagation.cm.extended.Stateful3Bean.class
            );
            // The ejb-jar.xml descriptor
            URL ejbResURL = Client.class.getResource("/com/sun/ts/tests/jpa/ee/propagation/cm/extended/");
            if(ejbResURL != null) {
              jpa_ee_propagation_cm_ext_ejb.addAsManifestResource(ejbResURL, "ejb-jar.xml");
            }
            // The sun-ejb-jar.xml file
            ejbResURL = Client.class.getResource("/com/sun/ts/tests/jpa/ee/propagation/cm/extended/.jar.sun-ejb-jar.xml");
            if(ejbResURL != null) {
              jpa_ee_propagation_cm_ext_ejb.addAsManifestResource(ejbResURL, "sun-ejb-jar.xml");
            }
            archiveProcessor.processEjbArchive(jpa_ee_propagation_cm_ext_ejb, Client.class, ejbResURL);

        // Ear
            EnterpriseArchive jpa_ee_propagation_cm_ext_ear = ShrinkWrap.create(EnterpriseArchive.class, "jpa_ee_propagation_cm_ext.ear");

            // Any libraries added to the ear

            // The component jars built by the package target
            jpa_ee_propagation_cm_ext_ear.addAsModule(jpa_ee_propagation_cm_ext_ejb);
            jpa_ee_propagation_cm_ext_ear.addAsModule(jpa_ee_propagation_cm_ext_client);

            jpa_ee_propagation_cm_ext_ear.addAsLibrary(jpa_ee_propagation_cm_ext);

            // The application.xml descriptor
            URL earResURL = Client.class.getResource("/com/sun/ts/tests/jpa/ee/propagation/cm/extended/");
            if(earResURL != null) {
              jpa_ee_propagation_cm_ext_ear.addAsManifestResource(earResURL, "application.xml");
            }
            // The sun-application.xml descriptor
            earResURL = Client.class.getResource("/com/sun/ts/tests/jpa/ee/propagation/cm/extended/.ear.sun-application.xml");
            if(earResURL != null) {
              jpa_ee_propagation_cm_ext_ear.addAsManifestResource(earResURL, "sun-application.xml");
            }
            archiveProcessor.processEarArchive(jpa_ee_propagation_cm_ext_ear, Client.class, earResURL);
        return jpa_ee_propagation_cm_ext_ear;
        }

        @Test
        @Override
        public void test1() throws java.lang.Exception {
            super.test1();
        }

        @Test
        @Override
        public void test2() throws java.lang.Exception {
            super.test2();
        }

        @Test
        @Override
        public void test3() throws java.lang.Exception {
            super.test3();
        }

        @Test
        @Override
        public void test4() throws java.lang.Exception {
            super.test4();
        }

        @Test
        @Override
        public void test5() throws java.lang.Exception {
            super.test5();
        }

        @Test
        @Override
        public void test6() throws java.lang.Exception {
            super.test6();
        }

        @Test
        @Override
        public void test7() throws java.lang.Exception {
            super.test7();
        }
}
scottmarlow commented 1 month ago

Compile errors are:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.12.1:compile (default-compile) on project persistence-platform-tck-tests: Compilation failure: Compilation failure: [ERROR] /home/smarlow/tck/platformtck/jpa/platform-tests/src/main/java/ee/jakarta/tck/persistence/ee/propagation/cm/extended/ClientTest.java:[101,56] cannot find symbol [ERROR] symbol: variable jpa_ee_propagation_cm_ext [ERROR] location: class ee.jakarta.tck.persistence.ee.propagation.cm.extended.ClientTest [ERROR] /home/smarlow/tck/platformtck/jpa/platform-tests/src/main/java/ee/jakarta/tck/persistence/ee/propagation/cm/jta/ClientTest.java:[108,56] cannot find symbol [ERROR] symbol: variable jpa_ee_propagation_cm_jta [ERROR] location: class ee.jakarta.tck.persistence.ee.propagation.cm.jta.ClientTest

scottmarlow commented 1 month ago

For reference, I did build tck-rewrite-ant + tck-rewrite locally with platform tck project using:

                <dependency>
                        <groupId>jakarta.tck</groupId>
                        <artifactId>tck-rewrite-tools</artifactId>
                        <version>1.0.0-SNAPSHOT</version>
                    </dependency>
scottmarlow commented 1 month ago

From the console output while running the OpenRewrite recipe (with tckpackage system property set to only handle this case):

Aug 09, 2024 11:04:34 AM tck.jakarta.platform.ant.api.TestPackageInfoBuilder debug INFO: Vehicles: []

Aug 09, 2024 11:04:34 AM tck.jakarta.platform.ant.PackageTarget execute INFO: Executing package target dependencies: [] Aug 09, 2024 11:04:48 AM tck.jakarta.platform.ant.api.TestPackageInfoBuilder info INFO: Client jar added to deployment: client{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_client.jar, fullArchiveName=jpa_ee_propagation_cm_ext_client.jar, excludedFiles=[com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$Fault.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$SetupException.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest.class]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Client.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class]}

Aug 09, 2024 11:04:48 AM tck.jakarta.platform.ant.api.TestPackageInfoBuilder info INFO: Ejb jar added to deployment: ejb{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=_ejb.jar, fullArchiveName=jpa_ee_propagation_cm_ext_ejb.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3Bean.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Teller.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/TellerBean.class]}

Aug 09, 2024 11:04:48 AM tck.jakarta.platform.ant.api.TestPackageInfoBuilder info INFO: Par added to deployment: par{descriptor=modified.persistence.xml, descriptorDir=., archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.jar, fullArchiveName=jpa_ee_propagation_cm_ext.jar, excludedFiles=null} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/A.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/Account.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/common/B.class]} FileSet{dir='/tmp', prefix='', includes=[/tmp/modified.persistence.xml]}

Aug 09, 2024 11:04:48 AM tck.jakarta.platform.ant.api.TestPackageInfoBuilder debug INFO: Ear added to deployment: ear{descriptor=, descriptorDir=/home/smarlow/tck/tck10/jakartaeetck/src/com/sun/ts/tests/jpa/ee/propagation/cm/extended, archiveName=jpa_ee_propagation_cm_ext, archivesuffix=.ear, fullArchiveName=jpa_ee_propagation_cm_ext.ear, excludedFiles=null}module files:

FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_client.jar, /home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext_ejb.jar]} FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended', prefix='lib', includes=[/home/smarlow/tck/tck10/jakartaeetck/dist/com/sun/ts/tests/jpa/ee/propagation/cm/extended/jpa_ee_propagation_cm_ext.jar]}lib files:

In the debugger breakpoint on BaseJar#getClassFilesString(), I see the fileSets instance variable has two entries:

[0] = 0 = {tck.jakarta.platform.ant.TsFileSet@11423} "FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$Fault.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$SetupException.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest.class]}" dir = "/home/smarlow/tck/tck10/jakartaeetck/classes" prefix = null includes = {java.util.ArrayList@11429} size = 3 0 = "/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$Fault.class" 1 = "/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest$SetupException.class" 2 = "/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/lib/harness/EETest.class"

[1] = 1 = {tck.jakarta.platform.ant.TsFileSet@11424} "FileSet{dir='/home/smarlow/tck/tck10/jakartaeetck/classes', prefix='null', includes=[/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Client.class, /home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class]}" dir = "/home/smarlow/tck/tck10/jakartaeetck/classes" prefix = null includes = {java.util.ArrayList@11435} size = 2 0 = "/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Client.class" 1 = "/home/smarlow/tck/tck10/jakartaeetck/classes/com/sun/ts/tests/jpa/ee/propagation/cm/extended/Stateful3IF.class"

I'm not sure if ^ should have the ear lib contents based on comment on the #92 issue:

TsEar.stg has a genLibJars template that writes out the jar generation.

If the ClientJar fileSets are expected to also have the ear lib contents, then ^ is missing that.

The EAR#getLibs() was called twice but returned empty list each time. EAR#addJarResources() was not called.

starksm64 commented 1 month ago

If I take the output from the tck.conversion.ant.api.DeploymentMethodTest#test_jpa_ee_propagation_cm_extended test and put it in the wildfly-ee11-tck-runner project it shows no errors. The jpa_ee_propagation_cm_ext jar has this code to create it:

        // Par
        // the jar with the correct archive name
        JavaArchive jpa_ee_propagation_cm_ext = ShrinkWrap.create(JavaArchive.class, "jpa_ee_propagation_cm_ext.jar");
        // The class files
        jpa_ee_propagation_cm_ext.addClasses(
                ee.jakarta.tck.persistence.ee.common.A.class,
                ee.jakarta.tck.persistence.ee.common.Account.class,
                ee.jakarta.tck.persistence.ee.common.B.class
        );

It seems like you are missing the change to add the Par generation to the tools/tck-rewrite-ant/src/main/resources/DeploymentMethod.stg genMethodNonVehicle template. It should look like:

genMethodNonVehicle(pkg, deployment, testClass) ::= <<
#if(deployment.hasDeploymentDescriptors)#
    /**
    #deployment.deploymentDescriptors#
    */
#endif#
    @TargetsContainer("tck-#deployment.protocol#")
    @OverProtocol("#deployment.protocol#")
    @Deployment(name = "#deployment.name#", order = 2)
#if(deployment.hasEar)#
    public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor) {
#else#
    public static WebArchive createDeploymentVehicle(@ArquillianResource TestArchiveProcessor archiveProcessor) {
#endif#

#if(deployment.hasWar)#
    // War
    #genWar(deployment.war, testClass)#
#endif#

#if(deployment.hasClientJar)#
    // Client
    #genClientJar(deployment.clientJar, testClass)#
#endif#

#if(deployment.hasEjbJar)#
    // Ejb
    #genEjbJar(deployment.ejbJar, testClass)#
#endif#

#if(deployment.hasRar)#
    // Rar
    #genRar(deployment.rar, testClass)#
#endif#

#if(deployment.hasPar)#
    // Par
    #genPar(deployment.par, testClass)#
#endif#

#if(deployment.hasEar)#
    // Ear
    #genEar(pkg, deployment.ear, testClass)#
    return #deployment.ear.typedArchiveName#;
#else#
    return #deployment.war.typedArchiveName#;
#endif#
    }
>>
scottmarlow commented 1 month ago

It seems like you are missing the change to add the Par generation to the tools/tck-rewrite-ant/src/main/resources/DeploymentMethod.stg genMethodNonVehicle template.

Thanks, I must of been missing it as the failure is gone now.