function convertStringPropertyToLong(node, propertyName) { var hasChanged = false; if (node.hasProperty(propertyName)) { var property = node.getProperty(propertyName); if (property.getType() == 1) // 1 is for string { var valueAsString = property.getString(); property.remove(); if (valueAsString) { var value = Number(valueAsString); node['setProperty(java.lang.String, long)'](propertyName, value); hasChanged = true; } } } return hasChanged; } var qm = session.getWorkspace().getQueryManager(); var query = qm.createQuery("//element(*, ametys:zoneItem)[@ametys-internal:type = 'SERVICE' and @ametys-internal:service = 'org.ametys.blog.service.PostsService']", javax.jcr.query.Query.XPATH); var nodes = query.execute().getNodes(); var count = 0; while (nodes.hasNext()) { var node = nodes.nextNode().getNode("ametys:service_parameters"); var hasChanges = false; hasChanges = convertStringPropertyToLong(node, "ametys:year") || hasChanges; hasChanges = convertStringPropertyToLong(node, "ametys:month") || hasChanges; if (hasChanges) { count++; } } session.save(); print(count + " updated posts services.");