[jboss-svn-commits] JBL Code SVN: r7177 - in labs/jbossesb/trunk/product: core/rosetta/src/org/jboss/soa/esb/util core/services/src/org/jboss/soa/esb/services/registry core/services/tests/src/org/jboss/soa/esb/services/registry lib/ext

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Oct 27 13:57:35 EDT 2006


Author: kurt.stam at jboss.com
Date: 2006-10-27 13:57:23 -0400 (Fri, 27 Oct 2006)
New Revision: 7177

Modified:
   labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java
   labs/jbossesb/trunk/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java
   labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java
   labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java
   labs/jbossesb/trunk/product/lib/ext/scout-0.7rc2-embedded.jar
Log:
Working on Registry

Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java	2006-10-27 16:32:30 UTC (rev 7176)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/util/Util.java	2006-10-27 17:57:23 UTC (rev 7177)
@@ -46,7 +46,6 @@
 import org.jboss.soa.esb.common.ModulePropertyManager;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageType;
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
 

Modified: labs/jbossesb/trunk/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java	2006-10-27 16:32:30 UTC (rev 7176)
+++ labs/jbossesb/trunk/product/core/services/src/org/jboss/soa/esb/services/registry/JAXRRegistryImpl.java	2006-10-27 17:57:23 UTC (rev 7177)
@@ -22,6 +22,8 @@
 package org.jboss.soa.esb.services.registry;
 
 import java.net.PasswordAuthentication;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -51,6 +53,7 @@
 
 import org.apache.log4j.Logger;
 import org.apache.log4j.Priority;
+import org.jboss.internal.soa.esb.addressing.EPRHelper;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.common.Configuration;
 /**
@@ -141,7 +144,19 @@
 	 * Remove an EPR from the Registry
 	 */
 	public void unRegisterService(String category, String serviceName) throws RegistryException{
-		
+		try {
+			Organization organization = getJBossESBOrganization();
+			for (Iterator i=organization.getServices().iterator(); i.hasNext();) {
+				Service service = (Service) i.next();
+				if (service.getName().getValue().equals(category + ":" + serviceName)) {
+					organization.removeService(service);
+					saveRegistryObject(organization);
+					return;
+				}
+			}
+		} catch (JAXRException je) {
+			throw new RegistryException(je.getLocalizedMessage(), je);
+		}
 	}
 	/** 
 	 * Publish an EPR to the Registry
@@ -163,8 +178,8 @@
 //			BusinessQueryManager bqm = rs.getBusinessQueryManager();
 			ServiceBinding serviceBinding = blm.createServiceBinding();
 			serviceBinding.setDescription(blm.createInternationalString(eprDescription));
-			//For now storing the EPR XML in the URI until I fill in the holes in scout.
-			serviceBinding.setAccessURI("<EPR_XML>");
+			String xml = EPRHelper.toXMLString(epr);
+			serviceBinding.setAccessURI(URLEncoder.encode(xml,"UTF-8"));
 			
 //			Concept specConcept = blm.createConcept(null, "HelloConcept", "");
 //			String schemeName = "uddi-org:types";
@@ -197,7 +212,7 @@
 		    serviceBindings.add(serviceBinding);
 		    service.addServiceBindings(serviceBindings);
 			saveRegistryObject(serviceBinding);
-		} catch (JAXRException je) {
+		} catch (Exception je) {
 			throw new RegistryException(je.getLocalizedMessage(), je);
 		} finally {
 			closeConnection(connection);
@@ -206,26 +221,25 @@
 	/** 
 	 * Remove an EPR from the Registry
 	 */
