1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.servicemix.client; 18 19 import javax.jbi.messaging.InOnly; 20 import javax.jbi.messaging.InOptionalOut; 21 import javax.jbi.messaging.InOut; 22 import javax.jbi.messaging.MessagingException; 23 import javax.jbi.messaging.RobustInOnly; 24 25 /** 26 * Represents a JBI endpoint you can communicate with 27 * 28 * @version $Revision: $ 29 */ 30 public interface Destination { 31 32 /** 33 * Creates an {@link InOnly} (one way) message exchange. 34 * 35 * @return the newly created message exchange 36 * @throws MessagingException 37 */ 38 InOnly createInOnlyExchange() throws MessagingException; 39 40 /** 41 * Creates an {@link InOut} (request-reply) message exchange. 42 * 43 * @return the newly created message exchange 44 * @throws MessagingException 45 */ 46 InOut createInOutExchange() throws MessagingException; 47 48 /** 49 * Creates an {@link InOptionalOut} (optional request-reply) message 50 * exchange. 51 * 52 * @return the newly created message exchange 53 * @throws MessagingException 54 */ 55 InOptionalOut createInOptionalOutExchange() throws MessagingException; 56 57 /** 58 * Creates an {@link RobustInOnly} (one way) message exchange. 59 * 60 * @return the newly created message exchange 61 * @throws MessagingException 62 */ 63 RobustInOnly createRobustInOnlyExchange() throws MessagingException; 64 65 /** 66 * Allows a Message to be created for an {@link InOnly} exchange for simpler one-way messaging. 67 * @throws MessagingException 68 */ 69 Message createInOnlyMessage() throws MessagingException; 70 71 } 72