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