Factor out the stdout.println/flush pattern
When executing the warm-cache for projects, we can factor out
the println and flushing of the result to avoid repetition of the
stdout.println + stdout.flush calls.
Change-Id: I64993e0533ffdd7c9bf6db7ebd7dfb157bf9eb17
diff --git a/admin/warm-cache-1.0.groovy b/admin/warm-cache-1.0.groovy
index e3eb87c..f422a96 100644
--- a/admin/warm-cache-1.0.groovy
+++ b/admin/warm-cache-1.0.groovy
@@ -18,32 +18,39 @@
import com.google.inject.*
import org.kohsuke.args4j.*
+abstract class BaseSshCommand extends SshCommand {
+
+ void println(String msg) {
+ stdout.println msg
+ stdout.flush()
+ }
+}
+
@Export("projects")
-class WarmProjectsCache extends SshCommand {
+class WarmProjectsCache extends BaseSshCommand {
@Inject
ProjectCache cache
public void run() {
- stdout.println "Loading project list ..."
+ println "Loading project list ..."
def start = System.currentTimeMillis()
- stdout.flush()
def allProjects = cache.all()
def totProjects = allProjects.size()
def loaded = 0
for ( project in allProjects ) {
- cache.get(project.get())
+ cache.get(project)
loaded++
if (loaded%1000==0) {
- stdout.println "$loaded of $totProjects projects"
- stdout.flush()
+ println "$loaded of $totProjects projects"
}
}
def elapsed = (System.currentTimeMillis()-start)/1000
-
- stdout.println "$loaded projects loaded in $elapsed secs"
+ println "$loaded projects loaded in $elapsed secs"
}
}
+commands = [ WarmProjectsCache ]
+