X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Fproxy%2FAbstractUrlProxy.java;h=f0e8605c403a0472cba81d889e55efbccdf7463e;hb=8e5934c1ff5587a5156854839210cc93bb66fc41;hp=30369ce7d1873ef462f84fd384ce600657d665b1;hpb=e66b9893b0e511f8ab295e3cee42b7dc966f1597;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/proxy/AbstractUrlProxy.java b/org.argeo.jcr/src/org/argeo/jcr/proxy/AbstractUrlProxy.java index 30369ce7d..f0e8605c4 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/proxy/AbstractUrlProxy.java +++ b/org.argeo.jcr/src/org/argeo/jcr/proxy/AbstractUrlProxy.java @@ -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; @@ -27,10 +12,9 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.nodetype.NodeType; -import org.apache.commons.io.IOUtils; 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. */ @@ -45,23 +29,21 @@ public abstract class AbstractUrlProxy implements ResourceProxy { void init() { try { - jcrAdminSession = JcrUtils.loginOrCreateWorkspace(jcrRepository, - proxyWorkspace); + jcrAdminSession = JcrUtils.loginOrCreateWorkspace(jcrRepository, proxyWorkspace); 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); } } /** - * Called before the (admin) session is saved at the end of the - * initialization. Does nothing by default, to be overridden. + * Called before the (admin) session is saved at the end of the initialization. + * Does nothing by default, to be overridden. */ - protected void beforeInitSessionSave(Session session) - throws RepositoryException { + protected void beforeInitSessionSave(Session session) throws RepositoryException { } void destroy() { @@ -69,8 +51,8 @@ public abstract class AbstractUrlProxy implements ResourceProxy { } /** - * Called before the (admin) session is logged out when resources are - * released. Does nothing by default, to be overridden. + * Called before the (admin) session is logged out when resources are released. + * Does nothing by default, to be overridden. */ protected void beforeDestroySessionLogout() throws RepositoryException { } @@ -83,8 +65,7 @@ public abstract class AbstractUrlProxy implements ResourceProxy { Session clientSession = null; try { clientSession = jcrRepository.login(proxyWorkspace); - if (!clientSession.itemExists(path) - || shouldUpdate(clientSession, path)) { + if (!clientSession.itemExists(path) || shouldUpdate(clientSession, path)) { nodeAdmin = retrieveAndSave(path); if (nodeAdmin != null) nodeClient = clientSession.getNode(path); @@ -92,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); @@ -108,47 +89,42 @@ 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(); } } /** Session is not saved */ - protected synchronized Node proxyUrl(Session session, String remoteUrl, - String path) throws RepositoryException { + protected synchronized Node proxyUrl(Session session, String remoteUrl, String path) throws RepositoryException { Node node = null; if (session.itemExists(path)) { // throw new ArgeoJcrException("Node " + path + " already exists"); } - InputStream in = null; - try { - URL u = new URL(remoteUrl); - in = u.openStream(); + try (InputStream in = new URL(remoteUrl).openStream()) { + // URL u = new URL(remoteUrl); + // in = u.openStream(); node = importFile(session, path, in); } catch (IOException e) { if (log.isDebugEnabled()) { - log.debug("Cannot read " + remoteUrl + ", skipping... " - + e.getMessage()); + log.debug("Cannot read " + remoteUrl + ", skipping... " + e.getMessage()); // log.trace("Cannot read because of ", e); } JcrUtils.discardQuietly(session); - } finally { - IOUtils.closeQuietly(in); + // } finally { + // IOUtils.closeQuietly(in); } return node; } - protected synchronized Node importFile(Session session, String path, - InputStream in) throws RepositoryException { + protected synchronized Node importFile(Session session, String path, InputStream in) throws RepositoryException { Binary binary = null; try { Node content = null; 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); + node = JcrUtils.mkdirs(session, path, NodeType.NT_FILE, NodeType.NT_FOLDER, false); + content = node.addNode(Node.JCR_CONTENT, NodeType.NT_UNSTRUCTURED); } else { node = session.getNode(path); content = node.getNode(Node.JCR_CONTENT);