Added sendMail operation to MiscService

git-svn-id: https://brutex.net/svn/xservices/trunk@22 e7e49efb-446e-492e-b9ec-fcafc1997a86
tag-20130205r
Brian Rosenberger 2010-02-14 09:25:26 +00:00
parent 87e0ca8511
commit ced8c65cd9
4 changed files with 116 additions and 1 deletions

View File

@ -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<AntProperty> createAntPropertyList(Map<String, String> map) {
List<AntProperty> list = new ArrayList<AntProperty>();
for(Map.Entry<String, String> 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() {
}

View File

@ -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;
}
}

View File

@ -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);

View File

@ -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) {