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, NamespaceContext { private Repository jcrRepository; private Session adminSession; public void init() { adminSession = CmsJcrUtils.openDataAdminSession(jcrRepository, null); } public void destroy() { JcrUtils.logoutQuietly(adminSession); } public void setJcrRepository(Repository jcrRepository) { this.jcrRepository = jcrRepository; } @Override public Content get(ProvidedSession session, String mountPath, String relativePath) { // TODO Auto-generated method stub return null; } /* * NAMESPACE CONTEXT */ @Override 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); } } }