You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/02/06 17:18:04 UTC

svn commit: r375306 - in /lenya/trunk/src: java/org/apache/lenya/cms/cocoon/source/ java/org/apache/lenya/cms/repo/ modules/jcr/java/src/org/apache/lenya/cms/jcr/ modules/jcr/java/src/org/apache/lenya/cms/jcr/mapping/ modules/jcr/java/test/org/apache/l...

Author: andreas
Date: Mon Feb  6 08:18:01 2006
New Revision: 375306

URL: http://svn.apache.org/viewcvs?rev=375306&view=rev
Log:
Extended repository API (added some methods)

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/ContentSourceFactory.java
    lenya/trunk/src/java/org/apache/lenya/cms/repo/Area.java
    lenya/trunk/src/java/org/apache/lenya/cms/repo/Asset.java
    lenya/trunk/src/java/org/apache/lenya/cms/repo/Site.java
    lenya/trunk/src/java/org/apache/lenya/cms/repo/SiteNode.java
    lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AreaProxy.java
    lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AssetProxy.java
    lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/JCRSession.java
    lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteNodeProxy.java
    lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteProxy.java
    lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/mapping/RepositoryFacade.java
    lenya/trunk/src/modules/jcr/java/test/org/apache/lenya/cms/jcr/JCRRepositoryTest.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/ContentSourceFactory.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/ContentSourceFactory.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/ContentSourceFactory.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/ContentSourceFactory.java Mon Feb  6 08:18:01 2006
@@ -79,7 +79,7 @@
                 Publication pub = session.getPublication(pubId);
                 Area area = pub.getArea(areaId);
                 SiteNode siteNode = area.getSite().getNode(path);
-                Asset contentNode = siteNode.getContentNode();
+                Asset contentNode = siteNode.getAsset();
                 Translation document = contentNode.getTranslation(language);
                 source = new ContentSource(document, getLogger());
             } else if (locator.startsWith("/")) {

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repo/Area.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/repo/Area.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repo/Area.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repo/Area.java Mon Feb  6 08:18:01 2006
@@ -45,4 +45,10 @@
      */
     String getAreaID() throws RepositoryException;
     
+    /**
+     * @return The publication the area belongs to.
+     * @throws RepositoryException if an error occurs.
+     */
+    Publication getPublication() throws RepositoryException;
+    
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repo/Asset.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/repo/Asset.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repo/Asset.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repo/Asset.java Mon Feb  6 08:18:01 2006
@@ -82,4 +82,10 @@
      */
     void remove() throws RepositoryException;
 
+    /**
+     * @return The content this asset belongs to.
+     * @throws RepositoryException if an error occurs.
+     */
+    Content getContent() throws RepositoryException;
+    
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repo/Site.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/repo/Site.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repo/Site.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repo/Site.java Mon Feb  6 08:18:01 2006
@@ -70,4 +70,18 @@
      */
     void move(String srcAbsPath, String destAbsPath) throws RepositoryException;
 
+    /**
+     * @param asset An asset.
+     * @return The nodes referencing the asset.
+     * @throws RepositoryException if an error occurs.
+     */
+    SiteNode[] getReferences(Asset asset) throws RepositoryException;
+    
+    /**
+     * @param asset An asset.
+     * @return The first node referencing the document or <code>null</code> if the asset is not referenced.
+     * @throws RepositoryException if an error occurs.
+     */
+    SiteNode getFirstReference(Asset asset) throws RepositoryException;
+
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repo/SiteNode.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/repo/SiteNode.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repo/SiteNode.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repo/SiteNode.java Mon Feb  6 08:18:01 2006
@@ -64,7 +64,7 @@
      * @return The referenced content node.
      * @throws RepositoryException if an error occurs.
      */
-    Asset getContentNode() throws RepositoryException;
+    Asset getAsset() throws RepositoryException;
     
     /**
      * @return The parent node or <code>null</code> if this is a top-level node.

Modified: lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AreaProxy.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AreaProxy.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AreaProxy.java (original)
+++ lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AreaProxy.java Mon Feb  6 08:18:01 2006
@@ -22,6 +22,7 @@
 import org.apache.lenya.cms.jcr.mapping.PropertyPathElement;
 import org.apache.lenya.cms.repo.Area;
 import org.apache.lenya.cms.repo.Content;
+import org.apache.lenya.cms.repo.Publication;
 import org.apache.lenya.cms.repo.RepositoryException;
 import org.apache.lenya.cms.repo.Site;
 
@@ -89,6 +90,10 @@
     
     public String getAreaID() throws RepositoryException {
         return getPropertyString(ID_PROPERTY);
+    }
+
+    public Publication getPublication() throws RepositoryException {
+        return getRepository().getRepositorySession().getPublication(getPublicationId());
     }
 
 }

Modified: lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AssetProxy.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AssetProxy.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AssetProxy.java (original)
+++ lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/AssetProxy.java Mon Feb  6 08:18:01 2006
@@ -21,6 +21,7 @@
 import org.apache.lenya.cms.jcr.mapping.Path;
 import org.apache.lenya.cms.jcr.mapping.PathElement;
 import org.apache.lenya.cms.repo.Asset;
+import org.apache.lenya.cms.repo.Content;
 import org.apache.lenya.cms.repo.Translation;
 import org.apache.lenya.cms.repo.AssetType;
 import org.apache.lenya.cms.repo.RepositoryException;
@@ -114,6 +115,10 @@
      */
     public void setDocumentType(String documentType) throws RepositoryException {
         setProperty(DOCUMENT_TYPE_PROPERTY, documentType);
+    }
+
+    public Content getContent() throws RepositoryException {
+        return (Content) getParentProxy();
     }
 
 }

