Ate Douma pushed to branch release/5.0 at cms-community / hippo-repository

Commits:
1026762f by Ate Douma at 2017-10-02T00:44:39+02:00
REPO-1839 Fix exporting ValueType for jcr URI, NAME and PATH property types and 
property jcr:mixinTypes with ValueType.NAME instead of ValueType.STRING

- - - - -


4 changed files:

- engine/src/main/java/org/onehippo/cm/engine/JcrContentExporter.java
- engine/src/main/java/org/onehippo/cm/engine/ValueProcessor.java
- 
engine/src/main/java/org/onehippo/cm/engine/autoexport/AutoExportConfigExporter.java
- engine/src/test/java/org/onehippo/cm/engine/JcrContentProcessorTest.java


Changes:

=====================================
engine/src/main/java/org/onehippo/cm/engine/JcrContentExporter.java
=====================================
--- a/engine/src/main/java/org/onehippo/cm/engine/JcrContentExporter.java
+++ b/engine/src/main/java/org/onehippo/cm/engine/JcrContentExporter.java
@@ -193,7 +193,7 @@ public class JcrContentExporter {
                 values.add(new ValueImpl(mixinNodeType.getName()));
             }
             values.sort(Comparator.comparing(ValueImpl::getString));
-            definitionNode.addProperty(JCR_MIXINTYPES, ValueType.STRING, 
values.toArray(new ValueImpl[values.size()]));
+            definitionNode.addProperty(JCR_MIXINTYPES, ValueType.NAME, 
values.toArray(new ValueImpl[values.size()]));
         }
     }
 }
\ No newline at end of file


=====================================
engine/src/main/java/org/onehippo/cm/engine/ValueProcessor.java
=====================================
--- a/engine/src/main/java/org/onehippo/cm/engine/ValueProcessor.java
+++ b/engine/src/main/java/org/onehippo/cm/engine/ValueProcessor.java
@@ -324,7 +324,7 @@ public abstract class ValueProcessor {
             case URI:
             case NAME:
             case PATH:
-                return new ValueImpl(jcrValue.getString());
+                return new 
ValueImpl(jcrValue.getString(),ValueType.fromJcrType(jcrType), false, false);
             case REFERENCE:
             case WEAKREFERENCE:
                 return getPathValue(property, jcrType, jcrValue, 
definitionNode);


=====================================
engine/src/main/java/org/onehippo/cm/engine/autoexport/AutoExportConfigExporter.java
=====================================
--- 
a/engine/src/main/java/org/onehippo/cm/engine/autoexport/AutoExportConfigExporter.java
+++ 
b/engine/src/main/java/org/onehippo/cm/engine/autoexport/AutoExportConfigExporter.java
@@ -375,14 +375,14 @@ public class AutoExportConfigExporter extends 
JcrContentExporter {
             if (!jcrMixins.isEmpty()) {
                 definitionNode = createDefNodeIfNecessary(definitionNode, 
jcrNode, configSource);
                 DefinitionPropertyImpl propertyDef = 
definitionNode.addProperty(JCR_MIXINTYPES,
-                        
ValueType.STRING,jcrMixins.stream().map(ValueImpl::new).toArray(ValueImpl[]::new));
+                        
ValueType.NAME,jcrMixins.stream().map(ValueImpl::new).toArray(ValueImpl[]::new));
                 if (op != null) {
                     propertyDef.setOperation(op);
                 }
             }
         } else if (mixinsProperty != null) {
             definitionNode = createDefNodeIfNecessary(definitionNode, jcrNode, 
configSource);
-            definitionNode.addProperty(JCR_MIXINTYPES, ValueType.STRING, new 
ValueImpl[0])
+            definitionNode.addProperty(JCR_MIXINTYPES, ValueType.NAME, new 
ValueImpl[0])
                     .setOperation(PropertyOperation.DELETE);
         }
         return definitionNode;


=====================================
engine/src/test/java/org/onehippo/cm/engine/JcrContentProcessorTest.java
=====================================
--- a/engine/src/test/java/org/onehippo/cm/engine/JcrContentProcessorTest.java
+++ b/engine/src/test/java/org/onehippo/cm/engine/JcrContentProcessorTest.java
@@ -50,7 +50,9 @@ import org.onehippo.cm.model.impl.tree.DefinitionNodeImpl;
 import org.onehippo.cm.model.parser.ParserException;
 import org.onehippo.cm.model.serializer.ModuleContext;
 import org.onehippo.cm.model.serializer.ModuleWriter;
+import org.onehippo.cm.model.tree.ValueType;
 import org.onehippo.repository.testutils.RepositoryTestCase;
+import org.onehippo.repository.util.JcrConstants;
 import org.onehippo.testutils.log4j.Log4jInterceptor;
 
 import static org.junit.Assert.assertEquals;
@@ -321,6 +323,17 @@ public class JcrContentProcessorTest extends 
RepositoryTestCase {
     }
 
     @Test
+    public void check_exported_primaryType_and_Mixins_ValueType() throws 
Exception {
+        final Node importedNode = session.getNode("/test");
+        importedNode.addMixin(JcrConstants.MIX_REFERENCEABLE);
+        final JcrContentExporter jcrContentExporter = new JcrContentExporter();
+        final ModuleImpl module = 
jcrContentExporter.exportNode(importedNode).build();
+        final DefinitionNodeImpl defNode = 
module.getContentDefinitions().get(0).getNode();
+        assertEquals(ValueType.NAME, 
defNode.getProperty(JcrConstants.JCR_PRIMARY_TYPE).getValueType());
+        assertEquals(ValueType.NAME, 
defNode.getProperty(JcrConstants.JCR_MIXIN_TYPES).getValueType());
+    }
+
+    @Test
     public void reload_content() throws Exception {
 
         applyAndSaveDefinitions(new String[]{source1});



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-repository/commit/1026762f15b7e8052c9e4dc6482aa155fba8b72e

---
View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-repository/commit/1026762f15b7e8052c9e4dc6482aa155fba8b72e
You're receiving this email because of your account on code.onehippo.org.
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to