[exo-jcr-commits] exo-jcr SVN: r3399 - in jcr/trunk/exo.jcr.component.ext: src/main/java/org/exoplatform/services/jcr/ext/metadata and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Nov 4 12:05:03 EDT 2010


Author: areshetnyak
Date: 2010-11-04 12:05:01 -0400 (Thu, 04 Nov 2010)
New Revision: 3399

Added:
   jcr/trunk/exo.jcr.component.ext/src/test/resources/test_1.pdf
   jcr/trunk/exo.jcr.component.ext/src/test/resources/test_2.pdf
   jcr/trunk/exo.jcr.component.ext/src/test/resources/test_3.pdf
Modified:
   jcr/trunk/exo.jcr.component.ext/pom.xml
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/metadata/AddMetadataAction.java
   jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/metadata/MetaDataActionTest.java
Log:
EXOJCR-1036 : The problem  'Empty metadata field not updated when re-uploading documents' was fixed

Modified: jcr/trunk/exo.jcr.component.ext/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.ext/pom.xml	2010-11-04 16:01:43 UTC (rev 3398)
+++ jcr/trunk/exo.jcr.component.ext/pom.xml	2010-11-04 16:05:01 UTC (rev 3399)
@@ -141,6 +141,7 @@
       <testResource>
         <directory>src/test/resources</directory>
         <includes>
+          <include>**/*.pdf</include>
           <include>**/*.xml</include>
           <include>**/*.xls</include>
           <include>**/*.groovy</include>

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/metadata/AddMetadataAction.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/metadata/AddMetadataAction.java	2010-11-04 16:01:43 UTC (rev 3398)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/metadata/AddMetadataAction.java	2010-11-04 16:05:01 UTC (rev 3399)
@@ -18,6 +18,18 @@
  */
 package org.exoplatform.services.jcr.ext.metadata;
 
+import java.io.InputStream;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Map.Entry;
+
+import javax.jcr.PathNotFoundException;
+import javax.jcr.Value;
+import javax.jcr.ValueFactory;
+import javax.jcr.ValueFormatException;
+
 import org.apache.commons.chain.Context;
 import org.exoplatform.commons.utils.QName;
 import org.exoplatform.container.ExoContainer;
@@ -35,18 +47,6 @@
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
-import java.io.InputStream;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.Map.Entry;
-
-import javax.jcr.PathNotFoundException;
-import javax.jcr.Value;
-import javax.jcr.ValueFactory;
-import javax.jcr.ValueFormatException;
-
 /**
  * Created by The eXo Platform SAS .
  * 
@@ -104,6 +104,12 @@
             return false;
          }
 
+         // remove old "dc:elementSet" properties
+         if (parent.isNodeType("dc:elementSet"))
+         {
+            parent.removeMixin("dc:elementSet");
+         }
+
          if (!parent.isNodeType("dc:elementSet"))
          {
             parent.addMixin("dc:elementSet");

Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/metadata/MetaDataActionTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/metadata/MetaDataActionTest.java	2010-11-04 16:01:43 UTC (rev 3398)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/metadata/MetaDataActionTest.java	2010-11-04 16:05:01 UTC (rev 3399)
@@ -122,4 +122,43 @@
       assertFalse(contentNode.hasProperty("dc:date"));
       assertFalse(contentNode.hasProperty("dc:creator"));
    }
+   
+   public void testUpdatePDF() throws Exception
+   {
+      InputStream is = MetaDataActionTest.class.getResourceAsStream("/test_1.pdf");
+
+      Node rootNode = session.getRootNode().addNode("MetaDataActionTest");
+      Node contentNode = rootNode.addNode("testAddContent", "nt:resource");
+      contentNode.setProperty("jcr:data", is);
+      contentNode.setProperty("jcr:encoding", "UTF-8");
+      contentNode.setProperty("jcr:mimeType", "application/pdf");
+      contentNode.setProperty("jcr:lastModified", Calendar.getInstance());
+      session.save();
+
+      Node testNode = repository.getSystemSession().getRootNode().getNode("MetaDataActionTest/testAddContent");
+      assertTrue(testNode.hasProperty("dc:title"));
+      assertTrue(testNode.hasProperty("dc:creator"));
+      assertEquals("Title_1", testNode.getProperty("dc:title").getValues()[0].getString());
+      assertEquals("Author_1", testNode.getProperty("dc:creator").getValues()[0].getString());
+
+      // update #1 
+      is = MetaDataActionTest.class.getResourceAsStream("/test_2.pdf");
+      contentNode.setProperty("jcr:data", is);
+      session.save();
+
+      testNode = repository.getSystemSession().getRootNode().getNode("MetaDataActionTest/testAddContent");
+      assertTrue(testNode.hasProperty("dc:title"));
+      assertTrue(testNode.hasProperty("dc:creator"));
+      assertEquals("Title_2", testNode.getProperty("dc:title").getValues()[0].getString());
+      assertEquals("Author_2", testNode.getProperty("dc:creator").getValues()[0].getString());
+
+      // update #2 
+      is = MetaDataActionTest.class.getResourceAsStream("/test_3.pdf");
+      contentNode.setProperty("jcr:data", is);
+      session.save();
+
+      testNode = repository.getSystemSession().getRootNode().getNode("MetaDataActionTest/testAddContent");
+      assertFalse(testNode.hasProperty("dc:title"));
+      assertFalse(testNode.hasProperty("dc:creator"));
+   }
 }

Added: jcr/trunk/exo.jcr.component.ext/src/test/resources/test_1.pdf
===================================================================
(Binary files differ)


Property changes on: jcr/trunk/exo.jcr.component.ext/src/test/resources/test_1.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jcr/trunk/exo.jcr.component.ext/src/test/resources/test_2.pdf
===================================================================
(Binary files differ)


Property changes on: jcr/trunk/exo.jcr.component.ext/src/test/resources/test_2.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jcr/trunk/exo.jcr.component.ext/src/test/resources/test_3.pdf
===================================================================
(Binary files differ)


Property changes on: jcr/trunk/exo.jcr.component.ext/src/test/resources/test_3.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream



More information about the exo-jcr-commits mailing list