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