diff options
author | mattinger <[email protected]> | 2006-08-22 18:43:15 +0000 |
---|---|---|
committer | mattinger <[email protected]> | 2006-08-22 18:43:15 +0000 |
commit | 6cfe7b0cd8666e2c3a00ef612b3b13f4a4b212fc (patch) | |
tree | 4ec3cdb77ce800e07141217e3ddbdb2b581ab1cc /src | |
parent | 86575363347ea1a4eff58eb41d3931f752f14a77 (diff) |
git-svn-id: file:///home/sven/projects/JOGL/temp/ant-contrib/svn/ant-contrib-code/trunk/ant-contrib@30 32d7a393-a5a9-423c-abd3-5d954feb1f2f
Diffstat (limited to 'src')
-rw-r--r-- | src/java/net/sf/antcontrib/antlib.xml | 3 | ||||
-rw-r--r-- | src/java/net/sf/antcontrib/net/httpclient/GetCookieTask.java | 103 | ||||
-rw-r--r-- | src/java/net/sf/antcontrib/net/httpclient/HostConfig.java | 6 |
3 files changed, 111 insertions, 1 deletions
diff --git a/src/java/net/sf/antcontrib/antlib.xml b/src/java/net/sf/antcontrib/antlib.xml index 89a9e3a..d002682 100644 --- a/src/java/net/sf/antcontrib/antlib.xml +++ b/src/java/net/sf/antcontrib/antlib.xml @@ -15,6 +15,9 @@ name="httpClient"
classname="net.sf.antcontrib.net.httpclient.HttpClientType"
onerror="report" />
+ <taskdef name="getCookie" + classname="net.sf.antcontrib.net.httpclient.GetCookieTask" + onerror="report" /> <taskdef name="addCookie"
classname="net.sf.antcontrib.net.httpclient.AddCookieTask"
onerror="report" />
diff --git a/src/java/net/sf/antcontrib/net/httpclient/GetCookieTask.java b/src/java/net/sf/antcontrib/net/httpclient/GetCookieTask.java new file mode 100644 index 0000000..4c456e6 --- /dev/null +++ b/src/java/net/sf/antcontrib/net/httpclient/GetCookieTask.java @@ -0,0 +1,103 @@ +/*
+ * Copyright (c) 2001-2006 Ant-Contrib project. All rights reserved.
+ *
+ * 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.sf.antcontrib.net.httpclient;
+
+import org.apache.commons.httpclient.Cookie;
+import org.apache.commons.httpclient.HttpState;
+import org.apache.commons.httpclient.cookie.CookiePolicy;
+import org.apache.commons.httpclient.cookie.CookieSpec;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.Property;
+
+public class GetCookieTask
+ extends AbstractHttpStateTypeTask {
+
+ private String property;
+ private String prefix;
+ private String fieldSeparator = "/";
+
+ private String cookiePolicy = CookiePolicy.DEFAULT;
+ private String realm;
+ private int port;
+ private String path;
+ private boolean secure;
+
+ public void setFieldSeparator(String fieldSeparator) {
+ this.fieldSeparator = fieldSeparator;
+ }
+
+ public void setCookiePolicy(String cookiePolicy) {
+ this.cookiePolicy = cookiePolicy;
+ }
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public void setRealm(String realm) {
+ this.realm = realm;
+ }
+
+ public void setSecure(boolean secure) {
+ this.secure = secure;
+ }
+
+ public void setProperty(String property) {
+ this.property = property;
+ }
+
+ protected void execute(HttpStateType stateType) throws BuildException {
+ HttpState state = stateType.getState();
+ CookieSpec spec = CookiePolicy.getCookieSpec(cookiePolicy);
+ Cookie cookies[] = state.getCookies();
+ Cookie matches[] = spec.match(realm, port, path, secure, cookies);
+
+ if (property != null) {
+ if (matches != null && matches.length > 0) {
+ if (matches.length > 1) {
+ log("Multiple cookies matched the query, returning only the first one.",
+ Project.MSG_WARN);
+ }
+ Property p = (Property)getProject().createTask("property");
+ p.setName(property);
+ p.setValue(matches[0].getValue());
+ }
+ }
+ else if (prefix != null) {
+ if (matches != null && matches.length > 0) {
+ for (int i=0;i<matches.length;i++) {
+ String propName =
+ prefix +
+ fieldSeparator + matches[i].getDomain() +
+ fieldSeparator + matches[i].getPath() +
+ fieldSeparator + matches[i].getName();
+ Property p = (Property)getProject().createTask("property");
+ p.setName(propName);
+ p.setValue(matches[i].getValue());
+
+ }
+ }
+
+ }
+ }
+
+
+}
diff --git a/src/java/net/sf/antcontrib/net/httpclient/HostConfig.java b/src/java/net/sf/antcontrib/net/httpclient/HostConfig.java index 8c2a374..d4be4a8 100644 --- a/src/java/net/sf/antcontrib/net/httpclient/HostConfig.java +++ b/src/java/net/sf/antcontrib/net/httpclient/HostConfig.java @@ -23,9 +23,13 @@ import org.apache.tools.ant.BuildException; public class HostConfig
extends HostConfiguration {
+
+ public void setHost(String host) {
+ setHost(host, getPort(), getProtocol());
+ }
public void setPort(int port) {
- setHost(getHost(), port);
+ setHost(getHost(), port, getProtocol());
}
public void setProtocol(String protocol) {
|