You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2013/05/11 02:27:35 UTC
svn commit: r1481240 [2/4] - in /juddi/branches/juddi-3.2.x: ./
juddi-client/ juddi-client/src/main/java/org/apache/juddi/v3/client/
juddi-client/src/main/java/org/apache/juddi/v3/client/config/
juddi-client/src/main/java/org/apache/juddi/v3/client/map...
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java Sat May 11 00:27:33 2013
@@ -18,6 +18,8 @@ package org.apache.juddi.v3.client.confi
import java.io.Serializable;
import java.lang.reflect.UndeclaredThrowableException;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Date;
@@ -26,6 +28,8 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
+import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
import javax.xml.ws.Holder;
import javax.xml.ws.soap.SOAPFaultException;
@@ -38,13 +42,19 @@ import org.apache.juddi.api_v3.Node;
import org.apache.juddi.api_v3.NodeDetail;
import org.apache.juddi.api_v3.SaveClerk;
import org.apache.juddi.api_v3.SaveNode;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.client.mapping.ReadWSDL;
+import org.apache.juddi.v3.client.mapping.URLLocalizerDefaultImpl;
+import org.apache.juddi.v3.client.mapping.WSDL2UDDI;
import org.apache.juddi.v3.client.transport.TransportException;
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.BusinessService;
+import org.uddi.api_v3.CategoryBag;
import org.uddi.api_v3.DeleteBinding;
+import org.uddi.api_v3.DeleteBusiness;
import org.uddi.api_v3.DeleteService;
import org.uddi.api_v3.DeleteTModel;
import org.uddi.api_v3.DiscardAuthToken;
@@ -56,6 +66,10 @@ import org.uddi.api_v3.GetBindingDetail;
import org.uddi.api_v3.GetBusinessDetail;
import org.uddi.api_v3.GetServiceDetail;
import org.uddi.api_v3.GetTModelDetail;
+import org.uddi.api_v3.KeyedReference;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.OverviewDoc;
+import org.uddi.api_v3.OverviewURL;
import org.uddi.api_v3.RelatedBusinessesList;
import org.uddi.api_v3.Result;
import org.uddi.api_v3.SaveBinding;
@@ -72,585 +86,789 @@ import org.uddi.v3_service.DispositionRe
public class UDDIClerk implements Serializable {
- private static final long serialVersionUID = -8597375975981358134L;
- private Log log = LogFactory.getLog(this.getClass());
-
- protected String name;
- protected UDDINode uddiNode;
- protected String publisher;
- protected String password;
-
- private Date tokenBirthDate;
- private String authToken;
- private String[] classWithAnnotations;
- private String managerName;
-
- private Map<String,Properties> services = new HashMap<String,Properties>();
-
-
-
- public UDDIClerk() {
- super();
- // TODO Auto-generated constructor stub
- }
-
- public UDDIClerk(Clerk clerk) {
- super();
- this.name = clerk.getName();
- this.password = clerk.getPassword();
- this.publisher = clerk.getPublisher();
- this.uddiNode = new UDDINode(clerk.getNode());
- }
-
- public String[] getClassWithAnnotations() {
- return classWithAnnotations;
- }
-
- public void setClassWithAnnotations(String[] classWithAnnotations) {
- this.classWithAnnotations = classWithAnnotations;
- }
-
- public Map<String, Properties> getServices() {
- return services;
- }
-
- public void setServices(Map<String, Properties> services) {
- this.services = services;
- }
-
- public String getManagerName() {
- return managerName;
- }
-
- public void setManagerName(String managerName) {
- this.managerName = managerName;
- }
-
- public Subscription register(Subscription subscription) {
- return register(subscription, this.getUDDINode().getApiNode());
- }
- /**
- * Register a Subscription.
- */
- public Subscription register(Subscription subscription, Node node) {
-
- log.info("Registering subscription with key " + subscription.getSubscriptionKey());
- Holder<List<Subscription>> holder = new Holder<List<Subscription>>();
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
-
- List<Subscription> subscriptions = new ArrayList<Subscription>();
- subscriptions.add(subscription);
- holder.value = subscriptions;
- getUDDINode().getTransport().getUDDISubscriptionService(node.getSubscriptionUrl()).saveSubscription(authToken, holder);
- if (log.isDebugEnabled()) log.debug("Registering subscription " + subscription.getSubscriptionKey() + " completed.");
- } catch (Exception e) {
- log.error("Unable to register subscription " + subscription.getSubscriptionKey()
- + " ." + e.getMessage(),e);
- } catch (Throwable t) {
- log.error("Unable to register subscriptionl " + subscription.getSubscriptionKey()
- + " ." + t.getMessage(),t);
- }
- subscription = holder.value.get(0);
- return subscription;
- }
- /**
- * Register a tModel, using the node of current clerk ('this').
- *
- * @param tModel
- * @return the TModelDetail of the newly registered TModel
- */
- public TModelDetail register(TModel tModel) {
- return register(tModel, this.getUDDINode().getApiNode());
- }
- /**
- * Register a tModel.
- */
- public TModelDetail register(TModel tModel, Node node) {
- TModelDetail tModelDetail = null;
- log.info("Registering tModel with key " + tModel.getTModelKey());
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
- SaveTModel saveTModel = new SaveTModel();
- saveTModel.setAuthInfo(authToken);
- saveTModel.getTModel().add(tModel);
- tModelDetail = getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).saveTModel(saveTModel);
- if (log.isDebugEnabled()) log.debug("Registering tModel " + tModel.getTModelKey() + " completed.");
- } catch (Exception e) {
- log.error("Unable to register tModel " + tModel.getTModelKey()
- + " ." + e.getMessage(),e);
- } catch (Throwable t) {
- log.error("Unable to register tModel " + tModel.getTModelKey()
- + " ." + t.getMessage(),t);
- }
- return tModelDetail;
- }
-
- /**
- * Register a BindingTemplate, using the node of current clerk ('this').
- *
- */
- public BindingTemplate register(BindingTemplate binding) {
- return register(binding, this.getUDDINode().getApiNode());
- }
- /**
- * Register a BindingTemplate.
- *
- */
- 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);
- if (log.isDebugEnabled()) log.debug("Registering template binding " + binding.getBindingKey() + " completed.");
- } 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);
- }
- return bindingTemplate;
- }
- /**
- * Register a service, using the node of current clerk ('this').
- *
- */
- public BusinessService register(BusinessService service) {
- return register(service, this.getUDDINode().getApiNode());
- }
- /**
- * Register a service.
- *
- */
- public BusinessService register(BusinessService service, Node node) {
-
- BusinessService businessService=null;
- log.info("Registering service " + service.getName().get(0).getValue()
- + " with key " + service.getServiceKey());
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
- SaveService saveService = new SaveService();
- saveService.setAuthInfo(authToken);
- saveService.getBusinessService().add(service);
- ServiceDetail serviceDetail = getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).saveService(saveService);
- businessService = serviceDetail.getBusinessService().get(0);
- if (log.isDebugEnabled()) log.debug("Registering service " + service.getName().get(0).getValue() + " completed.");
- } catch (Exception e) {
- log.error("Unable to register service " + service.getName().get(0).getValue()
- + " ." + e.getMessage(),e);
- } catch (Throwable t) {
- log.error("Unable to register service " + service.getName().get(0).getValue()
- + " ." + t.getMessage(),t);
- }
- return businessService;
- }
- public BusinessEntity register(BusinessEntity business) {
- return register(business, this.getUDDINode().getApiNode());
- }
- /**
- * Register a service.
- * returns null if not successful
- */
- public BusinessEntity register(BusinessEntity business, Node node) {
-
- BusinessEntity businessEntity=null;
- log.info("Registering business " + business.getName().get(0).getValue()
- + " with key " + business.getBusinessKey());
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
- SaveBusiness saveBusiness = new SaveBusiness();
- saveBusiness.setAuthInfo(authToken);
- saveBusiness.getBusinessEntity().add(business);
- BusinessDetail businessDetail = getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).saveBusiness(saveBusiness);
- businessEntity = businessDetail.getBusinessEntity().get(0);
- if (log.isDebugEnabled()) log.debug("Registering businessEntity " + businessEntity.getName().get(0).getValue() + " completed.");
- } catch (Exception e) {
- log.error("Unable to register business " + business.getName().get(0).getValue()
- + " ." + e.getMessage(),e);
- } catch (Throwable t) {
- log.error("Unable to register business " + business.getName().get(0).getValue()
- + " ." + t.getMessage(),t);
- }
- return businessEntity;
- }
-
- public void unRegisterService(String serviceKey) {
- unRegisterService(serviceKey, this.getUDDINode().getApiNode());
- }
- /**
- * Unregisters the service with specified serviceKey.
- * @param service
- */
- public void unRegisterService(String serviceKey, Node node) {
- log.info("UnRegistering the service " + serviceKey);
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
- DeleteService deleteService = new DeleteService();
- deleteService.setAuthInfo(authToken);
- deleteService.getServiceKey().add(serviceKey);
- getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).deleteService(deleteService);
- } catch (Exception e) {
- log.error("Unable to register service " + serviceKey
- + " ." + e.getMessage(),e);
- }
- }
- public void unRegisterBinding(String bindingKey) {
- unRegisterBinding(bindingKey, this.getUDDINode().getApiNode());
- }
- /**
- * Unregisters the BindingTemplate with specified bindingKey.
- * @param bindingTemplate
- * @param node
- */
- public void unRegisterBinding(String bindingKey, Node node) {
- log.info("UnRegistering binding key " + bindingKey);
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
- DeleteBinding deleteBinding = new DeleteBinding();
- deleteBinding.setAuthInfo(authToken);
- deleteBinding.getBindingKey().add(bindingKey);
- getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).deleteBinding(deleteBinding);
- } catch (Exception e) {
- log.error("Unable to unregister bindingkey " + bindingKey
- + " ." + e.getMessage(),e);
- }
- }
-
- public void unRegisterTModel(String tModelKey) {
- unRegisterTModel(tModelKey, this.getUDDINode().getApiNode());
- }
- /**
- * Unregisters the BindingTemplate with specified bindingKey.
- * @param bindingTemplate
- * @param node
- */
- public void unRegisterTModel(String tModelKey, Node node) {
- log.info("UnRegistering tModel key " + tModelKey);
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
- DeleteTModel deleteTModel = new DeleteTModel();
- deleteTModel.setAuthInfo(authToken);
- deleteTModel.getTModelKey().add(tModelKey);
- getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).deleteTModel(deleteTModel);
- } catch (Exception e) {
- log.error("Unable to unregister tModelkey " + tModelKey
- + " ." + e.getMessage(),e);
- }
- }
-
- public void unRegisterSubscription(String subscriptionKey) {
- unRegisterSubscription(subscriptionKey, this.getUDDINode().getApiNode());
- }
-
- public void unRegisterSubscription(String subscriptionKey, Node node) {
- log.info("UnRegistering subscription with key " + subscriptionKey);
- try {
- String authToken = getAuthToken(node.getSecurityUrl());
- DeleteSubscription deleteSubscription = new DeleteSubscription();
- deleteSubscription.setAuthInfo(authToken);
- deleteSubscription.getSubscriptionKey().add(subscriptionKey);
- getUDDINode().getTransport().getUDDISubscriptionService(node.getSubscriptionUrl()).deleteSubscription(deleteSubscription);
- } catch (Exception e) {
- log.error("Unable to unregister subscription key " + subscriptionKey
- + " ." + e.getMessage(),e);
- }
- }
-
-
- public TModelList findTModel(FindTModel findTModel) throws RemoteException, ConfigurationException, TransportException {
- return findTModel(findTModel, this.getUDDINode().getApiNode());
- }
-
- public TModelList findTModel(FindTModel findTModel, Node node) throws RemoteException,
- TransportException, ConfigurationException {
-
- findTModel.setAuthInfo(getAuthToken(node.getSecurityUrl()));
- try {
- TModelList tModelList = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).findTModel(findTModel);
- return tModelList;
- } catch (DispositionReportFaultMessage dr) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
- checkForErrorInDispositionReport(report, null, null);
- } catch (SOAPFaultException sfe) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
- checkForErrorInDispositionReport(report, null, null);
- } catch (UndeclaredThrowableException ute) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
- checkForErrorInDispositionReport(report, null, null);
- }
- return null;
- }
-
- public TModelDetail getTModelDetail(String tModelKey) throws RemoteException, ConfigurationException, TransportException {
- GetTModelDetail getTModelDetail = new GetTModelDetail();
- getTModelDetail.getTModelKey().add(tModelKey);
- return getTModelDetail(getTModelDetail);
- }
-
- public TModelDetail getTModelDetail(GetTModelDetail getTModelDetail) throws RemoteException, ConfigurationException, TransportException {
- return getTModelDetail(getTModelDetail, this.getUDDINode().getApiNode());
- }
-
- public TModelDetail getTModelDetail(GetTModelDetail getTModelDetail, Node node) throws RemoteException,
- TransportException, ConfigurationException {
-
- getTModelDetail.setAuthInfo(getAuthToken(node.getSecurityUrl()));
- try {
- TModelDetail tModelDetail = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getTModelDetail(getTModelDetail);
- return tModelDetail;
- } catch (DispositionReportFaultMessage dr) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
- checkForErrorInDispositionReport(report, null, null);
- } catch (SOAPFaultException sfe) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
- checkForErrorInDispositionReport(report, null, null);
- } catch (UndeclaredThrowableException ute) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
- checkForErrorInDispositionReport(report, null, null);
- }
- return null;
- }
-
- public BusinessService findService(String serviceKey) throws RemoteException,
- TransportException, ConfigurationException {
- return findService(serviceKey, this.getUDDINode().getApiNode());
- }
-
- public BusinessService findService(String serviceKey, Node node) throws RemoteException,
- TransportException, ConfigurationException {
- GetServiceDetail getServiceDetail = new GetServiceDetail();
- getServiceDetail.getServiceKey().add(serviceKey);
- getServiceDetail.setAuthInfo(getAuthToken(node.getSecurityUrl()));
- try {
- ServiceDetail sd = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getServiceDetail(getServiceDetail);
- List<BusinessService> businessServiceList = sd.getBusinessService();
- if (businessServiceList.size() == 0) throw new ConfigurationException("Could not find Service with key=" + serviceKey);
- return businessServiceList.get(0);
- } catch (DispositionReportFaultMessage dr) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
- checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, serviceKey);
- } catch (SOAPFaultException sfe) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
- checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, serviceKey);
- } catch (UndeclaredThrowableException ute) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
- checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, serviceKey);
- }
- return null;
- }
-
- public BindingTemplate findServiceBinding(String bindingKey) throws DispositionReportFaultMessage, RemoteException,
- TransportException, ConfigurationException {
- return findServiceBinding(bindingKey, this.getUDDINode().getApiNode());
- }
-
- public BindingTemplate findServiceBinding(String bindingKey, Node node) throws DispositionReportFaultMessage, RemoteException,
- TransportException, ConfigurationException {
- GetBindingDetail getBindingDetail = new GetBindingDetail();
- getBindingDetail.getBindingKey().add(bindingKey);
- getBindingDetail.setAuthInfo(getAuthToken(node.getSecurityUrl()));
- try {
- BindingDetail bd = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getBindingDetail(getBindingDetail);
- List<BindingTemplate> bindingTemplateList = bd.getBindingTemplate();
- if (bindingTemplateList.size() == 0) throw new ConfigurationException("Could not find ServiceBinding with key=" + bindingKey);
- return bindingTemplateList.get(0);
- } catch (DispositionReportFaultMessage dr) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
- checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, bindingKey);
- } catch (SOAPFaultException sfe) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
- checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, bindingKey);
- } catch (UndeclaredThrowableException ute) {
- DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
- checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, bindingKey);
- }
- return null;
- }
-
- public BusinessEntity findBusiness(String businessKey) throws RemoteException,
- TransportException, ConfigurationException {
- return findBusiness(businessKey, this.getUDDINode().getApiNode());
- }
-
- /**
- * 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 BusinessEntity findBusiness(String businessKey, Node node) throws RemoteException,
- TransportException, ConfigurationException {
- GetBusinessDetail getBusinessDetail = new GetBusinessDetail();
- getBusinessDetail.getBusinessKey().add(businessKey);
- getBusinessDetail.setAuthInfo(node.getSecurityUrl());
- try {
- BusinessDetail bd = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getBusinessDetail(getBusinessDetail);
- return bd.getBusinessEntity().get(0);
- } 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;
- }
-
- /**
- * 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 (entityKey!=null && report!=null && report.countainsErrorCode(DispositionReport.E_INVALID_KEY_PASSED)) {
- log.info("entityKey " + entityKey + " was not found in the registry");
- } else {
- if (report == null) {
- log.info("Missing DispositionReport");
- } else {
- for (Result result : report.getResult()) {
- log.error(result.getErrInfo().getErrCode() + " " + result.getErrInfo().getValue());
- }
- }
- }
- }
-
- private String getAuthToken(String endpointURL) throws TransportException, DispositionReportFaultMessage, RemoteException {
- //if the token is older then 10 minutes discard it, and create a new one.
- if ((authToken!=null && !"".equals(authToken)) && (tokenBirthDate !=null && System.currentTimeMillis() > tokenBirthDate.getTime() + 600000 )) {
- DiscardAuthToken discardAuthToken = new DiscardAuthToken();
- discardAuthToken.setAuthInfo(authToken);
- getUDDINode().getTransport().getUDDISecurityService(endpointURL).discardAuthToken(discardAuthToken);
- authToken=null;
- }
- if (authToken==null || "".equals(authToken)) {
- tokenBirthDate = new Date();
- GetAuthToken getAuthToken = new GetAuthToken();
- getAuthToken.setUserID(getPublisher());
- getAuthToken.setCred(getPassword());
- authToken = getUDDINode().getTransport().getUDDISecurityService(endpointURL).getAuthToken(getAuthToken).getAuthInfo();
- }
- return authToken;
- }
-
- public NodeDetail saveNode(Node node) {
- NodeDetail nodeDetail = null;
- try {
- log.info("Sending Node " + node.getName() + " info to jUDDI " + getUDDINode().getName());
- SaveNode saveNode = new SaveNode();
- saveNode.setAuthInfo(getAuthToken(node.getSecurityUrl()));
- saveNode.getNode().add(node);
- nodeDetail =getUDDINode().getTransport().getJUDDIApiService(node.getJuddiApiUrl()).saveNode(saveNode);
- } catch (Exception e) {
- log.error("Unable to save node " + node.getName()
- + " ." + e.getMessage(),e);
- } catch (Throwable t) {
- log.error("Unable to save node " + node.getName()
- + " ." + t.getMessage(),t);
- }
- return nodeDetail;
- }
-
- public ClerkDetail saveClerk(UDDIClerk senderClerk) {
- ClerkDetail clerkDetail = null;
- try {
- log.debug("Sending Clerk " + senderClerk.getName() + " info to jUDDI " + getUDDINode().getName());
- SaveClerk saveClerk = new SaveClerk();
- saveClerk.setAuthInfo(getAuthToken(senderClerk.getUDDINode().getSecurityUrl()));
- saveClerk.getClerk().add(getApiClerk());
- clerkDetail = getUDDINode().getTransport().getJUDDIApiService(senderClerk.getUDDINode().getJuddiApiUrl()).saveClerk(saveClerk);
- } catch (Exception e) {
- log.error("Unable to save clerk " + getName()
- + " ." + e.getMessage(),e);
- } catch (Throwable t) {
- log.error("Unable to save clerk " + getName()
- + " ." + t.getMessage(),t);
- }
- return clerkDetail;
- }
-
- public Clerk getApiClerk() {
- Clerk apiClerk = new Clerk();
- apiClerk.setName(name);
- apiClerk.setNode(uddiNode.getApiNode());
- apiClerk.setPassword(password);
- apiClerk.setPublisher(publisher);
- return apiClerk;
- }
-
- public UDDINode getUDDINode() {
- return uddiNode;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public void setUDDINode(UDDINode uddiNode) {
- this.uddiNode = uddiNode;
- }
-
- public String getPublisher() {
- return publisher;
- }
-
- public void setPublisher(String publisher) {
- this.publisher = publisher;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
-
-
+ private static final long serialVersionUID = -8597375975981358134L;
+ private Log log = LogFactory.getLog(this.getClass());
+ protected String name;
+ protected UDDINode uddiNode;
+ protected String publisher;
+ protected String password;
+ private Date tokenBirthDate;
+ private String authToken;
+ private String[] classWithAnnotations;
+ private WSDL[] wsdls;
+ private String managerName;
+ private Map<String, Properties> services = new HashMap<String, Properties>();
+
+ public UDDIClerk() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public UDDIClerk(Clerk clerk) {
+ super();
+ this.name = clerk.getName();
+ this.password = clerk.getPassword();
+ this.publisher = clerk.getPublisher();
+ this.uddiNode = new UDDINode(clerk.getNode());
+ }
+
+ public String[] getClassWithAnnotations() {
+ return classWithAnnotations;
+ }
+
+ public void setClassWithAnnotations(String[] classWithAnnotations) {
+ this.classWithAnnotations = classWithAnnotations;
+ }
+
+ public Map<String, Properties> getServices() {
+ return services;
+ }
+
+ public void setServices(Map<String, Properties> services) {
+ this.services = services;
+ }
+
+ public String getManagerName() {
+ return managerName;
+ }
+
+ public void setManagerName(String managerName) {
+ this.managerName = managerName;
+ }
+
+ public void registerWsdls() {
+ if (this.getWsdls() != null) {
+ Properties properties = new Properties();
+ properties.putAll(this.getUDDINode().getProperties());
+
+ for (WSDL wsdl : this.getWsdls()) {
+ try {
+ URL wsdlUrl = this.getClass().getClassLoader().getResource(wsdl.getFileName());
+ ReadWSDL rw = new ReadWSDL();
+ Definition wsdlDefinition = rw.readWSDL(wsdlUrl);
+ if (wsdl.keyDomain != null) {
+ properties.setProperty("keyDomain", wsdl.keyDomain);
+ }
+ if (wsdl.businessKey != null) {
+ properties.setProperty("businessKey", wsdl.getBusinessKey());
+ }
+
+ WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(this, new URLLocalizerDefaultImpl(), properties);
+ wsdl2UDDI.registerBusinessServices(wsdlDefinition);
+ } catch (Exception e) {
+ log.error("Unable to register wsdl " + wsdl.getFileName() + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to register wsdl " + wsdl.getFileName() + " ." + t.getMessage(), t);
+ }
+ }
+ }
+ }
+
+ public void registerWsdls(Definition wsdlDefinition, String keyDomain, String businessKey) {
+
+ try {
+ Properties properties = new Properties();
+ properties.putAll(this.getUDDINode().getProperties());
+ //Definition wsdlDefinition = rw.readWSDL(wsdlUrl);
+ if (keyDomain != null) {
+ properties.setProperty("keyDomain", keyDomain);
+ }
+ if (businessKey != null) {
+ properties.setProperty("businessKey", businessKey);
+ }
+
+ WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(this, new URLLocalizerDefaultImpl(), properties);
+ wsdl2UDDI.registerBusinessServices(wsdlDefinition);
+ } catch (Exception e) {
+ log.error("Unable to register wsdl " + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to register wsdl " + " ." + t.getMessage(), t);
+ }
+ }
+
+ public void unRegisterWsdls() {
+ if (this.getWsdls() != null) {
+ Properties properties = new Properties();
+ properties.putAll(this.getUDDINode().getProperties());
+
+ for (WSDL wsdl : this.getWsdls()) {
+ try {
+ URL wsdlUrl = this.getClass().getClassLoader().getResource(wsdl.getFileName());
+ ReadWSDL rw = new ReadWSDL();
+ Definition wsdlDefinition = rw.readWSDL(wsdlUrl);
+ if (wsdl.keyDomain != null) {
+ properties.setProperty("keyDomain", wsdl.keyDomain);
+ }
+ if (wsdl.businessKey != null) {
+ properties.setProperty("businessKey", wsdl.getBusinessKey());
+ }
+
+ WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(this, new URLLocalizerDefaultImpl(), properties);
+ wsdl2UDDI.unRegisterBusinessServices(wsdlDefinition);
+ } catch (Exception e) {
+ log.error("Unable to register wsdl " + wsdl.getFileName() + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to register wsdl " + wsdl.getFileName() + " ." + t.getMessage(), t);
+ }
+ }
+ }
+ }
+
+ public Subscription register(Subscription subscription) {
+ return register(subscription, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Register a Subscription.
+ */
+ public Subscription register(Subscription subscription, Node node) {
+
+ log.info("Registering subscription with key " + subscription.getSubscriptionKey());
+ Holder<List<Subscription>> holder = new Holder<List<Subscription>>();
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+
+ List<Subscription> subscriptions = new ArrayList<Subscription>();
+ subscriptions.add(subscription);
+ holder.value = subscriptions;
+ getUDDINode().getTransport().getUDDISubscriptionService(node.getSubscriptionUrl()).saveSubscription(authToken, holder);
+ if (log.isDebugEnabled()) {
+ log.debug("Registering subscription " + subscription.getSubscriptionKey() + " completed.");
+ }
+ } catch (Exception e) {
+ log.error("Unable to register subscription " + subscription.getSubscriptionKey()
+ + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to register subscriptionl " + subscription.getSubscriptionKey()
+ + " ." + t.getMessage(), t);
+ }
+ subscription = holder.value.get(0);
+ return subscription;
+ }
+
+ /**
+ * Register a tModel, using the node of current clerk ('this').
+ *
+ * @param tModel
+ * @return the TModelDetail of the newly registered TModel
+ */
+ public TModelDetail register(TModel tModel) {
+ return register(tModel, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Register a tModel.
+ */
+ public TModelDetail register(TModel tModel, Node node) {
+ TModelDetail tModelDetail = null;
+ log.info("Registering tModel with key " + tModel.getTModelKey());
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ SaveTModel saveTModel = new SaveTModel();
+ saveTModel.setAuthInfo(authToken);
+ saveTModel.getTModel().add(tModel);
+ tModelDetail = getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).saveTModel(saveTModel);
+ if (log.isDebugEnabled()) {
+ log.debug("Registering tModel " + tModel.getTModelKey() + " completed.");
+ }
+ } catch (Exception e) {
+ log.error("Unable to register tModel " + tModel.getTModelKey()
+ + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to register tModel " + tModel.getTModelKey()
+ + " ." + t.getMessage(), t);
+ }
+ return tModelDetail;
+ }
+
+ /**
+ * Register a BindingTemplate, using the node of current clerk ('this').
+ *
+ */
+ public BindingTemplate register(BindingTemplate binding) {
+ return register(binding, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Register a BindingTemplate.
+ *
+ */
+ 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);
+ if (log.isDebugEnabled()) {
+ log.debug("Registering template binding " + binding.getBindingKey() + " completed.");
+ }
+ } 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);
+ }
+ return bindingTemplate;
+ }
+
+ /**
+ * Register a service, using the node of current clerk ('this').
+ *
+ */
+ public BusinessService register(BusinessService service) {
+ return register(service, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Register a service.
+ *
+ */
+ public BusinessService register(BusinessService service, Node node) {
+
+ BusinessService businessService = null;
+ log.info("Registering service " + service.getName().get(0).getValue()
+ + " with key " + service.getServiceKey());
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ SaveService saveService = new SaveService();
+ saveService.setAuthInfo(authToken);
+ saveService.getBusinessService().add(service);
+ ServiceDetail serviceDetail = getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).saveService(saveService);
+ businessService = serviceDetail.getBusinessService().get(0);
+ if (log.isDebugEnabled()) {
+ log.debug("Registering service " + service.getName().get(0).getValue() + " completed.");
+ }
+ } catch (Exception e) {
+ log.error("Unable to register service " + service.getName().get(0).getValue()
+ + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to register service " + service.getName().get(0).getValue()
+ + " ." + t.getMessage(), t);
+ }
+ return businessService;
+ }
+
+ public BusinessEntity register(BusinessEntity business) {
+ return register(business, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Register a service. returns null if not successful
+ */
+ public BusinessEntity register(BusinessEntity business, Node node) {
+
+ BusinessEntity businessEntity = null;
+ log.info("Registering business " + business.getName().get(0).getValue()
+ + " with key " + business.getBusinessKey());
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ SaveBusiness saveBusiness = new SaveBusiness();
+ saveBusiness.setAuthInfo(authToken);
+ saveBusiness.getBusinessEntity().add(business);
+ BusinessDetail businessDetail = getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).saveBusiness(saveBusiness);
+ businessEntity = businessDetail.getBusinessEntity().get(0);
+ if (log.isDebugEnabled()) {
+ log.debug("Registering businessEntity " + businessEntity.getName().get(0).getValue() + " completed.");
+ }
+ } catch (Exception e) {
+ log.error("Unable to register business " + business.getName().get(0).getValue()
+ + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to register business " + business.getName().get(0).getValue()
+ + " ." + t.getMessage(), t);
+ }
+ return businessEntity;
+ }
+
+ public void unRegisterBusiness(String businessKey) {
+ unRegisterBusiness(businessKey, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Unregisters the service with specified serviceKey.
+ *
+ * @param service
+ */
+ public void unRegisterBusiness(String businessKey, Node node) {
+ log.info("UnRegistering the business " + businessKey);
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ DeleteBusiness deleteBusiness = new DeleteBusiness();
+ deleteBusiness.setAuthInfo(authToken);
+ deleteBusiness.getBusinessKey().add(businessKey);
+ getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).deleteBusiness(deleteBusiness);
+ } catch (Exception e) {
+ log.error("Unable to register service " + businessKey
+ + " ." + e.getMessage(), e);
+ }
+ }
+
+ public void unRegisterService(String serviceKey) {
+ unRegisterService(serviceKey, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Unregisters the service with specified serviceKey.
+ *
+ * @param service
+ */
+ public void unRegisterService(String serviceKey, Node node) {
+ log.info("UnRegistering the service " + serviceKey);
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ DeleteService deleteService = new DeleteService();
+ deleteService.setAuthInfo(authToken);
+ deleteService.getServiceKey().add(serviceKey);
+ getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).deleteService(deleteService);
+ } catch (Exception e) {
+ log.error("Unable to register service " + serviceKey
+ + " ." + e.getMessage(), e);
+ }
+ }
+
+ public void unRegisterBinding(String bindingKey) {
+ unRegisterBinding(bindingKey, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Unregisters the BindingTemplate with specified bindingKey.
+ *
+ * @param bindingTemplate
+ * @param node
+ */
+ public void unRegisterBinding(String bindingKey, Node node) {
+ log.info("UnRegistering binding key " + bindingKey);
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ DeleteBinding deleteBinding = new DeleteBinding();
+ deleteBinding.setAuthInfo(authToken);
+ deleteBinding.getBindingKey().add(bindingKey);
+ getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).deleteBinding(deleteBinding);
+ } catch (Exception e) {
+ log.error("Unable to unregister bindingkey " + bindingKey
+ + " ." + e.getMessage(), e);
+ }
+ }
+
+ public void unRegisterTModel(String tModelKey) {
+ unRegisterTModel(tModelKey, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * Unregisters the BindingTemplate with specified bindingKey.
+ *
+ * @param bindingTemplate
+ * @param node
+ */
+ public void unRegisterTModel(String tModelKey, Node node) {
+ log.info("UnRegistering tModel key " + tModelKey);
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ DeleteTModel deleteTModel = new DeleteTModel();
+ deleteTModel.setAuthInfo(authToken);
+ deleteTModel.getTModelKey().add(tModelKey);
+ getUDDINode().getTransport().getUDDIPublishService(node.getPublishUrl()).deleteTModel(deleteTModel);
+ } catch (Exception e) {
+ log.error("Unable to unregister tModelkey " + tModelKey
+ + " ." + e.getMessage(), e);
+ }
+ }
+
+ public void unRegisterSubscription(String subscriptionKey) {
+ unRegisterSubscription(subscriptionKey, this.getUDDINode().getApiNode());
+ }
+
+ public void unRegisterSubscription(String subscriptionKey, Node node) {
+ log.info("UnRegistering subscription with key " + subscriptionKey);
+ try {
+ String authToken = getAuthToken(node.getSecurityUrl());
+ DeleteSubscription deleteSubscription = new DeleteSubscription();
+ deleteSubscription.setAuthInfo(authToken);
+ deleteSubscription.getSubscriptionKey().add(subscriptionKey);
+ getUDDINode().getTransport().getUDDISubscriptionService(node.getSubscriptionUrl()).deleteSubscription(deleteSubscription);
+ } catch (Exception e) {
+ log.error("Unable to unregister subscription key " + subscriptionKey
+ + " ." + e.getMessage(), e);
+ }
+ }
+
+ public TModelList findTModel(FindTModel findTModel) throws RemoteException, ConfigurationException, TransportException {
+ return findTModel(findTModel, this.getUDDINode().getApiNode());
+ }
+
+ public TModelList findTModel(FindTModel findTModel, Node node) throws RemoteException,
+ TransportException, ConfigurationException {
+
+ findTModel.setAuthInfo(getAuthToken(node.getSecurityUrl()));
+ try {
+ TModelList tModelList = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).findTModel(findTModel);
+ return tModelList;
+ } catch (DispositionReportFaultMessage dr) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
+ checkForErrorInDispositionReport(report, null, null);
+ } catch (SOAPFaultException sfe) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
+ checkForErrorInDispositionReport(report, null, null);
+ } catch (UndeclaredThrowableException ute) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
+ checkForErrorInDispositionReport(report, null, null);
+ }
+ return null;
+ }
+
+ public TModelDetail getTModelDetail(String tModelKey) throws RemoteException, ConfigurationException, TransportException {
+ GetTModelDetail getTModelDetail = new GetTModelDetail();
+ getTModelDetail.getTModelKey().add(tModelKey);
+ return getTModelDetail(getTModelDetail);
+ }
+
+ public TModelDetail getTModelDetail(GetTModelDetail getTModelDetail) throws RemoteException, ConfigurationException, TransportException {
+ return getTModelDetail(getTModelDetail, this.getUDDINode().getApiNode());
+ }
+
+ public TModelDetail getTModelDetail(GetTModelDetail getTModelDetail, Node node) throws RemoteException,
+ TransportException, ConfigurationException {
+
+ getTModelDetail.setAuthInfo(getAuthToken(node.getSecurityUrl()));
+ try {
+ TModelDetail tModelDetail = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getTModelDetail(getTModelDetail);
+ return tModelDetail;
+ } catch (DispositionReportFaultMessage dr) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
+ checkForErrorInDispositionReport(report, null, null);
+ } catch (SOAPFaultException sfe) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
+ checkForErrorInDispositionReport(report, null, null);
+ } catch (UndeclaredThrowableException ute) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
+ checkForErrorInDispositionReport(report, null, null);
+ }
+ return null;
+ }
+
+ public BusinessService findService(String serviceKey) throws RemoteException,
+ TransportException, ConfigurationException {
+ return findService(serviceKey, this.getUDDINode().getApiNode());
+ }
+
+ public BusinessService findService(String serviceKey, Node node) throws RemoteException,
+ TransportException, ConfigurationException {
+ GetServiceDetail getServiceDetail = new GetServiceDetail();
+ getServiceDetail.getServiceKey().add(serviceKey);
+ getServiceDetail.setAuthInfo(getAuthToken(node.getSecurityUrl()));
+ try {
+ ServiceDetail sd = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getServiceDetail(getServiceDetail);
+ List<BusinessService> businessServiceList = sd.getBusinessService();
+ if (businessServiceList.size() == 0) {
+ throw new ConfigurationException("Could not find Service with key=" + serviceKey);
+ }
+ return businessServiceList.get(0);
+ } catch (DispositionReportFaultMessage dr) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, serviceKey);
+ } catch (SOAPFaultException sfe) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, serviceKey);
+ } catch (UndeclaredThrowableException ute) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, serviceKey);
+ }
+ return null;
+ }
+
+ public BindingTemplate findServiceBinding(String bindingKey) throws DispositionReportFaultMessage, RemoteException,
+ TransportException, ConfigurationException {
+ return findServiceBinding(bindingKey, this.getUDDINode().getApiNode());
+ }
+
+ public BindingTemplate findServiceBinding(String bindingKey, Node node) throws DispositionReportFaultMessage, RemoteException,
+ TransportException, ConfigurationException {
+ GetBindingDetail getBindingDetail = new GetBindingDetail();
+ getBindingDetail.getBindingKey().add(bindingKey);
+ getBindingDetail.setAuthInfo(getAuthToken(node.getSecurityUrl()));
+ try {
+ BindingDetail bd = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getBindingDetail(getBindingDetail);
+ List<BindingTemplate> bindingTemplateList = bd.getBindingTemplate();
+ if (bindingTemplateList.size() == 0) {
+ throw new ConfigurationException("Could not find ServiceBinding with key=" + bindingKey);
+ }
+ return bindingTemplateList.get(0);
+ } catch (DispositionReportFaultMessage dr) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(dr);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, bindingKey);
+ } catch (SOAPFaultException sfe) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(sfe);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, bindingKey);
+ } catch (UndeclaredThrowableException ute) {
+ DispositionReport report = DispositionReportFaultMessage.getDispositionReport(ute);
+ checkForErrorInDispositionReport(report, DispositionReport.E_INVALID_KEY_PASSED, bindingKey);
+ }
+ return null;
+ }
+
+ public BusinessEntity findBusiness(String businessKey) throws RemoteException,
+ TransportException, ConfigurationException {
+ return findBusiness(businessKey, this.getUDDINode().getApiNode());
+ }
+
+ /**
+ * 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 BusinessEntity findBusiness(String businessKey, Node node) throws RemoteException,
+ TransportException, ConfigurationException {
+ GetBusinessDetail getBusinessDetail = new GetBusinessDetail();
+ getBusinessDetail.getBusinessKey().add(businessKey);
+ getBusinessDetail.setAuthInfo(node.getSecurityUrl());
+ try {
+ BusinessDetail bd = getUDDINode().getTransport().getUDDIInquiryService(node.getInquiryUrl()).getBusinessDetail(getBusinessDetail);
+ return bd.getBusinessEntity().get(0);
+ } 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;
+ }
+
+ /**
+ * 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 (entityKey != null && report != null && report.countainsErrorCode(DispositionReport.E_INVALID_KEY_PASSED)) {
+ log.info("entityKey " + entityKey + " was not found in the registry");
+ } else {
+ if (report == null) {
+ log.info("Missing DispositionReport");
+ } else {
+ for (Result result : report.getResult()) {
+ log.error(result.getErrInfo().getErrCode() + " " + result.getErrInfo().getValue());
+ }
+ }
+ }
+ }
+
+ private String getAuthToken(String endpointURL) throws TransportException, DispositionReportFaultMessage, RemoteException {
+ //if the token is older then 10 minutes discard it, and create a new one.
+ if ((authToken != null && !"".equals(authToken)) && (tokenBirthDate != null && System.currentTimeMillis() > tokenBirthDate.getTime() + 600000)) {
+ DiscardAuthToken discardAuthToken = new DiscardAuthToken();
+ discardAuthToken.setAuthInfo(authToken);
+ getUDDINode().getTransport().getUDDISecurityService(endpointURL).discardAuthToken(discardAuthToken);
+ authToken = null;
+ }
+ if (authToken == null || "".equals(authToken)) {
+ tokenBirthDate = new Date();
+ GetAuthToken getAuthToken = new GetAuthToken();
+ getAuthToken.setUserID(getPublisher());
+ getAuthToken.setCred(getPassword());
+ authToken = getUDDINode().getTransport().getUDDISecurityService(endpointURL).getAuthToken(getAuthToken).getAuthInfo();
+ }
+ return authToken;
+ }
+
+ public NodeDetail saveNode(Node node) {
+ NodeDetail nodeDetail = null;
+ try {
+ log.info("Sending Node " + node.getName() + " info to jUDDI " + getUDDINode().getName());
+ SaveNode saveNode = new SaveNode();
+ saveNode.setAuthInfo(getAuthToken(node.getSecurityUrl()));
+ saveNode.getNode().add(node);
+ nodeDetail = getUDDINode().getTransport().getJUDDIApiService(node.getJuddiApiUrl()).saveNode(saveNode);
+ } catch (Exception e) {
+ log.error("Unable to save node " + node.getName()
+ + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to save node " + node.getName()
+ + " ." + t.getMessage(), t);
+ }
+ return nodeDetail;
+ }
+
+ public ClerkDetail saveClerk(UDDIClerk senderClerk) {
+ ClerkDetail clerkDetail = null;
+ try {
+ log.debug("Sending Clerk " + senderClerk.getName() + " info to jUDDI " + getUDDINode().getName());
+ SaveClerk saveClerk = new SaveClerk();
+ saveClerk.setAuthInfo(getAuthToken(senderClerk.getUDDINode().getSecurityUrl()));
+ saveClerk.getClerk().add(getApiClerk());
+ clerkDetail = getUDDINode().getTransport().getJUDDIApiService(senderClerk.getUDDINode().getJuddiApiUrl()).saveClerk(saveClerk);
+ } catch (Exception e) {
+ log.error("Unable to save clerk " + getName()
+ + " ." + e.getMessage(), e);
+ } catch (Throwable t) {
+ log.error("Unable to save clerk " + getName()
+ + " ." + t.getMessage(), t);
+ }
+ return clerkDetail;
+ }
+
+ public Clerk getApiClerk() {
+ Clerk apiClerk = new Clerk();
+ apiClerk.setName(name);
+ apiClerk.setNode(uddiNode.getApiNode());
+ apiClerk.setPassword(password);
+ apiClerk.setPublisher(publisher);
+ return apiClerk;
+ }
+
+ public UDDINode getUDDINode() {
+ return uddiNode;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setUDDINode(UDDINode uddiNode) {
+ this.uddiNode = uddiNode;
+ }
+
+ public String getPublisher() {
+ return publisher;
+ }
+
+ public void setPublisher(String publisher) {
+ this.publisher = publisher;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public WSDL[] getWsdls() {
+ return wsdls;
+ }
+
+ public void setWsdls(WSDL[] wsdls) {
+ this.wsdls = wsdls;
+ }
+
+ public class WSDL {
+
+ private String businessKey;
+ private String keyDomain;
+ private String fileName;
+
+ public String getBusinessKey() {
+ return businessKey;
+ }
+
+ public void setBusinessKey(String businessKey) {
+ this.businessKey = businessKey;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public String getKeyDomain() {
+ return keyDomain;
+ }
+
+ public void setKeyDomain(String keyDomain) {
+ this.keyDomain = keyDomain;
+ }
+ }
+
+ /**
+ *
+ * @param partitionName
+ * @param DescriptiveName required. max length is 255 char
+ * @param DescriptiveNameLanguage optional, max length is 26 char
+ * @return a populated tModel entity representing a tModel key generator. No changes are made to any connect UDDI service
+ * @since 3.2
+ */
+ public static TModel createKeyGenator(String partitionName, String DescriptiveName, String DescriptiveNameLanguage) {
+ if (partitionName == null || partitionName.length() == 0) {
+ throw new IllegalArgumentException();
+ }
+ if (DescriptiveName == null || DescriptiveName.length() == 0) {
+ throw new IllegalArgumentException();
+ }
+ if (!partitionName.startsWith("uddi:")) {
+ throw new IllegalArgumentException("partitionName must have a 'uddi:' prefix");
+
+ }
+ if (!partitionName.endsWith(":keygenerator")) {
+ throw new IllegalArgumentException("partitionName must have a ':keyGenerator' postfix");
+ }
+ TModel tm = new TModel();
+ tm.setName(new Name());
+ tm.getName().setValue(DescriptiveName);
+ tm.getName().setLang(DescriptiveNameLanguage);
+ tm.setCategoryBag(new CategoryBag());
+ KeyedReference kr = new KeyedReference();
+ kr.setTModelKey(UDDIConstants.KEY_GENERATOR_TMODEL);
+ kr.setKeyName(UDDIConstants.KEY_GENERATOR);
+ kr.setKeyValue(UDDIConstants.KEY_GENERATOR_VALUE);
+ tm.getCategoryBag().getKeyedReference().add(kr);
+ OverviewDoc overviewDoc = new OverviewDoc();
+ OverviewURL overviewUrl = new OverviewURL();
+ overviewUrl.setUseType("text");
+ overviewUrl.setValue("http://uddi.org/pubs/uddi_v3.htm#keyGen");
+ overviewDoc.setOverviewURL(overviewUrl);
+ tm.getOverviewDoc().add(overviewDoc);
+ tm.setTModelKey(partitionName.toLowerCase());
+ return tm;
+ }
}
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java Sat May 11 00:27:33 2013
@@ -16,6 +16,8 @@
*/
package org.apache.juddi.v3.client.config;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.List;
@@ -23,18 +25,26 @@ import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
+
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.v3.client.embed.EmbeddedRegistry;
import org.apache.juddi.v3.annotations.AnnotationProcessor;
import org.apache.juddi.v3.client.ClassUtil;
+import org.apache.juddi.v3.client.mapping.ReadWSDL;
+import org.apache.juddi.v3.client.mapping.URLLocalizerDefaultImpl;
+import org.apache.juddi.v3.client.mapping.WSDL2UDDI;
import org.apache.juddi.v3.client.transport.InVMTransport;
import org.apache.juddi.v3.client.transport.Transport;
import org.apache.juddi.v3.client.transport.TransportException;
import org.uddi.api_v3.BindingTemplate;
import org.uddi.api_v3.BusinessService;
+import com.ibm.wsdl.util.IOUtils;
+
public class UDDIClerkManager {
private static Log log = LogFactory.getLog(UDDIClerkManager.class);
@@ -45,7 +55,7 @@ public class UDDIClerkManager {
public UDDIClerkManager() throws ConfigurationException {
super();
clientConfig = new ClientConfig(CONFIG_FILE, properties);
-
+ UDDIClientContainer.addClerkManager(this);
}
/**
* Manages the clerks. Initiates reading the client configuration from the uddi.xml.
@@ -54,6 +64,7 @@ public class UDDIClerkManager {
public UDDIClerkManager(String configurationFile) throws ConfigurationException {
super();
clientConfig = new ClientConfig(configurationFile);
+ UDDIClientContainer.addClerkManager(this);
}
/**
* Manages the clerks. Initiates reading the client configuration from the uddi.xml.
@@ -62,6 +73,7 @@ public class UDDIClerkManager {
public UDDIClerkManager(String configurationFile, Properties properties) throws ConfigurationException {
super();
clientConfig = new ClientConfig(configurationFile, properties);
+ UDDIClientContainer.addClerkManager(this);
}
/**
* Stops the clerks.
@@ -81,7 +93,10 @@ public class UDDIClerkManager {
}
private void releaseResources() {
- unRegisterBindingsOfAnnotatedServices(true);
+ if (this.clientConfig.isRegisterOnStartup()) {
+ unRegisterWSDLs();
+ unRegisterBindingsOfAnnotatedServices(true);
+ }
}
/**
* Initializes the UDDI Clerk.
@@ -95,10 +110,11 @@ public class UDDIClerkManager {
log.info("Starting embedded Server");
startEmbeddedServer();
}
-
- Runnable runnable = new BackGroundRegistration(this);
- Thread thread = new Thread(runnable);
- thread.start();
+ if (this.clientConfig.isRegisterOnStartup()) {
+ Runnable runnable = new BackGroundRegistration(this);
+ Thread thread = new Thread(runnable);
+ thread.start();
+ }
}
}
@@ -290,7 +306,8 @@ public class UDDIClerkManager {
String managerName = clientConfig.getManagerName();
Class<?> transportClass = ClassUtil.forName(clazz, UDDIClerkManager.class);
if (transportClass!=null) {
- Transport transport = (Transport) transportClass.getConstructor(String.class,String.class).newInstance(managerName,nodeName);
+ Transport transport = (Transport)
+ transportClass.getConstructor(String.class,String.class).newInstance(managerName,nodeName);
return transport;
} else {
throw new ConfigurationException ("ProxyTransport was not defined in the " + clientConfig.getConfigurationFile());
@@ -300,5 +317,35 @@ public class UDDIClerkManager {
}
}
+ public UDDIClerk getClerk(String clerkName) {
+ return getClientConfig().getUDDIClerks().get(clerkName);
+ }
+
+ /**
+ * Registers services to UDDI using a clerk, and the uddi.xml
+ * configuration.
+ * @throws WSDLException
+ * @throws TransportException
+ * @throws ConfigurationException
+ * @throws RemoteException
+ */
+ public void registerWSDLs() {
+ Map<String,UDDIClerk> uddiClerks = clientConfig.getUDDIClerks();
+ if (uddiClerks.size() > 0) {
+ for (UDDIClerk uddiClerk : uddiClerks.values()) {
+ uddiClerk.registerWsdls();
+ }
+ }
+ }
+
+ public void unRegisterWSDLs() {
+ Map<String,UDDIClerk> uddiClerks = clientConfig.getUDDIClerks();
+ if (uddiClerks.size() > 0) {
+ for (UDDIClerk uddiClerk : uddiClerks.values()) {
+ uddiClerk.unRegisterWsdls();
+ }
+ }
+ }
+
}
Propchange: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java
------------------------------------------------------------------------------
Merged /juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java:r1460934-1480588
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkServlet.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkServlet.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkServlet.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkServlet.java Sat May 11 00:27:33 2013
@@ -42,6 +42,9 @@ public class UDDIClerkServlet extends Ht
super.init(config);
try {
manager = WebHelper.getUDDIClerkManager(config.getServletContext());
+ if (manager.getClientConfig().isRegisterOnStartup()) {
+ manager.registerWSDLs();
+ }
} catch (Exception e) {
logger.error("UDDI-client could not be started for manager " + manager.getName() + ". "
+ e.getMessage(), e);
Propchange: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkServlet.java
------------------------------------------------------------------------------
Merged /juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkServlet.java:r1460934-1480588
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/WebHelper.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/WebHelper.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/WebHelper.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/config/WebHelper.java Sat May 11 00:27:33 2013
@@ -17,6 +17,8 @@
package org.apache.juddi.v3.client.config;
import java.lang.reflect.InvocationTargetException;
+import java.net.MalformedURLException;
+import java.net.URL;
import javax.servlet.ServletContext;
@@ -88,8 +90,8 @@ public class WebHelper {
} else {
throw new ConfigurationException("A manager name needs to be specified in the client config file.");
}
+
manager.start();
- UDDIClientContainer.addClerkManager(manager);
servletContext.setAttribute(JUDDI_CLIENT_MANAGER_NAME, managerName);
return manager;
}
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/AsyncRegistration.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/AsyncRegistration.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/AsyncRegistration.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/AsyncRegistration.java Sat May 11 00:27:33 2013
@@ -24,6 +24,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.v3.client.config.UDDIClerk;
import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BusinessService;
public class AsyncRegistration implements Runnable {
@@ -58,11 +59,11 @@ public class AsyncRegistration implement
}
if (RegistrationType.WSDL.equals(registrationInfo.getRegistrationType())) {
WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(clerk, urlLocalizer, properties);
- BindingTemplate binding = wsdl2UDDI.register(registrationInfo.getServiceQName(),
+ BusinessService service = wsdl2UDDI.registerBusinessService(registrationInfo.getServiceQName(),
registrationInfo.getPortName(),
registrationInfo.getServiceUrl(),
- registrationInfo.getWsdlDefinition());
- serviceLocator.addService(binding.getServiceKey());
+ registrationInfo.getWsdlDefinition()).getBusinessService();
+ serviceLocator.addService(service.getServiceKey());
} else if (RegistrationType.BPEL.equals(registrationInfo.getRegistrationType())) {
BPEL2UDDI bpel2UDDI = new BPEL2UDDI(clerk, urlLocalizer, properties);
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java Sat May 11 00:27:33 2013
@@ -41,6 +41,7 @@ import org.apache.juddi.jaxb.PrintUDDI;
import org.apache.juddi.v3.annotations.AnnotationProcessor;
import org.apache.juddi.v3.client.config.Property;
import org.apache.juddi.v3.client.config.UDDIClerk;
+import org.apache.juddi.v3.client.config.UDDIKeyConvention;
import org.apache.juddi.v3.client.transport.TransportException;
import org.uddi.api_v3.AccessPoint;
import org.uddi.api_v3.BindingTemplate;
@@ -90,7 +91,7 @@ public class BPEL2UDDI extends Annotatio
private WSDL2UDDI wsdl2UDDI;
- public BPEL2UDDI(UDDIClerk clerk, URLLocalizer urlLocalizer, Properties properties) {
+ public BPEL2UDDI(UDDIClerk clerk, URLLocalizer urlLocalizer, Properties properties) throws ConfigurationException {
super();
this.clerk = clerk;
@@ -99,7 +100,7 @@ public class BPEL2UDDI extends Annotatio
//Obtaining values from the properties
this.keyDomainURI = "uddi:" + properties.getProperty("keyDomain") + ":";
- this.businessKey = Property.getBusinessKey(properties);
+ this.businessKey = UDDIKeyConvention.getBusinessKey(properties);
this.lang = properties.getProperty(Property.LANG,Property.DEFAULT_LANG);
this.wsdl2UDDI = new WSDL2UDDI(clerk, urlLocalizer, properties);
@@ -162,7 +163,7 @@ public class BPEL2UDDI extends Annotatio
String genericWSDLURL = wsdlDefinition.getDocumentBaseURI(); //TODO maybe point to repository version
String bpelOverviewURL = "http://localhost:8080/bpel-console/"; //TODO maybe point to bpel in console
- String serviceKey = Property.getServiceKey(properties, serviceName);
+ String serviceKey = UDDIKeyConvention.getServiceKey(properties, serviceName.getLocalPart());
BusinessService service = lookupService(serviceKey);
if (service==null) {
List<TModel> tModels = new ArrayList<TModel>();
@@ -193,10 +194,10 @@ public class BPEL2UDDI extends Annotatio
public String unRegister(QName serviceName, String portName, URL serviceUrl) throws RemoteException, ConfigurationException, TransportException {
- String serviceKey = Property.getServiceKey(properties, serviceName);
+ String serviceKey = UDDIKeyConvention.getServiceKey(properties, serviceName.getLocalPart());
BusinessService service = lookupService(serviceKey);
boolean isRemoveServiceIfNoTemplates = true;
- String bindingKey = Property.getBindingKey(properties, serviceName, portName, serviceUrl);
+ String bindingKey = UDDIKeyConvention.getBindingKey(properties, serviceName, portName, serviceUrl);
//check if this bindingKey is in the service's binding templates
for (BindingTemplate bindingTemplate : service.getBindingTemplates().getBindingTemplate()) {
if (bindingKey.equals(bindingTemplate.getBindingKey())) {
@@ -234,7 +235,7 @@ public class BPEL2UDDI extends Annotatio
if (namespaceRef!=null) namespace = namespaceRef.getKeyValue();
//find the bindingTModel
for (KeyedReference keyedReference : portTypeTModelKeys) {
- FindTModel findBindingTModel = wsdl2UDDI.createFindBindingTModelForPortType(keyedReference.getKeyValue(), namespace);
+ FindTModel findBindingTModel = WSDL2UDDI.createFindBindingTModelForPortType(keyedReference.getKeyValue(), namespace);
TModelList bindingTmodels = clerk.findTModel(findBindingTModel);
if (bindingTmodels!=null && bindingTmodels.getTModelInfos()!=null && bindingTmodels.getTModelInfos().getTModelInfo()!=null) {
for (TModelInfo bindingTModelInfo : bindingTmodels.getTModelInfos().getTModelInfo()) {
@@ -283,7 +284,7 @@ public class BPEL2UDDI extends Annotatio
// BusinessKey
service.setBusinessKey(businessKey);
// ServiceKey
- service.setServiceKey(Property.getServiceKey(properties, serviceName));
+ service.setServiceKey(UDDIKeyConvention.getServiceKey(properties, serviceName.getLocalPart()));
// Description
String serviceDescription = properties.getProperty(Property.SERVICE_DESCRIPTION, Property.DEFAULT_SERVICE_DESCRIPTION);
if (wsdlDefinition.getService(serviceName) !=null) {
@@ -362,16 +363,16 @@ public class BPEL2UDDI extends Annotatio
CategoryBag categoryBag = new CategoryBag();
if (targetNamespace!=null) {
- KeyedReference namespaceReference = wsdl2UDDI.newKeyedReference(
+ KeyedReference namespaceReference = WSDL2UDDI.newKeyedReference(
"uddi:uddi.org:xml:namespace", "uddi-org:xml:namespace", targetNamespace);
categoryBag.getKeyedReference().add(namespaceReference);
}
- KeyedReference typesReference = wsdl2UDDI.newKeyedReference(
+ KeyedReference typesReference = WSDL2UDDI.newKeyedReference(
"uddi:uddi.org:bpel:types", "uddi-org:bpel:types", "process");
categoryBag.getKeyedReference().add(typesReference);
for (QName qName : portTypes.keySet()) {
String portTypeKey = keyDomainURI + qName.getLocalPart();
- KeyedReference portTypeReference = wsdl2UDDI.newKeyedReference(
+ KeyedReference portTypeReference = WSDL2UDDI.newKeyedReference(
"uddi:uddi.org:wsdl:porttypereference", "uddi-org:wsdl:portTypeReference", portTypeKey);
categoryBag.getKeyedReference().add(portTypeReference);
}
@@ -389,9 +390,9 @@ public class BPEL2UDDI extends Annotatio
BindingTemplate bindingTemplate = new BindingTemplate();
// Set BusinessService Key
- bindingTemplate.setServiceKey(Property.getServiceKey(properties, serviceName));
+ bindingTemplate.setServiceKey(UDDIKeyConvention.getServiceKey(properties, serviceName.getLocalPart()));
// Set Binding Key
- String bindingKey = Property.getBindingKey(properties, serviceName, portName, serviceUrl);
+ String bindingKey = UDDIKeyConvention.getBindingKey(properties, serviceName, portName, serviceUrl);
bindingTemplate.setBindingKey(bindingKey);
// Set AccessPoint
AccessPoint accessPoint = new AccessPoint();
@@ -495,12 +496,12 @@ public class BPEL2UDDI extends Annotatio
String namespace = serviceName.getNamespaceURI();
if (namespace!=null && namespace!="") {
- KeyedReference namespaceReference = wsdl2UDDI.newKeyedReference(
- "uddi:uddi.org:xml:namespace", namespace);
+ KeyedReference namespaceReference = WSDL2UDDI.newKeyedReference(
+ "uddi:uddi.org:xml:namespace", "uddi-org:xml:namespace", namespace);
categoryBag.getKeyedReference().add(namespaceReference);
}
- KeyedReference typesReference = wsdl2UDDI.newKeyedReference(
- "uddi:uddi.org:bpel:types", "process");
+ KeyedReference typesReference = WSDL2UDDI.newKeyedReference(
+ "uddi:uddi.org:bpel:types", "uddi-org:bpel:types", "process");
categoryBag.getKeyedReference().add(typesReference);
findTModel.setCategoryBag(categoryBag);
@@ -519,12 +520,12 @@ public class BPEL2UDDI extends Annotatio
FindTModel findTModel = new FindTModel();
CategoryBag categoryBag = new CategoryBag();
- KeyedReference typesReference = wsdl2UDDI.newKeyedReference(
- "uddi:uddi.org:bpel:types", "process");
+ KeyedReference typesReference = WSDL2UDDI.newKeyedReference(
+ "uddi:uddi.org:bpel:types", "uddi-org:bpel:types", "process");
categoryBag.getKeyedReference().add(typesReference);
- KeyedReference portTypeReference = wsdl2UDDI.newKeyedReference(
- "uddi:uddi.org:wsdl:porttypereference", portTypeKey);
+ KeyedReference portTypeReference = WSDL2UDDI.newKeyedReference(
+ "uddi:uddi.org:wsdl:porttypereference", "uddi-org:wsdl:portTypeReference", portTypeKey);
categoryBag.getKeyedReference().add(portTypeReference);
findTModel.setCategoryBag(categoryBag);
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ReadWSDL.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ReadWSDL.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ReadWSDL.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ReadWSDL.java Sat May 11 00:27:33 2013
@@ -31,14 +31,16 @@ import org.apache.juddi.v3.client.ClassU
import com.ibm.wsdl.factory.WSDLFactoryImpl;
/**
+ * A WSDL parser/reader
* @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ * Modified for support http based credentials by Alex O'Ree
*/
public class ReadWSDL {
private final Log log = LogFactory.getLog(this.getClass());
public Definition readWSDL(String fileName) throws WSDLException {
-
+
Definition wsdlDefinition = null;
WSDLFactory factory = WSDLFactoryImpl.newInstance();
WSDLReader reader = factory.newWSDLReader();
@@ -53,6 +55,41 @@ public class ReadWSDL {
return wsdlDefinition;
}
+ /**
+ * Reads a WSDL file, assumes that credentials are required. This is useful for when the WSDL document itself
+ * is protected by HTTP based authentication mechanisms
+ * @param wsdlUrl
+ * @param username
+ * @param password
+ * @param domain
+ * @return a Definition object representing the WSDL
+ * @throws WSDLException
+ */
+ public Definition readWSDL(URL wsdlUrl, String username, String password, String domain) throws WSDLException {
+
+ Definition wsdlDefinition = null;
+ WSDLFactory factory = WSDLFactoryImpl.newInstance();
+ WSDLReader reader = factory.newWSDLReader();
+ try {
+ URI uri = wsdlUrl.toURI();
+ WSDLLocator locator = new WSDLLocatorImpl(uri);
+ wsdlDefinition = reader.readWSDL(locator);
+ } catch (URISyntaxException e) {
+ log.error(e.getMessage(),e);
+ }
+ return wsdlDefinition;
+ }
+ /**
+ * Reads a WSDL file, assumes that credentials are not required. This is a convenience wrapper for
+ * readWSDL(URL wsdlUrl, null, null, null)
+ * @param wsdlUrl
+ * @return a Definition object representing the WSDL
+ * @throws WSDLException
+ */
+ public Definition readWSDL(URL wsdlUrl) throws WSDLException {
+ return readWSDL(wsdlUrl, null, null, null);
+ }
+
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ServiceLocator.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ServiceLocator.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ServiceLocator.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/ServiceLocator.java Sat May 11 00:27:33 2013
@@ -31,6 +31,7 @@ import org.apache.juddi.api_v3.AccessPoi
import org.apache.juddi.v3.client.ClassUtil;
import org.apache.juddi.v3.client.config.Property;
import org.apache.juddi.v3.client.config.UDDIClerk;
+import org.apache.juddi.v3.client.config.UDDIKeyConvention;
import org.apache.juddi.v3.client.transport.TransportException;
import org.uddi.api_v3.AccessPoint;
import org.uddi.api_v3.BindingTemplate;
@@ -44,10 +45,7 @@ public class ServiceLocator {
private Log log = LogFactory.getLog(this.getClass());
- private String keyDomainURI;
private UDDIClerk clerk;
- //private String lang;
- //private String businessKey;
private Properties properties = new Properties();
private UDDIServiceCache serviceCache = null;
private SelectionPolicy selectionPolicy = null;
@@ -58,11 +56,6 @@ public class ServiceLocator {
this.clerk = clerk;
this.properties = properties;
- //Obtaining values from the properties
- this.keyDomainURI = "uddi:" + properties.getProperty("keyDomain") + ":";
- //this.businessKey = Property.getBusinessKey(properties);
- //this.lang = properties.getProperty(Property.LANG,Property.DEFAULT_LANG);
-
serviceCache = new UDDIServiceCache(clerk, urlLocalizer, properties);
String policy = properties.getProperty("juddi.client.selection.policy", "org.apache.juddi.v3.client.mapping.PolicyLocalFirst");
@SuppressWarnings("unchecked")
@@ -87,7 +80,7 @@ public class ServiceLocator {
public String lookupEndpoint(QName serviceQName, String portName) {
String epr =null;
- String serviceKey = Property.getServiceKey(properties, serviceQName);
+ String serviceKey = UDDIKeyConvention.getServiceKey(properties, serviceQName.getLocalPart());
Topology topology = serviceCache.lookupService(serviceKey);
if (topology==null) {
topology = lookupEndpointInUDDI(serviceKey);
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIClientSubscriptionListenerImpl.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIClientSubscriptionListenerImpl.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIClientSubscriptionListenerImpl.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIClientSubscriptionListenerImpl.java Sat May 11 00:27:33 2013
@@ -46,9 +46,6 @@ import org.uddi.v3_service.UDDISubscript
targetNamespace = "urn:uddi-org:v3_service")
public class UDDIClientSubscriptionListenerImpl implements UDDISubscriptionListenerPortType {
-
-
- private static final long serialVersionUID = 100157393329807903L;
private static Log logger = LogFactory.getLog(UDDIClientSubscriptionListenerImpl.class);
private static Map<String,UDDIServiceCache> serviceCacheMap = new ConcurrentHashMap<String,UDDIServiceCache>();
Modified: juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIServiceCache.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIServiceCache.java?rev=1481240&r1=1481239&r2=1481240&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIServiceCache.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/UDDIServiceCache.java Sat May 11 00:27:33 2013
@@ -35,6 +35,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.v3.client.config.Property;
import org.apache.juddi.v3.client.config.UDDIClerk;
+import org.apache.juddi.v3.client.config.UDDIKeyConvention;
import org.apache.juddi.v3.client.transport.TransportException;
import org.uddi.api_v3.FindQualifiers;
import org.uddi.api_v3.FindService;
@@ -71,7 +72,7 @@ public class UDDIServiceCache {
this.clerk = clerk;
this.urlLocalizer = urlLocalizer;
this.properties = properties;
- this.subscriptionKey = Property.getSubscriptionKey(properties);
+ this.subscriptionKey = UDDIKeyConvention.getSubscriptionKey(properties);
init();
}
@@ -88,13 +89,13 @@ public class UDDIServiceCache {
serviceUrl = new URL(url);
log.info("Bring up Subscription Listener for manager " + clerk.getManagerName()
+ " with endpoint " + url);
- bindingKey = Property.getBindingKey(properties, serviceQName, portName, serviceUrl);
+ bindingKey = UDDIKeyConvention.getBindingKey(properties, serviceQName, portName, serviceUrl);
endpoint = Endpoint.create(new UDDIClientSubscriptionListenerImpl(bindingKey,this));
endpoint.publish(serviceUrl.toExternalForm());
WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(clerk, urlLocalizer, properties);
Definition wsdlDefinition = new ReadWSDL().readWSDL("juddi_client_subscriptionlistener.wsdl");
- bindingKey = wsdl2UDDI.register(serviceQName, portName, serviceUrl, wsdlDefinition).getBindingKey();
+ bindingKey = wsdl2UDDI.registerBusinessService(serviceQName, portName, serviceUrl, wsdlDefinition).getBindingKey();
registerSubscription();
}
@@ -105,7 +106,7 @@ public class UDDIServiceCache {
QName serviceQName = new QName("urn:uddi-org:v3_service", "UDDIClientSubscriptionListenerService");
String portName = "UDDIClientSubscriptionListenerImplPort";
WSDL2UDDI wsdl2UDDI = new WSDL2UDDI(clerk, urlLocalizer, properties);
- wsdl2UDDI.unRegister(serviceQName, portName, serviceUrl);
+ wsdl2UDDI.unRegisterBusinessService(serviceQName, portName, serviceUrl);
endpoint.stop();
endpoints.remove(serviceUrl.toExternalForm());
UDDIClientSubscriptionListenerImpl.getServiceCacheMap().remove(bindingKey);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org