You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by jf...@apache.org on 2009/07/03 01:12:34 UTC

svn commit: r790759 - in /webservices/juddi/branches/v3_trunk: juddi-core/src/main/java/org/apache/juddi/api/impl/ juddi-core/src/main/java/org/apache/juddi/validation/ juddi-core/src/main/resources/ uddi-ws/src/main/java/org/apache/juddi/v3_service/

Author: jfaath
Date: Thu Jul  2 23:12:34 2009
New Revision: 790759

URL: http://svn.apache.org/viewvc?rev=790759&view=rev
Log:
JUDDI-218:  adding the administrative deletion of tmodels which deletes them entirely.  Specific to juddi.

Modified:
    webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
    webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
    webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages.properties
    webservices/juddi/branches/v3_trunk/uddi-ws/src/main/java/org/apache/juddi/v3_service/JUDDIApiPortType.java

Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java?rev=790759&r1=790758&r2=790759&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java Thu Jul  2 23:12:34 2009
@@ -40,6 +40,7 @@
 import org.apache.juddi.v3_service.JUDDIApiPortType;
 import org.apache.juddi.validation.ValidatePublish;
 import org.apache.juddi.validation.ValidatePublisher;
+import org.uddi.api_v3.DeleteTModel;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 
 /**
@@ -204,5 +205,33 @@
 		}
 	}
 
+	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();
+		}
+}
+
+	
 	
 }

Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java?rev=790759&r1=790758&r2=790759&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java Thu Jul  2 23:12:34 2009
@@ -956,7 +956,7 @@
 	}
 	
 	/*-------------------------------------------------------------------
-	 Publisher functions are specific to jUDDI.
+	 Publishing API functions are specific to jUDDI.
 	 --------------------------------------------------------------------*/
 	
 	public void validateDeletePublisher(EntityManager em, DeletePublisher body) throws DispositionReportFaultMessage {
@@ -1021,4 +1021,34 @@
 
 	}
 	
+	public void validateAdminDeleteTModel(EntityManager em, DeleteTModel body) throws DispositionReportFaultMessage {
+
+		// No null input
+		if (body == null)
+			throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+		
+		// No null or empty list
+		List<String> entityKeyList = body.getTModelKey();
+		if (entityKeyList == null || entityKeyList.size() == 0)
+			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+		
+		if (!((Publisher)publisher).isAdmin())
+			throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
+
+		HashSet<String> dupCheck = new HashSet<String>();
+		for (String entityKey : entityKeyList) {
+			boolean inserted = dupCheck.add(entityKey);
+			if (!inserted)
+				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
+			
+			Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
+			if (obj == null)
+				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.TModelNotFound", entityKey));
+			
+			if (!publisher.isOwner((UddiEntity)obj))
+				throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
+			
+		}
+	}
+	
 }

Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages.properties?rev=790759&r1=790758&r2=790759&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages.properties (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages.properties Thu Jul  2 23:12:34 2009
@@ -167,7 +167,8 @@
 errors.subscriptionnotifier.client=Client did not receive notification data
 errors.getregisteredinfo.NoInfoSelection=The infoSelection argument is required
 
-#-- jUDDI-specific publisher messages
+#-- jUDDI-specific API messages
+errors.AdminReqd=An account must have administrative privileges to perform this function
 errors.savepublisher.NoInput=At least one Publisher must be provided
 errors.savepublisher.AdminReqd=An account must have administrative privileges to save publishers
 errors.deletepublisher.AdminReqd=An account must have administrative privileges to delete publishers

Modified: webservices/juddi/branches/v3_trunk/uddi-ws/src/main/java/org/apache/juddi/v3_service/JUDDIApiPortType.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-ws/src/main/java/org/apache/juddi/v3_service/JUDDIApiPortType.java?rev=790759&r1=790758&r2=790759&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-ws/src/main/java/org/apache/juddi/v3_service/JUDDIApiPortType.java (original)
+++ webservices/juddi/branches/v3_trunk/uddi-ws/src/main/java/org/apache/juddi/v3_service/JUDDIApiPortType.java Thu Jul  2 23:12:34 2009
@@ -32,6 +32,7 @@
 import org.apache.juddi.api_v3.GetPublisherDetail;
 import org.apache.juddi.api_v3.PublisherDetail;
 import org.apache.juddi.api_v3.SavePublisher;
+import org.uddi.api_v3.DeleteTModel;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 
 
@@ -63,7 +64,7 @@
     @WebMethod(operationName = "delete_publisher", action = "delete_publisher")
     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
     public void deletePublisher(
-        @WebParam(name = "delete_binding", targetNamespace = "urn:apache-org:juddi_api_v3", partName = "body")
+        @WebParam(name = "delete_publisher", targetNamespace = "urn:apache-org:juddi_api_v3", partName = "body")
         DeletePublisher body)
         throws DispositionReportFaultMessage, RemoteException
     ;
@@ -99,6 +100,19 @@
         throws DispositionReportFaultMessage, RemoteException
     ;
 
+
+    /**
+     * 
+     * @param body
+     * @throws DispositionReportFaultMessage, RemoteException
+     */
+    @WebMethod(operationName = "adminDelete_tmodel", action = "adminDelete_tmodel")
+    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+    public void adminDeleteTModel(
+        @WebParam(name = "adminDelete_tmodel", targetNamespace = "urn:apache-org:juddi_api_v3", partName = "body")
+        DeleteTModel body)
+        throws DispositionReportFaultMessage, RemoteException
+    ;
     
 }
 
\ No newline at end of file



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