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]

Reply via email to