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/02/20 13:32:26 UTC

git commit: JUDDI-773 done JUDDI-857 fixed

Repository: juddi
Updated Branches:
  refs/heads/master 1ac9e9d65 -> bff4c5638


JUDDI-773 done
JUDDI-857 fixed


Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/bff4c563
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/bff4c563
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/bff4c563

Branch: refs/heads/master
Commit: bff4c56389d3f8ca988261ceb634c5d11dceb66a
Parents: 1ac9e9d
Author: alex <sp...@gmail.com>
Authored: Thu Feb 20 07:32:01 2014 -0500
Committer: alex <sp...@gmail.com>
Committed: Thu Feb 20 07:32:01 2014 -0500

----------------------------------------------------------------------
 .../juddi/subscription/notify/SMTPNotifier.java |   3 +-
 .../notify/USERFRIENDLYSMTPNotifier.java        | 191 +++++++++++++++++++
 .../apache/juddi/webconsole/hub/UddiHub.java    |   4 +
 juddi-gui/src/main/webapp/editSubscription.jsp  |   2 +-
 .../src/main/webapp/quickref_tmodelinstance.jsp |   1 +
 5 files changed, 199 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/bff4c563/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 af83934..b0c684c 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
@@ -24,6 +24,7 @@ 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;
@@ -142,7 +143,7 @@ public class SMTPNotifier implements Notifier {
 				String subscriptionResultXML = JAXBMarshaller.marshallToString(body, JAXBMarshaller.PACKAGE_SUBSCR_RES);
 				message.setText(subscriptionResultXML, "UTF-8");
                                 //message.setContent(subscriptionResultXML, "text/xml; charset=UTF-8;");
-				message.setSubject("UDDI Subscription Notification for subscription " 
+				message.setSubject(ResourceConfig.getGlobalMessage("notifications.smtp.default.subject") + " " 
 						+ body.getSubscriptionResultsList().getSubscription().getSubscriptionKey());
 				Transport.send(message);
 			}

http://git-wip-us.apache.org/repos/asf/juddi/blob/bff4c563/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
new file mode 100644
index 0000000..d0d7bd2
--- /dev/null
+++ b/juddi-core/src/main/java/org/apache/juddi/subscription/notify/USERFRIENDLYSMTPNotifier.java
@@ -0,0 +1,191 @@
+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;
+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;
+import org.uddi.sub_v3.SubscriptionResultsList;
+import org.uddi.subr_v3.NotifySubscriptionListener;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+/**
+ * This class extends the default SMTP notifier The following properties can be
+ * set in the juddiv3.xml, or as System params.
+ *
+ * "mail.smtp.from", "mail.smtp.host", "mail.smtp.port",
+ * "mail.smtp.socketFactory.class", "mail.smtp.socketFactory.fallback",
+ * "mail.smtp.starttls.enable",
+ * "mail.smtp.socketFactory.port","mail.smtp.auth","mail.smtp.user","mail.smtp.password"
+ *
+ * The following properties can be set juddiv3.xml.
+ *
+ * @author Kurt Stam
+ */
+public class USERFRIENDLYSMTPNotifier extends SMTPNotifier {
+
+        public USERFRIENDLYSMTPNotifier(BindingTemplate bindingTemplate) throws URISyntaxException, Exception {
+                super(bindingTemplate);
+                publisherName = bindingTemplate.getAuthorizedName();
+        }
+
+        String publisherName;
+
+        @Override
+        public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) throws DispositionReportFaultMessage, RemoteException {
+
+                try {
+                        log.info("Sending notification email to " + notificationEmailAddress + " from " + getEMailProperties().getProperty("mail.smtp.from", "jUDDI"));
+                        if (session != null && notificationEmailAddress != null) {
+                                MimeMessage message = new MimeMessage(session);
+                                InternetAddress address = new InternetAddress(notificationEmailAddress);
+                                Address[] to = {address};
+                                message.setRecipients(RecipientType.TO, to);
+                                message.setFrom(new InternetAddress(getEMailProperties().getProperty("mail.smtp.from", "jUDDI")));
+                                //maybe nice to use a template rather then sending raw xml.
+                                String subscriptionResultXML = JAXBMarshaller.marshallToString(body, JAXBMarshaller.PACKAGE_SUBSCR_RES);
+                                Multipart mp = new MimeMultipart();
+                                
+                                MimeBodyPart content = new MimeBodyPart();
+                                String msg_content = ResourceConfig.getGlobalMessage("notifications.smtp.userfriendly.body");
+
+                                msg_content = String.format(msg_content,
+                                     StringEscapeUtils.escapeHtml(this.publisherName),
+                                     StringEscapeUtils.escapeHtml(AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID, "(unknown node id!)")),
+                                     GetSubscriptionType(body),
+                                     GetChangeSummary(body));
+                                
+                                content.setContent(msg_content, "text/html; charset=UTF-8;");
+                                mp.addBodyPart(content);
+                                
+                                MimeBodyPart attachment = new MimeBodyPart();
+                                attachment.setContent(subscriptionResultXML, "text/xml; charset=UTF-8;");
+                                attachment.setFileName("uddiNotification.xml");
+                                mp.addBodyPart(attachment);
+                                
+                                message.setContent(mp);
+                                message.setSubject(ResourceConfig.getGlobalMessage("notifications.smtp.userfriendly.subject") + " "
+                                     + body.getSubscriptionResultsList().getSubscription().getSubscriptionKey());
+                                Transport.send(message);
+                        }
+                } catch (Exception e) {
+                        log.error(e.getMessage(), e);
+                        throw new DispositionReportFaultMessage(e.getMessage(), null);
+                }
+
+                DispositionReport dr = new DispositionReport();
+                Result res = new Result();
+                dr.getResult().add(res);
+
+                return dr;
+        }
+
+        static String GetChangeSummary(NotifySubscriptionListener body) {
+                SubscriptionResultsList r = body.getSubscriptionResultsList();
+                StringWriter sw = new StringWriter();
+                
+                if (r.getAssertionStatusReport() != null) {
+                        JAXB.marshal(r.getAssertionStatusReport(), sw);
+                }
+                else if (r.getBindingDetail() != null) {
+                        JAXB.marshal(r.getBindingDetail(), sw);
+                }
+                else if (r.getBusinessDetail() != null) {
+                        JAXB.marshal(r.getBusinessDetail(), sw);
+                }
+                else if (r.getBusinessList() != null) {
+                        JAXB.marshal(r.getBusinessList(), sw);
+                }
+                else if (r.getRelatedBusinessesList() != null) {
+                        JAXB.marshal(r.getRelatedBusinessesList(), sw);
+                }
+                else if (r.getServiceDetail() != null) {
+                        JAXB.marshal(r.getServiceDetail(), sw);
+                }
+                else if (r.getServiceList() != null) {
+                        JAXB.marshal(r.getServiceList(), sw);
+                }
+                else if (r.getTModelDetail() != null) {
+                        JAXB.marshal(r.getTModelDetail(), sw);
+                }
+                else if (r.getTModelList() != null) {
+                        JAXB.marshal(r.getTModelList(), sw);
+                }
+                
+                return "<pre>" +StringEscapeUtils.escapeHtml(sw.toString()) + "</pre>";
+        }
+
+        static String GetSubscriptionType(NotifySubscriptionListener body) {
+                if (body != null && body.getSubscriptionResultsList() != null
+                     && body.getSubscriptionResultsList().getSubscription() != null
+                     && body.getSubscriptionResultsList().getSubscription().getSubscriptionFilter() != null) {
+                        SubscriptionFilter sub = body.getSubscriptionResultsList().getSubscription().getSubscriptionFilter();
+                        if (sub.getFindBinding() != null) {
+                                return " binding search results";
+                        }
+                        if (sub.getFindBusiness() != null) {
+                                return " business search results";
+                        }
+                        if (sub.getFindRelatedBusinesses() != null) {
+                                return " related business search results";
+                        }
+                        if (sub.getFindService() != null) {
+                                return " service search results";
+                        }
+                        if (sub.getFindTModel() != null) {
+                                return " tModel search results";
+                        }
+                        if (sub.getGetAssertionStatusReport() != null) {
+                                return " assertion status report";
+                        }
+                        if (sub.getGetBindingDetail() != null) {
+                                return " details on a specific binding";
+                        }
+                        if (sub.getGetBusinessDetail() != null) {
+                                return " details on a specific business";
+                        }
+                        if (sub.getGetServiceDetail() != null) {
+                                return " details on a specific service";
+                        }
+                        if (sub.getGetTModelDetail() != null) {
+                                return " details on a specific tModel";
+                        }
+                }
+                return " (unable to determine what the subscription type is)";
+
+        }
+
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/bff4c563/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java b/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
index 60f5cd2..e91e5d0 100644
--- a/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
+++ b/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
@@ -900,6 +900,8 @@ public class UddiHub implements Serializable {
                         return null;
                 }
 
