Introduce JCRX checksum and improve JCR last modified routines.
[lgpl/argeo-commons.git] / org.argeo.jcr / src / org / argeo / jcr / proxy / AbstractUrlProxy.java
index 2699c5452fe8f925abab13c0e1a753e446954aa2..0984276ddbb90c810d824fde99e3082e81560c17 100644 (file)
@@ -1,18 +1,3 @@
-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.argeo.jcr.proxy;
 
 import java.io.IOException;
@@ -29,7 +14,7 @@ import javax.jcr.nodetype.NodeType;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.jcr.ArgeoJcrException;
+import org.argeo.jcr.JcrException;
 import org.argeo.jcr.JcrUtils;
 
 /** Base class for URL based proxys. */
@@ -48,9 +33,9 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                        beforeInitSessionSave(jcrAdminSession);
                        if (jcrAdminSession.hasPendingChanges())
                                jcrAdminSession.save();
-               } catch (Exception e) {
+               } catch (RepositoryException e) {
                        JcrUtils.discardQuietly(jcrAdminSession);
-                       throw new ArgeoJcrException("Cannot initialize Maven proxy", e);
+                       throw new JcrException("Cannot initialize URL proxy", e);
                }
        }
 
@@ -88,7 +73,7 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                                nodeClient = clientSession.getNode(path);
                        return nodeClient;
                } catch (RepositoryException e) {
-                       throw new ArgeoJcrException("Cannot proxy " + path, e);
+                       throw new JcrException("Cannot proxy " + path, e);
                } finally {
                        if (nodeClient == null)
                                JcrUtils.logoutQuietly(clientSession);
@@ -104,7 +89,7 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                        return node;
                } catch (RepositoryException e) {
                        JcrUtils.discardQuietly(jcrAdminSession);
-                       throw new ArgeoJcrException("Cannot retrieve and save " + path, e);
+                       throw new JcrException("Cannot retrieve and save " + path, e);
                } finally {
                        notifyAll();
                }
@@ -139,14 +124,14 @@ public abstract class AbstractUrlProxy implements ResourceProxy {
                        Node node = null;
                        if (!session.itemExists(path)) {
                                node = JcrUtils.mkdirs(session, path, NodeType.NT_FILE, NodeType.NT_FOLDER, false);
-                               content = node.addNode(Node.JCR_CONTENT, NodeType.NT_RESOURCE);
+                               content = node.addNode(Node.JCR_CONTENT, NodeType.NT_UNSTRUCTURED);
                        } else {
                                node = session.getNode(path);
                                content = node.getNode(Node.JCR_CONTENT);
                        }
                        binary = session.getValueFactory().createBinary(in);
                        content.setProperty(Property.JCR_DATA, binary);
-                       JcrUtils.updateLastModifiedAndParents(node, null);
+                       JcrUtils.updateLastModifiedAndParents(node, null, true);
                        return node;
                } finally {
                        JcrUtils.closeQuietly(binary);