Modified: lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/JCRSession.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/JCRSession.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/JCRSession.java (original)
+++ lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/JCRSession.java Mon Feb  6 08:18:01 2006
@@ -73,7 +73,8 @@
 
                 Session session = getRepository().getRepository()
                         .login(new SimpleCredentials("john", "".toCharArray()), area);
-                facade = new RepositoryFacade(session,
+                facade = new RepositoryFacade(this,
+                        session,
                         getRepository().getDocumentTypeRegistry(),
                         getRepository().getMetaDataRegistry());
 

Modified: lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteNodeProxy.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteNodeProxy.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteNodeProxy.java (original)
+++ lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteNodeProxy.java Mon Feb  6 08:18:01 2006
@@ -78,7 +78,7 @@
         return site.getAbsolutePath().append(getPathElement(getName()));
     }
 
-    public Asset getContentNode() throws RepositoryException {
+    public Asset getAsset() throws RepositoryException {
         try {
             Node node = getPropertyNode(CONTENT_NODE_PROPERTY);
             String id = node.getUUID();

Modified: lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteProxy.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteProxy.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteProxy.java (original)
+++ lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/SiteProxy.java Mon Feb  6 08:18:01 2006
@@ -20,6 +20,9 @@
 import java.util.Arrays;
 import java.util.List;
 
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.PropertyIterator;
 import javax.jcr.Session;
 
 import org.apache.lenya.cms.jcr.mapping.AbstractNodeProxy;
@@ -102,6 +105,36 @@
             session.move(srcPath, destPath);
         } catch (javax.jcr.RepositoryException e) {
             throw new RepositoryException(e);
+        }
+    }
+
+    public SiteNode[] getReferences(Asset asset) throws RepositoryException {
+        List siteNodes = new ArrayList();
+        AssetProxy proxy = (AssetProxy) asset;
+
+        try {
+            for (PropertyIterator references = proxy.getNode().getReferences(); references.hasNext();) {
+                Property property = references.nextProperty();
+                Node node = property.getParent();
+                if (node.isNodeType(SiteNodeProxy.NODE_TYPE)) {
+                    SiteNode siteNode = (SiteNode) getRepository().getProxy(node);
+                    siteNodes.add(siteNode);
+                }
+            }
+        } catch (javax.jcr.RepositoryException e) {
+            throw new RepositoryException(e);
+        }
+
+        return (SiteNode[]) siteNodes.toArray(new SiteNode[siteNodes.size()]);
+    }
+
+    public SiteNode getFirstReference(Asset asset) throws RepositoryException {
+        SiteNode[] nodes = getReferences(asset);
+        if (nodes.length > 0) {
+            return nodes[0];
+        }
+        else {
+            return null;
         }
     }
 

Modified: lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/mapping/RepositoryFacade.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/mapping/RepositoryFacade.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/mapping/RepositoryFacade.java (original)
+++ lenya/trunk/src/modules/jcr/java/src/org/apache/lenya/cms/jcr/mapping/RepositoryFacade.java Mon Feb  6 08:18:01 2006
@@ -20,6 +20,7 @@
 import javax.jcr.Session;
 import javax.jcr.query.InvalidQueryException;
 
+import org.apache.lenya.cms.jcr.JCRSession;
 import org.apache.lenya.cms.jcr.util.Assertion;
 import org.apache.lenya.cms.repo.AssetTypeRegistry;
 import org.apache.lenya.cms.repo.RepositoryException;
@@ -32,17 +33,19 @@
 
     /**
      * Ctor.
+     * @param jcrSession The repo session.
      * @param session The JCR session.
      * @param doctypeRegistry The document type registry.
      * @param metaDataRegistry The meta data registry.
      */
-    public RepositoryFacade(Session session, AssetTypeRegistry doctypeRegistry,
+    public RepositoryFacade(JCRSession jcrSession, Session session, AssetTypeRegistry doctypeRegistry,
             MetaDataRegistry metaDataRegistry) {
         this.session = session;
         this.doctypeRegistry = doctypeRegistry;
         this.metaDataRegistry = metaDataRegistry;
     }
 
+    private JCRSession jcrSession;
     private Session session;
     private AssetTypeRegistry doctypeRegistry;
 
@@ -239,7 +242,7 @@
 
     }
 
-    protected NodeProxy getProxy(Node node) throws RepositoryException {
+    public NodeProxy getProxy(Node node) throws RepositoryException {
         return createProxy(node);
     }
 
@@ -257,6 +260,13 @@
      */
     public MetaDataRegistry getMetaDataRegistry() {
         return this.metaDataRegistry;
+    }
+
+    /**
+     * @return The repo session.
+     */
+    public JCRSession getRepositorySession() {
+        return this.jcrSession;
     }
 
 }

Modified: lenya/trunk/src/modules/jcr/java/test/org/apache/lenya/cms/jcr/JCRRepositoryTest.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/modules/jcr/java/test/org/apache/lenya/cms/jcr/JCRRepositoryTest.java?rev=375306&r1=375305&r2=375306&view=diff
==============================================================================
--- lenya/trunk/src/modules/jcr/java/test/org/apache/lenya/cms/jcr/JCRRepositoryTest.java (original)
+++ lenya/trunk/src/modules/jcr/java/test/org/apache/lenya/cms/jcr/JCRRepositoryTest.java Mon Feb  6 08:18:01 2006
@@ -125,7 +125,7 @@
         assertNotNull(asset2);
         SiteNode parent = site.addChild("parent", asset1);
         SiteNode child = parent.addChild("child", asset2);
-        assertSame(asset2.getAssetId(), child.getContentNode().getAssetId());
+        assertSame(asset2.getAssetId(), child.getAsset().getAssetId());
 
         doTestSite(site, asset1);
 
@@ -147,7 +147,7 @@
         site.move("/foo", "/bar/baz");
 
         SiteNode barBaz = bar.getChild("baz");
-        assertSame(foo.getContentNode().getAssetId(), barBaz.getContentNode().getAssetId());
+        assertSame(foo.getAsset().getAssetId(), barBaz.getAsset().getAssetId());
 
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org