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
Show replies by date