/xservices/trunk/src/java/net/brutex/xservices/agent/AgentServlet.java |
---|
File deleted |
Property changes: |
Deleted: svn:mime-type |
-text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/types/DateInfoExtendedType.java |
---|
File deleted |
Property changes: |
Deleted: svn:mime-type |
-text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/types/DateInfoType.java |
---|
File deleted |
Property changes: |
Deleted: svn:mime-type |
-text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/types/TimeZoneType.java |
---|
File deleted |
Property changes: |
Deleted: svn:mime-type |
-text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/types/DateTimeUnits.java |
---|
53,11 → 53,8 |
* days |
*/ |
@XmlEnumValue("days") |
DAYS("days"), |
DAYS("days"); |
@XmlEnumValue("years") |
YEARS("years"); |
private String value; |
DateTimeUnits(String value) { |
/xservices/trunk/src/java/net/brutex/xservices/types/DateFormatType.java |
---|
15,54 → 15,34 |
*/ |
package net.brutex.xservices.types; |
import java.text.ParseException; |
import java.text.SimpleDateFormat; |
import java.util.Date; |
import java.util.Locale; |
import java.util.TimeZone; |
import javax.xml.bind.annotation.XmlEnum; |
import javax.xml.bind.annotation.XmlEnumValue; |
import javax.xml.bind.annotation.XmlType; |
import net.brutex.xservices.util.BrutexNamespaces; |
/** |
* Different pre-defined date formats. |
* |
* @author Brian Rosenberger, bru@brutex.de |
*/ |
@XmlEnum() |
@XmlEnum(value = String.class) |
public enum DateFormatType { |
/** |
* ISO 8601 format (2011-05-24T14:39+01:00) |
* ISO 8601 format (2011-05-24T14:39Z) |
*/ |
@XmlEnumValue("ISO 8601") |
ISO8601("ISO 8601", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"), |
ISO8601("ISO 8601", "yyyy-MM-dd'T'HH:mm:ssZ"), |
/** |
* RFC822 format (2011-05-24T14:39+0100) |
*/ |
@XmlEnumValue("RFC 822") |
RFC822("RFC 822", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"), |
/** |
* yyyy/mm/dd |
*/ |
@XmlEnumValue("DateOnly-slashed") |
YYYYMMDD("DateOnly-slashed", "yyyy/MM/dd"), |
@XmlEnumValue("yyyy/mm/dd") |
YYYYMMDD("yyyy/mm/dd", "yyyy/MM/dd"), |
/** |
* dd.mm.yyyy |
*/ |
@XmlEnumValue("DateOnly-dotted") |
DDMMYYYY("DateOnly-dotted", "dd.MM.yyyy"), |
@XmlEnumValue("dd.mm.yyyy") |
DDMMYY("dd.mm.yyyy", "dd.MM.yyyy"); |
/** |
* dd.mm.yyyy |
*/ |
@XmlEnumValue("DateOnly-dashed") |
DDMMYYYYdashed("DateOnly-dashed", "dd-MM-yyyy"); |
private String value; |
private String format; |
79,33 → 59,7 |
return value; |
} |
public String format(Date date, Locale locale, TimeZone timezone) { |
if(date==null) return ""; |
if(locale==null) locale = Locale.getDefault(); |
if(timezone==null) timezone = TimeZone.getDefault(); |
String result = ""; |
SimpleDateFormat f; |
if(this.equals(ISO8601)) { |
//apply ISO8061 hack |
f = new SimpleDateFormat(RFC822.format, locale); |
f.setTimeZone(timezone); |
result = f.format(date); |
result = result.substring(0, 26) + ":" + result.substring(26); |
} else { |
f = new SimpleDateFormat(this.format, locale); |
f.setTimeZone(timezone); |
result = f.format(date); |
public String format() { |
return format; |
} |
return result; |
} |
public Date parse(String s, Locale locale, TimeZone timezone) |
throws ParseException { |
if(locale==null) locale = Locale.getDefault(); |
if(timezone==null) timezone = TimeZone.getDefault(); |
SimpleDateFormat fin = new SimpleDateFormat(this.format, locale); |
fin.setTimeZone(timezone); |
Date date = fin.parse(s); |
return date; |
} |
} |
/xservices/trunk/src/java/net/brutex/xservices/ws/StorageService.java |
---|
File deleted |
Property changes: |
Deleted: svn:mime-type |
-text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/ws/MiscService.java |
---|
18,15 → 18,14 |
import javax.jws.WebMethod; |
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.HostinfoType; |
import net.brutex.xservices.types.MailMimeType; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.ant.FileSetResource; |
import net.brutex.xservices.util.BrutexNamespaces; |
import org.apache.cxf.aegis.type.java5.XmlElement; |
import org.apache.cxf.aegis.type.java5.XmlReturnType; |
import org.apache.cxf.annotations.WSDLDocumentation; |
/** |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/StorageServiceImpl.java |
---|
File deleted |
Property changes: |
Deleted: svn:mime-type |
-text/plain |
\ No newline at end of property |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/MiscServiceImpl.java |
---|
21,11 → 21,11 |
import java.util.UUID; |
import javax.jws.WebService; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.HostConnection; |
import net.brutex.xservices.types.HostinfoType; |
import net.brutex.xservices.types.MailMimeType; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.ant.FileSetResource; |
import net.brutex.xservices.util.BrutexNamespaces; |
import net.brutex.xservices.util.RunTask; |
import net.brutex.xservices.ws.MiscService; |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/DateServiceImpl.java |
---|
18,45 → 18,49 |
import java.math.BigInteger; |
import java.text.ParseException; |
import java.text.SimpleDateFormat; |
import java.util.ArrayList; |
import java.util.Date; |
import java.util.GregorianCalendar; |
import java.util.List; |
import java.util.TimeZone; |
import javax.jws.WebService; |
import net.brutex.xservices.types.DateFormatType; |
import net.brutex.xservices.types.DateInfoExtendedType; |
import net.brutex.xservices.types.DateInfoType; |
import net.brutex.xservices.types.DateTimeUnits; |
import net.brutex.xservices.types.TimeZoneType; |
import net.brutex.xservices.util.BrutexNamespaces; |
import net.brutex.xservices.ws.DateService; |
import net.brutex.xservices.ws.XServicesFault; |
/** |
* @author Brian Rosenberger |
* |
*/ |
@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES, endpointInterface = "net.brutex.xservices.ws.DateService", serviceName = DateService.SERVICE_NAME) |
@WebService( |
targetNamespace = BrutexNamespaces.WS_XSERVICES, |
endpointInterface = "net.brutex.xservices.ws.DateService", |
serviceName = DateService.SERVICE_NAME |
) |
public class DateServiceImpl implements DateService { |
private static String ERR_INVALIDFORMAT = "Invalid format pattern."; |
private static String ERR_INVALIDTIMEZONE = "Invalid timezone."; |
public DateInfoType getDate() throws XServicesFault { |
GregorianCalendar c = new GregorianCalendar(); |
DateInfoType dateinfo = new DateInfoType(c, TimeZone.getDefault()); |
return dateinfo; |
public GregorianCalendar getDate(String timezone) throws XServicesFault { |
if (! isValidTimezone(timezone) ) { |
String valid_ids = ""; |
String[] tid = TimeZone.getAvailableIDs(); |
for (String s : tid) { |
valid_ids += s + "\n"; |
} |
public DateInfoExtendedType getDateExtended() throws XServicesFault { |
GregorianCalendar c = new GregorianCalendar(); |
DateInfoExtendedType dateinfo = new DateInfoExtendedType(c, |
TimeZone.getDefault()); |
return dateinfo; |
throw new XServicesFault("Please supply a valid timezone id or none. Valid timezones are:\n" + valid_ids, |
new Exception( )); |
} |
if (timezone == null || timezone.length()<1 ) timezone = "GMT0"; |
GregorianCalendar c = new GregorianCalendar(TimeZone.getTimeZone(timezone)); |
return c; |
} |
public BigInteger getTimestamp() { |
Date d = new Date(); |
long l = d.getTime(); |
69,49 → 73,44 |
return new BigInteger(Long.toString(l)); |
} |
public String getInTimezone(Date date, String timezone) |
throws XServicesFault { |
if (!isValidTimezone(timezone)) |
throw new XServicesFault(ERR_INVALIDTIMEZONE); |
TimeZone targetzone = TimeZone.getTimeZone(timezone); |
String targetstring = DateFormatType.ISO8601.format(date, null, targetzone); |
return targetstring; |
public GregorianCalendar getInTimezone(GregorianCalendar cal, |
String timezone) throws XServicesFault { |
if(! isValidTimezone(timezone)) throw new XServicesFault(ERR_INVALIDTIMEZONE); |
GregorianCalendar c = new GregorianCalendar(TimeZone.getTimeZone(timezone)); |
c.setTimeInMillis(cal.getTimeInMillis()); |
return c; |
} |
public String formatDate(Date cal, DateFormatType format) |
throws XServicesFault { |
return format.format(cal, null, null); |
public String formatDate(GregorianCalendar cal, DateFormatType format) throws XServicesFault { |
return formatDateAdvanced(cal, format.format()); |
} |
public String formatDateAdvanced(Date cal, String format) |
public String formatDateAdvanced(GregorianCalendar cal, String format) |
throws XServicesFault { |
String result = null; |
try { |
SimpleDateFormat f = new SimpleDateFormat(format); |
result = f.format(cal); |
result = f.format(cal.getTime()); |
} catch (IllegalArgumentException e) { |
throw new XServicesFault(ERR_INVALIDFORMAT + e.getMessage()); |
} |
return result; |
} |
public Date parseDate(String s, DateFormatType format, String timezone) |
throws XServicesFault { |
if (timezone == null | timezone.equals("")) |
timezone = TimeZone.getDefault().getID(); |
if (!isValidTimezone(timezone)) |
throw new XServicesFault(ERR_INVALIDTIMEZONE); |
try { |
return format.parse(s, null, TimeZone.getTimeZone(timezone)); |
} catch (ParseException e) { |
throw new XServicesFault(e); |
public GregorianCalendar parseDate(String s, DateFormatType format, String timezone) throws XServicesFault { |
return parseDateAdvanced(s, format.format(), timezone); |
} |
} |
public GregorianCalendar parseDateAdvanced(String s, String format, |
String timezone) throws XServicesFault { |
public GregorianCalendar parseDateAdvanced(String s, String format, String timezone) throws XServicesFault { |
SimpleDateFormat f = null; |
Date date = null; |
if (timezone == null | timezone.equals("")) |
timezone = TimeZone.getDefault().getID(); |
if (!isValidTimezone(timezone)) |
throw new XServicesFault(ERR_INVALIDTIMEZONE); |
if(timezone==null | timezone.equals("")) timezone = TimeZone.getDefault().getID(); |
if(! isValidTimezone(timezone)) throw new XServicesFault(ERR_INVALIDTIMEZONE); |
try { |
f = new SimpleDateFormat(format); |
127,15 → 126,17 |
return cal; |
} |
public BigInteger dateTimeDiff(Date fromCal, Date toCal) |
throws XServicesFault { |
long diff = toCal.getTime() - fromCal.getTime(); |
public BigInteger dateTimeDiff(GregorianCalendar fromCal, |
GregorianCalendar toCal) throws XServicesFault { |
long diff = toCal.getTimeInMillis() - fromCal.getTimeInMillis(); |
BigInteger d = new BigInteger(String.valueOf(diff), 10); |
return d; |
} |
public BigInteger dateTimeDiff2(Date fromCal, Date toCal, DateTimeUnits unit) |
throws XServicesFault { |
public BigInteger dateTimeDiff2(GregorianCalendar fromCal, |
GregorianCalendar toCal, DateTimeUnits unit) throws XServicesFault { |
BigInteger d = dateTimeDiff(fromCal, toCal); |
switch (unit) { |
case SECONDS: |
149,16 → 150,13 |
break; |
case DAYS: |
d = d.divide(new BigInteger("86400000")); |
break; |
case YEARS: |
d = d.divide(new BigInteger("31536000000")); |
break; |
} |
return d; |
} |
public GregorianCalendar dateAdd(GregorianCalendar cal, BigInteger value, |
DateTimeUnits unit) throws XServicesFault { |
public GregorianCalendar dateAdd(GregorianCalendar cal, BigInteger value, DateTimeUnits unit) |
throws XServicesFault { |
switch (unit) { |
case SECONDS: |
cal.add(GregorianCalendar.SECOND, value.intValue()); |
172,9 → 170,6 |
case DAYS: |
cal.add(GregorianCalendar.DAY_OF_MONTH, value.intValue()); |
break; |
case YEARS: |
cal.add(GregorianCalendar.YEAR, value.intValue()); |
break; |
default: |
cal.add(GregorianCalendar.MILLISECOND, value.intValue()); |
} |
192,11 → 187,4 |
return yes; |
} |
public List<TimeZoneType> getTimezones() { |
List<TimeZoneType> output = new ArrayList<TimeZoneType>(); |
for (String s : TimeZone.getAvailableIDs()) { |
output.add(new TimeZoneType(TimeZone.getTimeZone(s))); |
} |
return output; |
} |
} |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/FileServiceImpl.java |
---|
27,12 → 27,12 |
import javax.jws.WebParam; |
import javax.jws.WebService; |
import net.brutex.xservices.types.ArchiveResource; |
import net.brutex.xservices.types.AttachmentType; |
import net.brutex.xservices.types.FileResource; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.ReplacePattern; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.ant.ArchiveResource; |
import net.brutex.xservices.types.ant.AttachmentType; |
import net.brutex.xservices.types.ant.FileResource; |
import net.brutex.xservices.types.ant.FileSetResource; |
import net.brutex.xservices.util.BrutexNamespaces; |
import net.brutex.xservices.util.RunTask; |
import net.brutex.xservices.ws.FileService; |
/xservices/trunk/src/java/net/brutex/xservices/ws/impl/ArchiveServiceImpl.java |
---|
19,11 → 19,11 |
import javax.jws.WebMethod; |
import javax.jws.WebParam; |
import javax.jws.WebService; |
import net.brutex.xservices.types.ArchiveResource; |
import net.brutex.xservices.types.CompressionType; |
import net.brutex.xservices.types.FileResource; |
import net.brutex.xservices.types.ResourceInterface; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.ant.ArchiveResource; |
import net.brutex.xservices.types.ant.FileResource; |
import net.brutex.xservices.types.ant.ResourceInterface; |
import net.brutex.xservices.util.BrutexNamespaces; |
import net.brutex.xservices.util.RunTask; |
import net.brutex.xservices.util.UnRarTask; |
/xservices/trunk/src/java/net/brutex/xservices/ws/DateService.java |
---|
17,24 → 17,17 |
package net.brutex.xservices.ws; |
import java.math.BigInteger; |
import java.util.Date; |
import java.util.GregorianCalendar; |
import java.util.List; |
import javax.jws.WebMethod; |
import javax.jws.WebParam; |
import javax.jws.WebService; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.datatype.XMLGregorianCalendar; |
import net.brutex.xservices.types.DateFormatType; |
import net.brutex.xservices.types.DateInfoExtendedType; |
import net.brutex.xservices.types.DateInfoType; |
import net.brutex.xservices.types.DateTimeUnits; |
import net.brutex.xservices.types.TimeZoneType; |
import net.brutex.xservices.util.BrutexNamespaces; |
import org.apache.cxf.annotations.WSDLDocumentation; |
import org.apache.cxf.annotations.WSDLDocumentationCollection; |
52,9 → 45,7 |
public interface DateService { |
public static final String SERVICE_NAME = "DateService"; |
final String OPERATION_GETDATE = "getDate"; |
final String OPERATION_GETDATEEXTENDED = "getDateExtended"; |
final String OPERATION_GETTIMESTAMP = "getTimestamp"; |
final String OPERATION_GETTIMESTAMP2 = "getTimestamp2"; |
final String OPERATION_GETINTIMEZONE = "getInTimezone"; |
65,7 → 56,7 |
final String OPERATION_DATETIMEDIFF = "dateTimeDiff"; |
final String OPERATION_DATETIMEDIFF2 = "dateTimeDiff2"; |
final String OPERATION_DATEADD = "dateAdd"; |
final String OPERATION_GETTIMEZONES = "getTimezones"; |
final String PARAM_TIMEZONE = "timezone"; |
final String PARAM_DATETIME = "datetime"; |
final String PARAM_FORMAT = "format"; |
74,26 → 65,16 |
/** |
* Get current date and time. |
* |
* @param timezone Optional timezone. Defaults to server timezone. |
* @return Current date and time. |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_GETDATE) |
@WSDLDocumentation(value="Get current date and time.") |
public abstract DateInfoType getDate() |
throws XServicesFault; |
public abstract GregorianCalendar getDate( |
@WebParam(name=PARAM_TIMEZONE) String timezone) throws XServicesFault; |
/** |
* Get current date and time (extended version). |
* |
* @return Current date and time. |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_GETDATEEXTENDED) |
@WSDLDocumentation(value="Get current date and time in different formats.") |
public abstract DateInfoExtendedType getDateExtended() |
throws XServicesFault; |
/** |
* Get milliseconds since 01.01.1970. |
* |
* @return timestamp milliseconds |
121,14 → 102,14 |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_GETINTIMEZONE) |
public abstract String getInTimezone( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) Date cal, |
public abstract GregorianCalendar getInTimezone( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) GregorianCalendar cal, |
@WebParam(name=PARAM_TIMEZONE) @XmlElement(required=true) String timezone) throws XServicesFault; |
/** |
* Formats a date with pre-defined patterns. |
* |
* @param cal date time to be formatted in ISO8601 |
* @param cal date time to be formatted |
* @param format Pattern to be used for date formating |
* @return formatted date/time string |
* @throws XServicesFault |
135,12 → 116,9 |
*/ |
@WebMethod(operationName=OPERATION_FORMATDATE) |
public abstract String formatDate( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) Date cal, |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) GregorianCalendar cal, |
@WebParam(name=PARAM_FORMAT) @XmlElement(required=true) DateFormatType format) throws XServicesFault; |
@WebMethod(operationName=OPERATION_GETTIMEZONES) |
public abstract List<TimeZoneType> getTimezones() throws XServicesFault; |
/** |
* Formats a date with a free form pattern. |
* Uses SimpleDateFormat patterns |
173,7 → 151,7 |
*/ |
@WebMethod(operationName=OPERATION_FORMATDATEADVANCED) |
public abstract String formatDateAdvanced( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) Date cal, |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) GregorianCalendar cal, |
@WebParam(name=PARAM_FORMAT) @XmlElement(required=true) String format) throws XServicesFault; |
/** |
186,8 → 164,7 |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_PARSEDATE) |
@WSDLDocumentation(value="Converts a string into date using pre-defined date formats.") |
public abstract Date parseDate( |
public abstract GregorianCalendar parseDate( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) String s, |
@WebParam(name=PARAM_FORMAT) @XmlElement(required=true) DateFormatType format, |
@WebParam(name=PARAM_TIMEZONE) String timezone) throws XServicesFault; |
215,8 → 192,8 |
*/ |
@WebMethod(operationName=OPERATION_DATETIMEDIFF) |
public abstract BigInteger dateTimeDiff( |
@WebParam(name="fromDateTime") @XmlElement(required=true) Date fromCal, |
@WebParam(name="toDateTime") @XmlElement(required=true) Date toCal) throws XServicesFault; |
@WebParam(name="fromDateTime") @XmlElement(required=true) GregorianCalendar fromCal, |
@WebParam(name="toDateTime") @XmlElement(required=true) GregorianCalendar toCal) throws XServicesFault; |
/** |
* Fully elapsed units between two dates. |
231,9 → 208,9 |
@WebMethod(operationName=OPERATION_DATETIMEDIFF2) |
@WSDLDocumentation(value="Get elapsed time between to dates.") |
public abstract BigInteger dateTimeDiff2( |
@WebParam(name="fromDateTime") @XmlElement(required=true) Date fromCal, |
@WebParam(name="toDateTime") @XmlElement(required=true) Date toCal, |
@WebParam(name=PARAM_UNIT) DateTimeUnits unit) throws XServicesFault; |
@WebParam(name="fromDateTime") @XmlElement(required=true) GregorianCalendar fromCal, |
@WebParam(name="toDateTime") @XmlElement(required=true) GregorianCalendar toCal, |
@WebParam(name="PARAM_UNIT") DateTimeUnits unit) throws XServicesFault; |
/** |
* Add or subtract a time span from a date. |
/xservices/trunk/src/java/net/brutex/xservices/ws/FileService.java |
---|
26,12 → 26,12 |
import org.apache.cxf.annotations.WSDLDocumentation; |
import org.apache.cxf.annotations.WSDLDocumentationCollection; |
import net.brutex.xservices.types.ArchiveResource; |
import net.brutex.xservices.types.AttachmentType; |
import net.brutex.xservices.types.FileResource; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.ReplacePattern; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.ant.ArchiveResource; |
import net.brutex.xservices.types.ant.AttachmentType; |
import net.brutex.xservices.types.ant.FileResource; |
import net.brutex.xservices.types.ant.FileSetResource; |
import net.brutex.xservices.util.BrutexNamespaces; |
import net.brutex.xservices.util.XServicesDocumentation; |
/** |
/xservices/trunk/src/java/net/brutex/xservices/ws/ArchiveService.java |
---|
18,12 → 18,12 |
import javax.jws.WebMethod; |
import javax.jws.WebParam; |
import javax.jws.WebService; |
import net.brutex.xservices.types.ArchiveResource; |
import net.brutex.xservices.types.CompressionType; |
import net.brutex.xservices.types.FileResource; |
import net.brutex.xservices.types.FileSetResource; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.ant.ArchiveResource; |
import net.brutex.xservices.types.ant.FileResource; |
import net.brutex.xservices.types.ant.FileSetResource; |
import net.brutex.xservices.util.BrutexNamespaces; |
/xservices/trunk/src/java/net/brutex/xservices/util/RunTask.java |
---|
19,9 → 19,8 |
import java.io.PrintStream; |
import java.util.HashMap; |
import java.util.Map; |
import net.brutex.xservices.types.AntProperty; |
import net.brutex.xservices.types.ReturnCode; |
import net.brutex.xservices.types.ant.AntProperty; |
import org.apache.tools.ant.BuildException; |
import org.apache.tools.ant.Project; |
import org.apache.tools.ant.Target; |