Author: alexoree
Date: Sat Nov 30 16:54:02 2013
New Revision: 1546752

URL: http://svn.apache.org/r1546752
Log:
JUDDI-727 node id is now persisted for all uddi entity elements. added 
replication api to node entity

Modified:
    juddi/trunk/juddi-client.net/juddi-client.net/bindings/JUDDIApiService.cs
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Node.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateNode.java
    
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
    juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/Node.java
    juddi/trunk/uddi-ws/src/main/resources/juddi_api_v1.wsdl

Modified: 
juddi/trunk/juddi-client.net/juddi-client.net/bindings/JUDDIApiService.cs
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client.net/juddi-client.net/bindings/JUDDIApiService.cs?rev=1546752&r1=1546751&r2=1546752&view=diff
==============================================================================
--- juddi/trunk/juddi-client.net/juddi-client.net/bindings/JUDDIApiService.cs 
(original)
+++ juddi/trunk/juddi-client.net/juddi-client.net/bindings/JUDDIApiService.cs 
Sat Nov 30 16:54:02 2013
@@ -855,6 +855,8 @@ namespace org.apache.juddi.apiv3
         private string subscriptionUrlField;
 
         private string subscriptionListenerUrlField;
+               
+               private string replicationUrlField;
 
         private string juddiApiUrlField;
 
@@ -983,6 +985,16 @@ namespace org.apache.juddi.apiv3
             }
         }
 
+               /// <remarks/>
+               public string replicationUrl {
+                       get {
+                               return this.replicationUrlField;
+                       }
+                       set {
+                               this.replicationUrlField = value;
+                       }
+               }
+
         /// <remarks/>
         public string juddiApiUrl
         {

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java?rev=1546752&r1=1546751&r2=1546752&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
 Sat Nov 30 16:54:02 2013
@@ -17,7 +17,11 @@
 
 package org.apache.juddi.api.impl;
 
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.Date;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import javax.annotation.Resource;
 
 import javax.persistence.EntityManager;
@@ -46,7 +50,7 @@ import org.uddi.v3_service.DispositionRe
 public abstract class AuthenticatedService {
        public static final int AUTHTOKEN_ACTIVE = 1;
        public static final int AUTHTOKEN_RETIRED = 0;
-       Log logger = LogFactory.getLog(this.getClass());
+       static final Log logger = LogFactory.getLog(AuthenticatedService.class);
        
         @Resource
         protected WebServiceContext ctx;
@@ -177,4 +181,34 @@ public abstract class AuthenticatedServi
             }
             return null;
         }
+        
+        /**
+         * Returns the current node id for multi-node UDDI registries via 
replication
+         * @return 
+         */
+    public String getThisNodeID() {
+        try {
+            AppConfig.getInstance();
+           return 
AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID, GetHostname());
+        } catch (Exception ex) {
+            logger.error("Unable to determine the current node id, check 
juddiv3.xml config file! Defaulting to " + UNKNOWN,ex);
+        }
+        return UNKNOWN;
+    }
+    
+    public static final String UNKNOWN="UNKNOWN";
+    
+    /**
+     * Gets the current hostname
+     * @return 
+     */
+    public static String GetHostname(){
+            try {
+                return InetAddress.getLocalHost().getHostName();
+            } catch (Exception ex) {
+                logger.info("Unable to determine hostname, defaulting to " + 
UNKNOWN);
+                logger.debug("Unable to determine hostname, defaulting to 
"+UNKNOWN,ex);
+            }
+            return UNKNOWN;
+    }
 }

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java?rev=1546752&r1=1546751&r2=1546752&view=diff
==============================================================================
--- 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
 (original)
+++ 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
 Sat Nov 30 16:54:02 2013
@@ -70,6 +70,8 @@ import org.apache.juddi.api.util.QuerySt
 import org.apache.juddi.config.AppConfig;
 import org.apache.juddi.config.PersistenceManager;
 import org.apache.juddi.config.Property;
+import org.apache.juddi.model.Tmodel;
+import org.apache.juddi.model.UddiEntity;
 import org.apache.juddi.query.util.DynamicQuery;
 import org.apache.juddi.query.util.FindQualifiers;
 
@@ -530,10 +532,11 @@ public class UDDIPublicationImpl extends
                        for (org.uddi.api_v3.BindingTemplate apiBindingTemplate 
: apiBindingTemplateList) {
                                
                                org.apache.juddi.model.BindingTemplate 
modelBindingTemplate = new org.apache.juddi.model.BindingTemplate();
+                                
                                org.apache.juddi.model.BusinessService 
modelBusinessService = new org.apache.juddi.model.BusinessService();
                                
modelBusinessService.setEntityKey(apiBindingTemplate.getServiceKey());
                                
-                               
MappingApiToModel.mapBindingTemplate(apiBindingTemplate, modelBindingTemplate, 
modelBusinessService);
+                               
MappingApiToModel.mapBindingTemplate(apiBindingTemplate, modelBindingTemplate, 
modelBusinessService,this.getThisNodeID());
        
                                setOperationalInfo(em, modelBindingTemplate, 
publisher, false);
        
@@ -587,8 +590,8 @@ public class UDDIPublicationImpl extends
                                
                                org.apache.juddi.model.BusinessEntity 
modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
                                
-                               
MappingApiToModel.mapBusinessEntity(apiBusinessEntity, modelBusinessEntity);
-                               
+                               
MappingApiToModel.mapBusinessEntity(apiBusinessEntity, 
modelBusinessEntity,this.getThisNodeID());
+
                                setOperationalInfo(em, modelBusinessEntity, 
publisher);
        
                                em.persist(modelBusinessEntity);
@@ -642,10 +645,10 @@ public class UDDIPublicationImpl extends
                                org.apache.juddi.model.BusinessEntity 
modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
                                
modelBusinessEntity.setEntityKey(apiBusinessService.getBusinessKey());
                                
-                               
MappingApiToModel.mapBusinessService(apiBusinessService, modelBusinessService, 
modelBusinessEntity);
+                               
MappingApiToModel.mapBusinessService(apiBusinessService, modelBusinessService, 
modelBusinessEntity, this.getThisNodeID());
        
                                setOperationalInfo(em, modelBusinessService, 
publisher, false);
-       
+
                                em.persist(modelBusinessService);
                                
                                
result.getBusinessService().add(apiBusinessService);
@@ -694,7 +697,7 @@ public class UDDIPublicationImpl extends
                                
                                org.apache.juddi.model.Tmodel modelTModel = new 
org.apache.juddi.model.Tmodel();
                                
-                               MappingApiToModel.mapTModel(apiTModel, 
modelTModel);
+                               MappingApiToModel.mapTModel(apiTModel, 
modelTModel,this.getThisNodeID());
        
                                setOperationalInfo(em, modelTModel, publisher);
        
@@ -917,5 +920,9 @@ public class UDDIPublicationImpl extends
                        em.remove(existingUddiEntity);
                
        }
