From ced8c65cd93bf905e17735ab4013e2088364cfea Mon Sep 17 00:00:00 2001 From: Brian Rosenberger Date: Sun, 14 Feb 2010 09:25:26 +0000 Subject: [PATCH] Added sendMail operation to MiscService git-svn-id: https://brutex.net/svn/xservices/trunk@22 e7e49efb-446e-492e-b9ec-fcafc1997a86 --- .../brutex/xservices/types/AntProperty.java | 23 +++++++- .../brutex/xservices/types/MailMimeType.java | 54 +++++++++++++++++++ .../net/brutex/xservices/ws/MiscService.java | 15 ++++++ .../brutex/xservices/ws/MiscServiceImpl.java | 25 +++++++++ 4 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 src/java/net/brutex/xservices/types/MailMimeType.java diff --git a/src/java/net/brutex/xservices/types/AntProperty.java b/src/java/net/brutex/xservices/types/AntProperty.java index 5d02a84..8e58899 100644 --- a/src/java/net/brutex/xservices/types/AntProperty.java +++ b/src/java/net/brutex/xservices/types/AntProperty.java @@ -22,18 +22,31 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; /** + * Generic key/ value pairs. * - * @author brian + * @author Brian Rosenberger */ @XmlRootElement public class AntProperty { + /** + * Key of the entry. + */ @XmlElement(required=true) public String name =""; + /** + * Value of the entry. + */ @XmlElement(required=true) public String value=""; + /** + * Converts a Map<String, String> into a list of + * AntProperties. + * @param map The map to convert + * @return A list of key/value pairs + */ public static List createAntPropertyList(Map map) { List list = new ArrayList(); for(Map.Entry e : map.entrySet()) { @@ -42,11 +55,19 @@ public class AntProperty { return list; } + /** + * Creates a new AntProperty. + * @param name + * @param value + */ public AntProperty(String name, String value) { this.name = name; this.value = value; } + /** + * Creates a new AntProperty. + */ public AntProperty() { } diff --git a/src/java/net/brutex/xservices/types/MailMimeType.java b/src/java/net/brutex/xservices/types/MailMimeType.java new file mode 100644 index 0000000..941cf53 --- /dev/null +++ b/src/java/net/brutex/xservices/types/MailMimeType.java @@ -0,0 +1,54 @@ +/* + * Copyright 2010 Brian Rosenberger (Brutex Network) + * + * 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 net.brutex.xservices.types; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; + +/** + * MIME types for email messages. + * This type restricts the mime types to be used within the + * email body. + * + * @author Brian Rosenberger, bru@brutex.de + */ +@XmlEnum(value = String.class) +public enum MailMimeType { + + /** + * Plain text. + */ + @XmlEnumValue("text/plain") + PLAIN("text/plain"), + /** + * HTML + */ + @XmlEnumValue("text/html") + HTML("text/html"); + private String value; + + MailMimeType(String value) { + this.value = value; + } + + /** + * Return the value of the enum. + * @return String representation of the mime type + */ + public String value() { + return value; + } +} diff --git a/src/java/net/brutex/xservices/ws/MiscService.java b/src/java/net/brutex/xservices/ws/MiscService.java index 91196b1..d2c3100 100644 --- a/src/java/net/brutex/xservices/ws/MiscService.java +++ b/src/java/net/brutex/xservices/ws/MiscService.java @@ -20,6 +20,7 @@ import javax.jws.WebParam; import javax.jws.WebService; import net.brutex.xservices.types.FileSetResource; import net.brutex.xservices.types.HostConnection; +import net.brutex.xservices.types.MailMimeType; import net.brutex.xservices.types.ReturnCode; import net.brutex.xservices.util.BrutexNamespaces; @@ -48,6 +49,20 @@ public interface MiscService { @WebParam(name = "message") String message, @WebParam(name = "attachments") FileSetResource res); + @WebMethod(operationName = "sendMail") + public ReturnCode sendMail(@WebParam(name = "mailhost") HostConnection mailhost, + @WebParam(name = "from") String from, + @WebParam(name = "to") String tolist, + @WebParam(name = "cc") String cclist, + @WebParam(name = "bcc") String bcclist, + @WebParam(name = "subject") String subject, + @WebParam(name = "mimetype") MailMimeType mimetype, + @WebParam(name = "charset") String charset, + @WebParam(name = "message") String message, + @WebParam(name = "attachments") FileSetResource res, + @WebParam(name = "useSSL") boolean ssl, + @WebParam(name = "useStartTLS") boolean tls); + @WebMethod(operationName = "sleep") public ReturnCode sleep(@WebParam(name = "minutes") int minutes, @WebParam(name = "seconds") int seconds); diff --git a/src/java/net/brutex/xservices/ws/MiscServiceImpl.java b/src/java/net/brutex/xservices/ws/MiscServiceImpl.java index 64c8192..0cae2b9 100644 --- a/src/java/net/brutex/xservices/ws/MiscServiceImpl.java +++ b/src/java/net/brutex/xservices/ws/MiscServiceImpl.java @@ -19,6 +19,7 @@ package net.brutex.xservices.ws; import javax.jws.WebService; import net.brutex.xservices.types.FileSetResource; import net.brutex.xservices.types.HostConnection; +import net.brutex.xservices.types.MailMimeType; import net.brutex.xservices.types.ReturnCode; import net.brutex.xservices.util.RunTask; import org.apache.tools.ant.taskdefs.HostInfo; @@ -77,6 +78,30 @@ public class MiscServiceImpl implements MiscService { false); } + public ReturnCode sendMail(HostConnection mailhost, String from, String tolist, + String cclist, String bcclist, String subject, + MailMimeType mimetype, String charset, String message, + FileSetResource res, boolean ssl, boolean tls) { + return sendMail(from, + from, + tolist, + cclist, + bcclist, + subject, + message, + mimetype.value(), + res, + mailhost.hostname, + mailhost.port, + mailhost.user, + mailhost.password, + charset, + tls, + ssl); + } + + + public ReturnCode sleep(int minutes, int seconds) {