X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.repo%2Fsrc%2Forg%2Fargeo%2Fslc%2Frepo%2Fmaven%2FMavenProxyServiceImpl.java;fp=org.argeo.slc.repo%2Fsrc%2Forg%2Fargeo%2Fslc%2Frepo%2Fmaven%2FMavenProxyServiceImpl.java;h=0000000000000000000000000000000000000000;hb=ecc22e604e47533c79de9cecdcdeacbc752cbff1;hp=9a88534a04e7c6307318c93fd81ae3183c1f6195;hpb=e07ded4632e53f8b8869763bc1f1f4091361e76e;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.repo/src/org/argeo/slc/repo/maven/MavenProxyServiceImpl.java b/org.argeo.slc.repo/src/org/argeo/slc/repo/maven/MavenProxyServiceImpl.java deleted file mode 100644 index 9a88534a0..000000000 --- a/org.argeo.slc.repo/src/org/argeo/slc/repo/maven/MavenProxyServiceImpl.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.argeo.slc.repo.maven; - -import java.util.ArrayList; -import java.util.List; - -import javax.jcr.Node; -import javax.jcr.NodeIterator; -import javax.jcr.RepositoryException; -import javax.jcr.Session; -import javax.jcr.nodetype.NodeType; -import javax.jcr.security.AccessControlException; -import javax.jcr.security.Privilege; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.cms.ArgeoNames; -import org.argeo.jcr.JcrUtils; -import org.argeo.jcr.proxy.AbstractUrlProxy; -import org.argeo.slc.SlcConstants; -import org.argeo.slc.SlcException; -import org.argeo.slc.SlcNames; -import org.argeo.slc.SlcTypes; -import org.argeo.slc.repo.MavenProxyService; -import org.argeo.slc.repo.RepoConstants; -import org.eclipse.aether.repository.RemoteRepository; - -/** Synchronises the node repository with remote Maven repositories */ -public class MavenProxyServiceImpl extends AbstractUrlProxy implements - MavenProxyService, ArgeoNames, SlcNames { - private final static Log log = LogFactory - .getLog(MavenProxyServiceImpl.class); - - private List defaultRepositories = new ArrayList(); - - /** Initialises the artifacts area. */ - @Override - protected void beforeInitSessionSave(Session session) - throws RepositoryException { - JcrUtils.addPrivilege(session, "/", SlcConstants.USER_ANONYMOUS, Privilege.JCR_READ); - try { - JcrUtils.addPrivilege(session, "/", SlcConstants.ROLE_SLC, - Privilege.JCR_ALL); - } catch (AccessControlException e) { - if (log.isTraceEnabled()) - log.trace("Cannot give jcr:all privileges to " - + SlcConstants.ROLE_SLC); - } - - JcrUtils.mkdirsSafe(session, RepoConstants.DEFAULT_ARTIFACTS_BASE_PATH); - Node proxiedRepositories = JcrUtils.mkdirsSafe(session, - RepoConstants.PROXIED_REPOSITORIES); - for (RemoteRepository repository : defaultRepositories) { - if (!proxiedRepositories.hasNode(repository.getId())) { - Node proxiedRepository = proxiedRepositories.addNode(repository - .getId()); - proxiedRepository.addMixin(NodeType.MIX_REFERENCEABLE); - JcrUtils.urlToAddressProperties(proxiedRepository, - repository.getUrl()); - // proxiedRepository.setProperty(SLC_URL, repository.getUrl()); - proxiedRepository.setProperty(SLC_TYPE, - repository.getContentType()); - } - } - } - - /** - * Retrieve and add this file to the repository - */ - @Override - protected Node retrieve(Session session, String path) { - try { - if (session.hasPendingChanges()) - throw new SlcException("Session has pending changed"); - Node node = null; - for (Node proxiedRepository : getBaseUrls(session)) { - String baseUrl = JcrUtils - .urlFromAddressProperties(proxiedRepository); - node = proxyUrl(session, baseUrl, path); - if (node != null) { - node.addMixin(SlcTypes.SLC_KNOWN_ORIGIN); - Node origin = node - .addNode(SLC_ORIGIN, SlcTypes.SLC_PROXIED); - origin.setProperty(SLC_PROXY, proxiedRepository); - JcrUtils.urlToAddressProperties(origin, baseUrl + path); - if (log.isDebugEnabled()) - log.debug("Imported " + baseUrl + path + " to " + node); - return node; - } - } - if (log.isDebugEnabled()) - log.warn("No proxy found for " + path); - return null; - } catch (Exception e) { - throw new SlcException("Cannot proxy " + path, e); - } - } - - protected synchronized List getBaseUrls(Session session) - throws RepositoryException { - List baseUrls = new ArrayList(); - for (NodeIterator nit = session.getNode( - RepoConstants.PROXIED_REPOSITORIES).getNodes(); nit.hasNext();) { - Node proxiedRepository = nit.nextNode(); - baseUrls.add(proxiedRepository); - } - return baseUrls; - } - - public void setDefaultRepositories( - List defaultRepositories) { - this.defaultRepositories = defaultRepositories; - } -}