Menu

Tree [42b4bc] master release/1.0.0 /
 History

HTTPS access


File Date Author Commit
 src 2023-02-11 Mihhail Suhhoruki Mihhail Suhhoruki [2044ef] Begin 1.0.0
 .gitignore 2023-02-11 Mihhail Suhhoruki Mihhail Suhhoruki [e676c9] init
 README.md 2023-02-11 Mihhail Suhhoruki Mihhail Suhhoruki [2044ef] Begin 1.0.0
 pom.xml 2023-02-11 Mihhail Suhhoruki Mihhail Suhhoruki [42b4bc] Releasing release/1.0.0

Read Me

Wrapping javax.jms.ConnectionFactory (for example AQjmsFactory) as jakarta.jms.ConnectionFactory in Spring boot 3:

import java.sql.SQLException;
import javax.sql.DataSource;

import jakarta.jms.ConnectionFactory;
import jakarta.jms.JMSException;

import net.sf.gavgav.jakartajavax.jms.JakartaJmsConnectionFactory;
import net.sf.gavgav.jakartajavax.jms.JmsException;

import oracle.jms.AQjmsFactory;

...

    @Bean
    public ConnectionFactory connectionFactory(DataSource ds) throws JMSException, SQLException {
        try {
            return new JakartaJmsConnectionFactory(AQjmsFactory.getQueueConnectionFactory(ds));
        } catch (javax.jms.JMSException e) {
            throw JmsException.wrap(e);
        }
    }

Implementing Spring's DestinationResolver for JmsTemplate or DefaultJmsListenerContainerFactory:

import net.sf.gavgav.jakartajavax.jms.JakartaJmsSession;
import net.sf.gavgav.jakartajavax.jms.JakartaJmsQueue;
import net.sf.gavgav.jakartajavax.jms.JmsException;

import jakarta.jms.Destination;
import jakarta.jms.Session;

import oracle.jms.AQjmsSession;

import org.springframework.jms.support.destination.DestinationResolver;

public class AqDestinationResolver implements DestinationResolver {
    private final String schema;

    public AqDestinationResolver(String schema) {
        this.schema = schema;
    }

    @Override
    public Destination resolveDestinationName(Session session, String destinationName, boolean pubSubDomain) throws JMSException {
        JakartaJmsSession jakartaSession = (JakartaJmsSession) session;
        try {
            AQjmsSession aqjmsSession = ((AQjmsSession) jakartaSession.getSession());
            javax.jms.Queue aqjmsQueue = aqjmsSession.getQueue(schema, destinationName);

            return new JakartaJmsQueue(aqjmsQueue);
        } catch (javax.jms.JMSException e) {
            throw JmsException.wrap(e);
        }
    }
}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.