You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by lu...@apache.org on 2005/02/02 12:35:11 UTC

cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind ResourceKindManager.java

luetzkendorf    2005/02/02 03:35:11

  Modified:    src/webdav/server/org/apache/slide/webdav/util/resourcekind
                        ResourceKindManager.java
  Log:
  features attribute in resource kind configuration now is considered
  
  Revision  Changes    Path
  1.7       +37 -12    jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKindManager.java
  
  Index: ResourceKindManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/resourcekind/ResourceKindManager.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ResourceKindManager.java	21 Jan 2005 16:11:48 -0000	1.6
  +++ ResourceKindManager.java	2 Feb 2005 11:35:11 -0000	1.7
  @@ -27,6 +27,7 @@
   import java.util.HashMap;
   import java.util.Iterator;
   import java.util.Map;
  +import java.util.StringTokenizer;
   
   import javax.xml.parsers.ParserConfigurationException;
   import javax.xml.parsers.SAXParser;
  @@ -47,6 +48,7 @@
   import org.apache.slide.webdav.util.DeltavConstants;
   import org.apache.slide.webdav.util.UriHandler;
   import org.apache.slide.webdav.util.WebdavConstants;
  +import org.apache.slide.webdav.util.WebdavFeatures;
   import org.apache.slide.webdav.util.properties.ConfigurablePropertyComputer;
   import org.apache.slide.webdav.util.properties.ConfigurablePropertyValueValidator;
   import org.apache.slide.webdav.util.properties.PropertyComputer;
  @@ -228,7 +230,14 @@
                           propConfig.getAttribute("name"),
                           propConfig.getAttribute("namespace", "DAV:"));
                   
  -                // TODO check features
  +                // check features
  +                boolean enabled = true;
  +                for(StringTokenizer t = new StringTokenizer(
  +                        propConfig.getAttribute("features", "")," "); t.hasMoreTokens();) {
  +                    if (!WebdavFeatures.isSupported(t.nextToken())) enabled = false;
  +                }
  +                if (!enabled) continue;
  +                
                   
                   StringBuffer message = new StringBuffer();
                   message.append(kind + " (property: " + name);
  @@ -237,6 +246,8 @@
                       message.append(" comupted" );
                       registerComputedProperty(kind, name, p, propConfig);
                   } 
  +                // TODO handle properties which are not enabled but protected
  +                // see DAV:supported-live-property in RFC 3253
                   p = propConfig.getAttribute("protected", "false");
                   if ("true".equals(p)) {
                       registerProtectedProperty(kind, name);
  @@ -263,11 +274,11 @@
                           // ignore, no default
                       }
                   }
  -                
  +            
                   // live property
                   message.append(" live");
                   registerLiveProperty(kind, name);
  -                
  +            
                   message.append(")");
                   log(message.toString());
               }
  @@ -282,9 +293,16 @@
               for(Enumeration e = subConfig.getConfigurations("report"); e.hasMoreElements();) {
                   Configuration repConfig = (Configuration)e.nextElement();
                   
  -                // TODO check features
  -                registerReport(kind, repConfig.getAttribute("name"));
  -                log(kind + " (report: " + repConfig.getAttribute("name") + ")");
  +                // check features
  +                boolean enabled = true;
  +                for(StringTokenizer t = new StringTokenizer(
  +                        repConfig.getAttribute("features", "")," "); t.hasMoreTokens();) {
  +                    if (!WebdavFeatures.isSupported(t.nextToken())) enabled = false;
  +                }
  +                if (enabled) {
  +                    registerReport(kind, repConfig.getAttribute("name"));
  +                    log(kind + " (report: " + repConfig.getAttribute("name") + ")");
  +                }
               }
           }
       }
  @@ -296,9 +314,16 @@
               for(Enumeration e = subConfig.getConfigurations("method"); e.hasMoreElements();) {
                   Configuration methodConfig = (Configuration)e.nextElement();
                   
  -                // TODO check features
  -                registerMethod(kind, methodConfig.getAttribute("name"));
  -                log(kind + " (method: " + methodConfig.getAttribute("name") + ")");
  +                // check features
  +                boolean enabled = true;
  +                for(StringTokenizer t = new StringTokenizer(
  +                        methodConfig.getAttribute("features", "")," "); t.hasMoreTokens();) {
  +                    if (!WebdavFeatures.isSupported(t.nextToken())) enabled = false;
  +                }
  +                if (enabled) {
  +                    registerMethod(kind, methodConfig.getAttribute("name"));
  +                    log(kind + " (method: " + methodConfig.getAttribute("name") + ")");
  +                }
               }
           }
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org