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 2014/01/19 00:18:49 UTC

svn commit: r1559432 [1/2] - in /juddi/trunk: juddi-core/src/main/java/org/apache/juddi/api/impl/ juddi-core/src/main/java/org/apache/juddi/v3/auth/ juddi-core/src/main/java/org/apache/juddi/validation/ juddi-core/src/test/java/org/apache/juddi/api/imp...

Author: alexoree
Date: Sat Jan 18 23:18:48 2014
New Revision: 1559432

URL: http://svn.apache.org/r1559432
Log:
JUDDI-793 done, added missing config fields, added save clerk and save node functions
JUDDI-794 done
JUDDI-791 adding log warning for using the JUDDIAuthenticator.java, more javadoc

Added:
    juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java
Modified:
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/JUDDIAuthenticator.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
    juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java
    juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml
    juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
    juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
    juddi/trunk/juddiv3-war/src/main/webapp/admin/admin.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/ajax/go.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/ajax/saveconfig.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/configure.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/home.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/index.jsp
    juddi/trunk/juddiv3-war/src/main/webapp/admin/stats.jsp
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_200_GUI_IntegrationTest.java

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java?rev=1559432&r1=1559431&r2=1559432&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java Sat Jan 18 23:18:48 2014
@@ -14,7 +14,6 @@
  * limitations under the License.
  *
  */
-
 package org.apache.juddi.api.impl;
 
 import java.io.StringWriter;
@@ -51,6 +50,7 @@ import org.apache.juddi.api_v3.SavePubli
 import org.apache.juddi.api_v3.SyncSubscription;
 import org.apache.juddi.api_v3.SyncSubscriptionDetail;
 import org.apache.juddi.config.PersistenceManager;
+import org.apache.juddi.config.Property;
 import org.apache.juddi.mapping.MappingApiToModel;
 import org.apache.juddi.mapping.MappingModelToApi;
 import org.apache.juddi.model.ClientSubscriptionInfo;
@@ -79,519 +79,596 @@ import org.uddi.v3_service.UDDISubscript
  * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
  * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
  */
