- add `testGraphviz`: request `version` as AsciiArt and search for
"Installation seems OK. File generation OK"
- irgnore `testGraphviz` inside github workflow tests except for the
docker container tests, since only in the docker container case
graphviz is available
- add `testMonacoEditorWebJar`: request `loader.js` and check if the
server answers with status code 200
- add a note inside the pom where the webjar versions are hard coded
inside the project
- add new servlet to get meta data from PlantUML diagram
- meta data get not only be requested as text but also as json if you set the `Accept`-header to json
- add `metadata` servlet tests
- GET: like the Proxy where you can pass a URL which the servlet will use to fetch the diagram image
- POST: file upload
Since the update of `bastik` the PDF servlet didn't work anymore.
Problems:
- No PDF UnitTest existed
- Pom dependency `org.apache.xmlgraphics.batik-all` change nearly every dependency to `optional` starting with version `1.15`, hence some important dependencies like the SVG converter were missing
- `DiagramResponse.CONTENT_TYPE` had no mime type value for PDF
Changes:
- add PDF UnitTest
- remove `batik-all` dependency and only include the dependencies PlantUML requires for the PDF generation:
* batik-dom
* batik-svgrasterizer (includes batik-dom)
* batik-svggen
* fop
- remove own `DiagramResponse.CONTENT_TYPE` mapping and use `FileFormat.getMimeType()`
- PDF dependency was missing in the pom file the JDK8
* We should think about creating a parent pom - in that case all plantuml dependencies could be in the parent pom and we would only the mantain one pom file.
(It is also possible to drop the Java 8 support.)
* Why do we not have any PDF tests?
- add rule to ignore version update hint with `-dev` followed by a dot and date (e.g. `0.37.0-dev.20230308`)
- migration from JUnit4 to JUnit5
- revert the 4 missing tests, e.g. proxy test from commit 20468f5
- add virtual host name `test.localhost` to embedded jetty server
(JUnit Tests) since localhost and IP-Addresses are no longer
supported by the proxy and use this address inside proxy `src`
- add `test-localhost` support for the docker tests. To support
this the docker hostname need to be set to test.localhost by:
`--hostname=test.localhost` (only for the docker tests)
- proxy: add file format support for PDF
- proxy: add error messages on "bad request" response
- proxy: remove dead code
- old proxy: add error messages on "bad request" response
- fix incorrect README link to docs
- add `HTTP_PROXY_READ_TIMEOUT` option -- close#240
- auto refresh function
- light and dark theme
- monaco editor (vscode) with "apex" as syntax highlighting language
* apex seems to work quite fine (better than no highlighting)
* future possibility: own plantuml language syntax support
* future possibility: autocomplete (to much work but maybe partial)
- implemented example for `!theme ...`
- implemented example for `<&icon>`
* future possibility: code validation
- implemented example for `@start...` and `@end...`:
* should be the first or last command
* should be of the some type (e.g. `@startyaml` and @endyaml)
* should be used exactly once per document/diagram
- editor and preview is splitable into two windows like the
"Extract window" functionality on
(plantuml.com)[https://www.plantuml.com/plantuml]
- multi index / multi paging diagram support
- diagram can be displayed/rended as PNG, SVG, ASCII Art or PDF
- Ctrl+s download the PlantUML Code as code file (diagram.puml)
- Ctrl+, opens the settings and Esc closes the settings
Same as `java -jar plantum.jar -language`, a new servlet is added to
expose the tokens supported by the current version of the PlantUML engine.
Useful to support tools relying on a running PlantUML server to support
syntax highlight.
New syntax is : plantuml/proxy/[id/][format/]remoteURL
where id is a number identifying the diagram definition
when the remote URL contains more than one diagram,
and format specify the output : img, txt or svg.
Improved unit tests to be independent of externally running servlet container, now every test runs its own embedded jetty server (and stops it afterward).
Removed all eclipse artifacts (.project, .classpath, .settings, etc.) and added to .gitignore to be independent of development environment (can be autogenerated by maven, or better yet use m2eclipse).
Removed embedded dependency jars since they are handled automatically by maven.