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/05/03 14:14:50 UTC
git commit: JUDDI-879 adding new test functions to the admin console,
including email tests. Altered the email sending notifier to throw in
case the destination email wasn't available
Repository: juddi
Updated Branches:
refs/heads/master aa0d7b5ab -> 8c61d91b7
JUDDI-879 adding new test functions to the admin console, including email tests. Altered the email sending notifier to throw in case the destination email wasn't available
Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/8c61d91b
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/8c61d91b
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/8c61d91b
Branch: refs/heads/master
Commit: 8c61d91b7631eb419db5be726eb1ef852cca56f1
Parents: aa0d7b5
Author: Alex <al...@us.army.mil>
Authored: Sat May 3 08:14:32 2014 -0400
Committer: Alex <al...@us.army.mil>
Committed: Sat May 3 08:14:32 2014 -0400
----------------------------------------------------------------------
.../org/apache/juddi/api/impl/JUDDIApiImpl.java | 136 +++++++++++++++++--
.../juddi/subscription/notify/SMTPNotifier.java | 1 +
.../notify/USERFRIENDLYSMTPNotifier.java | 17 +--
juddi-gui/src/main/webapp/home.jsp | 2 +-
.../juddi/adminconsole/hub/UddiAdminHub.java | 61 ++++++++-
juddiv3-war/src/main/webapp/admin/admin.jsp | 47 +++++++
6 files changed, 228 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/juddi/blob/8c61d91b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
index 7b0331f..a52a66e 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
@@ -18,6 +18,7 @@ package org.apache.juddi.api.impl;
import java.io.StringWriter;
import java.rmi.RemoteException;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
@@ -38,6 +39,7 @@ import org.apache.juddi.ClassUtil;
import static org.apache.juddi.api.impl.JUDDIApiImpl.sub;
import org.apache.juddi.api.util.JUDDIQuery;
import org.apache.juddi.api.util.QueryStatus;
+import org.apache.juddi.api.util.SubscriptionQuery;
import org.apache.juddi.api_v3.AdminSaveBusinessWrapper;
import org.apache.juddi.api_v3.AdminSaveTModelWrapper;
import org.apache.juddi.api_v3.Clerk;
@@ -1099,11 +1101,43 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
}*/
@Override
public void adminDeleteSubscription(String authInfo, List<String> subscriptionKey) throws DispositionReportFaultMessage, RemoteException {
+
long startTime = System.currentTimeMillis();
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(JUDDIQuery.ADMIN_DELETE_SUB,
- QueryStatus.SUCCESS, procTime);
- ValidatePublish.unsupportedAPICall();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher requestor = this.getEntityPublisher(em, authInfo);
+ if (!((Publisher) requestor).isAdmin()) {
+ throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
+ }
+ //new ValidateSubscription(publisher).validateDeleteSubscription(em, body);
+
+ List<String> subscriptionKeyList = subscriptionKey;
+ for (String key : subscriptionKeyList) {
+ if (key != null && key.length() > 0) {
+ Object obj = em.find(org.apache.juddi.model.Subscription.class, key);
+ em.remove(obj);
+ }
+ }
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(SubscriptionQuery.DELETE_SUBSCRIPTION,
+ QueryStatus.SUCCESS, procTime);
+ } catch (DispositionReportFaultMessage drfm) {
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(SubscriptionQuery.DELETE_SUBSCRIPTION,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
}
@@ -1161,12 +1195,51 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
@Override
public List<SubscriptionWrapper> getAllClientSubscriptionInfo(String authInfo) throws DispositionReportFaultMessage, RemoteException {
long startTime = System.currentTimeMillis();
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(JUDDIQuery.GET_ALL_CLIENT_SUB,
- QueryStatus.SUCCESS, procTime);
- //returns ALL client subscriptions
- ValidatePublish.unsupportedAPICall();
- return null;
+
+ List<SubscriptionWrapper> r = new ArrayList<SubscriptionWrapper>();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+ if (!((Publisher) publisher).isAdmin()) {
+ throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
+ }
+
+ StringBuilder sql = new StringBuilder();
+ sql.append("select distinct c from ReplicationConfiguration c ");
+ sql.toString();
+ Query qry = em.createQuery(sql.toString());
+ List<org.apache.juddi.model.Subscription> resultList = qry.getResultList();
+ for (int i = 0; i < resultList.size(); i++) {
+ Subscription sub = new Subscription();
+ MappingModelToApi.mapSubscription(resultList.get(i), sub);
+ SubscriptionWrapper x = new SubscriptionWrapper();
+ x.getSubscription().add(sub);
+ x.setPublisherIdOrUsername(resultList.get(i).getAuthorizedName());
+ r.add(x);
+ }
+
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(JUDDIQuery.GET_ALL_CLIENT_SUB,
+ QueryStatus.SUCCESS, procTime);
+ } catch (DispositionReportFaultMessage drfm) {
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(JUDDIQuery.GET_ALL_CLIENT_SUB,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+
+ return r;
}
@Override
@@ -1182,11 +1255,44 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
@Override
public org.uddi.repl_v3.ReplicationConfiguration getReplicationNodes(String authInfo) throws DispositionReportFaultMessage, RemoteException {
long startTime = System.currentTimeMillis();
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(JUDDIQuery.GET_REPLICATION_NODES,
- QueryStatus.SUCCESS, procTime);
- ValidatePublish.unsupportedAPICall();
- return null;
+ org.uddi.repl_v3.ReplicationConfiguration r = new org.uddi.repl_v3.ReplicationConfiguration();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+ if (!((Publisher) publisher).isAdmin()) {
+ throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
+ }
+
+ StringBuilder sql = new StringBuilder();
+ sql.append("select distinct c from ReplicationConfiguration c ");
+ sql.toString();
+ Query qry = em.createQuery(sql.toString());
+ org.apache.juddi.model.ReplicationConfiguration resultList = (org.apache.juddi.model.ReplicationConfiguration) qry.getSingleResult();
+ //for (int i = 0; i < resultList.size(); i++) {
+ MappingModelToApi.mapReplicationConfiguration(resultList, r);
+ //}
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(JUDDIQuery.GET_ALL_NODES,
+ QueryStatus.SUCCESS, procTime);
+ } catch (DispositionReportFaultMessage drfm) {
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(JUDDIQuery.GET_ALL_NODES,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+
+ return r;
}
static UDDISubscriptionImpl sub = new UDDISubscriptionImpl();
http://git-wip-us.apache.org/repos/asf/juddi/blob/8c61d91b/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java b/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
index b0c684c..50659b1 100644
--- a/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
+++ b/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
@@ -147,6 +147,7 @@ public class SMTPNotifier implements Notifier {
+ body.getSubscriptionResultsList().getSubscription().getSubscriptionKey());
Transport.send(message);
}
+ else throw new DispositionReportFaultMessage("Session is null!", null);
} catch (Exception e) {
log.error(e.getMessage(),e);
throw new DispositionReportFaultMessage(e.getMessage(), null);
http://git-wip-us.apache.org/repos/asf/juddi/blob/8c61d91b/juddi-core/src/main/java/org/apache/juddi/subscription/notify/USERFRIENDLYSMTPNotifier.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/subscription/notify/USERFRIENDLYSMTPNotifier.java b/juddi-core/src/main/java/org/apache/juddi/subscription/notify/USERFRIENDLYSMTPNotifier.java
index d0d7bd2..2c85655 100644
--- a/juddi-core/src/main/java/org/apache/juddi/subscription/notify/USERFRIENDLYSMTPNotifier.java
+++ b/juddi-core/src/main/java/org/apache/juddi/subscription/notify/USERFRIENDLYSMTPNotifier.java
@@ -3,19 +3,9 @@ package org.apache.juddi.subscription.notify;
import java.io.StringWriter;
import java.net.URISyntaxException;
import java.rmi.RemoteException;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.util.Properties;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
import javax.mail.Address;
import javax.mail.Message.RecipientType;
import javax.mail.Multipart;
-import javax.mail.PasswordAuthentication;
-import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
@@ -23,18 +13,12 @@ import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.xml.bind.JAXB;
-import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.juddi.api_v3.AccessPointType;
import org.apache.juddi.config.AppConfig;
import org.apache.juddi.config.Property;
import org.apache.juddi.config.ResourceConfig;
-import org.apache.juddi.cryptor.CryptorFactory;
import org.apache.juddi.jaxb.JAXBMarshaller;
import org.apache.juddi.model.BindingTemplate;
-import org.apache.juddi.v3.error.ErrorMessage;
import org.uddi.api_v3.DispositionReport;
import org.uddi.api_v3.Result;
import org.uddi.sub_v3.SubscriptionFilter;
@@ -101,6 +85,7 @@ public class USERFRIENDLYSMTPNotifier extends SMTPNotifier {
+ body.getSubscriptionResultsList().getSubscription().getSubscriptionKey());
Transport.send(message);
}
+ else throw new DispositionReportFaultMessage("Session is null!", null);
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new DispositionReportFaultMessage(e.getMessage(), null);
http://git-wip-us.apache.org/repos/asf/juddi/blob/8c61d91b/juddi-gui/src/main/webapp/home.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/home.jsp b/juddi-gui/src/main/webapp/home.jsp
index 2c52cd7..be7e2e7 100644
--- a/juddi-gui/src/main/webapp/home.jsp
+++ b/juddi-gui/src/main/webapp/home.jsp
@@ -14,7 +14,7 @@
<div class="hero-unit">
<h1>jUDDI</h1>
<p><%=ResourceLoader.GetResource(session, "index.juddi")%></p>
- <p><a href="#" class="btn btn-primary btn-large"><%=ResourceLoader.GetResource(session, "learnmore")%> »</a></p>
+ <p><a href="http://juddi.apache.org" class="btn btn-primary btn-large"><%=ResourceLoader.GetResource(session, "learnmore")%> »</a></p>
</div>
<!-- Example row of columns -->
http://git-wip-us.apache.org/repos/asf/juddi/blob/8c61d91b/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
----------------------------------------------------------------------
diff --git a/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java b/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
index 1de9172..b764e77 100644
--- a/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
+++ b/juddiv3-war/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
@@ -62,6 +62,8 @@ import org.apache.juddi.v3_service.JUDDIApiPortType;
import org.apache.juddi.adminconsole.AES;
import org.apache.juddi.adminconsole.resources.ResourceLoader;
import org.apache.juddi.api_v3.ClientSubscriptionInfo;
+import org.apache.juddi.model.BindingTemplate;
+import org.apache.juddi.subscription.notify.SMTPNotifier;
import org.uddi.api_v3.AuthToken;
import org.uddi.api_v3.DeleteTModel;
import org.uddi.api_v3.DiscardAuthToken;
@@ -70,6 +72,9 @@ import org.uddi.api_v3.FindBusiness;
import org.uddi.api_v3.FindQualifiers;
import org.uddi.api_v3.GetAuthToken;
import org.uddi.api_v3.Name;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionResultsList;
+import org.uddi.subr_v3.NotifySubscriptionListener;
import org.uddi.v3_service.DispositionReportFaultMessage;
import org.uddi.v3_service.UDDISecurityPortType;
@@ -341,6 +346,32 @@ public class UddiAdminHub {
if (action.equalsIgnoreCase("save_publisher")) {
return save_publisher(parameters);
}
+
+ if (action.equalsIgnoreCase("send_EmailTest")) {
+ return sendTestEmail(parameters);
+ }
+ /*if (action.equalsIgnoreCase("get_AllNodes")) {
+ }
+ if (action.equalsIgnoreCase("get_AllClerks")) {
+ }
+ if (action.equalsIgnoreCase("delete_Node")) {
+ }
+ if (action.equalsIgnoreCase("delete_Clerk")) {
+ }
+ if (action.equalsIgnoreCase("admin_DeleteSubscription")) {
+ }
+ if (action.equalsIgnoreCase("admin_SaveBusiness")) {
+ }
+ if (action.equalsIgnoreCase("admin_SaveTModel")) {
+ }
+ if (action.equalsIgnoreCase("get_AllClientSubscriptionInfo")) {
+ }
+ if (action.equalsIgnoreCase("set_ReplicationNodes")) {
+ }
+ if (action.equalsIgnoreCase("get_ReplicationNodes")) {
+ }
+ if (action.equalsIgnoreCase("admin_SaveSubscription")) {
+ }*/
} catch (Exception ex) {
return "Error!" + HandleException(ex);
}
@@ -432,6 +463,26 @@ public class UddiAdminHub {
return "Success";
}
+ private String sendTestEmail(HttpServletRequest parameters) {
+ try {
+
+ String to = parameters.getParameter("send_EmailTestEMAIL");
+ if (!to.startsWith("mailto:"))
+ to = "mailto:" + to;
+ BindingTemplate modellbt = new BindingTemplate("test", null, "endpoint", to, null, null, null, null, null);
+ org.apache.juddi.subscription.notify.SMTPNotifier smtp = new SMTPNotifier(modellbt);
+ NotifySubscriptionListener body = new NotifySubscriptionListener();
+
+ body.setSubscriptionResultsList(new SubscriptionResultsList());
+ body.getSubscriptionResultsList().setSubscription(new Subscription());
+ body.getSubscriptionResultsList().getSubscription().setSubscriptionKey("TEST");
+ smtp.notifySubscriptionListener(body);
+ return "Success";
+ } catch (Exception ex) {
+ return "Failure!" + HandleException(ex);
+ }
+ }
+
public enum AuthStyle {
/**
@@ -654,7 +705,7 @@ public class UddiAdminHub {
return null;
}
- public static String getSampleSave_ClientSubscriptionInfo(){
+ public static String getSampleSave_ClientSubscriptionInfo() {
SaveClientSubscriptionInfo x = new SaveClientSubscriptionInfo();
x.setAuthInfo("");
x.getClientSubscriptionInfo().add(new ClientSubscriptionInfo());
@@ -677,7 +728,7 @@ public class UddiAdminHub {
x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setSubscriptionListenerUrl("http://localhost:8080/juddiv3/services/subscription-listener");
x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setJuddiApiUrl("http://localhost:8080/juddiv3/services/juddi-api");
x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setReplicationUrl("http://localhost:8080/juddiv3/services/replication");
-
+
x.getClientSubscriptionInfo().get(0).getToClerk().setName("ClerkName");
x.getClientSubscriptionInfo().get(0).getToClerk().setPublisher("username");
x.getClientSubscriptionInfo().get(0).getToClerk().setPassword("password");
@@ -696,12 +747,14 @@ public class UddiAdminHub {
JAXB.marshal(x, sw);
return sw.toString();
}
+
private String save_ClientSubscriptionInfo(HttpServletRequest parameters) {
StringBuilder ret = new StringBuilder();
SaveClientSubscriptionInfo sb = new SaveClientSubscriptionInfo();
- if (parameters.getParameter("ClientSubscriptionInfoDetailXML")==null)
+ if (parameters.getParameter("ClientSubscriptionInfoDetailXML") == null) {
return "No input!";
+ }
ClientSubscriptionInfoDetail d = null;
try {
StringReader sr = new StringReader(parameters.getParameter("ClientSubscriptionInfoDetailXML").trim());
@@ -788,7 +841,7 @@ public class UddiAdminHub {
p.setIsEnabled(Boolean.parseBoolean(parameters.getParameter("savePublisherIsEnabled")));
} catch (Exception ex) {
}
-
+
PublisherDetail d = null;
sb.setAuthInfo(GetToken());
try {
http://git-wip-us.apache.org/repos/asf/juddi/blob/8c61d91b/juddiv3-war/src/main/webapp/admin/admin.jsp
----------------------------------------------------------------------
diff --git a/juddiv3-war/src/main/webapp/admin/admin.jsp b/juddiv3-war/src/main/webapp/admin/admin.jsp
index 79867cc..269539b 100644
--- a/juddiv3-war/src/main/webapp/admin/admin.jsp
+++ b/juddiv3-war/src/main/webapp/admin/admin.jsp
@@ -33,6 +33,7 @@
<div class="span12">
<% UddiAdminHub x = UddiAdminHub.getInstance(application, session);
+
%>
<%=ResourceLoader.GetResource(session, "pages.admin.content")%>
<br>
@@ -47,6 +48,19 @@
<option>save_ClientSubscriptionInfo</option>
<option>save_Node</option>
<option>save_publisher</option>
+
+ <option>send_EmailTest</option>
+ <option>get_AllNodes</option>
+ <option>get_AllClerks</option>
+ <option>delete_Node</option>
+ <option>delete_Clerk</option>
+ <option>admin_DeleteSubscription</option>
+ <option>admin_SaveBusiness</option>
+ <option>admin_SaveTModel</option>
+ <option>get_AllClientSubscriptionInfo</option>
+ <option>set_ReplicationNodes</option>
+ <option>get_ReplicationNodes</option>
+ <option>admin_SaveSubscription</option>
</select>
<div>
@@ -129,6 +143,23 @@
jUDDI API <input type="text" id="CLERKNODEsetJuddiApiUrl" class="forminput" placeholder="http://localhost:8080/juddiv3/services/juddi-api" value="http://localhost:8080/juddiv3/services/juddi-api"><br>
</div>
+
+
+
+ <div id="send_EmailTest" style="display:none">
+ <%=ResourceLoader.GetResource(session, "items.email")%> <input type="text" id="send_EmailTestEMAIL" class="forminput" placeholder="Enter email"><br>
+ </div>
+ <div id="get_AllNodes" style="display:none"></div>
+ <div id="get_AllClerks" style="display:none"></div>
+ <div id="delete_Node" style="display:none"></div>
+ <div id="delete_Clerk" style="display:none"></div>
+ <div id="admin_DeleteSubscription" style="display:none"></div>
+ <div id="admin_SaveBusiness" style="display:none"></div>
+ <div id="admin_SaveTModel" style="display:none"></div>
+ <div id="get_AllClientSubscriptionInfo" style="display:none"></div>
+ <div id="set_ReplicationNodes" style="display:none"></div>
+ <div id="get_ReplicationNodes" style="display:none"></div>
+ <div id="admin_SaveSubscription" style="display:none"></div>
</div>
<script type="text/javascript">
@@ -146,6 +177,22 @@
$("#save_publisher").hide();
$("#save_Clerk").hide();
$("#save_Node").hide();
+
+
+ $("#send_EmailTest").hide();
+ $("#get_AllNodes").hide();
+ $("#get_AllClerks").hide();
+ $("#delete_Node").hide();
+ $("#delete_Clerk").hide();
+ $("#admin_DeleteSubscription").hide();
+ $("#admin_SaveBusiness").hide();
+ $("#admin_SaveTModel").hide();
+ $("#get_AllClientSubscriptionInfo").hide();
+ $("#set_ReplicationNodes").hide();
+ $("#get_ReplicationNodes").hide();
+ $("#admin_SaveSubscription").hide();
+
+
$("#" + x).show();
}
toggledivs();//run when the page loads
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org