-	public void unRegisterEPR(String category, String serviceName, EPR epr) throws RegistryException{
+	public void unRegisterEPR(String category, String serviceName, EPR toBeDeletedEPR) throws RegistryException{
 		//first find the ServiceBindings for this service
 		try {
-			String eprXML = "<EPR_XML>"; //epr.toXML()
 			Service service = findService(category, serviceName);
-			if (service.getServiceBindings().size()==0) {
-				throw new RegistryException("No bindings found for service with name = " + serviceName);
-			}
-			for (Iterator i=service.getServiceBindings().iterator();i.hasNext();) {
+			Collection<ServiceBinding> serviceBindings = findServiceBindings(service);
+			for (Iterator i=serviceBindings.iterator();i.hasNext();){
 				ServiceBinding serviceBinding = (ServiceBinding) i.next();
-				if (serviceBinding.getAccessURI().equals(eprXML)) {
-					logger.log(Priority.INFO, "Removing EPR: " + epr);
+				String xml = URLDecoder.decode(serviceBinding.getAccessURI(), "UTF-8");
+				if (xml.equals(EPRHelper.toXMLString(toBeDeletedEPR))) {
 					service.removeServiceBinding(serviceBinding);
+					service.setProvidingOrganization(getJBossESBOrganization());
+					saveRegistryObject(service);
 					return;
 				}
 			}
 			//We should not end up here or else we did not match any EPRs
 			throw new RegistryException("No such EPR found for service with name = " 
-					+ serviceName + " and EPR=" + epr);
-		} catch (JAXRException je) {
+					+ serviceName + " and EPR=" + toBeDeletedEPR);
+		} catch (Exception je) {
 			throw new RegistryException(je.getLocalizedMessage(), je);
 		}
 	}
@@ -276,19 +290,24 @@
 	public Collection<EPR> findEPRs(String category, String serviceName) throws RegistryException
 	{
 		Collection<EPR> eprs = new ArrayList<EPR>();
+		Connection connection = JAXRRegistryImpl.getConnection();
 		try {
 			Service service = findService(category, serviceName);
-			Collection serviceBindings = service.getServiceBindings();
+			// Get registry service and business query manager
+			Collection<ServiceBinding> serviceBindings = findServiceBindings(service);
+			//Converting them to EPRs
 			for (Iterator i=serviceBindings.iterator();i.hasNext();) {
 				ServiceBinding serviceBinding = (ServiceBinding) i.next();
 				@SuppressWarnings("unused")
-				String eprXML = serviceBinding.getAccessURI();
+				String eprXML = URLDecoder.decode(serviceBinding.getAccessURI(),"UTF-8");
 				//TODO use the XML to generate the EPR
-				EPR epr = new EPR();
+				EPR epr = EPRHelper.fromXMLString(eprXML);
 				eprs.add(epr);
 			}
-		} catch (JAXRException je) {
+		} catch (Exception je) {
 			throw new RegistryException(je.getLocalizedMessage(), je);
+		} finally {
+			closeConnection(connection);
 		}
 		return eprs;
 	}
@@ -567,6 +586,33 @@
 		}
 		return jbossESBOrganization;
 	}
+	/**
+	 * Find the ServiceBindings for a given Service
+	 * @param service
+	 * @return
+	 * @throws RegistryException
+	 */
+	@SuppressWarnings("unchecked")
+	private Collection<ServiceBinding> findServiceBindings(Service service) throws RegistryException
+	{
+		Collection<ServiceBinding> serviceBindings = new ArrayList<ServiceBinding>();
+		Connection connection = JAXRRegistryImpl.getConnection();
+		try {
+			RegistryService rs = connection.getRegistryService();
+			BusinessQueryManager bqm = rs.getBusinessQueryManager();
+			Collection<String> findQualifiers = new ArrayList<String>();
+			findQualifiers.add(FindQualifier.SORT_BY_NAME_ASC);
+			BulkResponse bulkResponse = bqm.findServiceBindings(service.getKey(),findQualifiers,null,null);
+			if (bulkResponse.getStatus()==JAXRResponse.STATUS_SUCCESS){
+				serviceBindings = bulkResponse.getCollection();
+			}
+			return serviceBindings;
+		} catch (Exception je) {
+			throw new RegistryException(je.getLocalizedMessage(), je);
+		} finally {
+			closeConnection(connection);
+		}
+	}
 	
 }
 

Modified: labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java	2006-10-27 16:32:30 UTC (rev 7176)
+++ labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/JAXRRegistryUnitTest.java	2006-10-27 17:57:23 UTC (rev 7177)
@@ -26,6 +26,7 @@
 
 import java.io.File;
 import java.io.InputStream;
