diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 92172c514..4b91f1919 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -25,8 +25,6 @@ jobs: env: GPG_SECRET_KEYS: ${{ secrets.GPG_SECRET_KEYS }} GPG_OWNERTRUST: ${{ secrets.GPG_OWNERTRUST }} - - name: Setup Graphviz - run: sudo apt-get install graphviz - name: Set up JDK 17 id: setup-java-17 uses: actions/setup-java@v3 diff --git a/pom.xml b/pom.xml index 419ec925e..fad7a575f 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ nl.talsmasoftware umldoclet - 2.1.3-SNAPSHOT + 2.2.0-SNAPSHOT jar @@ -248,8 +248,9 @@ ${project.version} - -createPumlFiles - -failOnCyclicPackageDependencies true + --create-puml-files + --fail-on-cyclic-package-dependencies true + diff --git a/readme.md b/readme.md index aab7cf5bd..66ca6d78d 100644 --- a/readme.md +++ b/readme.md @@ -43,9 +43,6 @@ To use the UML Doclet, the following is required. For versions of javadoc from earlier JDKs, please use the [latest `1.x` UML Doclet version][v1.x]. If you compile your java 8 or older javadocs with a more recent JDK (Javadoc version 9 or higher), you need to use the 2.x version. -- An installed version of [graphviz](http://plantuml.com/graphviz-dot), - at least until [pure java visualization](https://github.com/talsma-ict/umldoclet/issues/51) works. - Graphviz needs to be compiled with [libexpat][libexpat] support. - The UML Doclet, the [usage page][usage] shows how. An apache-licensed version of [PlantUML][plantuml] is already included in the umldoclet jar. diff --git a/src/main/java/nl/talsmasoftware/umldoclet/configuration/Configuration.java b/src/main/java/nl/talsmasoftware/umldoclet/configuration/Configuration.java index c8e80d3ba..687e25fa8 100644 --- a/src/main/java/nl/talsmasoftware/umldoclet/configuration/Configuration.java +++ b/src/main/java/nl/talsmasoftware/umldoclet/configuration/Configuration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2022 Talsma ICT + * Copyright 2016-2024 Talsma ICT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -154,8 +154,8 @@ public interface Configuration { * Custom directives to include in rendered PlantUML diagram sources. *

* Custom directives are rendered as-is at the top of each PlantUML diagram. - * For example, to use jdot for rendering, - * use the {@code "!pragma graphviz_dot jdot"} custom directive. + * For example, to render handwritten diagrams, + * use the {@code "skinparam handwritten true"} custom directive. * * @return Any custom PlantUML directives. */ diff --git a/src/test/java/nl/talsmasoftware/umldoclet/issues/Issue292CustomDirectiveTest.java b/src/test/java/nl/talsmasoftware/umldoclet/issues/Issue292CustomDirectiveTest.java index 44431ce02..53afee614 100644 --- a/src/test/java/nl/talsmasoftware/umldoclet/issues/Issue292CustomDirectiveTest.java +++ b/src/test/java/nl/talsmasoftware/umldoclet/issues/Issue292CustomDirectiveTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2022 Talsma ICT + * Copyright 2016-2024 Talsma ICT * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,7 +41,7 @@ public static void prepareJavadocWithPumlFiles() { "-d", outputDir.getPath(), "-doclet", UMLDoclet.class.getName(), "-quiet", "--create-puml-files", - "--uml-custom-directive", "!pragma graphviz_dot jdot", + "--uml-custom-directive", "skinparam handwritten true", "src/test/java/" + classAsPath + ".java" ); classUml = TestUtil.read(new File(outputDir, classAsPath + ".puml")); @@ -50,18 +50,18 @@ public static void prepareJavadocWithPumlFiles() { } @Test - public void testPragmaInClassDiagram() { - assertThat(classUml, containsString("!pragma graphviz_dot jdot")); + public void testCustomDirectiveInClassDiagram() { + assertThat(classUml, containsString("skinparam handwritten true")); } @Test - public void testPragmaInPackageDiagram() { - assertThat(packageUml, containsString("!pragma graphviz_dot jdot")); + public void testCustomDirectiveInPackageDiagram() { + assertThat(packageUml, containsString("skinparam handwritten true")); } @Test - public void testPragmaInPackageDependenciesDiagram() { - assertThat(packageDependenciesUml, containsString("!pragma graphviz_dot jdot")); + public void testCustomDirectiveInPackageDependenciesDiagram() { + assertThat(packageDependenciesUml, containsString("skinparam handwritten true")); } } diff --git a/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java b/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java index a57192b73..0f2f46cb7 100644 --- a/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java +++ b/src/test/java/nl/talsmasoftware/umldoclet/uml/DiagramTest.java @@ -37,7 +37,6 @@ import static nl.talsmasoftware.umldoclet.configuration.ImageConfig.Format.PNG; import static nl.talsmasoftware.umldoclet.configuration.ImageConfig.Format.SVG; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasToString; @@ -112,7 +111,7 @@ public void testDiagramToStringMultipleFormats() { @Test public void testCustomDirective() { // prepare - when(config.customPlantumlDirectives()).thenReturn(singletonList("!pragma graphviz_dot jdot")); + when(config.customPlantumlDirectives()).thenReturn(singletonList("skinparam handwritten true")); StringWriter output = new StringWriter(); Diagram testDiagram = new TestDiagram(config, new File("target/test-classes/custom-directive.puml")); IndentingPrintWriter writer = IndentingPrintWriter.wrap(output, Indentation.NONE); @@ -122,7 +121,7 @@ public void testCustomDirective() { testDiagram.writeTo(writer); // verify - assertThat(asList(output.toString().split("\\n")), hasItem("!pragma graphviz_dot jdot")); + assertThat(asList(output.toString().split("\\n")), hasItem("skinparam handwritten true")); verify(config).customPlantumlDirectives(); } diff --git a/usage.md b/usage.md index 9d21c2316..39bdac368 100644 --- a/usage.md +++ b/usage.md @@ -171,10 +171,10 @@ The rest of this section lists various options that are specific to the UML docl #### -plantumlServerUrl <url> Base URL for the PlantUML server. -Bypass the built-in internal PlantUML version that requires graphviz to be installed, -but use a running plantuml-server instead to generate UML diagrams. +Bypass the built-in internal PlantUML version and +use a remote plantuml-server instead to generate UML diagrams. -You can run a plantuml-server using docker: +You can locally run a plantuml-server using docker: ```shell docker run -d -p 8080:8080 plantuml/plantuml-server:latest