Repository: quarkusio/quarkus
Issue: Multipart Class Defined Outside Resource Implementation Fails with CNFE "Populator"

### Describe the bug

When I define a class meant to be used as a payload in both my REST client and resource I get a CNFE stating that the "populator" could not be located.  If I put the class with the resource it works fine.

Referencing a conversation with Michal on [Google Groups](https://groups.google.com/g/quarkus-dev/c/oq73n_QJzxI/m/zJw0CtJsAAAJ).

**Issue 1 demonstrates the error / Working 2 demonstrates what worked:**

[reproduce-issue1.zip](https://github.com/quarkusio/quarkus/files/6888330/reproduce-issue1.zip)
[reproduce-working2.zip](https://github.com/quarkusio/quarkus/files/6888336/reproduce-working2.zip)

NOTE: Hopefully I did not mix up my reproducers.

### Expected behavior

Class defined in a separate module can be used as the payload from the client and in the resource.

### Actual behavior

Class not found exception - "Populator" when the payload is defined in another module.

ClassNotFoundException: io.platform.api.publish.FilePackage_generated_populator

### How to Reproduce?

Run `mvn clean install` on the issue attached above

### Output of `uname -a` or `ver`

Ubuntu / WSL

### Output of `java -version`

JDK 11 in the POM / 15 as the default.

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

2.0.3.Final

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

3.8.1

### Additional information

I forgot to include the Jandex plugin in my reproducer but my modules all are invoking it (and I see the IDX file).  I have also tried adding a `beans.xml` but that did not help.  Anything but the multipart payload seems to work though when separated between an API jar and the service jar.

Changed files:
extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/QuarkusServerEndpointIndexer.java

diff --git a/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/QuarkusServerEndpointIndexer.java b/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/QuarkusServerEndpointIndexer.java
index c31d4bc9096..4271339ce3c 100644
--- a/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/QuarkusServerEndpointIndexer.java
+++ b/extensions/resteasy-reactive/quarkus-resteasy-reactive/deployment/src/main/java/io/quarkus/resteasy/reactive/server/deployment/QuarkusServerEndpointIndexer.java
@@ -230,7 +230,8 @@ protected void handleMultipart(ClassInfo multipartClassInfo) {
         }
         reflectiveClassProducer.produce(new ReflectiveClassBuildItem(false, false, className));
         String populatorClassName = MultipartPopulatorGenerator.generate(multipartClassInfo,
-                new GeneratedClassGizmoAdaptor(generatedClassBuildItemBuildProducer, true), index);
+                new GeneratedClassGizmoAdaptor(generatedClassBuildItemBuildProducer, applicationClassPredicate.test(className)),
+                index);
         multipartGeneratedPopulators.put(className, populatorClassName);
 
         // transform the multipart pojo (and any super-classes) so we can access its fields no matter what