Ant-contrib.unkrig.de: Difference between revisions

From unkrig.de
Jump to navigation Jump to search
mNo edit summary
Line 58: Line 58:
=== <de.unkrig.ant-contrib.urlconnection> ===
=== <de.unkrig.ant-contrib.urlconnection> ===


Connects to a server and sends data to it and/or receives data from it.
Connects to a resource and writes data to it and/or reads data from it.


===== '''Attributes''' =====
===== '''Attributes''' =====

Revision as of 17:38, 11 November 2013

Abstract

Some contributions to APACHE ANT, e.g. the 'de.unkrig.ant-contrib.swingdialog' task which significantly enhances ANT's <input> task.

Tasks

<de.unkrig.ant-contrib.swingdialog>

Pops up a highly configurable dialog and invites the user to fill in form fields.

This task will fail iff the CANCEL button is pressed or the dialog is closed, except if '<ifCancelTask>'s (or '<ifClosedTask>'s, respectively) are configured.

Swing-dialog.png

Attributes
title="FTP upload of update site" (optional)
The text to be displayed in the title bar of the dialog.
optionType="..." (optional)
DEFAULT (an 'OK' button), YES_NO, YES_NO_CANCEL, OK_CANCEL (the default): Determines which buttons are displayed in the dialog.
messageType="..." (optional)
ERROR, INFORMATION, WARNING, QUESTION, PLAIN (the default): If not set to PLAIN, then a respective icon is displayed in the dialog.
property="..." (optional)
The named property will be set to YES, NO, CANCEL, OK or CLOSED when the task completes.
Subelements
<label text="User ID"/> (zero or more)
Displays the given text.
<text property="ftp.userid" defaultvalue="www.unkrig.de"/> (zero or more)
A one-line text input field with an (optional) default value. On return, the named property is set to the text of the field. Iff 'secure="true"' is given, then characters entered into the field are not echoed.
<checkbox text="Use passive FTP" property="ftp.passive" defaultvalue="true"/> (zero or more)
A checkbox with a label. On return, the named property is set to 'true' iff the box is checked. Iff 'defaultvalue="true"' is given, then the checkbox is pre-selected.
<ifYes>, <ifNo>, <ifCancel>, <ifOk>, <ifClosed> (at most one of each)
These can have task subelements, which are executed iff the respective dialog button is pressed (<ifYes>, <ifNo>, <ifCancel>, <ifOk>) or the dialog is closed (<ifClosed>).

<de.unkrig.ant-contrib.jsonproperty>

Parses a JSON document into a set of properties, in analogy with the standard ANT '<xmlproperty>' task.

Attributes
file="..." (mandatory)
The file from which to read the JSON document.
encoding="..." (optional)
The encoding of the JSON document. The default is 'UTF-8'.
name="..." (mandatory)
The prefix of the names of the properties to set.

<de.unkrig.ant-contrib.setauthenticator>

This task configures the authentication for all following URLConnections, e.g. those created by <de.unkrig.ant-contrib.urlconnection>. It does this by matching a request against the configured '<credentials>' subelements and using password authentication as configured by the first matching '<credentials>' element.

Subelements
<credentials requestingHost="localhost" requestingSite="127\.0\.0\.1" requestingPort="80" requestingProtocol="http" requestingPrompt="The Realm" requestingScheme="http" requestingUrl="http://acme\.com" requestorType="SERVER-or-PROXY" userName="..." password="..." /> (zero or more)
If the request matches all the 'requesting...' and 'requestor...' attributes (all of which are regular expressions), then
  • If both 'userName' and 'password' are given, then these determine the 'PasswordAuthentication'
  • If none of 'userName' and 'password' are given, then the user is prompted to enter the user name and password
  • If only one of 'userName' and 'password' is given, the it is displayed to the user, and the user is prompted to enter the other

<de.unkrig.ant-contrib.urlconnection>

Connects to a resource and writes data to it and/or reads data from it.

Attributes
url="...", allowUserInteraction="..." connectTimeout="..." readTimeout="... defaultUseCaches="..." ifModifiedSince="...", useCaches="..." (all optional)
The various parameters of the URLConnection; see the JAVADOC for 'java.net.URLConnection'.
httpChunkLength="...", httpContentLength="..., httpFollowRedirects="...", httpRequestMethod="..." (all optional)
Various pararmeters that apply iff the URLConnection is an HttpURLConnection.
Subelements
<url context="..." protocol="..." host="..." port="..." userInfo="..." path="..." query="..." ref="..." /> (zero or one)
An alternative to the 'url="..."' attribute; configures the URL by its components. Missing components default to 'http://localhost/'. Relative URL can be specified by using the 'ref="..."' attribute or the '<context context="..." protocol="..." host="..." port="..." userInfo="..." path="..." query="..." ref="..." />' subelement.
<requestProperty name="..." value="..." /> (zero or more)
Adds one property to the request; for HTTP connections these are mapped to request headers.
<output value="..." encoding="..." file="..."/> (zero or one)
If given, then data is written to the resource. That data is obtained from (A) the 'value="..."' and 'encoding="..."' attributes, (B) the named 'file="..."', (C) one or more '<multipartFormData name="..." fileName="..." value="..." file="..." />' subelements, or (D) one or more '<applicationXWwwFormUrlencoded name="..." value="..." />' subelements.
<input file="..."> (zero or one)
If given, then data is read from the resource. That data is (A) written to the named 'file="..."', or (B) parsed as configured by the '<jsonAsProperties name="...">' subelement (see <de.unkrig.ant-contrib.jsonproperty>).

Download and installation

The JAR file can be downloaded from http://ant-contrib.unkrig.de/download/.

To make the contributions available in your ANT scripts, write

<taskdef resource="de/unkrig/antcontrib/ant.xml" classpath="lib/de.unkrig.ant-contrib.jar"/>

, or, if you put the JAR file on ANT's default classpath, just

<taskdef resource="de/unkrig/antcontrib/ant.xml"/>

Source code

The source code is available in the SUBVERSION repository. The repository URL is

https://svn.code.sf.net/p/loggifier/code

License

ANT-CONTRIB is published under the "New BSD License".