+import java.net.URLDecoder;
 import java.sql.DriverManager;
 import java.sql.Statement;
 import java.util.ArrayList;
@@ -51,6 +52,7 @@
 import org.apache.log4j.Logger;
 import org.apache.log4j.Priority;
 import org.apache.log4j.xml.DOMConfigurator;
+import org.jboss.internal.soa.esb.addressing.EPRHelper;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.common.tests.HsqldbUtil;
 import org.jboss.soa.esb.common.tests.TestUtil;
@@ -160,12 +162,13 @@
 				for (Iterator serviceBindingIter = serviceBindings.iterator();serviceBindingIter.hasNext();){
 					ServiceBinding serviceBinding = (ServiceBinding) serviceBindingIter.next();
 					logger.log(Priority.INFO, "  ServiceBinding Description: " + serviceBinding.getDescription().getValue());
-					logger.log(Priority.INFO, "  ServiceBinding URI: " + serviceBinding.getAccessURI());
-					assertEquals("<EPR_XML>",serviceBinding.getAccessURI());
+					String xml = URLDecoder.decode(serviceBinding.getAccessURI(),"UTF-8");
+					logger.log(Priority.INFO, "  ServiceBinding URI: " + xml);
+					assertEquals(EPRHelper.toXMLString(new EPR()),xml);
 				}
 			}
 			logger.log(Priority.INFO, "-------------------------------------------------");
-	    } catch (JAXRException je) {
+	    } catch (Exception je) {
 			je.printStackTrace();
 			assertTrue(false);
 		}

Modified: labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java	2006-10-27 16:32:30 UTC (rev 7176)
+++ labs/jbossesb/trunk/product/core/services/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java	2006-10-27 17:57:23 UTC (rev 7177)
@@ -26,7 +26,6 @@
 
 import java.io.File;
 import java.io.InputStream;
-import java.net.URI;
 import java.sql.DriverManager;
 import java.sql.Statement;
 import java.util.Collection;
@@ -106,7 +105,7 @@
 		try {
 			Collection<EPR> eprs = registry.findEPRs(CATEGORY, SERVICE_NAME);
 			for (Iterator i=eprs.iterator();i.hasNext();) {
-				String epr = (String) i.next();
+				EPR epr = (EPR) i.next();
 				logger.log(Priority.INFO, "Found epr: " + epr);
 			}
 		} catch (RegistryException re) {
@@ -114,18 +113,37 @@
 			assertTrue(false);
 		}
 	}
-	
+	@Test
 	public void unregisterEPR() 
 	{
 		Registry registry = RegistryFactory.getRegistry();
 		try {
-			EPR eprToBeRemoved = new EPR(new URI("EPR_XML"));
+			EPR eprToBeRemoved = new EPR();
 			registry.unRegisterEPR(CATEGORY, SERVICE_NAME, eprToBeRemoved);
+//			Now make sure this EPR is really gone
+			Collection<EPR> eprs = registry.findEPRs(CATEGORY, SERVICE_NAME);
+			logger.log(Priority.INFO, "Number of Bindings left should be 0, and is: " + eprs.size());
+			assertEquals(eprs.size(),0);
 		} catch (Exception re) {
 			logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
 			assertTrue(false);
 		}
 	}
+	@Test
+	public void unregisterService() 
+	{
+		Registry registry = RegistryFactory.getRegistry();
+		try {
+			registry.unRegisterService(CATEGORY, SERVICE_NAME);
+			//Make sure it's really gone
+			Collection<String> services = registry.findAllServices();
+			logger.log(Priority.INFO, "Number of Services left should be 0, and is: " + services.size());
+			assertEquals(services.size(),0);
+		} catch (Exception re) {
+			logger.log(Priority.ERROR, re.getLocalizedMessage(), re);
+			assertTrue(false);
+		}
+	}
 	/**
 	 * Setup the database.
 	 * @throws Exception

Modified: labs/jbossesb/trunk/product/lib/ext/scout-0.7rc2-embedded.jar
===================================================================
(Binary files differ)




More information about the jboss-svn-commits mailing list