cmailleux 2005/08/09 13:58:18 CEST
Modified files:
core/src/java/org/jahia/hibernate/dao JahiaSlideUriDAO.java
core/src/java/org/jahia/hibernate/manager
JahiaSlideUriManager.java
core/src/java/org/jahia/services/webdav/stores
JahiaDescriptorsStore.java
JahiaJDBCAdapter.java
core/src/test/etc/spring applicationContext-hibernate.xml
core/src/test/src/java/org/jahia/hibernate/manager
JahiaSlideUriManagerTest.java
core/src/webapp/WEB-INF/etc/slide defs.xml
core/src/webapp/WEB-INF/etc/spring
applicationContext-hibernate.xml
Added files:
core/src/java/org/jahia/hibernate/model
JahiaSlideVersionContent.java
Revision Changes Path
1.2 +10 -0
jahia/core/src/java/org/jahia/hibernate/dao/JahiaSlideUriDAO.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/dao/JahiaSlideUriDAO.java.diff?r1=1.1&r2=1.2&f=h
1.2 +73 -20
jahia/core/src/java/org/jahia/hibernate/manager/JahiaSlideUriManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaSlideUriManager.java.diff?r1=1.1&r2=1.2&f=h
1.1 +89 -0
jahia/core/src/java/org/jahia/hibernate/model/JahiaSlideVersionContent.java
(new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/model/JahiaSlideVersionContent.java?rev=1.1&content-type=text/plain
1.8 +31 -8
jahia/core/src/java/org/jahia/services/webdav/stores/JahiaDescriptorsStore.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/webdav/stores/JahiaDescriptorsStore.java.diff?r1=1.7&r2=1.8&f=h
1.8 +29 -7
jahia/core/src/java/org/jahia/services/webdav/stores/JahiaJDBCAdapter.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/webdav/stores/JahiaJDBCAdapter.java.diff?r1=1.7&r2=1.8&f=h
1.6 +8 -7
jahia/core/src/test/etc/spring/applicationContext-hibernate.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/test/etc/spring/applicationContext-hibernate.xml.diff?r1=1.5&r2=1.6&f=h
1.2 +21 -5
jahia/core/src/test/src/java/org/jahia/hibernate/manager/JahiaSlideUriManagerTest.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/test/src/java/org/jahia/hibernate/manager/JahiaSlideUriManagerTest.java.diff?r1=1.1&r2=1.2&f=h
1.4 +1 -0 jahia/core/src/webapp/WEB-INF/etc/slide/defs.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/WEB-INF/etc/slide/defs.xml.diff?r1=1.3&r2=1.4&f=h
1.13 +1 -0
jahia/core/src/webapp/WEB-INF/etc/spring/applicationContext-hibernate.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/WEB-INF/etc/spring/applicationContext-hibernate.xml.diff?r1=1.12&r2=1.13&f=h
Index: JahiaSlideUriDAO.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaSlideUriDAO.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JahiaSlideUriDAO.java 5 Aug 2005 14:52:33 -0000 1.1
+++ JahiaSlideUriDAO.java 9 Aug 2005 11:58:15 -0000 1.2
@@ -175,5 +175,15 @@
}
return retUri;
}
+
+ public JahiaSlideVersionContent
loadVersionContent(JahiaSlideVersionHistory versionHistory) {
+ final HibernateTemplate template = getHibernateTemplate();
+ template.setCacheQueries(true);
+ return (JahiaSlideVersionContent)
template.get(JahiaSlideVersionContent.class,versionHistory.getVersionId());
+ }
+
+ public void update(JahiaSlideVersionContent versionContent) {
+ getHibernateTemplate().merge(versionContent);
+ }
}
Index: JahiaSlideUriManager.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaSlideUriManager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JahiaSlideUriManager.java 5 Aug 2005 14:52:33 -0000 1.1
+++ JahiaSlideUriManager.java 9 Aug 2005 11:58:16 -0000 1.2
@@ -1,10 +1,7 @@
package org.jahia.hibernate.manager;
import org.apache.commons.collections.FastArrayList;
-import org.apache.slide.content.NodeProperty;
-import org.apache.slide.content.NodeRevisionDescriptor;
-import org.apache.slide.content.NodeRevisionDescriptors;
-import org.apache.slide.content.NodeRevisionNumber;
+import org.apache.slide.content.*;
import org.apache.slide.lock.NodeLock;
import org.apache.slide.security.NodePermission;
import org.apache.slide.structure.LinkNode;
@@ -110,9 +107,39 @@
}
}
+ private JahiaSlideUri assureUri(String uri, int siteId) {
+ JahiaSlideUri slideUri;
+ try {
+ slideUri = dao.loadSlideUri(uri, new Integer(siteId));
+ } catch (ObjectRetrievalFailureException e) {
+ slideUri = new JahiaSlideUri(uri, new Integer(siteId));
+ dao.save(slideUri);
+ }
+ return slideUri;
+ }
+
+ public void createRevisionContent(String uri, NodeRevisionDescriptor
revisionDescriptor, NodeRevisionContent revisionContent, int namespace) throws
RevisionAlreadyExistException {
+ JahiaSlideVersionHistory versionHistory;
+ try {
+ versionHistory = dao.loadVersionHistory(uri,
getRevisionNumberAsString(revisionDescriptor.getRevisionNumber()), new
Integer(namespace));
+ } catch (ObjectRetrievalFailureException e) {
+ versionHistory = new JahiaSlideVersionHistory(null,
assureUri(uri, namespace),
+
assureBranch(revisionDescriptor.getBranchName(), namespace),
+
getRevisionNumberAsString(revisionDescriptor.getRevisionNumber()),
+ new HashSet(), new
HashSet(), new HashSet());
+ dao.save(versionHistory);
+
versionHistory.getJahiaSlideUri().getJahiaSlideVersionHistory().add(versionHistory);
+ dao.update(versionHistory.getJahiaSlideUri());
+ }
+ JahiaSlideVersionContent versionContent = new
JahiaSlideVersionContent();
+ versionContent.setVersion(versionHistory);
+ versionContent.setContent(revisionContent.getContentBytes());
+ dao.save(versionContent);
+ }
+
public void createRevisionDescriptor(String uri, NodeRevisionDescriptor
revisionDescriptor, int siteId) {
JahiaSlideUri slideUri = assureUri(uri.toString(), siteId);
- if (slideUri.getJahiaSlideVersion() == null){
+ if (slideUri.getJahiaSlideVersion() == null) {
JahiaSlideVersion jahiaSlideVersion = new
JahiaSlideVersion(slideUri.getUriId(), false, slideUri);
slideUri.setJahiaSlideVersion(jahiaSlideVersion);
dao.save(jahiaSlideVersion);
@@ -195,6 +222,11 @@
return slideUri;
}
+ // null means permission is valid for all revisions
+ protected String getRevisionNumberAsString(NodeRevisionNumber
revisionNumber) {
+ return revisionNumber != null ? revisionNumber.toString() : null;
+ }
+
private JahiaSlideLabel assureLabel(String branch, int siteId) {
JahiaSlideLabel slideUri = dao.loadLabel(branch, new
Integer(siteId));
if (slideUri == null) {
@@ -298,7 +330,7 @@
public void grantPermission(String uri, NodePermission permission, int
siteId) {
final Integer namespace = new Integer(siteId);
- int succession = dao.getNextSucession(permission.getObjectUri(),
namespace).intValue()+1;
+ int succession = dao.getNextSucession(permission.getObjectUri(),
namespace).intValue() + 1;
JahiaSlidePermission slidePermission = new JahiaSlidePermission(new
JahiaSlidePermissionPK(dao.loadSlideUri(permission.getObjectUri(), namespace),
assureUri(permission.getSubjectUri(), siteId),
assureUri(permission.getActionUri(), siteId)),
@@ -307,9 +339,11 @@
dao.save(slidePermission);
}
- // null means permission is valid for all revisions
- protected String getRevisionNumberAsString(NodeRevisionNumber
revisionNumber) {
- return revisionNumber != null ? revisionNumber.toString() : null;
+ public void removeRevisionContent(String uri, NodeRevisionDescriptor
revisionDescriptor, int siteId) {
+ try {
+ dao.delete(dao.loadVersionContent(dao.loadVersionHistory(uri,
getRevisionNumberAsString(revisionDescriptor.getRevisionNumber()), new
Integer(siteId))));
+ } catch (Throwable e) {
+ }
}
public void removeRevisionDescriptor(String uri, NodeRevisionNumber
revisionNumber, int siteId) {
@@ -355,17 +389,6 @@
dao.save(slideLock);
}
- private JahiaSlideUri assureUri(String uri, int siteId) {
- JahiaSlideUri slideUri;
- try {
- slideUri = dao.loadSlideUri(uri, new Integer(siteId));
- } catch (ObjectRetrievalFailureException e) {
- slideUri = new JahiaSlideUri(uri, new Integer(siteId));
- dao.save(slideUri);
- }
- return slideUri;
- }
-
public ObjectNode retrieveObject(String uri, int siteID) throws
ClassNotFoundException, NoSuchMethodException, IllegalAccessException,
InvocationTargetException, InstantiationException {
ObjectNode result = null;
JahiaSlideUri slideUri = dao.loadAllSlideUri(uri, new
Integer(siteID));
@@ -405,6 +428,22 @@
return result;
}
+ public NodeRevisionContent retrieveRevisionContent(String uri,
NodeRevisionDescriptor revisionDescriptor, int namespace) throws
RevisionNotFoundException {
+ JahiaSlideVersionHistory versionHistory;
+ try {
+ versionHistory = dao.loadVersionHistory(uri,
getRevisionNumberAsString(revisionDescriptor.getRevisionNumber()), new
Integer(namespace));
+ } catch (ObjectRetrievalFailureException e) {
+ throw new RevisionNotFoundException(uri.toString(),
revisionDescriptor.getRevisionNumber());
+ }
+ JahiaSlideVersionContent versionContent =
dao.loadVersionContent(versionHistory);
+ NodeRevisionContent revisionContent = new NodeRevisionContent();
+ if (versionContent == null || versionContent.getContent()==null ||
versionContent.getContent().length==0) {
+ throw new RevisionNotFoundException(uri.toString(),
revisionDescriptor.getRevisionNumber());
+ }
+ revisionContent.setContent(versionContent.getContent());
+ return revisionContent;
+ }
+
public NodeRevisionDescriptor retrieveRevisionDescriptor(String uri,
NodeRevisionNumber revisionNumber, int siteId) {
JahiaSlideVersionHistory versionHistory =
dao.loadVersionHistory(uri.toString(), revisionNumber.toString(), new
Integer(siteId));
Vector labels = new
Vector(versionHistory.getJahiaSlideVersionLabels().size());
@@ -465,6 +504,20 @@
this.dao = dao;
}
+ public void storeRevisionContent(String uri, NodeRevisionDescriptor
revisionDescriptor, NodeRevisionContent revisionContent, int namespace) throws
RevisionNotFoundException {
+ JahiaSlideVersionHistory versionHistory;
+ try {
+ versionHistory = dao.loadVersionHistory(uri,
getRevisionNumberAsString(revisionDescriptor.getRevisionNumber()), new
Integer(namespace));
+ } catch (ObjectRetrievalFailureException e) {
+ throw new RevisionNotFoundException(uri,
revisionDescriptor.getRevisionNumber());
+ }
+ JahiaSlideVersionContent versionContent = new
JahiaSlideVersionContent();
+ versionContent.setVersion(versionHistory);
+ versionContent.setVersionId(versionHistory.getVersionId());
+ versionContent.setContent(revisionContent.getContentBytes());
+ dao.update(versionContent);
+ }
+
public boolean updateObject(String uri, ObjectNode node, int namespace) {
final Integer namespaceInteger = new Integer(namespace);
JahiaSlideUri slideUri = dao.loadSlideUri(uri.toString(),
namespaceInteger);
Index: JahiaDescriptorsStore.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/webdav/stores/JahiaDescriptorsStore.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- JahiaDescriptorsStore.java 5 Aug 2005 14:52:31 -0000 1.7
+++ JahiaDescriptorsStore.java 9 Aug 2005 11:58:16 -0000 1.8
@@ -46,6 +46,7 @@
import javax.sql.DataSource;
import javax.transaction.xa.XAException;
import javax.transaction.xa.Xid;
+import javax.transaction.xa.XAResource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.*;
@@ -55,7 +56,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a>
* @author Dirk Verbeeck
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
public class JahiaDescriptorsStore extends AbstractRDBMSStore
@@ -120,7 +121,7 @@
String className = (String) parameters.get("contentStore");
if (className == null) {
- contentStore = new FileContentStore();
+ contentStore = null;
} else {
try {
contentStore = (ContentStore)
Class.forName(className).newInstance();
@@ -128,6 +129,7 @@
throw new ServiceParameterErrorException(this,
"contentStore");
}
}
+ if(contentStore != null) {
Hashtable contentParams = new Hashtable();
for (Iterator iterator = parameters.keySet().iterator();
iterator.hasNext();) {
String key = (String) iterator.next();
@@ -136,7 +138,7 @@
}
}
contentStore.setParameters(contentParams);
-
+ }
tmCommits = true;
}
@@ -149,6 +151,7 @@
*/
public synchronized void connect ()
throws ServiceConnectionFailedException {
+ if(contentStore != null)
contentStore.connect();
}
@@ -161,6 +164,7 @@
*/
public void disconnect ()
throws ServiceDisconnectionFailedException {
+ if(contentStore != null)
contentStore.disconnect();
}
@@ -186,7 +190,7 @@
namespace.getName ())
.getID ();
}
-
+ if(contentStore != null)
contentStore.initialize(token);
} catch (JahiaException e) {
e.printStackTrace (); //To change body of catch statement use
Options | File Templates.
@@ -704,7 +708,10 @@
if (item.type == FIELD_CONTENT) {
return processContentFieldContent(uri, item, revisionDescriptor);
} else if ((item.type & FILES) == FILES) {
- return contentStore.retrieveRevisionContent(uri,
revisionDescriptor);
+ if(contentStore != null)
+ return contentStore.retrieveRevisionContent(uri,
revisionDescriptor);
+ else
+ return adapter.retrieveRevisionContent(null,uri,
revisionDescriptor, false);
}
throw new RevisionNotFoundException(uri.toString(),
revisionDescriptor.getRevisionNumber());
}
@@ -712,7 +719,10 @@
public void createRevisionContent(Uri uri, NodeRevisionDescriptor
revisionDescriptor, NodeRevisionContent revisionContent) throws
ServiceAccessException, RevisionAlreadyExistException {
PathItem item = getPathItem(uri);
if ((item.type & FILES) == FILES) {
- contentStore.createRevisionContent(uri, revisionDescriptor,
revisionContent);
+ if(contentStore != null)
+ contentStore.createRevisionContent(uri, revisionDescriptor,
revisionContent);
+ else
+ adapter.createRevisionContent(null,uri, revisionDescriptor,
revisionContent);
}
}
@@ -730,14 +740,20 @@
throw new ServiceAccessException(this, e);
}
} else if ((item.type & FILES) == FILES) {
- contentStore.storeRevisionContent(uri, revisionDescriptor,
revisionContent);
+ if(contentStore != null)
+ contentStore.storeRevisionContent(uri, revisionDescriptor,
revisionContent);
+ else
+ adapter.storeRevisionContent(null,uri, revisionDescriptor,
revisionContent);
}
}
public void removeRevisionContent(Uri uri, NodeRevisionDescriptor
revisionDescriptor) throws ServiceAccessException {
PathItem item = getPathItem(uri);
if ((item.type & FILES) == FILES) {
- contentStore.removeRevisionContent(uri, revisionDescriptor);
+ if(contentStore != null)
+ contentStore.removeRevisionContent(uri, revisionDescriptor);
+ else
+ adapter.removeRevisionContent(null,uri, revisionDescriptor);
}
}
@@ -1492,6 +1508,7 @@
}
public void forget(Xid xid) throws XAException {
+ if(contentStore != null)
contentStore.forget(xid);
}
@@ -1501,6 +1518,7 @@
} catch (SQLException e) {
throw new XAException(XAException.XAER_RMFAIL);
}*/
+ if(contentStore != null)
contentStore.commit(xid, b);
}
@@ -1510,18 +1528,23 @@
} catch (SQLException e) {
throw new XAException(XAException.XAER_RMFAIL);
}*/
+ if(contentStore != null)
contentStore.rollback(xid);
}
public int prepare(Xid xid) throws XAException {
+ if(contentStore != null)
return contentStore.prepare(xid);
+ else return XAResource.XA_OK;
}
public void end(Xid xid, int i) throws XAException {
+ if(contentStore != null)
contentStore.end(xid, i);
}
public void start(Xid xid, int i) throws XAException {
+ if(contentStore != null)
contentStore.start(xid, i);
}
Index: JahiaJDBCAdapter.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/webdav/stores/JahiaJDBCAdapter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- JahiaJDBCAdapter.java 5 Aug 2005 14:52:31 -0000 1.7
+++ JahiaJDBCAdapter.java 9 Aug 2005 11:58:16 -0000 1.8
@@ -29,10 +29,10 @@
* Time: 17:28:45
* <p/>
* $Author: cmailleux $
- * $Date: 2005/08/05 14:52:31 $
- * $Id: JahiaJDBCAdapter.java,v 1.7 2005/08/05 14:52:31 cmailleux Exp $
+ * $Date: 2005/08/09 11:58:16 $
+ * $Id: JahiaJDBCAdapter.java,v 1.8 2005/08/09 11:58:16 cmailleux Exp $
* $RCSfile: JahiaJDBCAdapter.java,v $
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
* $Source:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/webdav/stores/JahiaJDBCAdapter.java,v
$
* $State: Exp $
*/
@@ -239,19 +239,41 @@
}
public NodeRevisionContent retrieveRevisionContent(Connection conn, Uri
uri, NodeRevisionDescriptor revisionDescriptor, boolean temporaryConnection)
throws ServiceAccessException, RevisionNotFoundException {
- throw new ServiceAccessException(service,"Content not supported");
+ try {
+ return
uriManager.retrieveRevisionContent(uri.toString(),revisionDescriptor,((JahiaDescriptorsStore)service).getSiteId());
+ } catch(RevisionNotFoundException e) {
+ throw e;
+ } catch(Throwable e) {
+ throw new ServiceAccessException(service,e);
+ }
}
public void createRevisionContent(Connection conn, Uri uri,
NodeRevisionDescriptor revisionDescriptor, NodeRevisionContent revisionContent)
throws ServiceAccessException, RevisionAlreadyExistException {
- throw new ServiceAccessException(service,"Content not supported");
+ try {
+
uriManager.createRevisionContent(uri.toString(),revisionDescriptor,revisionContent,((JahiaDescriptorsStore)service).getSiteId());
+ } catch(RevisionAlreadyExistException e) {
+ throw e;
+ } catch(Throwable e) {
+ throw new ServiceAccessException(service,e);
+ }
}
public void storeRevisionContent(Connection conn, Uri uri,
NodeRevisionDescriptor revisionDescriptor, NodeRevisionContent revisionContent)
throws ServiceAccessException, RevisionNotFoundException {
- throw new ServiceAccessException(service,"Content not supported");
+ try {
+
uriManager.storeRevisionContent(uri.toString(),revisionDescriptor,revisionContent,((JahiaDescriptorsStore)service).getSiteId());
+ } catch(RevisionNotFoundException e) {
+ throw e;
+ } catch(Throwable e) {
+ throw new ServiceAccessException(service,e);
+ }
}
public void removeRevisionContent(Connection conn, Uri uri,
NodeRevisionDescriptor revisionDescriptor) throws ServiceAccessException {
- throw new ServiceAccessException(service,"Content not supported");
+ try {
+
uriManager.removeRevisionContent(uri.toString(),revisionDescriptor,((JahiaDescriptorsStore)service).getSiteId());
+ } catch(Throwable e) {
+ throw new ServiceAccessException(service,e);
+ }
}
}
Index: applicationContext-hibernate.xml
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/test/etc/spring/applicationContext-hibernate.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- applicationContext-hibernate.xml 2 Aug 2005 09:11:31 -0000 1.5
+++ applicationContext-hibernate.xml 9 Aug 2005 11:58:16 -0000 1.6
@@ -5,13 +5,13 @@
<beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
-<!-- <value>com.mysql.jdbc.Driver</value>-->
+ <value>com.mysql.jdbc.Driver</value>
<!-- <value>com.p6spy.engine.spy.P6SpyDriver</value>-->
- <value>oracle.jdbc.OracleDriver</value>
+<!-- <value>oracle.jdbc.OracleDriver</value>-->
</property>
<property name="url">
-<!-- <value>jdbc:mysql://localhost:3306/jahia</value>-->
- <value>jdbc:oracle:thin:@localhost:1521:jahia</value>
+ <value>jdbc:mysql://localhost:3309/jahia</value>
+<!--
<value>jdbc:oracle:thin:@localhost:1521:jahia</value>-->
</property>
<property name="username">
<!-- <value>root</value>-->
@@ -109,6 +109,7 @@
<value>org/jahia/hibernate/model/JahiaSlideUri.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersionLabel.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersion.hbm.xml</value>
+
<value>org/jahia/hibernate/model/JahiaSlideVersionContent.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersionHistory.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersionPred.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideBinding.hbm.xml</value>
@@ -132,9 +133,9 @@
</property>
<property name="hibernateProperties">
<props>
-<!-- <prop
key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>-->
- <prop
key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
- <prop key="hibernate.hbm2ddl.auto">none</prop>
+ <prop
key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
+<!-- <prop
key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>-->
+ <prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
<prop key="hibernate.jdbc.batch_size">30</prop>
Index: JahiaSlideUriManagerTest.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/test/src/java/org/jahia/hibernate/manager/JahiaSlideUriManagerTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JahiaSlideUriManagerTest.java 4 Aug 2005 08:52:37 -0000 1.1
+++ JahiaSlideUriManagerTest.java 9 Aug 2005 11:58:17 -0000 1.2
@@ -9,21 +9,22 @@
*/
import org.apache.log4j.Logger;
+import org.apache.slide.content.*;
import org.apache.slide.lock.NodeLock;
import org.apache.slide.security.NodePermission;
import org.apache.slide.structure.LinkNode;
import org.apache.slide.structure.ObjectNode;
import org.apache.slide.structure.SubjectNode;
-import org.apache.slide.content.NodeRevisionDescriptor;
-import org.apache.slide.content.NodeRevisionDescriptors;
-import org.apache.slide.content.NodeProperty;
-import org.apache.slide.content.NodeRevisionNumber;
import org.jmock.cglib.Mock;
import org.jmock.cglib.MockObjectTestCase;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-import java.util.*;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.Vector;
public class JahiaSlideUriManagerTest extends MockObjectTestCase {
JahiaSlideUriManager manager;
@@ -100,4 +101,19 @@
revisionDescriptor.setProperty(new
NodeProperty("test","testvalue"+Math.random(),"Test:","",false));
manager.createRevisionDescriptor("/shared/test",revisionDescriptor,
1);
}
+
+ public void testCreateRevisionContent() throws Exception {
+ NodeRevisionDescriptor revisionDescriptor = new
NodeRevisionDescriptor(new NodeRevisionNumber("1.0"),
NodeRevisionDescriptors.MAIN_BRANCH);
+ String uri = "/shared/test";
+ manager.createRevisionDescriptor(uri,revisionDescriptor, 1);
+ NodeRevisionContent content = new NodeRevisionContent();
+ InputStream is =
Thread.currentThread().getContextClassLoader().getResourceAsStream("spring/applicationContext-hibernate.xml");
+ content.setContent(is);
+ byte[] bytes = content.getContentBytes();
+ manager.storeRevisionContent(uri, revisionDescriptor, content, 1);
+ NodeRevisionContent revisionContent =
manager.retrieveRevisionContent(uri, revisionDescriptor, 1);
+ assertNotNull(revisionContent);
+ assertTrue(revisionContent.getContentBytes().length>0);
+ assertEquals(bytes.length,revisionContent.getContentBytes().length);
+ }
}
\ No newline at end of file
Index: defs.xml
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/webapp/WEB-INF/etc/slide/defs.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- defs.xml 12 Apr 2005 12:36:40 -0000 1.3
+++ defs.xml 9 Aug 2005 11:58:17 -0000 1.4
@@ -11,6 +11,7 @@
<definition>
<store name="jahia"
classname="org.jahia.services.webdav.stores.CachedStore" >
<nodestore
classname="org.jahia.services.webdav.stores.JahiaDescriptorsStore">
+ <!-- Comment this line to store your slide file inside your
database -->
<parameter
name="contentStore">org.jahia.services.webdav.stores.FileContentStore</parameter>
</nodestore>
<securitystore>
Index: applicationContext-hibernate.xml
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/webapp/WEB-INF/etc/spring/applicationContext-hibernate.xml,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- applicationContext-hibernate.xml 5 Aug 2005 14:52:32 -0000 1.12
+++ applicationContext-hibernate.xml 9 Aug 2005 11:58:17 -0000 1.13
@@ -84,6 +84,7 @@
<value>org/jahia/hibernate/model/JahiaSlideUri.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersionLabel.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersion.hbm.xml</value>
+
<value>org/jahia/hibernate/model/JahiaSlideVersionContent.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersionHistory.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideVersionPred.hbm.xml</value>
<value>org/jahia/hibernate/model/JahiaSlideBinding.hbm.xml</value>
Index: JahiaSlideVersionContent.java
====================================================================
package org.jahia.hibernate.model;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import java.io.Serializable;
/**
* @hibernate.class table="jahia_sl2_version_content"
* @hibernate.cache usage="read-write"
*/
public class JahiaSlideVersionContent implements Serializable {
/**
* nullable persistent field
*/
private JahiaSlideVersionHistory version;
private byte[] content;
private Long versionId;
/**
* default constructor
*/
public JahiaSlideVersionContent() {
}
/**
* @hibernate.id generator-class="foreign"
* type="java.lang.Long"
* column="version_id"
* @hibernate.generator-param name="property" value="version"
*/
public Long getVersionId() {
return this.versionId;
}
public void setVersionId(Long versionId) {
this.versionId = versionId;
}
/**
* @hibernate.one-to-one
class="org.jahia.hibernate.model.JahiaSlideVersionHistory"
* outer-join="auto"
* constrained="true"
*/
public JahiaSlideVersionHistory getVersion() {
return this.version;
}
public void setVersion(JahiaSlideVersionHistory version) {
this.version = version;
}
/**
* @hibernate.property column="content" type="binary"
*/
public byte[] getContent() {
return content;
}
public void setContent(byte[] content) {
this.content = content;
}
public String toString() {
return new ToStringBuilder(this)
.append("version", getVersion())
.toString();
}
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj != null && this.getClass() == obj.getClass()) {
final JahiaSlideVersionContent castOther =
(JahiaSlideVersionContent) obj;
return new EqualsBuilder()
.append(this.getVersion(), castOther.getVersion())
.isEquals();
}
return false;
}
public int hashCode() {
return new HashCodeBuilder()
.append(getVersion())
.toHashCode();
}
}