/*
* UDDIAccessBean.java
*
* Created on October 23, 2001, 7:39 PM
*/
package org.apache.jetspeed.webservices.util;
// import javabeans packages
import java.io.Serializable;
// import uddi packages
import org.uddi4j.UDDIException;
import org.uddi4j.transport.TransportException;
import org.uddi4j.client.UDDIProxy;
import org.uddi4j.response.*;
// Jetspeed classes
import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
import org.apache.jetspeed.services.logging.JetspeedLogger;
/**
* UDDIAccessBean provides a command bean interface
* to UDDI registry services.
* Please note that currently only inquiry tasks are supported. I
* hope to add other task types soon.
* @author Scott A. Roehrig@IBM Corporation
* @version 1.0
*/
public class UDDIAccessBean extends Object implements Serializable
{
/**
* Static initialization of the logger for this class
*/
private static final JetspeedLogger logger = JetspeedLogFactoryService.getLogger(UDDIAccessBean.class.getName());
// declare member variables
private transient UDDIProxy proxy;
private String queryURL;
/** setter method for queryURL */
public void setQueryURL(String queryURL) {
this.queryURL = queryURL;
}
/** getter method for queryURL */
public String getQueryURL() {
return queryURL;
}
/** creates new UDDIAccessBean */
public UDDIAccessBean() {
proxy = new UDDIProxy();
queryURL = "http://www-3.ibm.com/services/uddi/testregistry/inquiryapi";
}
/** creates new UDDIAccessBean with provided queryURL */
public UDDIAccessBean(String queryURL) {
proxy = new UDDIProxy();
this.queryURL = queryURL;
}
/** performs business lookup against registry */
public java.util.List queryBusiness(String name) {
// create list to store results
java.util.List businessList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
BusinessList results = proxy.find_business(name, null, 0);
businessList = results.getBusinessInfos().getBusinessInfoVector();
if (logger.isDebugEnabled()) {
java.util.ListIterator iterator = businessList.listIterator();
while (iterator.hasNext() == true) {
org.uddi4j.response.BusinessInfo business = (org.uddi4j.response.BusinessInfo)iterator.next();
logger.debug(business.getDefaultDescriptionString());
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (TransportException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
// return results
return businessList;
}
/** returns businessKey object associated with provided business */
public String getBusinessKey(String businessName) {
String businessKey = null;
// create List to store results
java.util.List businessList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
BusinessList results = proxy.find_business(businessName, null, 0);
businessList = results.getBusinessInfos().getBusinessInfoVector();
// create iterator to search for match
java.util.ListIterator iterator = businessList.listIterator();
while (iterator.hasNext() == true) {
BusinessInfo business = (BusinessInfo)iterator.next();
if (business.getNameString().equals(businessName)) {
businessKey = business.getBusinessKey();
if (logger.isDebugEnabled()) {
logger.debug(business.getNameString()+" has associated key "+businessKey);
}
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (TransportException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
// return result
return businessKey;
}
/** performs service lookup against registry */
public java.util.List queryService(String businessKey, String description) {
// create List to store results
java.util.List serviceList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
ServiceList results = proxy.find_service(businessKey, description, null, 0);
serviceList = results.getServiceInfos().getServiceInfoVector();
if (logger.isDebugEnabled()) {
java.util.ListIterator iterator = serviceList.listIterator();
while (iterator.hasNext() == true) {
org.uddi4j.response.ServiceInfo service = (org.uddi4j.response.ServiceInfo)iterator.next();
logger.debug(service.getNameString());
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (TransportException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
// return results
return serviceList;
}
/** returns serviceKey associated with provided service */
public String getServiceKey(String businessKey, String serviceName) {
String serviceKey = null;
// create List to store results
java.util.List serviceList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
ServiceList results = proxy.find_service(businessKey, serviceName, null, 0);
serviceList = results.getServiceInfos().getServiceInfoVector();
// create iterator to search for match
java.util.ListIterator iterator = serviceList.listIterator();
while (iterator.hasNext() == true) {
ServiceInfo service = (ServiceInfo)iterator.next();
if (service.getNameString().equals(serviceName)) {
serviceKey = service.getServiceKey();
if (logger.isDebugEnabled()) {
logger.debug(service.getNameString()+" has associated key "+serviceKey);
}
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
catch (TransportException exception) {
exception.printStackTrace();
if (logger.isDebugEnabled()) {
logger.error(exception.getMessage(), exception);
}
}
// return result
return serviceKey;
}
/** called before object is garbage collected */
public void finalize() {
proxy = null;
queryURL = null;
}
}