| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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.apache.ode.jbi; |
| |
| import javax.jbi.component.Component; |
| import javax.jbi.component.ComponentLifeCycle; |
| import javax.jbi.component.ServiceUnitManager; |
| import javax.jbi.messaging.MessageExchange; |
| import javax.jbi.servicedesc.ServiceEndpoint; |
| |
| import org.w3c.dom.Document; |
| import org.w3c.dom.DocumentFragment; |
| |
| /** |
| * This class implements {@link javax.jbi.component.Component} interface. |
| */ |
| public class OdeComponent implements Component { |
| private OdeLifeCycle _lifeCycle; |
| |
| public OdeComponent() { |
| _lifeCycle = new OdeLifeCycle(); |
| } |
| |
| public ComponentLifeCycle getLifeCycle() { |
| return _lifeCycle; |
| } |
| |
| public ServiceUnitManager getServiceUnitManager() { |
| return _lifeCycle.getSUManager(); |
| } |
| |
| /** |
| * |
| * @param ref ServiceEndpoint object |
| * |
| * @return Descriptor Object implementing |
| * {@link javax.jbi.servicedesc.Descriptor} interface. |
| */ |
| public Document getServiceDescription(ServiceEndpoint ref) { |
| return _lifeCycle.getOdeContext().getServiceDescription(ref.getServiceName()); |
| } |
| |
| /** |
| * This method is called by JBI to check if this component, in the role of |
| * provider of the service indicated by the given exchange, can actually |
| * perform the operation desired. The consumer is described by the given |
| * capabilities, and JBI has already ensured that a fit exists between the set |
| * of required capabilities of the provider and the available capabilities of |
| * the consumer, and vice versa. This matching consists of simple set matching |
| * based on capability names only. <br> |
| * <br> |
| * Note that JBI assures matches on capability names only; it is the |
| * responsibility of this method to examine capability values to ensure a |
| * match with the consumer. |
| * |
| * @param endpoint |
| * the endpoint to be used by the consumer |
| * @param exchange |
| * the proposed message exchange to be performed |
| * @return true if this provider component can perform the the given exchange |
| * with the described consumer |
| */ |
| public boolean isExchangeWithConsumerOkay(ServiceEndpoint endpoint, MessageExchange exchange) { |
| return true; |
| } |
| |
| /** |
| * This method is called by JBI to check if this component, in the role of |
| * consumer of the service indicated by the given exchange, can actually |
| * interact with the the provider completely. Ths provider is described by the |
| * given capabilities, and JBI has already ensure that a fit exists between |
| * the set of required capabilities of the consumer and the available |
| * capabilities of the provider, and vice versa. This matching consists of |
| * simple set matching based on capability names only. <br> |
| * <br> |
| * Note that JBI assures matches on capability names only; it is the |
| * responsibility of this method to examine capability values to ensure a |
| * match with the provider. |
| * |
| * @param exchange |
| * the proposed message exchange to be performed |
| * @return true if this consumer component can interact with the described |
| * provider to perform the given exchange |
| */ |
| public boolean isExchangeWithProviderOkay(ServiceEndpoint endpoint, MessageExchange exchange) { |
| return true; |
| } |
| |
| /** |
| * Resolve the given endpoint reference, given the capabilities of the given |
| * consumer. This is called by JBI when it is attempting to resolve the given |
| * endpoint reference on behalf of a component. |
| * |
| * @param epr |
| * the endpoint reference, in some XML dialect understood by the |
| * appropriate component (usually a Binding Component). |
| * @return the service endpoint for the endpoint reference; <code>null</code> |
| * if the endpoint reference cannot be resolved. |
| */ |
| public ServiceEndpoint resolveEndpointReference(DocumentFragment epr) { |
| // We are an engine, so we don't have to worry about this. |
| return null; |
| } |
| } |