Re: class for BpropFindMethod
I could not have said this better myself. Ingo BPropfind allows you to arbitrarily specify resources that you want to do a propfind on. If all your resources are within a folder, then you can always vary the depth value to get all the information (and perhaps more). Microsoft is as usual trying to hijack the standard by introducing its own extensions (another extension is the brief: header). Given that they were a member of the RFC, it is despicable that they would knowingly introduce junk extensions like this. Its their typical arrogant way of working and I say that Slide should NEVER EVER support these M$ extensions. - Original Message - From: IndianAtTech [EMAIL PROTECTED] To: Miguel Figueiredo [EMAIL PROTECTED]; Slide Users Mailing List [EMAIL PROTECTED]; IndianAtTech [EMAIL PROTECTED] Sent: Thursday, September 30, 2004 1:05 PM Subject: Re: class for BpropFindMethod So you mean, this class is not Implemented. But i feel this is necessary because I found that is much faster. There is no need to send the requests multiple times to server. With single BROPFIND method request I can get more than one response information which increase the performance of client application. Thanks Suhdakar On Thu, 30 Sep 2004 17:54:06 +0100, Miguel Figueiredo [EMAIL PROTECTED] wrote: That's interesting... don't remember about BPROPFIND in RFC 2518. ___ Hello All, I have found slide has support for PROPFIND method. Just looking at the class that supports BPROPFIND method. What is the class I need to use. Or I need to write my own class I found the procedure to send the request to server regarding BROPFIND method here http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_ webdav_bpropfind.asp Thanks Best Regards Sudhakar - 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] - 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]
Re: class for BpropFindMethod
kranga wrote: BPropfind allows you to arbitrarily specify resources that you want to do a propfind on. If all your resources are within a folder, then you can always vary the depth value to get all the information (and perhaps more). Microsoft is as usual trying to hijack the standard by introducing its own extensions (another extension is the brief: header). Given that they were a member of the RFC, it is despicable that they would knowingly introduce junk extensions like this. Its their typical arrogant way of working and I say that Slide should NEVER EVER support these M$ extensions. I find that criticism a bit hard, although I'm certainly not a fan of Microsoft. 1) Extending HTTP/WebDAV with new headers, properties and methods is fine; this is supposed to be done if you need something and there's no standard for it. (*) 2) In *this* case, the methods are indeed *documented* by Microsoft in a public place (although it seems to me that actually implementing them in a non-MS product will also require guessworking and reverse-engineering). 3) In contrast, adding extensions and *not* documenting them is an extremely bad thing; see for instance Microsoft Sharepoint's way of breaking WebDAV. Best regards, Julian (*) Of course this means that things should be done right; for instance, when adding new identifiers to IETF-controlled namespaces (such as method names or headers), they should be registered at least though an Informational or Experimental RFC. -- green/bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: class for BpropFindMethod
Miguel Wrote: I don't know if Slide is supporting this MS webdav extension, but if I remember correctly someone said that slide was trying to be MS-compatible. kranga wrote: Its their typical arrogant way of working and I say that Slide should NEVER EVER support these M$ extensions. Which is true??. Just confused - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: class for BpropFindMethod
Hia folks, Again, don't remember correctly in witch context someone said that slide would try to be MS-Compatible. At least I believe they meant MS-interoperable. Also, I too agree with Julian and you folks. What's the point in supporting MS extensions if they can change it over night? Worse! Poorly written and bug-enabled! That's the strength in industry standards, in witch we should depend: only the best thinkers contribute to a standard, making it mature. Also, a standard is used by everyone, not just by one big company, improving interoperability and reusability. I don't like monopolist entities, but Microsoft as cool products, really productive tools when .net came our way. Wouldn't mind programming .net if they would continue to support standards as they seemed to do these last years: but these Microsoft 'standard' extensions make me feel like I belong in the open source community, and that there will be a never ending fight between them and us, despite how cool their tools look like. Best regards, Miguel IndianAtTech wrote: Miguel Wrote: I don't know if Slide is supporting this MS webdav extension, but if I remember correctly someone said that slide was trying to be MS-compatible. What's the definition of MS-compatible? Which MS product? And how compatible? In that it's interoperating, or so that it supports MS-specific extensions? kranga wrote: Its their typical arrogant way of working and I say that Slide should NEVER EVER support these M$ extensions. I'd say that if Slide wants to support MS extensions, it would make sense to document them in an IETF document (after community review). ... Julian -- green/bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760 - 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]
Re: class for BpropFindMethod
Hello All, Actually the reason to ask this question is we got a project related to JavaClient-MS Exchange Server Communication. After thorough investigation we find BPROPFIND as fast solution in our case One good thing is by extending PROPFIND class we are able to develop a class for BPROPFIND METHOD. Some people who loves/likes both MS products/Open Standards faces some problems. As MS products may try to hijak some of functionalities from open standards. In such scenarios Java (Open Source API always will be developed on Open standards) to MS products communication may be complicated. Anyhow we can leave this to slide developers as they know what to do and what not. Thanks for helping to all of you guys Regards Sudhakar - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: class for BpropFindMethod
[Disclaimer: I am an MS fan] I'd rather say, MS saw the need for further methods like the BPropfind and saw that making this the standard would them *literally* take years. Judging from the WebDAV lists I think Julian has a better idea how long it takes and how much hassle it is to get out the WebDAV standard ;) Isn't it just like the SQL thing: Oracle wants this and that and starts by doing it. IBM wants that and this and starts doing it. *Later on* people discuss what will be a the standard, but both Oracle and IBM have their extended functionality right away. Bottom line: If Sudhakar manages to write something like a BPROPFIND method and wants to contribute it to Slide I would be +1 for doing so. Oliver Julian Reschke wrote: kranga wrote: BPropfind allows you to arbitrarily specify resources that you want to do a propfind on. If all your resources are within a folder, then you can always vary the depth value to get all the information (and perhaps more). Microsoft is as usual trying to hijack the standard by introducing its own extensions (another extension is the brief: header). Given that they were a member of the RFC, it is despicable that they would knowingly introduce junk extensions like this. Its their typical arrogant way of working and I say that Slide should NEVER EVER support these M$ extensions. I find that criticism a bit hard, although I'm certainly not a fan of Microsoft. 1) Extending HTTP/WebDAV with new headers, properties and methods is fine; this is supposed to be done if you need something and there's no standard for it. (*) 2) In *this* case, the methods are indeed *documented* by Microsoft in a public place (although it seems to me that actually implementing them in a non-MS product will also require guessworking and reverse-engineering). 3) In contrast, adding extensions and *not* documenting them is an extremely bad thing; see for instance Microsoft Sharepoint's way of breaking WebDAV. Best regards, Julian (*) Of course this means that things should be done right; for instance, when adding new identifiers to IETF-controlled namespaces (such as method names or headers), they should be registered at least though an Informational or Experimental RFC. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: class for BpropFindMethod
I wouldn't say NEVER EVER. I would say, if there is somebody who implements that, provides test cases and documentation this (an IETF document would be nice, but takes time) we can add this to slide. That the users of slide - responsable for its self - has to determine whether to use it or not. Actually slide contains always some MS extenstions: 1st external transaction which I found very usefull I my current project and 2nd subscriptions. For BPROPFIND I can imagine it may reduce the number of webdav request-response pair, and so may improve performance. Stefan kranga wrote: BPropfind allows you to arbitrarily specify resources that you want to do a propfind on. If all your resources are within a folder, then you can always vary the depth value to get all the information (and perhaps more). Microsoft is as usual trying to hijack the standard by introducing its own extensions (another extension is the brief: header). Given that they were a member of the RFC, it is despicable that they would knowingly introduce junk extensions like this. Its their typical arrogant way of working and I say that Slide should NEVER EVER support these M$ extensions. - Original Message - From: IndianAtTech [EMAIL PROTECTED] To: Miguel Figueiredo [EMAIL PROTECTED]; Slide Users Mailing List [EMAIL PROTECTED]; IndianAtTech [EMAIL PROTECTED] Sent: Thursday, September 30, 2004 1:05 PM Subject: Re: class for BpropFindMethod So you mean, this class is not Implemented. But i feel this is necessary because I found that is much faster. There is no need to send the requests multiple times to server. With single BROPFIND method request I can get more than one response information which increase the performance of client application. Thanks Suhdakar On Thu, 30 Sep 2004 17:54:06 +0100, Miguel Figueiredo [EMAIL PROTECTED] wrote: That's interesting... don't remember about BPROPFIND in RFC 2518. ___ Hello All, I have found slide has support for PROPFIND method. Just looking at the class that supports BPROPFIND method. What is the class I need to use. Or I need to write my own class I found the procedure to send the request to server regarding BROPFIND method here http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_ webdav_bpropfind.asp Thanks Best Regards Sudhakar - 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] - 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]
Versioning - Rolling back to a previous version of a Node
Hi Guys, I am trying to find a way to programmatically (i.e. via the Slide kernal API ) roll back to a previous version of a Node. What I am trying to do is basically the following: 1. Create Node (revision no 1) 2. Update Node (revision no 2) 3. Update Node (revision no 3) 4. Update Node (revision no 4) 5. Update Node (revision no 5) 6. Rollback to revision no 3 (i.e. discard modifications in revisions 4 5) I thought that I would be able to acheive this via the org.apache.slide.content.NodeRevisionDescriptors class as it has a setLatestRevision() method however this only has package level visibility so I can't invoke it from my classes. Is there any other way to perform this operation ? Thanks Andy Bowes - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: JDBC stores
Miguel Figueiredo wrote: Hello folks, I got another weird problem... I was experimenting with JDBC stores, more explicitly with the mySql one. In attach I'm sending my domain.xml file. It is also getting the authentication info from a ldap server, to witch I configured two JNDIPrincipalStore, each of witch with a corresponding mySql store for locking and security purposes: the mySql databases are called slideustore for users and sliderstore for roles. For content store I've also created a mySql store, being the mySql database named slidecstore. There was a bug in the way JDBCStore sets up connection pooling with commons dbcp. This resulted in every dbcp-enabled store to use exactly the same connection pool and thus database. I just committed the fix to both HEAD and 2.1 branch. -- Unico - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: If ACL-inh=root, why cant user authenticate ?
I figured this out, to the extent that I keep the inheritance as described, but when I create a collection that must be invisible to /roles/user, I just change the Ace for that principal on that new collection to 'negative=true', execute an aclMethod with the new Ace array, and presto, elements of /roles/user are not able to access the resource. But, but, but, I still want /roles/root to be able to access the resource (for admin purposes). However, since root is a member of /roles/user, now root is excluded by the action just described above. Is there a way to exclude /roles/user and still allow /roles/root access ? The Dav spec, or Slide documentation, says that in the case of a conflicting permission (as here, where /roles/root has DAV:all and /roles/user has none) we end up with the /roles/user taking precedence (apparently). -Original Message- From: Nick Longinow [mailto:[EMAIL PROTECTED] Sent: Friday, October 01, 2004 12:13 PM To: 'Slide Users Mailing List' Subject: If ACL-inh=root, why cant user authenticate ? Help with a basic Slide/Dav question ? In domain.xml: Set /files acl-inheritance to 'root'. Set root permissions to allow /roles/user permission all but have that permission be inheritable=false. permission action=all subject=/roles/root inheritable=true/ permission action=all subject=all inheritable=false/ permission action=all subject=/roles/user inheritable=true/ Create user under /users, add a password prop, and add to /roles/user. -- User cant login. !! Now, Change inheritable on root permissions (above) to be true. User can login! I don't understand this. I don't want to have to set the permissions on the /roles/user to be inheritable because I am trying to limit the access of the principal /roles/user to deeper branch nodes, and only grant access to other principals, but if this inheritance is set to true, then collections constructed down the line from /files will get this permission, which I don't want it to have (and you cant remove it from that deeper collection node...) - 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]
[Newbie] Slide performance and scalability
I am working with a large open source project to build a learning management system (www.sakaiproject.org) - we need a content system. I have been tracking Slide over the past several years. I have used it in several projects and would like to adopt it for Sakai, but Sakai has some pretty high performance needs. As an example, Indiana University will run a site with 100,000 users and 10Million hits per day. I am wondering if there are some high perfomance installations of Slide that operate in that kind of environment. Feel free to drop me a direct e-Mail with a short summary of your installation. I really would like to use Slide because of its rich feature set and the fact that it is open source, but I am nervous about being the largest Slide installation on the planet and the fun that entails... Some of the people on the project would prefer to roll our own content management system with simpler semantics than Slide but then something that we can tune for performance and scalability as needed. Thanks in advance. Charles Severance Chief Architect, Sakai Project University of Michigan - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
External Transaction (as defined by MS) problem
Hello slide users, I am using slide 2.1b1 server and client. I tried to use the external transaction feature in the following way: init a WebdavResource startTransaction(); mkcolMethod(); (create a new collection) proppatchMethod(); (on the newly created collection) putMethod(); (put a new file in the newly created collection) commitTransaction(); everything works fine, the resources are created when i call the commitTransaction() but after this i am not able to create a new WebdavResource() object. I debugged it and i figured out that when the first PROPFIND method is issued (to get the basic properties) the server won't respond. It also don't works if i restart the client. I had to restart the server then it works. Can somebody help me, please? Thank you, Zoltan. __ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [Newbie] Slide performance and scalability
Hi Charles, I have no experience with installations that have requirements similar to yours. What I can tell you, however, is that it is most likely less work and more promissing to be successful to help tune *Slide* for better performance and scalability than to build something from scratch. Additionally, there are a lot of motivated people trying to bring Slide forward. You could benefit from this and help as well. I understand building something from scratch can be much more fun in the initial phase, but when it comes to the tough parts, I'd say you'd be much better of with Slide. Just my - naturally biased - view. Oliver [EMAIL PROTECTED] schrieb: I am working with a large open source project to build a learning management system (www.sakaiproject.org) - we need a content system. I have been tracking Slide over the past several years. I have used it in several projects and would like to adopt it for Sakai, but Sakai has some pretty high performance needs. As an example, Indiana University will run a site with 100,000 users and 10Million hits per day. I am wondering if there are some high perfomance installations of Slide that operate in that kind of environment. Feel free to drop me a direct e-Mail with a short summary of your installation. I really would like to use Slide because of its rich feature set and the fact that it is open source, but I am nervous about being the largest Slide installation on the planet and the fun that entails... Some of the people on the project would prefer to roll our own content management system with simpler semantics than Slide but then something that we can tune for performance and scalability as needed. Thanks in advance. Charles Severance Chief Architect, Sakai Project University of Michigan - 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]
Re: External Transaction (as defined by MS) problem
Hi Zoltan, it is pretty hard to tell what is actually going on without seeing the code. I however suspect the PROPFIND is done on a resource that is still locked by another transaction that has not been committed or rolled back. As this is on the server side it is of no use to restart the client. Try to have something like a commit/rollback in finally blocks to make very sure all transactions are properly terminated. By the way, what is the underlying persistence store? Depending on this there are different ways to find out what locks are on what resources. Note that Slide does no additional locking when running external transactions. Hope this helps otherwise please show us the code, Oliver L Z schrieb: Hello slide users, I am using slide 2.1b1 server and client. I tried to use the external transaction feature in the following way: init a WebdavResource startTransaction(); mkcolMethod(); (create a new collection) proppatchMethod(); (on the newly created collection) putMethod(); (put a new file in the newly created collection) commitTransaction(); everything works fine, the resources are created when i call the commitTransaction() but after this i am not able to create a new WebdavResource() object. I debugged it and i figured out that when the first PROPFIND method is issued (to get the basic properties) the server won't respond. It also don't works if i restart the client. I had to restart the server then it works. Can somebody help me, please? Thank you, Zoltan. __ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail - 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]
RE: [newbie] properties to files
Update: For adding properties, using this code: = boolean prop = wdr.proppatchMethod(/slide/files/test3.tif,new PropertyName(DAV:, mykey),myvalue,true); = Still looking for assistance on how to get all files that have property 'mykey' = 'myvalue'. -D -Original Message- From: Darren Hartford Sent: Friday, October 01, 2004 2:44 PM To: Slide Users Mailing List Subject: [newbie] properties to files Hey all, Going through the learning curve on Slide and on the WebDAV client api/library. I can successfully 'put' and 'get' binary files. However, I'm having a hard time understanding how to add properties to files for use in searching (and I'll ask now, how to search on a property). I'm guessing it is something with the 'proppatchmethod' method(s), but can't find any good examples on how to use these methods (and, in the same token, the propfindmethods). Any examples please? my code to-date: === WebdavResource wdr = null; HttpURL hrl = new HttpURL(http://localhost:8080/slide/files;); hrl.setUserinfo(root,root); wdr = new WebdavResource(hrl); if(wdr==null) { System.out.println(WDR creation failed); } //use root-based dir structure. Windows drive names cause issues (assume with colons) String filename = /test3.tif; File fn = new File(filename); System.out.println(can read file? + fn.canRead()); boolean writebol = wdr.putMethod(fn); //directory-type listing String arr[] = wdr.list(); int i=arr.length; while( --i = 0 ) { System.out.println( [+i+] +arr[ i ] ); } === -D - 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]
acl_inheritance_type=none, root cant login
If you configure domain.xml, with Tomcat, out of the box, so that acl_inheritance_type is set to 'none', then the user 'root' will not be able to authenticate to http://localhost:8080/slide. If you set it to 'root' or 'path' then the login will succeed. Any ideas why ? Nick
RE: ACL - how to prevent browsing into a collection ?
Miguel This is a good idea. It works, but then both members of the /roles/user and the root account can not access the resource, since root is a member of /roles/user. I will try to do this with acl_inheritance turned off, so I can set my own principals (groups) into the acl. Nick -Original Message- From: Miguel Figueiredo [mailto:[EMAIL PROTECTED] Sent: Thursday, September 30, 2004 4:59 AM To: 'Slide Users Mailing List' Subject: RE: ACL - how to prevent browsing into a collection ? Hello Nick, By default, a collection does not have any ACL definitions upon creation. The ones you are obtaining are the inherited ones. So changing an inherited ACL doesn't feel right for me. Perhaps slide mandates that to change an ACL, you must act upon the right resource (collection in this case). I would try this approach: get a WebdavResource instance of the 'folder' collection, and execute the AclMethod adding your read-deny ACE, for the right Principals (i.e. /roles/users/). If you are using root account, don't forget that root also makes part of the /roles/root/ Principal. Hope this helps, Miguel Figueiredo _ Hi I want to prevent users from browsing into a collection (folder) that contains documents, and so am trying to adjust the ACL for the collection. My method is to retrieve the ACL for the collection and then set the 'negative' property to true (deny), where it had been false by default. But, I can still login to the repository as a /roles/user member and see things, in fact, delete elements of the collection. What am I doing wrong ? Nick - 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]
Re: class for BpropFindMethod
That's noting special about it We just change the code generateRequestBody() printer.writeElement(D, target, XMLPrinter.OPENING); for (int i = 0; i urllist.length; i++) { String targetURL = urllist[i].toString(); printer.writeElement(D, href, XMLPrinter.OPENING); printer.writeText(targetURL); printer.writeElement(D, href, XMLPrinter.CLOSING); } printer.writeElement(D, target, XMLPrinter.CLOSING); This above code snippet allows us to get the multiple responses urllist is a string array that was passed to a constructor Here is the full body protected String generateRequestBody() { XMLPrinter printer = new XMLPrinter(); printer.writeXMLHeader(); printer.writeElement(D, DAV:, propfind, XMLPrinter.OPENING); printer.writeElement(D, target, XMLPrinter.OPENING); for (int i = 0; i urllist.length; i++) { String targetURL = urllist[i].toString(); printer.writeElement(D, href, XMLPrinter.OPENING); printer.writeText(targetURL); printer.writeElement(D, href, XMLPrinter.CLOSING); } printer.writeElement(D, target, XMLPrinter.CLOSING); switch (type) { case ALL: printer.writeElement(D, allprop, XMLPrinter.NO_CONTENT); break; case NAMES: printer.writeElement(D, propname, XMLPrinter.NO_CONTENT); break; case BY_NAME: printer.writeElement(D, prop, XMLPrinter.OPENING); for (int i = 0; i propertyNames.length; i++) { String namespace = propertyNames[i].getNamespaceURI(); String localname = propertyNames[i].getLocalName(); if (DAV:.equals(namespace)) { printer.writeElement(D, localname, XMLPrinter.NO_CONTENT); } else { if (namespace.length() 0) { printer.writeElement(ZZ, namespace, localname, XMLPrinter.NO_CONTENT); } else { printer.writeElement(null, null, localname, XMLPrinter.NO_CONTENT); } } } printer.writeElement(D, prop, XMLPrinter.CLOSING); break; } printer.writeElement(D, propfind, XMLPrinter.CLOSING); return printer.toString(); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]