+
+    private void setNodeID(UddiEntity e) {
+        e.setNodeId(this.getThisNodeID());
+    }
        
 }

Modified: 
juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java?rev=1546752&r1=1546751&r2=1546752&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java 
(original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java 
Sat Nov 30 16:54:02 2013
@@ -62,7 +62,11 @@ import org.uddi.api_v3.TModel;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 
 /**
+ * This class is called when jUDDI starts up
  * @author <a href="mailto:[email protected]";>Jeff Faath</a>
+ * @author <a href="mailto:[email protected]";>Alex O'Ree</a>
+ * @see org.apache.juddi.Registry.RegistryServlet
+ * @see 
  */
 public class Install {
 
@@ -109,7 +113,7 @@ public class Install {
                                rootPublisher = installPublisher(em, 
fileRootPublisher, config);
                                installRootPublisherKeyGen(em, 
rootTModelKeyGen, rootPartition, rootPublisher, nodeId);
                                rootBusinessEntity.setBusinessKey(rootbizkey);
-                               installBusinessEntity(true, em, 
rootBusinessEntity, rootPublisher, rootPartition, config);
+                               installBusinessEntity(true, em, 
rootBusinessEntity, rootPublisher, rootPartition, config,nodeId);
                        } else {
                                log.debug("juddi.seed.always reapplies all seed 
files except for the root data.");
                        }
@@ -126,7 +130,7 @@ public class Install {
                                        throw new ConfigurationException("File 
" + filePublisher + " not found.");
                                } else {
                                        if (tModelKeyGen!=null) 
installPublisherKeyGen(em, tModelKeyGen, publisher, nodeId);
-                                       if (businessEntity!=null) 
installBusinessEntity(false, em, businessEntity, publisher, null, config);
+                                       if (businessEntity!=null) 
installBusinessEntity(false, em, businessEntity, publisher, null, 
config,nodeId);
                                        String fileTModels = publisherStr + 
FILE_TMODELS;
                                        installSaveTModel(em, fileTModels, 
publisher, nodeId, config);
                                }
@@ -259,13 +263,13 @@ public class Install {
        
        
        private static String installBusinessEntity(boolean isRoot, 
EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity, 
-                       UddiEntityPublisher rootPublisher, String 
rootPartition, Configuration config) 
+                       UddiEntityPublisher rootPublisher, String 
rootPartition, Configuration config ,String nodeId) 
        throws JAXBException, DispositionReportFaultMessage, IOException {
                
                if (isRoot) validateRootBusinessEntity(rootBusinessEntity, 
rootPublisher, rootPartition, config);
                
                org.apache.juddi.model.BusinessEntity modelBusinessEntity = new 
org.apache.juddi.model.BusinessEntity();
-               MappingApiToModel.mapBusinessEntity(rootBusinessEntity, 
modelBusinessEntity);
+               MappingApiToModel.mapBusinessEntity(rootBusinessEntity, 
modelBusinessEntity, nodeId);
                
                
modelBusinessEntity.setAuthorizedName(rootPublisher.getAuthorizedName());
                
@@ -465,7 +469,7 @@ public class Install {
                                        org.apache.juddi.model.Tmodel 
modelTModel = new org.apache.juddi.model.Tmodel();
                                        
apiTModel.setTModelKey(apiTModel.getTModelKey().toLowerCase());
                                        
-                                       MappingApiToModel.mapTModel(apiTModel, 
modelTModel);
+                                       MappingApiToModel.mapTModel(apiTModel, 
modelTModel,nodeId);
 
                                        
modelTModel.setAuthorizedName(publisher.getAuthorizedName());
                                        
@@ -494,7 +498,7 @@ public class Install {
        private static void installPublisherKeyGen(EntityManager em, TModel 
apiTModel, UddiEntityPublisher publisher, String nodeId) throws 
DispositionReportFaultMessage {
 
                org.apache.juddi.model.Tmodel modelTModel = new 
org.apache.juddi.model.Tmodel();
-               MappingApiToModel.mapTModel(apiTModel, modelTModel);
+               MappingApiToModel.mapTModel(apiTModel, modelTModel,nodeId);
                
                modelTModel.setAuthorizedName(publisher.getAuthorizedName());
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to