blob: e380d267e759373f55577374271ce378b18b6349 [file] [log] [blame]
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
// 04/01/2016-2.7 Tomas Kraus
// - 490677: Database connection properties made configurable in test.properties
package org.eclipse.persistence.testing.tests.eis.aq;
import javax.jms.JMSException;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import org.eclipse.persistence.testing.framework.junit.LogTestExecution;
import org.eclipse.persistence.testing.tests.nosql.NoSQLProperties;
import org.junit.Rule;
import org.junit.Test;
import oracle.jms.AQjmsFactory;
/**
* Test connecting directly through the AQ JMS driver. Requires AQ installed on this database.
*/
public class JMSDirectConnectTest {
/** Log the test being currently executed. */
@Rule public LogTestExecution logExecution = new LogTestExecution();
/**
* Creates an instance of direct connection tests.
*/
public JMSDirectConnectTest() {
}
/**
* Create database connection using {@link TopicConnection}.
* @return {@link TopicConnection} instance.
*/
static TopicConnection connectTopic() throws JMSException {
final TopicConnectionFactory connectionFactory
= AQjmsFactory.getTopicConnectionFactory(NoSQLProperties.getDBURL(), null);
return connectionFactory.createTopicConnection(
NoSQLProperties.getDBUserName(), NoSQLProperties.getDBPassword());
}
/**
* Create database connection using {@link QueueConnection}.
* @return {@link TopicConnection} instance.
*/
static QueueConnection connectQueue() throws JMSException {
final QueueConnectionFactory connectionFactory
= AQjmsFactory.getQueueConnectionFactory(NoSQLProperties.getDBURL(), null);
return connectionFactory.createQueueConnection(
NoSQLProperties.getDBUserName(), NoSQLProperties.getDBPassword());
}
/**
* Test direct connection using {@link TopicConnection}.
*/
@Test
public void testConnectTopic() throws Exception {
TopicSession session = null;
TopicConnection connection = null;
try {
connection = connectTopic();
session = connection.createTopicSession(true, Session.CLIENT_ACKNOWLEDGE);
connection.start();
} finally {
if (session != null) {
session.close();
}
if (connection != null) {
connection.close();
}
}
}
/**
* Test direct connection using {@link QueueConnection}.
*/
@Test
public void testConnectQueue() throws Exception {
QueueConnection connection = null;
QueueSession session = null;
try {
connection = connectQueue();
session = connection.createQueueSession(true, Session.CLIENT_ACKNOWLEDGE);
connection.start();
} finally {
if (session != null) {
session.close();
}
if (connection != null) {
connection.close();
}
}
}
}