You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2010/01/26 04:15:08 UTC

svn commit: r903066 - in /webservices/juddi/trunk: juddi-client/src/main/java/org/apache/juddi/v3/client/config/ juddi-core/src/main/java/org/apache/juddi/api/impl/ juddi-core/src/main/java/org/apache/juddi/subscription/ juddiv3-war/src/main/java/org/a...

Author: kstam
Date: Tue Jan 26 03:15:07 2010
New Revision: 903066

URL: http://svn.apache.org/viewvc?rev=903066&view=rev
Log:
JUDDI-344, doing registration in the background

Added:
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/BackGroundRegistration.java
Modified:
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/NotificationList.java
    webservices/juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/servlets/NotifyServlet.java

Added: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/BackGroundRegistration.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/BackGroundRegistration.java?rev=903066&view=auto
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/BackGroundRegistration.java (added)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/BackGroundRegistration.java Tue Jan 26 03:15:07 2010
@@ -0,0 +1,26 @@
+package org.apache.juddi.v3.client.config;
+
+import org.apache.log4j.Logger;
+
+public class BackGroundRegistration implements Runnable {
+
+	private UDDIClerkManager manager = null;
+	private static Logger log = Logger.getLogger(UDDIClerkManager.class);
+	
+
+	public BackGroundRegistration(UDDIClerkManager manager) {
+		super();
+		this.manager = manager;
+	}
+
+	public void run() {
+		log.info("Starting UDDI Clerks for manager " + manager.getClientConfig().getManagerName() + "...");
+		if (manager.getClientConfig().isRegisterOnStartup()) {
+			manager.saveClerkAndNodeInfo();
+			manager.registerAnnotatedServices();
+			manager.xRegister();
+		}
+		UDDIClientContainer.addClerkManager(manager);
+		log.info("Clerks started succesfully for manager " + manager.getClientConfig().getManagerName());
+	}
+}

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java?rev=903066&r1=903065&r2=903066&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java Tue Jan 26 03:15:07 2010
@@ -6,7 +6,6 @@
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.juddi.v3.annotations.AnnotationProcessor;
-import org.apache.juddi.v3.client.transport.Transport;
 import org.apache.log4j.Logger;
 import org.uddi.api_v3.BusinessService;
 
@@ -42,37 +41,49 @@
 	 * @throws ConfigurationException  
 	 */
 	public void start() throws ConfigurationException {
-		log.info("Starting UDDI Clerks for manager " + clientConfig.getManagerName() + "...");
-		UDDIClientContainer.addClerkManager(this);
-		if (clientConfig.isRegisterOnStartup()) {
-			saveClerkAndNodeInfo();
-			registerAnnotatedServices();
-			xRegister();
-		}
-		log.info("Clerks started succesfully for manager " + clientConfig.getManagerName());
+		Runnable runnable = new BackGroundRegistration(this);
+		Thread thread = new Thread(runnable);
+		thread.start();
  	}
 	
 	public void restart() throws ConfigurationException {
 		stop();
 		start();
- 	}
+	}
+	
 	/**
-	 * Saves the clerk and node info from the uddi.xml to the jUDDI registry.
+	 * Saves the clerk and node info from the uddi.xml to the home jUDDI registry.
+	 * This info is needed if you want to JUDDI Server to do XRegistration/"replication".
 	 */
 	public void saveClerkAndNodeInfo() {
 		
 		Map<String,UDDIClerk> uddiClerks = clientConfig.getUDDIClerks();
+		
 		if (uddiClerks.size() > 0) {
-			for (UDDIClerk defaultClerk : uddiClerks.values()) {
-				if (Transport.DEFAULT_NODE_NAME.equals(defaultClerk.uddiNode.getName())) {
-					for (UDDINode uddiNode : clientConfig.getUDDINodes().values()) {
-						if (uddiNode.isAllowJUDDIAPI()) defaultClerk.saveNode(uddiNode.getApiNode());
-					}
-					for (UDDIClerk uddiClerk : clientConfig.getUDDIClerks().values()) {
-						if (uddiClerk.getUDDINode().isAllowJUDDIAPI()) defaultClerk.saveClerk(uddiClerk);
+			
+			//obtaining a clerk that can write to the home registry
+			UDDIClerk homeClerk=null;
+			for (UDDIClerk clerk : uddiClerks.values()) {
+				if (clerk.getUDDINode().isHomeJUDDI()) {
+					homeClerk = clerk;
+				}	
+			}
+			//registering nodes and clerks
+			if (homeClerk!=null) {
+				int numberOfHomeJUDDIs=0;
+				for (UDDINode uddiNode : clientConfig.getUDDINodes().values()) {
+					if (uddiNode.isHomeJUDDI()) numberOfHomeJUDDIs++;
+					homeClerk.saveNode(uddiNode.getApiNode());
+				}
+				if (numberOfHomeJUDDIs==1) {
+					for (UDDIClerk clerk : clientConfig.getUDDIClerks().values()) {
+						homeClerk.saveClerk(clerk);
 					}
-					break;
+				} else {
+					log.error("The client config needs to have one homeJUDDI node.");
 				}
+			} else {
+				log.info("No home clerk found.");
 			}
 		}	
 	}

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java?rev=903066&r1=903065&r2=903066&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java Tue Jan 26 03:15:07 2010
@@ -557,7 +557,7 @@
 
 				log.info("Notification received by UDDISubscriptionListenerService : " + sw.toString());
 				
-				NotificationList nl = NotificationList.getInstance();
+				NotificationList<String> nl = NotificationList.getInstance();
 				nl.getNotifications().add(sw.toString());
 				
 				//update the registry with the notification list.

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java?rev=903066&r1=903065&r2=903066&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionListenerImpl.java Tue Jan 26 03:15:07 2010
@@ -26,7 +26,6 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 
-import org.apache.commons.collections.Buffer;
 import org.apache.juddi.config.PersistenceManager;
 import org.apache.juddi.mapping.MappingModelToApi;
 import org.apache.juddi.subscription.NotificationList;

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/NotificationList.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/NotificationList.java?rev=903066&r1=903065&r2=903066&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/NotificationList.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/NotificationList.java Tue Jan 26 03:15:07 2010
@@ -4,17 +4,17 @@
 import org.apache.commons.collections.Buffer;
 import org.apache.commons.collections.BufferUtils;
 
-public class NotificationList  {
-	private static NotificationList nl = null;
+public class NotificationList<T>  {
+	private static NotificationList<String> nl = null;
 	private static Buffer list = null;
 	
 	private NotificationList() {	
 		list = BufferUtils.synchronizedBuffer(new CircularFifoBuffer(10));
 	}
 	
-	public static NotificationList getInstance() {
+	public static NotificationList<String> getInstance() {
 		if (nl == null) {
-			nl = new NotificationList();
+			nl = new NotificationList<String>();
 		}
 		return nl;	
 	}

Modified: webservices/juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/servlets/NotifyServlet.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/servlets/NotifyServlet.java?rev=903066&r1=903065&r2=903066&view=diff
==============================================================================
--- webservices/juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/servlets/NotifyServlet.java (original)
+++ webservices/juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/servlets/NotifyServlet.java Tue Jan 26 03:15:07 2010
@@ -18,7 +18,6 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Iterator;
-import java.util.Vector;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;



---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org