You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2010/02/23 14:37:40 UTC

svn commit: r915339 [2/4] - in /jackrabbit/trunk/jackrabbit-jcr-server/src: main/java/org/apache/jackrabbit/server/io/ main/java/org/apache/jackrabbit/server/jcr/ main/java/org/apache/jackrabbit/server/remoting/davex/ main/java/org/apache/jackrabbit/se...

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/AbstractResource.java Tue Feb 23 13:37:38 2010
@@ -48,6 +48,7 @@
 import org.apache.jackrabbit.webdav.property.DefaultDavProperty;
 import org.apache.jackrabbit.webdav.property.HrefProperty;
 import org.apache.jackrabbit.webdav.property.ResourceType;
+import org.apache.jackrabbit.webdav.property.PropEntry;
 import org.apache.jackrabbit.webdav.search.QueryGrammerSet;
 import org.apache.jackrabbit.webdav.search.SearchInfo;
 import org.apache.jackrabbit.webdav.search.SearchResource;
@@ -184,7 +185,7 @@
     /**
      * @see org.apache.jackrabbit.webdav.DavResource#getProperty(org.apache.jackrabbit.webdav.property.DavPropertyName)
      */
-    public DavProperty getProperty(DavPropertyName name) {
+    public DavProperty<?> getProperty(DavPropertyName name) {
         return getProperties().get(name);
     }
 
@@ -205,7 +206,7 @@
      * @throws DavException Always throws {@link DavServletResponse#SC_METHOD_NOT_ALLOWED}
      * @see org.apache.jackrabbit.webdav.DavResource#setProperty(org.apache.jackrabbit.webdav.property.DavProperty)
      */
-    public void setProperty(DavProperty property) throws DavException {
+    public void setProperty(DavProperty<?> property) throws DavException {
         throw new DavException(DavServletResponse.SC_METHOD_NOT_ALLOWED);
     }
 
@@ -225,7 +226,7 @@
      *
      * @see DavResource#alterProperties(List)
      */
-    public MultiStatusResponse alterProperties(List changeList) throws DavException {
+    public MultiStatusResponse alterProperties(List<? extends PropEntry> changeList) throws DavException {
         throw new DavException(DavServletResponse.SC_METHOD_NOT_ALLOWED);
     }
 
@@ -295,7 +296,7 @@
      * todo improve....
      */
     public ActiveLock[] getLocks() {
-        List locks = new ArrayList();
+        List<ActiveLock> locks = new ArrayList<ActiveLock>();
         // tx locks
         ActiveLock l = getLock(TransactionConstants.TRANSACTION, TransactionConstants.LOCAL);
         if (l != null) {
@@ -315,7 +316,7 @@
                 locks.add(l);
             }
         }
-        return (ActiveLock[]) locks.toArray(new ActiveLock[locks.size()]);
+        return locks.toArray(new ActiveLock[locks.size()]);
     }
 
     /**
@@ -471,17 +472,17 @@
      * @see DeltaVResource#getReferenceResources(org.apache.jackrabbit.webdav.property.DavPropertyName)
      */
     public DavResource[] getReferenceResources(DavPropertyName hrefPropertyName) throws DavException {
-        DavProperty prop = getProperty(hrefPropertyName);
+        DavProperty<?> prop = getProperty(hrefPropertyName);
         if (prop == null || !(prop instanceof HrefProperty)) {
             throw new DavException(DavServletResponse.SC_CONFLICT, "Unknown Href-Property '"+hrefPropertyName+"' on resource "+getResourcePath());
         }
 
-        List hrefs = ((HrefProperty)prop).getHrefs();
+        List<String> hrefs = ((HrefProperty)prop).getHrefs();
         DavResource[] refResources = new DavResource[hrefs.size()];
-        Iterator hrefIter = hrefs.iterator();
+        Iterator<String> hrefIter = hrefs.iterator();
         int i = 0;
         while (hrefIter.hasNext()) {
-            refResources[i] = getResourceFromHref((String)hrefIter.next());
+            refResources[i] = getResourceFromHref(hrefIter.next());
             i++;
         }
         return refResources;
@@ -539,31 +540,31 @@
      */
     protected void initProperties() {
         if (getDisplayName() != null) {
-            properties.add(new DefaultDavProperty(DavPropertyName.DISPLAYNAME, getDisplayName()));
+            properties.add(new DefaultDavProperty<String>(DavPropertyName.DISPLAYNAME, getDisplayName()));
         }
         if (isCollection()) {
             properties.add(new ResourceType(ResourceType.COLLECTION));
             // Windows XP support
-            properties.add(new DefaultDavProperty(DavPropertyName.ISCOLLECTION, "1"));
+            properties.add(new DefaultDavProperty<String>(DavPropertyName.ISCOLLECTION, "1"));
         } else {
             properties.add(new ResourceType(ResourceType.DEFAULT_RESOURCE));
             // Windows XP support
-            properties.add(new DefaultDavProperty(DavPropertyName.ISCOLLECTION, "0"));
+            properties.add(new DefaultDavProperty<String>(DavPropertyName.ISCOLLECTION, "0"));
         }
         // todo: add etag
 
         // default last modified
         String lastModified = IOUtil.getLastModified(getModificationTime());
-        properties.add(new DefaultDavProperty(DavPropertyName.GETLASTMODIFIED, lastModified));
+        properties.add(new DefaultDavProperty<String>(DavPropertyName.GETLASTMODIFIED, lastModified));
 
         // default creation time
-        properties.add(new DefaultDavProperty(DavPropertyName.CREATIONDATE, HttpDateFormat.creationDateFormat().format(new Date(0))));
+        properties.add(new DefaultDavProperty<String>(DavPropertyName.CREATIONDATE, HttpDateFormat.creationDateFormat().format(new Date(0))));
 
         // supported lock property
         properties.add(supportedLock);
 
         // set current lock information. If no lock is applied to this resource,
-        // an empty lockdiscovery will be returned in the response.
+        // an empty xlockdiscovery will be returned in the response.
         properties.add(new LockDiscovery(getLocks()));
 
         properties.add(new SupportedMethodSetProperty(getSupportedMethods().split(",\\s")));
@@ -571,8 +572,8 @@
         // DeltaV properties
         properties.add(supportedReports);
         // creator-displayname, comment: not value available from jcr
-        properties.add(new DefaultDavProperty(DeltaVConstants.CREATOR_DISPLAYNAME, null, true));
-        properties.add(new DefaultDavProperty(DeltaVConstants.COMMENT, null, true));
+        properties.add(new DefaultDavProperty<String>(DeltaVConstants.CREATOR_DISPLAYNAME, null, true));
+        properties.add(new DefaultDavProperty<String>(DeltaVConstants.COMMENT, null, true));
 
         // 'workspace' property as defined by RFC 3253
         String workspaceHref = getWorkspaceHref();
@@ -580,7 +581,7 @@
             properties.add(new HrefProperty(DeltaVConstants.WORKSPACE, workspaceHref, true));
         }
         // name of the jcr workspace
-        properties.add(new DefaultDavProperty(ItemResourceConstants.JCR_WORKSPACE_NAME,
+        properties.add(new DefaultDavProperty<String>(ItemResourceConstants.JCR_WORKSPACE_NAME,
                 getRepositorySession().getWorkspace().getName()));
 
         // TODO: required supported-live-property-set
@@ -746,4 +747,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DavLocatorFactoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DavLocatorFactoryImpl.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DavLocatorFactoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DavLocatorFactoryImpl.java Tue Feb 23 13:37:38 2010
@@ -45,6 +45,7 @@
      * @return
      * @see AbstractLocatorFactory#getRepositoryPath(String, String)
      */
+    @Override
     protected String getRepositoryPath(String resourcePath, String wspPath) {
         if (resourcePath == null) {
             return null;
@@ -73,6 +74,7 @@
      * @return
      * @see AbstractLocatorFactory#getResourcePath(String, String)
      */
+    @Override
     protected String getResourcePath(String repositoryPath, String wspPath) {
         if (wspPath != null) {
             StringBuffer b = new StringBuffer(wspPath);

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemCollection.java Tue Feb 23 13:37:38 2010
@@ -26,7 +26,6 @@
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -44,6 +43,8 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.UnsupportedRepositoryOperationException;
+import javax.jcr.version.VersionIterator;
+import javax.jcr.version.Version;
 import javax.jcr.lock.Lock;
 import javax.jcr.nodetype.NodeType;
 import javax.xml.parsers.ParserConfigurationException;
@@ -82,6 +83,7 @@
 import org.apache.jackrabbit.webdav.property.DavPropertyName;
 import org.apache.jackrabbit.webdav.property.DefaultDavProperty;
 import org.apache.jackrabbit.webdav.property.HrefProperty;
+import org.apache.jackrabbit.webdav.property.PropEntry;
 import org.apache.jackrabbit.webdav.xml.DomUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -116,6 +118,7 @@
     /**
      * @see org.apache.jackrabbit.webdav.DavResource#getComplianceClass()
      */
+    @Override
     public String getComplianceClass() {
         String cc = super.getComplianceClass();
         if (isOrderable()) {
@@ -148,6 +151,7 @@
     /**
      * @see org.apache.jackrabbit.webdav.DavResource#getSupportedMethods()
      */
+    @Override
     public String getSupportedMethods() {
         String ms = super.getSupportedMethods();
         if (isOrderable()) {
@@ -177,6 +181,7 @@
      * @throws IOException
      * @see Session#exportSystemView(String, OutputStream, boolean, boolean)
      */
+    @Override
     public void spool(OutputContext outputContext) throws IOException {
         // spool properties
         super.spool(outputContext);
@@ -207,7 +212,8 @@
      * @see org.apache.jackrabbit.webdav.DavResource#setProperty(org.apache.jackrabbit.webdav.property.DavProperty)
      * @see #JCR_MIXINNODETYPES
      */
-    public void setProperty(DavProperty property) throws DavException {
+    @Override
+    public void setProperty(DavProperty<?> property) throws DavException {
         internalSetProperty(property);
         complete();
     }
@@ -219,7 +225,7 @@
      * @throws DavException
      * @see #setProperty(DavProperty)
      */
-    private void internalSetProperty(DavProperty property) throws DavException {
+    private void internalSetProperty(DavProperty<?> property) throws DavException {
         if (!exists()) {
             throw new DavException(DavServletResponse.SC_NOT_FOUND);
         }
@@ -227,12 +233,11 @@
         if (JCR_MIXINNODETYPES.equals(propName)) {
             Node n = (Node) item;
             try {
-                NodeType[] existingMixin = n.getMixinNodeTypes();
                 NodeTypeProperty mix = new NodeTypeProperty(property);
-                Set mixins = mix.getNodeTypeNames();
+                Set<String> mixins = mix.getNodeTypeNames();
 
-                for (int i = 0; i < existingMixin.length; i++) {
-                    String name = existingMixin[i].getName();
+                for (NodeType existingMixin : n.getMixinNodeTypes()) {
+                    String name = existingMixin.getName();
                     if (mixins.contains(name)){
                         // do not add existing mixins
                         mixins.remove(name);
@@ -243,9 +248,8 @@
                 }
 
                 // add the remaining mixing types that are not yet set
-                Iterator it = mixins.iterator();
-                while (it.hasNext()) {
-                    n.addMixin((String)it.next());
+                for (String mixin : mixins) {
+                    n.addMixin(mixin);
                 }
             } catch (RepositoryException e) {
                 throw new JcrDavException(e);
@@ -254,9 +258,9 @@
             Node n = (Node) item;
             try {
                 NodeTypeProperty ntProp = new NodeTypeProperty(property);
-                Set names = ntProp.getNodeTypeNames();
+                Set<String> names = ntProp.getNodeTypeNames();
                 if (names.size() == 1) {
-                    String ntName = names.iterator().next().toString();
+                    String ntName = names.iterator().next();
                     n.setPrimaryType(ntName);
                 } else {
                     // only a single node type can be primary node type.
@@ -266,7 +270,7 @@
                 throw new JcrDavException(e);
             }
         } else {
-            // all props except for mixinnodetypes and primaryType are read-only
+            // all props except for mixin node types and primaryType are read-only
             throw new DavException(DavServletResponse.SC_CONFLICT);
         }
     }
@@ -280,6 +284,7 @@
      * @see org.apache.jackrabbit.webdav.DavResource#removeProperty(org.apache.jackrabbit.webdav.property.DavPropertyName)
      * @see #JCR_MIXINNODETYPES
      */
+    @Override
     public void removeProperty(DavPropertyName propertyName) throws DavException {
         internalRemoveProperty(propertyName);
         complete();
@@ -300,16 +305,15 @@
             // remove all mixin nodetypes
             try {
                 Node n = (Node)item;
-                NodeType[] mixins = n.getMixinNodeTypes();
-                for (int i = 0; i < mixins.length; i++) {
-                    n.removeMixin(mixins[i].getName());
+                for (NodeType mixin : n.getMixinNodeTypes()) {
+                    n.removeMixin(mixin.getName());
                 }
             } catch (RepositoryException e) {
                 // NoSuchNodeTypeException, ConstraintViolationException should never occur...
                 throw new JcrDavException(e);
             }
         } else {
-            // all props except for mixinnodetypes are read-only
+            // all props except for mixin node types are read-only
             throw new DavException(DavServletResponse.SC_CONFLICT);
         }
     }
@@ -328,17 +332,16 @@
      * @return
      * @throws DavException
      */
-    public MultiStatusResponse alterProperties(List changeList) throws DavException {
-        Iterator it = changeList.iterator();
-        while (it.hasNext()) {
-            Object propEntry = it.next();
+    @Override
+    public MultiStatusResponse alterProperties(List<? extends PropEntry> changeList) throws DavException {
+        for (PropEntry propEntry : changeList) {
             if (propEntry instanceof DavPropertyName) {
                 // use the internal remove method in order to prevent premature 'save'
                 DavPropertyName propName = (DavPropertyName) propEntry;
                 internalRemoveProperty(propName);
             } else if (propEntry instanceof DavProperty) {
                 // use the internal set method in order to prevent premature 'save'
-                DavProperty prop = (DavProperty) propEntry;
+                DavProperty<?> prop = (DavProperty<?>) propEntry;
                 internalSetProperty(prop);
             } else {
                 throw new IllegalArgumentException("unknown object in change list: " + propEntry.getClass().getName());
@@ -347,7 +350,7 @@
         // TODO: missing undo of successful set/remove if subsequent operation fails
         // NOTE, that this is relevant with transactions only.
 
-        // success: save all changes together if no error occured
+        // success: save all changes together if no error occurred
         complete();
         return new MultiStatusResponse(getHref(), DavServletResponse.SC_OK);
     }
@@ -404,8 +407,8 @@
                         }
                     }
                     if (getTransactionId() == null) {
-                        // if not part of a transaction directely import on workspace
-                        // since changes would be explicitely saved in the
+                        // if not part of a transaction directly import on workspace
+                        // since changes would be explicitly saved in the
                         // complete-call.
                         getRepositorySession().getWorkspace().importXML(itemPath, in, uuidBehavior);
                     } else {
@@ -483,7 +486,7 @@
      * @see org.apache.jackrabbit.webdav.DavResource#getMembers()
      */
     public DavResourceIterator getMembers() {
-        ArrayList memberList = new ArrayList();
+        ArrayList<DavResource> memberList = new ArrayList<DavResource>();
         if (exists()) {
             try {
                 Node n = (Node)item;
@@ -547,6 +550,7 @@
      * fails, false is returned.
      * @see org.apache.jackrabbit.webdav.DavResource#hasLock(org.apache.jackrabbit.webdav.lock.Type, org.apache.jackrabbit.webdav.lock.Scope)
      */
+    @Override
     public boolean hasLock(Type type, Scope scope) {
         if (isLockable(type, scope)) {
             if (Type.WRITE.equals(type)) {
@@ -573,6 +577,7 @@
      * @see org.apache.jackrabbit.webdav.DavResource#getLock(org.apache.jackrabbit.webdav.lock.Type, org.apache.jackrabbit.webdav.lock.Scope)
      * @see javax.jcr.Node#getLock() for the write locks.
      */
+    @Override
     public ActiveLock getLock(Type type, Scope scope) {
         ActiveLock lock = null;
         if (Type.WRITE.equals(type)) {
@@ -608,6 +613,7 @@
      * @see org.apache.jackrabbit.webdav.DavResource#lock(org.apache.jackrabbit.webdav.lock.LockInfo)
      * @see Node#lock(boolean, boolean)
      */
+    @Override
     public ActiveLock lock(LockInfo reqLockInfo) throws DavException {
 
         if (!isLockable(reqLockInfo.getType(), reqLockInfo.getScope())) {
@@ -648,6 +654,7 @@
      * @see org.apache.jackrabbit.webdav.DavResource#refreshLock(org.apache.jackrabbit.webdav.lock.LockInfo, String)
      * @see javax.jcr.lock.Lock#refresh()
      */
+    @Override
     public ActiveLock refreshLock(LockInfo reqLockInfo, String lockToken)
             throws DavException {
 
@@ -688,6 +695,7 @@
      * @see org.apache.jackrabbit.webdav.DavResource#unlock(String)
      * @see javax.jcr.Node#unlock()
      */
+    @Override
     public void unlock(String lockToken) throws DavException {
         ActiveLock lock = getWriteLock();
         if (lock != null && lockToken.equals(lock.getToken())) {
@@ -761,12 +769,11 @@
             throw new DavException(DavServletResponse.SC_UNPROCESSABLE_ENTITY, "Only DAV:custom ordering type supported.");
         }
 
-        OrderPatch.Member[] instructions = orderPatch.getOrderInstructions();
         Node n = (Node)item;
         try {
-            for (int i = 0; i < instructions.length; i++) {
-                String srcRelPath = Text.unescape(instructions[i].getMemberHandle());
-                Position pos = instructions[i].getPosition();
+            for (OrderPatch.Member instruction : orderPatch.getOrderInstructions()) {
+                String srcRelPath = Text.unescape(instruction.getMemberHandle());
+                Position pos = instruction.getPosition();
                 String destRelPath = getRelDestinationPath(pos, n.getNodes());
                 // preform the reordering
                 n.orderBefore(srcRelPath, destRelPath);
@@ -807,7 +814,7 @@
             String afterRelPath = position.getSegment();
             boolean found = false;
             // jcr only knows order-before > retrieve the node that follows the
-            // one incidated by the 'afterRelPath'.
+            // one indicated by the 'afterRelPath'.
             while (childNodes.hasNext() && destRelPath == null) {
                 // compare to last segment of node-path instead of name.
                 String childRelPath = Text.getName(childNodes.nextNode().getPath());
@@ -818,7 +825,7 @@
                 }
             }
         } else {
-            // before or last. in the latter case the segmet is 'null'
+            // before or last. in the latter case the segment is 'null'
             destRelPath = position.getSegment();
         }
         if (destRelPath != null) {
@@ -836,6 +843,7 @@
      *
      * @see org.apache.jackrabbit.JcrConstants#MIX_LOCKABLE
      */
+    @Override
     protected void initLockSupport() {
         super.initLockSupport();
         // add exclusive write lock if allowed for the given node
@@ -859,6 +867,7 @@
      *
      * @see org.apache.jackrabbit.webdav.version.report.SupportedReportSetProperty
      */
+    @Override
     protected void initSupportedReports() {
         super.initSupportedReports();
         if (exists()) {
@@ -870,17 +879,18 @@
     /**
      * Fill the property set for this resource.
      */
+    @Override
     protected void initProperties() {
         super.initProperties();
         if (exists()) {
             // resource is serialized as system-view (xml)
-            properties.add(new DefaultDavProperty(DavPropertyName.GETCONTENTTYPE, "text/xml"));
+            properties.add(new DefaultDavProperty<String>(DavPropertyName.GETCONTENTTYPE, "text/xml"));
             Node n = (Node)item;
             // overwrite the default creation date if possible
             try {
                 if (n.hasProperty(JcrConstants.JCR_CREATED)) {
                     long creationTime = n.getProperty(JcrConstants.JCR_CREATED).getValue().getLong();
-                    properties.add(new DefaultDavProperty(DavPropertyName.CREATIONDATE,
+                    properties.add(new DefaultDavProperty<String>(DavPropertyName.CREATIONDATE,
                         HttpDateFormat.creationDateFormat().format(new Date(creationTime))));
                 }
             } catch (RepositoryException e) {
@@ -891,11 +901,11 @@
             try {
                 properties.add(new NodeTypeProperty(JCR_PRIMARYNODETYPE, n.getPrimaryNodeType(), false));
                 properties.add(new NodeTypeProperty(JCR_MIXINNODETYPES, n.getMixinNodeTypes(), false));
-                properties.add(new DefaultDavProperty(JCR_INDEX, new Integer(n.getIndex()), true));
+                properties.add(new DefaultDavProperty<Integer>(JCR_INDEX, n.getIndex(), true));
                 addHrefProperty(JCR_REFERENCES, n.getReferences(), true);
                 addHrefProperty(JCR_WEAK_REFERENCES, n.getWeakReferences(), true);
                 if (n.isNodeType(JcrConstants.MIX_REFERENCEABLE)) {
-                    properties.add(new DefaultDavProperty(JCR_UUID, n.getUUID(), true));
+                    properties.add(new DefaultDavProperty<String>(JCR_UUID, n.getUUID(), true));
                 }
             } catch (RepositoryException e) {
                 log.error("Failed to retrieve node-specific property: " + e);
@@ -938,7 +948,7 @@
 
     /**
      * Add a new {@link HrefProperty href property} to the property set, where
-     * all items present in the specifed iterator are referenced in the
+     * all properties present in the specifed iterator are referenced in the
      * resulting property.
      *
      * @param name
@@ -946,13 +956,31 @@
      * @param isProtected
      * @see #addHrefProperty(DavPropertyName, Item[], boolean)
      */
-    protected void addHrefProperty(DavPropertyName name, Iterator itemIterator,
+    protected void addHrefProperty(DavPropertyName name, PropertyIterator itemIterator,
+                                   boolean isProtected) {
+        ArrayList<Property> l = new ArrayList<Property>();
+        while (itemIterator.hasNext()) {
+            l.add(itemIterator.nextProperty());
+        }
+        addHrefProperty(name, l.toArray(new Property[l.size()]), isProtected);
+    }
+
+    /**
+     * Add a new {@link HrefProperty href property} to the property set, where
+     * all versions present in the specifed iterator are referenced in the
+     * resulting property.
+     *
+     * @param name
+     * @param itemIterator
+     * @param isProtected
+     */
+    protected void addHrefProperty(DavPropertyName name, VersionIterator itemIterator,
                                    boolean isProtected) {
-        ArrayList l = new ArrayList();
+        ArrayList<Version> l = new ArrayList<Version>();
         while (itemIterator.hasNext()) {
-            l.add(itemIterator.next());
+            l.add(itemIterator.nextVersion());
         }
-        addHrefProperty(name, (Item[]) l.toArray(new Item[l.size()]), isProtected);
+        addHrefProperty(name, l.toArray(new Version[l.size()]), isProtected);
     }
 
     /**
@@ -967,7 +995,7 @@
         String errorMsg = "Cannot parse stream into a 'ValuesProperty'.";
         try {
             Document reqBody = DomUtil.BUILDER_FACTORY.newDocumentBuilder().parse(in);
-            DavProperty defaultProp = DefaultDavProperty.createFromXml(reqBody.getDocumentElement());
+            DavProperty<?> defaultProp = DefaultDavProperty.createFromXml(reqBody.getDocumentElement());
             ValuesProperty vp = new ValuesProperty(defaultProp, PropertyType.STRING, getRepositorySession().getValueFactory());
             return vp;
         } catch (IOException e) {

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemResource.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemResource.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemResource.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/DefaultItemResource.java Tue Feb 23 13:37:38 2010
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.webdav.jcr;
 
+import org.apache.jackrabbit.server.io.IOUtil;
 import org.apache.jackrabbit.webdav.DavException;
 import org.apache.jackrabbit.webdav.DavResource;
 import org.apache.jackrabbit.webdav.DavResourceFactory;
@@ -24,7 +25,6 @@
 import org.apache.jackrabbit.webdav.DavResourceLocator;
 import org.apache.jackrabbit.webdav.DavServletResponse;
 import org.apache.jackrabbit.webdav.MultiStatusResponse;
-import org.apache.jackrabbit.webdav.xml.DomUtil;
 import org.apache.jackrabbit.webdav.io.InputContext;
 import org.apache.jackrabbit.webdav.io.OutputContext;
 import org.apache.jackrabbit.webdav.jcr.property.LengthsProperty;
@@ -34,10 +34,9 @@
 import org.apache.jackrabbit.webdav.lock.Type;
 import org.apache.jackrabbit.webdav.property.DavProperty;
 import org.apache.jackrabbit.webdav.property.DavPropertyName;
-import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;
-import org.apache.jackrabbit.webdav.property.DavPropertySet;
 import org.apache.jackrabbit.webdav.property.DefaultDavProperty;
-import org.apache.jackrabbit.server.io.IOUtil;
+import org.apache.jackrabbit.webdav.property.PropEntry;
+import org.apache.jackrabbit.webdav.xml.DomUtil;
 import org.apache.xml.serialize.OutputFormat;
 import org.apache.xml.serialize.XMLSerializer;
 import org.slf4j.Logger;
@@ -49,16 +48,15 @@
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
-import javax.jcr.ValueFormatException;
 import javax.jcr.ValueFactory;
+import javax.jcr.ValueFormatException;
 import javax.xml.parsers.ParserConfigurationException;
-import java.io.InputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.Collections;
 import java.util.Date;
+import java.util.List;
 
 /**
  * <code>DefaultItemResource</code> represents JCR property item.
@@ -113,6 +111,7 @@
      * @param outputContext
      * @see DavResource#spool(OutputContext)
      */
+    @Override
     public void spool(OutputContext outputContext) throws IOException {
         // write properties
         super.spool(outputContext);
@@ -158,7 +157,8 @@
      * @throws DavException
      * @see DavResource#setProperty(org.apache.jackrabbit.webdav.property.DavProperty)
      */
-    public void setProperty(DavProperty property) throws DavException {
+    @Override
+    public void setProperty(DavProperty<?> property) throws DavException {
         internalSetProperty(property);
         complete();
     }
@@ -169,9 +169,9 @@
      * @param property
      * @throws DavException
      * @see #setProperty(DavProperty)
-     * @see #alterProperties(DavPropertySet, DavPropertyNameSet)
+     * @see #alterProperties(List)
      */
-    private void internalSetProperty(DavProperty property) throws DavException {
+    private void internalSetProperty(DavProperty<?> property) throws DavException {
         if (!exists()) {
             throw new DavException(DavServletResponse.SC_NOT_FOUND);
         }
@@ -201,6 +201,7 @@
      * @throws DavException
      * @see org.apache.jackrabbit.webdav.DavResource#removeProperty(org.apache.jackrabbit.webdav.property.DavPropertyName)
      */
+    @Override
     public void removeProperty(DavPropertyName propertyName) throws DavException {
         if (!exists()) {
             throw new DavException(DavServletResponse.SC_NOT_FOUND);
@@ -220,16 +221,15 @@
      * @throws DavException
      * @see DavResource#alterProperties(List)
      */
-    public MultiStatusResponse alterProperties(List changeList) throws DavException {
-        Iterator it = changeList.iterator();
-        while (it.hasNext()) {
-            Object propEntry = it.next();
+    @Override
+    public MultiStatusResponse alterProperties(List<? extends PropEntry> changeList) throws DavException {
+        for (PropEntry propEntry : changeList) {
             if (propEntry instanceof DavPropertyName) {
                 // altering any properties fails if an attempt is made to remove
                 // a property
                 throw new DavException(DavServletResponse.SC_FORBIDDEN);
             } else if (propEntry instanceof DavProperty) {
-                DavProperty prop = (DavProperty) propEntry;
+                DavProperty<?> prop = (DavProperty<?>) propEntry;
                 internalSetProperty(prop);
             } else {
                 throw new IllegalArgumentException("unknown object in change list: " + propEntry.getClass().getName());
@@ -257,7 +257,8 @@
      */
     public DavResourceIterator getMembers() {
         log.warn("A non-collection resource never has internal members.");
-        return new DavResourceIteratorImpl(new ArrayList(0));
+        List<DavResource> drl = Collections.emptyList();
+        return new DavResourceIteratorImpl(drl);
     }
 
     /**
@@ -281,6 +282,7 @@
      * has no lock.
      * @see DavResource#getLock(Type, Scope)
      */
+    @Override
     public ActiveLock getLock(Type type, Scope scope) {
         if (Type.WRITE.equals(type)) {
             return getCollection().getLock(type, scope);
@@ -293,6 +295,7 @@
     /**
      * Add resource specific properties.
      */
+    @Override
     protected void initProperties() {
         super.initProperties();
         if (exists()) {
@@ -308,17 +311,17 @@
                     contentType = IOUtil.buildContentType(JcrValueType.contentTypeFromType(type), "utf-8");
 
                 }
-                properties.add(new DefaultDavProperty(DavPropertyName.GETCONTENTTYPE, contentType));
+                properties.add(new DefaultDavProperty<String>(DavPropertyName.GETCONTENTTYPE, contentType));
 
                 // add jcr-specific resource properties
-                properties.add(new DefaultDavProperty(JCR_TYPE, PropertyType.nameFromValue(type)));
+                properties.add(new DefaultDavProperty<String>(JCR_TYPE, PropertyType.nameFromValue(type)));
                 if (isMultiple()) {
                     properties.add(new ValuesProperty(prop.getValues()));
                     properties.add(new LengthsProperty(prop.getLengths()));
                 } else {
                     properties.add(new ValuesProperty(prop.getValue()));
                     long length = prop.getLength();
-                    properties.add(new DefaultDavProperty(JCR_LENGTH, String.valueOf(length), true));
+                    properties.add(new DefaultDavProperty<String>(JCR_LENGTH, String.valueOf(length), true));
                 }
             } catch (RepositoryException e) {
                 log.error("Failed to retrieve resource properties: "+e.getMessage());
@@ -343,4 +346,4 @@
         }
         return false;
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/ItemResourceConstants.java Tue Feb 23 13:37:38 2010
@@ -76,7 +76,7 @@
     public static final String XML_PREFIX = "prefix";
     public static final String XML_URI = "uri";
 
-    // xml elements used for repository-descritors report
+    // xml elements used for repository-descriptors report
     public static final String XML_DESCRIPTOR = "descriptor";
     public static final String XML_DESCRIPTORKEY = "descriptorkey";
     public static final String XML_DESCRIPTORVALUE = "descriptorvalue";
@@ -146,7 +146,7 @@
     // property names used for resource representing a workspace
     public static final DavPropertyName JCR_NAMESPACES = DavPropertyName.create("namespaces", NAMESPACE);
 
-    // property names used for resource representing a version hisotry
+    // property names used for resource representing a version history
     public static final DavPropertyName JCR_VERSIONABLEUUID = DavPropertyName.create("versionableuuid", NAMESPACE);
 
     //-----------------------------------------< JSR170 specific privileges >---
@@ -166,4 +166,4 @@
      * Privilege representing the JSR170 'remove' action.
      */
     public static final Privilege PRIVILEGE_JCR_REMOVE = Privilege.getPrivilege("remove", NAMESPACE);
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JCRWebdavServerServlet.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JCRWebdavServerServlet.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JCRWebdavServerServlet.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JCRWebdavServerServlet.java Tue Feb 23 13:37:38 2010
@@ -95,6 +95,7 @@
      *
      * @throws ServletException
      */
+    @Override
     public void init() throws ServletException {
         super.init();
 
@@ -113,7 +114,7 @@
         subscriptionMgr = new SubscriptionManagerImpl();
         txMgr.addTransactionListener((SubscriptionManagerImpl) subscriptionMgr);
 
-        // todo: ev. make configurable
+        // todo: eventually make configurable
         resourceFactory = new DavResourceFactoryImpl(txMgr, subscriptionMgr);
         locatorFactory = new DavLocatorFactoryImpl(pathPrefix);
     }
@@ -128,6 +129,7 @@
      *
      * @see AbstractWebdavServlet#isPreconditionValid(WebdavRequest, DavResource)
      */
+    @Override
     protected boolean isPreconditionValid(WebdavRequest request, DavResource resource) {
         // first check matching If header
         if (!request.matchesIfHeader(resource)) {
@@ -140,7 +142,7 @@
             Session repositorySesssion = JcrDavSession.getRepositorySession(request.getDavSession());
             String reqWspName = resource.getLocator().getWorkspaceName();
             String wsName = repositorySesssion.getWorkspace().getName();
-            //  compare workspace names if the req. resource is not the root-collection.
+            //  compare workspace names if the requested resource isn't the root-collection.
             if (reqWspName != null && !reqWspName.equals(wsName)) {
                 return false;
             }
@@ -161,6 +163,7 @@
      * @return server
      * @see AbstractWebdavServlet#getDavSessionProvider()
      */
+    @Override
     public DavSessionProvider getDavSessionProvider() {
         if (server == null) {
             Repository repository = getRepository();
@@ -177,6 +180,7 @@
      *
      * @see AbstractWebdavServlet#setDavSessionProvider(DavSessionProvider)
      */
+    @Override
     public void setDavSessionProvider(DavSessionProvider davSessionProvider) {
         throw new UnsupportedOperationException("Not implemented. DavSession(s) are provided by the 'JCRWebdavServer'");
     }
@@ -186,6 +190,7 @@
      *
      * @see AbstractWebdavServlet#getLocatorFactory()
      */
+    @Override
     public DavLocatorFactory getLocatorFactory() {
         if (locatorFactory == null) {
             locatorFactory = new DavLocatorFactoryImpl(pathPrefix);
@@ -198,6 +203,7 @@
      *
      * @see AbstractWebdavServlet#setLocatorFactory(DavLocatorFactory)
      */
+    @Override
     public void setLocatorFactory(DavLocatorFactory locatorFactory) {
         this.locatorFactory = locatorFactory;
     }
@@ -207,6 +213,7 @@
      *
      * @see AbstractWebdavServlet#getResourceFactory()
      */
+    @Override
     public DavResourceFactory getResourceFactory() {
         if (resourceFactory == null) {
             resourceFactory = new DavResourceFactoryImpl(txMgr, subscriptionMgr);
@@ -219,6 +226,7 @@
      *
      * @see AbstractWebdavServlet#setResourceFactory(org.apache.jackrabbit.webdav.DavResourceFactory)
      */
+    @Override
     public void setResourceFactory(DavResourceFactory resourceFactory) {
         this.resourceFactory = resourceFactory;
     }
@@ -230,6 +238,7 @@
      * @return corresponding init parameter or {@link #DEFAULT_AUTHENTICATE_HEADER}.
      * @see #INIT_PARAM_AUTHENTICATE_HEADER
      */
+    @Override
     public String getAuthenticateHeaderValue() {
         return authenticate_header;
     }

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavException.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavException.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavException.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavException.java Tue Feb 23 13:37:38 2010
@@ -44,7 +44,6 @@
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.query.InvalidQueryException;
 import javax.jcr.version.VersionException;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.LinkedHashMap;
 
@@ -58,47 +57,49 @@
     private static Logger log = LoggerFactory.getLogger(JcrDavException.class);
 
     // ordered mapping of Jcr exceptions to error codes.
-    private static Map codeMap = new LinkedHashMap(20);
+    private static Map<Class<? extends Throwable>, Integer> codeMap = new LinkedHashMap<Class<? extends Throwable>, Integer>(20);
     static {
-        codeMap.put(AccessDeniedException.class, new Integer(DavServletResponse.SC_FORBIDDEN));
-        codeMap.put(ConstraintViolationException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(InvalidItemStateException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(InvalidSerializedDataException.class, new Integer(DavServletResponse.SC_BAD_REQUEST));
-        codeMap.put(InvalidQueryException.class, new Integer(DavServletResponse.SC_BAD_REQUEST));
-        codeMap.put(ItemExistsException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(ItemNotFoundException.class, new Integer(DavServletResponse.SC_FORBIDDEN));
-        codeMap.put(LockException.class, new Integer(DavServletResponse.SC_LOCKED));
-        codeMap.put(MergeException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(NamespaceException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(NoSuchNodeTypeException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(NoSuchWorkspaceException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(PathNotFoundException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(ReferentialIntegrityException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(LoginException.class, new Integer(DavServletResponse.SC_UNAUTHORIZED));
-        codeMap.put(UnsupportedRepositoryOperationException.class, new Integer(DavServletResponse.SC_NOT_IMPLEMENTED));
-        codeMap.put(ValueFormatException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(VersionException.class, new Integer(DavServletResponse.SC_CONFLICT));
-        codeMap.put(RepositoryException.class, new Integer(DavServletResponse.SC_FORBIDDEN));
+        codeMap.put(AccessDeniedException.class, DavServletResponse.SC_FORBIDDEN);
+        codeMap.put(ConstraintViolationException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(InvalidItemStateException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(InvalidSerializedDataException.class, DavServletResponse.SC_BAD_REQUEST);
+        codeMap.put(InvalidQueryException.class, DavServletResponse.SC_BAD_REQUEST);
+        codeMap.put(ItemExistsException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(ItemNotFoundException.class, DavServletResponse.SC_FORBIDDEN);
+        codeMap.put(LockException.class, DavServletResponse.SC_LOCKED);
+        codeMap.put(MergeException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(NamespaceException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(NoSuchNodeTypeException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(NoSuchWorkspaceException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(PathNotFoundException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(ReferentialIntegrityException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(LoginException.class, DavServletResponse.SC_UNAUTHORIZED);
+        codeMap.put(UnsupportedRepositoryOperationException.class, DavServletResponse.SC_NOT_IMPLEMENTED);
+        codeMap.put(ValueFormatException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(VersionException.class, DavServletResponse.SC_CONFLICT);
+        codeMap.put(RepositoryException.class, DavServletResponse.SC_FORBIDDEN);
     }
 
-    private static int lookupErrorCode(Class exceptionClass) {
-        Integer code = (Integer) codeMap.get(exceptionClass);
+    private static int lookupErrorCode(Class<? extends Throwable> exceptionClass) {
+        Integer code = codeMap.get(exceptionClass);
         if (code == null) {
-            for (Iterator it = codeMap.keySet().iterator(); it.hasNext();) {
-                Class jcrExceptionClass = (Class) it.next();
+            for (Class<? extends Throwable> jcrExceptionClass : codeMap.keySet()) {
                 if (jcrExceptionClass.isAssignableFrom(exceptionClass)) {
-                    code = (Integer) codeMap.get(jcrExceptionClass);
+                    code = codeMap.get(jcrExceptionClass);
                     break;
                 }
             }
             if (code == null) {
-                code = new Integer(DavServletResponse.SC_FORBIDDEN); // fallback
+                code = DavServletResponse.SC_FORBIDDEN; // fallback
             }
         }
-        return code.intValue();
+        return code;
     }
-    
-    private Class exceptionClass;
+
+    /**
+     * The exception wrapped by this DavException instance.
+     */
+    private Class<? extends Throwable> exceptionClass;
 
     /**
      * Create a new <code>JcrDavException</code>.
@@ -136,6 +137,7 @@
      *
      * @return true
      */
+    @Override
     public boolean hasErrorCondition() {
         return true;
     }
@@ -148,6 +150,7 @@
      * @see org.apache.jackrabbit.webdav.xml.XmlSerializable#toXml(Document)
      * @param document
      */
+    @Override
     public Element toXml(Document document) {
         Element error = DomUtil.createElement(document, XML_ERROR, DavConstants.NAMESPACE);
         Element excep = DomUtil.createElement(document, "exception", ItemResourceConstants.NAMESPACE);

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavSession.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavSession.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavSession.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/JcrDavSession.java Tue Feb 23 13:37:38 2010
@@ -49,7 +49,7 @@
     private final Session session;
 
     /** the lock tokens of this session */
-    private final HashSet lockTokens = new HashSet();
+    private final HashSet<String> lockTokens = new HashSet<String>();
 
     /**
      *
@@ -107,7 +107,7 @@
      * @see DavSession#getLockTokens()
      */
     public String[] getLockTokens() {
-        return (String[]) lockTokens.toArray(new String[lockTokens.size()]);
+        return lockTokens.toArray(new String[lockTokens.size()]);
     }
 
     /**
@@ -128,4 +128,4 @@
             return token;
         }
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/RootCollection.java Tue Feb 23 13:37:38 2010
@@ -194,11 +194,11 @@
      * @see org.apache.jackrabbit.webdav.DavResource#getMembers()
      */
     public DavResourceIterator getMembers() {
-        List memberList = new ArrayList();
+        List<DavResource> memberList = new ArrayList();
         try {
             String[] wsNames = getRepositorySession().getWorkspace().getAccessibleWorkspaceNames();
-            for (int i = 0; i < wsNames.length; i++) {
-                String wspPath = "/"+wsNames[i];
+            for (String wsName : wsNames) {
+                String wspPath = "/" + wsName;
                 DavResourceLocator childLoc = getLocator().getFactory().createResourceLocator(getLocator().getPrefix(), wspPath, wspPath);
                 memberList.add(createResourceFromLocator(childLoc));
             }
@@ -223,6 +223,7 @@
     /**
      * @see AbstractResource#initLockSupport()
      */
+    @Override
     protected void initLockSupport() {
         // no locking supported
     }
@@ -235,7 +236,8 @@
      * @return <code>null</code>
      * @see AbstractResource#getWorkspaceHref()
      */
+    @Override
     protected String getWorkspaceHref() {
         return null;
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/VersionControlledItemCollection.java Tue Feb 23 13:37:38 2010
@@ -29,6 +29,7 @@
 import org.apache.jackrabbit.webdav.property.DefaultDavProperty;
 import org.apache.jackrabbit.webdav.property.HrefProperty;
 import org.apache.jackrabbit.webdav.property.DavProperty;
+import org.apache.jackrabbit.webdav.property.PropEntry;
 import org.apache.jackrabbit.webdav.version.LabelInfo;
 import org.apache.jackrabbit.webdav.version.MergeInfo;
 import org.apache.jackrabbit.webdav.version.UpdateInfo;
@@ -54,7 +55,7 @@
 import javax.jcr.version.Version;
 import javax.jcr.version.VersionHistory;
 import java.util.List;
-import java.util.ArrayList;
+import java.util.Collections;
 
 /**
  * <code>VersionControlledItemCollection</code> represents a JCR node item and
@@ -90,6 +91,7 @@
      * @return the supported method names.
      * @see org.apache.jackrabbit.webdav.DavResource#getSupportedMethods()
      */
+    @Override
     public String getSupportedMethods() {
         StringBuffer sb = new StringBuffer(super.getSupportedMethods());
         // Versioning support
@@ -112,10 +114,11 @@
     /**
      * @param changeList
      * @throws DavException
-     * @see DefaultItemCollection#alterProperties(org.apache.jackrabbit.webdav.property.DavPropertySet, org.apache.jackrabbit.webdav.property.DavPropertyNameSet)
+     * @see DefaultItemCollection#alterProperties(List)
      * for additional description of non-compliant behaviour.
      */
-    public MultiStatusResponse alterProperties(List changeList) throws DavException {
+    @Override
+    public MultiStatusResponse alterProperties(List<? extends PropEntry> changeList) throws DavException {
         /* first resolve merge conflict since they cannot be handled by
            setting property values in jcr (and are persisted immediately).
            NOTE: this violates RFC 2518 that requires that proppatch
@@ -144,18 +147,18 @@
      * @see Node#doneMerge(Version)
      * @see Node#cancelMerge(Version)
      */
-    private void resolveMergeConflict(List changeList) throws DavException {
+    private void resolveMergeConflict(List<? extends PropEntry> changeList) throws DavException {
         if (!exists()) {
             throw new DavException(DavServletResponse.SC_NOT_FOUND);
         }
         try {
-            Node n = (Node)item;
-            DavProperty autoMergeSet = null;
-            DavProperty predecessorSet = null;
+            Node n = (Node) item;
+            DavProperty<?> autoMergeSet = null;
+            DavProperty<?> predecessorSet = null;
             /* find DAV:auto-merge-set entries. If none exists no attempt is made
                to resolve merge conflict > return silently */
             for (int i = 0; i < changeList.size(); i++) {
-                Object propEntry = changeList.get(i);
+                PropEntry propEntry = changeList.get(i);
                 // If DAV:auto-merge-set is DavPropertyName all remaining merge
                 // conflicts are resolved with 'cancel'
                 if (propEntry instanceof DavPropertyName && AUTO_MERGE_SET.equals(propEntry)) {
@@ -164,16 +167,16 @@
                         throw new DavException(DavServletResponse.SC_CONFLICT, "Attempt to resolve non-existing merge conflicts.");
                     }
                     Value[] mergeFailed = n.getProperty(JcrConstants.JCR_MERGEFAILED).getValues();
-                    for (int j = 0; j < mergeFailed.length; j++) {
-                        n.cancelMerge((Version)getRepositorySession().getNodeByUUID(mergeFailed[j].getString()));
+                    for (Value value : mergeFailed) {
+                        n.cancelMerge((Version) getRepositorySession().getNodeByUUID(value.getString()));
                     }
                     // remove this entry from the changeList
                     changeList.remove(propEntry);
                 } else if (propEntry instanceof DavProperty) {
-                    if (AUTO_MERGE_SET.equals(((DavProperty)propEntry).getName())) {
-                        autoMergeSet = (DavProperty)propEntry;
-                    } else if (PREDECESSOR_SET.equals(((DavProperty)propEntry).getName())) {
-                        predecessorSet = (DavProperty)propEntry;
+                    if (AUTO_MERGE_SET.equals(((DavProperty<?>)propEntry).getName())) {
+                        autoMergeSet = (DavProperty<?>) propEntry;
+                    } else if (PREDECESSOR_SET.equals(((DavProperty<?>)propEntry).getName())) {
+                        predecessorSet = (DavProperty<?>) propEntry;
                     }
                 }
             }
@@ -186,17 +189,22 @@
                     throw new DavException(DavServletResponse.SC_CONFLICT, "Attempt to resolve non-existing merge conflicts.");
                 }
 
-                List mergeset = new HrefProperty(autoMergeSet).getHrefs();
-                List predecSet = (predecessorSet == null) ? new ArrayList() : new HrefProperty(predecessorSet).getHrefs();
+                List<String> mergeset = new HrefProperty(autoMergeSet).getHrefs();
+                List<String> predecL;
+                if (predecessorSet == null) {
+                    predecL = Collections.emptyList();
+                } else {
+                    predecL = new HrefProperty(predecessorSet).getHrefs();
+                }
 
                 Session session = getRepositorySession();
                 // loop over the mergeFailed values (versions) and test whether they are
                 // removed from the DAV:auto-merge-set thus indicating resolution.
                 Value[] mergeFailed = n.getProperty(JcrConstants.JCR_MERGEFAILED).getValues();
-                for (int i = 0; i < mergeFailed.length; i++) {
+                for (Value value : mergeFailed) {
                     // build version-href from each entry in the jcr:mergeFailed property
                     // in order to be able to compare to the entries in the HrefProperty.
-                    Version version = (Version) session.getNodeByUUID(mergeFailed[i].getString());
+                    Version version = (Version) session.getNodeByUUID(value.getString());
                     String href = getLocatorFromItem(version).getHref(true);
 
                     // Test if that version has been removed from the merge-set.
@@ -207,7 +215,7 @@
                         // appropriate. If the value has been removed from the
                         // merge-set but not added to the predecessors 'cancelMerge'
                         // must be called.
-                        if (predecSet.contains(href)) {
+                        if (predecL.contains(href)) {
                             n.doneMerge(version);
                         } else {
                             n.cancelMerge(version);
@@ -497,19 +505,21 @@
      *
      * @see SupportedReportSetProperty
      */
+    @Override
     protected void initSupportedReports() {
         super.initSupportedReports();
         if (exists()) {
-	    supportedReports.addReportType(ReportType.LOCATE_BY_HISTORY);
+            supportedReports.addReportType(ReportType.LOCATE_BY_HISTORY);
             if (this.isVersionControlled()) {
-            supportedReports.addReportType(ReportType.VERSION_TREE);
-	    }
+                supportedReports.addReportType(ReportType.VERSION_TREE);
+            }
         }
     }
 
     /**
      * Fill the property set for this resource.
      */
+    @Override
     protected void initProperties() {
         super.initProperties();
         if (exists()) {
@@ -523,7 +533,7 @@
                     properties.add(new HrefProperty(VERSION_HISTORY, vhHref, true));
 
                     // DAV:auto-version property: there is no auto version, explicit CHECKOUT is required.
-                    properties.add(new DefaultDavProperty(AUTO_VERSION, null, false));
+                    properties.add(new DefaultDavProperty<String>(AUTO_VERSION, null, false));
 
                     String baseVHref = getLocatorFromItem(n.getBaseVersion()).getHref(true);
                     if (n.isCheckedOut()) {
@@ -570,7 +580,7 @@
             throws ValueFormatException, IllegalStateException, RepositoryException {
         Node[] nodes = new Node[values.length];
         for (int i = 0; i < values.length; i++) {
-            nodes[i] = getRepositorySession().getNodeByUUID(values[i].getString());
+            nodes[i] = getRepositorySession().getNodeByIdentifier(values[i].getString());
         }
         addHrefProperty(name, nodes, isProtected);
     }
@@ -602,4 +612,4 @@
         String prefix = getLocator().getPrefix();
         return f.createResourceLocator(prefix, href);
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/WorkspaceResourceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/WorkspaceResourceImpl.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/WorkspaceResourceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/WorkspaceResourceImpl.java Tue Feb 23 13:37:38 2010
@@ -40,6 +40,7 @@
 import org.apache.jackrabbit.webdav.jcr.property.NamespacesProperty;
 import org.apache.jackrabbit.webdav.jcr.version.report.JcrPrivilegeReport;
 import org.apache.jackrabbit.webdav.property.DavProperty;
+import org.apache.jackrabbit.webdav.property.PropEntry;
 import org.apache.jackrabbit.webdav.io.InputContext;
 import org.apache.jackrabbit.webdav.io.OutputContext;
 import org.w3c.dom.Element;
@@ -52,12 +53,11 @@
 import javax.jcr.Repository;
 import javax.jcr.version.Version;
 import javax.jcr.observation.EventListener;
-import java.util.Iterator;
 import java.util.List;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.Map;
 import java.util.HashMap;
+import java.util.Collections;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.OutputStreamWriter;
@@ -214,16 +214,17 @@
      * @return
      */
     public DavResourceIterator getMembers() {
-        List l = new ArrayList();
         try {
             DavResourceLocator loc = getLocatorFromItem(getRepositorySession().getRootNode());
-            l.add(createResourceFromLocator(loc));
+            List<DavResource> list = Collections.singletonList(createResourceFromLocator(loc));
+            return new DavResourceIteratorImpl(list);
         } catch (DavException e) {
             log.error("Internal error while building resource for the root node.", e);
+            return DavResourceIteratorImpl.EMPTY;
         } catch (RepositoryException e) {
             log.error("Internal error while building resource for the root node.", e);
-        }
-        return new DavResourceIteratorImpl(l);
+            return DavResourceIteratorImpl.EMPTY;
+        }       
     }
 
     /**
@@ -247,30 +248,27 @@
      * @throws DavException
      * @see DavResource#setProperty(org.apache.jackrabbit.webdav.property.DavProperty)
      */
-    public void setProperty(DavProperty property) throws DavException {
+    @Override
+    public void setProperty(DavProperty<?> property) throws DavException {
         if (ItemResourceConstants.JCR_NAMESPACES.equals(property.getName())) {
             NamespacesProperty nsp = new NamespacesProperty(property);
             try {
-                Map changes = new HashMap(nsp.getNamespaces());
+                Map<String, String> changes = new HashMap<String, String>(nsp.getNamespaces());
                 NamespaceRegistry nsReg = getRepositorySession().getWorkspace().getNamespaceRegistry();
-                String[] registeredPrefixes = nsReg.getPrefixes();
-                for (int i = 0; i < registeredPrefixes.length; i++) {
-                    String prfx = registeredPrefixes[i];
-                    if (!changes.containsKey(prfx)) {
+                for (String prefix : nsReg.getPrefixes()) {
+                    if (!changes.containsKey(prefix)) {
                         // prefix not present amongst the new values any more > unregister
-                        nsReg.unregisterNamespace(prfx);
-                    } else if (changes.get(prfx).equals(nsReg.getURI(prfx))) {
+                        nsReg.unregisterNamespace(prefix);
+                    } else if (changes.get(prefix).equals(nsReg.getURI(prefix))) {
                         // present with same uri-value >> no action required
-                        changes.remove(prfx);
+                        changes.remove(prefix);
                     }
                 }
 
                 // try to register any prefix/uri pair that has a changed uri or
                 // it has not been present before.
-                Iterator prefixIt = changes.keySet().iterator();
-                while (prefixIt.hasNext()) {
-                    String prefix = (String)prefixIt.next();
-                    String uri = (String)changes.get(prefix);
+                for (String prefix : changes.keySet()) {
+                    String uri = changes.get(prefix);
                     nsReg.registerNamespace(prefix, uri);
                 }
             } catch (RepositoryException e) {
@@ -287,22 +285,23 @@
      * and forwards any other set or remove requests to the super class.
      *
      * @see #setProperty(DavProperty)
-     * @see DefaultItemCollection#alterProperties(org.apache.jackrabbit.webdav.property.DavPropertySet, org.apache.jackrabbit.webdav.property.DavPropertyNameSet)
+     * @see DefaultItemCollection#alterProperties(List)
      */
-    public MultiStatusResponse alterProperties(List changeList) throws DavException {
+    @Override
+    public MultiStatusResponse alterProperties(List<? extends PropEntry> changeList) throws DavException {
         if (changeList.size() == 1) {
-           Object propEntry = changeList.get(0);
+           PropEntry propEntry = changeList.get(0);
             // only modification of prop is allowed. removal is not possible
             if (propEntry instanceof DavProperty
-                && ItemResourceConstants.JCR_NAMESPACES.equals(((DavProperty)propEntry).getName())) {
-                DavProperty namespaceProp = (DavProperty) propEntry;
+                && ItemResourceConstants.JCR_NAMESPACES.equals(((DavProperty<?>)propEntry).getName())) {
+                DavProperty<?> namespaceProp = (DavProperty<?>) propEntry;
                 setProperty(namespaceProp);
             } else {
                 // attempt to remove the namespace property
                 throw new DavException(DavServletResponse.SC_CONFLICT);
             }
         } else {
-            // changelist contains more than the jcr:namespaces property
+            // change list contains more than the jcr:namespaces property
             // TODO: build multistatus instead
             throw new DavException(DavServletResponse.SC_CONFLICT);
         }
@@ -427,25 +426,29 @@
     }
 
     //---------------------------------------------------< AbstractResource >---
+    @Override
     protected void initLockSupport() {
         // lock not allowed
     }
 
+    @Override
     protected void initSupportedReports() {
         super.initSupportedReports();
         supportedReports.addReportType(JcrPrivilegeReport.PRIVILEGES_REPORT);
     }
 
+    @Override
     protected String getWorkspaceHref() {
         return getHref();
     }
 
+    @Override
     protected void initProperties() {
         super.initProperties();
         try {
             // init workspace specific properties
             NamespaceRegistry nsReg = getRepositorySession().getWorkspace().getNamespaceRegistry();
-            DavProperty namespacesProp = new NamespacesProperty(nsReg);
+            DavProperty<?> namespacesProp = new NamespacesProperty(nsReg);
             properties.add(namespacesProp);
         } catch (RepositoryException e) {
             log.error("Failed to access NamespaceRegistry: " + e.getMessage());
@@ -453,4 +456,4 @@
 
         // TODO: required property DAV:workspace-checkout-set (computed)
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/lock/JcrActiveLock.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/lock/JcrActiveLock.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/lock/JcrActiveLock.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/lock/JcrActiveLock.java Tue Feb 23 13:37:38 2010
@@ -96,11 +96,11 @@
         String token = lock.getLockToken();
         if (token == null && lock.isSessionScoped()
                 && lock instanceof javax.jcr.lock.Lock
-                && ((javax.jcr.lock.Lock)lock).isLockOwningSession()) {
+                && lock.isLockOwningSession()) {
             // special handling for session scoped locks that are owned by the
             // current session but never expose their token with jsr 283.
             try {
-                token = ((javax.jcr.Node)lock.getNode()).getIdentifier();
+                token = lock.getNode().getIdentifier();
             } catch (RepositoryException e) {
                 // should never get here
                 log.warn("Unexpected error while retrieving node identifier for building a DAV specific lock token.",e.getMessage());
@@ -177,4 +177,4 @@
     public Scope getScope() {
         return (lock.isSessionScoped()) ? ItemResourceConstants.EXCLUSIVE_SESSION : Scope.EXCLUSIVE;
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeDefinitionImpl.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeDefinitionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeDefinitionImpl.java Tue Feb 23 13:37:38 2010
@@ -99,6 +99,7 @@
      * @return xml representation
      * @param document
      */
+    @Override
     public Element toXml(Document document) {
         Element elem = super.toXml(document);
         elem.setAttribute(SAMENAMESIBLINGS_ATTRIBUTE, Boolean.toString(allowsSameNameSiblings()));
@@ -108,11 +109,10 @@
             elem.setAttribute(DEFAULTPRIMARYTYPE_ATTRIBUTE, defaultPrimaryType.getName());
         }
         // reqPrimaryTypes: minimal set is nt:base.
-        NodeType[] nts = getRequiredPrimaryTypes();
         Element reqPrimaryTypes = document.createElement(REQUIREDPRIMARYTYPES_ELEMENT);
-        for (int i = 0; i < nts.length; i++) {
+        for (NodeType nt : getRequiredPrimaryTypes()) {
             Element rptElem = document.createElement(REQUIREDPRIMARYTYPE_ELEMENT);
-            DomUtil.setText(rptElem, nts[i].getName());
+            DomUtil.setText(rptElem, nt.getName());
             reqPrimaryTypes.appendChild(rptElem);
 
         }
@@ -125,8 +125,9 @@
      *
      * @return always returns {@link #CHILDNODEDEFINITION_ELEMENT}.
      */
+    @Override
     String getElementName() {
         return CHILDNODEDEFINITION_ELEMENT;
     }
 
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeTypeProperty.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeTypeProperty.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeTypeProperty.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/NodeTypeProperty.java Tue Feb 23 13:37:38 2010
@@ -26,20 +26,19 @@
 import org.w3c.dom.Element;
 
 import javax.jcr.nodetype.NodeType;
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
 /**
  * <code>NodeTypeProperty</code>...
  */
-public class NodeTypeProperty extends AbstractDavProperty implements NodeTypeConstants {
+public class NodeTypeProperty extends AbstractDavProperty<Set<String>> implements NodeTypeConstants {
 
     private static Logger log = LoggerFactory.getLogger(NodeTypeProperty.class);
 
-    private final Set nodetypeNames = new HashSet();
+    private final Set<String> nodetypeNames = new HashSet<String>();
 
     public NodeTypeProperty(DavPropertyName name, NodeType nodeType, boolean isProtected) {
         this(name, new NodeType[]{nodeType}, isProtected);
@@ -47,19 +46,18 @@
 
     public NodeTypeProperty(DavPropertyName name, NodeType[] nodeTypes, boolean isProtected) {
         super(name, isProtected);
-        for (int i = 0; i < nodeTypes.length; i++) {
-            NodeType nt = nodeTypes[i];
+        for (NodeType nt : nodeTypes) {
             if (nt != null) {
-                nodetypeNames.add(nodeTypes[i].getName());
+                nodetypeNames.add(nt.getName());
             }
         }
     }
 
     public NodeTypeProperty(DavPropertyName name, String[] nodeTypeNames, boolean isProtected) {
         super(name, isProtected);
-        for (int i = 0; i < nodeTypeNames.length; i++) {
-            if (nodeTypeNames[i] != null) {
-                nodetypeNames.add(nodeTypeNames[i]);
+        for (String nodeTypeName : nodeTypeNames) {
+            if (nodeTypeName != null) {
+                nodetypeNames.add(nodeTypeName);
             }
         }
     }
@@ -70,18 +68,17 @@
      *
      * @param property
      */
-    public NodeTypeProperty(DavProperty property) {
+    public NodeTypeProperty(DavProperty<?> property) {
         super(property.getName(), property.isInvisibleInAllprop());
         if (property instanceof NodeTypeProperty) {
-            nodetypeNames.addAll(((NodeTypeProperty)property).nodetypeNames);
+            nodetypeNames.addAll(((NodeTypeProperty) property).nodetypeNames);
         } else {
             // assume property has be built from xml
             Object propValue = property.getValue();
             if (propValue instanceof List) {
-                retrieveNodeTypeNames(((List)propValue));
+                retrieveNodeTypeNames(((List<?>)propValue));
             } else if (propValue instanceof Element) {
-                List l = new ArrayList();
-                l.add(propValue);
+                List<Element> l = Collections.singletonList((Element) propValue);
                 retrieveNodeTypeNames(l);
             } else {
                 log.debug("NodeTypeProperty '" + property.getName() + "' has no/unparsable value.");
@@ -89,21 +86,19 @@
         }
     }
 
-    private void retrieveNodeTypeNames(List elementList) {
-        Iterator it = elementList.iterator();
-        while (it.hasNext()) {
-            Object content = it.next();
+    private void retrieveNodeTypeNames(List<?> elementList) {
+        for (Object content : elementList) {
             if (!(content instanceof Element)) {
                 continue;
             }
-            Element el = (Element)content;
+            Element el = (Element) content;
             if (XML_NODETYPE.equals(el.getLocalName()) && NodeTypeConstants.NAMESPACE.isSame(el.getNamespaceURI())) {
                 String nodetypeName = DomUtil.getChildText(el, XML_NODETYPENAME, NodeTypeConstants.NAMESPACE);
                 if (nodetypeName != null && !"".equals(nodetypeName)) {
                     nodetypeNames.add(nodetypeName);
                 }
             } else {
-                log.debug("'dcr:nodetype' element expected -> ignoring element '" + ((Element)content).getNodeName() + "'");
+                log.debug("'dcr:nodetype' element expected -> ignoring element '" + ((Element) content).getNodeName() + "'");
             }
         }
     }
@@ -113,7 +108,7 @@
      *
      * @return set of nodetype names
      */
-    public Set getNodeTypeNames() {
+    public Set<String> getNodeTypeNames() {
         return nodetypeNames;
     }
 
@@ -122,21 +117,20 @@
      *
      * @return a Set of nodetype names (String).
      */
-    public Object getValue() {
+    public Set<String> getValue() {
         return nodetypeNames;
     }
 
     /**
      * @see org.apache.jackrabbit.webdav.xml.XmlSerializable#toXml(Document)
      */
+    @Override
     public Element toXml(Document document) {
         Element elem = getName().toXml(document);
-        Iterator it = getNodeTypeNames().iterator();
-        while (it.hasNext()) {
-            String name = it.next().toString();
+        for (String name : getNodeTypeNames()) {
             Element ntElem = DomUtil.addChildElement(elem, XML_NODETYPE, NodeTypeConstants.NAMESPACE);
             DomUtil.addChildElement(ntElem, XML_NODETYPENAME, NodeTypeConstants.NAMESPACE, name);
         }
         return elem;
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/PropertyDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/PropertyDefinitionImpl.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/PropertyDefinitionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/nodetype/PropertyDefinitionImpl.java Tue Feb 23 13:37:38 2010
@@ -119,6 +119,7 @@
      * @return xml representation
      * @param document
      */
+    @Override
     public Element toXml(Document document) {
         Element elem = super.toXml(document);
 
@@ -133,10 +134,10 @@
         Value[] values = getDefaultValues();
         if (values != null) {
             Element dvElement = document.createElement(DEFAULTVALUES_ELEMENT);
-            for (int i = 0; i < values.length; i++) {
+            for (Value value : values) {
                 try {
                     Element valElem = document.createElement(DEFAULTVALUE_ELEMENT);
-                    DomUtil.setText(valElem, values[i].getString());
+                    DomUtil.setText(valElem, value.getString());
                     dvElement.appendChild(valElem);
                 } catch (RepositoryException e) {
                     // should not occur
@@ -147,20 +148,18 @@
         }
         // value constraints array is never null.
         Element constrElem = document.createElement(VALUECONSTRAINTS_ELEMENT);
-        String[] constraints = getValueConstraints();
-        for (int i = 0; i < constraints.length; i++) {
+        for (String constraint : getValueConstraints()) {
             Element vcElem = document.createElement(VALUECONSTRAINT_ELEMENT);
-            DomUtil.setText(vcElem, constraints[i]);
+            DomUtil.setText(vcElem, constraint);
             constrElem.appendChild(vcElem);
         }
         elem.appendChild(constrElem);
 
         // JCR 2.0 extension
         Element qopElem = document.createElement(AVAILABLE_QUERY_OPERATORS_ELEMENT);
-        String[] qops = getAvailableQueryOperators();
-        for (int i = 0; i < qops.length; i++) {
+        for (String qop : getAvailableQueryOperators()) {
             Element opElem = document.createElement(AVAILABLE_QUERY_OPERATOR_ELEMENT);
-            DomUtil.setText(opElem, qops[i]);
+            DomUtil.setText(opElem, qop);
             qopElem.appendChild(opElem);
         }
         elem.appendChild(qopElem);
@@ -173,7 +172,8 @@
      *
      * @return always returns {@link #PROPERTYDEFINITION_ELEMENT}
      */
+    @Override
     String getElementName() {
         return PROPERTYDEFINITION_ELEMENT;
     }
-}
\ No newline at end of file
+}

Modified: jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java?rev=915339&r1=915338&r2=915339&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/jcr/observation/SubscriptionImpl.java Tue Feb 23 13:37:38 2010
@@ -46,7 +46,6 @@
 import javax.jcr.observation.EventListener;
 import javax.jcr.observation.ObservationManager;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
@@ -111,7 +110,7 @@
 
     private final DavResourceLocator locator;
     private final String subscriptionId = UUID.randomUUID().toString();
-    private final List eventBundles = new ArrayList();
+    private final List<EventBundle> eventBundles = new ArrayList<EventBundle>();
     private final ObservationManager obsMgr;
 
     /**
@@ -193,8 +192,8 @@
     int getJcrEventTypes() throws DavException {
         EventType[] eventTypes = info.getEventTypes();
         int events = 0;
-        for (int i = 0; i < eventTypes.length; i++) {
-            events |= getJcrEventType(eventTypes[i]);
+        for (EventType eventType : eventTypes) {
+            events |= getJcrEventType(eventType);
         }
         return events;
     }
@@ -214,15 +213,14 @@
     }
 
     private String[] getFilterValues(String filterLocalName) {
-        Filter[] filters = info.getFilters(filterLocalName, NAMESPACE);
-        List values = new ArrayList();
-        for (int i = 0; i < filters.length; i++) {
-            String val = filters[i].getValue();
+        List<String> values = new ArrayList<String>();
+        for (Filter filter : info.getFilters(filterLocalName, NAMESPACE)) {
+            String val = filter.getValue();
             if (val != null) {
                 values.add(val);
             }
         }
-        return (values.size() > 0) ? (String[])values.toArray(new String[values.size()]) : null;
+        return (values.size() > 0) ? values.toArray(new String[values.size()]) : null;
     }
 
     /**
@@ -290,9 +288,7 @@
                 // continue and possibly return empty event discovery
             }
         }
-        Iterator it = eventBundles.iterator();
-        while (it.hasNext()) {
-            EventBundle eb = (EventBundle) it.next();
+        for (EventBundle eb : eventBundles) {
             ed.addEventBundle(eb);
         }
         // clear list
@@ -310,14 +306,17 @@
             // a subscription which is not interested in local changes does
             // not need the transaction id
             return new TransactionEvent() {
+                @Override
                 public void onEvent(EventIterator events) {
                     // ignore
                 }
 
+                @Override
                 public void beforeCommit(TransactionResource resource, String lockToken) {
                     // ignore
                 }
 
+                @Override
                 public void afterCommit(TransactionResource resource,
                                         String lockToken,
                                         boolean success) {
@@ -518,20 +517,20 @@
                     log.error(e.getMessage());
                 }
                 eventElem.appendChild(DomUtil.hrefToXml(eHref, document));
-                // eventtype
+                // event type
                 Element eType = DomUtil.addChildElement(eventElem, XML_EVENTTYPE, NAMESPACE);
                 eType.appendChild(getEventType(event.getType()).toXml(document));
                 // user id
                 DomUtil.addChildElement(eventElem, XML_EVENTUSERID, NAMESPACE, event.getUserID());
 
                 // Additional JCR 2.0 event information
-                // userdata
+                // user data
                 try {
                     DomUtil.addChildElement(eventElem, XML_EVENTUSERDATA, NAMESPACE, event.getUserData());
                 } catch (RepositoryException e) {
                     log.error("Internal error while retrieving event user data.", e.getMessage());
                 }
-                // timestamp
+                // time stamp
                 try {
                     DomUtil.addChildElement(eventElem, XML_EVENTDATE, NAMESPACE, String.valueOf(event.getDate()));
                 } catch (RepositoryException e) {
@@ -546,9 +545,9 @@
                 // info
                 Element info = DomUtil.addChildElement(eventElem, XML_EVENTINFO, NAMESPACE);
                 try {
-                    Map m = event.getInfo();
-                    for (Iterator it = m.keySet().iterator(); it.hasNext();) {
-                        String key = it.next().toString();
+                    @SuppressWarnings({"RawUseOfParameterizedType"}) Map m = event.getInfo();
+                    for (Object o : m.keySet()) {
+                        String key = o.toString();
                         Object value = m.get(key);
                         if (value != null) {
                             DomUtil.addChildElement(info, key, Namespace.EMPTY_NAMESPACE, value.toString());