SolConnectionFactory stuck on javax

Hi,
I’m trying to migrate my project from Java 11 to Java 17 while also updating to Spring Boot 3.
The depencies I use for this solace-jms-spring-boot starter and autoconfigure, both on v 4 . 3 . 0 > . My problem is that the DefaultJmsListenerContainerFactory requires a ConnectionFactory that extends Jakarta ConnectionFactory, but the SolConnectionFactory is javax. I get the SolConnectionFactory from the dependency “com.solacesystems:sol-jms:10.18.0” which seems to be the latest but still uses javax.
@Configuration

@EnableJms
public class JmsConfiguration {
@Bean
public DefaultJmsListenerContainerFactory jmsConnectionFactory(
@Value(“${spring.jms.listener.auto-startup:true}”)
boolean autoStart,
SolConnectionFactory connectionFactory) {
connectionFactory.setClientID(CLIENT_ID);
var factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);//<-- Problem is here
factory.setAutoStartup(autoStart);
factory.setConcurrency(CONCURRENCY_LIMIT);
return factory;
}
}
Is there a new version for SolConnectionFactory that uses jakarta or any workaround to get this working?

Hi @rothek ,
We are working on a permanent solution, but you can find our temporary work around here: GitHub - SolaceSamples/solace-samples-spring at sample-jms-downgrade . Please read the disclaimer .
Hope that helps!

Hi @marc ,

Any progress since your last comment?
Is there any concrete plan for a permanent solution for SolConnectionFactory that uses jakarta?

ok, i already saw this is available via GitHub - SolaceProducts/solace-spring-boot: An umbrella project containing all Solace projects for Spring Boot
thanks :smile:

Hi Team,

i am new to solace system, as part of project requirement i want to migrate from javax.jms.ConnectionFactory to jakarta.jms.ConnectionFactory it means Springboot 2 to Springboot3. while searching in community forums found this url suits to me.

https://github.com/SolaceProducts/solace-spring-boot/tree/master/solace-spring-boot-samples/solace-jms-sample-app

could anyone please help me how to run the above git project to test locally.

Here i require two things help.

  1. while running application getting below error

Parameter 0 of method cFactory in com.example.demo.ConsumerConfiguration required a bean of type ‘jakarta.jms.ConnectionFactory’ that could not be found.

package com.example.demo;

import java.util.Iterator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

@SpringBootApplication
public class DemoApplication {



}

package com.example.demo;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;

import jakarta.jms.ConnectionFactory;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.stereotype.Service;
import org.springframework.util.ErrorHandler;

@EnableJms
@Configuration
public class ConsumerConfiguration {



}

  1. Using this below properties in application.properties but i could not able to test publisher and consumer messages.

solace.jms.host=tcp://192.168.133.64:55555
solace.jms.msgVpn=default
solace.jms.clientUsername=default
solace.jms.clientPassword=default

solace.jms.apiProperties.Solace_JMS_DynamicDurables=true

solace.jms.demoQueueName=tutorial/queue

logging.level.com.solacesystems=INFO

Hello everyone. Any update on the SolConnectionFactory migration to jakarta.jms?