Sergey Shepelevich pushed to branch bugfix/REPO-1752 at cms-community / 
hippo-repository


Commits:
40d99559 by Sergey Shepelevich at 2017-08-04T10:34:47+02:00
REPO-1752 Migrate the URL rewriter configuration in repository

If destination node does not exist, create it

- - - - -


2 changed files:

- engine/src/main/java/org/hippoecm/repository/MigrateNodeTypesToV12.java
- engine/src/test/java/org/hippoecm/repository/MigrateNodeTypesToV12Test.java


Changes:

=====================================
engine/src/main/java/org/hippoecm/repository/MigrateNodeTypesToV12.java
=====================================
--- a/engine/src/main/java/org/hippoecm/repository/MigrateNodeTypesToV12.java
+++ b/engine/src/main/java/org/hippoecm/repository/MigrateNodeTypesToV12.java
@@ -35,10 +35,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.hippoecm.repository.api.HippoNodeType.HIPPOSYS_MODULE_CONFIG;
+import static org.hippoecm.repository.api.HippoNodeType.HIPPO_MODULECONFIG;
 import static org.hippoecm.repository.api.HippoNodeType.NT_AUTHROLE;
 import static org.hippoecm.repository.api.HippoNodeType.NT_DOMAIN;
 import static org.hippoecm.repository.api.HippoNodeType.NT_DOMAINRULE;
 import static org.hippoecm.repository.api.HippoNodeType.NT_FACETRULE;
+import static org.hippoecm.repository.api.HippoNodeType.NT_MODULE;
 import static org.hippoecm.repository.api.HippoNodeType.NT_ROLE;
 
 class MigrateNodeTypesToV12 {
@@ -81,16 +83,20 @@ class MigrateNodeTypesToV12 {
     void migrateUrlRewriter() throws RepositoryException {
 
         final String sourceNodePath = "/content/urlrewriter";
-        final boolean sourceNodeExists = session.nodeExists(sourceNodePath);
         final String destinationNodePath = 
"/hippo:configuration/hippo:modules/urlrewriter/hippo:moduleconfig";
+
+        final boolean sourceNodeExists = session.nodeExists(sourceNodePath);
         final boolean destinationNodeExists = 
session.nodeExists(destinationNodePath);
 
         boolean saveNeeded = false;
-        if (sourceNodeExists && destinationNodeExists) {
+        if (sourceNodeExists) {
             log.info("Migrating urlrewriter");
             final Node sourceNode = session.getNode(sourceNodePath);
-            final Node destinationNode = session.getNode(destinationNodePath);
+            Node destinationNode = null;
             for(PropertyIterator iterator = sourceNode.getProperties(); 
iterator.hasNext();) {
+                if (destinationNode == null) {
+                    destinationNode = destinationNodeExists ? 
session.getNode(destinationNodePath) : createUrlRewriterDestinationNode();
+                }
                 final Property property = iterator.nextProperty();
                 if (property.getName().startsWith("urlrewriter:")) {
                     log.info("Migrating property '{}'", property.getName());
@@ -99,7 +105,8 @@ class MigrateNodeTypesToV12 {
                 }
             }
         } else {
-            log.info("Source node {} or destination node {} do not exist, 
skipping migrating url rewriter", sourceNodePath, destinationNodePath);
+            log.info("Source node {} or destination node {} do not exist, 
skipping migrating url rewriter",
+                    sourceNodePath, destinationNodePath);
         }
 
         if (saveNeeded) {
@@ -107,6 +114,17 @@ class MigrateNodeTypesToV12 {
         }
     }
 
+    private Node createUrlRewriterDestinationNode() throws RepositoryException 
{
+        final Node modulesNode = 
session.getNode("/hippo:configuration/hippo:modules");
+        String urlrewriter = "urlrewriter";
+        final Node urlrewriterNode = !modulesNode.hasNode(urlrewriter) ?
+                modulesNode.addNode(urlrewriter, NT_MODULE) :
+                modulesNode.getNode(urlrewriter);
+
+        return urlrewriterNode.hasNode(HIPPO_MODULECONFIG) ?
+                modulesNode.getNode(HIPPO_MODULECONFIG) : 
modulesNode.addNode(HIPPO_MODULECONFIG, HIPPOSYS_MODULE_CONFIG);
+    }
+
     private void movePropertyToNode(final Property sourceProperty, final Node 
destinationNode) throws RepositoryException {
 
         final String propertyName = sourceProperty.getName();


=====================================
engine/src/test/java/org/hippoecm/repository/MigrateNodeTypesToV12Test.java
=====================================
--- 
a/engine/src/test/java/org/hippoecm/repository/MigrateNodeTypesToV12Test.java
+++ 
b/engine/src/test/java/org/hippoecm/repository/MigrateNodeTypesToV12Test.java
@@ -48,7 +48,6 @@ public class MigrateNodeTypesToV12Test {
 
     MigrateNodeTypesToV12 testedClass;
 
-
     @Before
     public void setUp() throws Exception {
 
@@ -97,6 +96,7 @@ public class MigrateNodeTypesToV12Test {
 
         Property property = createNiceMock(Property.class);
         expect(propertyIterator.hasNext()).andReturn(true).times(1);
+        expect(propertyIterator.next()).andReturn(property);
         expect(propertyIterator.nextProperty()).andReturn(property);
         replay(propertyIterator);
 



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

---
View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-repository/commit/40d99559654d4787420e5c1defde043227a031d7
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