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