blob: 32ea1c12e928a21af5f98293bef339d27f298e5f [file] [log] [blame]
/*
* Copyright 2013 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.api.impl.rest;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import javax.ws.rs.*;
import javax.wsdl.Definition;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.api.impl.UDDIInquiryImpl;
import org.apache.juddi.api_v3.AccessPointType;
import org.apache.juddi.api_v3.rest.UriContainer;
import org.apache.juddi.v3.client.UDDIConstants;
import org.apache.juddi.v3.client.mapping.URLLocalizerDefaultImpl;
import org.apache.juddi.v3.client.mapping.wsdl.ReadWSDL;
import org.apache.juddi.v3.client.mapping.wsdl.WSDL2UDDI;
import org.apache.juddi.v3.error.UDDIErrorHelper;
import org.uddi.api_v3.*;
import org.uddi.sub_v3.KeyBag;
import org.uddi.v3_service.DispositionReportFaultMessage;
/**
* UDDI Inquiry functions via a JAX-RS REST API. It's basically a wrapper for
* the REST fans to access UDDI from a URL pattern This class will ONLY deploy
* using the Apache CXF WS stack for REST (JAX-RS)
*
* @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
*/
@Path("/")
@Produces({"application/xml", "application/json", "text/html"})
@org.apache.cxf.jaxrs.model.wadl.Description("This service provides access to UDDIv3 data via a REST interface, including the "
+ "recommendation specified in the UDDIv3 spec titled, HTTP GET, as well as a number of methods above and beyond.")
public class UDDIInquiryJAXRS {
private static org.apache.juddi.api.impl.UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
private static final Log log = LogFactory.getLog(UDDIInquiryJAXRS.class);
/**
* Returns the details of a business entity in JSON
*
* @param id
* @return json
*/
@GET
@Path("/JSON/businessKey/{id}")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the details of a business entity in JSON")
public org.uddi.api_v3.BusinessEntity getBusinessDetailJSON(@PathParam("id") String id) throws WebApplicationException {
return getBusinessDetail(id);
}
/**
* Returns the details of a business entity in XML
*
* @param id
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/businessKey/{id}")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the details of a business entity in XML")
public org.uddi.api_v3.BusinessEntity getBusinessDetailXML(@PathParam("id") String id) throws WebApplicationException {
return getBusinessDetail(id);
}
private org.uddi.api_v3.BusinessEntity getBusinessDetail(String id) {
GetBusinessDetail gbd = new GetBusinessDetail();
gbd.getBusinessKey().add(id);
BusinessDetail businessDetail;
try {
businessDetail = inquiry.getBusinessDetail(gbd);
return businessDetail.getBusinessEntity().get(0);
} catch (DispositionReportFaultMessage ex) {
HandleException(ex);
}
return null;
}
/**
* Returns the details of a tModel entity in XML
*
* @param id
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/tModelKey/{id}")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the details of a tModel entity in XML")
public org.uddi.api_v3.TModel getTModelDetailXML(@PathParam("id") String id) throws WebApplicationException {
return getTModelDetail(id);
}
/**
* Returns the details of a tModel entity in JSON
*
* @param id
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/tModelKey/{id}")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the details of a tModel entity in JSON")
public org.uddi.api_v3.TModel getTModelDetailJSON(@PathParam("id") String id) throws WebApplicationException {
return getTModelDetail(id);
}
private org.uddi.api_v3.TModel getTModelDetail(String id) {
GetTModelDetail gbd = new GetTModelDetail();
gbd.getTModelKey().add(id);
try {
TModelDetail tModelDetail = inquiry.getTModelDetail(gbd);
return tModelDetail.getTModel().get(0);
} catch (DispositionReportFaultMessage ex) {
HandleException(ex);
}
return null;
}
/**
* Returns the details of a service entity in JSON
*
* @param id
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/serviceKey/{id}")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the details of a service entity in JSON")
public org.uddi.api_v3.BusinessService getServiceDetailJSON(@PathParam("id") String id) throws WebApplicationException {
return getServiceDetail(id);
}
/**
* This method implements the UDDIv3 spec for HTTP GET Inquiry services
* Returns the details of a UDDI entity in JSON, use query parameters
* serviceKey,businessKey,tModelKey, or bindingKey
*
* @param serviceKey
* @param businessKey
* @param tModelKey
* @param bindingKey
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/getDetail")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the details of a UDDI entity in JSON, use query parameters"
+ "serviceKey,businessKey,tModelKey, bindingKey")
public Object getDetailJSON(@QueryParam("serviceKey") String serviceKey,
@QueryParam("businessKey") String businessKey,
@QueryParam("tModelKey") String tModelKey,
@QueryParam("bindingKey") String bindingKey) throws WebApplicationException {
int params = 0;
if (businessKey != null) {
params++;
}
if (tModelKey != null) {
params++;
}
if (bindingKey != null) {
params++;
}
if (serviceKey != null) {
params++;
}
if (params != 1) {
throw new WebApplicationException(400);
}
if (businessKey != null) {
return getBusinessDetail(businessKey);
}
if (tModelKey != null) {
return getTModelDetail(tModelKey);
}
if (bindingKey != null) {
return getBindingDetail(bindingKey);
}
if (serviceKey != null) {
return getServiceDetail(serviceKey);
}
throw new WebApplicationException(400);
}
/**
* This method implements the UDDIv3 spec for HTTP GET Inquiry services.
* Returns the details of a UDDI entity in XML, use query parameters
* serviceKey,businessKey,tModelKey, or bindingKey
*
* @param serviceKey
* @param businessKey
* @param tModelKey
* @param bindingKey
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/getDetail")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("This method implements the UDDIv3 spec for HTTP GET Inquiry services. Returns the details of a UDDI entity in XML, use query parameters"
+ "serviceKey,businessKey,tModelKey, bindingKey")
public Object getDetailXML(@QueryParam("serviceKey") String serviceKey,
@QueryParam("businessKey") String businessKey,
@QueryParam("tModelKey") String tModelKey,
@QueryParam("bindingKey") String bindingKey) throws WebApplicationException {
int params = 0;
if (businessKey != null) {
params++;
}
if (tModelKey != null) {
params++;
}
if (bindingKey != null) {
params++;
}
if (serviceKey != null) {
params++;
}
if (params != 1) {
throw new WebApplicationException(400);
}
if (businessKey != null) {
return getBusinessDetail(businessKey);
}
if (tModelKey != null) {
return getTModelDetail(tModelKey);
}
if (bindingKey != null) {
return getBindingDetail(bindingKey);
}
if (serviceKey != null) {
return getServiceDetail(serviceKey);
}
throw new WebApplicationException(400);
}
/**
* Returns the details of a service entity in XML
*
* @param id
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/serviceKey/{id}")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the details of a service entity in XML")
public org.uddi.api_v3.BusinessService getServiceDetailXML(@PathParam("id") String id) throws WebApplicationException {
return getServiceDetail(id);
}
private BusinessService getServiceDetail(String id) {
GetServiceDetail gbd = new GetServiceDetail();
gbd.getServiceKey().add(id);
try {
ServiceDetail serviceDetail = inquiry.getServiceDetail(gbd);
return serviceDetail.getBusinessService().get(0);
} catch (DispositionReportFaultMessage ex) {
HandleException(ex);
}
return null;
}
/**
* Returns the operational details of a given entity in JSON
*
* @param id
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/opInfo/{id}")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the operational details of a given entity in JSON")
public org.uddi.api_v3.OperationalInfo getOpInfoJSON(@PathParam("id") String id) throws WebApplicationException {
return getOpInfoDetail(id);
}
/**
* Returns the operational details of a given entity in XML
*
* @param id
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/opInfo/{id}")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the operational details of a given entity in XML")
public org.uddi.api_v3.OperationalInfo getOpInfoXML(@PathParam("id") String id) throws WebApplicationException {
return getOpInfoDetail(id);
}
private OperationalInfo getOpInfoDetail(String id) {
GetOperationalInfo req = new GetOperationalInfo();
req.getEntityKey().add(id);
try {
OperationalInfos operationalInfo = inquiry.getOperationalInfo(req);
return operationalInfo.getOperationalInfo().get(0);
} catch (DispositionReportFaultMessage ex) {
HandleException(ex);
}
return null;
}
/**
* Returns the binding details of a given entity in JSON
*
* @param id
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/bindingKey/{id}")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the binding details of a given entity in JSON")
public org.uddi.api_v3.BindingTemplate getBindingDetailJSON(@PathParam("id") String id) throws WebApplicationException {
return getBindingDetail(id);
}
/**
* Returns the binding details of a given entity in XML
*
* @param id
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/bindingKey/{id}")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the binding details of a given entity in XML")
public org.uddi.api_v3.BindingTemplate getBindingDetailXML(@PathParam("id") String id) throws WebApplicationException {
return getBindingDetail(id);
}
private BindingTemplate getBindingDetail(String id) {
GetBindingDetail req = new GetBindingDetail();
req.getBindingKey().add(id);
try {
BindingDetail bindingDetail = inquiry.getBindingDetail(req);
return bindingDetail.getBindingTemplate().get(0);
} catch (DispositionReportFaultMessage ex) {
HandleException(ex);
}
return null;
}
/**
* Returns the binding details of a given entity in JSON
*
* @param id
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/endpointsByService/{id}")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the service access points of a given service in JSON")
public UriContainer geEndpointsByServiceJSON(@PathParam("id") String id) throws WebApplicationException {
return getEndpointsByService(id);
}
/**
* Returns the binding details of a given entity in XML
*
* @param id
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/endpointsByService/{id}")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the service access points of a given service in XML")
public UriContainer getEndpointsByServiceXML(@PathParam("id") String id) throws WebApplicationException {
return getEndpointsByService(id);
}
/**
* Returns the business keys of the first 100 registered businesses in
* XML
*
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/businessList")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the business keys of the first 100 registered businesses in XML")
public KeyBag getBusinessListXML() throws WebApplicationException {
return getBusinessListData();
}
/**
* Returns the business keys of the first 100 registered businesses in
* JSON
*
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/businessList")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the business keys of the first 100 registered businesses in JSON")
public KeyBag getBusinessListJSON() throws WebApplicationException {
return getBusinessListData();
}
/**
* Returns the Service keys of the first 100 registered services in XML
*
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/serviceList")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the Service keys of the first 100 registered services in XML")
public KeyBag getServiceListXML() throws WebApplicationException {
return getServiceListData();
}
/**
* Returns the Service keys of the first 100 registered services in JSON
*
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/serviceList")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the Service keys of the first 100 registered services in JSON")
public KeyBag getServiceListJSON() throws WebApplicationException {
return getServiceListData();
}
/**
* Returns the tModel keys of the first 100 registered services in XML
*
* @return xml
* @throws WebApplicationException
*/
@GET
@Path("/XML/tModelList")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the tModel keys of the first 100 registered services in XML")
public KeyBag getTModelListXML() throws WebApplicationException {
return getTmodelListData();
}
/**
* Returns the search results for registered businesses in XML
*
* @param name
* @param lang
* @param findQualifiers
* @param maxrows
* @param offset
* @return BusinessList
* @throws WebApplicationException
*/
@GET
@Path("/XML/businessSearch")
@Produces("application/xml")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the search results for registered businesses in XML")
public BusinessList getBusinessSearchXML(@QueryParam("name") String name,
@QueryParam("lang") String lang,
@QueryParam("findQualifiers") String findQualifiers,
@QueryParam("maxrows") Integer maxrows,
@QueryParam("offset") Integer offset) throws WebApplicationException {
return getBusinessSearch(name, lang, findQualifiers, maxrows, offset);
}
/**
* Returns the search results for registered businesses in JSON
*
* @param name
* @param lang
* @param findQualifiers
* @param maxrows
* @param offset
* @return BusinessList
* @throws WebApplicationException
*/
@GET
@Path("/JSON/businessSearch")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the search results for registered businesses in JSON")
public BusinessList getBusinessSearchJSON(@QueryParam("name") String name,
@QueryParam("lang") String lang,
@QueryParam("findQualifiers") String findQualifiers,
@QueryParam("maxrows") Integer maxrows,
@QueryParam("offset") Integer offset) throws WebApplicationException {
return getBusinessSearch(name, lang, findQualifiers, maxrows, offset);
}
/**
* Returns the search results for registered services in JSON
*
* @param name
* @param lang
* @param findQualifiers
* @param maxrows
* @param offset
* @return serviceList
* @throws WebApplicationException
*/
@GET
@Path("/JSON/serviceSearch")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the search results for registered services in JSON")
public ServiceList getServiceSearchJSON(@QueryParam("name") String name,
@QueryParam("lang") String lang,
@QueryParam("findQualifiers") String findQualifiers,
@QueryParam("maxrows") Integer maxrows,
@QueryParam("offset") Integer offset) throws WebApplicationException {
return getServiceSearch(name, lang, findQualifiers, maxrows, offset);
}
/**
* Returns the search results for registered services in XML
*
* @param name
* @param lang
* @param findQualifiers
* @param maxrows
* @param offset
* @return serviceList
* @throws WebApplicationException
*/
@GET
@Path("/XML/serviceSearch")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the search results for registered services in XML")
public ServiceList getServiceSearchXML(@QueryParam("name") String name,
@QueryParam("lang") String lang,
@QueryParam("findQualifiers") String findQualifiers,
@QueryParam("maxrows") Integer maxrows,
@QueryParam("offset") Integer offset) throws WebApplicationException {
return getServiceSearch(name, lang, findQualifiers, maxrows, offset);
}
/**
* Returns the tModel keys of the first 100 registered services in JSON
*
* @return json
* @throws WebApplicationException
*/
@GET
@Path("/JSON/tModelList")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the tModel keys of the first 100 registered services in JSON")
public KeyBag getTModelListJSON() throws WebApplicationException {
return getTmodelListData();
}
/**
* Returns the search results for registered tModel in JSON
*
* @param name
* @param lang
* @param findQualifiers
* @param maxrows
* @param offset
* @return TModelList
* @throws WebApplicationException
*/
@GET
@Path("/JSON/searchTModel")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the search results for registered tModel in JSON")
public TModelList getTModelSearchJSON(@QueryParam("name") String name,
@QueryParam("lang") String lang,
@QueryParam("findQualifiers") String findQualifiers,
@QueryParam("maxrows") Integer maxrows,
@QueryParam("offset") Integer offset) throws WebApplicationException {
return getTModelSearch(name, lang, findQualifiers, maxrows, offset);
}
/**
* Returns the search results for registered tModel in XML
*
* @param name
* @param lang
* @param findQualifiers
* @param maxrows
* @param offset
* @return TModelList
* @throws WebApplicationException
*/
@GET
@Path("/XML/searchTModel")
@Produces("application/json")
@org.apache.cxf.jaxrs.model.wadl.Description("Returns the search results for registered tModel in XML")
public TModelList getTModelSearchXML(@QueryParam("name") String name,
@QueryParam("lang") String lang,
@QueryParam("findQualifiers") String findQualifiers,
@QueryParam("maxrows") Integer maxrows,
@QueryParam("offset") Integer offset) throws WebApplicationException {
return getTModelSearch(name, lang, findQualifiers, maxrows, offset);
}
private UriContainer getEndpointsByService(String id) throws WebApplicationException {
UriContainer c = new UriContainer();
List<String> ret = new ArrayList<String>();
GetServiceDetail fs = new GetServiceDetail();
fs.getServiceKey().add(id);
try {
ServiceDetail serviceDetail = inquiry.getServiceDetail(fs);
if (serviceDetail == null || serviceDetail.getBusinessService().isEmpty()) {
throw new WebApplicationException(400);
} else {
List<String> endpoints = GetEndpoints(serviceDetail, null);
ret.addAll(endpoints);
}
} catch (DispositionReportFaultMessage ex) {
HandleException(ex);
}
c.setUriList(ret);
return c;
}
private List<String> GetEndpoints(ServiceDetail serviceDetail, String authInfo) throws DispositionReportFaultMessage {
List<String> items = new ArrayList<String>();
if (serviceDetail == null) {
return items;
}
for (int i = 0; i < serviceDetail.getBusinessService().size(); i++) {
if (serviceDetail.getBusinessService().get(i).getBindingTemplates() != null) {
for (int k = 0; k < serviceDetail.getBusinessService().get(i).getBindingTemplates().getBindingTemplate().size(); k++) {
items.addAll(ParseBinding(serviceDetail.getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k), authInfo));
}
}
}
return items;
}
private List<String> GetBindingInfo(String value, String cred) throws DispositionReportFaultMessage {
List<String> items = new ArrayList<String>();
if (value == null) {
return items;
}
GetBindingDetail b = new GetBindingDetail();
b.setAuthInfo(cred);
b.getBindingKey().add(value);
BindingDetail bindingDetail = inquiry.getBindingDetail(b);
for (int i = 0; i < bindingDetail.getBindingTemplate().size(); i++) {
items.addAll(ParseBinding(bindingDetail.getBindingTemplate().get(i), cred));
}
return items;
}
private List<String> FetchWSDL(String value) {
List<String> items = new ArrayList<String>();
if (value.startsWith("http://") || value.startsWith("https://")) {
//here, we need an HTTP Get for WSDLs
org.apache.juddi.v3.client.mapping.wsdl.ReadWSDL r = new ReadWSDL();
r.setIgnoreSSLErrors(true);
try {
Definition wsdlDefinition = r.readWSDL(new URL(value));
Properties properties = new Properties();
properties.put("keyDomain", "domain");
properties.put("businessName", "biz");
properties.put("serverName", "localhost");
properties.put("serverPort", "80");
WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(null, new URLLocalizerDefaultImpl(), properties);
BusinessServices businessServices = wsdl2UDDI.createBusinessServices(wsdlDefinition);
for (int i = 0; i < businessServices.getBusinessService().size(); i++) {
if (businessServices.getBusinessService().get(i).getBindingTemplates() != null) {
for (int k = 0; k < businessServices.getBusinessService().get(i).getBindingTemplates().getBindingTemplate().size(); k++) {
items.addAll(ParseBinding(businessServices.getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k), null));
}
}
}
} catch (Exception ex) {
}
}
return items;
}
private List<String> ParseBinding(BindingTemplate get, String authInfo) throws DispositionReportFaultMessage {
List<String> items = new ArrayList<String>();
if (get == null || get.getAccessPoint() == null) {
return items;
}
if (get.getHostingRedirector() != null) {
//hosting Redirector is the same as "reference this other binding template". It's actually deprecated so
//don't expect to see this too often
items.addAll(GetBindingInfo(get.getHostingRedirector().getBindingKey(), authInfo));
}
if (get.getAccessPoint() != null) {
String usetype = get.getAccessPoint().getUseType();
if (usetype == null) {
//this is unexpected, usetype is a required field
items.add((get.getAccessPoint().getValue()));
} else if (usetype.equalsIgnoreCase(AccessPointType.BINDING_TEMPLATE.toString())) {
//referencing another binding template
items.addAll(GetBindingInfo(get.getAccessPoint().getValue(), authInfo));
} else if (usetype.equalsIgnoreCase(AccessPointType.HOSTING_REDIRECTOR.toString())) {
//this one is a bit strange. the value should be a binding template
items.addAll(GetBindingInfo(get.getAccessPoint().getValue(), authInfo));
} else if (usetype.equalsIgnoreCase(AccessPointType.WSDL_DEPLOYMENT.toString())) {
//fetch wsdl and parse
items.addAll(FetchWSDL(get.getAccessPoint().getValue()));
} else if (usetype.equalsIgnoreCase(AccessPointType.END_POINT.toString())) {
items.add((get.getAccessPoint().getValue()));
} else {
//treat it has an extension or whatever
items.add((get.getAccessPoint().getValue()));
}
}
return items;
}
private static void HandleException(Exception ex) throws WebApplicationException {
if (ex == null) {
throw new WebApplicationException(500);
}
log.error(ex.getMessage());
log.debug(ex);
if (ex instanceof DispositionReportFaultMessage) {
DispositionReportFaultMessage dr = (DispositionReportFaultMessage) ex;
if (dr.getFaultInfo() == null) {
throw new WebApplicationException(500);
}
if (dr.getFaultInfo().countainsErrorCode(UDDIErrorHelper.lookupErrCode(UDDIErrorHelper.E_AUTH_TOKEN_EXPIRED))) {
throw new WebApplicationException(ex, 401);
}
if (dr.getFaultInfo().countainsErrorCode(UDDIErrorHelper.lookupErrCode(UDDIErrorHelper.E_AUTH_TOKEN_REQUIRED))) {
throw new WebApplicationException(ex, 401);
}
if (dr.getFaultInfo().countainsErrorCode(UDDIErrorHelper.lookupErrCode(UDDIErrorHelper.E_FATAL_ERROR))) {
throw new WebApplicationException(ex, 500);
}
}
throw new WebApplicationException(ex, 400);
}
private final int MAX_ROWS = 100;
private KeyBag getBusinessListData() {
FindBusiness fb = new FindBusiness();
fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
fb.setFindQualifiers(new FindQualifiers());
fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
fb.setMaxRows(MAX_ROWS);
BusinessList findBusiness = null;
try {
findBusiness = inquiry.findBusiness(fb);
} catch (Exception ex) {
HandleException(ex);
}
KeyBag kb = new KeyBag();
if (findBusiness != null && findBusiness.getBusinessInfos() != null) {
for (int i = 0; i < findBusiness.getBusinessInfos().getBusinessInfo().size(); i++) {
kb.getBusinessKey().add(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey());
}
}
return kb;
}
private KeyBag getServiceListData() {
FindService fb = new FindService();
fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
fb.setFindQualifiers(new FindQualifiers());
fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
fb.setMaxRows(MAX_ROWS);
ServiceList findBusiness = null;
try {
findBusiness = inquiry.findService(fb);
} catch (Exception ex) {
HandleException(ex);
}
KeyBag kb = new KeyBag();
if (findBusiness != null && findBusiness.getServiceInfos() != null) {
for (int i = 0; i < findBusiness.getServiceInfos().getServiceInfo().size(); i++) {
kb.getServiceKey().add(findBusiness.getServiceInfos().getServiceInfo().get(i).getServiceKey());
}
}
return kb;
}
private KeyBag getTmodelListData() {
FindTModel fb = new FindTModel();
fb.setName(new Name(UDDIConstants.WILDCARD, null));
fb.setFindQualifiers(new FindQualifiers());
fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
fb.setMaxRows(MAX_ROWS);
TModelList findBusiness = null;
try {
findBusiness = inquiry.findTModel(fb);
} catch (Exception ex) {
HandleException(ex);
}
KeyBag kb = new KeyBag();
if (findBusiness != null && findBusiness.getTModelInfos() != null) {
for (int i = 0; i < findBusiness.getTModelInfos().getTModelInfo().size(); i++) {
kb.getTModelKey().add(findBusiness.getTModelInfos().getTModelInfo().get(i).getTModelKey());
}
}
return kb;
}
private BusinessList getBusinessSearch(String name, String lang, String findQualifiers, Integer maxrows, Integer offset) {
FindBusiness fb = new FindBusiness();
fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
if (name != null) {
fb.getName().get(0).setValue(name);
}
if (lang != null) {
fb.getName().get(0).setValue(lang);
}
fb.setFindQualifiers(new FindQualifiers());
if (findQualifiers == null) {
fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
} else {
String[] fqs = findQualifiers.split(",");
fb.getFindQualifiers().getFindQualifier().addAll(Arrays.asList(fqs));
}
fb.setMaxRows(MAX_ROWS);
if (maxrows != null) {
fb.setMaxRows(maxrows);
}
fb.setListHead(0);
if (offset != null) {
fb.setListHead(offset);
}
BusinessList findBusiness = null;
try {
findBusiness = inquiry.findBusiness(fb);
} catch (Exception ex) {
HandleException(ex);
}
return findBusiness;
}
private ServiceList getServiceSearch(String name, String lang, String findQualifiers, Integer maxrows, Integer offset) {
FindService fb = new FindService();
fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
if (name != null) {
fb.getName().get(0).setValue(name);
}
if (lang != null) {
fb.getName().get(0).setValue(lang);
}
fb.setFindQualifiers(new FindQualifiers());
if (findQualifiers == null) {
fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
} else {
String[] fqs = findQualifiers.split(",");
fb.getFindQualifiers().getFindQualifier().addAll(Arrays.asList(fqs));
}
fb.setMaxRows(MAX_ROWS);
if (maxrows != null) {
fb.setMaxRows(maxrows);
}
fb.setListHead(0);
if (offset != null) {
fb.setListHead(offset);
}
ServiceList findBusiness = null;
try {
findBusiness = inquiry.findService(fb);
} catch (Exception ex) {
HandleException(ex);
}
return findBusiness;
}
private TModelList getTModelSearch(String name, String lang, String findQualifiers, Integer maxrows, Integer offset) {
FindTModel fb = new FindTModel();
fb.setName(new Name(UDDIConstants.WILDCARD, null));
if (name != null) {
fb.getName().setValue(name);
}
if (lang != null) {
fb.getName().setValue(lang);
}
fb.setFindQualifiers(new FindQualifiers());
if (findQualifiers == null) {
fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
} else {
String[] fqs = findQualifiers.split(",");
fb.getFindQualifiers().getFindQualifier().addAll(Arrays.asList(fqs));
}
fb.setMaxRows(MAX_ROWS);
if (maxrows != null) {
fb.setMaxRows(maxrows);
}
fb.setListHead(0);
if (offset != null) {
fb.setListHead(offset);
}
TModelList findBusiness = null;
try {
findBusiness = inquiry.findTModel(fb);
} catch (Exception ex) {
HandleException(ex);
}
return findBusiness;
}
}