Toro Briefcase and Webdav

2 views
Skip to first unread message

loulou2u

unread,
Aug 7, 2008, 12:09:24 PM8/7/08
to Toro Projects
I'm not sure anyone will be able to help me with this but perhaps
someone can give me an idea.

I am writing my own resource factory to connect to our webdav server
and trying to integrate it into our toro briefcase portlet. My issue
seems to be surrounding the getContents() function. I think I am
having issues with Webdav types vs. File types along with relativePath
issues vs. absolutePath issues.

Basically I am getting the following error:
Caused by: java.lang.ClassCastException:
net.unicon.demetrius.fac.AbstractResourceFactory$FileImpl
at
net.unicon.academus.apps.briefcase.engine.FolderQuery.evaluateFolderXml(FolderQuery.java:
588)
at
net.unicon.academus.apps.briefcase.engine.FolderQuery.query(FolderQuery.java:
274)
at net.unicon.warlock.fac.AbstractWarlockFactory
$ScreenImpl.evaluate(AbstractWarlockFactory.java:428)

Here is my getContents method:

protected IResource[] getContents(IFolder f, ResourceType[] rt)
throws DemetriusException {

// Assertions.
if (f == null) {
String msg = "TEST Argument 'f [IFolder]' cannot be
null.";
throw new IllegalArgumentException(msg);
}
if (rt == null) {
String msg = "Argument 'rt' cannot be null.";
throw new IllegalArgumentException(msg);
}

System.out.println("IFolder: " + f.getName());
//Get the name of the current directory
String directory = f.getName();

//Create url path with the Ifolder given above
String absolutePath = this.baseUrl + directory;

System.out.println("Next Path: " + absolutePath);

IResource[] contents = new IResource[0];
boolean exists = false;
Enumeration props;
exists = wdr.exists();

if(exists){
int i = 0;
int length = 0;
try {
props = wdr.propfindMethod(DepthSupport.DEPTH_INFINITY);
while (props.hasMoreElements()){
XMLResponseMethodBase.Response xrm =
(XMLResponseMethodBase.Response)props.nextElement();
length++;
}
contents = new IResource[length];
} catch (HttpException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
props = wdr.propfindMethod(DepthSupport.DEPTH_INFINITY);

while (props.hasMoreElements()){
XMLResponseMethodBase.Response xrm =
(XMLResponseMethodBase.Response)props.nextElement();
if (xrm.getHref().endsWith("/")){
IResource resource = new FolderImpl(xrm.getHref(),
this,
0,
new
Date(wdr.getGetLastModified()),
f,
false);
System.out.println("Name: " + resource.getName());
contents[i] = resource;
}
else {
IResource resource = new FileImpl(xrm.getHref(),
this,
0,
new Date(dateLong),
f,
false,
null);
contents[i] = resource;

}
i++;
}
}
catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return contents;
}

Here is what some of my print statements are outputting:

getContents method output:
Name: /mccordl/.Trash-8731/
Name: /mccordl/warlock/
Name: /mccordl/Documents/
Name: /mccordl/images/
Name: /mccordl/content/
Name: /mccordl/
Name: /mccordl/.ssh/
Name: /mccordl/.gnupg/
Name: /mccordl/.screen/
Name: /mccordl/alchemist/
Name: /mccordl/Desktop/
Name: /mccordl/website/
Name: /mccordl/public_html/

FolderQuery evaluateFolderXml method output:
Size: 20
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@673552ec
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@453bc999
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FileImpl@b763f05a
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FileImpl@1db21c2b
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@1927b074
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@83c151fa
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@5d47df3
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@9174901d
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@25203658
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FileImpl@1d1719a0
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FileImpl@243e6f3d
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FileImpl@ed98c2f7
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@49324cdb
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@44ed8072
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@4bc2df3a
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@68a1fad0
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@fde75611
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FileImpl@174a9025
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FolderImpl@ef9f1d2b
Contents: net.unicon.demetrius.fac.AbstractResourceFactory
$FileImpl@3a882d93
Reply all
Reply to author
Forward
0 new messages