You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2010/07/11 18:39:55 UTC
svn commit: r963108 - in /webservices/juddi/trunk:
juddi-client/src/main/java/org/apache/juddi/v3/client/config/
juddi-core/src/main/java/org/apache/juddi/api/impl/
Author: kstam
Date: Sun Jul 11 16:39:55 2010
New Revision: 963108
URL: http://svn.apache.org/viewvc?rev=963108&view=rev
Log:
JUDDI-380, Adding more XRegistration functionality
Modified:
webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/XRegistration.java
webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/XRegisterHelper.java
Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java?rev=963108&r1=963107&r2=963108&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java Sun Jul 11 16:39:55 2010
@@ -42,11 +42,14 @@ import org.uddi.api_v3.BusinessEntity;
import org.uddi.api_v3.BusinessService;
import org.uddi.api_v3.DeleteBinding;
import org.uddi.api_v3.DispositionReport;
+import org.uddi.api_v3.FindRelatedBusinesses;
import org.uddi.api_v3.GetAuthToken;
import org.uddi.api_v3.GetBindingDetail;
import org.uddi.api_v3.GetBusinessDetail;
import org.uddi.api_v3.GetServiceDetail;
+import org.uddi.api_v3.RelatedBusinessesList;
import org.uddi.api_v3.Result;
+import org.uddi.api_v3.SaveBinding;
import org.uddi.api_v3.SaveBusiness;
import org.uddi.api_v3.SaveService;
import org.uddi.api_v3.ServiceDetail;
@@ -107,6 +110,31 @@ public class UDDIClerk implements Serial
this.managerName = managerName;
}
/**
+ * Register a service binding.
+ *
+ */
+ public BindingTemplate register(BindingTemplate binding, Node node) {
+
+ BindingTemplate bindingTemplate=null;
+ log.info("Registering bindingTemplate with key " + binding.getBindingKey());
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ SaveBinding saveBinding = new SaveBinding();
+ saveBinding.setAuthInfo(authToken);
+ saveBinding.getBindingTemplate().add(binding);
+ BindingDetail bindingDetail = getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).saveBinding(saveBinding);
+ bindingTemplate = bindingDetail.getBindingTemplate().get(0);
+ } catch (Exception e) {
+ log.error("Unable to register template binding " + bindingTemplate.getBindingKey()
+ + " ." + e.getMessage(),e);
+ } catch (Throwable t) {
+ log.error("Unable to register template binding " + bindingTemplate.getBindingKey()
+ + " ." + t.getMessage(),t);
+ }
+ log.info("Registering template binding " + binding.getBindingKey() + " completed.");
+ return bindingTemplate;
+ }
+ /**
* Register a service.
*
*/
@@ -254,6 +282,37 @@ public class UDDIClerk implements Serial
return null;
}
+ /**
+ * Looks up the BusinessEntiry in the registry, will return null if is not found.
+ *
+ * @param businessKey - the key we are looking for
+ * @param node - the node which is going to be queried
+ * @return BusinessEntity is found, or null if not found.
+ * @throws RemoteException
+ * @throws TransportException
+ * @throws ConfigurationException
+ */
+ public RelatedBusinessesList findRelatedBusinesses(String businessKey, Node node) throws RemoteException,
+ TransportException, ConfigurationException {
+ FindRelatedBusinesses findRelatedBusinesses = new FindRelatedBusinesses();
+ findRelatedBusinesses.setBusinessKey(businessKey);
+ findRelatedBusinesses.setAuthInfo(node.getSecurityUrl());
+ try {
+ RelatedBusinessesList rbl = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).findRelatedBusinesses(findRelatedBusinesses);
+ return rbl;
+ } catch (DispositionReportFaultMessage dr) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, businessKey);
+ } catch (SOAPFaultException sfe) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, businessKey);
+ } catch (UndeclaredThrowableException ute) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, businessKey);
+ }
+ return null;
+ }
+
private void checkForErrorInDispositionReport(DispositionReport report, String Error, String entityKey) {
if (report!=null &&report.countainsErrorCode(DispositionReport.E_INVALID_KEY_PASSED)) {
Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/XRegistration.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/XRegistration.java?rev=963108&r1=963107&r2=963108&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/XRegistration.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/XRegistration.java Sun Jul 11 16:39:55 2010
@@ -66,7 +66,7 @@ public class XRegistration {
try {
businessEntity = fromClerk.findBusiness(entityKey,fromClerk.getUDDINode().getApiNode());
log.info("xregister business " + businessEntity.getName().get(0).getValue() + " + from "
- + fromClerk.getName() + " to " + toClerk.getName());
+ + fromClerk.getName() + " to " + toClerk.getName() + ".");
//not bringing over the services. They need to be explicitly copied using xRegisterService.
businessEntity.setBusinessServices(null);
toClerk.register(businessEntity,toClerk.getUDDINode().getApiNode());
@@ -75,25 +75,42 @@ public class XRegistration {
}
}
+ /**
+ * Copies the BusinessInformation from one UDDI to another UDDI.
+ */
+ public void xRegisterBusinessAndServices() {
+ BusinessEntity businessEntity;
+ try {
+ businessEntity = fromClerk.findBusiness(entityKey,fromClerk.getUDDINode().getApiNode());
+ log.info("xregister business " + businessEntity.getName().get(0).getValue() + " + from "
+ + fromClerk.getName() + " to " + toClerk.getName() + " including all services owned by this business.");
+ toClerk.register(businessEntity,toClerk.getUDDINode().getApiNode());
+ } catch (Exception e) {
+ log.error("Could not " + toString() + ". " + e.getMessage() + " " + e.getCause(),e);
+ }
+ }
+ /**
+ * Copies the Service from one UDDI to another UDDI.
+ */
public void xRegisterService() {
BusinessService businessService;
try {
businessService = fromClerk.findService(entityKey,fromClerk.getUDDINode().getApiNode());
log.info("xregister service " + businessService.getName().get(0).getValue() + " + from "
+ fromClerk.getName() + " to " + toClerk.getName());
+ businessService.setBindingTemplates(null);
toClerk.register(businessService,toClerk.getUDDINode().getApiNode());
} catch (Exception e) {
log.error("Could not " + toString() + ". " + e.getMessage() + " " + e.getCause(),e);
}
}
-
- public void xRegisterServiceBinding() {
+ /**
+ * Copies the Service from one UDDI to another UDDI along with all the bindingTemplates.
+ */
+ public void xRegisterServiceAndBindings() {
BusinessService businessService;
try {
- BindingTemplate bindingTemplate = fromClerk.findServiceBinding(entityKey,fromClerk.getUDDINode().getApiNode());
- businessService = fromClerk.findService(bindingTemplate.getServiceKey(),fromClerk.getUDDINode().getApiNode());
- businessService.getBindingTemplates().getBindingTemplate().clear();
- businessService.getBindingTemplates().getBindingTemplate().add(bindingTemplate);
+ businessService = fromClerk.findService(entityKey,fromClerk.getUDDINode().getApiNode());
log.info("xregister service " + businessService.getName().get(0).getValue() + " + from "
+ fromClerk.getName() + " to " + toClerk.getName());
toClerk.register(businessService,toClerk.getUDDINode().getApiNode());
@@ -101,6 +118,19 @@ public class XRegistration {
log.error("Could not " + toString() + ". " + e.getMessage() + " " + e.getCause(),e);
}
}
+ /**
+ * Copies the TemplateBinding from one UDDI to another UDDI.
+ */
+ public void xRegisterServiceBinding() {
+ try {
+ BindingTemplate bindingTemplate = fromClerk.findServiceBinding(entityKey,fromClerk.getUDDINode().getApiNode());
+ log.info("xregister binding " + bindingTemplate.getBindingKey()+ " + from "
+ + fromClerk.getName() + " to " + toClerk.getName());
+ toClerk.register(bindingTemplate,toClerk.getUDDINode().getApiNode());
+ } catch (Exception e) {
+ log.error("Could not " + toString() + ". " + e.getMessage() + " " + e.getCause(),e);
+ }
+ }
public String toString() {
return " xregister entityKey: " + entityKey + " + from " + fromClerk.getName() + " to " + toClerk.getName();
Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/XRegisterHelper.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/XRegisterHelper.java?rev=963108&r1=963107&r2=963108&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/XRegisterHelper.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/XRegisterHelper.java Sun Jul 11 16:39:55 2010
@@ -20,7 +20,13 @@ import org.apache.juddi.api_v3.Clerk;
import org.apache.juddi.v3.client.config.UDDIClerk;
import org.apache.juddi.v3.client.config.XRegistration;
import org.apache.log4j.Logger;
+import org.uddi.api_v3.BindingDetail;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BusinessDetail;
import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessInfo;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.ServiceDetail;
import org.uddi.api_v3.ServiceInfo;
import org.uddi.sub_v3.SubscriptionResultsList;
@@ -35,25 +41,137 @@ public class XRegisterHelper {
public static void handle(Clerk fromClerk, Clerk toClerk, SubscriptionResultsList list) {
+ UDDIClerk uddiToClerk = new UDDIClerk(toClerk);
+ UDDIClerk uddiFromClerk = new UDDIClerk(fromClerk);
+ //SERVICE LIST
if (list.getServiceList()!=null) {
-
+ log.info("Subscription result for ServiceList with subscription key=" + list.getSubscription().getSubscriptionKey());
for (ServiceInfo serviceInfo : list.getServiceList().getServiceInfos().getServiceInfo() ) {
- UDDIClerk uddiToClerk = new UDDIClerk(toClerk);
+
+ BusinessEntity existingBusinessEntity = null;
try {
- BusinessEntity existingEntity = uddiToClerk.findBusiness(serviceInfo.getBusinessKey(), toClerk.getNode());
- if (existingEntity!=null) {
- log.info("Found business with key " + existingEntity.getBusinessKey() + ". No need to add it again");
+ if (existingBusinessEntity==null) {
+ existingBusinessEntity = uddiToClerk.findBusiness(serviceInfo.getBusinessKey(), toClerk.getNode());
+ }
+ if (existingBusinessEntity!=null) {
+ log.debug("Found business with key " + existingBusinessEntity.getBusinessKey() + ". No need to add it again");
} else {
log.info("Business was not found in the destination UDDI " + toClerk.getNode().getName()
+ ", going to add it in.");
new XRegistration(serviceInfo.getBusinessKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterBusiness();
}
- new XRegistration(serviceInfo.getServiceKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterService();
+ new XRegistration(serviceInfo.getServiceKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterServiceAndBindings();
+ } catch (Exception e) {
+ log.error(e.getMessage(),e);
+ }
+ }
+ }
+ //SERVICE DETAIL
+ if (list.getServiceDetail()!=null) {
+ log.info("Subscription result for ServiceDetail with subscription key=" + list.getSubscription().getSubscriptionKey());
+ ServiceDetail serviceDetail = list.getServiceDetail();
+ if (serviceDetail.isTruncated()) {
+ log.info("The serviceDetail is truncated, the maxEntries must have been hit. The number of services is " + serviceDetail.getBusinessService().size());
+ }
+ for (BusinessService service : serviceDetail.getBusinessService()) {
+ BusinessEntity existingBusinessEntity = null;
+ try {
+ if (existingBusinessEntity==null) {
+ existingBusinessEntity = uddiToClerk.findBusiness(service.getBusinessKey(), toClerk.getNode());
+ }
+ if (existingBusinessEntity!=null) {
+ log.debug("Found business with key " + existingBusinessEntity.getBusinessKey() + ". No need to add it again");
+ } else {
+ log.info("Business was not found in the destination UDDI " + toClerk.getNode().getName()
+ + ", going to add it in.");
+ new XRegistration(service.getBusinessKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterBusiness();
+ }
+ new XRegistration(service.getServiceKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterServiceAndBindings();
+ } catch (Exception e) {
+ log.error(e.getMessage(),e);
+ }
+ }
+ }
+
+ //BUSINESS LIST
+ if (list.getBusinessList()!=null) {
+ log.info("Subscription result for BusinessList with subscription key=" + list.getSubscription().getSubscriptionKey());
+ for (BusinessInfo businessInfo : list.getBusinessList().getBusinessInfos().getBusinessInfo()) {
+ new XRegistration(businessInfo.getBusinessKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterBusinessAndServices();
+ }
+ }
+
+ //BUSINESS DETAIL
+ if (list.getBusinessDetail()!=null) {
+ log.info("Subscription result for BusinessDetail with subscription key=" + list.getSubscription().getSubscriptionKey());
+ BusinessDetail businessDetail = list.getBusinessDetail();
+ if (businessDetail.isTruncated()) {
+ log.info("The businessDetail is truncated, the maxEntries must have been hit. The number of businesses is " + businessDetail.getBusinessEntity().size());
+ }
+ for (BusinessEntity businessEntity : businessDetail.getBusinessEntity()) {
+ new XRegistration(businessEntity.getBusinessKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterBusinessAndServices();
+ }
+ }
+
+ //KEY BAG, NOT IMPLEMENTED
+ if (list.getKeyBag()!=null) {
+ log.info("Returning results when a 'brief' format is selected, please do not use 'brief' results when using the XRegistration functionality");
+ }
+
+ //BINDING DETAIL
+ if (list.getBindingDetail()!=null) {
+ log.info("Subscription result for BindingDetail with subscription key=" + list.getSubscription().getSubscriptionKey());
+ BindingDetail bindingDetail = list.getBindingDetail();
+ if (bindingDetail.isTruncated()) {
+ log.info("The bindingDetail is truncated, the maxEntries must have been hit. The number of bindings is " + bindingDetail.getBindingTemplate().size());
+ }
+ for (BindingTemplate bindingTemplate : bindingDetail.getBindingTemplate()) {
+ try {
+ //check if the service exist
+ BusinessService existingToService = uddiToClerk.findService(bindingTemplate.getServiceKey(), toClerk.getNode());
+ if (existingToService!=null) {
+ log.debug("Found service with key " + existingToService.getServiceKey() + ". No need to add it again");
+ } else {
+ BusinessService fromService = uddiFromClerk.findService(bindingTemplate.getServiceKey(), fromClerk.getNode());
+ fromService.getBusinessKey();
+ //check if the business exist
+ BusinessEntity existingBusinessEntity = uddiToClerk.findBusiness(fromService.getBusinessKey(), toClerk.getNode());
+ if (existingBusinessEntity!=null) {
+ log.debug("Found business with key " + existingBusinessEntity.getBusinessKey() + ". No need to add it again");
+ } else {
+ log.info("Business was not found in the destination UDDI " + toClerk.getNode().getName()
+ + ", going to add it in.");
+ new XRegistration(fromService.getBusinessKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterBusiness();
+ }
+ log.info("Service was not found in the destination UDDI " + toClerk.getNode().getName()
+ + ", going to add it in.");
+ new XRegistration(fromService.getServiceKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterService();
+ }
+ //now the service exists in the toNode and we can add this binding
+ new XRegistration(bindingTemplate.getBindingKey(), new UDDIClerk(fromClerk), new UDDIClerk(toClerk)).xRegisterServiceBinding();
} catch (Exception e) {
log.error(e.getMessage(),e);
}
}
}
+
+ //RELATED BUSINESSES
+ if (list.getRelatedBusinessesList()!=null) {
+ log.info("Subscription result for RelatedBusinesses with subscription key=" + list.getSubscription().getSubscriptionKey());
+ log.info("The jUDDI Listener is not doing anything with this subscription at this moment");
+ }
+
+ //ASSERTION STATUS REPORT
+ if (list.getAssertionStatusReport()!=null) {
+ log.info("Subscription result for AssertionStatusReport with subscription key=" + list.getSubscription().getSubscriptionKey());
+ log.info("The jUDDI Listener is not doing anything with this subscription at this moment");
+ }
+
+ //TMODELS
+ if (list.getTModelList()!=null ){
+ log.info("Subscription result for tModelList with subscription key=" + list.getSubscription().getSubscriptionKey());
+ log.info("The jUDDI Listener is not doing anything with this subscription at this moment");
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org