-@WebService(serviceName="JUDDIApiService", 
-			endpointInterface="org.apache.juddi.v3_service.JUDDIApiPortType",
-			targetNamespace = "urn:juddi-apache-org:v3_service")
+@WebService(serviceName = "JUDDIApiService",
+        endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType",
+        targetNamespace = "urn:juddi-apache-org:v3_service")
 public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortType {
 
-private Log log = LogFactory.getLog(this.getClass());
-	
-	/**
-	 * Saves publisher(s) to the persistence layer.  This method is specific to jUDDI.
-    */
-	public PublisherDetail savePublisher(SavePublisher body)
-			throws DispositionReportFaultMessage {
+        private Log log = LogFactory.getLog(this.getClass());
+
+        /**
+         * Saves publisher(s) to the persistence layer. This method is specific
+         * to jUDDI. Administrative privilege required.
+         *
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage
+         */
+        public PublisherDetail savePublisher(SavePublisher body)
+                throws DispositionReportFaultMessage {
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+                        new ValidatePublish(publisher).validateSavePublisher(em, body);
+
+                        PublisherDetail result = new PublisherDetail();
+
+                        List<org.apache.juddi.api_v3.Publisher> apiPublisherList = body.getPublisher();
+                        for (org.apache.juddi.api_v3.Publisher apiPublisher : apiPublisherList) {
+
+                                org.apache.juddi.model.Publisher modelPublisher = new org.apache.juddi.model.Publisher();
+
+                                MappingApiToModel.mapPublisher(apiPublisher, modelPublisher);
+
+                                Object existingUddiEntity = em.find(modelPublisher.getClass(), modelPublisher.getAuthorizedName());
+                                if (existingUddiEntity != null) {
+                                        em.remove(existingUddiEntity);
+                                }
+
+                                em.persist(modelPublisher);
+
+                                result.getPublisher().add(apiPublisher);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        /**
+         * Deletes publisher(s) from the persistence layer. This method is
+         * specific to jUDDI. Administrative privilege required.
+         *
+         * @param body
+         * @throws DispositionReportFaultMessage
+         */
+        public void deletePublisher(DeletePublisher body)
+                throws DispositionReportFaultMessage {
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+                        new ValidatePublish(publisher).validateDeletePublisher(em, body);
+
+                        List<String> entityKeyList = body.getPublisherId();
+                        for (String entityKey : entityKeyList) {
+                                Object obj = em.find(org.apache.juddi.model.Publisher.class, entityKey);
+                                em.remove(obj);
+                        }
+
+                        tx.commit();
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
         
-		
-		
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-			
-			new ValidatePublish(publisher).validateSavePublisher(em, body);
-			
-			PublisherDetail result = new PublisherDetail();
-	
-			List<org.apache.juddi.api_v3.Publisher> apiPublisherList = body.getPublisher();
-			for (org.apache.juddi.api_v3.Publisher apiPublisher : apiPublisherList) {
-				
-				org.apache.juddi.model.Publisher modelPublisher = new org.apache.juddi.model.Publisher();
-				
-				MappingApiToModel.mapPublisher(apiPublisher, modelPublisher);
-				
-				Object existingUddiEntity = em.find(modelPublisher.getClass(), modelPublisher.getAuthorizedName());
-				if (existingUddiEntity != null)
-					em.remove(existingUddiEntity);
-				
-				em.persist(modelPublisher);
-				
-				result.getPublisher().add(apiPublisher);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-
-	/**
-	 * Deletes publisher(s) from the persistence layer.  This method is specific to jUDDI.
-	 */
-	public void deletePublisher(DeletePublisher body)
-			throws DispositionReportFaultMessage {
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-			
-			new ValidatePublish(publisher).validateDeletePublisher(em, body);
-	
-			List<String> entityKeyList = body.getPublisherId();
-			for (String entityKey : entityKeyList) {
-				Object obj = em.find(org.apache.juddi.model.Publisher.class, entityKey);
-				em.remove(obj);
-			}
-	
-			tx.commit();
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-	
-	/**
-	 * Retrieves publisher(s) from the persistence layer.  This method is specific to jUDDI.
-	 */
-	public PublisherDetail getPublisherDetail(GetPublisherDetail body)
-			throws DispositionReportFaultMessage {
-
-		new ValidatePublisher(null).validateGetPublisherDetail(body);
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			this.getEntityPublisher(em, body.getAuthInfo());
-			
-			PublisherDetail result = new PublisherDetail();
-			
-			List<String> publisherIdList = body.getPublisherId();
-			for (String publisherId : publisherIdList) {
-				org.apache.juddi.model.Publisher modelPublisher = null;
-				try {
-					modelPublisher = em.find(org.apache.juddi.model.Publisher.class, publisherId);
-				} catch (ClassCastException e) {}
-					if (modelPublisher == null) {
-					throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.PublisherNotFound", publisherId));
-				}
-				
-				org.apache.juddi.api_v3.Publisher apiPublisher = new org.apache.juddi.api_v3.Publisher();
-				
-				MappingModelToApi.mapPublisher(modelPublisher, apiPublisher);
-				
-				result.getPublisher().add(apiPublisher);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	public PublisherDetail getAllPublisherDetail(GetAllPublisherDetail body)
-			throws DispositionReportFaultMessage, RemoteException {
-		
-		new ValidatePublisher(null).validateGetAllPublisherDetail(body);
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			this.getEntityPublisher(em, body.getAuthInfo());
-			
-			PublisherDetail result = new PublisherDetail();
-			
-			Query query = em.createQuery("SELECT p from Publisher as p");
-			List<Publisher> modelPublisherList = query.getResultList();
-			
-			for (Publisher modelPublisher : modelPublisherList) {
-				
-				org.apache.juddi.api_v3.Publisher apiPublisher = new org.apache.juddi.api_v3.Publisher();
-				
-				MappingModelToApi.mapPublisher(modelPublisher, apiPublisher);
-				
-				result.getPublisher().add(apiPublisher);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-
-	public void adminDeleteTModel(DeleteTModel body)
-			throws DispositionReportFaultMessage {
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-		
-			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-			
-			new ValidatePublish(publisher).validateAdminDeleteTModel(em, body);
-			
-			List<String> entityKeyList = body.getTModelKey();
-			for (String entityKey : entityKeyList) {
-				Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
-				em.remove(obj);
-			}
-		
-			tx.commit();
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-}
+        /**
+         * Retrieves publisher(s) from the persistence layer. This method is
+         * specific to jUDDI. Administrative privilege required. 
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage 
+         */
+        public PublisherDetail getPublisherDetail(GetPublisherDetail body)
+                throws DispositionReportFaultMessage {
+
+                new ValidatePublisher(null).validateGetPublisherDetail(body);
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        this.getEntityPublisher(em, body.getAuthInfo());
+
+                        PublisherDetail result = new PublisherDetail();
+
+                        List<String> publisherIdList = body.getPublisherId();
+                        for (String publisherId : publisherIdList) {
+                                org.apache.juddi.model.Publisher modelPublisher = null;
+                                try {
+                                        modelPublisher = em.find(org.apache.juddi.model.Publisher.class, publisherId);
+                                } catch (ClassCastException e) {
+                                }
+                                if (modelPublisher == null) {
+                                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.PublisherNotFound", publisherId));
+                                }
+
+                                org.apache.juddi.api_v3.Publisher apiPublisher = new org.apache.juddi.api_v3.Publisher();
+
+                                MappingModelToApi.mapPublisher(modelPublisher, apiPublisher);
+
+                                result.getPublisher().add(apiPublisher);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+
+        }
+
+        /**
+         * Retrieves all publisher from the persistence layer. This method is
+         * specific to jUDDI. Administrative privilege required. Use caution when calling, result
+         * set is not bound. If there are many publishers, it is possible to have a 
+         * result set that is too large
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage
+         * @throws RemoteException 
+         */
+        @SuppressWarnings("unchecked")
+        public PublisherDetail getAllPublisherDetail(GetAllPublisherDetail body)
+                throws DispositionReportFaultMessage, RemoteException {
+
+                new ValidatePublisher(null).validateGetAllPublisherDetail(body);
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        this.getEntityPublisher(em, body.getAuthInfo());
+
+                        PublisherDetail result = new PublisherDetail();
+
+                        Query query = em.createQuery("SELECT p from Publisher as p");
+                        List<Publisher> modelPublisherList = query.getResultList();
+
+                        for (Publisher modelPublisher : modelPublisherList) {
+
+                                org.apache.juddi.api_v3.Publisher apiPublisher = new org.apache.juddi.api_v3.Publisher();
+
+                                MappingModelToApi.mapPublisher(modelPublisher, apiPublisher);
+
+                                result.getPublisher().add(apiPublisher);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        /**
+         * Completely deletes a tModel from the persistence layer.
+         * Administrative privilege required. All entities that reference this tModel
+         * will no longer be able to use the tModel if jUDDI Option Enforce referential Integrity is enabled.
+         * @see Property.JUDDI_ENFORCE_REFERENTIAL_INTEGRITY
+         * @param body
+         * @throws DispositionReportFaultMessage 
+         */
+        public void adminDeleteTModel(DeleteTModel body)
+                throws DispositionReportFaultMessage {
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+                        new ValidatePublish(publisher).validateAdminDeleteTModel(em, body);
+
+                        List<String> entityKeyList = body.getTModelKey();
+                        for (String entityKey : entityKeyList) {
+                                Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
+                                em.remove(obj);
+                        }
+
+                        tx.commit();
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        /**
+         * Delete's a client's subscription information. This is typically used for
+         * server to server subscriptions
+         * Administrative privilege required.
+         * @param body
+         * @throws DispositionReportFaultMessage
+         * @throws RemoteException 
+         */
+        public void deleteClientSubscriptionInfo(DeleteClientSubscriptionInfo body)
+                throws DispositionReportFaultMessage, RemoteException {
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+                        new ValidateClientSubscriptionInfo(publisher).validateDeleteClientSubscriptionInfo(em, body);
+
+                        List<String> entityKeyList = body.getSubscriptionKey();
+                        for (String entityKey : entityKeyList) {
+                                Object obj = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, entityKey);
+                                em.remove(obj);
+                        }
+
+                        tx.commit();
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+
+        }
+
+        /**
+         * Adds client subscription information. This effectively links a server to
+         * serverr subscription to clerk
+         * Administrative privilege required.
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage
+         * @throws RemoteException 
+         */
+        public ClientSubscriptionInfoDetail saveClientSubscriptionInfo(SaveClientSubscriptionInfo body)
+                throws DispositionReportFaultMessage, RemoteException {
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+                        new ValidateClientSubscriptionInfo(publisher).validateSaveClientSubscriptionInfo(em, body);
+
+                        ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
+
+                        List<org.apache.juddi.api_v3.ClientSubscriptionInfo> apiClientSubscriptionInfoList = body.getClientSubscriptionInfo();
+                        for (org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo : apiClientSubscriptionInfoList) {
+
+                                org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo = new org.apache.juddi.model.ClientSubscriptionInfo();
+
+                                MappingApiToModel.mapClientSubscriptionInfo(apiClientSubscriptionInfo, modelClientSubscriptionInfo);
+
+                                Object existingUddiEntity = em.find(modelClientSubscriptionInfo.getClass(), modelClientSubscriptionInfo.getSubscriptionKey());
+                                if (existingUddiEntity != null) {
+                                        em.remove(existingUddiEntity);
+                                }
+
+                                em.persist(modelClientSubscriptionInfo);
+
+                                result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        /**
+         * Gets all client subscription information. This is used for server to server subscriptions
+         * Administrative privilege required.
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage 
+         */
+        @SuppressWarnings("unchecked")
+        public ClientSubscriptionInfoDetail getAllClientSubscriptionInfoDetail(GetAllClientSubscriptionInfoDetail body)
+                throws DispositionReportFaultMessage {
+
+                new ValidateClientSubscriptionInfo(null).validateGetAllClientSubscriptionDetail(body);
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        this.getEntityPublisher(em, body.getAuthInfo());
+
+                        ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
+
+                        Query query = em.createQuery("SELECT cs from ClientSubscriptionInfo as cs");
+                        List<org.apache.juddi.model.ClientSubscriptionInfo> modelClientSubscriptionInfoList = query.getResultList();
+
+                        for (ClientSubscriptionInfo modelClientSubscriptionInfo : modelClientSubscriptionInfoList) {
+
+                                org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
+
+                                MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
+
+                                result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+
+        }
+
+        /**
+         * Retrieves clientSubscriptionKey(s) from the persistence layer. This
+         * method is specific to jUDDI. Used for server to server subscriptions
+         * Administrative privilege required.
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage 
+         */
+        public ClientSubscriptionInfoDetail getClientSubscriptionInfoDetail(GetClientSubscriptionInfoDetail body)
+                throws DispositionReportFaultMessage {
+
+                new ValidateClientSubscriptionInfo(null).validateGetClientSubscriptionInfoDetail(body);
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        this.getEntityPublisher(em, body.getAuthInfo());
+
+                        ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
+
+                        List<String> subscriptionKeyList = body.getClientSubscriptionKey();
+                        for (String subscriptionKey : subscriptionKeyList) {
+
+                                org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo = null;
+                                try {
+                                        modelClientSubscriptionInfo = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                                } catch (ClassCastException e) {
+                                }
+                                if (modelClientSubscriptionInfo == null) {
+                                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
+                                }
+
+                                org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
+
+                                MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
+
+                                result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+
+        }
+
+        
+        /**
+         * Saves clerk(s) to the persistence layer. This method is specific to
+         * jUDDI. This is used for server to server subscriptions and for future use
+         * with replication. Administrative privilege required.
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage 
+         */
+        public ClerkDetail saveClerk(SaveClerk body)
+                throws DispositionReportFaultMessage {
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+                        new ValidateClerk(publisher).validateSaveClerk(em, body);
+
+                        ClerkDetail result = new ClerkDetail();
+
+                        List<org.apache.juddi.api_v3.Clerk> apiClerkList = body.getClerk();;
+                        for (org.apache.juddi.api_v3.Clerk apiClerk : apiClerkList) {
+
+                                org.apache.juddi.model.Clerk modelClerk = new org.apache.juddi.model.Clerk();
+
+                                MappingApiToModel.mapClerk(apiClerk, modelClerk);
+
+                                Object existingUddiEntity = em.find(modelClerk.getClass(), modelClerk.getClerkName());
+                                if (existingUddiEntity != null) {
+                                        em.merge(modelClerk);
+                                } else {
+                                        em.persist(modelClerk);
+                                }
+
+                                result.getClerk().add(apiClerk);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        /**
+         * Saves nodes(s) to the persistence layer. This method is specific to
+         * jUDDI. Administrative privilege required. This is used for server to server subscriptions and for future use
+         * with replication. Administrative privilege required.
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage 
+         */
+        public NodeDetail saveNode(SaveNode body)
+                throws DispositionReportFaultMessage {
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+                        new ValidateNode(publisher).validateSaveNode(em, body);
+
+                        NodeDetail result = new NodeDetail();
+
+                        List<org.apache.juddi.api_v3.Node> apiNodeList = body.getNode();;
+                        for (org.apache.juddi.api_v3.Node apiNode : apiNodeList) {
+
+                                org.apache.juddi.model.Node modelNode = new org.apache.juddi.model.Node();
+
+                                MappingApiToModel.mapNode(apiNode, modelNode);
+
+                                Object existingUddiEntity = em.find(modelNode.getClass(), modelNode.getName());
+                                if (existingUddiEntity != null) {
+                                        em.merge(modelNode);
+                                } else {
+                                        em.persist(modelNode);
+                                }
+
+                                result.getNode().add(apiNode);
+                        }
+
+                        tx.commit();
+                        return result;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        /**
+         * Instructs the registry to perform a synchronous subscription
+         * response.
+         * @param body
+         * @return
+         * @throws DispositionReportFaultMessage
+         * @throws RemoteException 
+         */
+        @SuppressWarnings("unchecked")
+        public SyncSubscriptionDetail invokeSyncSubscription(
+                SyncSubscription body) throws DispositionReportFaultMessage,
+                RemoteException {
+
+                //validate
+                SyncSubscriptionDetail syncSubscriptionDetail = new SyncSubscriptionDetail();
+
+                Map<String, org.apache.juddi.api_v3.ClientSubscriptionInfo> clientSubscriptionInfoMap
+                        = new HashMap<String, org.apache.juddi.api_v3.ClientSubscriptionInfo>();
+                //find the clerks to go with these subscriptions
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+
+                        this.getEntityPublisher(em, body.getAuthInfo());
+                        for (GetSubscriptionResults getSubscriptionResult : body.getGetSubscriptionResultsList()) {
+                                String subscriptionKey = getSubscriptionResult.getSubscriptionKey();
+                                org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo = null;
+                                try {
+                                        modelClientSubscriptionInfo = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+                                } catch (ClassCastException e) {
+                                }
+                                if (modelClientSubscriptionInfo == null) {
+                                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
+                                }
+                                org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
+                                MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
+                                clientSubscriptionInfoMap.put(apiClientSubscriptionInfo.getSubscriptionKey(), apiClientSubscriptionInfo);
+                        }
+
+                        tx.commit();
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+
+                for (GetSubscriptionResults getSubscriptionResult : body.getGetSubscriptionResultsList()) {
+                        try {
+                                String subscriptionKey = getSubscriptionResult.getSubscriptionKey();
+                                Clerk fromClerk = clientSubscriptionInfoMap.get(subscriptionKey).getFromClerk();
+                                Clerk toClerk = clientSubscriptionInfoMap.get(subscriptionKey).getToClerk();
+                                String clazz = fromClerk.getNode().getProxyTransport();
+                                Class<?> transportClass = ClassUtil.forName(clazz, this.getClass());
+                                Transport transport = (Transport) transportClass.getConstructor(String.class).newInstance(fromClerk.getNode().getName());
+                                UDDISubscriptionPortType subscriptionService = transport.getUDDISubscriptionService(fromClerk.getNode().getSubscriptionUrl());
+                                SubscriptionResultsList list = subscriptionService.getSubscriptionResults(getSubscriptionResult);
+
+                                JAXBContext context = JAXBContext.newInstance(list.getClass());
+                                Marshaller marshaller = context.createMarshaller();
+                                StringWriter sw = new StringWriter();
+                                marshaller.marshal(list, sw);
+
+                                log.info("Notification received by UDDISubscriptionListenerService : " + sw.toString());
+
+                                NotificationList<String> nl = NotificationList.getInstance();
+                                nl.getNotifications().add(sw.toString());
+
+                                //update the registry with the notification list.
+                                XRegisterHelper.handle(fromClerk, toClerk, list);
+
+                                syncSubscriptionDetail.getSubscriptionResultsList().add(list);
+                        } catch (Exception ce) {
+                                log.error(ce.getMessage(), ce);
+                                if (ce instanceof DispositionReportFaultMessage) {
+                                        throw (DispositionReportFaultMessage) ce;
+                                }
+                                if (ce instanceof RemoteException) {
+                                        throw (RemoteException) ce;
+                                }
+                        }
+                }
+                //for now sending a clean object back
 
-	public void deleteClientSubscriptionInfo(DeleteClientSubscriptionInfo body)
-			throws DispositionReportFaultMessage, RemoteException {
-		
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-			
-			new ValidateClientSubscriptionInfo(publisher).validateDeleteClientSubscriptionInfo(em, body);
-	
-			List<String> entityKeyList = body.getSubscriptionKey();
-			for (String entityKey : entityKeyList) {
-				Object obj = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, entityKey);
-				em.remove(obj);
-			}
-	
-			tx.commit();
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-		
-	}
-
-	public ClientSubscriptionInfoDetail saveClientSubscriptionInfo(SaveClientSubscriptionInfo body)
-			throws DispositionReportFaultMessage, RemoteException {
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-			
-			new ValidateClientSubscriptionInfo(publisher).validateSaveClientSubscriptionInfo(em, body);
-			
-			ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
-	
-			List<org.apache.juddi.api_v3.ClientSubscriptionInfo> apiClientSubscriptionInfoList = body.getClientSubscriptionInfo();
-			for (org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo : apiClientSubscriptionInfoList) {
-				
-				org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo = new org.apache.juddi.model.ClientSubscriptionInfo();
-				
-				MappingApiToModel.mapClientSubscriptionInfo(apiClientSubscriptionInfo, modelClientSubscriptionInfo);
-				
-				Object existingUddiEntity = em.find(modelClientSubscriptionInfo.getClass(), modelClientSubscriptionInfo.getSubscriptionKey());
-				if (existingUddiEntity != null)
-					em.remove(existingUddiEntity);
-				
-				em.persist(modelClientSubscriptionInfo);
-				
-				result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-	
-	@SuppressWarnings("unchecked")
-	public ClientSubscriptionInfoDetail getAllClientSubscriptionInfoDetail(GetAllClientSubscriptionInfoDetail body) 
-		throws DispositionReportFaultMessage {
-		
-		new ValidateClientSubscriptionInfo(null).validateGetAllClientSubscriptionDetail(body);
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			this.getEntityPublisher(em, body.getAuthInfo());
-			
-			ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
-			
-			Query query = em.createQuery("SELECT cs from ClientSubscriptionInfo as cs");
-			List<org.apache.juddi.model.ClientSubscriptionInfo> modelClientSubscriptionInfoList = query.getResultList();
-			
-			for (ClientSubscriptionInfo modelClientSubscriptionInfo : modelClientSubscriptionInfoList) {
-				
-				org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
-				
-				MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
-				
-				result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-		
-	}
-	
-	/**
-	 * Retrieves clientSubscriptionKey(s) from the persistence layer.  This method is specific to jUDDI.
-	 */
-	public ClientSubscriptionInfoDetail getClientSubscriptionInfoDetail(GetClientSubscriptionInfoDetail body)
-			throws DispositionReportFaultMessage {
-
-		new ValidateClientSubscriptionInfo(null).validateGetClientSubscriptionInfoDetail(body);
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			this.getEntityPublisher(em, body.getAuthInfo());
-			
-			ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
-			
-			List<String> subscriptionKeyList = body.getClientSubscriptionKey();
-			for (String subscriptionKey : subscriptionKeyList) {
-				
-				org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo = null;
-				try {
-					modelClientSubscriptionInfo = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
-				} catch (ClassCastException e) {}
-				if (modelClientSubscriptionInfo == null) {
-					throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
-				}
-				
-				org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
-				
-				MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
-				
-				result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-
-	}
-	
-	/**
-	 * Saves clerk(s) to the persistence layer.  This method is specific to jUDDI.
-	 */
-	public ClerkDetail saveClerk(SaveClerk body)
-			throws DispositionReportFaultMessage {
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-			
-			new ValidateClerk(publisher).validateSaveClerk(em, body);
-			
-			ClerkDetail result = new ClerkDetail();
-	
-			List<org.apache.juddi.api_v3.Clerk> apiClerkList = body.getClerk();;
-			for (org.apache.juddi.api_v3.Clerk apiClerk : apiClerkList) {
-				
-				org.apache.juddi.model.Clerk modelClerk = new org.apache.juddi.model.Clerk();
-				
-				MappingApiToModel.mapClerk(apiClerk, modelClerk);
-				
-				Object existingUddiEntity = em.find(modelClerk.getClass(), modelClerk.getClerkName());
-				if (existingUddiEntity != null) {
-					em.merge(modelClerk);
-				} else {
-					em.persist(modelClerk);
-				}
-				
-				result.getClerk().add(apiClerk);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-	
-	/**
-	 * Saves nodes(s) to the persistence layer.  This method is specific to jUDDI.
-	 */
-	public NodeDetail saveNode(SaveNode body)
-			throws DispositionReportFaultMessage {
-
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-			
-			new ValidateNode(publisher).validateSaveNode(em, body);
-			
-			NodeDetail result = new NodeDetail();
-	
-			List<org.apache.juddi.api_v3.Node> apiNodeList = body.getNode();;
-			for (org.apache.juddi.api_v3.Node apiNode : apiNodeList) {
-				
-				org.apache.juddi.model.Node modelNode = new org.apache.juddi.model.Node();
-				
-				MappingApiToModel.mapNode(apiNode, modelNode);
-				
-				Object existingUddiEntity = em.find(modelNode.getClass(), modelNode.getName());
-				if (existingUddiEntity != null) {
-					em.merge(modelNode);
-				} else {
-				    em.persist(modelNode);
-				}
-				
-				result.getNode().add(apiNode);
-			}
-	
-			tx.commit();
-			return result;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-
-	/**
-	 * Instructs the registry to perform a synchronous subscription response.
-	 */
-	@SuppressWarnings("unchecked")
-	public SyncSubscriptionDetail invokeSyncSubscription(
-			SyncSubscription body) throws DispositionReportFaultMessage,
-			RemoteException {
-		
-		//validate
-		
-		SyncSubscriptionDetail syncSubscriptionDetail = new SyncSubscriptionDetail();
-		
-		Map<String,org.apache.juddi.api_v3.ClientSubscriptionInfo> clientSubscriptionInfoMap 
-				= new HashMap<String,org.apache.juddi.api_v3.ClientSubscriptionInfo>();
-		//find the clerks to go with these subscriptions
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-	
-			this.getEntityPublisher(em, body.getAuthInfo());
-			for (GetSubscriptionResults getSubscriptionResult : body.getGetSubscriptionResultsList()) {
-				String subscriptionKey = getSubscriptionResult.getSubscriptionKey();
-				org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo = null;
-				try {
-					modelClientSubscriptionInfo = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
-				} catch (ClassCastException e) {}
-				if (modelClientSubscriptionInfo == null) {
-					throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
-				}
-				org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
-				MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
-				clientSubscriptionInfoMap.put(apiClientSubscriptionInfo.getSubscriptionKey(),apiClientSubscriptionInfo);
-			}
-	
-			tx.commit();
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-		
-		for (GetSubscriptionResults getSubscriptionResult : body.getGetSubscriptionResultsList()) {
-			try {
-				String subscriptionKey = getSubscriptionResult.getSubscriptionKey();
-				Clerk fromClerk = clientSubscriptionInfoMap.get(subscriptionKey).getFromClerk();
-				Clerk toClerk = clientSubscriptionInfoMap.get(subscriptionKey).getToClerk();
-				String clazz = fromClerk.getNode().getProxyTransport();
-				Class<?> transportClass = ClassUtil.forName(clazz, this.getClass());
-				Transport transport = (Transport) transportClass.getConstructor(String.class).newInstance(fromClerk.getNode().getName()); 
-				UDDISubscriptionPortType subscriptionService = transport.getUDDISubscriptionService(fromClerk.getNode().getSubscriptionUrl());
-				SubscriptionResultsList list = subscriptionService.getSubscriptionResults(getSubscriptionResult);
-				
-				JAXBContext context = JAXBContext.newInstance(list.getClass());
-				Marshaller marshaller = context.createMarshaller();
-				StringWriter sw = new StringWriter();
-				marshaller.marshal(list, sw);
-
-				log.info("Notification received by UDDISubscriptionListenerService : " + sw.toString());
-				
-				NotificationList<String> nl = NotificationList.getInstance();
-				nl.getNotifications().add(sw.toString());
-				
-				//update the registry with the notification list.
-				XRegisterHelper.handle(fromClerk, toClerk, list);
-				
-				syncSubscriptionDetail.getSubscriptionResultsList().add(list);
-			} catch (Exception ce) {
-				log.error(ce.getMessage(),ce);
-				if (ce instanceof DispositionReportFaultMessage) {
-					throw (DispositionReportFaultMessage) ce;
-				}
-				if (ce instanceof RemoteException) {
-					throw (RemoteException) ce;
-				}
-			}
-		}
-		//for now sending a clean object back
-		
-		return syncSubscriptionDetail;
-	}
+                return syncSubscriptionDetail;
+        }
 
-	
-	
 }

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/JUDDIAuthenticator.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/JUDDIAuthenticator.java?rev=1559432&r1=1559431&r2=1559432&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/JUDDIAuthenticator.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/v3/auth/JUDDIAuthenticator.java Sat Jan 18 23:18:48 2014
@@ -14,7 +14,6 @@
  * limitations under the License.
  *
  */
-
 package org.apache.juddi.v3.auth;
 
 import javax.persistence.EntityManager;
@@ -32,25 +31,31 @@ import org.apache.juddi.v3.error.ErrorMe
 import org.apache.juddi.v3.error.UnknownUserException;
 
 /**
- * This is the default implementation of jUDDI's Authenticator interface.
- * If the user id does not have an associated publisher, it adds the publisher.
- * Please do NOT use this class in production.
+ * This is the default implementation of jUDDI's Authenticator interface. If the
+ * user id does not have an associated publisher, it adds the publisher. Please
+ * do NOT use this class in production.
  *
  * @author Steve Viens (sviens@apache.org)
  * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
  * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
  */
 public class JUDDIAuthenticator implements Authenticator {
-	
-	private Log log = LogFactory.getLog(this.getClass());
-	/**
-	 * 
-	 * @return the userId that came in on the request providing the user has a publishing account in jUDDI.
-	 */
-	public String authenticate(String authorizedName, String credential) throws AuthenticationException {
-		if (authorizedName==null || "".equals(authorizedName)) {
-			throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
-		}
+
+        private Log log = LogFactory.getLog(this.getClass());
+
+       /**
+        * @return the userId that came in on the request providing the user has
+         * a publishing account in jUDDI.
+        * @param authorizedName
+        * @param credential
+        * @return authorizedName
+        * @throws AuthenticationException 
+        */
+        public String authenticate(String authorizedName, String credential) throws AuthenticationException {
+                if (authorizedName == null || "".equals(authorizedName)) {
+                        throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
+                }
+                log.warn("DO NOT USE JUDDI AUTHENTICATOR FOR PRODUCTION SYSTEMS - DOES NOT VALIDATE PASSWORDS, AT ALL!");
                 int MaxBindingsPerService = -1;
                 int MaxServicesPerBusiness = -1;
                 int MaxTmodels = -1;
@@ -67,49 +72,50 @@ public class JUDDIAuthenticator implemen
                         MaxBusinesses = -1;
                         log.error("config exception! " + authorizedName, ex);
                 }
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-			Publisher publisher = em.find(Publisher.class, authorizedName);
-			if (publisher == null) {
-				log.warn("Publisher was not found, adding the publisher in on the fly.");
-				publisher = new Publisher();
-				publisher.setAuthorizedName(authorizedName);
-				publisher.setIsAdmin("false");
-				publisher.setIsEnabled("true");
-				publisher.setMaxBindingsPerService(MaxBindingsPerService);
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+                        Publisher publisher = em.find(Publisher.class, authorizedName);
+                        if (publisher == null) {
+                                log.warn("Publisher \"" + authorizedName + "\" was not found, adding the publisher in on the fly.");
+                                publisher = new Publisher();
+                                publisher.setAuthorizedName(authorizedName);
+                                publisher.setIsAdmin("false");
+                                publisher.setIsEnabled("true");
+                                publisher.setMaxBindingsPerService(MaxBindingsPerService);
                                 publisher.setMaxBusinesses(MaxBusinesses);
                                 publisher.setMaxServicesPerBusiness(MaxServicesPerBusiness);
                                 publisher.setMaxTmodels(MaxTmodels);
-				publisher.setPublisherName("Unknown");
-				em.persist(publisher);
-				tx.commit();
-			}
-			return authorizedName;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-	
-	public UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException {
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		try {
-			tx.begin();
-			Publisher publisher = em.find(Publisher.class, authorizedName);
-			if (publisher == null)
-				throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
-			
-			return publisher;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-}
\ No newline at end of file
+                                publisher.setPublisherName("Unknown");
+                                em.persist(publisher);
+                                tx.commit();
+                        }
+                        return authorizedName;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        public UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException {
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+                try {
+                        tx.begin();
+                        Publisher publisher = em.find(Publisher.class, authorizedName);
+                        if (publisher == null) {
+                                throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
+                        }
+
+                        return publisher;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+}

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java?rev=1559432&r1=1559431&r2=1559432&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java Sat Jan 18 23:18:48 2014
@@ -142,7 +142,7 @@ public class ValidatePublish extends Val
                                 throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.BusinessNotFound", entityKey));
                         }
 
-                        if (!publisher.isOwner((UddiEntity) obj)) {
+                        if (!publisher.isOwner((UddiEntity) obj)&& !((Publisher) publisher).isAdmin() ) {
                                 throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
                         }
 
@@ -181,7 +181,7 @@ public class ValidatePublish extends Val
                                 throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ServiceNotFound", entityKey));
                         }
 
-                        if (!publisher.isOwner((UddiEntity) obj)) {
+                        if (!publisher.isOwner((UddiEntity) obj) && !((Publisher) publisher).isAdmin() ) {
                                 throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
                         }
 
@@ -221,7 +221,7 @@ public class ValidatePublish extends Val
                                 throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.BindingTemplateNotFound", entityKey));
                         }
 
-                        if (!publisher.isOwner((UddiEntity) obj)) {
+                        if (!publisher.isOwner((UddiEntity) obj) && !((Publisher) publisher).isAdmin() ) {
                                 throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
                         }
 
@@ -260,7 +260,7 @@ public class ValidatePublish extends Val
                                 throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.TModelNotFound", entityKey));
                         }
 
-                        if (!publisher.isOwner((UddiEntity) obj)) {
+                        if (!publisher.isOwner((UddiEntity) obj) && !((Publisher) publisher).isAdmin() ) {
                                 throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
                         }
 
@@ -1490,9 +1490,12 @@ public class ValidatePublish extends Val
 
         }
 
-        /*-------------------------------------------------------------------
-         Publishing API functions are specific to jUDDI.
-         --------------------------------------------------------------------*/
+        /**
+         * Publishing API functions are specific to jUDDI. Requires administrative privilege
+         * @param em
+         * @param body
+         * @throws DispositionReportFaultMessage 
+         */ 
         public void validateDeletePublisher(EntityManager em, DeletePublisher body) throws DispositionReportFaultMessage {
 
                 // No null input

Added: juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java?rev=1559432&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java (added)
+++ juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java Sat Jan 18 23:18:48 2014
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2014 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.juddi.api.impl;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.ws.Holder;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.Registry;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.tck.TckBindingTemplate;
+import org.apache.juddi.v3.tck.TckBusiness;
+import org.apache.juddi.v3.tck.TckBusinessService;
+import org.apache.juddi.v3.tck.TckPublisher;
+import org.apache.juddi.v3.tck.TckSecurity;
+import org.apache.juddi.v3.tck.TckTModel;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Assume;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.Name;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
+
+/**
+ *
+ * @author Alex O'Ree
+ */
+public class API_099_LoadTests {
+
+        private static Log logger = LogFactory.getLog(API_080_SubscriptionTest.class);
+
+        private static API_010_PublisherTest api010 = new API_010_PublisherTest();
+        private static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        private static TckBusiness tckBusiness = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        private static TckBusinessService tckBusinessService = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        private static TckBindingTemplate tckBindingTemplate = new TckBindingTemplate(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        UDDISubscriptionImpl sub = new UDDISubscriptionImpl();
+
+        private static String authInfoJoe = null;
+        private static String authInfoSam = null;
+
+        @BeforeClass
+        public static void setup() throws ConfigurationException {
+                Registry.start();
+                logger.info("API_080_SubscriptionTest");
+                logger.debug("Getting auth token..");
+                try {
+                        api010.saveJoePublisher();
+                        authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+                } catch (RemoteException e) {
+                        logger.error(e.getMessage(), e);
+                        Assert.fail("Could not obtain authInfo token.");
+                }
+
+        }
+
+        @AfterClass
+        public static void stopRegistry() throws ConfigurationException {
+                tckTModel.deleteCreatedTModels(authInfoJoe);
+                Registry.stop();
+        }
+
+        @Test
+        public void joePublisher() throws Exception {
+                Assume.assumeTrue(TckPublisher.isLoadTest());
+                List<String> keys = new ArrayList<String>();
+                for (int i = 0; i < 1000; i++) {
+                        Holder<List<Subscription>> items = new Holder<List<Subscription>>();
+                        items.value = new ArrayList<Subscription>();
+                        Subscription s = new Subscription();
+                        s.setSubscriptionFilter(new SubscriptionFilter());
+                        s.getSubscriptionFilter().setFindBusiness(new FindBusiness());
+                        s.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers());
+                        s.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        s.getSubscriptionFilter().getFindBusiness().getName().add(new Name(UDDIConstants.WILDCARD, null));
+                        items.value.add(s);
+                        sub.saveSubscription(authInfoJoe, items);
+                        keys.add(items.value.get(0).getSubscriptionKey());
+                }
+                List<Subscription> subscriptions = sub.getSubscriptions(authInfoJoe);
+                Assert.assertEquals(subscriptions.size(), keys.size());
+        }
+
+}

Modified: juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java?rev=1559432&r1=1559431&r2=1559432&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java (original)
+++ juddi/trunk/juddiv3-war/src/main/java/org/apache/juddi/webconsole/hub/UddiAdminHub.java Sat Jan 18 23:18:48 2014
@@ -23,6 +23,8 @@ import java.net.URL;
 import java.rmi.RemoteException;
 import java.util.Map;
 import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
@@ -38,14 +40,19 @@ import org.apache.commons.configuration.
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api_v3.Clerk;
+import org.apache.juddi.api_v3.ClerkDetail;
 import org.apache.juddi.api_v3.ClientSubscriptionInfoDetail;
 import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
 import org.apache.juddi.api_v3.DeletePublisher;
 import org.apache.juddi.api_v3.GetAllPublisherDetail;
 import org.apache.juddi.api_v3.GetPublisherDetail;
+import org.apache.juddi.api_v3.Node;
 import org.apache.juddi.api_v3.Publisher;
 import org.apache.juddi.api_v3.PublisherDetail;
+import org.apache.juddi.api_v3.SaveClerk;
 import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
+import org.apache.juddi.api_v3.SaveNode;
 import org.apache.juddi.api_v3.SavePublisher;
 import org.apache.juddi.api_v3.SyncSubscription;
 import org.apache.juddi.api_v3.SyncSubscriptionDetail;
@@ -309,7 +316,7 @@ public class UddiAdminHub {
                                 return delete_ClientSubscriptionInfo(parameters);
                         }
                         if (action.equalsIgnoreCase("delete_publisher")) {
-                                delete_publisher(parameters);
+                                return delete_publisher(parameters);
                         }
                         if (action.equalsIgnoreCase("getAllPublisherDetail")) {
                                 return getAllPublisherDetail(parameters);
@@ -321,13 +328,13 @@ public class UddiAdminHub {
                                 return invoke_SyncSubscription(parameters);
                         }
                         if (action.equalsIgnoreCase("save_Clerk")) {
-                                //    return save_Clerk(parameters);
+                                //return save_Clerk(parameters);
                         }
                         if (action.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
                                 return save_ClientSubscriptionInfo(parameters);
                         }
                         if (action.equalsIgnoreCase("save_Node")) {
-                                //    return save_Node(parameters);
+                                return save_Node(parameters);
                         }
                         if (action.equalsIgnoreCase("save_publisher")) {
                                 return save_publisher(parameters);
@@ -335,9 +342,80 @@ public class UddiAdminHub {
                 } catch (Exception ex) {
                         return "Error!" + HandleException(ex);
                 }
-                return "error!";
+                return "not yet implemented!";
         }
 
+        private String save_Clerk(HttpServletRequest parameters) {
+                SaveClerk sc = new SaveClerk();
+                sc.setAuthInfo(GetToken());
+                Clerk c = new Clerk();
+                c.setName(parameters.getParameter("CLERKsetName"));
+                //c.setNode(getNode(parameters.getParameter("CLERKsetNode")));
+                c.setPassword(parameters.getParameter("CLERKsetPassword"));
+                c.setPublisher(parameters.getParameter("CLERKsetPublisher"));
+                
+                sc.getClerk().add(c);
+                try {
+                        juddi.saveClerk(sc);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sc.setAuthInfo(GetToken());
+                                try {
+                                        juddi.saveClerk(sc);
+                                } catch (Exception ex1) {
+                                        return "Error!" + HandleException(ex1);
+                                }
+
+                        } else {
+                                return "Error!" + HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+        private String save_Node(HttpServletRequest parameters) {
+                SaveNode sn = new SaveNode();
+                sn.setAuthInfo(GetToken());
+                Node node = new Node();
+                node.setClientName(parameters.getParameter("NODEsetClientName"));
+                node.setCustodyTransferUrl(parameters.getParameter("NODEsetCustodyTransferUrl"));
+                node.setDescription(parameters.getParameter("NODEsetDescription"));
+                node.setFactoryInitial(parameters.getParameter("NODEsetFactoryInitial"));
+                node.setFactoryNamingProvider(parameters.getParameter("NODEsetFactoryNamingProvider"));
+                node.setFactoryURLPkgs(parameters.getParameter("NODEsetFactoryURLPkgs"));
+                node.setInquiryUrl(parameters.getParameter("NODEsetInquiryUrl"));
+                node.setJuddiApiUrl(parameters.getParameter("NODEsetJuddiApiUrl"));
+                node.setName(parameters.getParameter("NODEsetName"));
+                node.setProxyTransport(parameters.getParameter("NODEsetProxyTransport"));
+                node.setPublishUrl(parameters.getParameter("NODEsetPublishUrl"));
+                node.setReplicationUrl(parameters.getParameter("NODEsetReplicationUrl"));
+                node.setSecurityUrl(parameters.getParameter("NODEsetSecurityUrl"));
+                node.setSubscriptionListenerUrl(parameters.getParameter("NODEsetSubscriptionListenerUrl"));
+                node.setSubscriptionUrl(parameters.getParameter("NODEsetSubscriptionUrl"));
+                sn.getNode().add(node);
+
+                try {
+                        juddi.saveNode(sn);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sn.setAuthInfo(GetToken());
+                                try {
+                                        juddi.saveNode(sn);
+                                } catch (Exception ex1) {
+                                        return "Error!" + HandleException(ex1);
+                                }
+
+                        } else {
+                                return "Error!" + HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+      
+
         public enum AuthStyle {
 
                 /**
@@ -382,7 +460,7 @@ public class UddiAdminHub {
                 return token;
         }
 
-        private void delete_publisher(HttpServletRequest parameters) throws Exception {
+        private String delete_publisher(HttpServletRequest parameters) {
                 DeletePublisher sb = new DeletePublisher();
                 sb.setAuthInfo(GetToken());
                 sb.getPublisherId().add(parameters.getParameter("delete_publisherKEY"));
@@ -392,12 +470,17 @@ public class UddiAdminHub {
                         if (isExceptionExpiration(ex)) {
                                 token = null;
                                 sb.setAuthInfo(GetToken());
-                                juddi.deletePublisher(sb);
+                                try {
+                                        juddi.deletePublisher(sb);
+                                } catch (Exception e) {
+                                        return HandleException(e);
+                                }
 
                         } else {
-                                throw ex;
+                                return HandleException(ex);
                         }
                 }
+                return "Success";
         }
 
         private String getAllPublisherDetail(HttpServletRequest parameters) {

Modified: juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml?rev=1559432&r1=1559431&r2=1559432&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml (original)
+++ juddi/trunk/juddiv3-war/src/main/resources/META-INF/uddi.xml Sat Jan 18 23:18:48 2014
@@ -11,7 +11,7 @@
                 <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
                 <custodyTransferUrl>http://localhost:8080/juddiv3/services/custody-transfer</custodyTransferUrl>
                 <inquiryUrl>http://localhost:8080/juddiv3/services/inquiry</inquiryUrl>
-				<inquiryRESTUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiryRest</inquiryRESTUrl>
+				<inquiryRESTUrl>http://localhost:8080/juddiv3/services/inquiryRest</inquiryRESTUrl>
                 <publishUrl>http://localhost:8080/juddiv3/services/publish</publishUrl>
                 <securityUrl>http://localhost:8080/juddiv3/services/security</securityUrl>
                 <subscriptionUrl>http://localhost:8080/juddiv3/services/subscription</subscriptionUrl>

Modified: juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web.properties?rev=1559432&r1=1559431&r2=1559432&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web.properties (original)
+++ juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web.properties Sat Jan 18 23:18:48 2014
@@ -330,3 +330,39 @@ actions.approve=Approve
 navbar.create.serviceimport=Register Services from WSDL
 navbar.create.serviceimport.tooltip=Based on the UDDI TC, Using WSDL in a UDDI Registry
 warning.ssl=Warning, you're not using SSL and your password could be exposed!
+pages.home.title=jUDDI Administration
+pages.home.config=Configure jUDDI
+pages.home.stats=Status and Statistics
+pages.home.stats.content=Find out how busy jUDDI is.
+pages.home.admin=Administration
+pages.home.admin.content=Administration options, such as deleting entities.
+items.statistics=Statistics
+items.happyjuddi=Happy jUDDI
+pages.configure.info=Just click to edit each field, then click save when you are done. (Not all fields can be modified)
+pages.configure.server=Server Config
+pages.configure.admin=Admin Console Config (this web site)
+page.config.debug=Show Debug Information
+pages.config.add=Add a new setting
+pages.config.add.note=Note: the key must start with either client., config.props, or juddi.
+pages.config.savefailed=Save Failed!
+pages.admin.content=This page lets you access the jUDDI Web Service. Its functions are outside the scope of the UDDI specification and provide basic administrative functions for managing your UDDI node. <br><br><b>You'll need to be logged (top right) in order to do anything.</b><br> Please select an item from the drop down menu.
+pages.admin.notes=* For items that require XML input, leave the UDDI authentication token blank. It will be populated automatically.
+actions.go=Go!
+items.results=Results
+items.enable=Enabled
+items.noinput=No input required.
+items.noauthtoken=Leave authToken blank
+max.bindings.per.service=Maximum Bindings per Service
+max.services.per.business=Maximum Services per Business
+max.business=Maximum Businesses
+max.tmodel=Maximum tModels
+pages.admin.max=If the maximum value is not defined, then it defaults to the server's default maximum settings. If the maximum value is -1, then the there are no limits.
+items.inquiry=Inquiry
+items.publish=Publish
+items.security=Security
+items.subscription=Subscription
+items.subscription.list=Subscription Listener
+items.custodytransfer=Custody Transfer
+items.replication=Replication
+items.transport=Transport
+items.clientname=Client Name

Modified: juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties?rev=1559432&r1=1559431&r2=1559432&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties (original)
+++ juddi/trunk/juddiv3-war/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties Sat Jan 18 23:18:48 2014
@@ -331,3 +331,39 @@ actions.approve=Aprobar
 navbar.create.serviceimport=Registro de Servicios de WSDL
 navbar.create.serviceimport.tooltip=Basado en el UDDI TC, utilizando WSDL en un registro UDDI
 warning.ssl=Atenci\u00f3n, usted no est\u00e1 usando SSL y su clave podr\u00eda estar expuesto!
+pages.home.title=Administraci\u00f3n jUDDI
+pages.home.config=Configurar jUDDI
+pages.home.stats=Estado y estad\u00edsticas
+pages.home.stats.content=Descubra c\u00f3mo ocupado jUDDI es.
+pages.home.admin=Administraci\u00f3n
+pages.home.admin.content=Opciones de administraci\u00f3n, tales como la supresi\u00f3n de entidades.
+items.statistics=Estad\u00edstica
+items.happyjuddi=jUDDI felices
+pages.configure.info=Basta con hacer clic para editar cada campo, haga clic en Guardar cuando haya terminado. (No todos los campos se pueden modificar)
+pages.configure.server=Server Config
+pages.configure.admin=Consola de administraci\u00f3n de configuraci\u00f3n (este sitio web)
+page.config.debug=Mostrar informaci\u00f3n de depuraci\u00f3n
+pages.config.add=A\u00f1adir un nuevo ajuste
+pages.config.add.note=Nota: la clave debe empezar con el cliente, config.props o jUDDI.
+pages.config.savefailed=Save Failed!
+pages.admin.content=Esta p\u00e1gina le permite acceder al Servicio Web jUDDI. Entre sus funciones se encuentran fuera del alcance de la especificaci\u00f3n UDDI y proporcionan funciones administrativas b\u00e1sicas para la gesti\u00f3n de su nodo UDDI. <br> <b> Tendr\u00e1 que estar conectado (arriba a la derecha) con el fin de hacer cualquier cosa. </ b> <br> Por favor, seleccione un elemento de la lista desplegable.
+pages.admin.notes=* Para los art\u00edculos que requieren la entrada XML, deje la autenticaci\u00f3n de UDDI en blanco token. Se rellena autom\u00e1ticamente.
+actions.go=Ejecutar!
+items.results=Resultados
+items.enable=Habilitado
+items.noinput=No requiere entrada.
+items.noauthtoken=Deja authToken blanco
+max.bindings.per.service=M\u00e1ximos encuadernaci\u00f3ns por servicio
+max.services.per.business=M\u00e1ximos servicios por empresa
+max.business=M\u00e1ximos Empresas
+max.tmodel=M\u00e1ximos tModels
+pages.admin.max=Si el valor m\u00e1ximo no est\u00e1 definido, entonces el valor predeterminado es la configuraci\u00f3n por defecto m\u00e1ximas del servidor. Si el valor m\u00e1ximo es -1, entonces el que no hay l\u00edmites.
+items.inquiry=Coroner
+items.publish=Publicar
+items.security=Seguridad
+items.subscription=Suscripci\u00f3n
+items.subscription.list=Listener Suscripci\u00f3n
+items.custodytransfer=Transferencia de Custodia
+items.replication=Replicaci\u00f3n
+items.transport=Transporte
+items.clientname=Nombre del Cliente



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