+                if (serviceid.equalsIgnoreCase(ResourceLoader.GetResource(session, "items.clicktoedit")))
+                        return null;
                 try {
                         GetServiceDetail gbd = new GetServiceDetail();
                         gbd.setAuthInfo(GetToken());
@@ -1124,6 +1126,8 @@ public class UddiHub implements Serializable {
                 if (bizid == null || bizid.isEmpty()) {
                         return null;
                 }
+                if (bizid.equalsIgnoreCase(ResourceLoader.GetResource(session, "items.clicktoedit")))
+                        return null;
 
                 try {
                         GetBusinessDetail gbd = new GetBusinessDetail();

http://git-wip-us.apache.org/repos/asf/juddi/blob/bff4c563/juddi-gui/src/main/webapp/editSubscription.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/editSubscription.jsp b/juddi-gui/src/main/webapp/editSubscription.jsp
index 6e55511..cf85d4f 100644
--- a/juddi-gui/src/main/webapp/editSubscription.jsp
+++ b/juddi-gui/src/main/webapp/editSubscription.jsp
@@ -238,7 +238,7 @@
                             <div class="<%=((sub.getBindingKey() != null && sub.getBindingKey().trim().length()>0) ? "" : " hide ")%>" id="bindingKeyDiv">
                                 <%=ResourceLoader.GetResource(session, "pages.subscription.step3.content")%>
                                 <b><%=UDDIConstants.TRANSPORT_HTTP%></b>.
-                                <input type="text" id="bindingKey" placeholder="<%=ResourceLoader.GetResource(session, "items.bindingtemplate.key")%>" style="width:360px">
+                                <input type="text" id="bindingKey" placeholder="<%=ResourceLoader.GetResource(session, "items.bindingtemplate.key")%>" style="width:360px" value="<%=(sub.getBindingKey() != null ? StringEscapeUtils.escapeHtml(sub.getBindingKey()):"")%>">
                                 <button onClick="javascript:bindingModal('bindingKey', 'val');
                                         return false;" class="btn "><%=ResourceLoader.GetResource(session, "actions.select")%></button>
                             </div>

http://git-wip-us.apache.org/repos/asf/juddi/blob/bff4c563/juddi-gui/src/main/webapp/quickref_tmodelinstance.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/quickref_tmodelinstance.jsp b/juddi-gui/src/main/webapp/quickref_tmodelinstance.jsp
index 6ebbcab..df96c85 100644
--- a/juddi-gui/src/main/webapp/quickref_tmodelinstance.jsp
+++ b/juddi-gui/src/main/webapp/quickref_tmodelinstance.jsp
@@ -24,6 +24,7 @@
                 <li><a href="javascript:AddTmodelInstanceParam('uddi:uddi.org:transport:jms');">JMS</a></li>
                 <li><a href="javascript:AddTmodelInstanceParam('uddi:uddi.org:transport:ftp');">FTP</a></li>
                 <li><a href="javascript:AddTmodelInstanceParam('uddi:uddi.org:transport:smtp');">SMTP</a></li>
+                <li><a href="javascript:AddTmodelInstanceParam('uddi:uddi.org:transport:userfriendlysmtp');">User Friendly SMTP</a></li>
                 <li><a href="javascript:AddTmodelInstanceParam('uddi:uddi.org:transport:jndi-rmi');">JNDI-RMI</a></li>
                 <li><a href="javascript:AddTmodelInstanceParam('uddi:uddi.org:transport:rmi');">RMI</a></li>
                 <li><a href="javascript:AddTmodelInstanceParam('uddi:uddi.org:transport:omgdds');">OMG DDS</a></li>


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