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