diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index b13c8e3a..8bd5c276 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -17,6 +17,7 @@ Improvements:: * Inject Maven properties as attributes in `process-asciidoc` mojo (#459) * Make `auto-refresh` (and `http` by inheritance) only convert modified and created sources (#474) + * Make `auto-refresh` only copy modified and created resources + taking into consideration options (#478) Bug Fixes:: diff --git a/src/main/java/org/asciidoctor/maven/AsciidoctorHttpMojo.java b/src/main/java/org/asciidoctor/maven/AsciidoctorHttpMojo.java index 207cfa2f..ccb9036c 100644 --- a/src/main/java/org/asciidoctor/maven/AsciidoctorHttpMojo.java +++ b/src/main/java/org/asciidoctor/maven/AsciidoctorHttpMojo.java @@ -40,14 +40,13 @@ public class AsciidoctorHttpMojo extends AsciidoctorRefreshMojo { @Parameter(property = PREFIX + "reload-interval", defaultValue = "0") protected int autoReloadInterval; + @Override - protected void doWork() throws MojoFailureException, MojoExecutionException { + public void execute() throws MojoExecutionException, MojoFailureException { final AsciidoctorHttpServer server = new AsciidoctorHttpServer(getLog(), port, outputDirectory, home); server.start(); - - super.doWork(); - super.doWait(); - + doWork(); + doWait(); server.stop(); } diff --git a/src/main/java/org/asciidoctor/maven/AsciidoctorMojo.java b/src/main/java/org/asciidoctor/maven/AsciidoctorMojo.java index 34e7cc06..9255fcc2 100644 --- a/src/main/java/org/asciidoctor/maven/AsciidoctorMojo.java +++ b/src/main/java/org/asciidoctor/maven/AsciidoctorMojo.java @@ -197,7 +197,7 @@ public void processSources(List sourceFiles, ResourcesProcessor resourcesP } if (sourceDirectory == null) { - throw new MojoExecutionException("Required parameter 'asciidoctor.alternateSourceDir' not set."); + throw new MojoExecutionException("Required parameter 'asciidoctor.sourceDirectory' not set."); } Optional sourceDirectoryCandidate = findSourceDirectory(sourceDirectory, project.getBasedir()); diff --git a/src/test/groovy/org/asciidoctor/maven/test/AsciidoctorHttpMojoTest.groovy b/src/test/groovy/org/asciidoctor/maven/test/AsciidoctorHttpMojoTest.groovy index 14350d5e..37352835 100644 --- a/src/test/groovy/org/asciidoctor/maven/test/AsciidoctorHttpMojoTest.groovy +++ b/src/test/groovy/org/asciidoctor/maven/test/AsciidoctorHttpMojoTest.groovy @@ -1,10 +1,10 @@ package org.asciidoctor.maven.test - +import lombok.SneakyThrows import org.asciidoctor.maven.AsciidoctorHttpMojo -import org.asciidoctor.maven.io.TestFilesHelper import org.asciidoctor.maven.io.DoubleOutputStream import org.asciidoctor.maven.io.PrefilledInputStream +import org.asciidoctor.maven.io.TestFilesHelper import org.asciidoctor.maven.test.plexus.MockPlexusContainer import spock.lang.Specification @@ -73,6 +73,7 @@ class AsciidoctorHttpMojoTest extends Specification { System.setOut(originalOut) inputLatch.countDown() System.setIn(originalIn) + awaitTermination(mojoThread) } def "default page"() { @@ -88,7 +89,7 @@ class AsciidoctorHttpMojoTest extends Specification { def originalIn = System.in def newOut = new DoubleOutputStream(originalOut) - def newIn = new PrefilledInputStream('exit\r\n'.bytes, inputLatch) + def newIn = new PrefilledInputStream('exit\r\nexit\r\nexit\r\n'.bytes, inputLatch) def httpPort = availablePort @@ -131,6 +132,7 @@ class AsciidoctorHttpMojoTest extends Specification { System.setOut(originalOut) inputLatch.countDown() System.setIn(originalIn) + awaitTermination(mojoThread) } private int getAvailablePort() { @@ -139,4 +141,17 @@ class AsciidoctorHttpMojoTest extends Specification { socket.close() return port } + + @SneakyThrows + private void awaitTermination(Thread thread) { + int pollTime = 250; + int ticks = (10 * 1000 / pollTime); + while (thread.isAlive()) { + ticks--; + if (ticks == 0) + throw new InterruptedException("Max wait time reached"); + else + Thread.sleep(pollTime); + } + } }