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();
      }
  
  }
  

Reply via email to