mirror of https://github.com/octoleo/plantuml.git
Compare commits
735 Commits
Author | SHA1 | Date |
---|---|---|
PlantUML | c2416b58fd | |
The-Lum | 2c666eb968 | |
PlantUML | 09331c5577 | |
The-Lum | 3dba008497 | |
PlantUML | ec2f906704 | |
The-Lum | dcfe17b73c | |
PlantUML | 34e3cfc9f4 | |
The-Lum | 6c4eaebd8f | |
PlantUML | 81e7e76c50 | |
PlantUML | c7d43f3d39 | |
The-Lum | 24239ff0bd | |
Benjamin Davies | 494c0c981e | |
Arnaud Roques | 91e87b9691 | |
Arnaud Roques | 171a35971b | |
PlantUML | 3adf9c93c7 | |
Dietrich Travkin | 46ac4a391f | |
PlantUML | 9f53546ff6 | |
The-Lum | 6802c2b578 | |
The-Lum | 52fdd3bbe4 | |
PlantUML | f862254e22 | |
PlantUML | 64f3a8fc0e | |
The-Lum | f3ee15f97b | |
PlantUML | e982bb326d | |
rubikscuber | 7c9866ac69 | |
Artem V. Ageev | d50aa2e289 | |
Arnaud Roques | 9432e0b1e5 | |
Arnaud Roques | 460d53f12b | |
PlantUML | 06d06e729b | |
PlantUML | 8bc1c27c23 | |
Arnaud Roques | 04eada12ab | |
Dietrich Travkin | 33e5903e80 | |
PlantUML | 7755ae5be4 | |
diguage | 3cc580ebd1 | |
PlantUML | 4afe3ef7fe | |
Benjamin Davies | 4b5bcd3bca | |
Benjamin Davies | e14c8ef0a5 | |
Benjamin Davies | 234cb3adea | |
Benjamin Davies | d39bfbc3b5 | |
Benjamin Davies | cbe84c240a | |
Benjamin Davies | 83255431f7 | |
Benjamin Davies | 90a88ce4ee | |
Benjamin Davies | 8312e8c22f | |
Benjamin Davies | 60de4baff9 | |
PlantUML | 3499373851 | |
The-Lum | f82f1a9a76 | |
PlantUML | 1188a05a60 | |
BOUDJENIBA Oussama | d85f96256e | |
Daum Alexander (DCL ATV SC D RAD CSFW FW) | 3216eea2d9 | |
Daum Alexander (DCL ATV SC D RAD CSFW FW) | 124aa0384c | |
Arnaud Roques | a0be1ed677 | |
Arnaud Roques | 2a49ef06da | |
Arnaud Roques | 6c945e2508 | |
Arnaud Roques | f385bc0dba | |
Arnaud Roques | 3cc68235dd | |
Arnaud Roques | a48dd52d9f | |
Arnaud Roques | 6329d9a8d5 | |
Arnaud Roques | 436fb37f1a | |
PlantUML | 35909a50c7 | |
The-Lum | fea505ab77 | |
Arnaud Roques | be69889e7f | |
PlantUML | c6f9684026 | |
Arnaud Roques | 2a961129f2 | |
PlantUML | 5fe5cafe70 | |
The-Lum | 415886e5d0 | |
The-Lum | 8fe9faec1b | |
Arnaud Roques | ee43dd0b99 | |
Arnaud Roques | 04f718781f | |
PlantUML | 99698d97bb | |
The-Lum | 4ce77d3fa8 | |
Arnaud Roques | c6f150fd4e | |
Arnaud Roques | ad4a1bde57 | |
Arnaud Roques | cfa16d0f60 | |
PlantUML | ac8e785372 | |
The-Lum | 53bcc028cf | |
The-Lum | ab09e2ef1f | |
PlantUML | ab60639f5e | |
dependabot[bot] | ababa00835 | |
PlantUML | 76d1daf5ae | |
PlantUML | 17d317e53a | |
PlantUML | 4e5bf030b6 | |
PlantUML | cfd3ad2e4d | |
The-Lum | af3c49c2aa | |
The-Lum | 7be48049ff | |
PlantUML | 956e23c33c | |
The-Lum | e70f23b8fe | |
PlantUML | 75b00f08d1 | |
PlantUML | 29f90e50a9 | |
The-Lum | e11d974ce5 | |
PlantUML | 36b1fe5e3b | |
PlantUML | a65935cb09 | |
Rui Chen | 097550284e | |
Arnaud Roques | d65951f520 | |
Artem V. Ageev | d443d23232 | |
Artem V. Ageev | 0ba45e0796 | |
Arnaud Roques | 68fdb662fe | |
PlantUML | 6d035c34a1 | |
Artem V. Ageev | 1c0c7d828c | |
Arnaud Roques | 306f8b292e | |
Arnaud Roques | 81e1c967c3 | |
dependabot[bot] | 1690ca3cc3 | |
PlantUML | c447e4489b | |
The-Lum | 3bd3edb740 | |
PlantUML | ad383d2dc8 | |
PlantUML | 80acb87fbb | |
The-Lum | 23c86ba5b9 | |
The-Lum | c10ac1769d | |
The-Lum | 376ee9d8c2 | |
The-Lum | 9e18d34936 | |
Arnaud Roques | dbaf8ac2cd | |
Arnaud Roques | dbbdf1277b | |
Arnaud Roques | 7a200019e6 | |
Arnaud Roques | 5fae97f44e | |
PlantUML | de6316ccac | |
The-Lum | e9139c8a38 | |
Arnaud Roques | dbb535473c | |
The-Lum | 6d158d1196 | |
The-Lum | f805d983fd | |
Arnaud Roques | 4026878300 | |
dependabot[bot] | 4217882d8a | |
Arnaud Roques | bf2312a252 | |
PlantUML | 24d7e948af | |
The-Lum | 9502ed812b | |
Arnaud Roques | 48dc07da95 | |
Arnaud Roques | 6c73caa943 | |
Arnaud Roques | d07cda5f5f | |
Arnaud Roques | 533c27cba5 | |
Arnaud Roques | 26189b1e64 | |
Arnaud Roques | b65aaff80b | |
dependabot[bot] | 371bafaade | |
Arnaud Roques | cc80d86bc3 | |
Arnaud Roques | 5128891a0f | |
Arnaud Roques | a87f844064 | |
Arnaud Roques | a061b11305 | |
Arnaud Roques | 428381ca44 | |
Arnaud Roques | c20b3d9642 | |
PlantUML | c20153a841 | |
The-Lum | 5c7245623a | |
The-Lum | 3f836a44cc | |
The-Lum | 1cb61d5609 | |
dependabot[bot] | cb5b881e46 | |
PlantUML | 3a4c614fc1 | |
PlantUML | db6567c183 | |
PlantUML | 6c593c49d2 | |
The-Lum | de5d791eb4 | |
Daum Alexander (DCL ATV SC D RAD CSFW FW) | 7b1f67a57e | |
The-Lum | 1899280e21 | |
dependabot[bot] | 35505fd24c | |
PlantUML | d2dd274881 | |
jef.overweg | b29df7758a | |
PlantUML | d7727c5c87 | |
The-Lum | a7d434cff1 | |
The-Lum | a570cea56f | |
Arnaud Roques | ee7022f19e | |
Arnaud Roques | e991c4699b | |
Arnaud Roques | f0b3e6900c | |
Arnaud Roques | bcb3b92dbc | |
Arnaud Roques | a98d8ccdd5 | |
Arnaud Roques | b48ea95112 | |
Arnaud Roques | 422c74eba4 | |
Arnaud Roques | 8b5a1521e7 | |
PlantUML | e4c246750e | |
PlantUML | cc1d0099e4 | |
The-Lum | 37714ac1e2 | |
The-Lum | 54117a5e8b | |
The-Lum | d5e42c9d7e | |
The-Lum | bb56bf2973 | |
Arnaud Roques | aea7e540ac | |
Arnaud Roques | b74f9634fb | |
Arnaud Roques | d61ebc40a0 | |
Arnaud Roques | f35856e6b9 | |
The-Lum | 78a32d2743 | |
Arnaud Roques | 546174d17f | |
Arnaud Roques | f91a19413b | |
PlantUML | db9c59c1bb | |
The-Lum | 6e85bcaac9 | |
Benjamin Davies | 273f8b4bf1 | |
Benjamin Davies | 9ad84822fa | |
Benjamin Davies | 96785da1c7 | |
Benjamin Davies | 9e8a313681 | |
Benjamin Davies | 3734465441 | |
Benjamin Davies | de74e7fae9 | |
Benjamin Davies | c6bd537509 | |
Benjamin Davies | 6361f826be | |
Benjamin Davies | fb9fd7e13e | |
Benjamin Davies | 153b96af3e | |
PlantUML | e17b2a4e22 | |
Benjamin Davies | 4d01e6fd6c | |
Benjamin Davies | e26ccf756a | |
The-Lum | 8a1a9dfc8b | |
The-Lum | b92731aecd | |
The-Lum | 2f4a56f692 | |
PlantUML | 1c4162c2ff | |
Arnaud Roques | 162c3f9238 | |
Arnaud Roques | 333d0b1a1f | |
PlantUML | 1cfab8ba80 | |
PlantUML | cebe19f466 | |
Arnaud Roques | 135604e727 | |
Arnaud Roques | b63f2ab4cd | |
The-Lum | acb95b44ce | |
The-Lum | 91ead31632 | |
Arnaud Roques | 3a10503cc8 | |
Arnaud Roques | 4f0f8d7821 | |
Arnaud Roques | 61b1e4f0f0 | |
The-Lum | e0b299d2ef | |
The-Lum | 91d46a866e | |
dependabot[bot] | 486b020a84 | |
Arnaud Roques | 4f46b6726e | |
Arnaud Roques | 137d84101f | |
PlantUML | 2d47edd326 | |
PlantUML | 76a27d5d9d | |
The-Lum | c885afd3d2 | |
dependabot[bot] | cb35beca6c | |
The-Lum | 7666511512 | |
The-Lum | 3a095fd7cb | |
PlantUML | b8b98d0c18 | |
Dietrich Travkin | 0a795acbb3 | |
Dietrich Travkin | 7a7f59f00b | |
Dietrich Travkin | 263662d6d3 | |
Dietrich Travkin | 8b87aa0c1c | |
PlantUML | 89406657e7 | |
Dietrich Travkin | 570d056f3d | |
Dietrich Travkin | f47ca8c339 | |
Arnaud Roques | f8d87217a7 | |
Arnaud Roques | e92dcd400b | |
Arnaud Roques | 8f5c3379ed | |
Arnaud Roques | 9a75a9c577 | |
Arnaud Roques | 38ea5ae823 | |
PlantUML | 920bb2b33c | |
Arnaud Roques | 2b2f291911 | |
Arnaud Roques | 8b092894ed | |
Arnaud Roques | 1e6ffb0bec | |
Arnaud Roques | 4adacbabe5 | |
The-Lum | 28cc4638d6 | |
PlantUML | 2bb375b7ba | |
dependabot[bot] | f7c578e3ad | |
The-Lum | 172ac26e03 | |
Arnaud Roques | 92e8838b6e | |
Arnaud Roques | a63177052e | |
PlantUML | 4b1f3eda8b | |
Arnaud Roques | cb395b103a | |
PlantUML | 50d1a1caa8 | |
PlantUML | 368a7827b8 | |
PlantUML | 44cda2ce59 | |
dependabot[bot] | 7bba098125 | |
PlantUML | 6f2dfca7c8 | |
dependabot[bot] | 3a302fba74 | |
PlantUML | 637b408532 | |
PlantUML | e6eb7b960d | |
PlantUML | ee4c62d904 | |
PlantUML | cbcda3c2ed | |
PlantUML | f2aa804ec1 | |
PlantUML | 2623cc94dd | |
dependabot[bot] | 86d0e3bb3f | |
PlantUML | 73940b84cb | |
dependabot[bot] | fc61a6929f | |
PlantUML | a126763265 | |
PlantUML | 76ca2de8e9 | |
dependabot[bot] | 131d3d38d8 | |
dependabot[bot] | fd7cd4a2bf | |
PlantUML | 9a05b92b26 | |
PlantUML | 31f6639db0 | |
PlantUML | 2813d11b4f | |
dependabot[bot] | 3f04d32add | |
dependabot[bot] | 279d1d2f51 | |
dependabot[bot] | 9ca7125385 | |
dependabot[bot] | 0507c7b505 | |
dependabot[bot] | 0366571f50 | |
dependabot[bot] | 2f2d3a8773 | |
dependabot[bot] | 16c76fdd5d | |
Arnaud Roques | 136e2198f3 | |
Arnaud Roques | 2daf715f00 | |
Arnaud Roques | 8adfb59f5b | |
Arnaud Roques | 5d38bb6ef4 | |
PlantUML | c72487595b | |
The-Lum | 649bbb17b2 | |
The-Lum | 5fd1fb06de | |
PlantUML | 21b9b0bd6e | |
The-Lum | 7cc329bd83 | |
The-Lum | 6d5213d407 | |
The-Lum | a34f13873c | |
Arnaud Roques | 1deedf8a65 | |
Arnaud Roques | 870d09d272 | |
The-Lum | 55598085f5 | |
The-Lum | 18a838fa7d | |
The-Lum | 78ce8b8c37 | |
The-Lum | a40c98b373 | |
The-Lum | b19770e228 | |
The-Lum | 7387b14081 | |
PlantUML | 8bdbbd2635 | |
PlantUML | 58098ce990 | |
The-Lum | c08e495e3b | |
PlantUML | 82e43aaa7e | |
PlantUML | 27486a4161 | |
PlantUML | c23f8d477f | |
Arnaud Roques | 233565b206 | |
The-Lum | 0ca72f0288 | |
PlantUML | 7fb89f2762 | |
PlantUML | 8b6abb2b8a | |
PlantUML | 3dcd95d0b6 | |
The-Lum | 30c95d3e35 | |
PlantUML | b63dd91f00 | |
The-Lum | f91e0db9eb | |
The-Lum | 957726fda0 | |
The-Lum | ec260ff0c9 | |
The-Lum | 3090643256 | |
Arnaud Roques | 6781e85680 | |
Arnaud Roques | 057a076817 | |
Arnaud Roques | 41ba2020b6 | |
Arnaud Roques | 04a071c4a4 | |
PlantUML | e43c6b9ba5 | |
The-Lum | ecc0ad9020 | |
PlantUML | b9cb85cf99 | |
Christian | 8b9f40d63b | |
The-Lum | 2e2453049e | |
Arnaud Roques | 4b58055b9f | |
PlantUML | 9b761b7f92 | |
The-Lum | 5149c49858 | |
The-Lum | 90198c40d8 | |
The-Lum | 0c7f026f6c | |
Arnaud Roques | 39fd1138cb | |
Benjamin Davies | c91b5e2015 | |
Benjamin Davies | d4110d5ceb | |
Benjamin Davies | 07b25de38a | |
Arnaud Roques | 8172f9492a | |
Arnaud Roques | ee3eef8652 | |
PlantUML | 33f0d5b204 | |
Arnaud Roques | ecb22dfd46 | |
Arnaud Roques | 86513bfbc8 | |
Benjamin Davies | 4e3d8c94f6 | |
Benjamin Davies | cf0e1c7ddc | |
Benjamin Davies | a879026e8c | |
Benjamin Davies | fb1ac6d1d2 | |
Benjamin Davies | 1a3f5dfd60 | |
Benjamin Davies | 5386b9e7e2 | |
Benjamin Davies | ef8879f3b3 | |
Benjamin Davies | cbab1c333f | |
Benjamin Davies | 1d1daf492b | |
Benjamin Davies | 8f295eb313 | |
PlantUML | 51e8676c17 | |
The-Lum | adf71509c7 | |
The-Lum | f3ebbb69fd | |
The-Lum | 6de021381f | |
Arnaud Roques | 38c5765a99 | |
PlantUML | a27ff9b7f2 | |
Kálmán Vince | 5096c1b9a4 | |
Kálmán Vince | 719927895b | |
PlantUML | a9f4ea985d | |
alfonsodelavega | 20b62c6491 | |
PlantUML | e04d49a6c0 | |
HeinrichAD | 9fe1686e40 | |
PlantUML | 49115dfc7d | |
The-Lum | 63da3270a6 | |
The-Lum | c6cfd3cec6 | |
Arnaud Roques | 74bcd0f668 | |
PlantUML | 44ba32d053 | |
The-Lum | 8742e77f3c | |
Arnaud Roques | a327d636a7 | |
Arnaud Roques | 1b58f96369 | |
PlantUML | f28738eb9b | |
Dietrich Travkin | 4765c77d92 | |
Dietrich Travkin | 659b723dd3 | |
Dietrich Travkin | 151fa30a5d | |
PlantUML | 49ab6c9c6e | |
The-Lum | 823d27afa9 | |
PlantUML | afada208c3 | |
Dietrich Travkin | 38cb4811f7 | |
Dietrich Travkin | d7efa7e9a2 | |
Dietrich Travkin | bac7a4d751 | |
Arnaud Roques | 85a6b1dada | |
The-Lum | 6e7254377c | |
Arnaud Roques | ef07e2cd1b | |
Arnaud Roques | 29bcbfee89 | |
Arnaud Roques | 835f82a8d6 | |
PlantUML | 11b70de43f | |
soloturn | 75443a5d28 | |
soloturn | 32c856503f | |
soloturn | 5d445ae801 | |
soloturn | f530bf4d30 | |
PlantUML | ebeea26ecb | |
Dietrich Travkin | 0972786515 | |
PlantUML | b45451312a | |
Dietrich Travkin | a217809de6 | |
Dietrich Travkin | d92242ec35 | |
PlantUML | 85671b866c | |
Dietrich Travkin | d662206000 | |
Arnaud Roques | 1ef8dd39f9 | |
Arnaud Roques | 968a958b9d | |
PlantUML | 21461b83fc | |
The-Lum | c006e3dfad | |
The-Lum | 3574987267 | |
Arnaud Roques | 74574c4f57 | |
Arnaud Roques | 6475c392fc | |
Arnaud Roques | ff6e71e626 | |
Arnaud Roques | fbe7fa3b25 | |
Arnaud Roques | b32500bb61 | |
Arnaud Roques | 793b78abc5 | |
Arnaud Roques | 4a246c7cb9 | |
Arnaud Roques | c95bbfe585 | |
Arnaud Roques | aedaeec598 | |
Arnaud Roques | 892dd6c8e9 | |
Arnaud Roques | 92c5183386 | |
Arnaud Roques | 63a09e24c5 | |
Arnaud Roques | 18a7f99b55 | |
Arnaud Roques | 95026709a6 | |
Arnaud Roques | f72fec23c3 | |
Arnaud Roques | 35ec8a700c | |
Arnaud Roques | eb85d9c9c5 | |
Arnaud Roques | 2a358adf3c | |
Arnaud Roques | 2adee2f574 | |
Arnaud Roques | 2803fa7e7b | |
Arnaud Roques | 5ec920045b | |
Arnaud Roques | 782087680d | |
Arnaud Roques | 9c52adf7ec | |
Arnaud Roques | e313ffc635 | |
Arnaud Roques | 37f8e4fd2e | |
Arnaud Roques | 11b9baa3ff | |
Arnaud Roques | 871c298203 | |
Arnaud Roques | b4bdcb3428 | |
Arnaud Roques | c60d959c95 | |
Arnaud Roques | a66215a373 | |
Arnaud Roques | 962f6df46b | |
Arnaud Roques | d9eecbdeeb | |
Arnaud Roques | 66f426fe6d | |
Arnaud Roques | 60aa5edca0 | |
Arnaud Roques | 2fa62e9173 | |
Arnaud Roques | 72f2d856f3 | |
Arnaud Roques | b3a0c52d40 | |
Arnaud Roques | c57f5b4691 | |
Arnaud Roques | f43aa3b928 | |
Arnaud Roques | bb33824e87 | |
Arnaud Roques | 488029b9b0 | |
PlantUML | 3b3ab396b9 | |
bondden | 0c873713e0 | |
Arnaud Roques | 475f814b65 | |
Arnaud Roques | 26874fe610 | |
Arnaud Roques | c158ce4383 | |
Arnaud Roques | 82d660de00 | |
Arnaud Roques | d2a5e0cd2e | |
Arnaud Roques | b7da8b6898 | |
Arnaud Roques | 2751c47ebc | |
Arnaud Roques | e1d1d5aa93 | |
Arnaud Roques | beb3cb25e2 | |
Arnaud Roques | e23d7e56fc | |
PlantUML | 6a2ef30d73 | |
PlantUML | 44f6e295d2 | |
Eric Vantillard | 7631517673 | |
Eric Vantillard | 8f4ef6f8f3 | |
Arnaud Roques | 87caaebdb9 | |
The-Lum | 19d7fba544 | |
Eric Vantillard | b308944fd0 | |
Eric Vantillard | ac83a5d64e | |
Arnaud Roques | 905510cd8b | |
Eric Vantillard | b9a27f0440 | |
Eric Vantillard | f3a27b00ab | |
Arnaud Roques | 5600f0999e | |
Arnaud Roques | 7062ec070b | |
PlantUML | b16150e9cf | |
Eric Vantillard | f312b3fbb6 | |
Eric Vantillard | 6837e3de05 | |
Eric Vantillard | b2d90ef23a | |
Eric Vantillard | 51e80997ef | |
Eric Vantillard | a66258f1de | |
Eric Vantillard | cd8b1a2012 | |
PlantUML | aad2a9e19f | |
Eric Vantillard | a299d6b4c5 | |
Eric Vantillard | 6fec6ea27e | |
Arnaud Roques | 06978b87d0 | |
Arnaud Roques | 949df26035 | |
Arnaud Roques | 72599ce706 | |
Arnaud Roques | 81bd00e252 | |
PlantUML | 32429afbb0 | |
Florian Greinacher | 4e879c3cfd | |
PlantUML | 524fff45b8 | |
Guillaume Grossetie | 8400e40bf9 | |
PlantUML | fd587ce66f | |
Guillaume Grossetie | 124945d408 | |
PlantUML | 108d07971c | |
Guillaume Grossetie | d0d555c439 | |
Guillaume Grossetie | 79f773c033 | |
Arnaud Roques | 47f2995aa3 | |
Arnaud Roques | 003222a00f | |
Arnaud Roques | cdec3380ec | |
Arnaud Roques | 897a4736bc | |
PlantUML | 05fbba535e | |
PlantUML | 27b82b76d9 | |
PlantUML | 97f3172020 | |
Guillaume Grossetie | a889148768 | |
Arnaud Roques | e739cd8f5d | |
Arnaud Roques | e16b1d0b75 | |
Arnaud Roques | e53a679331 | |
Arnaud Roques | 7447766553 | |
Arnaud Roques | 89ff4699a0 | |
Arnaud Roques | 68c35a5ac3 | |
Arnaud Roques | 707d612229 | |
Arnaud Roques | a202116a0c | |
Arnaud Roques | 0f9f96dade | |
Arnaud Roques | 9a3c27eebf | |
Arnaud Roques | d98c743b9f | |
Arnaud Roques | ac851b0e44 | |
Arnaud Roques | dc0a105ced | |
Arnaud Roques | 62d43e22a8 | |
Eric Vantillard | 606c7d7af1 | |
Arnaud Roques | ba0fd1efb4 | |
Arnaud Roques | 9adc8dd067 | |
Arnaud Roques | 8f074cfbdf | |
Arnaud Roques | 4e0af3328c | |
Arnaud Roques | 534fc27942 | |
PlantUML | 44b4051016 | |
Eric Vantillard | f69b4f207e | |
Arnaud Roques | da21293630 | |
Arnaud Roques | 66918ad185 | |
PlantUML | ba6dd38c17 | |
Eric Vantillard | 0ac3e13bf6 | |
Arnaud Roques | 9c62daa35d | |
Arnaud Roques | 5febaa9aeb | |
Arnaud Roques | 957dfea0b5 | |
Arnaud Roques | be8454cb59 | |
PlantUML | c50b364a56 | |
Eric Vantillard | 3c53361064 | |
Arnaud Roques | aa033bc2c1 | |
PlantUML | a171a90403 | |
rohitsud | 02ce388a5a | |
Arnaud Roques | 5cdd5c76e5 | |
Arnaud Roques | 690fa349ba | |
Arnaud Roques | f4221e340a | |
PlantUML | eddf1c5470 | |
rohitsud | ece128c3f1 | |
Arnaud Roques | 52664342f6 | |
Arnaud Roques | d55ae31b68 | |
Arnaud Roques | 07f828770f | |
Arnaud Roques | c54983bb5e | |
Arnaud Roques | 9660d3ced9 | |
Arnaud Roques | 934a1c357b | |
Arnaud Roques | d551aa488a | |
Arnaud Roques | 75835ce2a0 | |
PlantUML | 9beb3a1ccc | |
soloturn | 4b5d5d703b | |
soloturn | 9ec15a7a2e | |
Arnaud Roques | 58cc4e096b | |
Arnaud Roques | 62d819dae4 | |
Arnaud Roques | 678949b44c | |
Arnaud Roques | 1c650bb2f9 | |
Arnaud Roques | 4888ac976d | |
Arnaud Roques | aa53729752 | |
Arnaud Roques | 6979fb6d55 | |
Arnaud Roques | e1b9c0a0f0 | |
PlantUML | 4038b9db37 | |
The-Lum | 1c6cd1cf7f | |
Arnaud Roques | 74bcf039a2 | |
Arnaud Roques | c1bbdd6ade | |
Arnaud Roques | c2bb4f8a37 | |
Arnaud Roques | db9080e28f | |
PlantUML | 1fe09aea4f | |
Arnaud Roques | 54afac2f27 | |
Arnaud Roques | eac7a29c67 | |
Denis N. Antonioli | f067d71b28 | |
Denis N. Antonioli | 5624575b08 | |
Arnaud Roques | 97c7f1ed34 | |
Arnaud Roques | cc840383e3 | |
Arnaud Roques | a5d39f6dda | |
PlantUML | 0ed5f14c32 | |
PlantUML | c11a045670 | |
The-Lum | ec8af62c97 | |
Orangerot | 74bd6652ce | |
PlantUML | 040bf1f134 | |
The-Lum | ef438a1672 | |
Arnaud Roques | 58469686e6 | |
Arnaud Roques | ec12ff5f1e | |
Arnaud Roques | 4044c73d06 | |
Arnaud Roques | 5deec17711 | |
Arnaud Roques | 8ff88645d4 | |
PlantUML | 800ead7a8f | |
Ole Martin Ruud | 19b12df687 | |
Arnaud Roques | 80217d8c90 | |
Arnaud Roques | 117102bb65 | |
Arnaud Roques | 3cf5e15bb4 | |
Arnaud Roques | 0d7f2eea2c | |
Arnaud Roques | 4ea37512c7 | |
Arnaud Roques | 8a5e7a48ca | |
Arnaud Roques | fae0dfdf02 | |
Arnaud Roques | 8b03ff71b9 | |
Arnaud Roques | 03dbd4a848 | |
Arnaud Roques | 5fce218b08 | |
Arnaud Roques | 8cc6471ad3 | |
Arnaud Roques | 6e25b30d60 | |
Arnaud Roques | 665cae15ba | |
Arnaud Roques | 97d3281ec3 | |
PlantUML | db09c72834 | |
YassinHajaj | 8b5ee45cd7 | |
PlantUML | a3f1128172 | |
Brett Schwarz | a6a15a3e06 | |
Brett Schwarz | 6305887e97 | |
Brett Schwarz | 2d290790ab | |
Arnaud Roques | ac0ccd1af2 | |
Arnaud Roques | fce894d4e1 | |
Arnaud Roques | 48ae51e8c3 | |
PlantUML | 7a6261f00a | |
Tagir Valeev | 35f94e2b6d | |
Arnaud Roques | ab8d4f4118 | |
Arnaud Roques | 718266f443 | |
PlantUML | b28f8d857f | |
Gábor Lipták | be8c618134 | |
Arnaud Roques | 62c8b26e25 | |
PlantUML | bb6a08f55c | |
Rui Chen | 3662ba3464 | |
Arnaud Roques | b6a3efd259 | |
Arnaud Roques | 780e31ed77 | |
PlantUML | 5c4b6b7fef | |
Arnaud Roques | 1928fb31ca | |
The-Lum | b2e2a2bbcd | |
Arnaud Roques | f0048de5b7 | |
PlantUML | 70ad50746a | |
PlantUML | 81008c49ca | |
Gábor Lipták | 29dc03bde5 | |
Gábor Lipták | 9fa39de8b2 | |
Arnaud Roques | cfe2b60db9 | |
PlantUML | b8913c81c4 | |
Gábor Lipták | d0a50693a9 | |
Arnaud Roques | ecf66ff391 | |
PlantUML | ee3037db80 | |
Gábor Lipták | 38e01ca98c | |
PlantUML | 005199bb66 | |
Gábor Lipták | d799be7fc8 | |
PlantUML | ea0c9f98a2 | |
Arnaud Roques | 5e30d89eb4 | |
PlantUML | 368da723f1 | |
PlantUML | 83c31b3046 | |
Gábor Lipták | 45a1c2b319 | |
MOZGIII | 90b3149b64 | |
MOZGIII | 1b6504d932 | |
MOZGIII | 250af80717 | |
MOZGIII | 1398d85806 | |
MOZGIII | d3bcb10ff9 | |
PlantUML | 0f6d5de35a | |
Gábor Lipták | 31999b4cf4 | |
soloturn | 64fe77dc58 | |
soloturn | c124a9d550 | |
soloturn | 763e60b2d1 | |
Arnaud Roques | f846634ce2 | |
Arnaud Roques | 9bdc69ecee | |
PlantUML | 06afc26207 | |
PlantUML | 7e1a26051e | |
Arnaud Roques | 648b02f8c8 | |
soloturn | e8d057127a | |
soloturn | e87413acda | |
PlantUML | 74ce471d71 | |
The-Lum | bf33696c79 | |
Arnaud Roques | 2d07f5ae2c | |
Arnaud Roques | 206f807952 | |
Arnaud Roques | b2afe9c916 | |
Arnaud Roques | 9ab898fe1b | |
Arnaud Roques | b0dbb29e2a | |
Arnaud Roques | 847f482609 | |
Arnaud Roques | a562d24aa4 | |
Arnaud Roques | 0dd8e23270 | |
Arnaud Roques | 401f44bf3c | |
Arnaud Roques | 775d2e16c9 | |
Arnaud Roques | d586be399b | |
Arnaud Roques | a195b4e842 | |
Arnaud Roques | 3af1fb7180 | |
Arnaud Roques | 6809546c65 | |
Arnaud Roques | 7c576ed4ac | |
Arnaud Roques | b4d191a365 | |
Arnaud Roques | b5a6684cd1 | |
Arnaud Roques | 9da0fd0939 | |
Arnaud Roques | 62e5a00c8d | |
PlantUML | 51cd2a00ce | |
Guillaume Grossetie | aaf3a8ee24 | |
PlantUML | 1f3dd64f7c | |
Peter Schuller | 0813b747e3 | |
PlantUML | 5718bbe08c | |
PlantUML | 12b9152de3 | |
Gábor Lipták | ba5fef7181 | |
Gábor Lipták | 44affec416 | |
PlantUML | e19e261bb9 | |
Arnaud Roques | 1b89a48f46 | |
Gábor Lipták | 76023f37bb | |
Arnaud Roques | dd53272c19 | |
Arnaud Roques | 0fc2fad432 | |
Arnaud Roques | ed8ad4bf69 | |
Arnaud Roques | 3bff5329c7 | |
Arnaud Roques | 8294ca6e78 | |
Arnaud Roques | 04c4a6c156 | |
Arnaud Roques | 36652c6faa | |
Arnaud Roques | 9371ad88dc | |
Arnaud Roques | ebf7613792 | |
PlantUML | 51b9bfb05a | |
Bharat Rajagopalan | afc1538f10 | |
Bharat Rajagopalan | 123d1779b5 | |
PlantUML | a8dd89ac1d | |
Bharat Rajagopalan | c21c32b425 | |
PlantUML | 17a517eaa5 | |
Bob Jacobsen | fe789981d6 | |
PlantUML | c5e44fbbb9 | |
Bob Jacobsen | 1f2b3980e6 | |
The-Lum | c6c2343ee9 | |
Arnaud Roques | 227045a4ae | |
PlantUML | d926c4bfcb | |
Arnaud Roques | ac9d76cda6 | |
Arnaud Roques | 649a13e04b | |
Arnaud Roques | e801884415 | |
Arnaud Roques | 285c21492f | |
PlantUML | 6a51780588 | |
The-Lum | 3dd8b13f6c | |
The-Lum | 24c18715ae | |
PlantUML | db3252a5ad | |
Arnaud Roques | 16ad46f0ea | |
Arnaud Roques | 6e3ba0e4da | |
The-Lum | a9e9ca81e0 | |
The-Lum | 5e06dae809 | |
PlantUML | f6b47e6ea7 | |
Arnaud Roques | 26f5b7f1fd | |
The-Lum | dbe4feae25 | |
Bob Jacobsen | 2b337ac940 | |
Arnaud Roques | a5952259b7 | |
Arnaud Roques | 1afe7aae82 | |
Arnaud Roques | 2621139b20 | |
Arnaud Roques | 7ac50bf403 | |
PlantUML | 36a7cbfca1 | |
matthew16550 | ccd0ac83ad | |
Arnaud Roques | 229a6129e2 | |
Arnaud Roques | 93e5964e5f | |
Arnaud Roques | 25a51b27e7 | |
Arnaud Roques | dbaaa0165e | |
PlantUML | d741fad9d6 | |
soloturn | d24c12e3c7 | |
PlantUML | ba32c10f7c | |
PlantUML | 90fe34915f | |
PlantUML | f03b99a3c7 | |
PlantUML | 52579fcec3 | |
Guillaume | 9058c7444c | |
soloturn | 38d5625b3a | |
soloturn | 8e7c39ebac | |
soloturn | 1885f4b21c | |
dependabot[bot] | 1a8da77432 |
|
@ -0,0 +1 @@
|
|||
**
|
|
@ -21,3 +21,7 @@ trim_trailing_whitespace = false
|
|||
|
||||
[{pom.xml, *.yml}]
|
||||
indent_style = space
|
||||
|
||||
[Dockerfile]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
*.java text=auto
|
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
|
@ -0,0 +1,5 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: GitHub Community Support
|
||||
url: https://github.com/plantuml/plantuml/discussions/new
|
||||
about: Please ask and answer questions here.
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
name: Documentation request
|
||||
about: Identify an area for improvement in documentation
|
||||
|
||||
---
|
||||
|
||||
**What is the URL of the documentation?**
|
||||
|
||||
- **Example:** https://github.com/evantill/docker-cheerpj/blob/main/README.md#example-of-using-cheerpj-on-your-computer
|
||||
|
||||
- *Note:* This URL includes the web page and the section of the documentation.
|
||||
|
||||
**What can be improved?**
|
||||
|
||||
A clear and concise description of what can be improved.
|
||||
Examples:
|
||||
|
||||
- "I don't understand where the ${XYZ} variable is set."
|
||||
- "There seems to be a step missing between 'X' and 'Z'. I don't know how to get to 'Z'."
|
||||
- "When I run `command sub-command ...` I get the following error:"
|
||||
- "I don't know what is meant by 'gerble barb gazoink` in the instructions".
|
||||
|
||||
**Additional context**
|
||||
|
||||
Add any other context or screenshots to help describe the documentation improvement.
|
||||
If you think the documentation improvement is operating system specific,
|
||||
please indicate which operating system is being used.
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
|
@ -0,0 +1,6 @@
|
|||
dist/
|
||||
lib/
|
||||
node_modules/
|
||||
jest.config.js
|
||||
__tests__/
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"plugins": ["jest", "@typescript-eslint"],
|
||||
"extends": ["plugin:github/recommended"],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 9,
|
||||
"sourceType": "module",
|
||||
"project": "./tsconfig.json"
|
||||
},
|
||||
"rules": {
|
||||
"i18n-text/no-en": "off",
|
||||
"eslint-comments/no-use": "off",
|
||||
"import/no-namespace": "off",
|
||||
"no-unused-vars": "off",
|
||||
"@typescript-eslint/no-unused-vars": "error",
|
||||
"@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}],
|
||||
"@typescript-eslint/no-require-imports": "error",
|
||||
"@typescript-eslint/array-type": "error",
|
||||
"@typescript-eslint/await-thenable": "error",
|
||||
"@typescript-eslint/ban-ts-comment": "error",
|
||||
"camelcase": "off",
|
||||
"@typescript-eslint/consistent-type-assertions": "error",
|
||||
"@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}],
|
||||
"@typescript-eslint/func-call-spacing": ["error", "never"],
|
||||
"@typescript-eslint/no-array-constructor": "error",
|
||||
"@typescript-eslint/no-empty-interface": "error",
|
||||
"@typescript-eslint/no-explicit-any": "error",
|
||||
"@typescript-eslint/no-extraneous-class": "error",
|
||||
"@typescript-eslint/no-for-in-array": "error",
|
||||
"@typescript-eslint/no-inferrable-types": "error",
|
||||
"@typescript-eslint/no-misused-new": "error",
|
||||
"@typescript-eslint/no-namespace": "error",
|
||||
"@typescript-eslint/no-non-null-assertion": "warn",
|
||||
"@typescript-eslint/no-unnecessary-qualifier": "error",
|
||||
"@typescript-eslint/no-unnecessary-type-assertion": "error",
|
||||
"@typescript-eslint/no-useless-constructor": "error",
|
||||
"@typescript-eslint/no-var-requires": "error",
|
||||
"@typescript-eslint/prefer-for-of": "warn",
|
||||
"@typescript-eslint/prefer-function-type": "warn",
|
||||
"@typescript-eslint/prefer-includes": "error",
|
||||
"@typescript-eslint/prefer-string-starts-ends-with": "error",
|
||||
"@typescript-eslint/promise-function-async": "error",
|
||||
"@typescript-eslint/require-array-sort-compare": "error",
|
||||
"@typescript-eslint/restrict-plus-operands": "error",
|
||||
"semi": "off",
|
||||
"@typescript-eslint/semi": ["error", "never"],
|
||||
"@typescript-eslint/type-annotation-spacing": "error",
|
||||
"@typescript-eslint/unbound-method": "error"
|
||||
},
|
||||
"env": {
|
||||
"node": true,
|
||||
"es6": true,
|
||||
"jest/globals": true
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
dist/** -diff linguist-generated=true
|
|
@ -0,0 +1,99 @@
|
|||
# Dependency directory
|
||||
node_modules
|
||||
|
||||
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
|
||||
# next.js build output
|
||||
.next
|
||||
|
||||
# nuxt.js build output
|
||||
.nuxt
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# OS metadata
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Ignore built ts files
|
||||
__tests__/runner/*
|
||||
lib/**/*
|
|
@ -0,0 +1,3 @@
|
|||
dist/
|
||||
lib/
|
||||
node_modules/
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"printWidth": 80,
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "none",
|
||||
"bracketSpacing": false,
|
||||
"arrowParens": "avoid"
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
<p align="center">
|
||||
<a href="https://github.com/actions/typescript-action/actions"><img alt="typescript-action status" src="https://github.com/actions/typescript-action/workflows/build-test/badge.svg"></a>
|
||||
</p>
|
||||
|
||||
# Create a JavaScript Action using TypeScript
|
||||
|
||||
Use this template to bootstrap the creation of a TypeScript action.:rocket:
|
||||
|
||||
This template includes compilation support, tests, a validation workflow, publishing, and versioning guidance.
|
||||
|
||||
If you are new, there's also a simpler introduction. See the [Hello World JavaScript Action](https://github.com/actions/hello-world-javascript-action)
|
||||
|
||||
## Create an action from this template
|
||||
|
||||
Click the `Use this Template` and provide the new repo details for your action
|
||||
|
||||
## Code in Main
|
||||
|
||||
> First, you'll need to have a reasonably modern version of `node` handy. This won't work with versions older than 9, for instance.
|
||||
|
||||
Install the dependencies
|
||||
```bash
|
||||
$ npm install
|
||||
```
|
||||
|
||||
Build the typescript and package it for distribution
|
||||
```bash
|
||||
$ npm run build && npm run package
|
||||
```
|
||||
|
||||
Run the tests :heavy_check_mark:
|
||||
```bash
|
||||
$ npm test
|
||||
|
||||
PASS ./index.test.js
|
||||
✓ throws invalid number (3ms)
|
||||
✓ wait 500 ms (504ms)
|
||||
✓ test runs (95ms)
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
## Change action.yml
|
||||
|
||||
The action.yml defines the inputs and output for your action.
|
||||
|
||||
Update the action.yml with your name, description, inputs and outputs for your action.
|
||||
|
||||
See the [documentation](https://help.github.com/en/articles/metadata-syntax-for-github-actions)
|
||||
|
||||
## Change the Code
|
||||
|
||||
Most toolkit and CI/CD operations involve async operations so the action is run in an async function.
|
||||
|
||||
```javascript
|
||||
import * as core from '@actions/core';
|
||||
...
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
...
|
||||
}
|
||||
catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
}
|
||||
|
||||
run()
|
||||
```
|
||||
|
||||
See the [toolkit documentation](https://github.com/actions/toolkit/blob/master/README.md#packages) for the various packages.
|
||||
|
||||
## Publish to a distribution branch
|
||||
|
||||
Actions are run from GitHub repos so we will checkin the packed dist folder.
|
||||
|
||||
Then run [ncc](https://github.com/zeit/ncc) and push the results:
|
||||
```bash
|
||||
$ npm run package
|
||||
$ git add dist
|
||||
$ git commit -a -m "prod dependencies"
|
||||
$ git push origin releases/v1
|
||||
```
|
||||
|
||||
Note: We recommend using the `--license` option for ncc, which will create a license file for all of the production node modules used in your project.
|
||||
|
||||
Your action is now published! :rocket:
|
||||
|
||||
See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md)
|
||||
|
||||
## Validate
|
||||
|
||||
You can now validate the action by referencing `./` in a workflow in your repo (see [test.yml](.github/workflows/test.yml))
|
||||
|
||||
```yaml
|
||||
uses: ./
|
||||
with:
|
||||
milliseconds: 1000
|
||||
```
|
||||
|
||||
See the [actions tab](https://github.com/actions/typescript-action/actions) for runs of this action! :rocket:
|
||||
|
||||
## Usage:
|
||||
|
||||
After testing you can [create a v1 tag](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) to reference the stable and latest V1 action
|
|
@ -0,0 +1,30 @@
|
|||
import * as cp from 'child_process'
|
||||
import * as path from 'path'
|
||||
import * as process from 'process'
|
||||
|
||||
import {expect, test} from '@jest/globals'
|
||||
import {wait} from '../src/wait'
|
||||
|
||||
test('throws invalid number', async () => {
|
||||
const input = parseInt('foo', 10)
|
||||
await expect(wait(input)).rejects.toThrow('milliseconds not a number')
|
||||
})
|
||||
|
||||
test('wait 500 ms', async () => {
|
||||
const start = new Date()
|
||||
await wait(500)
|
||||
const end = new Date()
|
||||
const delta = Math.abs(end.getTime() - start.getTime())
|
||||
expect(delta).toBeGreaterThan(450)
|
||||
})
|
||||
|
||||
// shows how the runner will run a javascript action with env / stdout protocol
|
||||
test('test runs', () => {
|
||||
process.env['INPUT_MILLISECONDS'] = '500'
|
||||
const np = process.execPath
|
||||
const ip = path.join(__dirname, '..', 'lib', 'main.js')
|
||||
const options: cp.ExecFileSyncOptions = {
|
||||
env: process.env
|
||||
}
|
||||
console.log(cp.execFileSync(np, [ip], options).toString())
|
||||
})
|
|
@ -0,0 +1,11 @@
|
|||
name: 'Your name here'
|
||||
description: 'Provide a description here'
|
||||
author: 'Your name or organization here'
|
||||
inputs:
|
||||
milliseconds: # change this
|
||||
required: true
|
||||
description: 'input description here'
|
||||
default: 'default value if applicable'
|
||||
runs:
|
||||
using: 'node16'
|
||||
main: 'dist/index.js'
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,635 @@
|
|||
@actions/core
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2019 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@actions/github
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2019 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@actions/http-client
|
||||
MIT
|
||||
Actions Http Client for Node.js
|
||||
|
||||
Copyright (c) GitHub, Inc.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||
associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||||
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/auth-token
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/core
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/endpoint
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/graphql
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/plugin-paginate-rest
|
||||
MIT
|
||||
MIT License Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/plugin-rest-endpoint-methods
|
||||
MIT
|
||||
MIT License Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/request
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/request-error
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@vercel/ncc
|
||||
MIT
|
||||
Copyright 2018 ZEIT, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
before-after-hook
|
||||
Apache-2.0
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2018 Gregor Martynus and other contributors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
|
||||
deprecation
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Gregor Martynus and contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
is-plain-object
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2017, Jon Schlinkert.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
node-fetch
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 David Frank
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
|
||||
once
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
tr46
|
||||
MIT
|
||||
|
||||
tunnel
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2012 Koichi Kobayashi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
universal-user-agent
|
||||
ISC
|
||||
# [ISC License](https://spdx.org/licenses/ISC)
|
||||
|
||||
Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m)
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
uuid
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2010-2020 Robert Kieffer and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
webidl-conversions
|
||||
BSD-2-Clause
|
||||
# The BSD 2-Clause License
|
||||
|
||||
Copyright (c) 2014, Domenic Denicola
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
whatwg-url
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015–2016 Sebastian Mayr
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
wrappy
|
||||
ISC
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,9 @@
|
|||
module.exports = {
|
||||
clearMocks: true,
|
||||
moduleFileExtensions: ['js', 'ts'],
|
||||
testMatch: ['**/*.test.ts'],
|
||||
transform: {
|
||||
'^.+\\.ts$': 'ts-jest'
|
||||
},
|
||||
verbose: true
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"name": "typescript-action",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"description": "TypeScript template action",
|
||||
"main": "lib/main.js",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"format": "prettier --write '**/*.ts'",
|
||||
"format-check": "prettier --check '**/*.ts'",
|
||||
"lint": "eslint src/**/*.ts",
|
||||
"package": "ncc build --source-map --license licenses.txt",
|
||||
"test": "jest",
|
||||
"all": "npm run build && npm run format && npm run lint && npm run package && npm test",
|
||||
"test-job": "npm run build && npm run package && pushd ../../../ && act --job testing-workflow-config && popd",
|
||||
"clean": "rm -rf node_modules lib .idea"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/actions/typescript-action.git"
|
||||
},
|
||||
"keywords": [
|
||||
"actions",
|
||||
"node",
|
||||
"setup"
|
||||
],
|
||||
"author": "",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.10.0",
|
||||
"@actions/github": "^5.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@octokit/webhooks-types": "^6.10.0",
|
||||
"@types/node": "^18.11.0",
|
||||
"@typescript-eslint/parser": "^4.33.0",
|
||||
"@vercel/ncc": "^0.31.1",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-github": "^4.3.2",
|
||||
"eslint-plugin-jest": "^25.3.2",
|
||||
"jest": "^27.2.5",
|
||||
"js-yaml": "^4.1.0",
|
||||
"prettier": "2.5.1",
|
||||
"ts-jest": "^27.1.2",
|
||||
"typescript": "^4.4.4"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
import * as core from '@actions/core';
|
||||
import * as github from '@actions/github';
|
||||
import {PullRequestEvent, PushEvent, ReleaseEvent, WorkflowDispatchEvent} from '@octokit/webhooks-types';
|
||||
|
||||
import { wait } from "./wait";
|
||||
|
||||
async function run(): Promise<void> {
|
||||
try {
|
||||
const ms: string = core.getInput("milliseconds");
|
||||
core.debug(`Waiting ${ms} milliseconds ...`); // debug is only output if you set the secret `ACTIONS_STEP_DEBUG` to true
|
||||
|
||||
core.debug(new Date().toTimeString());
|
||||
await wait(parseInt(ms, 10));
|
||||
core.debug(new Date().toTimeString());
|
||||
|
||||
core.setOutput("time", new Date().toTimeString());
|
||||
} catch (error) {
|
||||
if (error instanceof Error) core.setFailed(error.message);
|
||||
}
|
||||
}
|
||||
|
||||
function onPullRequestEvent(payload: PullRequestEvent) {
|
||||
switch(payload.action){
|
||||
case "labeled":
|
||||
console.log("pull request label "+payload.label)
|
||||
break;
|
||||
default:
|
||||
console.log("pull request action "+payload.action)
|
||||
}
|
||||
console.info('pull request event:',payload)
|
||||
}
|
||||
|
||||
function onWorkflowDispatchEvent(payload: WorkflowDispatchEvent): void {
|
||||
console.info('workflow dispatch event:',payload)
|
||||
}
|
||||
|
||||
function onPushEvent(payload: PushEvent): void {
|
||||
console.info('push event:',payload)
|
||||
}
|
||||
|
||||
function onReleaseEvent(payload: ReleaseEvent) {
|
||||
console.info('onReleaseEvent:',payload)
|
||||
|
||||
}
|
||||
|
||||
function handleEvent(): void {
|
||||
console.info(`eventName: ${github.context.eventName}`);
|
||||
switch (github.context.eventName) {
|
||||
case "workflow_dispatch":
|
||||
onWorkflowDispatchEvent(github.context.payload as WorkflowDispatchEvent);
|
||||
break;
|
||||
case "push":
|
||||
onPushEvent(github.context.payload as PushEvent);
|
||||
break;
|
||||
case "pull_request":
|
||||
onPullRequestEvent(github.context.payload as PullRequestEvent)
|
||||
break;
|
||||
// case "pull_request_target":
|
||||
// onPullRequestEvent(github.context.payload as PullRequestEvent)
|
||||
// break;
|
||||
case "release":
|
||||
onReleaseEvent(github.context.payload as ReleaseEvent)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
handleEvent();
|
||||
run();
|
|
@ -0,0 +1,9 @@
|
|||
export async function wait(milliseconds: number): Promise<string> {
|
||||
return new Promise(resolve => {
|
||||
if (isNaN(milliseconds)) {
|
||||
throw new Error('milliseconds not a number')
|
||||
}
|
||||
|
||||
setTimeout(() => resolve('done!'), milliseconds)
|
||||
})
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
|
||||
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
||||
"outDir": "./lib", /* Redirect output structure to the directory. */
|
||||
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
"noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
},
|
||||
"exclude": ["node_modules", "**/*.test.ts"]
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
'm:release':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'CHANGELOG.md'
|
||||
- 'gradle.properties'
|
||||
|
||||
'm:docs':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '*.md'
|
||||
- 'docs/**/*'
|
||||
|
||||
'm:workflow':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- .github/**
|
||||
|
||||
'm:gradle':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'gradle*'
|
||||
- 'gradle/**'
|
||||
- '**/settings.gradle.*'
|
||||
- '**/build.gradle.*'
|
||||
- 'sjpp.jar'
|
||||
|
||||
'm:source':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'skin/**/*'
|
||||
- 'src/**/*'
|
||||
- 'stdlib/**/*'
|
||||
- 'svg/**/*'
|
||||
- 'themes/**/*'
|
||||
- 'manifest.txt'
|
||||
|
||||
'm:test':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- 'test/**/*'
|
||||
|
||||
'm:license':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- '**/*license.txt'
|
||||
|
||||
'm:docker':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- Dockerfile
|
||||
|
||||
'm:native':
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- .github/workflows/native-image.yml
|
|
@ -1,10 +1,11 @@
|
|||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
|
||||
POM_VERSION=$(gradle properties -q | grep "version:" | awk '{print $2}')
|
||||
find . -name "*.jar"
|
||||
find . -name "*.asc"
|
||||
|
||||
TAG="snapshot"
|
||||
DATE_TIME_UTC=$(date -u +"%F at %T (UTC)")
|
||||
RELEASE_DIR="build/github_release"
|
||||
|
||||
gh release delete "${TAG}" -y || true
|
||||
|
||||
|
@ -12,28 +13,65 @@ git tag --force "${TAG}"
|
|||
|
||||
git push --force origin "${TAG}"
|
||||
|
||||
mkdir "${RELEASE_DIR}"
|
||||
mkdir "github_release"
|
||||
|
||||
ln -s "../publications/maven/module.json" "${RELEASE_DIR}/plantuml-SNAPSHOT-module.json"
|
||||
ln -s "../publications/maven/pom-default.xml" "${RELEASE_DIR}/plantuml-SNAPSHOT.pom"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}.jar" "${RELEASE_DIR}/plantuml-SNAPSHOT.jar"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-javadoc.jar" "${RELEASE_DIR}/plantuml-SNAPSHOT-javadoc.jar"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-sources.jar" "${RELEASE_DIR}/plantuml-SNAPSHOT-sources.jar"
|
||||
ln -s "../libs/plantuml-pdf-${POM_VERSION}.jar" "${RELEASE_DIR}/plantuml-pdf-SNAPSHOT.jar"
|
||||
cp "build/publications/maven/module.json" "github_release/plantuml-SNAPSHOT-module.json"
|
||||
cp "build/publications/maven/pom-default.xml" "github_release/plantuml-SNAPSHOT.pom"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}.jar" "github_release/plantuml-SNAPSHOT.jar"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-SNAPSHOT-javadoc.jar"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-SNAPSHOT-sources.jar"
|
||||
cp "build/libs/plantuml-pdf-${RELEASE_VERSION}.jar" "github_release/plantuml-pdf-SNAPSHOT.jar"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}.jar" "github_release/plantuml-asl-SNAPSHOT.jar"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-asl-SNAPSHOT-javadoc.jar"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-asl-SNAPSHOT-sources.jar"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}.jar" "github_release/plantuml-bsd-SNAPSHOT.jar"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-bsd-SNAPSHOT-javadoc.jar"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-bsd-SNAPSHOT-sources.jar"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}.jar" "github_release/plantuml-epl-SNAPSHOT.jar"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-epl-SNAPSHOT-javadoc.jar"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-epl-SNAPSHOT-sources.jar"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}.jar" "github_release/plantuml-lgpl-SNAPSHOT.jar"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-lgpl-SNAPSHOT-javadoc.jar"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-lgpl-SNAPSHOT-sources.jar"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}.jar" "github_release/plantuml-mit-SNAPSHOT.jar"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-mit-SNAPSHOT-javadoc.jar"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-mit-SNAPSHOT-sources.jar"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}.jar" "github_release/plantuml-gplv2-SNAPSHOT.jar"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-gplv2-SNAPSHOT-javadoc.jar"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-gplv2-SNAPSHOT-sources.jar"
|
||||
|
||||
if [[ -e "build/publications/maven/module.json.asc" ]]; then
|
||||
# signatures are optional so that forked repos can release snapshots without needing a gpg signing key
|
||||
ln -s "../publications/maven/module.json.asc" "${RELEASE_DIR}/plantuml-SNAPSHOT-module.json.asc"
|
||||
ln -s "../publications/maven/pom-default.xml.asc" "${RELEASE_DIR}/plantuml-SNAPSHOT.pom.asc"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}.jar.asc" "${RELEASE_DIR}/plantuml-SNAPSHOT.jar.asc"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-javadoc.jar.asc" "${RELEASE_DIR}/plantuml-SNAPSHOT-javadoc.jar.asc"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-sources.jar.asc" "${RELEASE_DIR}/plantuml-SNAPSHOT-sources.jar.asc"
|
||||
ln -s "../libs/plantuml-pdf-${POM_VERSION}.jar.asc" "${RELEASE_DIR}/plantuml-pdf-SNAPSHOT.jar.asc"
|
||||
cp "build/publications/maven/module.json.asc" "github_release/plantuml-SNAPSHOT-module.json.asc"
|
||||
cp "build/publications/maven/pom-default.xml.asc" "github_release/plantuml-SNAPSHOT.pom.asc"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-SNAPSHOT.jar.asc"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-SNAPSHOT-javadoc.jar.asc"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-SNAPSHOT-sources.jar.asc"
|
||||
cp "build/libs/plantuml-pdf-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-pdf-SNAPSHOT.jar.asc"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-asl-SNAPSHOT.jar.asc"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-asl-SNAPSHOT-javadoc.jar.asc"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-asl-SNAPSHOT-sources.jar.asc"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-bsd-SNAPSHOT.jar.asc"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-bsd-SNAPSHOT-javadoc.jar.asc"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-bsd-SNAPSHOT-sources.jar.asc"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-epl-SNAPSHOT.jar.asc"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-epl-SNAPSHOT-javadoc.jar.asc"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-epl-SNAPSHOT-sources.jar.asc"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-lgpl-SNAPSHOT.jar.asc"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-lgpl-SNAPSHOT-javadoc.jar.asc"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-lgpl-SNAPSHOT-sources.jar.asc"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-mit-SNAPSHOT.jar.asc"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-mit-SNAPSHOT-javadoc.jar.asc"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-mit-SNAPSHOT-sources.jar.asc"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-gplv2-SNAPSHOT.jar.asc"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-gplv2-SNAPSHOT-javadoc.jar.asc"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-gplv2-SNAPSHOT-sources.jar.asc"
|
||||
fi
|
||||
|
||||
echo -n "${DATE_TIME_UTC}" > "${RELEASE_DIR}/plantuml-SNAPSHOT.timestamp"
|
||||
echo -n "${DATE_TIME_UTC}" > "github_release/plantuml-SNAPSHOT.timestamp"
|
||||
|
||||
cat <<-EOF >notes.txt
|
||||
## Version ~v${RELEASE_VERSION%-SNAPSHOT} of the ${DATE_TIME_UTC}
|
||||
This is a pre-release of [the latest development work](https://github.com/plantuml/plantuml/commits/).
|
||||
⚠️ **It is not ready for general use** ⚠️
|
||||
⏱ _Snapshot taken the ${DATE_TIME_UTC}_
|
||||
|
@ -42,8 +80,8 @@ EOF
|
|||
gh release create \
|
||||
--prerelease \
|
||||
--target "${GITHUB_SHA}" \
|
||||
--title "${TAG}" \
|
||||
--title "${TAG} (~v${RELEASE_VERSION%-SNAPSHOT})" \
|
||||
--notes-file notes.txt \
|
||||
"${TAG}" ${RELEASE_DIR}/*
|
||||
"${TAG}" github_release/*
|
||||
|
||||
echo "::notice title=release snapshot::Snapshot released at ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/tag/${TAG} and taken the ${DATE_TIME_UTC}"
|
||||
echo "::notice title=release snapshot::Snapshot (~v${RELEASE_VERSION%-SNAPSHOT}) released at ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/tag/${TAG} and taken the ${DATE_TIME_UTC}"
|
||||
|
|
|
@ -1,27 +1,68 @@
|
|||
#!/usr/bin/env bash
|
||||
set -ex
|
||||
|
||||
POM_VERSION=$(gradle properties -q | grep "version:" | awk '{print $2}')
|
||||
RELEASE_DIR="build/github_release"
|
||||
find . -name "*.jar"
|
||||
find . -name "*.asc"
|
||||
|
||||
mkdir "${RELEASE_DIR}"
|
||||
mkdir "github_release"
|
||||
|
||||
ln -s "../libs/plantuml-${POM_VERSION}.jar" "${RELEASE_DIR}/plantuml-${POM_VERSION}.jar"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-javadoc.jar" "${RELEASE_DIR}/plantuml-${POM_VERSION}-javadoc.jar"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-sources.jar" "${RELEASE_DIR}/plantuml-${POM_VERSION}-sources.jar"
|
||||
ln -s "../libs/plantuml-pdf-${POM_VERSION}.jar" "${RELEASE_DIR}/plantuml-pdf-${POM_VERSION}.jar"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}.jar" "github_release/plantuml.jar"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}.jar" "github_release/plantuml-${RELEASE_VERSION}.jar"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-${RELEASE_VERSION}-javadoc.jar"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-${RELEASE_VERSION}-sources.jar"
|
||||
cp "build/libs/plantuml-pdf-${RELEASE_VERSION}.jar" "github_release/plantuml-pdf-${RELEASE_VERSION}.jar"
|
||||
#cp "build/libs/plantuml-linux-amd64-${RELEASE_VERSION}" "github_release/plantuml-linux-amd64-${RELEASE_VERSION}"
|
||||
#cp "build/libs/plantuml-darwin-amd64-${RELEASE_VERSION}" "github_release/plantuml-darwin-amd64-${RELEASE_VERSION}"
|
||||
#cp "build/libs/plantuml-win-amd64-${RELEASE_VERSION}.exe" "github_release/plantuml-win-amd64-${RELEASE_VERSION}.exe"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}.jar" "github_release/plantuml-asl-${RELEASE_VERSION}.jar"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-asl-${RELEASE_VERSION}-javadoc.jar"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-asl-${RELEASE_VERSION}-sources.jar"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}.jar" "github_release/plantuml-bsd-${RELEASE_VERSION}.jar"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-bsd-${RELEASE_VERSION}-javadoc.jar"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-bsd-${RELEASE_VERSION}-sources.jar"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}.jar" "github_release/plantuml-epl-${RELEASE_VERSION}.jar"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-epl-${RELEASE_VERSION}-javadoc.jar"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-epl-${RELEASE_VERSION}-sources.jar"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}.jar" "github_release/plantuml-lgpl-${RELEASE_VERSION}.jar"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-lgpl-${RELEASE_VERSION}-javadoc.jar"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-lgpl-${RELEASE_VERSION}-sources.jar"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}.jar" "github_release/plantuml-mit-${RELEASE_VERSION}.jar"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-mit-${RELEASE_VERSION}-javadoc.jar"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-mit-${RELEASE_VERSION}-sources.jar"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}.jar" "github_release/plantuml-gplv2-${RELEASE_VERSION}.jar"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-javadoc.jar" "github_release/plantuml-gplv2-${RELEASE_VERSION}-javadoc.jar"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-sources.jar" "github_release/plantuml-gplv2-${RELEASE_VERSION}-sources.jar"
|
||||
|
||||
if [[ -e "build/publications/maven/module.json.asc" ]]; then
|
||||
# signatures are optional so that forked repos can release snapshots without needing a gpg signing key
|
||||
ln -s "../libs/plantuml-${POM_VERSION}.jar.asc" "${RELEASE_DIR}/plantuml-${POM_VERSION}.jar.asc"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-javadoc.jar.asc" "${RELEASE_DIR}/plantuml-${POM_VERSION}-javadoc.jar.asc"
|
||||
ln -s "../libs/plantuml-${POM_VERSION}-sources.jar.asc" "${RELEASE_DIR}/plantuml-${POM_VERSION}-sources.jar.asc"
|
||||
ln -s "../libs/plantuml-pdf-${POM_VERSION}.jar.asc" "${RELEASE_DIR}/plantuml-pdf-${POM_VERSION}.jar.asc"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}.jar.asc" "github_release/plantuml.jar.asc"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-${RELEASE_VERSION}.jar.asc"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-${RELEASE_VERSION}-javadoc.jar.asc"
|
||||
cp "build/libs/plantuml-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-${RELEASE_VERSION}-sources.jar.asc"
|
||||
cp "build/libs/plantuml-pdf-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-pdf-${RELEASE_VERSION}.jar.asc"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-asl-${RELEASE_VERSION}.jar.asc"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-asl-${RELEASE_VERSION}-javadoc.jar.asc"
|
||||
cp "plantuml-asl/build/libs/plantuml-asl-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-asl-${RELEASE_VERSION}-sources.jar.asc"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-bsd-${RELEASE_VERSION}.jar.asc"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-bsd-${RELEASE_VERSION}-javadoc.jar.asc"
|
||||
cp "plantuml-bsd/build/libs/plantuml-bsd-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-bsd-${RELEASE_VERSION}-sources.jar.asc"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-epl-${RELEASE_VERSION}.jar.asc"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-epl-${RELEASE_VERSION}-javadoc.jar.asc"
|
||||
cp "plantuml-epl/build/libs/plantuml-epl-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-epl-${RELEASE_VERSION}-sources.jar.asc"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-lgpl-${RELEASE_VERSION}.jar.asc"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-lgpl-${RELEASE_VERSION}-javadoc.jar.asc"
|
||||
cp "plantuml-lgpl/build/libs/plantuml-lgpl-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-lgpl-${RELEASE_VERSION}-sources.jar.asc"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-mit-${RELEASE_VERSION}.jar.asc"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-mit-${RELEASE_VERSION}-javadoc.jar.asc"
|
||||
cp "plantuml-mit/build/libs/plantuml-mit-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-mit-${RELEASE_VERSION}-sources.jar.asc"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}.jar.asc" "github_release/plantuml-gplv2-${RELEASE_VERSION}.jar.asc"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-javadoc.jar.asc" "github_release/plantuml-gplv2-${RELEASE_VERSION}-javadoc.jar.asc"
|
||||
cp "plantuml-gplv2/build/libs/plantuml-gplv2-${RELEASE_VERSION}-sources.jar.asc" "github_release/plantuml-gplv2-${RELEASE_VERSION}-sources.jar.asc"
|
||||
fi
|
||||
|
||||
gh release create \
|
||||
--target "${GITHUB_SHA}" \
|
||||
--title "${TAG}" \
|
||||
"${TAG}" ${RELEASE_DIR}/*
|
||||
"${TAG}" github_release/*
|
||||
|
||||
echo "::notice title=::Released at ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/tag/${TAG} 🎉"
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
# https://docs.github.com/en/actions/managing-issues-and-pull-requests/adding-labels-to-issues
|
||||
|
||||
name: Label issues
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- reopened
|
||||
- opened
|
||||
jobs:
|
||||
label_issues:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
steps:
|
||||
- uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
github.rest.issues.addLabels({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
labels: ["triage"]
|
||||
})
|
|
@ -26,7 +26,13 @@ jobs:
|
|||
do_release: ${{ steps.config.outputs.do_release }}
|
||||
do_snapshot_release: ${{ steps.config.outputs.do_snapshot_release }}
|
||||
pom_version: ${{ steps.config.outputs.pom_version }}
|
||||
do_javadoc: ${{ steps.config.outputs.do_javadoc }}
|
||||
do_test_linux: ${{ steps.config.outputs.do_test_linux }}
|
||||
do_test_windows: ${{ steps.config.outputs.do_test_windows }}
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Configure workflow
|
||||
id: config
|
||||
env:
|
||||
|
@ -48,38 +54,52 @@ jobs:
|
|||
|
||||
# Do a release when a git tag starting with 'v' has been created by a suitable user.
|
||||
# (We match against github.repository_owner as a kludge so that forked repos can release themselves when testing the workflow)
|
||||
|
||||
if [[ "${GITHUB_EVENT_NAME}" == "create" && "${REF_TYPE}" == "tag" && "${REF}" == v* && \
|
||||
( "${ACTOR}" == "arnaudroques" || "${ACTOR}" == "${GITHUB_REPOSITORY_OWNER}" ) \
|
||||
]]; then
|
||||
echo "::notice title=::This run will release '${REF}'"
|
||||
echo "::set-output name=do_release::true"
|
||||
echo "::set-output name=pom_version::${REF#v}" # pom_version is the tag without the 'v' prefix
|
||||
echo "do_release=true" >> $GITHUB_OUTPUT
|
||||
echo "pom_version=${REF#v}"
|
||||
echo "pom_version=${REF#v}" >> $GITHUB_OUTPUT # pom_version is the tag without the 'v' prefix
|
||||
echo "do_javadoc=true" >> $GITHUB_OUTPUT
|
||||
echo "This run will update the Javadoc"
|
||||
|
||||
elif [[ "${GITHUB_EVENT_NAME}" =~ push|workflow_dispatch && "${REF}" == "refs/heads/master" ]]; then
|
||||
elif [[ "${GITHUB_EVENT_NAME}" =~ push|workflow_dispatch && "${REF}" == "refs/heads/master" && "${ACTOR}" == "arnaudroques" ]]; then
|
||||
echo "::notice title=::This run will release a snapshot"
|
||||
echo "::set-output name=do_snapshot_release::true"
|
||||
echo "do_snapshot_release=true" >> $GITHUB_OUTPUT
|
||||
V=$(perl -ne 'if (/return (\d{6,7});/) {$v=$1} if (/final int beta = (\d+);/) {$b=$1} END{print(substr($v, 0, 1),".", substr($v, 1, 4),"."); if ($b) {print(int(substr($v+1, 5)), "beta", $b);} else {print(int(substr($v, 5)))}}' src/net/sourceforge/plantuml/version/Version.java)
|
||||
echo "pom_version=$V-SNAPSHOT"
|
||||
echo "pom_version=$V-SNAPSHOT" >> $GITHUB_OUTPUT # pom_version is taken from Version.java
|
||||
echo "do_javadoc=true" >> $GITHUB_OUTPUT
|
||||
echo "This run will update the Javadoc"
|
||||
|
||||
else
|
||||
echo "This run will NOT make a release"
|
||||
echo "do_javadoc=false" >> $GITHUB_OUTPUT
|
||||
echo "This run will NOT update the Javadoc"
|
||||
fi
|
||||
echo "do_test_linux=true" >> $GITHUB_OUTPUT
|
||||
echo "do_test_windows=false" >> $GITHUB_OUTPUT
|
||||
|
||||
# We run the tests on many OS / Java combinations but also the Compile step because some users build
|
||||
# their own jars from source, so it is good for CI to check that is working on all combinations.
|
||||
test:
|
||||
# We split windows and ubuntu because windows is so slow...
|
||||
test_linux:
|
||||
needs: workflow_config
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
java_version: [ 8, 11, 17 ]
|
||||
os: [ macos-10.15, macos-11, ubuntu-18.04, ubuntu-20.04, windows-2019, windows-2022 ]
|
||||
java_version: [ 8, 17 ]
|
||||
os: [ ubuntu-latest ]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v2
|
||||
if: needs.workflow_config.outputs.do_test_linux == 'true'
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up java
|
||||
uses: actions/setup-java@v3.0.0
|
||||
if: needs.workflow_config.outputs.do_test_linux == 'true'
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: ${{ matrix.java_version }}
|
||||
distribution: temurin
|
||||
|
@ -87,64 +107,234 @@ jobs:
|
|||
|
||||
# Compile / Test / Package are separate steps so the reason for any failure is more obvious in GitHub UI
|
||||
- name: Compile
|
||||
if: needs.workflow_config.outputs.do_test_linux == 'true'
|
||||
run: gradle -q compileJava --no-daemon
|
||||
|
||||
- name: Test
|
||||
run: gradle -q test --no-daemon
|
||||
if: needs.workflow_config.outputs.do_test_linux == 'true'
|
||||
run: gradle test --no-daemon -i
|
||||
|
||||
upload:
|
||||
needs: [ workflow_config, test ]
|
||||
- name: Upload test reports
|
||||
uses: actions/upload-artifact@v4
|
||||
if: needs.workflow_config.outputs.do_test_linux == 'true'
|
||||
with:
|
||||
# Using github.run_number here to reduce confusion when downloading & comparing from several builds
|
||||
name: ${{ github.run_number }}-${{ matrix.os }}-java-${{ matrix.java_version }}-test-reports
|
||||
path: build/reports/tests/
|
||||
|
||||
|
||||
build_artifacts:
|
||||
needs: [ workflow_config ]
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
release_version: ${{ steps.version.outputs.release_version }}
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up java
|
||||
uses: actions/setup-java@v3.0.0
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: 17
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
|
||||
- name: Set version from tag
|
||||
if: env.POM_VERSION
|
||||
env:
|
||||
POM_VERSION: ${{ needs.workflow_config.outputs.pom_version }}
|
||||
run: sed -i "s/version = .*/version = $POM_VERSION/" gradle.properties
|
||||
|
||||
- name: Build artifacts
|
||||
# - name: Set version in gradle.properties
|
||||
# if: env.POM_VERSION
|
||||
# env:
|
||||
# POM_VERSION: ${{ needs.workflow_config.outputs.pom_version }}
|
||||
# run: |
|
||||
# sed -i "s/version = .*/version = $POM_VERSION/" gradle.properties
|
||||
# cat gradle.properties
|
||||
- name: Generate artifacts
|
||||
run: |
|
||||
gradle -q clean build \
|
||||
echo "print gradle.properties"
|
||||
cat gradle.properties
|
||||
gradle clean build \
|
||||
pdfJar \
|
||||
generateMetadataFileForMavenPublication generatePomFileForMavenPublication \
|
||||
-x test
|
||||
|
||||
find . -name "*.jar"
|
||||
- name: Sign artifacts
|
||||
if: env.ORG_GRADLE_PROJECT_signingKey
|
||||
env:
|
||||
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ARTIFACT_SIGNING_KEY }}
|
||||
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ARTIFACT_SIGNING_PASSPHRASE }}
|
||||
run: |
|
||||
gradle -q signMavenPublication signPdfJar
|
||||
gradle -i signMavenPublication signPdfJar
|
||||
ls -l build/libs
|
||||
ls -l plantuml-asl/build/libs
|
||||
ls -l plantuml-bsd/build/libs
|
||||
ls -l plantuml-epl/build/libs
|
||||
ls -l plantuml-lgpl/build/libs
|
||||
ls -l plantuml-mit/build/libs
|
||||
ls -l plantuml-gplv2/build/libs
|
||||
- name: Get release version
|
||||
id: version
|
||||
run: |
|
||||
echo "release_version=$(gradle properties -q | grep "version:" | awk '{print $2}')" >> $GITHUB_OUTPUT
|
||||
- name: Cache libs
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: |
|
||||
build/libs
|
||||
build/publications
|
||||
plantuml-asl/build/libs
|
||||
plantuml-bsd/build/libs
|
||||
plantuml-epl/build/libs
|
||||
plantuml-lgpl/build/libs
|
||||
plantuml-mit/build/libs
|
||||
plantuml-gplv2/build/libs
|
||||
key: "libs-${{ github.run_id }}"
|
||||
enableCrossOsArchive: true
|
||||
|
||||
deploy_javadoc:
|
||||
needs: [ build_artifacts, test_linux ]
|
||||
if: needs.workflow_config.outputs.do_javadoc == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: 17
|
||||
distribution: temurin
|
||||
|
||||
- name: Build Javadoc
|
||||
run: gradle javadoc
|
||||
|
||||
- name: Deploy Javadoc to GitHub Pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./build/docs/javadoc
|
||||
|
||||
|
||||
upload:
|
||||
if: |
|
||||
needs.workflow_config.outputs.do_release == 'true' ||
|
||||
needs.workflow_config.outputs.do_snapshot_release == 'true'
|
||||
needs: [ workflow_config, build_artifacts, test_linux ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: 17
|
||||
distribution: temurin
|
||||
cache: gradle
|
||||
|
||||
- name: Restore Libs cache
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
build/libs
|
||||
build/publications
|
||||
plantuml-asl/build/libs
|
||||
plantuml-bsd/build/libs
|
||||
plantuml-epl/build/libs
|
||||
plantuml-lgpl/build/libs
|
||||
plantuml-mit/build/libs
|
||||
plantuml-gplv2/build/libs
|
||||
key: "libs-${{ github.run_id }}"
|
||||
fail-on-cache-miss: true
|
||||
enableCrossOsArchive: true
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
# Using github.run_number here to reduce confusion when downloading & comparing artifacts from several builds
|
||||
name: ${{ github.run_number }}-artifacts
|
||||
path: |
|
||||
build/libs/*
|
||||
build/publications/maven/*
|
||||
plantuml-asl/build/libs
|
||||
plantuml-bsd/build/libs
|
||||
plantuml-epl/build/libs
|
||||
plantuml-lgpl/build/libs
|
||||
plantuml-mit/build/libs
|
||||
plantuml-gplv2/build/libs
|
||||
|
||||
- name: Create snapshot release
|
||||
- name: Create snapshot
|
||||
if: needs.workflow_config.outputs.do_snapshot_release == 'true'
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.build_artifacts.outputs.RELEASE_VERSION }}
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
run: .github/scripts/release-snapshot.sh
|
||||
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
|
||||
#do not remove signing key and password or signatures will not be published
|
||||
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ARTIFACT_SIGNING_KEY }}
|
||||
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ARTIFACT_SIGNING_PASSPHRASE }}
|
||||
run: |
|
||||
echo "print gradle.properties"
|
||||
cat gradle.properties
|
||||
echo "RELEASE_VERSION=$RELEASE_VERSION"
|
||||
.github/scripts/release-snapshot.sh
|
||||
|
||||
- name: Create release in GitHub
|
||||
- name: Create release in GitHub and OSSRH
|
||||
if: needs.workflow_config.outputs.do_release == 'true'
|
||||
env:
|
||||
RELEASE_VERSION: ${{ needs.build_artifacts.outputs.RELEASE_VERSION }}
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
TAG: ${{ github.event.ref }}
|
||||
run: .github/scripts/release.sh
|
||||
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
|
||||
#do not remove signing key and password or signatures will not be published
|
||||
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ARTIFACT_SIGNING_KEY }}
|
||||
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ARTIFACT_SIGNING_PASSPHRASE }}
|
||||
run: |
|
||||
echo "print gradle.properties"
|
||||
cat gradle.properties
|
||||
echo "RELEASE_VERSION=$RELEASE_VERSION"
|
||||
.github/scripts/release.sh
|
||||
gradle --debug publish
|
||||
|
||||
push_to_docker_registry:
|
||||
needs: [ workflow_config, upload, test_linux ]
|
||||
if: needs.workflow_config.outputs.do_release == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
# list of Docker images to use as base name for tags
|
||||
images: |
|
||||
${{ github.repository }}
|
||||
ghcr.io/${{ github.repository }}
|
||||
# generate Docker tags based on the following events/attributes
|
||||
tags: |
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
type=sha
|
||||
- name: Log into Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Log in to GitHub Docker Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Build/push container image
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
build-args: |
|
||||
PLANTUML_VERSION=${{ github.event.ref }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
on:
|
||||
issues:
|
||||
types: [labeled]
|
||||
|
||||
jobs:
|
||||
close-and-put-in-backlog:
|
||||
if: github.event.label.name == 'p:backlog'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const welcomeMessage = `
|
||||
Your issue is now part of the official [backlog](https://github.com/orgs/plantuml/projects/4).
|
||||
For technical reason, it has been put at close state but it's really still open for us.
|
||||
You can by the way go on and put any comment in this issue.
|
||||
|
||||
The main reason why we put this issue in the backlog is that we try to group issues together so that we fix them together, as similar issues often impact the same code area.
|
||||
|
||||
Please be patient, but stay tuned! 🙂`;
|
||||
github.rest.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: welcomeMessage
|
||||
})
|
||||
- uses: peter-evans/close-issue@v3
|
||||
- uses: actions/add-to-project@v0.5.0
|
||||
with:
|
||||
project-url: https://github.com/orgs/plantuml/projects/4
|
||||
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
|
|
@ -0,0 +1,12 @@
|
|||
name: "Pull Request Labeler"
|
||||
on:
|
||||
- pull_request_target
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@v5
|
|
@ -0,0 +1,64 @@
|
|||
name: Native Image
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
release-version:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build_non_win_images:
|
||||
name: 'Build Native Image ${{ matrix.platform }}'
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ macos-latest, windows-latest, ubuntu-latest ]
|
||||
include:
|
||||
- os: 'ubuntu-latest'
|
||||
platform: 'linux-amd64'
|
||||
- os: 'macos-latest'
|
||||
platform: 'darwin-amd64'
|
||||
- os: 'windows-latest'
|
||||
platform: 'win-amd64'
|
||||
runs-on: ${{matrix.os}}
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- uses: graalvm/setup-graalvm@v1
|
||||
with:
|
||||
version: '22.3.1'
|
||||
java-version: '17'
|
||||
components: 'native-image'
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
build/libs
|
||||
build/publications
|
||||
plantuml-asl/build/libs
|
||||
plantuml-bsd/build/libs
|
||||
plantuml-epl/build/libs
|
||||
plantuml-lgpl/build/libs
|
||||
plantuml-mit/build/libs
|
||||
plantuml-gplv2/build/libs
|
||||
key: "libs-${{ github.run_id }}"
|
||||
fail-on-cache-miss: true
|
||||
enableCrossOsArchive: true
|
||||
|
||||
- name: Generate GraalVM configuration
|
||||
run: |
|
||||
mkdir native-image-config-dir
|
||||
echo 'Bob->Alice: Hello' | java -agentlib:native-image-agent=config-output-dir=native-image-config-dir -jar "./build/libs/plantuml-${{ inputs.release-version }}.jar" -tpng -pipe > out.png
|
||||
|
||||
- name: Generate native image
|
||||
run: |
|
||||
native-image -H:ConfigurationFileDirectories=native-image-config-dir --no-fallback --report-unsupported-elements-at-runtime -jar "build/libs/plantuml-${{ inputs.release-version }}.jar" -H:Path="build/libs" -H:Name="plantuml-${{ matrix.platform }}-${{ inputs.release-version }}"
|
||||
|
||||
- name: Cache native image
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: "build/libs/plantuml-${{ matrix.platform }}-*"
|
||||
key: "native-image-${{ matrix.platform }}-${{ github.run_id }}"
|
||||
enableCrossOsArchive: true
|
|
@ -0,0 +1,19 @@
|
|||
name: Testing workflow config action
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
pull_request:
|
||||
release:
|
||||
|
||||
jobs:
|
||||
testing-workflow-config:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: configure workflow
|
||||
uses: ./.github/actions/configure-workflow
|
||||
id: config
|
||||
with:
|
||||
milliseconds: 3000
|
|
@ -7,6 +7,9 @@
|
|||
*.iml
|
||||
out
|
||||
|
||||
#vscode files
|
||||
**/bin/
|
||||
|
||||
# Ant result file
|
||||
plantuml.jar
|
||||
|
||||
|
|
|
@ -0,0 +1,143 @@
|
|||
# 🚧 Building PlantUML
|
||||
|
||||
Thank you for your interest in contributing to PlantUML! This guide will help you build the PlantUML project.
|
||||
|
||||
PlantUML can be built using either [Gradle](#-building-plantuml-with-gradle) or [Ant](#-building-plantuml-with-ant-alternative-method). It's recommended to use Gradle as the primary build tool for this project. You will find instructions for both methods, starting with Gradle.
|
||||
|
||||
## ☕ Java Compatibility and Development Notes
|
||||
|
||||
### PlantUML & Java 8 Compatibility
|
||||
|
||||
We understand the ubiquity and prevalence of Java 8 in numerous environments and infrastructures. Thus, **PlantUML remains steadfastly compatible with Java 8**. Despite the version’s age and the availability of newer releases, we recognize that a substantial number of users and enterprises still depend on Java 8. Therefore, you can confidently run PlantUML in environments where Java 8 is installed, ensuring accessibility and functionality for a wide array of users.
|
||||
|
||||
### Unitary Tests & Dependency Management
|
||||
|
||||
PlantUML consistently retains compatibility with Java 8 in its main library, ensuring a broad usability spectrum. However, the perspective slightly shifts when it comes to our development and testing environments, especially concerning dependency management and Java version utilization.
|
||||
|
||||
In the unitary testing environment:
|
||||
- **Additional Dependencies**: To streamline and simplify unitary tests, we are open to incorporating dependencies on other libraries, ensuring that our testing is thorough, simplified, and efficient.
|
||||
|
||||
This means:
|
||||
- **For Users**: PlantUML is crafted to compile and operate flawlessly with Java 8, offering a stable experience without the imperative of upgrading your Java environment.
|
||||
|
||||
- **For Contributors/Developers**: When engaging in unitary testing, be mindful that it involves additional dependencies for efficient testing processes. However, rest assured that the main library of PlantUML consciously avoids external dependencies to maintain its lightweight and easy-to-integrate nature, while still ensuring compatibility with Java 8.
|
||||
|
||||
### Your Contribution Matters
|
||||
|
||||
Whether you're using an old or a new version of Java, your feedback, contributions, and insights are valuable in enhancing PlantUML. We strive to maintain a balance between adopting new technology and ensuring accessibility for all users, and your experiences aid us in striking this balance effectively.
|
||||
|
||||
## 🎓 Building PlantUML with Gradle
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Ensure that you have the following installed on your system:
|
||||
|
||||
- [Java Development Kit (JDK)](https://jdk.java.net/) - version 8 or newer
|
||||
- [Gradle](https://gradle.org/install/) - version 7.0 or newer
|
||||
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - to clone the repository and manage the version control
|
||||
|
||||
### Getting the Source Code
|
||||
|
||||
Clone the PlantUML repository to your local system. You can clone the repository by running the following command in your terminal or command prompt:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/plantuml/plantuml.git
|
||||
```
|
||||
|
||||
Navigate to the project root directory:
|
||||
|
||||
```sh
|
||||
cd plantuml
|
||||
```
|
||||
|
||||
### Building the Project
|
||||
|
||||
To build the project, run the following command from the project root directory:
|
||||
|
||||
```sh
|
||||
gradle build
|
||||
```
|
||||
|
||||
This command will build the project and create the necessary output files in the `build` directory.
|
||||
|
||||
### Running Tests
|
||||
|
||||
To run the tests included with the project, use the following command:
|
||||
|
||||
```sh
|
||||
gradle test
|
||||
```
|
||||
|
||||
### Creating a JAR File
|
||||
|
||||
To create a JAR file of the PlantUML project, run the following command:
|
||||
|
||||
```sh
|
||||
gradle jar
|
||||
```
|
||||
|
||||
The JAR file will be created in the `build/libs` directory.
|
||||
|
||||
### Contributing
|
||||
|
||||
After successfully building the project, you are ready to start contributing to PlantUML! If you have any changes to contribute, please submit a pull request through the [PlantUML GitHub repository](https://github.com/plantuml/plantuml).
|
||||
|
||||
### Additional Resources
|
||||
|
||||
- [PlantUML Official Website](https://plantuml.com/)
|
||||
- [Gradle User Guide](https://docs.gradle.org/current/userguide/userguide.html)
|
||||
- [Java Development Kit (JDK) Documentation](https://docs.oracle.com/javase/11/)
|
||||
|
||||
### Getting Help
|
||||
|
||||
If you encounter any issues while building the project, feel free to ask for help on the [PlantUML Community Forum](https://forum.plantuml.net/) or open an issue on the [GitHub repository](https://github.com/plantuml/plantuml/issues).
|
||||
|
||||
Thank you for contributing to PlantUML!
|
||||
|
||||
## 🐜 Building PlantUML with Ant (Alternative Method)
|
||||
|
||||
For those who prefer using Ant, or only have access to Ant, we provide a `build.xml` Ant build script as a fallback option to build PlantUML.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Ensure that you have the following installed on your system:
|
||||
|
||||
- [Java Development Kit (JDK)](https://jdk.java.net/) - version 8 or newer
|
||||
- [Apache Ant](https://ant.apache.org/bindownload.cgi) - to run the build script
|
||||
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - to clone the repository and manage the version control
|
||||
|
||||
### Getting the Source Code
|
||||
|
||||
Clone the PlantUML repository to your local system. You can clone the repository by running the following command in your terminal or command prompt:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/plantuml/plantuml.git
|
||||
```
|
||||
|
||||
Navigate to the directory containing the `build.xml`:
|
||||
|
||||
```sh
|
||||
cd plantuml
|
||||
```
|
||||
|
||||
### Building the Project
|
||||
|
||||
To build the project using Ant, run the following command:
|
||||
|
||||
```sh
|
||||
ant
|
||||
```
|
||||
|
||||
If you have Ant set up correctly and the prerequisites are met, the build process should start, and the project will be built based on the instructions in the `build.xml`.
|
||||
|
||||
|
||||
## 📦 About the `graphviz.dat` file
|
||||
|
||||
Within certain PlantUML releases, we've incorporated an embedded, compiled version of GraphViz specifically tailored for Windows. This initiative was taken to streamline the user experience for our Windows users, eliminating the need for them to undertake separate installations or configurations.
|
||||
|
||||
This version of GraphViz is a product of the [graphviz-distributions project](https://github.com/plantuml/graphviz-distributions). For efficient distribution, it is compressed using Brotli and subsequently stored within the [graphviz.dat file](https://github.com/plantuml/plantuml/tree/master/src/net/sourceforge/plantuml/windowsdot).
|
||||
|
||||
If you're not on a Windows platform (e.g., Linux users), you can safely remove this file. However, for Windows users, removing it implies you'd need to install GraphViz independently.
|
||||
|
||||
To streamline our distribution process and given the existing six PlantUML versions resulting from varied licensing, we chose not to double this count to 12 with a dichotomy of versions containing the embedded GraphViz and those without. Instead, all our distributions, barring the LGPL one, come with the embedded GraphViz. For those who prefer a version without the embedded GraphViz, the LGPL distribution would be the go-to choice.
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
cff-version: 1.2.0
|
||||
authors:
|
||||
- family-names: "Roques"
|
||||
given-names: "Arnaud"
|
||||
- family-names: "PlantUML Contributors"
|
||||
title: "PlantUML Software"
|
||||
url: "https://github.com/plantuml/plantuml"
|
|
@ -0,0 +1,99 @@
|
|||
# Contributing to PlantUML
|
||||
|
||||
|
||||
|
||||
## I Have a Question
|
||||
|
||||
> If you want to ask a question, we assume that you have read the available [Documentation](https://plantuml.com).
|
||||
|
||||
Before you ask a question, it is best to search for
|
||||
existing issues [on github](https://github.com/plantuml/plantuml/issues)
|
||||
or on [the online forum](https://forum.plantuml.net)
|
||||
that might help you.
|
||||
|
||||
In case you have found a suitable issue and still need clarification, you can write your question in this issue.
|
||||
It is also advisable to search the internet for answers first.
|
||||
|
||||
If you then still feel the need to ask a question and need clarification, we recommend the following:
|
||||
|
||||
- Open an issue [on github](https://github.com/plantuml/plantuml/issues/new) or on the
|
||||
[the online forum](https://forum.plantuml.net/ask).
|
||||
- Provide as much context as you can about what you're running into.
|
||||
- Provide a short example that shows the issue.
|
||||
- Provide which version you are using and if you are using PlantUML through a plugin.
|
||||
|
||||
We will then take care of the issue as soon as possible.
|
||||
|
||||
|
||||
## I Want To Contribute
|
||||
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
#### Before Submitting a Bug Report
|
||||
|
||||
A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.
|
||||
|
||||
- Make sure that you are using the latest version.
|
||||
- Also make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue.
|
||||
|
||||
|
||||
#### How Do I Submit a Good Bug Report?
|
||||
|
||||
We use GitHub issues to track bugs and errors. If you run into an issue with the project:
|
||||
|
||||
Before you ask a question, it is best to search for
|
||||
existing issues [on github](https://github.com/plantuml/plantuml/issues)
|
||||
or on [the online forum](https://forum.plantuml.net)
|
||||
|
||||
|
||||
- Open an issue [on github](https://github.com/plantuml/plantuml/issues)
|
||||
or on [the online forum](https://forum.plantuml.net).
|
||||
- Explain the behavior you would expect and the actual behavior.
|
||||
- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code.
|
||||
- For good bug reports you should isolate the problem and create a reduced test case.
|
||||
|
||||
|
||||
### Suggesting Enhancements
|
||||
|
||||
This section guides you through submitting an enhancement suggestion for
|
||||
PlantUML, **including completely new features and minor improvements to existing functionality**. Following
|
||||
these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.
|
||||
|
||||
#### Before Submitting an Enhancement
|
||||
|
||||
- Make sure that you are using the latest version.
|
||||
- Read the [documentation](https://plantuml.com) carefully and find out if the functionality is already covered, maybe by an individual configuration.
|
||||
- Perform some search [on github issue](https://github.com/plantuml/plantuml/issues) or [on the online forum](https://forum.plantuml.net) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.
|
||||
- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library.
|
||||
|
||||
#### How Do I Submit a Good Enhancement Suggestion?
|
||||
|
||||
- Use a **clear and descriptive title** for the issue to identify the suggestion.
|
||||
- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.
|
||||
- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.
|
||||
- You may want to **include some existing diagram examples** that would help to understand the suggestion.
|
||||
- **Explain why this enhancement would be useful** to most PlantUML users. You may also want to point out the other projects that solved it better and which could serve as inspiration.
|
||||
|
||||
|
||||
### Your First Code Contribution
|
||||
<!-- TODO
|
||||
include Setup of env, IDE and typical getting started instructions?
|
||||
|
||||
-->
|
||||
|
||||
### Improving The Documentation
|
||||
<!-- TODO
|
||||
Updating, improving and correcting the documentation
|
||||
|
||||
-->
|
||||
|
||||
### Improving non regression testing
|
||||
<!-- TODO
|
||||
-->
|
||||
|
||||
## Styleguides
|
||||
### Commit Messages
|
||||
<!-- TODO
|
||||
|
||||
-->
|
|
@ -0,0 +1,50 @@
|
|||
# Conventional Commit
|
||||
|
||||
IMPORTANT: *This is a draft*
|
||||
|
||||
The [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/#summary) is a lightweight
|
||||
convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history.
|
||||
|
||||
|
||||
### Commit Message Format
|
||||
Each commit message consists of a **header**, an **optional URL list** , an **optional body** and an **optional
|
||||
footer**.
|
||||
The header has a
|
||||
special format that includes a **type**, a **scope** and a **subject**:
|
||||
|
||||
```
|
||||
<type>[optional scope]: <description>
|
||||
[optional URL list]
|
||||
[optional body]
|
||||
[optional footer(s)]
|
||||
```
|
||||
|
||||
The **header** is mandatory and the **scope** of the header is optional.
|
||||
|
||||
The **optional URL list** contains some links to github issue or to the forum and documents which issues
|
||||
or features is concerned by this commit.
|
||||
|
||||
|
||||
### Type
|
||||
Must be one of the following:
|
||||
|
||||
* **feat**: A new feature
|
||||
* **fix**: A bug fix
|
||||
* **docs**: Documentation only changes
|
||||
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
|
||||
semi-colons, etc)
|
||||
* **refactor**: A code change that neither fixes a bug nor adds a feature
|
||||
* **perf**: A code change that improves performance
|
||||
* **test**: Adding missing or correcting existing test
|
||||
* **chore**: Changes to the build process or auxiliary tools and libraries such as documentation
|
||||
generation
|
||||
|
||||
### Scope
|
||||
|
||||
### Subject
|
||||
The subject contains succinct description of the change:
|
||||
|
||||
* use the imperative, present tense: "change" not "changed" nor "changes"
|
||||
* don't capitalize first letter
|
||||
* no dot (.) at the end
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
FROM alpine:latest AS loader
|
||||
|
||||
ARG PLANTUML_VERSION
|
||||
|
||||
RUN apk add --no-cache \
|
||||
wget \
|
||||
ca-certificates
|
||||
|
||||
RUN wget \
|
||||
"https://github.com/plantuml/plantuml/releases/download/${PLANTUML_VERSION}/plantuml-${PLANTUML_VERSION#?}.jar" \
|
||||
-O /opt/plantuml.jar
|
||||
|
||||
FROM eclipse-temurin:17-jre-jammy
|
||||
|
||||
ENV LANG en_US.UTF-8
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install --no-install-recommends -y \
|
||||
graphviz \
|
||||
fonts-dejavu \
|
||||
&& apt-get autoremove \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=loader /opt/plantuml.jar /opt/plantuml.jar
|
||||
|
||||
WORKDIR /data
|
||||
|
||||
ENTRYPOINT ["java", "-jar", "/opt/plantuml.jar"]
|
||||
CMD ["-version"]
|
117
README.md
117
README.md
|
@ -1,6 +1,8 @@
|
|||
PlantUML
|
||||
========
|
||||
# 🌱 PlantUML
|
||||
|
||||
Generate UML diagrams from textual descriptions.
|
||||
|
||||
[![Discord server](https://img.shields.io/discord/1083727021328306236?color=5865F2&logo=discord&logoColor=white)](https://discord.gg/sXhzexAQGh)
|
||||
[![GitHub Sponsors](https://img.shields.io/github/sponsors/plantuml?logo=github)](https://github.com/sponsors/plantuml/)
|
||||
[![GitHub Org's stars](https://img.shields.io/github/stars/plantuml)](https://github.com/plantuml/plantuml/stargazers/)
|
||||
[![GitHub watchers](https://img.shields.io/github/watchers/plantuml/plantuml)](https://github.com/plantuml/plantuml/watchers/)
|
||||
|
@ -15,47 +17,92 @@ PlantUML
|
|||
[![Release (latest by date)](https://img.shields.io/github/v/release/plantuml/plantuml)](https://github.com/plantuml/plantuml/releases/latest)
|
||||
[![Release Date](https://img.shields.io/github/release-date/plantuml/plantuml?color=blue)](https://github.com/plantuml/plantuml/releases/latest)
|
||||
[![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/plantuml/plantuml/latest)](https://github.com/plantuml/plantuml/commits/)
|
||||
[![javadoc](https://javadoc.io/badge2/net.sourceforge.plantuml/plantuml-gplv2/javadoc.svg)](https://javadoc.io/doc/net.sourceforge.plantuml/plantuml-gplv2)
|
||||
|
||||
[![Pre-release (latest by date)](https://img.shields.io/github/v/release/plantuml/plantuml?color=chocolate&include_prereleases)](https://github.com/plantuml/plantuml/releases/tag/snapshot)
|
||||
[![Pre-release Date](https://img.shields.io/github/release-date-pre/plantuml/plantuml?color=chocolate)](https://github.com/plantuml/plantuml/releases/tag/snapshot)
|
||||
[![GitHub last commit](https://img.shields.io/github/last-commit/plantuml/plantuml?color=chocolate)](https://github.com/plantuml/plantuml/commits/)
|
||||
[![CI](https://github.com/plantuml/plantuml/actions/workflows/ci.yml/badge.svg?color=chocolate)](https://github.com/plantuml/plantuml/actions/workflows/ci.yml)
|
||||
[![snapshot javadoc](https://img.shields.io/badge/javadoc-snapshot-chocolate.svg?logo=github)](https://plantuml.github.io/plantuml/)
|
||||
|
||||
Generate UML diagram from textual description
|
||||
> [!IMPORTANT]
|
||||
> [PlantUML is **not** affected by the log4j vulnerability.](https://github.com/plantuml/plantuml/issues/826)
|
||||
|
||||
[PlantUML is **not** affected by the log4j vulnerability.](https://github.com/plantuml/plantuml/issues/826)
|
||||
## ℹ️ About
|
||||
|
||||
PlantUML is a component that allows to quickly write:
|
||||
PlantUML is a component that allows you to create various UML diagrams through simple textual descriptions. From sequence diagrams to deployment diagrams and beyond, PlantUML provides an easy way to create visual representations of complex systems.
|
||||
|
||||
* [Sequence diagram](http://plantuml.com/sequence-diagram),
|
||||
* [Use case diagram](http://plantuml.com/use-case-diagram),
|
||||
* [Class diagram](http://plantuml.com/class-diagram),
|
||||
* [Object diagram](http://plantuml.com/object-diagram),
|
||||
* [Activity diagram](http://plantuml.com/activity-diagram-beta) (here is [the legacy syntax](http://plantuml.com/activity-diagram-legacy)),
|
||||
* [Component diagram](http://plantuml.com/component-diagram),
|
||||
* [Deployment diagram](http://plantuml.com/deployment-diagram),
|
||||
* [State diagram](http://plantuml.com/state-diagram),
|
||||
* [Timing diagram](http://plantuml.com/timing-diagram).
|
||||
|
||||
The following non-UML diagrams are also supported:
|
||||
* [JSON data](http://plantuml.com/json)
|
||||
* [YAML data](http://plantuml.com/yaml)
|
||||
* [Network diagram (nwdiag)](http://plantuml.com/nwdiag)
|
||||
* [Wireframe graphical interface or UI mockups (salt)](http://plantuml.com/salt)
|
||||
* [Archimate diagram](http://plantuml.com/archimate-diagram)
|
||||
* [Specification and Description Language (SDL)](http://plantuml.com/activity-diagram-beta#sdl)
|
||||
* [Ditaa diagram](http://plantuml.com/ditaa)
|
||||
* [Gantt diagram](http://plantuml.com/gantt-diagram)
|
||||
* [MindMap diagram](http://plantuml.com/mindmap-diagram)
|
||||
* [Work Breakdown Structure diagram (WBS)](http://plantuml.com/wbs-diagram)
|
||||
* [Mathematic with AsciiMath or JLaTeXMath notation](http://plantuml.com/ascii-math)
|
||||
* [Entity Relationship diagram (IE/ER)](http://plantuml.com/ie-diagram)
|
||||
### 🗃️ Supported Diagram Types
|
||||
|
||||
Furthermore:
|
||||
* [Hyperlinks and tooltips](http://plantuml.com/link)
|
||||
* [Creole](http://plantuml.com/creole): rich text, emoticons, unicode, icons
|
||||
* [OpenIconic icons](http://plantuml.com/openiconic)
|
||||
* [Sprite icons](http://plantuml.com/sprite)
|
||||
* [AsciiMath mathematical expressions](http://plantuml.com/ascii-math)
|
||||
- 🧩 UML Diagrams
|
||||
- [Sequence diagram](http://plantuml.com/sequence-diagram)
|
||||
- [Use case diagram](http://plantuml.com/use-case-diagram)
|
||||
- [Class diagram](http://plantuml.com/class-diagram)
|
||||
- [Object diagram](http://plantuml.com/object-diagram)
|
||||
- [Activity diagram](http://plantuml.com/activity-diagram-beta)
|
||||
- [Legacy syntax](http://plantuml.com/activity-diagram-legacy)
|
||||
- [Component diagram](http://plantuml.com/component-diagram)
|
||||
- [Deployment diagram](http://plantuml.com/deployment-diagram)
|
||||
- [State diagram](http://plantuml.com/state-diagram)
|
||||
- [Timing diagram](http://plantuml.com/timing-diagram)
|
||||
- 📈 Non-UML Diagrams
|
||||
- [JSON data](http://plantuml.com/json)
|
||||
- [YAML data](http://plantuml.com/yaml)
|
||||
- [EBNF (Extended Backus-Naur Form)](http://plantuml.com/ebnf)
|
||||
- [Regex (Regular Expression)](http://plantuml.com/regex)
|
||||
- [Network diagram (nwdiag)](http://plantuml.com/nwdiag)
|
||||
- [Salt (Wireframe graphical interface or UI Mockups)](http://plantuml.com/salt)
|
||||
- [Archimate diagram](http://plantuml.com/archimate-diagram)
|
||||
- [SDL (Specification and Description Language)](http://plantuml.com/activity-diagram-beta#sdl)
|
||||
- [Ditaa diagram](http://plantuml.com/ditaa)
|
||||
- [Gantt diagram](http://plantuml.com/gantt-diagram)
|
||||
- [Chronology diagram](http://plantuml.com/chronology-diagram)
|
||||
- [MindMap diagram](http://plantuml.com/mindmap-diagram)
|
||||
- [WBS (Work Breakdown Structure)](http://plantuml.com/wbs-diagram)
|
||||
- [Mathematical Notations (AsciiMath, JLaTeXMath)](http://plantuml.com/ascii-math)
|
||||
- Entity Relationship (ER) diagram
|
||||
- [Information Engineering (IE) diagram](http://plantuml.com/ie-diagram)
|
||||
- [Entity Relationship (ER) diagram (Chen's notation)](http://alphadoc.plantuml.com/doc/markdown/en/er-diagram)
|
||||
|
||||
### 📣 Additional Features
|
||||
|
||||
- [Hyperlinks and tooltips](http://plantuml.com/link)
|
||||
- [Rich text (Creole) with emoticons, unicode, and icons](http://plantuml.com/creole)
|
||||
- [OpenIconic icons](http://plantuml.com/openiconic)
|
||||
- [Sprite icons](http://plantuml.com/sprite)
|
||||
|
||||
### 📖 Learn More
|
||||
|
||||
For a more detailed overview, visit [PlantUML Official Website](https://plantuml.com/).
|
||||
|
||||
## 🚀 Getting Started
|
||||
|
||||
Whether you're looking to use PlantUML as a standalone application or as a component in your own project, getting started is simple. Check out the official [PlantUML setup guide](https://plantuml.com/starting) for instructions on how to set up PlantUML on your system.
|
||||
|
||||
## ⚙️ Building from Source
|
||||
|
||||
To build PlantUML from source, you'll need to have certain prerequisites installed and follow a series of steps outlined in our build guide. Find detailed instructions in our [BUILDING.md](https://github.com/plantuml/plantuml/blob/master/BUILDING.md) file.
|
||||
|
||||
## 🧱 Contributing
|
||||
|
||||
PlantUML is an open-source project, and we welcome contributions of all kinds. Whether you're helping us fix bugs, improve the docs, or spread the word, we appreciate your support. See our [contributing guide](CONTRIBUTING.md) for more information on how to get started.
|
||||
|
||||
For comprehensive and detailed documentation on using PlantUML, refer to the [official Javadoc, available here](https://plantuml.github.io/plantuml/). Please note that this documentation is a work in progress and may not be complete.
|
||||
|
||||
## 🧑🤝🧑 Support and Community
|
||||
|
||||
- [GitHub issues](https://github.com/plantuml/plantuml/issues/)
|
||||
- [Community Forum](https://forum.plantuml.net/)
|
||||
|
||||
## 📃 License
|
||||
|
||||
PlantUML is licensed under several licenses; you can choose the one that suits you best:
|
||||
|
||||
- [GPL license](https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
- [LGPL license](https://www.gnu.org/licenses/lgpl-3.0.html)
|
||||
- [Apache license](https://www.apache.org/licenses/LICENSE-2.0)
|
||||
- [Eclipse Public license](https://www.eclipse.org/legal/epl-2.0/)
|
||||
- [MIT license](https://opensource.org/licenses/MIT)
|
||||
|
||||
For more information, please refer to the [PlantUML license FAQ](https://plantuml.com/en/faq#ddbc9d04378ee462) to help determine which license is appropriate for your use case.
|
||||
|
||||
To know more about PlantUML, please visit https://plantuml.com/
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
# Historical Code Archive
|
||||
|
||||
This document catalogs code that was previously part of PlantUML but has since been deprecated and removed due to its lack of use.
|
||||
It serves as a historical reference to ensure we remember and understand past decisions.
|
||||
|
||||
- [logo language](https://github.com/plantuml/plantuml/tree/v1.2023.12/src/net/sourceforge/plantuml/logo)
|
||||
- [basic language](https://github.com/plantuml/plantuml/tree/v1.2023.12/src/net/sourceforge/plantuml/jasic)
|
||||
- [mjpeg export](https://github.com/plantuml/plantuml/tree/v1.2023.12/src/net/sourceforge/plantuml/mjpeg)
|
||||
- [animation](https://github.com/plantuml/plantuml/tree/v1.2023.12/src/net/sourceforge/plantuml/anim)
|
||||
- [ditherer quantization](https://github.com/plantuml/plantuml/tree/v1.2023.12/src/net/sourceforge/plantuml/quantization)
|
||||
- [syntax suggestion](https://github.com/plantuml/plantuml/blob/v1.2023.12/src/net/sourceforge/plantuml/syntax/SyntaxChecker.java)
|
||||
- [a first try of GraphViz abstraction](https://github.com/plantuml/plantuml/blob/v1.2023.12/src/net/sourceforge/plantuml/posimo)
|
|
@ -4,12 +4,16 @@
|
|||
// also supported is to build first, with java17, then switch the java version, and run the test with java8:
|
||||
// gradle clean build -x javaDoc -x test
|
||||
// gradle test
|
||||
println("Running build.gradle.kts")
|
||||
println(project.version)
|
||||
|
||||
val javacRelease = (project.findProperty("javacRelease") ?: "8") as String
|
||||
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
signing
|
||||
// id("com.adarshr.test-logger") version "3.2.0"
|
||||
}
|
||||
|
||||
group = "net.sourceforge.plantuml"
|
||||
|
@ -24,12 +28,23 @@ java {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.apache.ant:ant:1.10.12")
|
||||
testImplementation("org.assertj:assertj-core:3.22.0")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.8.2")
|
||||
compileOnly("org.apache.ant:ant:1.10.14")
|
||||
|
||||
testImplementation("io.github.glytching:junit-extensions:2.6.0")
|
||||
testImplementation("org.assertj:assertj-core:3.25.3")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.xmlunit:xmlunit-core:2.9.+")
|
||||
if (JavaVersion.current().isJava8) {
|
||||
testImplementation("org.mockito:mockito-core:4.+")
|
||||
testImplementation("org.mockito:mockito-junit-jupiter:4.+")
|
||||
} else {
|
||||
testImplementation("org.mockito:mockito-core:5.+")
|
||||
testImplementation("org.mockito:mockito-junit-jupiter:5.+")
|
||||
}
|
||||
testImplementation("org.scilab.forge:jlatexmath:1.0.7")
|
||||
"pdfRuntimeOnly"("org.apache.xmlgraphics:fop:2.7")
|
||||
"pdfRuntimeOnly"("org.apache.xmlgraphics:batik-all:1.14")
|
||||
|
||||
"pdfRuntimeOnly"("org.apache.xmlgraphics:fop:2.9")
|
||||
"pdfRuntimeOnly"("org.apache.xmlgraphics:batik-all:1.17")
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
@ -89,6 +104,11 @@ publishing {
|
|||
publications.create<MavenPublication>("maven") {
|
||||
from(components["java"])
|
||||
pom {
|
||||
name.set("PlantUML")
|
||||
description.set("PlantUML is a component that allows to quickly write diagrams from text.")
|
||||
groupId = project.group as String
|
||||
artifactId = project.name
|
||||
version = project.version as String
|
||||
url.set("https://plantuml.com/")
|
||||
licenses {
|
||||
license {
|
||||
|
@ -109,19 +129,16 @@ publishing {
|
|||
url.set("https://github.com/plantuml/plantuml")
|
||||
}
|
||||
}
|
||||
suppressAllPomMetadataWarnings()
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "fstest"
|
||||
url = uri(layout.buildDirectory.dir("repo"))
|
||||
}
|
||||
maven {
|
||||
name = "OSSRH"
|
||||
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
|
||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
username = System.getenv("MAVEN_USERNAME")
|
||||
password = System.getenv("MAVEN_PASSWORD")
|
||||
username = System.getenv("OSSRH_USERNAME")
|
||||
password = System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -142,6 +159,10 @@ tasks.withType<Javadoc>().configureEach {
|
|||
}
|
||||
|
||||
tasks.test {
|
||||
doFirst {
|
||||
println("Java Home:" + System.getProperty("java.home"));
|
||||
println("Java Version: " + System.getProperty("java.version"));
|
||||
}
|
||||
useJUnitPlatform()
|
||||
testLogging.showStandardStreams = true
|
||||
}
|
||||
|
|
69
build.xml
69
build.xml
|
@ -1,35 +1,53 @@
|
|||
<!--
|
||||
========================================================================
|
||||
PlantUML : a free UML diagram generator
|
||||
========================================================================
|
||||
(C) Copyright 2009-2017, Arnaud Roques
|
||||
|
||||
Project Info: http://plantuml.sourceforge.net
|
||||
|
||||
This file is part of PlantUML.
|
||||
|
||||
Original Author: Arnaud Roques
|
||||
Script Author: Ilya V. Paramonov
|
||||
<!--
|
||||
========================================================================
|
||||
PlantUML Build File
|
||||
========================================================================
|
||||
Product: PlantUML - A free UML diagram generator
|
||||
Project Info: https://plantuml.com
|
||||
|
||||
Copyright Information:
|
||||
(C) Copyright 2009-2023, Arnaud Roques
|
||||
|
||||
Contributors:
|
||||
- Original Author: Arnaud Roques
|
||||
- Script Author: Ilya V. Paramonov
|
||||
|
||||
============================== Description ==============================
|
||||
|
||||
This build file offers an alternative method to build PlantUML.
|
||||
|
||||
While PlantUML is typically built using Gradle, this Ant build script
|
||||
provides a fallback option for those who prefer or only have access to
|
||||
Ant.
|
||||
|
||||
Usage:
|
||||
To build using this file, navigate to the directory containing this
|
||||
build.xml and run "ant" in the command line. For more detailed build
|
||||
instructions and requirements, refer to:
|
||||
https://github.com/plantuml/plantuml/blob/master/BUILDING.md
|
||||
========================================================================
|
||||
-->
|
||||
<project name="PlantUML" default="dist" basedir=".">
|
||||
<description>
|
||||
PlantUML Build File
|
||||
</description>
|
||||
|
||||
<!-- Compile source code and copy necessary files -->
|
||||
<target name="compile">
|
||||
<!-- Prepare the build directory -->
|
||||
<delete dir="build" />
|
||||
<mkdir dir="build" />
|
||||
<javac target="1.7" source="1.7" srcdir="src" destdir="build" debug="on" />
|
||||
<copy file="src/net/sourceforge/plantuml/version/logo.png"
|
||||
todir="build/net/sourceforge/plantuml/version" />
|
||||
<copy file="src/net/sourceforge/plantuml/version/favicon.png"
|
||||
todir="build/net/sourceforge/plantuml/version" />
|
||||
<copy todir="build/net/sourceforge/plantuml/version">
|
||||
<fileset dir="src/net/sourceforge/plantuml/version">
|
||||
<include name="*.png" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<!-- Compile Java sources -->
|
||||
<javac target="1.8" source="1.8" srcdir="src" destdir="build" debug="on" />
|
||||
|
||||
<!-- Copy resources. Grouped by type and directory for better clarity -->
|
||||
<copy todir="build/net/sourceforge/plantuml/version">
|
||||
<fileset dir="src/net/sourceforge/plantuml/version">
|
||||
<include name="*.png" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<copy todir="build/net/sourceforge/plantuml/openiconic/data">
|
||||
<fileset dir="src/net/sourceforge/plantuml/openiconic/data">
|
||||
<include name="*.txt" />
|
||||
|
@ -95,9 +113,14 @@
|
|||
</copy>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Create distribution JAR and clean up -->
|
||||
<target name="dist" depends="compile">
|
||||
<!-- Prepare the distribution directory -->
|
||||
<delete dir="dist" />
|
||||
<mkdir dir="dist" />
|
||||
|
||||
<!-- Create JAR with required attributes in the manifest -->
|
||||
<jar jarfile="plantuml.jar" basedir="build">
|
||||
<manifest>
|
||||
<attribute name="Automatic-Module-Name" value="net.sourceforge.plantuml" />
|
||||
|
@ -105,6 +128,8 @@
|
|||
<attribute name="Class-Path" value="elk-full.jar avalon-framework-4.2.0.jar batik-all-1.7.jar commons-io-1.3.1.jar commons-logging-1.0.4.jar fop.jar xml-apis-ext-1.3.04.jar xmlgraphics-commons-1.4.jar jlatexmath-minimal-1.0.3.jar jlm_cyrillic.jar jlm_greek.jar vizjs.jar j2v8_win32_x86_64-3.1.6.jar j2v8_linux_x86_64-3.1.6.jar j2v8_macosx_x86_64-3.1.6.jar ditaa0_9.jar" />
|
||||
</manifest>
|
||||
</jar>
|
||||
|
||||
<!-- Clean up the build and distribution directories -->
|
||||
<delete dir="build" />
|
||||
<delete dir="dist" />
|
||||
</target>
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
# PlantUML packages and PlantUML on the _[most popular]_ GNU/Linux distributions
|
||||
|
||||
## PlantUML packages
|
||||
|
||||
### GitHub _(The main PlantUML package repository)_
|
||||
[![GitHub Release](https://img.shields.io/github/v/release/plantuml/plantuml)](https://github.com/plantuml/plantuml/releases/latest)
|
||||
|
||||
### Chocolatey
|
||||
[![Chocolatey Version](https://img.shields.io/chocolatey/v/plantuml)](https://community.chocolatey.org/packages/plantuml)
|
||||
|
||||
### Docker
|
||||
[![Docker Image Version](https://img.shields.io/docker/v/plantuml/plantuml)](https://github.com/plantuml/plantuml/pkgs/container/plantuml)
|
||||
|
||||
### Homebrew
|
||||
[![homebrew version](https://img.shields.io/homebrew/v/plantuml)](https://formulae.brew.sh/formula/plantuml)
|
||||
|
||||
### Maven
|
||||
[![Maven Central Version](https://img.shields.io/maven-central/v/net.sourceforge.plantuml/plantuml)](https://mvnrepository.com/artifact/net.sourceforge.plantuml/plantuml)
|
||||
|
||||
### Scoop
|
||||
[![Scoop Version](https://img.shields.io/scoop/v/plantuml?bucket=extras)](https://scoop.sh/#/apps?q=plantuml)
|
||||
|
||||
|
||||
|
||||
## PlantUML on the _[most popular]_ GNU/Linux distributions
|
||||
|
||||
### [Alpine Linux](https://www.alpinelinux.org)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![Alpine Linux](https://img.shields.io/badge/Alpine_Linux-%230D597F.svg?style=for-the-badge&logo=alpine-linux&logoColor=white) |
|
||||
| Last PlantUML version | |
|
||||
| Link | https://pkgs.alpinelinux.org/packages?name=plantuml&branch=edge |
|
||||
| Specificity | |
|
||||
|
||||
### [Archlinux](https://archlinux.org)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![Arch](https://img.shields.io/badge/Arch%20Linux-1793D1?logo=arch-linux&logoColor=fff&style=for-the-badge) |
|
||||
| Last PlantUML version | [![Arch Linux package](https://img.shields.io/archlinux/v/extra/any/plantuml)](https://archlinux.org/packages/extra/any/plantuml/) |
|
||||
| Link | https://archlinux.org/packages/extra/any/plantuml/ |
|
||||
| Specificity | |
|
||||
|
||||
### [Debian](https://www.debian.org)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![Debian](https://img.shields.io/badge/Debian-D70A53?style=for-the-badge&logo=debian&logoColor=white) |
|
||||
| Last PlantUML version | [![Debian package](https://img.shields.io/debian/v/plantuml)](https://salsa.debian.org/debian/plantuml) |
|
||||
| Link | https://salsa.debian.org/debian/plantuml |
|
||||
| Specificity | https://salsa.debian.org/debian/plantuml/-/tree/master/debian |
|
||||
|
||||
### [Fedora](https://fedoraproject.org)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![Fedora](https://img.shields.io/badge/Fedora-294172?style=for-the-badge&logo=fedora&logoColor=white) |
|
||||
| Last PlantUML version | [![Fedora package](https://img.shields.io/fedora/v/plantuml)](https://src.fedoraproject.org/rpms/plantuml) |
|
||||
| Link | https://src.fedoraproject.org/rpms/plantuml |
|
||||
| Specificity | |
|
||||
|
||||
### [Gentoo](https://www.gentoo.org/)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![Gentoo](https://img.shields.io/badge/Gentoo-54487A?style=for-the-badge&logo=gentoo&logoColor=white) |
|
||||
| Last PlantUML version | |
|
||||
| Link | https://packages.gentoo.org/packages/media-gfx/plantuml |
|
||||
| Specificity | |
|
||||
|
||||
### [openSUSE](https://www.opensuse.org)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![openSUSE](https://img.shields.io/badge/openSUSE-%2364B345?style=for-the-badge&logo=openSUSE&logoColor=white) |
|
||||
| Last PlantUML version | |
|
||||
| Link | https://build.opensuse.org/search?search_text=plantuml |
|
||||
| Specificity | https://build.opensuse.org/package/show/Java:packages/plantuml <br> https://build.opensuse.org/package/show/home:mnhauke/plantuml |
|
||||
|
||||
### [SUSE](https://www.suse.com)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![Suse](https://img.shields.io/badge/SUSE-0C322C?style=for-the-badge&logo=SUSE&logoColor=white) |
|
||||
| Last PlantUML version | |
|
||||
| Link | https://packagehub.suse.com/packages/plantuml/ |
|
||||
| Specificity | |
|
||||
|
||||
### [Ubuntu](https://ubuntu.com)
|
||||
| Type | Link |
|
||||
| ------- | ---- |
|
||||
| Distribution | ![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white) |
|
||||
| Last PlantUML version | [![Ubuntu Package Version](https://img.shields.io/ubuntu/v/plantuml)](https://packages.ubuntu.com/search?keywords=plantuml&searchon=names&suite=all§ion=all) |
|
||||
| Link | https://packages.ubuntu.com/search?keywords=plantuml&searchon=names&suite=all§ion=all |
|
||||
| Specificity | |
|
||||
|
||||
|
||||
# Reference and acknowledgement
|
||||
- https://en.wikipedia.org/wiki/List_of_software_package_management_systems
|
||||
- https://en.wikipedia.org/wiki/List_of_Linux_distributions
|
||||
- https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file
|
||||
- https://shields.io
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
# 🌱 PlantUML Support
|
||||
|
||||
Thank you for using PlantUML! If you need assistance or have questions, please refer to the following resources:
|
||||
|
||||
## Where to Get Support
|
||||
|
||||
### GitHub Issues
|
||||
|
||||
- For reporting bugs or issues, open an [issue on GitHub](https://github.com/plantuml/plantuml/issues).
|
||||
- When submitting an issue, provide clear steps to reproduce the problem and include your PlantUML version.
|
||||
- Before creating a new issue, search the existing ones on [GitHub](https://github.com/plantuml/plantuml/issues) to see if your problem has already been addressed.
|
||||
|
||||
### Community Forum
|
||||
|
||||
- Visit our [Community Forum](https://forum.plantuml.net/) for discussions, FAQs, and community support.
|
||||
- Check for existing threads to see if your question has already been answered.
|
||||
|
||||
### Discord
|
||||
|
||||
- Feel free to ask questions on our official [Discord](https://discord.com/invite/sXhzexAQGh) server.
|
||||
|
||||
## Asking Questions
|
||||
|
||||
If you have a question about using PlantUML:
|
||||
|
||||
- Search through the [official documentation](https://plantuml.com/) and available resources before asking.
|
||||
- Feel free to ask questions on the GitHub issues or the Community Forum after performing initial research.
|
||||
- Provide as much detail as possible when asking questions to receive effective assistance.
|
||||
|
||||
## Contributing
|
||||
|
||||
We welcome contributions to PlantUML! If you're interested in contributing:
|
||||
|
||||
### Reporting Bugs
|
||||
|
||||
- Ensure you're using the latest version and search for existing issues on GitHub or the Community Forum before reporting a bug.
|
||||
- Submit a bug report on [GitHub](https://github.com/plantuml/plantuml/issues) with clear steps to reproduce and your environment details.
|
||||
|
||||
### Suggesting Enhancements
|
||||
|
||||
- Search existing enhancement suggestions on GitHub or the Community Forum before submitting a new one.
|
||||
- Submit your enhancement suggestion with a clear title and detailed description on [GitHub](https://github.com/plantuml/plantuml/issues).
|
||||
|
||||
### Your First Code Contribution
|
||||
|
||||
- Review our [contributing guide](CONTRIBUTING.md) to get started with code contributions.
|
||||
- If you're new to contributing, consider tackling issues labeled as 'good first issue' or 'help wanted'.
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- For comprehensive documentation, refer to the [official PlantUML Javadoc](https://plantuml.github.io/plantuml/).
|
||||
- Explore the [GitHub issues](https://github.com/plantuml/plantuml/issues/) for discussions and known problems.
|
||||
|
||||
## 🧑🤝🧑 Community Support
|
||||
|
||||
Feel free to engage with the PlantUML community on GitHub and the Community Forum.
|
||||
|
||||
Thank you for being a part of the PlantUML community!
|
|
@ -0,0 +1,81 @@
|
|||
# Testing PlantUML
|
||||
|
||||
## Prerequisites
|
||||
|
||||
See the [Building page](../BUILDING.md) and especilay the paragraph [Building PlantUML with Gradle](../BUILDING.md#building-plantuml-with-gradle).
|
||||
|
||||
## Running Tests
|
||||
|
||||
### Run all tests, for all licences
|
||||
|
||||
To run the tests included with the project, use the following command:
|
||||
|
||||
```sh
|
||||
gradle test
|
||||
```
|
||||
|
||||
### Run a specific test, for only one licence
|
||||
|
||||
Comment those lines on [`settings.gradle.kts`](../settings.gradle.kts):
|
||||
|
||||
https://github.com/plantuml/plantuml/blob/a327d636a7fcc7f05a88b796a2838da16e2ba3e3/settings.gradle.kts#L12-L16
|
||||
|
||||
Then you can run a specific test _(e.g. the `aTestClass` Class)_:
|
||||
```sh
|
||||
gradle test --tests aTestClass
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
After successfully building and testing the project, you are ready to start [contributing](../CONTRIBUTING.md) to PlantUML!
|
||||
If you have any changes to contribute, please submit a pull request through the [PlantUML GitHub repository](https://github.com/plantuml/plantuml).
|
||||
|
||||
|
||||
## Test Directory Architecture
|
||||
|
||||
- [test/](../test)
|
||||
- [com/plantuml/wasm](../test/com/plantuml/wasm)
|
||||
- [net/sourceforge/plantuml](../test/net/sourceforge/plantuml)
|
||||
- [nonreg](../test/nonreg)
|
||||
|
||||
```mermaid
|
||||
%%{ init : { "flowchart" : { "curve" : "stepBefore" }}}%%
|
||||
graph LR
|
||||
T["test/"]
|
||||
T -->|"Unit Test\n(of src/com/plantuml/api/cheerpj)"| W["com/plantuml/wasm"]
|
||||
T -->|"Unit Test\n(of src/net/sourceforge/plantuml)"| U["net/sourceforge/plantuml"]
|
||||
T -->|"Non-regression Test"| N[nonreg]
|
||||
```
|
||||
|
||||
## Additional Resources
|
||||
|
||||
### Gradle
|
||||
- site: [Gradle](https://gradle.org)
|
||||
- doc: [Gradle User Guide](https://docs.gradle.org/current/userguide/userguide.html)
|
||||
- src: [:octocat:Gradle](https://github.com/gradle/gradle)
|
||||
|
||||
### Gradle Plugins
|
||||
- site: [Gradle Plugins Search](https://plugins.gradle.org)
|
||||
- A "gradle test logger plugin"
|
||||
- src: [:octocat:radarsh/gradle-test-logger-plugin](https://github.com/radarsh/gradle-test-logger-plugin)
|
||||
|
||||
### JUnit
|
||||
- site: [JUnit5](https://junit.org/junit5/)
|
||||
- doc: [JUnit User Guide](https://junit.org/junit5/docs/current/user-guide/)
|
||||
- src: [:octocat:JUnit-team](https://github.com/junit-team)
|
||||
|
||||
### JUnit extensions
|
||||
- doc: [JUnit extensions](https://junit.org/junit5/docs/current/user-guide/#extensions)
|
||||
- The "Glytching" JUnit extensions
|
||||
- doc: [Glytching JUnit extensions](https://glytching.github.io/junit-extensions/)
|
||||
- doc: [`randomBeans` doc](https://glytching.github.io/junit-extensions/randomBeans)
|
||||
- src: [:octocat:glytching/junit-extensions](https://github.com/glytching/junit-extensions)
|
||||
|
||||
### AssertJ
|
||||
- doc: [AssertJ](https://assertj.github.io/doc/)
|
||||
- src: [:octocat:AssertJ](https://github.com/assertj/assertj)
|
||||
|
||||
### Mockito
|
||||
- site: [Mockito](https://site.mockito.org)
|
||||
- doc: [Mockito doc.](https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html)
|
||||
- src: [:octocat:Mockito](https://github.com/mockito/mockito)
|
|
@ -10,6 +10,10 @@ Tags [cannot][3] be part of a pull request, so you need to push directly to the
|
|||
|
||||
The release will only happen if the username making the push is matched in the CI `Configure job` step.
|
||||
|
||||
# Docker Images
|
||||
|
||||
Docker images are released as [Github Packages][7] and to [Docker hub][8].
|
||||
|
||||
# Artifact Signing
|
||||
|
||||
The CI workflow will sign artifacts if the `ARTIFACT_SIGNING_KEY` [GitHub secret][4] is present. This should be a
|
||||
|
@ -28,3 +32,5 @@ PlantUML is released to other places, currently that happens outside of GitHub a
|
|||
[4]: https://docs.github.com/en/actions/security-guides/encrypted-secrets
|
||||
[5]: https://central.sonatype.org/publish/requirements/gpg/#generating-a-key-pair
|
||||
[6]: https://github.com/plantuml/plantuml/releases/tag/snapshot
|
||||
[7]: https://github.com/plantuml/plantuml/pkgs/container/plantuml
|
||||
[8]: https://hub.docker.com/r/plantuml/plantuml
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
version = 1.2022.1-SNAPSHOT
|
||||
# Warning, "version" should be the same in gradle.properties and Version.java
|
||||
# Any idea anyone how to magically synchronize those :-) ?
|
||||
version = 1.2024.5beta1
|
||||
org.gradle.workers.max = 3
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
/* +=======================================================================
|
||||
* |
|
||||
* | PlantUML : a free UML diagram generator
|
||||
* |
|
||||
* +=======================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/liberapay (only 1€ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the Apache Software License.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* PlantUML can occasionally display sponsored or advertising messages. Those
|
||||
* messages are usually generated on welcome or error images and never on
|
||||
* functional diagrams.
|
||||
* See https://plantuml.com/professional if you want to remove them
|
||||
*
|
||||
* Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML
|
||||
* are owned by the author of their corresponding sources code (that is, their
|
||||
* textual description in PlantUML language). Those images are not covered by
|
||||
* this APACHE license.
|
||||
*
|
||||
* The generated images can then be used without any reference to the APACHE license.
|
||||
* It is not even necessary to stipulate that they have been generated with PlantUML,
|
||||
* although this will be appreciated by the PlantUML team.
|
||||
*
|
||||
* There is an exception : if the textual description in PlantUML language is also covered
|
||||
* by any license, then the generated images are logically covered
|
||||
* by the very same license.
|
||||
*
|
||||
* This is the IGY distribution (Install GraphViz by Yourself).
|
||||
* You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable
|
||||
* (see https://plantuml.com/graphviz-dot )
|
||||
*
|
||||
* Icons provided by OpenIconic : https://useiconic.com/open
|
||||
* Archimate sprites provided by Archi : http://www.archimatetool.com
|
||||
* Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML
|
||||
* Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites
|
||||
* ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen
|
||||
* ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman
|
||||
* CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli
|
||||
* Brotli (c) by the Brotli Authors https://github.com/google/brotli
|
||||
* Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes
|
||||
* Twemoji (c) by Twitter at https://twemoji.twitter.com/
|
||||
*
|
||||
*/
|
|
@ -0,0 +1,185 @@
|
|||
// permits to start the build setting the javac release parameter, no parameter means build for java8:
|
||||
// gradle clean build -x javaDoc -PjavacRelease=8
|
||||
// gradle clean build -x javaDoc -PjavacRelease=17
|
||||
// also supported is to build first, with java17, then switch the java version, and run the test with java8:
|
||||
// gradle clean build -x javaDoc -x test
|
||||
// gradle test
|
||||
val javacRelease = (project.findProperty("javacRelease") ?: "8") as String
|
||||
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
signing
|
||||
}
|
||||
|
||||
group = "net.sourceforge.plantuml"
|
||||
description = "PlantUML"
|
||||
|
||||
java {
|
||||
withSourcesJar()
|
||||
withJavadocJar()
|
||||
registerFeature("pdf") {
|
||||
usingSourceSet(sourceSets["main"])
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.apache.ant:ant:1.10.14")
|
||||
testImplementation("org.assertj:assertj-core:3.25.3")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.scilab.forge:jlatexmath:1.0.7")
|
||||
testImplementation("org.xmlunit:xmlunit-core:2.9.+")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs("build/generated/sjpp")
|
||||
}
|
||||
resources {
|
||||
srcDirs("build/sources/sjpp/java")
|
||||
include("**/graphviz.dat")
|
||||
include("**/*.png")
|
||||
include("**/*.svg")
|
||||
include("**/*.txt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.compileJava {
|
||||
if (JavaVersion.current().isJava8) {
|
||||
java.targetCompatibility = JavaVersion.VERSION_1_8
|
||||
} else {
|
||||
options.release.set(Integer.parseInt(javacRelease))
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Jar>().configureEach {
|
||||
manifest {
|
||||
attributes["Main-Class"] = "net.sourceforge.plantuml.Run"
|
||||
attributes["Implementation-Version"] = archiveVersion
|
||||
attributes["Build-Jdk-Spec"] = System.getProperty("java.specification.version")
|
||||
from("../manifest.txt")
|
||||
}
|
||||
from("../skin") { into("skin") }
|
||||
from("../stdlib") { into("stdlib") }
|
||||
from("../svg") { into("svg") }
|
||||
from("../themes") { into("themes") }
|
||||
// source sets for java and resources are on "src", only put once into the jar
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
options {
|
||||
this as StandardJavadocDocletOptions
|
||||
addBooleanOption("Xdoclint:none", true)
|
||||
addStringOption("Xmaxwarns", "1")
|
||||
encoding = "UTF-8"
|
||||
isUse = true
|
||||
}
|
||||
}
|
||||
|
||||
val syncSources by tasks.registering(Sync::class) {
|
||||
from(rootProject.layout.projectDirectory.dir("src"))
|
||||
into(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
}
|
||||
|
||||
val preprocessLicenceAntTask by tasks.registering() {
|
||||
dependsOn(syncSources)
|
||||
inputs.dir(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
outputs.dir(project.layout.buildDirectory.dir("generated/sjpp"))
|
||||
doLast {
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "sjpp",
|
||||
"classname" to "sjpp.SjppAntTask",
|
||||
"classpath" to rootProject.layout.projectDirectory.files("sjpp.jar").asPath
|
||||
)
|
||||
"sjpp"(
|
||||
"src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath,
|
||||
"dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath,
|
||||
"define" to "__ASL__",
|
||||
"header" to project.layout.buildDirectory.file("../asl-license.txt").get().asFile.absolutePath
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.processResources{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.compileJava{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.named("sourcesJar"){
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
|
||||
publishing {
|
||||
publications.create<MavenPublication>("maven") {
|
||||
from(components["java"])
|
||||
pom {
|
||||
name.set("PlantUML")
|
||||
description.set("PlantUML is a component that allows to quickly write diagrams from text.")
|
||||
groupId = project.group as String
|
||||
artifactId = project.name
|
||||
version = project.version as String
|
||||
url.set("https://plantuml.com/")
|
||||
licenses {
|
||||
license {
|
||||
name.set("ASL License")
|
||||
url.set("https://opensource.org/license/apache-2-0/")
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id.set("arnaud.roques")
|
||||
name.set("Arnaud Roques")
|
||||
email.set("plantuml@gmail.com")
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection.set("scm:git:git://github.com:plantuml/plantuml.git")
|
||||
developerConnection.set("scm:git:ssh://git@github.com:plantuml/plantuml.git")
|
||||
url.set("https://github.com/plantuml/plantuml")
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "OSSRH"
|
||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
username = System.getenv("OSSRH_USERNAME")
|
||||
password = System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
if (hasProperty("signing.gnupg.keyName") && hasProperty("signing.gnupg.passphrase")) {
|
||||
useGpgCmd()
|
||||
} else if (hasProperty("signingKey") && hasProperty("signingPassword")) {
|
||||
val signingKey: String? by project
|
||||
val signingPassword: String? by project
|
||||
useInMemoryPgpKeys(signingKey, signingPassword)
|
||||
}
|
||||
if (hasProperty("signing.gnupg.passphrase") || hasProperty("signingPassword")) {
|
||||
sign(publishing.publications["maven"])
|
||||
}
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
/* +=======================================================================
|
||||
* |
|
||||
* | PlantUML : a free UML diagram generator
|
||||
* |
|
||||
* +=======================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/liberapay (only 1€ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the Revised BSD License.
|
||||
*
|
||||
* All rights reserved.
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* * Neither the name of the University of California, Berkeley nor the
|
||||
* names of its contributors may be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* PlantUML can occasionally display sponsored or advertising messages. Those
|
||||
* messages are usually generated on welcome or error images and never on
|
||||
* functional diagrams.
|
||||
* See https://plantuml.com/professional if you want to remove them
|
||||
*
|
||||
* Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML
|
||||
* are owned by the author of their corresponding sources code (that is, their
|
||||
* textual description in PlantUML language). Those images are not covered by
|
||||
* this BSD license.
|
||||
*
|
||||
* The generated images can then be used without any reference to the BSD license.
|
||||
* It is not even necessary to stipulate that they have been generated with PlantUML,
|
||||
* although this will be appreciated by the PlantUML team.
|
||||
*
|
||||
* There is an exception : if the textual description in PlantUML language is also covered
|
||||
* by any license, then the generated images are logically covered
|
||||
* by the very same license.
|
||||
*
|
||||
* This is the IGY distribution (Install GraphViz by Yourself).
|
||||
* You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable
|
||||
* (see https://plantuml.com/graphviz-dot )
|
||||
*
|
||||
* Icons provided by OpenIconic : https://useiconic.com/open
|
||||
* Archimate sprites provided by Archi : http://www.archimatetool.com
|
||||
* Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML
|
||||
* Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites
|
||||
* ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen
|
||||
* ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman
|
||||
* CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli
|
||||
* Brotli (c) by the Brotli Authors https://github.com/google/brotli
|
||||
* Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes
|
||||
* Twemoji (c) by Twitter at https://twemoji.twitter.com/
|
||||
*
|
||||
*/
|
|
@ -0,0 +1,184 @@
|
|||
// permits to start the build setting the javac release parameter, no parameter means build for java8:
|
||||
// gradle clean build -x javaDoc -PjavacRelease=8
|
||||
// gradle clean build -x javaDoc -PjavacRelease=17
|
||||
// also supported is to build first, with java17, then switch the java version, and run the test with java8:
|
||||
// gradle clean build -x javaDoc -x test
|
||||
// gradle test
|
||||
val javacRelease = (project.findProperty("javacRelease") ?: "8") as String
|
||||
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
signing
|
||||
}
|
||||
|
||||
group = "net.sourceforge.plantuml"
|
||||
description = "PlantUML"
|
||||
|
||||
java {
|
||||
withSourcesJar()
|
||||
withJavadocJar()
|
||||
registerFeature("pdf") {
|
||||
usingSourceSet(sourceSets["main"])
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.apache.ant:ant:1.10.14")
|
||||
testImplementation("org.assertj:assertj-core:3.25.3")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.scilab.forge:jlatexmath:1.0.7")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs("build/generated/sjpp")
|
||||
}
|
||||
resources {
|
||||
srcDirs("build/sources/sjpp/java")
|
||||
include("**/graphviz.dat")
|
||||
include("**/*.png")
|
||||
include("**/*.svg")
|
||||
include("**/*.txt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.compileJava {
|
||||
if (JavaVersion.current().isJava8) {
|
||||
java.targetCompatibility = JavaVersion.VERSION_1_8
|
||||
} else {
|
||||
options.release.set(Integer.parseInt(javacRelease))
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Jar>().configureEach {
|
||||
manifest {
|
||||
attributes["Main-Class"] = "net.sourceforge.plantuml.Run"
|
||||
attributes["Implementation-Version"] = archiveVersion
|
||||
attributes["Build-Jdk-Spec"] = System.getProperty("java.specification.version")
|
||||
from("../manifest.txt")
|
||||
}
|
||||
from("../skin") { into("skin") }
|
||||
from("../stdlib") { into("stdlib") }
|
||||
from("../svg") { into("svg") }
|
||||
from("../themes") { into("themes") }
|
||||
// source sets for java and resources are on "src", only put once into the jar
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
options {
|
||||
this as StandardJavadocDocletOptions
|
||||
addBooleanOption("Xdoclint:none", true)
|
||||
addStringOption("Xmaxwarns", "1")
|
||||
encoding = "UTF-8"
|
||||
isUse = true
|
||||
}
|
||||
}
|
||||
|
||||
val syncSources by tasks.registering(Sync::class) {
|
||||
from(rootProject.layout.projectDirectory.dir("src"))
|
||||
into(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
}
|
||||
|
||||
val preprocessLicenceAntTask by tasks.registering() {
|
||||
dependsOn(syncSources)
|
||||
inputs.dir(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
outputs.dir(project.layout.buildDirectory.dir("generated/sjpp"))
|
||||
doLast {
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "sjpp",
|
||||
"classname" to "sjpp.SjppAntTask",
|
||||
"classpath" to rootProject.layout.projectDirectory.files("sjpp.jar").asPath
|
||||
)
|
||||
"sjpp"(
|
||||
"src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath,
|
||||
"dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath,
|
||||
"define" to "__BSD__",
|
||||
"header" to project.layout.buildDirectory.file("../bsd-license.txt").get().asFile.absolutePath
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.processResources{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.compileJava{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.named("sourcesJar"){
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
|
||||
publishing {
|
||||
publications.create<MavenPublication>("maven") {
|
||||
from(components["java"])
|
||||
pom {
|
||||
name.set("PlantUML")
|
||||
description.set("PlantUML is a component that allows to quickly write diagrams from text.")
|
||||
groupId = project.group as String
|
||||
artifactId = project.name
|
||||
version = project.version as String
|
||||
url.set("https://plantuml.com/")
|
||||
licenses {
|
||||
license {
|
||||
name.set("BSD License")
|
||||
url.set("https://opensource.org/license/bsd-2-clause/")
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id.set("arnaud.roques")
|
||||
name.set("Arnaud Roques")
|
||||
email.set("plantuml@gmail.com")
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection.set("scm:git:git://github.com:plantuml/plantuml.git")
|
||||
developerConnection.set("scm:git:ssh://git@github.com:plantuml/plantuml.git")
|
||||
url.set("https://github.com/plantuml/plantuml")
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "OSSRH"
|
||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
username = System.getenv("OSSRH_USERNAME")
|
||||
password = System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
if (hasProperty("signing.gnupg.keyName") && hasProperty("signing.gnupg.passphrase")) {
|
||||
useGpgCmd()
|
||||
} else if (hasProperty("signingKey") && hasProperty("signingPassword")) {
|
||||
val signingKey: String? by project
|
||||
val signingPassword: String? by project
|
||||
useInMemoryPgpKeys(signingKey, signingPassword)
|
||||
}
|
||||
if (hasProperty("signing.gnupg.passphrase") || hasProperty("signingPassword")) {
|
||||
sign(publishing.publications["maven"])
|
||||
}
|
||||
}
|
|
@ -0,0 +1,184 @@
|
|||
// permits to start the build setting the javac release parameter, no parameter means build for java8:
|
||||
// gradle clean build -x javaDoc -PjavacRelease=8
|
||||
// gradle clean build -x javaDoc -PjavacRelease=17
|
||||
// also supported is to build first, with java17, then switch the java version, and run the test with java8:
|
||||
// gradle clean build -x javaDoc -x test
|
||||
// gradle test
|
||||
val javacRelease = (project.findProperty("javacRelease") ?: "8") as String
|
||||
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
signing
|
||||
}
|
||||
|
||||
group = "net.sourceforge.plantuml"
|
||||
description = "PlantUML"
|
||||
|
||||
java {
|
||||
withSourcesJar()
|
||||
withJavadocJar()
|
||||
registerFeature("pdf") {
|
||||
usingSourceSet(sourceSets["main"])
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.apache.ant:ant:1.10.14")
|
||||
testImplementation("org.assertj:assertj-core:3.25.3")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.scilab.forge:jlatexmath:1.0.7")
|
||||
testImplementation("org.xmlunit:xmlunit-core:2.9.+")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs("build/generated/sjpp")
|
||||
}
|
||||
resources {
|
||||
srcDirs("build/sources/sjpp/java")
|
||||
include("**/graphviz.dat")
|
||||
include("**/*.png")
|
||||
include("**/*.svg")
|
||||
include("**/*.txt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.compileJava {
|
||||
if (JavaVersion.current().isJava8) {
|
||||
java.targetCompatibility = JavaVersion.VERSION_1_8
|
||||
} else {
|
||||
options.release.set(Integer.parseInt(javacRelease))
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Jar>().configureEach {
|
||||
manifest {
|
||||
attributes["Main-Class"] = "net.sourceforge.plantuml.Run"
|
||||
attributes["Implementation-Version"] = archiveVersion
|
||||
attributes["Build-Jdk-Spec"] = System.getProperty("java.specification.version")
|
||||
from("../manifest.txt")
|
||||
}
|
||||
from("../skin") { into("skin") }
|
||||
from("../stdlib") { into("stdlib") }
|
||||
from("../svg") { into("svg") }
|
||||
from("../themes") { into("themes") }
|
||||
// source sets for java and resources are on "src", only put once into the jar
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
options {
|
||||
this as StandardJavadocDocletOptions
|
||||
addBooleanOption("Xdoclint:none", true)
|
||||
addStringOption("Xmaxwarns", "1")
|
||||
encoding = "UTF-8"
|
||||
isUse = true
|
||||
}
|
||||
}
|
||||
|
||||
val syncSources by tasks.registering(Sync::class) {
|
||||
from(rootProject.layout.projectDirectory.dir("src"))
|
||||
into(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
}
|
||||
|
||||
val preprocessLicenceAntTask by tasks.registering() {
|
||||
dependsOn(syncSources)
|
||||
inputs.dir(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
outputs.dir(project.layout.buildDirectory.dir("generated/sjpp"))
|
||||
doLast {
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "sjpp",
|
||||
"classname" to "sjpp.SjppAntTask",
|
||||
"classpath" to rootProject.layout.projectDirectory.files("sjpp.jar").asPath
|
||||
)
|
||||
"sjpp"(
|
||||
"src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath,
|
||||
"dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath,
|
||||
"define" to "__EPL__",
|
||||
"header" to project.layout.buildDirectory.file("../epl-license.txt").get().asFile.absolutePath
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.processResources{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.compileJava{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.named("sourcesJar"){
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications.create<MavenPublication>("maven") {
|
||||
from(components["java"])
|
||||
pom {
|
||||
name.set("PlantUML")
|
||||
description.set("PlantUML is a component that allows to quickly write diagrams from text.")
|
||||
groupId = project.group as String
|
||||
artifactId = project.name
|
||||
version = project.version as String
|
||||
url.set("https://plantuml.com/")
|
||||
licenses {
|
||||
license {
|
||||
name.set("EPL License")
|
||||
url.set("https://opensource.org/license/epl-1-0/")
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id.set("arnaud.roques")
|
||||
name.set("Arnaud Roques")
|
||||
email.set("plantuml@gmail.com")
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection.set("scm:git:git://github.com:plantuml/plantuml.git")
|
||||
developerConnection.set("scm:git:ssh://git@github.com:plantuml/plantuml.git")
|
||||
url.set("https://github.com/plantuml/plantuml")
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "OSSRH"
|
||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
username = System.getenv("OSSRH_USERNAME")
|
||||
password = System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
if (hasProperty("signing.gnupg.keyName") && hasProperty("signing.gnupg.passphrase")) {
|
||||
useGpgCmd()
|
||||
} else if (hasProperty("signingKey") && hasProperty("signingPassword")) {
|
||||
val signingKey: String? by project
|
||||
val signingPassword: String? by project
|
||||
useInMemoryPgpKeys(signingKey, signingPassword)
|
||||
}
|
||||
if (hasProperty("signing.gnupg.passphrase") || hasProperty("signingPassword")) {
|
||||
sign(publishing.publications["maven"])
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
/* +=======================================================================
|
||||
* |
|
||||
* | PlantUML : a free UML diagram generator
|
||||
* |
|
||||
* +=======================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/liberapay (only 1€ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the Eclipse Public License.
|
||||
*
|
||||
* THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
|
||||
* LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
|
||||
*
|
||||
* ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
|
||||
* RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
*
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* PlantUML can occasionally display sponsored or advertising messages. Those
|
||||
* messages are usually generated on welcome or error images and never on
|
||||
* functional diagrams.
|
||||
* See https://plantuml.com/professional if you want to remove them
|
||||
*
|
||||
* Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML
|
||||
* are owned by the author of their corresponding sources code (that is, their
|
||||
* textual description in PlantUML language). Those images are not covered by
|
||||
* this EPL license.
|
||||
*
|
||||
* The generated images can then be used without any reference to the EPL license.
|
||||
* It is not even necessary to stipulate that they have been generated with PlantUML,
|
||||
* although this will be appreciated by the PlantUML team.
|
||||
*
|
||||
* There is an exception : if the textual description in PlantUML language is also covered
|
||||
* by any license, then the generated images are logically covered
|
||||
* by the very same license.
|
||||
*
|
||||
* This is the IGY distribution (Install GraphViz by Yourself).
|
||||
* You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable
|
||||
* (see https://plantuml.com/graphviz-dot )
|
||||
*
|
||||
* Icons provided by OpenIconic : https://useiconic.com/open
|
||||
* Archimate sprites provided by Archi : http://www.archimatetool.com
|
||||
* Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML
|
||||
* Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites
|
||||
* ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen
|
||||
* ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman
|
||||
* CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli
|
||||
* Brotli (c) by the Brotli Authors https://github.com/google/brotli
|
||||
* Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes
|
||||
* Twemoji (c) by Twitter at https://twemoji.twitter.com/
|
||||
*
|
||||
*/
|
|
@ -0,0 +1,184 @@
|
|||
// permits to start the build setting the javac release parameter, no parameter means build for java8:
|
||||
// gradle clean build -x javaDoc -PjavacRelease=8
|
||||
// gradle clean build -x javaDoc -PjavacRelease=17
|
||||
// also supported is to build first, with java17, then switch the java version, and run the test with java8:
|
||||
// gradle clean build -x javaDoc -x test
|
||||
// gradle test
|
||||
val javacRelease = (project.findProperty("javacRelease") ?: "8") as String
|
||||
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
signing
|
||||
}
|
||||
|
||||
group = "net.sourceforge.plantuml"
|
||||
description = "PlantUML"
|
||||
|
||||
java {
|
||||
withSourcesJar()
|
||||
withJavadocJar()
|
||||
registerFeature("pdf") {
|
||||
usingSourceSet(sourceSets["main"])
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.apache.ant:ant:1.10.14")
|
||||
testImplementation("org.assertj:assertj-core:3.25.3")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.scilab.forge:jlatexmath:1.0.7")
|
||||
testImplementation("org.xmlunit:xmlunit-core:2.9.+")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs("build/generated/sjpp")
|
||||
}
|
||||
resources {
|
||||
srcDirs("build/sources/sjpp/java")
|
||||
include("**/graphviz.dat")
|
||||
include("**/*.png")
|
||||
include("**/*.svg")
|
||||
include("**/*.txt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.compileJava {
|
||||
if (JavaVersion.current().isJava8) {
|
||||
java.targetCompatibility = JavaVersion.VERSION_1_8
|
||||
} else {
|
||||
options.release.set(Integer.parseInt(javacRelease))
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Jar>().configureEach {
|
||||
manifest {
|
||||
attributes["Main-Class"] = "net.sourceforge.plantuml.Run"
|
||||
attributes["Implementation-Version"] = archiveVersion
|
||||
attributes["Build-Jdk-Spec"] = System.getProperty("java.specification.version")
|
||||
from("../manifest.txt")
|
||||
}
|
||||
from("../skin") { into("skin") }
|
||||
from("../stdlib") { into("stdlib") }
|
||||
from("../svg") { into("svg") }
|
||||
from("../themes") { into("themes") }
|
||||
// source sets for java and resources are on "src", only put once into the jar
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
options {
|
||||
this as StandardJavadocDocletOptions
|
||||
addBooleanOption("Xdoclint:none", true)
|
||||
addStringOption("Xmaxwarns", "1")
|
||||
encoding = "UTF-8"
|
||||
isUse = true
|
||||
}
|
||||
}
|
||||
|
||||
val syncSources by tasks.registering(Sync::class) {
|
||||
from(rootProject.layout.projectDirectory.dir("src"))
|
||||
into(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
}
|
||||
|
||||
val preprocessLicenceAntTask by tasks.registering() {
|
||||
dependsOn(syncSources)
|
||||
inputs.dir(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
outputs.dir(project.layout.buildDirectory.dir("generated/sjpp"))
|
||||
doLast {
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "sjpp",
|
||||
"classname" to "sjpp.SjppAntTask",
|
||||
"classpath" to rootProject.layout.projectDirectory.files("sjpp.jar").asPath
|
||||
)
|
||||
"sjpp"(
|
||||
"src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath,
|
||||
"dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath,
|
||||
"define" to "__GPLV2__",
|
||||
"header" to project.layout.buildDirectory.file("../gplv2-license.txt").get().asFile.absolutePath
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.processResources{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.compileJava{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.named("sourcesJar"){
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications.create<MavenPublication>("maven") {
|
||||
from(components["java"])
|
||||
pom {
|
||||
name.set("PlantUML")
|
||||
description.set("PlantUML is a component that allows to quickly write diagrams from text.")
|
||||
groupId = project.group as String
|
||||
artifactId = project.name
|
||||
version = project.version as String
|
||||
url.set("https://plantuml.com/")
|
||||
licenses {
|
||||
license {
|
||||
name.set("GPLv2 License")
|
||||
url.set("https://www.gnu.org/licenses/old-licenses/gpl-2.0.html")
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id.set("arnaud.roques")
|
||||
name.set("Arnaud Roques")
|
||||
email.set("plantuml@gmail.com")
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection.set("scm:git:git://github.com:plantuml/plantuml.git")
|
||||
developerConnection.set("scm:git:ssh://git@github.com:plantuml/plantuml.git")
|
||||
url.set("https://github.com/plantuml/plantuml")
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "OSSRH"
|
||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
username = System.getenv("OSSRH_USERNAME")
|
||||
password = System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
if (hasProperty("signing.gnupg.keyName") && hasProperty("signing.gnupg.passphrase")) {
|
||||
useGpgCmd()
|
||||
} else if (hasProperty("signingKey") && hasProperty("signingPassword")) {
|
||||
val signingKey: String? by project
|
||||
val signingPassword: String? by project
|
||||
useInMemoryPgpKeys(signingKey, signingPassword)
|
||||
}
|
||||
if (hasProperty("signing.gnupg.passphrase") || hasProperty("signingPassword")) {
|
||||
sign(publishing.publications["maven"])
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
/* +=======================================================================
|
||||
* |
|
||||
* | PlantUML : a free UML diagram generator
|
||||
* |
|
||||
* +=======================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/liberapay (only 1€ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License V2.
|
||||
*
|
||||
* THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
|
||||
* LICENSE ("AGREEMENT"). [GNU General Public License V2]
|
||||
*
|
||||
* ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
|
||||
* RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
*
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* PlantUML can occasionally display sponsored or advertising messages. Those
|
||||
* messages are usually generated on welcome or error images and never on
|
||||
* functional diagrams.
|
||||
* See https://plantuml.com/professional if you want to remove them
|
||||
*
|
||||
* Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML
|
||||
* are owned by the author of their corresponding sources code (that is, their
|
||||
* textual description in PlantUML language). Those images are not covered by
|
||||
* this GPL v2 license.
|
||||
*
|
||||
* The generated images can then be used without any reference to the GPL v2 license.
|
||||
* It is not even necessary to stipulate that they have been generated with PlantUML,
|
||||
* although this will be appreciated by the PlantUML team.
|
||||
*
|
||||
* There is an exception : if the textual description in PlantUML language is also covered
|
||||
* by any license, then the generated images are logically covered
|
||||
* by the very same license.
|
||||
*
|
||||
* This is the IGY distribution (Install GraphViz by Yourself).
|
||||
* You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable
|
||||
* (see https://plantuml.com/graphviz-dot )
|
||||
*
|
||||
* Icons provided by OpenIconic : https://useiconic.com/open
|
||||
* Archimate sprites provided by Archi : http://www.archimatetool.com
|
||||
* Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML
|
||||
* Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites
|
||||
* ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen
|
||||
* ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman
|
||||
* CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli
|
||||
* Brotli (c) by the Brotli Authors https://github.com/google/brotli
|
||||
* Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes
|
||||
* Twemoji (c) by Twitter at https://twemoji.twitter.com/
|
||||
*
|
||||
*/
|
|
@ -0,0 +1,184 @@
|
|||
// permits to start the build setting the javac release parameter, no parameter means build for java8:
|
||||
// gradle clean build -x javaDoc -PjavacRelease=8
|
||||
// gradle clean build -x javaDoc -PjavacRelease=17
|
||||
// also supported is to build first, with java17, then switch the java version, and run the test with java8:
|
||||
// gradle clean build -x javaDoc -x test
|
||||
// gradle test
|
||||
val javacRelease = (project.findProperty("javacRelease") ?: "8") as String
|
||||
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
signing
|
||||
}
|
||||
|
||||
group = "net.sourceforge.plantuml"
|
||||
description = "PlantUML"
|
||||
|
||||
java {
|
||||
withSourcesJar()
|
||||
withJavadocJar()
|
||||
registerFeature("pdf") {
|
||||
usingSourceSet(sourceSets["main"])
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.apache.ant:ant:1.10.14")
|
||||
testImplementation("org.assertj:assertj-core:3.25.3")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.scilab.forge:jlatexmath:1.0.7")
|
||||
testImplementation("org.xmlunit:xmlunit-core:2.9.+")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs("build/generated/sjpp")
|
||||
}
|
||||
resources {
|
||||
srcDirs("build/sources/sjpp/java")
|
||||
include("**/*.png")
|
||||
include("**/*.svg")
|
||||
include("**/*.txt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.compileJava {
|
||||
if (JavaVersion.current().isJava8) {
|
||||
java.targetCompatibility = JavaVersion.VERSION_1_8
|
||||
} else {
|
||||
options.release.set(Integer.parseInt(javacRelease))
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Jar>().configureEach {
|
||||
manifest {
|
||||
attributes["Main-Class"] = "net.sourceforge.plantuml.Run"
|
||||
attributes["Implementation-Version"] = archiveVersion
|
||||
attributes["Build-Jdk-Spec"] = System.getProperty("java.specification.version")
|
||||
from("../manifest.txt")
|
||||
}
|
||||
from("../skin") { into("skin") }
|
||||
from("../stdlib") { into("stdlib") }
|
||||
from("../svg") { into("svg") }
|
||||
from("../themes") { into("themes") }
|
||||
// source sets for java and resources are on "src", only put once into the jar
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
options {
|
||||
this as StandardJavadocDocletOptions
|
||||
addBooleanOption("Xdoclint:none", true)
|
||||
addStringOption("Xmaxwarns", "1")
|
||||
encoding = "UTF-8"
|
||||
isUse = true
|
||||
}
|
||||
}
|
||||
|
||||
val syncSources by tasks.registering(Sync::class) {
|
||||
from(rootProject.layout.projectDirectory.dir("src"))
|
||||
into(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
}
|
||||
|
||||
val preprocessLicenceAntTask by tasks.registering() {
|
||||
dependsOn(syncSources)
|
||||
inputs.dir(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
outputs.dir(project.layout.buildDirectory.dir("generated/sjpp"))
|
||||
doLast {
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "sjpp",
|
||||
"classname" to "sjpp.SjppAntTask",
|
||||
"classpath" to rootProject.layout.projectDirectory.files("sjpp.jar").asPath
|
||||
)
|
||||
"sjpp"(
|
||||
"src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath,
|
||||
"dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath,
|
||||
"define" to "__LGPL__",
|
||||
"header" to project.layout.buildDirectory.file("../lgpl-license.txt").get().asFile.absolutePath
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.processResources{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.compileJava{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.named("sourcesJar"){
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
|
||||
publishing {
|
||||
publications.create<MavenPublication>("maven") {
|
||||
from(components["java"])
|
||||
pom {
|
||||
name.set("PlantUML")
|
||||
description.set("PlantUML is a component that allows to quickly write diagrams from text.")
|
||||
groupId = project.group as String
|
||||
artifactId = project.name
|
||||
version = project.version as String
|
||||
url.set("https://plantuml.com/")
|
||||
licenses {
|
||||
license {
|
||||
name.set("LGPL License")
|
||||
url.set("https://opensource.org/license/lgpl-2-1/")
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id.set("arnaud.roques")
|
||||
name.set("Arnaud Roques")
|
||||
email.set("plantuml@gmail.com")
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection.set("scm:git:git://github.com:plantuml/plantuml.git")
|
||||
developerConnection.set("scm:git:ssh://git@github.com:plantuml/plantuml.git")
|
||||
url.set("https://github.com/plantuml/plantuml")
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "OSSRH"
|
||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
username = System.getenv("OSSRH_USERNAME")
|
||||
password = System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
if (hasProperty("signing.gnupg.keyName") && hasProperty("signing.gnupg.passphrase")) {
|
||||
useGpgCmd()
|
||||
} else if (hasProperty("signingKey") && hasProperty("signingPassword")) {
|
||||
val signingKey: String? by project
|
||||
val signingPassword: String? by project
|
||||
useInMemoryPgpKeys(signingKey, signingPassword)
|
||||
}
|
||||
if (hasProperty("signing.gnupg.passphrase") || hasProperty("signingPassword")) {
|
||||
sign(publishing.publications["maven"])
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
/* +=======================================================================
|
||||
* |
|
||||
* | PlantUML : a free UML diagram generator
|
||||
* |
|
||||
* +=======================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/liberapay (only 1€ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this library. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* PlantUML can occasionally display sponsored or advertising messages. Those
|
||||
* messages are usually generated on welcome or error images and never on
|
||||
* functional diagrams.
|
||||
* See https://plantuml.com/professional if you want to remove them
|
||||
*
|
||||
* Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML
|
||||
* are owned by the author of their corresponding sources code (that is, their
|
||||
* textual description in PlantUML language). Those images are not covered by
|
||||
* this LGPL license.
|
||||
*
|
||||
* The generated images can then be used without any reference to the LGPL license.
|
||||
* It is not even necessary to stipulate that they have been generated with PlantUML,
|
||||
* although this will be appreciated by the PlantUML team.
|
||||
*
|
||||
* There is an exception : if the textual description in PlantUML language is also covered
|
||||
* by any license, then the generated images are logically covered
|
||||
* by the very same license.
|
||||
*
|
||||
* This is the IGY distribution (Install GraphViz by Yourself).
|
||||
* You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable
|
||||
* (see https://plantuml.com/graphviz-dot )
|
||||
*
|
||||
* Icons provided by OpenIconic : https://useiconic.com/open
|
||||
* Archimate sprites provided by Archi : http://www.archimatetool.com
|
||||
* Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML
|
||||
* Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites
|
||||
* ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen
|
||||
* ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman
|
||||
* CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli
|
||||
* Brotli (c) by the Brotli Authors https://github.com/google/brotli
|
||||
* Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes
|
||||
* Twemoji (c) by Twitter at https://twemoji.twitter.com/
|
||||
*
|
||||
*/
|
|
@ -0,0 +1,185 @@
|
|||
// permits to start the build setting the javac release parameter, no parameter means build for java8:
|
||||
// gradle clean build -x javaDoc -PjavacRelease=8
|
||||
// gradle clean build -x javaDoc -PjavacRelease=17
|
||||
// also supported is to build first, with java17, then switch the java version, and run the test with java8:
|
||||
// gradle clean build -x javaDoc -x test
|
||||
// gradle test
|
||||
val javacRelease = (project.findProperty("javacRelease") ?: "8") as String
|
||||
|
||||
plugins {
|
||||
java
|
||||
`maven-publish`
|
||||
signing
|
||||
}
|
||||
|
||||
group = "net.sourceforge.plantuml"
|
||||
description = "PlantUML"
|
||||
|
||||
java {
|
||||
withSourcesJar()
|
||||
withJavadocJar()
|
||||
registerFeature("pdf") {
|
||||
usingSourceSet(sourceSets["main"])
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("org.apache.ant:ant:1.10.14")
|
||||
testImplementation("org.assertj:assertj-core:3.25.3")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
|
||||
testImplementation("org.scilab.forge:jlatexmath:1.0.7")
|
||||
testImplementation("org.xmlunit:xmlunit-core:2.9.+")
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDirs("build/generated/sjpp")
|
||||
}
|
||||
resources {
|
||||
srcDirs("build/sources/sjpp/java")
|
||||
include("**/graphviz.dat")
|
||||
include("**/*.png")
|
||||
include("**/*.svg")
|
||||
include("**/*.txt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.compileJava {
|
||||
if (JavaVersion.current().isJava8) {
|
||||
java.targetCompatibility = JavaVersion.VERSION_1_8
|
||||
} else {
|
||||
options.release.set(Integer.parseInt(javacRelease))
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType<Jar>().configureEach {
|
||||
manifest {
|
||||
attributes["Main-Class"] = "net.sourceforge.plantuml.Run"
|
||||
attributes["Implementation-Version"] = archiveVersion
|
||||
attributes["Build-Jdk-Spec"] = System.getProperty("java.specification.version")
|
||||
from("../manifest.txt")
|
||||
}
|
||||
from("../skin") { into("skin") }
|
||||
from("../stdlib") { into("stdlib") }
|
||||
from("../svg") { into("svg") }
|
||||
from("../themes") { into("themes") }
|
||||
// source sets for java and resources are on "src", only put once into the jar
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.encoding = "UTF-8"
|
||||
}
|
||||
|
||||
tasks.withType<Javadoc>().configureEach {
|
||||
options {
|
||||
this as StandardJavadocDocletOptions
|
||||
addBooleanOption("Xdoclint:none", true)
|
||||
addStringOption("Xmaxwarns", "1")
|
||||
encoding = "UTF-8"
|
||||
isUse = true
|
||||
}
|
||||
}
|
||||
|
||||
val syncSources by tasks.registering(Sync::class) {
|
||||
from(rootProject.layout.projectDirectory.dir("src"))
|
||||
into(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
}
|
||||
|
||||
val preprocessLicenceAntTask by tasks.registering() {
|
||||
dependsOn(syncSources)
|
||||
inputs.dir(project.layout.buildDirectory.dir("sources/sjpp/java"))
|
||||
outputs.dir(project.layout.buildDirectory.dir("generated/sjpp"))
|
||||
doLast {
|
||||
ant.withGroovyBuilder {
|
||||
"taskdef"(
|
||||
"name" to "sjpp",
|
||||
"classname" to "sjpp.SjppAntTask",
|
||||
"classpath" to rootProject.layout.projectDirectory.files("sjpp.jar").asPath
|
||||
)
|
||||
"sjpp"(
|
||||
"src" to project.layout.buildDirectory.dir("sources/sjpp/java").get().asFile.absolutePath,
|
||||
"dest" to project.layout.buildDirectory.dir("generated/sjpp").get().asFile.absolutePath,
|
||||
"define" to "__MIT__",
|
||||
"header" to project.layout.buildDirectory.file("../mit-license.txt").get().asFile.absolutePath
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.processResources{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.compileJava{
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
tasks.named("sourcesJar"){
|
||||
dependsOn(preprocessLicenceAntTask)
|
||||
}
|
||||
|
||||
|
||||
publishing {
|
||||
publications.create<MavenPublication>("maven") {
|
||||
from(components["java"])
|
||||
pom {
|
||||
name.set("PlantUML")
|
||||
description.set("PlantUML is a component that allows to quickly write diagrams from text.")
|
||||
groupId = project.group as String
|
||||
artifactId = project.name
|
||||
version = project.version as String
|
||||
url.set("https://plantuml.com/")
|
||||
licenses {
|
||||
license {
|
||||
name.set("MIT License")
|
||||
url.set("https://opensource.org/license/mit/")
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id.set("arnaud.roques")
|
||||
name.set("Arnaud Roques")
|
||||
email.set("plantuml@gmail.com")
|
||||
}
|
||||
}
|
||||
scm {
|
||||
connection.set("scm:git:git://github.com:plantuml/plantuml.git")
|
||||
developerConnection.set("scm:git:ssh://git@github.com:plantuml/plantuml.git")
|
||||
url.set("https://github.com/plantuml/plantuml")
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name = "OSSRH"
|
||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||
credentials {
|
||||
username = System.getenv("OSSRH_USERNAME")
|
||||
password = System.getenv("OSSRH_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
if (hasProperty("signing.gnupg.keyName") && hasProperty("signing.gnupg.passphrase")) {
|
||||
useGpgCmd()
|
||||
} else if (hasProperty("signingKey") && hasProperty("signingPassword")) {
|
||||
val signingKey: String? by project
|
||||
val signingPassword: String? by project
|
||||
useInMemoryPgpKeys(signingKey, signingPassword)
|
||||
}
|
||||
if (hasProperty("signing.gnupg.passphrase") || hasProperty("signingPassword")) {
|
||||
sign(publishing.publications["maven"])
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
/* +=======================================================================
|
||||
* |
|
||||
* | PlantUML : a free UML diagram generator
|
||||
* |
|
||||
* +=======================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/liberapay (only 1€ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the MIT License.
|
||||
*
|
||||
* See http://opensource.org/licenses/MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||
* IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* PlantUML can occasionally display sponsored or advertising messages. Those
|
||||
* messages are usually generated on welcome or error images and never on
|
||||
* functional diagrams.
|
||||
* See https://plantuml.com/professional if you want to remove them
|
||||
*
|
||||
* Images (whatever their format : PNG, SVG, EPS...) generated by running PlantUML
|
||||
* are owned by the author of their corresponding sources code (that is, their
|
||||
* textual description in PlantUML language). Those images are not covered by
|
||||
* this MIT license.
|
||||
*
|
||||
* The generated images can then be used without any reference to the MIT license.
|
||||
* It is not even necessary to stipulate that they have been generated with PlantUML,
|
||||
* although this will be appreciated by the PlantUML team.
|
||||
*
|
||||
* There is an exception : if the textual description in PlantUML language is also covered
|
||||
* by any license, then the generated images are logically covered
|
||||
* by the very same license.
|
||||
*
|
||||
* This is the IGY distribution (Install GraphViz by Yourself).
|
||||
* You have to install GraphViz and to setup the GRAPHVIZ_DOT environment variable
|
||||
* (see https://plantuml.com/graphviz-dot )
|
||||
*
|
||||
* Icons provided by OpenIconic : https://useiconic.com/open
|
||||
* Archimate sprites provided by Archi : http://www.archimatetool.com
|
||||
* Stdlib AWS provided by https://github.com/milo-minderbinder/AWS-PlantUML
|
||||
* Stdlib Icons provided https://github.com/tupadr3/plantuml-icon-font-sprites
|
||||
* ASCIIMathML (c) Peter Jipsen http://www.chapman.edu/~jipsen
|
||||
* ASCIIMathML (c) David Lippman http://www.pierce.ctc.edu/dlippman
|
||||
* CafeUndZopfli ported by Eugene Klyuchnikov https://github.com/eustas/CafeUndZopfli
|
||||
* Brotli (c) by the Brotli Authors https://github.com/google/brotli
|
||||
* Themes (c) by Brett Schwarz https://github.com/bschwarz/puml-themes
|
||||
* Twemoji (c) by Twitter at https://twemoji.twitter.com/
|
||||
*
|
||||
*/
|
|
@ -1 +1,19 @@
|
|||
// https://docs.gradle.org/current/javadoc/org/gradle/api/initialization/Settings.html
|
||||
|
||||
rootProject.name = "plantuml"
|
||||
|
||||
val isCiBuild = System.getenv("CI") != null
|
||||
val version: String by settings
|
||||
|
||||
println("Running settings.gradle.kts")
|
||||
// println(rootProject.projectDir)
|
||||
println("Version is " + version)
|
||||
|
||||
include("plantuml-asl")
|
||||
include("plantuml-bsd")
|
||||
include("plantuml-epl")
|
||||
include("plantuml-lgpl")
|
||||
include("plantuml-mit")
|
||||
include("plantuml-gplv2")
|
||||
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ root {
|
|||
|
||||
FontName SansSerif
|
||||
HyperLinkColor blue
|
||||
HyperLinkUnderlineThickness 1
|
||||
FontColor black
|
||||
FontSize 14
|
||||
FontStyle plain
|
||||
|
@ -47,8 +48,8 @@ document {
|
|||
BackGroundColor #D
|
||||
FontSize 14
|
||||
RoundCorner 15
|
||||
Padding 6
|
||||
Margin 8
|
||||
Padding 5
|
||||
Margin 12
|
||||
}
|
||||
caption {
|
||||
HorizontalAlignment center
|
||||
|
@ -64,21 +65,33 @@ document {
|
|||
}
|
||||
}
|
||||
|
||||
stereotype {
|
||||
FontStyle italic
|
||||
}
|
||||
|
||||
|
||||
|
||||
element {
|
||||
Shadowing 0.0
|
||||
package {
|
||||
title {
|
||||
FontStyle bold
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
stereotype {
|
||||
FontStyle italic
|
||||
}
|
||||
|
||||
|
||||
mainframe {
|
||||
Padding 1 5
|
||||
LineThickness 1.5
|
||||
Margin 10 5
|
||||
}
|
||||
|
||||
element {
|
||||
Shadowing 0.0
|
||||
LineThickness 0.5
|
||||
composite {
|
||||
title {
|
||||
FontStyle bold
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group {
|
||||
|
@ -205,6 +218,15 @@ spot {
|
|||
spotEntity {
|
||||
BackgroundColor #ADD1B2
|
||||
}
|
||||
spotException {
|
||||
BackgroundColor #D94321
|
||||
}
|
||||
spotMetaClass {
|
||||
BackgroundColor #CCCCCC
|
||||
}
|
||||
spotStereotype {
|
||||
BackgroundColor #FF77FF
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -212,6 +234,9 @@ stateDiagram {
|
|||
state {
|
||||
RoundCorner 25
|
||||
}
|
||||
stateBody {
|
||||
BackGroundColor transparent
|
||||
}
|
||||
element {
|
||||
title {
|
||||
FontStyle plain
|
||||
|
@ -220,6 +245,15 @@ stateDiagram {
|
|||
group {
|
||||
LineThickness 0.5
|
||||
}
|
||||
header {
|
||||
FontSize 12
|
||||
}
|
||||
circle {
|
||||
start, stop, end {
|
||||
LineColor #2
|
||||
BackgroundColor #2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -232,7 +266,7 @@ delay {
|
|||
|
||||
|
||||
swimlane {
|
||||
BackGroundColor none
|
||||
BackGroundColor transparent
|
||||
LineColor black
|
||||
LineThickness 1.5
|
||||
FontSize 18
|
||||
|
@ -285,9 +319,9 @@ activityDiagram {
|
|||
FontSize 12
|
||||
RoundCorner 25
|
||||
}
|
||||
partition {
|
||||
composite {
|
||||
LineColor black
|
||||
BackgroundColor none
|
||||
BackgroundColor transparent
|
||||
LineThickness 1.5
|
||||
}
|
||||
diamond {
|
||||
|
@ -298,18 +332,10 @@ activityDiagram {
|
|||
LineThickness 1
|
||||
}
|
||||
circle {
|
||||
start {
|
||||
start, stop, end {
|
||||
LineColor #2
|
||||
BackgroundColor #2
|
||||
}
|
||||
stop {
|
||||
LineColor #2
|
||||
BackgroundColor transparent
|
||||
}
|
||||
end {
|
||||
LineColor #2
|
||||
BackgroundColor transparent
|
||||
}
|
||||
}
|
||||
activityBar {
|
||||
BackgroundColor #5
|
||||
|
@ -341,9 +367,21 @@ ganttDiagram {
|
|||
Margin 5
|
||||
Padding 5
|
||||
}
|
||||
verticalSeparator {
|
||||
LineThickness 2
|
||||
LineStyle 2-2
|
||||
LineColor black
|
||||
}
|
||||
timeline {
|
||||
BackgroundColor transparent
|
||||
LineColor #C0C0C0
|
||||
FontSize 10
|
||||
month {
|
||||
FontSize 12
|
||||
}
|
||||
year {
|
||||
FontSize 14
|
||||
}
|
||||
}
|
||||
closed {
|
||||
BackGroundColor #F1E5E5
|
||||
|
@ -374,7 +412,7 @@ yamlDiagram,jsonDiagram {
|
|||
LineColor black
|
||||
arrow {
|
||||
LineThickness 1
|
||||
LineStyle 3;3
|
||||
LineStyle 3-3
|
||||
}
|
||||
node {
|
||||
LineThickness 1.5
|
||||
|
@ -400,6 +438,7 @@ timingDiagram {
|
|||
timeline {
|
||||
FontStyle plain
|
||||
FontSize 11
|
||||
LineThickness 2
|
||||
}
|
||||
note {
|
||||
LineThickness 0.5
|
||||
|
@ -423,7 +462,7 @@ timingDiagram {
|
|||
FontSize 12
|
||||
LineColor darkgreen
|
||||
BackgroundColor: var(--grey-blue);
|
||||
LineThickness 2
|
||||
LineThickness 1.5
|
||||
}
|
||||
robust {
|
||||
FontStyle plain
|
||||
|
@ -441,7 +480,7 @@ timingDiagram {
|
|||
highlight {
|
||||
BackgroundColor #e
|
||||
LineThickness 2
|
||||
LineStyle 4;4
|
||||
LineStyle 4-4
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -468,11 +507,11 @@ root {
|
|||
HyperLinkColor blue
|
||||
FontColor white
|
||||
LineColor #e7e7e7
|
||||
BackGroundColor #070707
|
||||
BackGroundColor #313139
|
||||
}
|
||||
|
||||
document {
|
||||
BackGroundColor black
|
||||
BackGroundColor #1B1B1B
|
||||
header {
|
||||
FontColor #7
|
||||
}
|
||||
|
@ -528,6 +567,11 @@ sequenceDiagram {
|
|||
LineColor white
|
||||
BackGroundColor #1
|
||||
}
|
||||
|
||||
participant,actor,boundary,control,entity,queue,database,collections {
|
||||
BackgroundColor: #2;
|
||||
HorizontalAlignment center
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -550,6 +594,15 @@ spot {
|
|||
spotEntity {
|
||||
BackgroundColor #2E5233
|
||||
}
|
||||
spotException {
|
||||
BackgroundColor #7D0000
|
||||
}
|
||||
spotMetaClass {
|
||||
BackgroundColor #7C7C7C
|
||||
}
|
||||
spotStereotype {
|
||||
BackgroundColor #890089
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -558,7 +611,7 @@ swimlane {
|
|||
}
|
||||
|
||||
note {
|
||||
BackGroundColor #3
|
||||
BackGroundColor #714137
|
||||
}
|
||||
|
||||
|
||||
|
@ -567,18 +620,10 @@ activityDiagram {
|
|||
LineColor white
|
||||
}
|
||||
circle {
|
||||
start {
|
||||
start, stop, end {
|
||||
LineColor #d
|
||||
BackgroundColor #d
|
||||
}
|
||||
stop {
|
||||
LineColor #d
|
||||
BackgroundColor transparent
|
||||
}
|
||||
end {
|
||||
LineColor #d
|
||||
BackgroundColor transparent
|
||||
}
|
||||
}
|
||||
activityBar {
|
||||
BackgroundColor #a
|
||||
|
@ -620,6 +665,9 @@ timingDiagram {
|
|||
|
||||
|
||||
ganttDiagram {
|
||||
task {
|
||||
BackGroundColor #555
|
||||
}
|
||||
timeline {
|
||||
LineColor #3f3f3f
|
||||
}
|
||||
|
@ -641,9 +689,12 @@ yamlDiagram,jsonDiagram {
|
|||
BackGroundColor #ccff02
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
nwdiagDiagram {
|
||||
network {
|
||||
BackGroundColor #555
|
||||
}
|
||||
group {
|
||||
BackGroundColor #2
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
root {
|
||||
FontName SansSerif
|
||||
HyperLinkColor blue
|
||||
HyperLinkUnderlineThickness 1
|
||||
FontColor black
|
||||
FontSize 14
|
||||
FontStyle plain
|
||||
|
@ -68,8 +69,10 @@ stereotype {
|
|||
|
||||
element {
|
||||
Shadowing 4.0
|
||||
title {
|
||||
FontStyle bold
|
||||
composite {
|
||||
title {
|
||||
FontStyle bold
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -136,6 +139,14 @@ group {
|
|||
BackGroundColor transparent
|
||||
}
|
||||
|
||||
componentDiagram {
|
||||
node, rectangle {
|
||||
LineColor black
|
||||
LineThickness 1.5
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sequenceDiagram {
|
||||
group {
|
||||
LineColor black
|
||||
|
@ -251,6 +262,12 @@ stateDiagram {
|
|||
FontStyle plain
|
||||
}
|
||||
}
|
||||
circle {
|
||||
start, stop, end {
|
||||
LineColor black
|
||||
BackgroundColor black
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -300,7 +317,7 @@ collections {
|
|||
}
|
||||
|
||||
swimlane {
|
||||
BackGroundColor none
|
||||
BackGroundColor transparent
|
||||
LineColor black
|
||||
LineThickness 2
|
||||
FontSize 18
|
||||
|
@ -360,9 +377,9 @@ activityDiagram {
|
|||
FontSize 12
|
||||
RoundCorner 25
|
||||
}
|
||||
partition {
|
||||
composite {
|
||||
LineColor black
|
||||
BackgroundColor none
|
||||
BackgroundColor transparent
|
||||
}
|
||||
diamond {
|
||||
FontSize 11
|
||||
|
@ -371,18 +388,10 @@ activityDiagram {
|
|||
FontSize 11
|
||||
}
|
||||
circle {
|
||||
start {
|
||||
start, stop, end {
|
||||
LineColor black
|
||||
BackgroundColor black
|
||||
}
|
||||
stop {
|
||||
LineColor black
|
||||
BackgroundColor white
|
||||
}
|
||||
end {
|
||||
LineColor black
|
||||
BackgroundColor white
|
||||
}
|
||||
}
|
||||
activityBar {
|
||||
Shadowing 3.0
|
||||
|
@ -449,7 +458,7 @@ yamlDiagram,jsonDiagram {
|
|||
LineColor black
|
||||
arrow {
|
||||
LineThickness 1
|
||||
LineStyle 3;3
|
||||
LineStyle 3-3
|
||||
}
|
||||
node {
|
||||
LineThickness 1.5
|
||||
|
@ -494,6 +503,7 @@ timingDiagram {
|
|||
FontSize 12
|
||||
LineColor darkgreen
|
||||
BackgroundColor #c
|
||||
LineThickness 1.5
|
||||
}
|
||||
robust {
|
||||
FontStyle plain
|
||||
|
@ -505,7 +515,7 @@ timingDiagram {
|
|||
highlight {
|
||||
BackgroundColor #e
|
||||
LineThickness 2
|
||||
LineStyle 4;4
|
||||
LineStyle 4-4
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,203 @@
|
|||
package com.plantuml.api.cheerpj;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
public class Base64OutputStream extends OutputStream {
|
||||
|
||||
private final StringBuilder sb = new StringBuilder();
|
||||
|
||||
private int nb;
|
||||
private byte a;
|
||||
private byte b;
|
||||
private byte c;
|
||||
|
||||
@Override
|
||||
public void write(int data) throws IOException {
|
||||
switch (nb) {
|
||||
case 0:
|
||||
a = (byte) (data & 0xFF);
|
||||
nb = 1;
|
||||
break;
|
||||
case 1:
|
||||
b = (byte) (data & 0xFF);
|
||||
nb = 2;
|
||||
break;
|
||||
case 2:
|
||||
c = (byte) (data & 0xFF);
|
||||
nb = 0;
|
||||
append3bytes(sb, a, b, c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
switch (nb) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
append3bytes(sb, a, (byte) 0, (byte) 0);
|
||||
break;
|
||||
case 2:
|
||||
append3bytes(sb, a, b, (byte) 0);
|
||||
break;
|
||||
}
|
||||
super.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private void append3bytes(StringBuilder sb, byte a, byte b, byte c) {
|
||||
final int i0 = a & 0xff;
|
||||
final int i1 = b & 0xff;
|
||||
final int i2 = c & 0xff;
|
||||
final int o0 = i0 >>> 2;
|
||||
final int o1 = ((i0 & 3) << 4) | (i1 >>> 4);
|
||||
final int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
|
||||
final int o3 = i2 & 0x3F;
|
||||
sb.append(getBase(o0));
|
||||
sb.append(getBase(o1));
|
||||
sb.append(getBase(o2));
|
||||
sb.append(getBase(o3));
|
||||
}
|
||||
|
||||
private String getBase(int i) {
|
||||
switch (i) {
|
||||
case 0:
|
||||
return "A";
|
||||
case 1:
|
||||
return "B";
|
||||
case 2:
|
||||
return "C";
|
||||
case 3:
|
||||
return "D";
|
||||
case 4:
|
||||
return "E";
|
||||
case 5:
|
||||
return "F";
|
||||
case 6:
|
||||
return "G";
|
||||
case 7:
|
||||
return "H";
|
||||
case 8:
|
||||
return "I";
|
||||
case 9:
|
||||
return "J";
|
||||
case 10:
|
||||
return "K";
|
||||
case 11:
|
||||
return "L";
|
||||
case 12:
|
||||
return "M";
|
||||
case 13:
|
||||
return "N";
|
||||
case 14:
|
||||
return "O";
|
||||
case 15:
|
||||
return "P";
|
||||
case 16:
|
||||
return "Q";
|
||||
case 17:
|
||||
return "R";
|
||||
case 18:
|
||||
return "S";
|
||||
case 19:
|
||||
return "T";
|
||||
case 20:
|
||||
return "U";
|
||||
case 21:
|
||||
return "V";
|
||||
case 22:
|
||||
return "W";
|
||||
case 23:
|
||||
return "X";
|
||||
case 24:
|
||||
return "Y";
|
||||
case 25:
|
||||
return "Z";
|
||||
case 26:
|
||||
return "a";
|
||||
case 27:
|
||||
return "b";
|
||||
case 28:
|
||||
return "c";
|
||||
case 29:
|
||||
return "d";
|
||||
case 30:
|
||||
return "e";
|
||||
case 31:
|
||||
return "f";
|
||||
case 32:
|
||||
return "g";
|
||||
case 33:
|
||||
return "h";
|
||||
case 34:
|
||||
return "i";
|
||||
case 35:
|
||||
return "j";
|
||||
case 36:
|
||||
return "k";
|
||||
case 37:
|
||||
return "l";
|
||||
case 38:
|
||||
return "m";
|
||||
case 39:
|
||||
return "n";
|
||||
case 40:
|
||||
return "o";
|
||||
case 41:
|
||||
return "p";
|
||||
case 42:
|
||||
return "q";
|
||||
case 43:
|
||||
return "r";
|
||||
case 44:
|
||||
return "s";
|
||||
case 45:
|
||||
return "t";
|
||||
case 46:
|
||||
return "u";
|
||||
case 47:
|
||||
return "v";
|
||||
case 48:
|
||||
return "w";
|
||||
case 49:
|
||||
return "x";
|
||||
case 50:
|
||||
return "y";
|
||||
case 51:
|
||||
return "z";
|
||||
case 52:
|
||||
return "0";
|
||||
case 53:
|
||||
return "1";
|
||||
case 54:
|
||||
return "2";
|
||||
case 55:
|
||||
return "3";
|
||||
case 56:
|
||||
return "4";
|
||||
case 57:
|
||||
return "5";
|
||||
case 58:
|
||||
return "6";
|
||||
case 59:
|
||||
return "7";
|
||||
case 60:
|
||||
return "8";
|
||||
case 61:
|
||||
return "9";
|
||||
case 62:
|
||||
return "+";
|
||||
case 63:
|
||||
return "/";
|
||||
|
||||
}
|
||||
return "*";
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj;
|
||||
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.error.PSystemError;
|
||||
|
||||
//::revert when __CORE__
|
||||
//import com.leaningtech.client.Global;
|
||||
//::done
|
||||
|
||||
public class JsonResult {
|
||||
|
||||
private final StringBuilder sb = new StringBuilder();
|
||||
|
||||
private JsonResult(long startingTime) {
|
||||
sb.append("{");
|
||||
this.append("duration", System.currentTimeMillis() - startingTime);
|
||||
}
|
||||
|
||||
private Object done() {
|
||||
sb.append("}");
|
||||
// ::revert when __CORE__
|
||||
return sb.toString();
|
||||
// return Global.JSString(sb.toString());
|
||||
// ::done
|
||||
}
|
||||
|
||||
public static Object noDataFound(long startingTime) {
|
||||
final JsonResult res = new JsonResult(startingTime);
|
||||
res.append("status", "No data found");
|
||||
return res.done();
|
||||
}
|
||||
|
||||
public static Object fromCrash(long startingTime, Throwable t) {
|
||||
final JsonResult res = new JsonResult(startingTime);
|
||||
res.append("status", "General failure");
|
||||
res.append("exception", t.toString());
|
||||
return res.done();
|
||||
}
|
||||
|
||||
public static Object ok(long startingTime, ImageData imageData, Diagram diagram) {
|
||||
final JsonResult res = new JsonResult(startingTime);
|
||||
res.append("status", "ok");
|
||||
if (imageData != null) {
|
||||
res.append("width", imageData.getWidth());
|
||||
res.append("height", imageData.getHeight());
|
||||
}
|
||||
res.append("description", diagram.getDescription().getDescription());
|
||||
return res.done();
|
||||
}
|
||||
|
||||
public static Object fromError(long startingTime, PSystemError system) {
|
||||
final JsonResult res = new JsonResult(startingTime);
|
||||
res.append("status", "Parsing error");
|
||||
|
||||
final ErrorUml err = system.getErrorsUml().iterator().next();
|
||||
res.append("line", err.getPosition());
|
||||
res.append("error", err.getError());
|
||||
|
||||
return res.done();
|
||||
}
|
||||
|
||||
private void append(String key, String value) {
|
||||
appendKeyOnly(key);
|
||||
sb.append('\"');
|
||||
sb.append(value);
|
||||
sb.append('\"');
|
||||
}
|
||||
|
||||
private void append(String key, long value) {
|
||||
appendKeyOnly(key);
|
||||
sb.append(value);
|
||||
}
|
||||
|
||||
protected void appendKeyOnly(String key) {
|
||||
if (sb.length() > 1)
|
||||
sb.append(',');
|
||||
sb.append('\"');
|
||||
sb.append(key);
|
||||
sb.append('\"');
|
||||
sb.append(':');
|
||||
}
|
||||
|
||||
}
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
@ -33,11 +33,12 @@
|
|||
*
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml;
|
||||
package com.plantuml.api.cheerpj;
|
||||
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
public class StaticMemory {
|
||||
// ::remove folder when __HAXE__
|
||||
|
||||
public interface SingleLine {
|
||||
public static String cheerpjPath = "/app/";
|
||||
public static String elementIdDebugJava;
|
||||
|
||||
Diagram getSystemFromSingleLine(String singleLine);
|
||||
}
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
@ -31,28 +31,40 @@
|
|||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
package net.sourceforge.plantuml.posimo;
|
||||
package com.plantuml.api.cheerpj;
|
||||
|
||||
import java.awt.geom.Line2D;
|
||||
import java.awt.Font;
|
||||
import java.awt.FontMetrics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
||||
public abstract class RacorderAbstract implements Racorder {
|
||||
import net.sourceforge.plantuml.klimt.font.StringBounderRaw;
|
||||
import net.sourceforge.plantuml.klimt.font.UFont;
|
||||
import net.sourceforge.plantuml.klimt.font.UFontContext;
|
||||
import net.sourceforge.plantuml.klimt.geom.XDimension2D;
|
||||
|
||||
public final DotPath getRacordOut(Rectangle2D rect, Line2D tangeante) {
|
||||
tangeante = symetric(tangeante);
|
||||
return getRacordIn(rect, tangeante).reverse();
|
||||
public class StringBounderCanvas extends StringBounderRaw {
|
||||
|
||||
private final Graphics2D g2d;
|
||||
|
||||
public StringBounderCanvas(Graphics2D g2d) {
|
||||
super(g2d.getFontRenderContext());
|
||||
this.g2d = g2d;
|
||||
}
|
||||
|
||||
private static Line2D symetric(Line2D line) {
|
||||
final double x1 = line.getX1();
|
||||
final double y1 = line.getY1();
|
||||
final double x2 = line.getX2();
|
||||
final double y2 = line.getY2();
|
||||
final double dx = x2 - x1;
|
||||
final double dy = y2 - y1;
|
||||
return new Line2D.Double(x1, y1, x1 - dx, y1 - dy);
|
||||
@Override
|
||||
public boolean matchesProperty(String propertyName) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected XDimension2D calculateDimensionInternal(UFont font, String text) {
|
||||
final Font javaFont = font.getUnderlayingFont(UFontContext.G2D);
|
||||
final FontMetrics fm = g2d.getFontMetrics(javaFont);
|
||||
final Rectangle2D rect = fm.getStringBounds(text, g2d);
|
||||
return new XDimension2D(rect.getWidth(), rect.getHeight());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
public class SvgOutputStream extends OutputStream {
|
||||
|
||||
private final StringBuilder sb = new StringBuilder();
|
||||
|
||||
@Override
|
||||
public void write(int data) throws IOException {
|
||||
if (data > 0 && data < 255)
|
||||
sb.append((char) data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj;
|
||||
|
||||
public class Utils {
|
||||
|
||||
public static String cleanText(String text) {
|
||||
if (text.endsWith("\n") == false)
|
||||
text = text + "\n";
|
||||
if (text.endsWith("@start") == false)
|
||||
text = "@startuml\n" + text + "@enduml\n";
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj;
|
||||
|
||||
import net.sourceforge.plantuml.utils.Log;
|
||||
|
||||
//::revert when __CORE__
|
||||
//import com.leaningtech.client.Document;
|
||||
//import com.leaningtech.client.Element;
|
||||
//import com.leaningtech.client.Global;
|
||||
//::done
|
||||
|
||||
public class WasmLog {
|
||||
|
||||
public static long start;
|
||||
|
||||
public static void log(String message) {
|
||||
// ::revert when __CORE__
|
||||
Log.info(message);
|
||||
// try {
|
||||
// if (start > 0) {
|
||||
// final long duration = System.currentTimeMillis() - start;
|
||||
// message = "(" + duration + " ms) " + message;
|
||||
// }
|
||||
// System.err.print(message);
|
||||
// if (StaticMemory.elementIdDebugJava == null)
|
||||
// return;
|
||||
// final Document document = Global.document;
|
||||
// if (document == null)
|
||||
// return;
|
||||
// final Element messageJava = document.getElementById(Global.JSString(StaticMemory.elementIdDebugJava));
|
||||
// if (messageJava == null)
|
||||
// return;
|
||||
// messageJava.set_textContent(Global.JSString(message));
|
||||
// } catch (Throwable t) {
|
||||
// System.err.print("Error " + t);
|
||||
// t.printStackTrace();
|
||||
// }
|
||||
// ::done
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
/**
|
||||
* Provides classes used to manage PlantUML with the
|
||||
* <a href="https://labs.leaningtech.com/cheerpj3" target="_top">
|
||||
* CheerpJ</a> API.
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj;
|
|
@ -0,0 +1,16 @@
|
|||
# Directory Documentation for `cheerpj`
|
||||
|
||||
## Description
|
||||
This package provides classes used to manage [CheerpJ](https://labs.leaningtech.com/cheerpj3) API.
|
||||
|
||||
## Reference
|
||||
- [CheerpJ](https://labs.leaningtech.com/cheerpj3)
|
||||
|
||||
## Use by
|
||||
- :octocat: [plantuml/plantuml-core](https://github.com/plantuml/plantuml-core)
|
||||
- on [`/plantuml-core/src/main/java`](https://github.com/plantuml/plantuml-core/tree/main/plantuml-core/src/main/java)
|
||||
- :octocat: [plantuml/plantuml.js](https://github.com/plantuml/plantuml.js)
|
||||
|
||||
## Demonstration
|
||||
- [`plantuml-core/raw.html`](https://plantuml.github.io/plantuml-core/raw.html)
|
||||
- [`plantuml.js`](https://plantuml.github.io/plantuml.js/)
|
|
@ -0,0 +1,139 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj.v1;
|
||||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Frame;
|
||||
import java.awt.Graphics2D;
|
||||
import java.io.StringReader;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.plantuml.api.cheerpj.JsonResult;
|
||||
import com.plantuml.api.cheerpj.StringBounderCanvas;
|
||||
import com.plantuml.api.cheerpj.Utils;
|
||||
import com.plantuml.api.cheerpj.WasmLog;
|
||||
|
||||
import net.sourceforge.plantuml.BlockUml;
|
||||
import net.sourceforge.plantuml.BlockUmlBuilder;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.FileFormat;
|
||||
import net.sourceforge.plantuml.FileFormatOption;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.error.PSystemError;
|
||||
import net.sourceforge.plantuml.klimt.color.ColorMapper;
|
||||
import net.sourceforge.plantuml.klimt.color.HColor;
|
||||
import net.sourceforge.plantuml.klimt.color.HColors;
|
||||
import net.sourceforge.plantuml.klimt.drawing.g2d.UGraphicG2d;
|
||||
import net.sourceforge.plantuml.klimt.font.StringBounder;
|
||||
import net.sourceforge.plantuml.klimt.shape.URectangle;
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
|
||||
public class DirectDraw {
|
||||
|
||||
public static Frame frame;
|
||||
public static Graphics2D g2d;
|
||||
private static int frameWidth;
|
||||
private static int frameHeight;
|
||||
|
||||
public static Object initArea(int width, int height) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
WasmLog.log("initCanvas");
|
||||
if (g2d == null) {
|
||||
frameWidth = width;
|
||||
frameHeight = height;
|
||||
frame = new Frame();
|
||||
frame.setUndecorated(true);
|
||||
frame.setSize(frameWidth, frameHeight);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
g2d = (Graphics2D) frame.getGraphics();
|
||||
WasmLog.log("initCanvas done = " + frame);
|
||||
return 45;
|
||||
}
|
||||
WasmLog.log("initCanvas skipped because it has already been done");
|
||||
return 47;
|
||||
}
|
||||
|
||||
public static Object draw(String mode, String text) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
|
||||
try {
|
||||
text = Utils.cleanText(text);
|
||||
|
||||
final BlockUmlBuilder builder = new BlockUmlBuilder(Collections.<String>emptyList(), UTF_8,
|
||||
Defines.createEmpty(), new StringReader(text), null, "string");
|
||||
List<BlockUml> blocks = builder.getBlockUmls();
|
||||
|
||||
if (blocks.size() == 0)
|
||||
return JsonResult.noDataFound(start);
|
||||
|
||||
WasmLog.log("...loading data...");
|
||||
|
||||
final Diagram system = blocks.get(0).getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
final ErrorUml error = ((PSystemError) system).getFirstError();
|
||||
WasmLog.log("[" + error.getPosition() + "] " + error.getError());
|
||||
return JsonResult.fromError(start, (PSystemError) system);
|
||||
}
|
||||
|
||||
WasmLog.log("...processing...");
|
||||
|
||||
final HColor back = HColors.simple(Color.WHITE);
|
||||
final StringBounder stringBounder = new StringBounderCanvas(g2d);
|
||||
final UGraphicG2d ug = new UGraphicG2d(back, ColorMapper.IDENTITY, stringBounder, g2d, 1.0, FileFormat.PNG);
|
||||
WasmLog.log("...cleaning...");
|
||||
ug.apply(back).apply(back.bg()).draw(URectangle.build(frameWidth, frameHeight));
|
||||
WasmLog.log("...drawing...");
|
||||
|
||||
system.exportDiagramGraphic(ug, new FileFormatOption(FileFormat.PNG));
|
||||
|
||||
WasmLog.log("done!");
|
||||
|
||||
return JsonResult.ok(start, null, system);
|
||||
|
||||
} catch (Throwable t) {
|
||||
WasmLog.log("Fatal error " + t);
|
||||
return JsonResult.fromCrash(start, t);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,121 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj.v1;
|
||||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.plantuml.api.cheerpj.JsonResult;
|
||||
import com.plantuml.api.cheerpj.Utils;
|
||||
import com.plantuml.api.cheerpj.WasmLog;
|
||||
|
||||
import net.sourceforge.plantuml.BlockUml;
|
||||
import net.sourceforge.plantuml.BlockUmlBuilder;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.code.NoPlantumlCompressionException;
|
||||
import net.sourceforge.plantuml.code.TranscoderUtil;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.error.PSystemError;
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
|
||||
//::revert when __CORE__
|
||||
//import com.leaningtech.client.Global;
|
||||
//::done
|
||||
|
||||
public class Info {
|
||||
|
||||
public static Object decode(String text) {
|
||||
String result;
|
||||
try {
|
||||
result = TranscoderUtil.getDefaultTranscoder().decode(text);
|
||||
} catch (NoPlantumlCompressionException e) {
|
||||
e.printStackTrace();
|
||||
result = "";
|
||||
}
|
||||
// ::revert when __CORE__
|
||||
return result;
|
||||
// return Global.JSString(result);
|
||||
// ::done
|
||||
}
|
||||
|
||||
public static Object encode(String text) {
|
||||
String result;
|
||||
try {
|
||||
result = TranscoderUtil.getDefaultTranscoder().encode(text);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
result = "";
|
||||
}
|
||||
// ::revert when __CORE__
|
||||
return result;
|
||||
// return Global.JSString(result);
|
||||
// ::done
|
||||
}
|
||||
|
||||
public static Object syntaxCheck(String text) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
WasmLog.log("Starting processing");
|
||||
|
||||
try {
|
||||
text = Utils.cleanText(text);
|
||||
final BlockUmlBuilder builder = new BlockUmlBuilder(Collections.<String>emptyList(), UTF_8,
|
||||
Defines.createEmpty(), new StringReader(text), null, "string");
|
||||
List<BlockUml> blocks = builder.getBlockUmls();
|
||||
|
||||
if (blocks.size() == 0)
|
||||
return JsonResult.noDataFound(start);
|
||||
|
||||
final Diagram system = blocks.get(0).getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
final ErrorUml error = ((PSystemError) system).getFirstError();
|
||||
WasmLog.log("[" + error.getPosition() + "] " + error.getError());
|
||||
return JsonResult.fromError(start, (PSystemError) system);
|
||||
}
|
||||
|
||||
return JsonResult.ok(start, null, system);
|
||||
|
||||
} catch (Throwable t) {
|
||||
WasmLog.log("Fatal error " + t);
|
||||
return JsonResult.fromCrash(start, t);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,156 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj.v1;
|
||||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.StringReader;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.plantuml.api.cheerpj.Base64OutputStream;
|
||||
import com.plantuml.api.cheerpj.JsonResult;
|
||||
import com.plantuml.api.cheerpj.Utils;
|
||||
import com.plantuml.api.cheerpj.WasmLog;
|
||||
|
||||
import net.sourceforge.plantuml.BlockUml;
|
||||
import net.sourceforge.plantuml.BlockUmlBuilder;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.FileFormat;
|
||||
import net.sourceforge.plantuml.FileFormatOption;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.error.PSystemError;
|
||||
import net.sourceforge.plantuml.klimt.color.ColorMapper;
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
|
||||
//::revert when __CORE__
|
||||
//import com.leaningtech.client.Global;
|
||||
//::done
|
||||
|
||||
public class Png {
|
||||
|
||||
public static Object convertToBlob(String mode, String text, String pathOut) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
WasmLog.log("Starting processing");
|
||||
|
||||
try {
|
||||
FileFormatOption format = new FileFormatOption(FileFormat.PNG);
|
||||
if ("dark".equalsIgnoreCase(mode))
|
||||
format = format.withColorMapper(ColorMapper.DARK_MODE);
|
||||
text = Utils.cleanText(text);
|
||||
final BlockUmlBuilder builder = new BlockUmlBuilder(Collections.<String>emptyList(), UTF_8,
|
||||
Defines.createEmpty(), new StringReader(text), null, "string");
|
||||
List<BlockUml> blocks = builder.getBlockUmls();
|
||||
|
||||
if (blocks.size() == 0)
|
||||
return JsonResult.noDataFound(start);
|
||||
|
||||
final Diagram system = blocks.get(0).getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
final ErrorUml error = ((PSystemError) system).getFirstError();
|
||||
WasmLog.log("[" + error.getPosition() + "] " + error.getError());
|
||||
return JsonResult.fromError(start, (PSystemError) system);
|
||||
}
|
||||
|
||||
WasmLog.log("...processing...");
|
||||
|
||||
final FileOutputStream fos = new FileOutputStream(new File(pathOut));
|
||||
WasmLog.log("...loading data...");
|
||||
|
||||
final ImageData imageData = system.exportDiagram(fos, 0, format);
|
||||
|
||||
WasmLog.log("Done!");
|
||||
fos.close();
|
||||
|
||||
return JsonResult.ok(start, imageData, system);
|
||||
|
||||
} catch (Throwable t) {
|
||||
WasmLog.log("Fatal error " + t);
|
||||
return JsonResult.fromCrash(start, t);
|
||||
}
|
||||
}
|
||||
|
||||
public static Object convertToBase64(String mode, String text) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
WasmLog.log("Starting processing");
|
||||
|
||||
try {
|
||||
FileFormatOption format = new FileFormatOption(FileFormat.PNG);
|
||||
if ("dark".equalsIgnoreCase(mode))
|
||||
format = format.withColorMapper(ColorMapper.DARK_MODE);
|
||||
text = Utils.cleanText(text);
|
||||
final BlockUmlBuilder builder = new BlockUmlBuilder(Collections.<String>emptyList(), UTF_8,
|
||||
Defines.createEmpty(), new StringReader(text), null, "string");
|
||||
List<BlockUml> blocks = builder.getBlockUmls();
|
||||
|
||||
if (blocks.size() == 0)
|
||||
return JsonResult.noDataFound(start);
|
||||
|
||||
final Diagram system = blocks.get(0).getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
final ErrorUml error = ((PSystemError) system).getFirstError();
|
||||
WasmLog.log("[" + error.getPosition() + "] " + error.getError());
|
||||
return JsonResult.fromError(start, (PSystemError) system);
|
||||
}
|
||||
|
||||
WasmLog.log("...processing...");
|
||||
|
||||
final Base64OutputStream os64 = new Base64OutputStream();
|
||||
WasmLog.log("...loading data...");
|
||||
|
||||
final ImageData imageData = system.exportDiagram(os64, 0, format);
|
||||
|
||||
WasmLog.log("Done!");
|
||||
os64.close();
|
||||
|
||||
final String base64 = os64.toString();
|
||||
// ::revert when __CORE__
|
||||
return base64;
|
||||
// return Global.JSString(base64);
|
||||
// ::done
|
||||
|
||||
} catch (Throwable t) {
|
||||
WasmLog.log("Fatal error " + t);
|
||||
return JsonResult.fromCrash(start, t);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,247 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj.v1;
|
||||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.StringReader;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.plantuml.api.cheerpj.JsonResult;
|
||||
import com.plantuml.api.cheerpj.Utils;
|
||||
import com.plantuml.api.cheerpj.WasmLog;
|
||||
|
||||
import net.sourceforge.plantuml.BlockUml;
|
||||
import net.sourceforge.plantuml.BlockUmlBuilder;
|
||||
import net.sourceforge.plantuml.EmptyImageBuilder;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.FileFormat;
|
||||
import net.sourceforge.plantuml.FileFormatOption;
|
||||
import net.sourceforge.plantuml.api.ImageDataSimple;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.error.PSystemError;
|
||||
import net.sourceforge.plantuml.klimt.color.ColorMapper;
|
||||
import net.sourceforge.plantuml.klimt.color.HColor;
|
||||
import net.sourceforge.plantuml.klimt.color.HColors;
|
||||
import net.sourceforge.plantuml.klimt.drawing.g2d.UGraphicG2d;
|
||||
import net.sourceforge.plantuml.klimt.font.StringBounder;
|
||||
import net.sourceforge.plantuml.klimt.shape.URectangle;
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
|
||||
public class Raw {
|
||||
|
||||
private static final int MAX = 2000;
|
||||
static private BufferedImage im;
|
||||
static private Graphics2D g2d;
|
||||
|
||||
public static Object convertToBlob(String mode, String text, String pathOut) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
WasmLog.log("Starting processing");
|
||||
|
||||
try {
|
||||
text = Utils.cleanText(text);
|
||||
final BlockUmlBuilder builder = new BlockUmlBuilder(Collections.<String>emptyList(), UTF_8,
|
||||
Defines.createEmpty(), new StringReader(text), null, "string");
|
||||
List<BlockUml> blocks = builder.getBlockUmls();
|
||||
|
||||
if (blocks.size() == 0)
|
||||
return JsonResult.noDataFound(start);
|
||||
|
||||
WasmLog.log("...loading data...");
|
||||
|
||||
final Diagram system = blocks.get(0).getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
final ErrorUml error = ((PSystemError) system).getFirstError();
|
||||
WasmLog.log("[" + error.getPosition() + "] " + error.getError());
|
||||
return JsonResult.fromError(start, (PSystemError) system);
|
||||
}
|
||||
|
||||
WasmLog.log("...processing...");
|
||||
|
||||
final boolean dark = "dark".equalsIgnoreCase(mode);
|
||||
|
||||
final StringBounder stringBounder = FileFormat.PNG.getDefaultStringBounder();
|
||||
|
||||
if (im == null) {
|
||||
final EmptyImageBuilder imageBuilder = new EmptyImageBuilder(null, MAX, MAX, Color.WHITE,
|
||||
stringBounder);
|
||||
im = imageBuilder.getBufferedImage();
|
||||
g2d = im.createGraphics();
|
||||
}
|
||||
|
||||
final HColor back;
|
||||
final ColorMapper mapper;
|
||||
if (dark) {
|
||||
back = HColors.simple(Color.BLACK);
|
||||
mapper = ColorMapper.DARK_MODE;
|
||||
} else {
|
||||
back = HColors.simple(Color.WHITE);
|
||||
mapper = ColorMapper.IDENTITY;
|
||||
}
|
||||
final UGraphicG2d ug = new UGraphicG2d(back, mapper, stringBounder, g2d, 1.0, FileFormat.RAW);
|
||||
WasmLog.log("...cleaning...");
|
||||
ug.apply(back).apply(back.bg()).draw(URectangle.build(MAX, MAX));
|
||||
ug.resetMax();
|
||||
WasmLog.log("...drawing...");
|
||||
|
||||
system.exportDiagramGraphic(ug, new FileFormatOption(FileFormat.PNG));
|
||||
|
||||
final int width = (int) (2 + ug.getMaxX());
|
||||
final int height = (int) (2 + ug.getMaxY());
|
||||
WasmLog.log("...size is " + width + " x " + height + " ...");
|
||||
|
||||
final FileOutputStream fos = new FileOutputStream(new File(pathOut));
|
||||
|
||||
fos.write(((width & 0xFF00) >> 8));
|
||||
fos.write((width & 0xFF));
|
||||
fos.write(((height & 0xFF00) >> 8));
|
||||
fos.write((height & 0xFF));
|
||||
|
||||
for (int j = 0; j < height; j++)
|
||||
for (int i = 0; i < width; i++) {
|
||||
int pixel = im.getRGB(i, j);
|
||||
fos.write(((pixel & 0xFF0000) >> 16));
|
||||
fos.write(((pixel & 0x00FF00) >> 8));
|
||||
fos.write((pixel & 0xFF));
|
||||
fos.write((255));
|
||||
// // line.scanline[j++] = (((sample & 0xFF000000) >> 24) & 0xFF); // A
|
||||
}
|
||||
|
||||
WasmLog.log("done!");
|
||||
final ImageData imageData = new ImageDataSimple(width, height);
|
||||
return JsonResult.ok(start, imageData, system);
|
||||
|
||||
} catch (Throwable t) {
|
||||
WasmLog.log("Fatal error " + t);
|
||||
return JsonResult.fromCrash(start, t);
|
||||
}
|
||||
}
|
||||
|
||||
public static Object convert(String mode, String text) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
WasmLog.log("Starting processing");
|
||||
|
||||
try {
|
||||
text = Utils.cleanText(text);
|
||||
final BlockUmlBuilder builder = new BlockUmlBuilder(Collections.<String>emptyList(), UTF_8,
|
||||
Defines.createEmpty(), new StringReader(text), null, "string");
|
||||
List<BlockUml> blocks = builder.getBlockUmls();
|
||||
|
||||
if (blocks.size() == 0)
|
||||
return JsonResult.noDataFound(start);
|
||||
|
||||
WasmLog.log("...loading data...");
|
||||
|
||||
final Diagram system = blocks.get(0).getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
final ErrorUml error = ((PSystemError) system).getFirstError();
|
||||
WasmLog.log("[" + error.getPosition() + "] " + error.getError());
|
||||
return JsonResult.fromError(start, (PSystemError) system);
|
||||
}
|
||||
|
||||
WasmLog.log("...processing...");
|
||||
|
||||
final boolean dark = "dark".equalsIgnoreCase(mode);
|
||||
|
||||
final StringBounder stringBounder = FileFormat.PNG.getDefaultStringBounder();
|
||||
|
||||
if (im == null) {
|
||||
final EmptyImageBuilder imageBuilder = new EmptyImageBuilder(null, MAX, MAX, Color.WHITE,
|
||||
stringBounder);
|
||||
im = imageBuilder.getBufferedImage();
|
||||
g2d = im.createGraphics();
|
||||
}
|
||||
|
||||
final HColor back;
|
||||
final ColorMapper mapper;
|
||||
if (dark) {
|
||||
back = HColors.simple(Color.BLACK);
|
||||
mapper = ColorMapper.DARK_MODE;
|
||||
} else {
|
||||
back = HColors.simple(Color.WHITE);
|
||||
mapper = ColorMapper.IDENTITY;
|
||||
}
|
||||
final UGraphicG2d ug = new UGraphicG2d(back, mapper, stringBounder, g2d, 1.0, FileFormat.RAW);
|
||||
WasmLog.log("...cleaning...");
|
||||
ug.apply(back).apply(back.bg()).draw(URectangle.build(MAX, MAX));
|
||||
ug.resetMax();
|
||||
WasmLog.log("...drawing...");
|
||||
|
||||
system.exportDiagramGraphic(ug, new FileFormatOption(FileFormat.PNG));
|
||||
|
||||
final int width = (int) (2 + ug.getMaxX());
|
||||
final int height = (int) (2 + ug.getMaxY());
|
||||
WasmLog.log("...size is " + width + " x " + height + " ...");
|
||||
|
||||
final byte[] data = new byte[width * height * 4];
|
||||
WasmLog.log("...allocating array...");
|
||||
|
||||
int pos = 0;
|
||||
data[pos++] = (byte) ((width & 0xFF00) >> 8);
|
||||
data[pos++] = (byte) (width & 0xFF);
|
||||
data[pos++] = (byte) ((height & 0xFF00) >> 8);
|
||||
data[pos++] = (byte) (height & 0xFF);
|
||||
|
||||
for (int j = 0; j < height; j++)
|
||||
for (int i = 0; i < width; i++) {
|
||||
int pixel = im.getRGB(i, j);
|
||||
data[pos++] = (byte) ((pixel & 0xFF0000) >> 16);
|
||||
data[pos++] = (byte) ((pixel & 0x00FF00) >> 8);
|
||||
data[pos++] = (byte) (pixel & 0xFF);
|
||||
data[pos++] = (byte) (255);
|
||||
// // line.scanline[j++] = (((sample & 0xFF000000) >> 24) & 0xFF); // A
|
||||
}
|
||||
|
||||
WasmLog.log("done!");
|
||||
|
||||
return data;
|
||||
|
||||
} catch (Throwable t) {
|
||||
WasmLog.log("Fatal error " + t);
|
||||
return JsonResult.fromCrash(start, t);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj.v1;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.plantuml.api.cheerpj.StaticMemory;
|
||||
|
||||
import net.sourceforge.plantuml.version.Version;
|
||||
|
||||
public class RunInit {
|
||||
|
||||
public static void main(String[] argsArray) throws IOException {
|
||||
if (argsArray.length > 0)
|
||||
StaticMemory.cheerpjPath = argsArray[0];
|
||||
if (argsArray.length > 1)
|
||||
StaticMemory.elementIdDebugJava = argsArray[1];
|
||||
if (StaticMemory.cheerpjPath.endsWith("/") == false)
|
||||
StaticMemory.cheerpjPath = StaticMemory.cheerpjPath + "/";
|
||||
|
||||
System.err.print("PlantUML Version: " + Version.versionString());
|
||||
System.err.print("Init ok. cheerpjPath is " + StaticMemory.cheerpjPath);
|
||||
if (StaticMemory.elementIdDebugJava != null)
|
||||
System.err.print("I will echo debug message to element id " + StaticMemory.elementIdDebugJava);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
/* ========================================================================
|
||||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
* PlantUML is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* PlantUML distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
* USA.
|
||||
*
|
||||
*
|
||||
* Original Author: Arnaud Roques
|
||||
*
|
||||
*
|
||||
*/
|
||||
package com.plantuml.api.cheerpj.v1;
|
||||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
|
||||
import java.io.StringReader;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.plantuml.api.cheerpj.JsonResult;
|
||||
import com.plantuml.api.cheerpj.SvgOutputStream;
|
||||
import com.plantuml.api.cheerpj.Utils;
|
||||
import com.plantuml.api.cheerpj.WasmLog;
|
||||
|
||||
import net.sourceforge.plantuml.BlockUml;
|
||||
import net.sourceforge.plantuml.BlockUmlBuilder;
|
||||
import net.sourceforge.plantuml.ErrorUml;
|
||||
import net.sourceforge.plantuml.FileFormat;
|
||||
import net.sourceforge.plantuml.FileFormatOption;
|
||||
import net.sourceforge.plantuml.core.Diagram;
|
||||
import net.sourceforge.plantuml.core.ImageData;
|
||||
import net.sourceforge.plantuml.error.PSystemError;
|
||||
import net.sourceforge.plantuml.klimt.color.ColorMapper;
|
||||
import net.sourceforge.plantuml.preproc.Defines;
|
||||
|
||||
//::revert when __CORE__
|
||||
//import com.leaningtech.client.Global;
|
||||
//::done
|
||||
|
||||
public class Svg {
|
||||
// ::remove folder when __HAXE__
|
||||
|
||||
public static Object convert(String mode, String text) {
|
||||
final long start = System.currentTimeMillis();
|
||||
WasmLog.start = start;
|
||||
WasmLog.log("Starting processing");
|
||||
|
||||
try {
|
||||
FileFormatOption format = new FileFormatOption(FileFormat.SVG);
|
||||
if ("dark".equalsIgnoreCase(mode))
|
||||
format = format.withColorMapper(ColorMapper.DARK_MODE);
|
||||
text = Utils.cleanText(text);
|
||||
final BlockUmlBuilder builder = new BlockUmlBuilder(Collections.<String>emptyList(), UTF_8,
|
||||
Defines.createEmpty(), new StringReader(text), null, "string");
|
||||
List<BlockUml> blocks = builder.getBlockUmls();
|
||||
|
||||
if (blocks.size() == 0)
|
||||
return JsonResult.noDataFound(start);
|
||||
|
||||
final Diagram system = blocks.get(0).getDiagram();
|
||||
if (system instanceof PSystemError) {
|
||||
final ErrorUml error = ((PSystemError) system).getFirstError();
|
||||
WasmLog.log("[" + error.getPosition() + "] " + error.getError());
|
||||
return JsonResult.fromError(start, (PSystemError) system);
|
||||
}
|
||||
|
||||
WasmLog.log("...processing...");
|
||||
|
||||
final SvgOutputStream svgos = new SvgOutputStream();
|
||||
WasmLog.log("...loading data...");
|
||||
|
||||
final ImageData imageData = system.exportDiagram(svgos, 0, format);
|
||||
|
||||
WasmLog.log("Done!");
|
||||
svgos.close();
|
||||
final String svg = svgos.toString();
|
||||
// ::revert when __CORE__
|
||||
return svg;
|
||||
// return Global.JSString(svg);
|
||||
// ::done
|
||||
|
||||
} catch (Throwable t) {
|
||||
WasmLog.log("Fatal error " + t);
|
||||
return JsonResult.fromCrash(start, t);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,103 +0,0 @@
|
|||
/*
|
||||
* Copyright 2007 ZXing authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package ext.plantuml.com.google.zxing;
|
||||
|
||||
import java.util.Hashtable;
|
||||
|
||||
/**
|
||||
* Enumerates barcode formats known to this package.
|
||||
*
|
||||
* @author Sean Owen
|
||||
*/
|
||||
public final class BarcodeFormat {
|
||||
|
||||
// No, we can't use an enum here. J2ME doesn't support it.
|
||||
|
||||
private static final Hashtable VALUES = new Hashtable();
|
||||
|
||||
/** QR Code 2D barcode format. */
|
||||
public static final BarcodeFormat QR_CODE = new BarcodeFormat("QR_CODE");
|
||||
|
||||
/** Data Matrix 2D barcode format. */
|
||||
public static final BarcodeFormat DATA_MATRIX = new BarcodeFormat("DATA_MATRIX");
|
||||
|
||||
/** UPC-E 1D format. */
|
||||
public static final BarcodeFormat UPC_E = new BarcodeFormat("UPC_E");
|
||||
|
||||
/** UPC-A 1D format. */
|
||||
public static final BarcodeFormat UPC_A = new BarcodeFormat("UPC_A");
|
||||
|
||||
/** EAN-8 1D format. */
|
||||
public static final BarcodeFormat EAN_8 = new BarcodeFormat("EAN_8");
|
||||
|
||||
/** EAN-13 1D format. */
|
||||
public static final BarcodeFormat EAN_13 = new BarcodeFormat("EAN_13");
|
||||
|
||||
/** UPC/EAN extension format. Not a stand-alone format. */
|
||||
public static final BarcodeFormat UPC_EAN_EXTENSION = new BarcodeFormat("UPC_EAN_EXTENSION");
|
||||
|
||||
/** Code 128 1D format. */
|
||||
public static final BarcodeFormat CODE_128 = new BarcodeFormat("CODE_128");
|
||||
|
||||
/** Code 39 1D format. */
|
||||
public static final BarcodeFormat CODE_39 = new BarcodeFormat("CODE_39");
|
||||
|
||||
/** Code 93 1D format. */
|
||||
public static final BarcodeFormat CODE_93 = new BarcodeFormat("CODE_93");
|
||||
|
||||
/** CODABAR 1D format. */
|
||||
public static final BarcodeFormat CODABAR = new BarcodeFormat("CODABAR");
|
||||
|
||||
/** ITF (Interleaved Two of Five) 1D format. */
|
||||
public static final BarcodeFormat ITF = new BarcodeFormat("ITF");
|
||||
|
||||
/** RSS 14 */
|
||||
public static final BarcodeFormat RSS14 = new BarcodeFormat("RSS14");
|
||||
|
||||
/** PDF417 format. */
|
||||
public static final BarcodeFormat PDF417 = new BarcodeFormat("PDF417");
|
||||
|
||||
/** RSS EXPANDED */
|
||||
public static final BarcodeFormat RSS_EXPANDED = new BarcodeFormat("RSS_EXPANDED");
|
||||
|
||||
private final String name;
|
||||
|
||||
private BarcodeFormat(String name) {
|
||||
this.name = name;
|
||||
VALUES.put(name, this);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public static BarcodeFormat valueOf(String name) {
|
||||
if (name == null || name.length() == 0) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
BarcodeFormat format = (BarcodeFormat) VALUES.get(name);
|
||||
if (format == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
return format;
|
||||
}
|
||||
|
||||
}
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
@ -26,6 +26,7 @@ import java.lang.annotation.Target;
|
|||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ ElementType.CONSTRUCTOR, ElementType.METHOD })
|
||||
public @interface Comment {
|
||||
// ::remove folder when __HAXE__
|
||||
|
||||
String comment();
|
||||
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* (C) Copyright 2009-2023, Arnaud Roques
|
||||
* (C) Copyright 2009-2024, Arnaud Roques
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of PlantUML.
|
||||
*
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* This package is part of Smetana:
|
||||
* the internal port (from <code>C</code> to <code>Java</code>)
|
||||
* of <a href="https://graphviz.org"target="_top">GraphViz/Dot</a>
|
||||
* in <a href="https://plantuml.com/smetana02" target="_top">plantuml</a>.
|
||||
*
|
||||
* @see h
|
||||
* @see smetana.core
|
||||
* @see net.sourceforge.plantuml.sdot
|
||||
*
|
||||
*/
|
||||
package gen.annotation;
|
|
@ -2,12 +2,12 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of Smetana.
|
||||
* Smetana is a partial translation of Graphviz/Dot sources from C to Java.
|
||||
|
@ -45,7 +45,6 @@
|
|||
*/
|
||||
package gen.lib.cdt;
|
||||
import static gen.lib.cdt.dtsize__c.dtsize_;
|
||||
import static smetana.core.Macro.N;
|
||||
import static smetana.core.Macro.UNSUPPORTED;
|
||||
import static smetana.core.debug.SmetanaDebug.ENTERING;
|
||||
import static smetana.core.debug.SmetanaDebug.LEAVING;
|
||||
|
@ -54,6 +53,7 @@ import gen.annotation.Original;
|
|||
import gen.annotation.Unused;
|
||||
import h.ST_dt_s;
|
||||
import h.ST_dtdisc_s;
|
||||
import smetana.core.Globals;
|
||||
import smetana.core.Memory;
|
||||
|
||||
public class dtclose__c {
|
||||
|
@ -127,27 +127,27 @@ public class dtclose__c {
|
|||
// int dtclose(register Dt_t* dt)
|
||||
@Unused
|
||||
@Original(version="2.38.0", path="lib/cdt/dtclose.c", name="dtclose", key="7ggbhlblmrfr1wq1k20npwyxb", definition="int dtclose(register Dt_t* dt)")
|
||||
public static int dtclose(ST_dt_s dt) {
|
||||
public static int dtclose(Globals zz, ST_dt_s dt) {
|
||||
ENTERING("7ggbhlblmrfr1wq1k20npwyxb","dtclose");
|
||||
try {
|
||||
ST_dtdisc_s disc;
|
||||
int ev = 0;
|
||||
if(N(dt) || dt.nview > 0 ) /* can't close if being viewed */
|
||||
if((dt) == null || dt.nview > 0 ) /* can't close if being viewed */
|
||||
return -1;
|
||||
/* announce the close event to see if we should continue */
|
||||
disc = (ST_dtdisc_s) dt.disc;
|
||||
if(disc.eventf!=null &&
|
||||
(ev = (Integer)disc.eventf.exe(dt, 2, null, disc)) < 0)
|
||||
(ev = (Integer)disc.eventf.exe(zz, dt, 2, null, disc)) < 0)
|
||||
return -1;
|
||||
if(dt.view!=null) /* turn off viewing */
|
||||
UNSUPPORTED("1xbo7gf92fmqmu2tzpfeuc0wk"); // dtview(dt,((Dt_t*)0));
|
||||
if(ev == 0) /* release all allocated data */ {
|
||||
dt.meth.searchf.exe(dt, null, 0000100);
|
||||
dt.meth.searchf.exe(zz, dt, null, 0000100);
|
||||
if(dtsize_(dt) > 0)
|
||||
return -1;
|
||||
if(dt.data.ntab > 0)
|
||||
UNSUPPORTED("4ugmcpi8vkb013vuo4wykn0a3"); // (*dt->memoryf)(dt,(void*)dt->data->hh._htab,0,disc);
|
||||
dt.memoryf.exe(dt, dt.data, null, disc);
|
||||
dt.memoryf.exe(zz, dt, dt.data, null, disc);
|
||||
}
|
||||
if(dt.type == 0)
|
||||
Memory.free(dt);
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of Smetana.
|
||||
* Smetana is a partial translation of Graphviz/Dot sources from C to Java.
|
||||
|
@ -46,7 +46,6 @@
|
|||
package gen.lib.cdt;
|
||||
import static gen.lib.cdt.dtflatten__c.dtflatten;
|
||||
import static gen.lib.cdt.dtrestore__c.dtrestore;
|
||||
import static smetana.core.Macro.N;
|
||||
import static smetana.core.Macro.UNSUPPORTED;
|
||||
import static smetana.core.debug.SmetanaDebug.ENTERING;
|
||||
import static smetana.core.debug.SmetanaDebug.LEAVING;
|
||||
|
@ -59,6 +58,7 @@ import h.ST_dtlink_s;
|
|||
import smetana.core.CFunction;
|
||||
import smetana.core.CFunctionAbstract;
|
||||
import smetana.core.CString;
|
||||
import smetana.core.Globals;
|
||||
import smetana.core.Memory;
|
||||
import smetana.core.size_t;
|
||||
|
||||
|
@ -66,7 +66,7 @@ public class dtdisc__c {
|
|||
|
||||
public static CFunction dtmemory = new CFunctionAbstract("dtmemory") {
|
||||
|
||||
public Object exe(Object... args) {
|
||||
public Object exe(Globals zz, Object... args) {
|
||||
return dtmemory((ST_dt_s)args[0], (Object)args[1], (size_t)args[2], (ST_dtdisc_s)args[3]);
|
||||
}};
|
||||
|
||||
|
@ -96,27 +96,27 @@ LEAVING("507t9jcy6v9twvl30rs9i2nwi","dtmemory");
|
|||
// Dtdisc_t* dtdisc(Dt_t* dt, Dtdisc_t* disc, int type)
|
||||
@Unused
|
||||
@Original(version="2.38.0", path="lib/cdt/dtdisc.c", name="dtdisc", key="axpvuswclmi9bx3qtlh4quyah", definition="Dtdisc_t* dtdisc(Dt_t* dt, Dtdisc_t* disc, int type)")
|
||||
public static ST_dtdisc_s dtdisc(ST_dt_s dt, ST_dtdisc_s disc, int type) {
|
||||
public static ST_dtdisc_s dtdisc(Globals zz, ST_dt_s dt, ST_dtdisc_s disc, int type) {
|
||||
ENTERING("axpvuswclmi9bx3qtlh4quyah","dtdisc");
|
||||
try {
|
||||
CFunction searchf;
|
||||
ST_dtlink_s r, t;
|
||||
CString k;
|
||||
ST_dtdisc_s old;
|
||||
if(N(old = (ST_dtdisc_s) dt.disc) ) /* initialization call from dtopen() */
|
||||
if((old = (ST_dtdisc_s) dt.disc) == null ) /* initialization call from dtopen() */
|
||||
{ dt.disc = disc;
|
||||
if(N(dt.memoryf = disc.memoryf ))
|
||||
if((dt.memoryf = disc.memoryf ) == null)
|
||||
dt.memoryf = dtdisc__c.dtmemory;
|
||||
return disc;
|
||||
}
|
||||
if(N(disc)) /* only want to know current discipline */
|
||||
if((disc) == null) /* only want to know current discipline */
|
||||
return old;
|
||||
searchf = dt.meth.searchf;
|
||||
if((dt.data.type&010000)!=0) dtrestore(dt,null);
|
||||
if(old.eventf!=null && ((Integer)old.eventf.exe(dt,3, disc,old)) < 0)
|
||||
if(old.eventf!=null && ((Integer)old.eventf.exe(zz, dt,3, disc,old)) < 0)
|
||||
return null;
|
||||
dt.disc = disc;
|
||||
if(N(dt.memoryf = disc.memoryf))
|
||||
if((dt.memoryf = disc.memoryf) == null)
|
||||
dt.memoryf = dtdisc__c.dtmemory;
|
||||
if((dt.data.type&(0000040|0000100|0000020))!=0)
|
||||
UNSUPPORTED("e2tzh95k1lvjl6wbtpwizam8q"); // goto done;
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of Smetana.
|
||||
* Smetana is a partial translation of Graphviz/Dot sources from C to Java.
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of Smetana.
|
||||
* Smetana is a partial translation of Graphviz/Dot sources from C to Java.
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of Smetana.
|
||||
* Smetana is a partial translation of Graphviz/Dot sources from C to Java.
|
||||
|
@ -45,8 +45,6 @@
|
|||
*/
|
||||
package gen.lib.cdt;
|
||||
import static gen.lib.cdt.dtdisc__c.dtdisc;
|
||||
import static smetana.core.JUtils.sizeof;
|
||||
import static smetana.core.Macro.N;
|
||||
import static smetana.core.debug.SmetanaDebug.ENTERING;
|
||||
import static smetana.core.debug.SmetanaDebug.LEAVING;
|
||||
|
||||
|
@ -56,9 +54,13 @@ import h.ST_dt_s;
|
|||
import h.ST_dtdata_s;
|
||||
import h.ST_dtdisc_s;
|
||||
import h.ST_dtmethod_s;
|
||||
import smetana.core.Globals;
|
||||
import smetana.core.Memory;
|
||||
import smetana.core.ZType;
|
||||
import smetana.core.size_t;
|
||||
|
||||
public class dtopen__c {
|
||||
// ::remove folder when __HAXE__
|
||||
//1 9k44uhd5foylaeoekf3llonjq
|
||||
// extern Dtmethod_t* Dtset
|
||||
|
||||
|
@ -133,22 +135,22 @@ public class dtopen__c {
|
|||
// Dt_t* dtopen(Dtdisc_t* disc, Dtmethod_t* meth)
|
||||
@Unused
|
||||
@Original(version="2.38.0", path="lib/cdt/dtopen.c", name="dtopen", key="34nbfbdgwe34hb4vmfr5p6kbh", definition="Dt_t* dtopen(Dtdisc_t* disc, Dtmethod_t* meth)")
|
||||
public static ST_dt_s dtopen(ST_dtdisc_s disc, ST_dtmethod_s meth) {
|
||||
public static ST_dt_s dtopen(Globals zz, ST_dtdisc_s disc, ST_dtmethod_s meth) {
|
||||
ENTERING("34nbfbdgwe34hb4vmfr5p6kbh","dtopen");
|
||||
try {
|
||||
ST_dt_s dt = null;
|
||||
int e;
|
||||
ST_dtdata_s data;
|
||||
if(N(disc) || N(meth))
|
||||
if((disc) == null || (meth) == null)
|
||||
return null;
|
||||
/* allocate space for dictionary */
|
||||
if(N(dt = new ST_dt_s()))
|
||||
if((dt = new ST_dt_s()) == null)
|
||||
return null;
|
||||
// /* initialize all absolutely private data */
|
||||
dt.searchf = null;
|
||||
dt.meth = null;
|
||||
dt.disc = null;
|
||||
dtdisc(dt,disc,0);
|
||||
dtdisc(zz, dt,disc,0);
|
||||
dt.type = 0;
|
||||
dt.nview = 0;
|
||||
dt.view = null;
|
||||
|
@ -181,7 +183,7 @@ try {
|
|||
// }
|
||||
}
|
||||
/* allocate sharable data */
|
||||
if(N(data = (ST_dtdata_s) (dt.memoryf.exe(dt,null,sizeof(ST_dtdata_s.class),disc)) ))
|
||||
if(((data = (ST_dtdata_s) (dt.memoryf.exe(zz, dt,null,new size_t(ZType.ST_dtdata_s),disc)) ))==null)
|
||||
{ err_open:
|
||||
Memory.free(dt);
|
||||
return (null);
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
* PlantUML : a free UML diagram generator
|
||||
* ========================================================================
|
||||
*
|
||||
* Project Info: http://plantuml.com
|
||||
* Project Info: https://plantuml.com
|
||||
*
|
||||
* If you like this project or if you find it useful, you can support us at:
|
||||
*
|
||||
* http://plantuml.com/patreon (only 1$ per month!)
|
||||
* http://plantuml.com/paypal
|
||||
* https://plantuml.com/patreon (only 1$ per month!)
|
||||
* https://plantuml.com/paypal
|
||||
*
|
||||
* This file is part of Smetana.
|
||||
* Smetana is a partial translation of Graphviz/Dot sources from C to Java.
|
||||
|
@ -49,7 +49,6 @@ import static smetana.core.Macro.DT_FLATTEN;
|
|||
import static smetana.core.Macro.DT_OBAG;
|
||||
import static smetana.core.Macro.DT_OSET;
|
||||
import static smetana.core.Macro.DT_SET;
|
||||
import static smetana.core.Macro.N;
|
||||
import static smetana.core.Macro.UNSUPPORTED;
|
||||
import static smetana.core.debug.SmetanaDebug.ENTERING;
|
||||
import static smetana.core.debug.SmetanaDebug.LEAVING;
|
||||
|
@ -80,8 +79,8 @@ try {
|
|||
|
||||
|
||||
type = dt.data.type&DT_FLATTEN;
|
||||
if(N(list)) /* restoring a flattened dictionary */
|
||||
{ if(N(type))
|
||||
if((list) == null) /* restoring a flattened dictionary */
|
||||
{ if(type == 0)
|
||||
return -1;
|
||||
list = dt.data.here;
|
||||
}
|
||||
|
@ -119,7 +118,7 @@ UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
|
|||
{UNSUPPORTED("79wu0m7edfdq02msgoqkzb32"); // { dt->data->here = ((Dtlink_t*)0);
|
||||
UNSUPPORTED("c8q10nh3f6o4rjxtacmbgjxqj"); // dt->data->hh._head = list;
|
||||
}
|
||||
if(N(type))
|
||||
if(type == 0)
|
||||
dt.data.size = -1;
|
||||
}
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue