This project has retired. For details please refer to its
Attic page.
Inquiry3to2.javaInquiry3to2.java
/*
* Copyright 2014 The Apache Software Foundation.
*
* 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.apache.juddi.v3.client.transport.wrapper;
import java.rmi.RemoteException;
import java.util.Map;
import javax.xml.ws.Binding;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.EndpointReference;
import javax.xml.ws.soap.SOAPFaultException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.v3.client.UDDIServiceV2;
import org.apache.juddi.v3.client.mapping.MapUDDIv2Tov3;
import org.apache.juddi.v3.client.mapping.MapUDDIv3Tov2;
import org.uddi.api_v3.BindingDetail;
import org.uddi.api_v3.BusinessDetail;
import org.uddi.api_v3.BusinessList;
import org.uddi.api_v3.FindBinding;
import org.uddi.api_v3.FindBusiness;
import org.uddi.api_v3.FindRelatedBusinesses;
import org.uddi.api_v3.FindService;
import org.uddi.api_v3.FindTModel;
import org.uddi.api_v3.GetBindingDetail;
import org.uddi.api_v3.GetBusinessDetail;
import org.uddi.api_v3.GetOperationalInfo;
import org.uddi.api_v3.GetServiceDetail;
import org.uddi.api_v3.GetTModelDetail;
import org.uddi.api_v3.OperationalInfo;
import org.uddi.api_v3.OperationalInfos;
import org.uddi.api_v3.RelatedBusinessesList;
import org.uddi.api_v3.ServiceDetail;
import org.uddi.api_v3.ServiceList;
import org.uddi.api_v3.TModelDetail;
import org.uddi.api_v3.TModelList;
import org.uddi.v2_service.DispositionReport;
import org.uddi.v2_service.Inquire;
import org.uddi.v3_service.DispositionReportFaultMessage;
import org.uddi.v3_service.UDDIInquiryPortType;
/**
* This class provides a wrapper to enable UDDIv3 clients to talk to UDDIv2 servers
* via JAXWS Transport. It handles all translations for Inquiry service methods.
* @author <a href="alexoree@apache.org">Alex O'Ree</a>
* @since 3.2
*/
public class Inquiry3to2 implements UDDIInquiryPortType, BindingProvider {
private static Log logger = LogFactory.getLog(Inquiry3to2.class);
Inquire inquiryService = null;
public Inquiry3to2() {
UDDIServiceV2 service = new UDDIServiceV2();
inquiryService = service.getInquire();
}
public Inquire getUDDIv2WebServiceClient(){
return inquiryService;
}
@Override
public BindingDetail findBinding(FindBinding body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapBindingDetail(inquiryService.findBinding(MapUDDIv3Tov2.MapFindBinding(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public BusinessList findBusiness(FindBusiness body) throws DispositionReportFaultMessage, RemoteException {
try {
org.uddi.api_v2.FindBusiness MapFindBusiness = MapUDDIv3Tov2.MapFindBusiness(body);
org.uddi.api_v2.BusinessList s = inquiryService.findBusiness(MapFindBusiness);
return MapUDDIv2Tov3.MapBusinessList(s);
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public RelatedBusinessesList findRelatedBusinesses(FindRelatedBusinesses body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapRelatedBusinessesList(inquiryService.findRelatedBusinesses(MapUDDIv3Tov2.MapFindRelatedBusiness(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public ServiceList findService(FindService body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapServiceList(inquiryService.findService(MapUDDIv3Tov2.MapFindService(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public TModelList findTModel(FindTModel body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapTModelList(inquiryService.findTModel(MapUDDIv3Tov2.MapFindTModel(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public BindingDetail getBindingDetail(GetBindingDetail body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapBindingDetail(inquiryService.getBindingDetail(MapUDDIv3Tov2.MapGetBindingDetail(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public BusinessDetail getBusinessDetail(GetBusinessDetail body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapBusinessDetail(inquiryService.getBusinessDetail(MapUDDIv3Tov2.MapGetBusinessDetail(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
public static final String VERSION = "2.0";
@Override
public OperationalInfos getOperationalInfo(GetOperationalInfo body) throws DispositionReportFaultMessage, RemoteException {
OperationalInfos ret = new OperationalInfos();
for (int i = 0; i < body.getEntityKey().size(); i++) {
OperationalInfo oi = new OperationalInfo();
oi.setEntityKey(body.getEntityKey().get(i));
try {
org.uddi.api_v2.GetBusinessDetail businessDetail = new org.uddi.api_v2.GetBusinessDetail();
businessDetail.setGeneric(VERSION);
businessDetail.getBusinessKey().add(body.getEntityKey().get(i));
org.uddi.api_v2.BusinessDetail z = inquiryService.getBusinessDetail(businessDetail);
oi.setNodeID(z.getOperator());
oi.setAuthorizedName(z.getBusinessEntity().get(0).getAuthorizedName());
} catch (Exception ex) {
logger.warn(ex.getMessage(), ex);
}
if (oi.getAuthorizedName() != null) {
continue;
}
try {
org.uddi.api_v2.GetTModelDetail tModelDetail = new org.uddi.api_v2.GetTModelDetail();
tModelDetail.setGeneric(VERSION);
tModelDetail.getTModelKey().add(body.getEntityKey().get(i));
org.uddi.api_v2.TModelDetail z = inquiryService.getTModelDetail(tModelDetail);
oi.setNodeID(z.getOperator());
oi.setAuthorizedName(z.getTModel().get(0).getAuthorizedName());
} catch (Exception ex) {
logger.warn(ex.getMessage(), ex);
}
if (oi.getAuthorizedName() != null) {
continue;
}
try {
//get the service
org.uddi.api_v2.GetServiceDetail serviceDetail = new org.uddi.api_v2.GetServiceDetail();
serviceDetail.setGeneric(VERSION);
serviceDetail.getServiceKey().add(body.getEntityKey().get(i));
org.uddi.api_v2.ServiceDetail z = inquiryService.getServiceDetail(serviceDetail);
oi.setNodeID(z.getOperator());
org.uddi.api_v2.GetBusinessDetail businessDetail = new org.uddi.api_v2.GetBusinessDetail();
businessDetail.setGeneric(VERSION);
//its owning business
businessDetail.getBusinessKey().add(z.getBusinessService().get(0).getBusinessKey());
org.uddi.api_v2.BusinessDetail z2 = inquiryService.getBusinessDetail(businessDetail);
oi.setNodeID(z.getOperator());
oi.setAuthorizedName(z2.getBusinessEntity().get(0).getAuthorizedName());
} catch (Exception ex) {
logger.warn(ex.getMessage(), ex);
}
ret.getOperationalInfo().add(oi);
ret.setTruncated(false);
}
return ret;
}
@Override
public ServiceDetail getServiceDetail(GetServiceDetail body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapServiceDetail(inquiryService.getServiceDetail(MapUDDIv3Tov2.MapGetServiceDetail(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public TModelDetail getTModelDetail(GetTModelDetail body) throws DispositionReportFaultMessage, RemoteException {
try {
return MapUDDIv2Tov3.MapTModelDetail(inquiryService.getTModelDetail(MapUDDIv3Tov2.MapGetTModelDetail(body)));
} catch (DispositionReport ex) {
throw MapUDDIv2Tov3.MapException(ex);
} catch (SOAPFaultException ex) {
throw MapUDDIv2Tov3.MapException(ex);
}
}
@Override
public Map<String, Object> getRequestContext() {
return ((BindingProvider) inquiryService).getRequestContext();
}
@Override
public Map<String, Object> getResponseContext() {
return ((BindingProvider) inquiryService).getResponseContext();
}
@Override
public Binding getBinding() {
return ((BindingProvider) inquiryService).getBinding();
}
@Override
public EndpointReference getEndpointReference() {
return ((BindingProvider) inquiryService).getEndpointReference();
}
@Override
public <T extends EndpointReference> T getEndpointReference(Class<T> clazz) {
return ((BindingProvider) inquiryService).getEndpointReference(clazz);
}
}