| /* |
| * 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(); |
| } |
| } |
| } |
| |
| } |