X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.jcr%2Fsrc%2Forg%2Fargeo%2Fcms%2Fjcr%2Fgcr%2FJcrContentProvider.java;h=761c087f0f9551732b57c01e12e6ce36097b11e1;hb=e5a22cdc7d0f4918f2740c626e1ab6384bd5ee44;hp=5e4a1b337133bee93ae36e859cba152dbea0c56f;hpb=51efb630db7314b67654a03d1bd983b45aa2f1ed;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/gcr/JcrContentProvider.java b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/gcr/JcrContentProvider.java index 5e4a1b337..761c087f0 100644 --- a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/gcr/JcrContentProvider.java +++ b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/gcr/JcrContentProvider.java @@ -1,18 +1,30 @@ package org.argeo.cms.jcr.gcr; +import java.util.Arrays; +import java.util.Iterator; + import javax.jcr.Repository; +import javax.jcr.RepositoryException; import javax.jcr.Session; +import javax.xml.namespace.NamespaceContext; import org.argeo.api.gcr.Content; import org.argeo.api.gcr.spi.ContentProvider; +import org.argeo.api.gcr.spi.ProvidedSession; import org.argeo.cms.jcr.CmsJcrUtils; +import org.argeo.jcr.JcrException; +import org.argeo.jcr.JcrUtils; -public class JcrContentProvider implements ContentProvider { +public class JcrContentProvider implements ContentProvider, NamespaceContext { private Repository jcrRepository; - private Session jcrSession; + private Session adminSession; public void init() { - jcrSession = CmsJcrUtils.openDataAdminSession(jcrRepository, null); + adminSession = CmsJcrUtils.openDataAdminSession(jcrRepository, null); + } + + public void destroy() { + JcrUtils.logoutQuietly(adminSession); } public void setJcrRepository(Repository jcrRepository) { @@ -20,15 +32,39 @@ public class JcrContentProvider implements ContentProvider { } @Override - public Content get() { + public Content get(ProvidedSession session, String mountPath, String relativePath) { + // TODO Auto-generated method stub return null; } + /* + * NAMESPACE CONTEXT + */ @Override - public Content get(String relativePath) { - // TODO Auto-generated method stub - return null; + public String getNamespaceURI(String prefix) { + try { + return adminSession.getNamespaceURI(prefix); + } catch (RepositoryException e) { + throw new JcrException(e); + } + } + + @Override + public String getPrefix(String namespaceURI) { + try { + return adminSession.getNamespacePrefix(namespaceURI); + } catch (RepositoryException e) { + throw new JcrException(e); + } + } + + @Override + public Iterator getPrefixes(String namespaceURI) { + try { + return Arrays.asList(adminSession.getNamespacePrefix(namespaceURI)).iterator(); + } catch (RepositoryException e) { + throw new JcrException(e); + } } - }