diff --git a/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/PlantumlGenerator.java b/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/PlantumlGenerator.java index dec4b9cd3..29b765b2c 100644 --- a/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/PlantumlGenerator.java +++ b/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/PlantumlGenerator.java @@ -24,8 +24,10 @@ public interface PlantumlGenerator { static PlantumlGenerator getPlantumlGenerator(Configuration configuration) { -// return new RemotePlantumlGenerator(); - return new BuiltinPlantumlGenerator(); + return configuration.plantumlServerUrl() + .map(RemotePlantumlGenerator::new) + .map(PlantumlGenerator.class::cast) + .orElseGet(BuiltinPlantumlGenerator::new); } void generatePlantumlDiagramFromSource(String plantumlSource, FileFormat format, OutputStream out) throws IOException; diff --git a/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/RemotePlantumlGenerator.java b/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/RemotePlantumlGenerator.java index cde43e23e..1bc1140dd 100644 --- a/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/RemotePlantumlGenerator.java +++ b/src/main/java/nl/talsmasoftware/umldoclet/uml/plantuml/RemotePlantumlGenerator.java @@ -32,10 +32,10 @@ public class RemotePlantumlGenerator implements PlantumlGenerator { private static final String DEFAULT_PLANTUML_BASE_URL = "https://www.plantuml.com/plantuml/"; + private static final Transcoder TRANSCODER = + TranscoderImpl.utf8(new AsciiEncoder(), new ArobaseStringCompressor(), new CompressionZlib()); private final String baseUrl; - private final Transcoder transcoder = - TranscoderImpl.utf8(new AsciiEncoder(), new ArobaseStringCompressor(), new CompressionZlib()); public RemotePlantumlGenerator() { this(null); @@ -64,7 +64,7 @@ public void generatePlantumlDiagramFromSource(String plantumlSource, FileFormat private String encodeDiagram(final String diagramSource) { try { // TODO internalize transcoder to be able to remove PlantUML dependency altogether. - return transcoder.encode(requireNonNull(diagramSource, "UML diagram source was .")); + return TRANSCODER.encode(requireNonNull(diagramSource, "UML diagram source was .")); } catch (IOException ioe) { throw new IllegalStateException("Error encoding diagram: " + ioe.getMessage(), ioe); } diff --git a/src/test/java/nl/talsmasoftware/umldoclet/uml/DependencyDiagramTest.java b/src/test/java/nl/talsmasoftware/umldoclet/uml/DependencyDiagramTest.java index 7673b0879..70a32d599 100644 --- a/src/test/java/nl/talsmasoftware/umldoclet/uml/DependencyDiagramTest.java +++ b/src/test/java/nl/talsmasoftware/umldoclet/uml/DependencyDiagramTest.java @@ -30,8 +30,17 @@ import static java.util.Collections.singleton; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.*; -import static org.mockito.Mockito.*; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.hasToString; +import static org.hamcrest.Matchers.is; +import static org.mockito.Mockito.atLeast; +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; public class DependencyDiagramTest { private ImageConfig mockImages; @@ -54,6 +63,7 @@ public void prepareMocksDiagramAndExclusions() { public void verifyMocks() { verify(mockConfig, atLeastOnce()).images(); verify(mockImages, atLeastOnce()).formats(); + verify(mockConfig, atLeast(0)).plantumlServerUrl(); verify(mockConfig, atLeast(0)).excludedPackageDependencies(); verify(mockConfig, atLeast(0)).indentation(); verifyNoMoreInteractions(mockConfig, mockImages); diff --git a/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java b/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java index 8e11b618f..94643b1b9 100644 --- a/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java +++ b/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java @@ -71,6 +71,7 @@ public void setUp() { @AfterEach public void tearDown() { + verify(config, atLeast(0)).plantumlServerUrl(); verify(config, atLeast(0)).images(); verify(config, atLeast(0)).destinationDirectory(); verify(config, atLeast(0)).logger(); diff --git a/src/test/java/nl/talsmasoftware/umldoclet/uml/NamespaceTest.java b/src/test/java/nl/talsmasoftware/umldoclet/uml/NamespaceTest.java index b00c11e3b..28035d9d5 100644 --- a/src/test/java/nl/talsmasoftware/umldoclet/uml/NamespaceTest.java +++ b/src/test/java/nl/talsmasoftware/umldoclet/uml/NamespaceTest.java @@ -52,10 +52,12 @@ public void verifyMocks() { public void testEquals() { PackageDiagram packageUml = new PackageDiagram(config, "a.b.c", randomString()); Namespace namespace = new Namespace(packageUml, "a.b.c", randomString()); + assertThat(namespace.equals(namespace), is(true)); assertThat(namespace, is(equalTo(new Namespace(null, "a.b.c", randomString())))); assertThat(namespace, is(equalTo(new Namespace(packageUml, "a.b.c", randomString())))); assertThat(namespace, is(not(equalTo(new Namespace(packageUml, "A.B.C", randomString()))))); + verify(config, atLeastOnce()).plantumlServerUrl(); } }