Ingo, I would like to test the changes but I am not able to apply the patch.
I dont know if this is a problem when copy/paste from the email.
Could you please check the changes in or send me the changed java sources.
Thanks
Martin
> > Von: Ingo Brunberg <[EMAIL PROTECTED]>
> > Datum: 16. Januar 2004 17:37:44 MEZ
> > An: [EMAIL PROTECTED]
> > Betreff: Client patch
> > Antwort an: "Slide Developers Mailing List"
> > <[EMAIL PROTECTED]>
> >
> > Hi,
> >
> > here is the announced patch for the client, that drops the use of
> > org.apache.util.HttpURL. Please test, as I may have missed
> something.
> >
> > Ingo
> >
> >
> > Index:
> >
> webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavFile.java
> > ===================================================================
> > RCS file:
> > /home/cvs/jakarta-slide/webdavclient/clientlib/src/java/org/apache/
> > webdav/lib/WebdavFile.java,v
> > retrieving revision 1.1
> > diff -u -r1.1 WebdavFile.java
> > ---
> >
> webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavFi
> le.java
> > 9 Jan 2004 09:56:04 -0000 1.1
> > +++
> >
> webdavclient/clientlib/src/java/org/apache/webdav/lib/WebdavFi
> le.java
> > 16 Jan 2004 16:33:22 -0000
> > @@ -71,7 +71,9 @@
> > import java.util.ArrayList;
> > import java.util.Iterator;
> > import java.util.List;
> > -import org.apache.util.HttpURL;
> > +import org.apache.commons.httpclient.HttpURL;
> > +import org.apache.commons.httpclient.URIException;
> > +import org.apache.commons.httpclient.util.URIUtil;
> >
> > /**
> > * Implements a file for WebDav
> > @@ -93,7 +95,7 @@
> > * @param parent directory
> > * @param child element in parent
> > */
> > - public WebdavFile(WebdavFile parent, String child) throws
> > MalformedURLException {
> > + public WebdavFile(WebdavFile parent, String child) throws
> > URIException {
> > this(
> > parent.getAbsolutePath() + davSeparator + child,
> > parent.getUser(),
> > @@ -106,8 +108,8 @@
> > * @param user user name
> > * @param pass password
> > */
> > - public WebdavFile(String pathname, String user, String
> pass) throws
> > MalformedURLException {
> > - this(new URL(pathname), user, pass);
> > + public WebdavFile(String pathname, String user, String
> pass) throws
> > URIException {
> > + this(new HttpURL(user, pass, null, -1, pathname));
> > }
> >
> > /**
> > @@ -115,7 +117,7 @@
> > * @param user user name
> > * @param pass password
> > */
> > - public WebdavFile(URL url, String user, String pass) throws
> > MalformedURLException {
> > + public WebdavFile(URL url, String user, String pass) throws
> > URIException {
> > this(new HttpURL(user, pass, url.getHost(), url.getPort(),
> > url.getPath()));
> > }
> > /**
> > @@ -124,15 +126,15 @@
> > * @param user user name
> > * @param pass password
> > */
> > - public WebdavFile(String parent, String child, String
> user, String
> > pass) throws MalformedURLException {
> > + public WebdavFile(String parent, String child, String
> user, String
> > pass) throws URIException {
> > this(parent + davSeparator + child, user, pass);
> > }
> >
> > /**
> > * @param httpUrl Webdav URL
> > */
> > - public WebdavFile(HttpURL httpUrl) {
> > - super(httpUrl.getUnescapedHttpURL());
> > + public WebdavFile(HttpURL httpUrl) throws URIException {
> > + super(httpUrl.getURI());
> > this.httpUrl = httpUrl;
> > }
> >
> > @@ -174,13 +176,13 @@
> > return files;
> > }
> >
> > - public String getUser() throws MalformedURLException {
> > + public String getUser() throws URIException {
> > if(relPath!=null)
> > return null;
> > - return httpUrl.getUserName();
> > + return httpUrl.getUser();
> > }
> >
> > - public String getPass() throws MalformedURLException {
> > + public String getPass() throws URIException {
> > if(relPath!=null)
> > return null;
> > return httpUrl.getPassword();
> > @@ -189,16 +191,31 @@
> > public String getName() {
> > if(relPath!=null)
> > return relPath;
> > - return httpUrl.getName();
> > + String escapedPath = httpUrl.getEscapedPath();
> > + String escapedName =
> > + URIUtil.getName(escapedPath.endsWith("/")
> > + ? escapedPath.substring(0,
> > escapedPath.length() - 1)
> > + : escapedPath);
> > + try {
> > + return URIUtil.decode(escapedName);
> > + } catch (URIException e) {
> > + return escapedName;
> > + }
> > }
> >
> > public String getParent() {
> > if(relPath!=null)
> > return null;
> > - String parent = httpUrl.getParent();
> > - if("/".equals(parent))
> > + String escapedPath = httpUrl.getEscapedPath();
> > + String parent = escapedPath.substring(
> > + 0, escapedPath.lastIndexOf('/',
> escapedPath.length() - 2) +
> > 1);
> > + if (parent.length() <= 1)
> > return null;
> > - return parent;
> > + try {
> > + return URIUtil.decode(parent);
> > + } catch (URIException e) {
> > + return parent;
> > + }
> > }
> >
> > public File getParentFile() {
> > @@ -207,8 +224,8 @@
> > return null;
> >
> > try {
> > - return new WebdavFile(getParent(), getUser(), getPass());
> > - } catch(MalformedURLException e) {
> > + return new WebdavFile(parent, getUser(), getPass());
> > + } catch(URIException e) {
> > throw new WebdavException(e);
> > }
> > }
> > @@ -216,7 +233,11 @@
> > public String getPath() {
> > if(relPath!=null)
> > return relPath;
> > - return httpUrl.getUnescapedHttpURL();
> > + try {
> > + return httpUrl.getURI();
> > + } catch (URIException e) {
> > + throw new WebdavException(e);
> > + }
> > }
> >
> > public boolean isAbsolute() {
> > @@ -242,7 +263,11 @@
> > public URL toURL() throws MalformedURLException {
> > if(relPath!=null)
> > return null;
> > - return httpUrl.toURL();
> > + try {
> > + return new URL(httpUrl.getURI());
> > + } catch (URIException e) {
> > + throw new MalformedURLException(e.getMessage());
> > + }
> > }
> >
> > public boolean canRead() {
> > @@ -481,7 +506,7 @@
> > public String toString() {
> > if(relPath!=null)
> > return relPath;
> > - return httpUrl.getUnescapedHttpURL();
> > + return httpUrl.getEscapedURI();
> > }
> >
> > public int compareTo(File pathname) {
> > Index:
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavResource.java
> > ===================================================================
> > RCS file:
> > /home/cvs/jakarta-slide/webdavclient/clientlib/src/java/org/apache/
> > webdav/lib/WebdavResource.java,v
> > retrieving revision 1.1
> > diff -u -r1.1 WebdavResource.java
> > ---
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavResource.java 9 Jan 2004 09:56:04 -0000 1.1
> > +++
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavResource.java 16 Jan 2004 16:33:22 -0000
> > @@ -69,7 +69,6 @@
> > import java.io.FileOutputStream;
> > import java.io.IOException;
> > import java.io.InputStream;
> > -import java.net.MalformedURLException;
> > import java.net.URL;
> > import java.text.DateFormat;
> > import java.text.ParseException;
> > @@ -92,8 +91,9 @@
> > import org.apache.commons.httpclient.methods.PutMethod;
> > import org.apache.commons.httpclient.util.URIUtil;
> > import org.apache.util.DOMUtils;
> > -import org.apache.util.HttpURL;
> > -import org.apache.util.HttpsURL;
> > +import org.apache.commons.httpclient.HttpURL;
> > +import org.apache.commons.httpclient.HttpsURL;
> > +import org.apache.commons.httpclient.URIException;
> > import org.apache.util.WebdavStatus;
> > import org.apache.webdav.lib.methods.AclMethod;
> > import org.apache.webdav.lib.methods.AclReportMethod;
> > @@ -919,7 +919,7 @@
> > boolean itself = false;
> > String href = response.getHref();
> > if (!href.startsWith("/"))
> > - href = HttpURL.getEscapedPath(href);
> > + href = URIUtil.getPath(href);
> > String httpURLPath = httpURL.getEscapedPath();
> > int compared = httpURLPath.compareTo(href);
> > // Compare with the href path and
> requested-path itself.
> > @@ -958,7 +958,7 @@
> > String displayName = workingResource.getDisplayName();
> >
> > if (displayName == null ||
> displayName.trim().equals(""))
> > {
> > - displayName = HttpURL.getName(href);
> > + displayName = getName(href);
> > }
> > if (!itself) {
> > String myURI = httpURL.getEscapedURI();
> > @@ -1086,7 +1086,7 @@
> > *
> > * @return true if the given httpURL is the client for this
> > resource.
> > */
> > - protected synchronized boolean isTheClient() throws
> > MalformedURLException {
> > + protected synchronized boolean isTheClient() throws
> URIException {
> >
> > Credentials creds = client.getState().getCredentials(null,
> >
> > client.getHost());
> > @@ -1288,9 +1288,9 @@
> > * @return httpURL the http URL.
> > */
> > public HttpURL getHttpURLExceptForUserInfo()
> > - throws MalformedURLException {
> > + throws URIException {
> >
> > - return httpURL.getHttpURLExceptForUserInfo();
> > + return new HttpURL(httpURL.getRawURI());
> > }
> >
> >
> > @@ -1314,12 +1314,32 @@
> >
> > /**
> > * Get the path part of this WebdavResource.
> > + * If the decoding of the path fails, this method will
> not throw
> > an
> > + * exception but return the escaped path instead.
> > *
> > * @return the path for this WebdavResource.
> > + * @see org.apache.commons.httpclient.HttpURL#getPath()
> > * @see #setPath(java.lang.String)
> > */
> > public String getPath() {
> > - return httpURL.getPath();
> > + try {
> > + return httpURL.getPath();
> > + } catch (URIException e) {
> > + return httpURL.getEscapedPath();
> > + }
> > + }
> > +
> > +
> > + /**
> > + * Get the name of this WebdavResource.
> > + * If the decoding of the name fails, this method will
> not throw
> > an
> > + * exception but return the escaped name instead.
> > + *
> > + * @return the name of this WebdavResource.
> > + * @see org.apache.commons.httpclient.HttpURL#getName()
> > + */
> > + public String getName() {
> > + return getName(httpURL.getEscapedPath());
> > }
> >
> >
> > @@ -1327,9 +1347,9 @@
> > * Get the hostname of this WebdavResource.
> > *
> > * @return the hostname.
> > - * @exception MalformedURLException
> > + * @exception URIException
> > */
> > - public String getHost() throws MalformedURLException {
> > + public String getHost() throws URIException {
> > return httpURL.getHost();
> > }
> >
> > @@ -1337,7 +1357,7 @@
> > /**
> > * Set the userinfo part of this WebdavResource.
> > *
> > - * @exception MalformedURLException
> > + * @exception HttpException
> > * @exception IOException
> > * @see #setHttpURL(HttpURL)
> > * @see #setHttpURL(java.lang.String)
> > @@ -1346,7 +1366,7 @@
> > public void setUserInfo(String userName, String password)
> > throws HttpException, IOException {
> >
> > - httpURL.setUserInfo(userName, password);
> > + httpURL.setUserinfo(userName, password);
> > setHttpURL(httpURL);
> > }
> >
> > @@ -3783,8 +3803,8 @@
> > public boolean lockMethod()
> > throws HttpException, IOException {
> >
> > - String owner = (httpURL.getUserName() != null) ?
> > - httpURL.getUserName() : defaultOwner;
> > + String owner = (httpURL.getUser() != null) ?
> > + httpURL.getUser() : defaultOwner;
> >
> > boolean result = lockMethod(httpURL.getPath(), owner, 120);
> > if (result) refresh();
> > @@ -3826,8 +3846,8 @@
> > public boolean lockMethod(String path)
> > throws HttpException, IOException {
> >
> > - String owner = (httpURL.getUserName() != null) ?
> > - httpURL.getUserName() : defaultOwner;
> > + String owner = (httpURL.getUser() != null) ?
> > + httpURL.getUser() : defaultOwner;
> >
> > return lockMethod(path, owner, 120);
> > }
> > @@ -3904,8 +3924,8 @@
> > */
> > public boolean unlockMethod() throws HttpException,
> IOException {
> >
> > - String owner = (httpURL.getUserName() != null) ?
> > - httpURL.getUserName() : defaultOwner;
> > + String owner = (httpURL.getUser() != null) ?
> > + httpURL.getUser() : defaultOwner;
> >
> > boolean result = unlockMethod(httpURL.getPath(), owner);
> > if (result) refresh();
> > @@ -3925,8 +3945,8 @@
> > public boolean unlockMethod(String path)
> > throws HttpException, IOException {
> >
> > - String owner = (httpURL.getUserName() != null) ?
> > - httpURL.getUserName() : defaultOwner;
> > + String owner = (httpURL.getUser() != null) ?
> > + httpURL.getUser() : defaultOwner;
> >
> > return unlockMethod(path, owner);
> > }
> > @@ -4421,4 +4441,14 @@
> > return method.getResponses();
> > }
> >
> > +
> > + private static String getName(String uri) {
> > + String escapedName = URIUtil.getName(
> > + uri.endsWith("/") ? uri.substring(0,
> uri.length() - 1):
> > uri);
> > + try {
> > + return URIUtil.decode(escapedName);
> > + } catch (URIException e) {
> > + return escapedName;
> > + }
> > + }
> > }
> > Index:
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavResources.java
> > ===================================================================
> > RCS file:
> > /home/cvs/jakarta-slide/webdavclient/clientlib/src/java/org/apache/
> > webdav/lib/WebdavResources.java,v
> > retrieving revision 1.1
> > diff -u -r1.1 WebdavResources.java
> > ---
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavResources.java 9 Jan 2004 09:56:04 -0000 1.1
> > +++
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavResources.java 16 Jan 2004 16:33:22 -0000
> > @@ -233,7 +233,7 @@
> > public void addResource(WebdavResource resource) {
> > String displayName = resource.getDisplayName();
> > if (displayName == null || displayName.trim().equals("")) {
> > - displayName = resource.getHttpURL().getName();
> > + displayName = resource.getName();
> > }
> > hrefTable.put(displayName, resource);
> > }
> > Index:
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavSession.java
> > ===================================================================
> > RCS file:
> > /home/cvs/jakarta-slide/webdavclient/clientlib/src/java/org/apache/
> > webdav/lib/WebdavSession.java,v
> > retrieving revision 1.1
> > diff -u -r1.1 WebdavSession.java
> > ---
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavSession.java 9 Jan 2004 09:56:04 -0000 1.1
> > +++
> > webdavclient/clientlib/src/java/org/apache/webdav/lib/
> > WebdavSession.java 16 Jan 2004 16:33:22 -0000
> > @@ -69,7 +69,7 @@
> > import org.apache.commons.httpclient.HttpClient;
> > import org.apache.commons.httpclient.HttpState;
> > import org.apache.commons.httpclient.UsernamePasswordCredentials;
> > -import org.apache.util.HttpURL;
> > +import org.apache.commons.httpclient.HttpURL;
> >
> > /**
> > * This WebdavSession class is for the session management
> of WebDAV
> > clients.
> > @@ -182,12 +182,11 @@
> > // Set a state which allows lock tracking
> > client.setState(new WebdavState());
> > HostConfiguration hostConfig =
> > client.getHostConfiguration();
> > - hostConfig.setHost(httpURL.getHost(),
> httpURL.getPort(),
> > - httpURL.getScheme());
> > + hostConfig.setHost(httpURL);
> > if (proxyHost != null && proxyPort > 0)
> > hostConfig.setProxy(proxyHost, proxyPort);
> >
> > - String userName = httpURL.getUserName();
> > + String userName = httpURL.getUser();
> > if (userName != null && userName.length() > 0) {
> > String password = httpURL.getPassword();
> > HttpState clientState = client.getState();
> > Index:
> > webdavclient/commandline/src/java/org/apache/webdav/cmd/Client.java
> > ===================================================================
> > RCS file:
> >
> /home/cvs/jakarta-slide/webdavclient/commandline/src/java/org/apache/
> > webdav/cmd/Client.java,v
> > retrieving revision 1.1
> > diff -u -r1.1 Client.java
> > ---
> >
> webdavclient/commandline/src/java/org/apache/webdav/cmd/Clie
> nt.java 9
> > Jan 2004 09:58:19 -0000 1.1
> > +++
> >
> webdavclient/commandline/src/java/org/apache/webdav/cmd/Clie
> nt.java 16
> > Jan 2004 16:33:22 -0000
> > @@ -80,7 +80,8 @@
> > import java.util.Vector;
> > import org.apache.commons.httpclient.HttpException;
> > import org.apache.commons.httpclient.HttpStatus;
> > -import org.apache.util.HttpURL;
> > +import org.apache.commons.httpclient.HttpURL;
> > +import org.apache.commons.httpclient.util.URIUtil;
> > import org.apache.util.QName;
> > import org.apache.webdav.lib.Ace;
> > import org.apache.webdav.lib.Lock;
> > @@ -299,7 +300,7 @@
> >
> > try {
> > // Set up for processing WebDAV resources
> > - httpURL = new HttpURL(uri);
> > + httpURL = new HttpURL(uri.toCharArray());
> > if (webdavResource == null) {
> > webdavResource = new WebdavResource(httpURL);
> > webdavResource.setDebug(debugLevel);
> > @@ -333,9 +334,9 @@
> > httpURL = null;
> > webdavResource = null;
> > }
> > - httpURL = new HttpURL(uri);
> > + httpURL = new HttpURL(uri.toCharArray());
> > // It should be used like this way.
> > - httpURL.setUserInfo(userName, password);
> > + httpURL.setUserinfo(userName, password);
> > webdavResource = new WebdavResource(httpURL);
> > webdavResource.setDebug(debugLevel);
> > setPath(webdavResource.getPath());
> > @@ -383,7 +384,7 @@
> > boolean succeeded = false;
> > if (param != null) {
> > if (!param.startsWith("/")) {
> > - httpURL = new HttpURL(param);
> > + httpURL = new HttpURL(param.toCharArray());
> > Enumeration enum = null;
> > try {
> > // OPTIONS business logic
> > @@ -413,7 +414,7 @@
> > password= password.trim();
> > try {
> > // OPTIONS business logic
> > - httpURL.setUserInfo(userName,
> > + httpURL.setUserinfo(userName,
> > password);
> > enum = webdavResource.
> > optionsMethod(httpURL);
> > @@ -770,7 +771,7 @@
> > out.print("Putting property(" + name + ", " + value +
> > ") to '" + path + "': ");
> > if (webdavResource.proppatchMethod(
> > - path, new PropertyName("DAV:",name), value)) {
> > + path, new PropertyName("DAV:",name),
> value, true)) {
> > out.println("succeeded.");
> > } else {
> > out.println("failed.");
> > @@ -788,7 +789,11 @@
> > // The resource on the remote.
> > String src = checkUri(path);
> > // The file on the local.
> > - String dest = (filename!=null) ? filename :
> > HttpURL.getName(src);
> > + String dest = (filename!=null)
> > + ? filename
> > + : URIUtil.getName(src.endsWith("/")
> > + ? src.substring(0,
> src.length() - 1)
> > + : src);
> >
> > out.println("get " + src + " " + dest);
> >
> > @@ -1203,11 +1208,11 @@
> >
> > if ((properties!=null) && (properties.size()>0)) {
> > propertyValues =
> > - webdavResource.reportMethod(new
> HttpURL(path),
> > properties, 1);
> > + webdavResource.reportMethod(new
> > HttpURL(path.toCharArray()), properties, 1);
> > }
> > else {
> > propertyValues =
> > - webdavResource.reportMethod(new
> HttpURL(path), 1);
> > + webdavResource.reportMethod(new
> > HttpURL(path.toCharArray()), 1);
> > }
> >
> > if (propertyValues.hasMoreElements()){
> > @@ -1254,7 +1259,7 @@
> > out.println("expand-property Report of '" +
> path + "':");
> >
> > Enumeration propertyValues =
> > - webdavResource.reportMethod(new HttpURL(path),
> > sQuery, 1);
> > + webdavResource.reportMethod(new
> > HttpURL(path.toCharArray()), sQuery, 1);
> > if (propertyValues.hasMoreElements()){
> > while (propertyValues.hasMoreElements()){
> >
> > out.println(displayXML(propertyValues.nextElement().toString(), 0));
> > @@ -1280,7 +1285,7 @@
> > out.println("Getting version-tree Report of '"
> + path +
> > "':");
> >
> > Enumeration propertyValues =
> > - webdavResource.reportMethod(new HttpURL(path),
> > properties, historyUris, 1);
> > + webdavResource.reportMethod(new
> > HttpURL(path.toCharArray()), properties, historyUris, 1);
> > if (propertyValues.hasMoreElements()) {
> > while (propertyValues.hasMoreElements()) {
> >
> > out.println(propertyValues.nextElement().toString());
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]