javaduke commented on issue #4924:
URL: https://github.com/apache/camel-quarkus/issues/4924#issuecomment-2685610812

   I think I got it working, at least for my application. I created two 
substitute classes which instantiate JmsFactory (see attached), I also added a 
bunch of classes to the `reflection-config.json`:
   ```
   {
       "name": "com.ibm.msg.client.jms.internal.JmsFactoryFactoryImpl",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.msg.client.jakarta.jms.internal.JmsFactoryFactoryImpl",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.mq.jmqi.remote.api.RemoteFAP",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.sun.security.cert.internal.x509.X509V1CertImpl",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.msg.client.jakarta.wmq.factories.WMQFactoryFactory",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.msg.client.jakarta.wmq.factories.admin.WMQJmsFactory",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": 
"com.ibm.msg.client.commonservices.componentmanager.ComponentManager",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": 
"com.ibm.msg.client.commonservices.componentmanager.ComponentManager",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.msg.client.commonservices.j2se.J2SEComponent",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.mq.MQJavaComponent",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.mq.jakarta.jms.MQJMSComponent",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.msg.client.jakarta.jms.internal.JMSComponent",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     },
     {
       "name": "com.ibm.msg.client.jakarta.wmq.factories.WMQComponent",
       "allDeclaredConstructors" : true,
       "allPublicConstructors" : true,
       "allDeclaredMethods" : true,
       "allPublicMethods" : true,
       "allDeclaredFields" : true,
       "allPublicFields" : true
     }
   ```
   
   and this snippet to the `resources-config.json`:
   ```
       {
         "pattern": "META-INF/.*$"
       },
       {
         "pattern": ".+properties$"
       },
       {
         "pattern": "com/ibm/mq/jmqi/internal/ciphermappings\\.json$"
       }
   ```
   
   Now it compiles in native mode and I can use it with my custom WMQ component 
to send and receive messages from the queues. Mutual SSL also works as expected.
   
   
[Target_JmsFactoryFactory.java.txt](https://github.com/user-attachments/files/18988998/Target_JmsFactoryFactory.java.txt)
   
[Target_JmsFactoryFactoryImpl.java.txt](https://github.com/user-attachments/files/18988999/Target_JmsFactoryFactoryImpl.java.txt)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to