File Transfer Protocol
FTP
is normally used to transfer files.
However, it is possible to used this protocol to generate UML diagrams.
The way is to launch PlantUML is FTP mode: it runs as a mock FTP server. You can upload text files to this server. Then, diagrams will be automatically generated in this FTP server. You will just have to download the image files from the FTP server.
To start the ftp server, just launch the following command line:
java -jar plantuml.jar -ftp
By default, the server runs on the 4242 port, but you can specify another port:
java -jar plantuml.jar -ftp:12345
You can then connect to 127.0.0.1
on this port with any FTP client, using any user/password.
The FTP server implementation is really simple: you cannot create subdirectory, you cannot rename files… You can only delete files.
Actually, this is not a real FTP server. Nothing is stored on disk, everything runs in memory.
You can check codeuml to have an example of running application.
The advantage of this approach is that you can easily integrate PlantUML with any application, if that application can handle FTP.
This may be simplier than launching a Java process for each diagram transfer.
Example of Transfer
Status:Connecting to 127.0.0.1:24242... Status:Connection established, waiting for welcome message... Response:220 PlantUML Command:USER anonymous Response:331 Password required Command:PASS *** Response:230 Logged in. Command:SYST Response:215 UNIX Type: L8. Command:FEAT Response:502 Command not implemented. Status:Connected Status:Retrieving directory listing... Command:PWD Response:257 "/" is current directory. Command:TYPE I Response:200 Command okay. Command:PASV Response:227 Entering Passive Mode (127,0,0,1,39,59). Command:LIST Response:150 Opening ASCII mode data Response:226 Listing completed. Status:Directory listing successful Status:Connecting to 127.0.0.1:24242... Status:Connection established, waiting for welcome message... Response:220 PlantUML Command:USER anonymous Response:331 Password required Command:PASS *** Response:230 Logged in. Status:Connected Status:Starting upload of data1.txt Command:CWD / Response:250 "/" is new working directory.. Command:PWD Response:257 "/" is current directory. Command:TYPE A Response:200 Command okay. Command:PASV Response:227 Entering Passive Mode (127,0,0,1,39,60). Command:STOR data1.txt Response:150 FILE: data1.txt Response:226 Transfer complete. Status:File transfer successful, transferred 339 bytes in 1 second Status:Retrieving directory listing... Command:TYPE I Response:200 Command okay. Command:PASV Response:227 Entering Passive Mode (127,0,0,1,39,61). Command:LIST Response:150 Opening ASCII mode data Response:226 Listing completed. Status:Directory listing successful Status:Retrieving directory listing... Command:PASV Response:227 Entering Passive Mode (127,0,0,1,39,62). Command:LIST Response:150 Opening ASCII mode data Response:226 Listing completed. Status:Directory listing successful Status:Starting download of /data1.png Command:PASV Response:227 Entering Passive Mode (127,0,0,1,39,63). Command:RETR data1.png Response:150 Opening Response:226 Transfer complete. Status:File transfer successful, transferred 3705 bytes in 1 second