From 266488fea5303ddcb571f9f302993d3b3a4ade15 Mon Sep 17 00:00:00 2001 From: Mats Bovin Date: Fri, 13 Sep 2024 16:54:07 +0200 Subject: [PATCH] Fix issues in SitemapService --- .../au/org/ala/collectory/SitemapService.groovy | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/grails-app/services/au/org/ala/collectory/SitemapService.groovy b/grails-app/services/au/org/ala/collectory/SitemapService.groovy index 6ff59561..e7965cca 100644 --- a/grails-app/services/au/org/ala/collectory/SitemapService.groovy +++ b/grails-app/services/au/org/ala/collectory/SitemapService.groovy @@ -14,12 +14,16 @@ */ package au.org.ala.collectory +import grails.gorm.transactions.Transactional +import grails.util.Holders import org.springframework.scheduling.annotation.Scheduled import java.text.SimpleDateFormat class SitemapService { + static lazyInit = !Holders.getConfig().getProperty("sitemap.enabled", Boolean.TYPE, false) + def grailsApplication @@ -40,6 +44,8 @@ class SitemapService { // run daily, initial delay 1hr @Scheduled(fixedDelay = 86400000L, initialDelay = 3600000L) def build() throws Exception { + fileCount = 0; + initWriter() buildSitemap() closeWriter() @@ -63,7 +69,7 @@ class SitemapService { new File(grailsApplication.config.sitemap.dir + "/sitemap" + i + ".xml.tmp").renameTo(newFile) // add an entry for this new file - fw.write("" + grailsApplication.config.grails.serverURL + "/sitemap" + i + ".xml" + "") + fw.write("" + grailsApplication.config.grails.serverURL + "/sitemap" + i + ".xml" + "") fw.write("" + simpleDateFormat.format(new Date()) + "") } @@ -106,22 +112,23 @@ class SitemapService { countUrls++ } + @Transactional def buildSitemap() throws Exception { Collection.findAll().each {Collection it -> - writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/co" + it.id) + writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/" + it.uid) } Institution.findAll().each {Institution it -> - writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/in" + it.id) + writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/" + it.uid) } DataProvider.findAll().each {DataProvider it -> - writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/dp" + it.id) + writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/" + it.uid) } DataResource.findAllByIsPrivate(false).each {DataResource it -> - writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/dr" + it.id) + writeUrl(it.lastUpdated, "weekly", grailsApplication.config.grails.serverURL + "/public/show/" + it.uid) } } }