/* * Copyright 2008-2014 the original author or authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kaleidofoundry.messaging; import java.util.Map; import org.kaleidofoundry.core.lang.annotation.ThreadSafe; import org.kaleidofoundry.core.plugin.Declare; /** * Transport messaging interface * * @author jraduget */ @ThreadSafe @Declare(MessagingConstants.TRANSPORT_PLUGIN) public interface Transport { /** * @return Transport code provider */ String getProviderCode(); /** * @return Transport provider version API */ String getProviderVersion(); /** * @return current consumers by name */ Map<String, Consumer> getConsumers(); /** * @return current producers by name */ Map<String, Producer> getProducers(); /** * Close and free transport resources * * @throws TransportException */ void close() throws TransportException; }