| /* |
| * Copyright (c) 1998, 2021 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 |
| package org.eclipse.persistence.internal.eis.adapters.jms; |
| |
| |
| /** |
| * INTERNAL: |
| * Interaction spec for JMS JCA adapter. |
| * |
| * Specifies a send/receive message interaction. It is assumed here that the entity |
| * processing the request sets the JMSCorrelationID on the response message to be |
| * either the JMSCorrelationID of the request message (if non-null) or the |
| * JMSMessageID of the request message (if the JMSCorrelationID is null). This allows |
| * for the user to define the correlation id to link the request/response messages if |
| * they wish. |
| * |
| * Since we are doing a send/receive in one interaction, we know that the replyTo value |
| * indicates the response queue as well. |
| * |
| * @author Dave McCann |
| * @since OracleAS TopLink 10<i>g</i> (10.0.3) |
| */ |
| public class CciJMSSendReceiveInteractionSpec extends CciJMSInteractionSpec { |
| protected String replyToDestinationURL;// JNDI name (URL) of the JMSReplyTo destination |
| protected String replyToDestination;// if no JNDI, the JMSReplyTo destination name |
| protected long timeout;// length of time to wait for a response |
| |
| public CciJMSSendReceiveInteractionSpec() { |
| replyToDestinationURL = ""; |
| replyToDestination = ""; |
| timeout = 0; |
| } |
| |
| /** |
| * Indicates if a JNDI lookup is to be performed to locate the reply to destination. |
| * Since we are doing a send/receive in one interaction, we know that this value |
| * indicates the response queue as well. |
| * |
| * @return true if a replyTo destination URL has been specified, false otherwise |
| */ |
| public boolean hasReplyToDestinationURL() { |
| return (replyToDestinationURL != null) && (replyToDestinationURL.length() > 0); |
| } |
| |
| /** |
| * Return the destination URL where the entity processing the request is to place |
| * the response. |
| * |
| * Since we are doing a send/receive in one interaction, we know that this value |
| * indicates the response queue as well. |
| * |
| * @return JMSReplyTo destination URL |
| */ |
| public String getReplyToDestinationURL() { |
| return replyToDestinationURL; |
| } |
| |
| /** |
| * Set the replyTo destination JNDI name to be looked up. |
| * |
| * Since we are doing a send/receive in one interaction, we know that this value |
| * indicates the response queue as well. |
| * |
| */ |
| public void setReplyToDestinationURL(String url) { |
| replyToDestinationURL = url; |
| } |
| |
| /** |
| * Return the destination where the entity processing the request is to place |
| * the response. |
| * |
| * Since we are doing a send/receive in one interaction, we know that this value |
| * indicates the response queue as well. |
| * |
| * @return JMSReplyTo destination |
| */ |
| public String getReplyToDestination() { |
| return replyToDestination; |
| } |
| |
| /** |
| * Set the destination where the entity processing the request is to place |
| * the response. This is required if JNDI is not being used to lookup the |
| * replyTo destination. |
| * |
| * Since we are doing a send/receive in one interaction, we know that this value |
| * indicates the response queue as well. |
| * |
| */ |
| public void setReplyToDestination(String dest) { |
| replyToDestination = dest; |
| } |
| |
| /** |
| * Set the length of time to wait for a response. A setting of 0 indicates |
| * infinite wait time. |
| * |
| * @param timeout - should be set to 0 or above |
| */ |
| public void setTimeout(String timeout) { |
| this.timeout = Long.parseLong(timeout); |
| } |
| |
| /** |
| * Set the length of time to wait for a response. A setting of 0 indicates |
| * infinite wait time. |
| * |
| * @param timeout - should be set to 0 or above |
| */ |
| public void setTimeout(long timeout) { |
| this.timeout = timeout; |
| } |
| |
| /** |
| * Return the length of time to wait for a response. |
| * |
| * @return length of time to wait for a response, 0 for infinite |
| */ |
| public long getTimeout() { |
| return timeout; |
| } |
| } |