From da9d3f7bf5d170b39731572d9b171be611703ac0 Mon Sep 17 00:00:00 2001 From: SPWwj Date: Sun, 27 Aug 2023 14:55:02 +0800 Subject: [PATCH] Introduce LockManager for Async Handling and Optimize PUML Diagrams (#2345) Introduce LockManager for Async Handling and Optimize PUML Diagrams Introduce the LockManager module to manage the lifecycle of asynchronous functions, ensuring robust and consistent handling within synchronous methods. Utilize the createLock, deleteLock, and waitForLockRelease methods for starting, stopping, and waiting for async functions respectively. Code snippet: ```javascript const LockManager = require('path_to/LockManager'); const lockId = LockManager.createLock(); LockManager.deleteLock(lockId); await LockManager.waitForLockRelease(); ``` Fix the issue where all distinct PUML diagrams were being reprocessed on every hot reload by introducing a hashmap tracker. - The hash key comes from the content and the file name of the PUML diagram. By implementing these changes, the code is made more maintainable, asynchronous functions are properly managed, and PUML diagram processing is optimized. --- docs/devGuide/development/workflow.md | 10 +- docs/userGuide/diagrams/activity.png | Bin 10432 -> 0 bytes docs/userGuide/diagrams/archimate.png | Bin 51391 -> 0 bytes docs/userGuide/diagrams/class.png | Bin 18650 -> 0 bytes docs/userGuide/diagrams/component.png | Bin 28775 -> 0 bytes docs/userGuide/diagrams/ditaa.png | Bin 8368 -> 0 bytes docs/userGuide/diagrams/entityrelation.png | Bin 14250 -> 0 bytes docs/userGuide/diagrams/gantt.png | Bin 10745 -> 0 bytes docs/userGuide/diagrams/object.png | Bin 10134 -> 0 bytes docs/userGuide/diagrams/sequence.png | Bin 12936 -> 0 bytes docs/userGuide/diagrams/state.png | Bin 41198 -> 0 bytes docs/userGuide/diagrams/usecase.png | Bin 12474 -> 0 bytes docs/userGuide/syntax/diagrams.md | 44 ++++----- packages/core/src/Page/index.ts | 5 + .../default/markbind-plugin-plantuml.ts | 39 ++++++-- packages/core/src/utils/LockManager.ts | 86 ++++++++++++++++++ .../core/test/unit/utils/LockManager.test.ts | 42 +++++++++ 17 files changed, 184 insertions(+), 42 deletions(-) delete mode 100644 docs/userGuide/diagrams/activity.png delete mode 100644 docs/userGuide/diagrams/archimate.png delete mode 100644 docs/userGuide/diagrams/class.png delete mode 100644 docs/userGuide/diagrams/component.png delete mode 100644 docs/userGuide/diagrams/ditaa.png delete mode 100644 docs/userGuide/diagrams/entityrelation.png delete mode 100644 docs/userGuide/diagrams/gantt.png delete mode 100644 docs/userGuide/diagrams/object.png delete mode 100644 docs/userGuide/diagrams/sequence.png delete mode 100644 docs/userGuide/diagrams/state.png delete mode 100644 docs/userGuide/diagrams/usecase.png create mode 100644 packages/core/src/utils/LockManager.ts create mode 100644 packages/core/test/unit/utils/LockManager.test.ts diff --git a/docs/devGuide/development/workflow.md b/docs/devGuide/development/workflow.md index 1c22eb41f8..4127c6110b 100644 --- a/docs/devGuide/development/workflow.md +++ b/docs/devGuide/development/workflow.md @@ -375,15 +375,7 @@ To update PlantUML to a newer version: 1. Download the JAR file from [PlantUML's website](https://plantuml.com/download). 1. Rename the file to `plantuml.jar` (if required), and replace the existing JAR file located in `packages/core/src/plugins/default`. -1. Generate the image files for the `.puml` files listed in `docs/userGuide/diagrams`. - - - -1. Add a new `.md` file in `userGuide`, e.g. `plantuml.md`, containing `` tags of all diagrams to be generated. -1. Serve the documentation site using `markbind serve -d`. -1. Access the corresponding HTML page with the generated diagrams, i.e. `/userGuide/plantuml.html`. -1. Right-click on each image and save the image in `docs/userGuide/diagrams`. - +1. Check the HTML pages that contain PlantUML diagrams, i.e. `/userGuide/components/imagesAndDiagrams.html`. ### Updating Bootstrap and Bootswatch diff --git a/docs/userGuide/diagrams/activity.png b/docs/userGuide/diagrams/activity.png deleted file mode 100644 index 46e7c97c0adc00e6baa2c91db6fbc0f16b11bcc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10432 zcmb_?c{tSX`|l7+LYgFrQI?THB1B_fvkY0XWJ|W}nk-|>5=oW_*#_B3WJ$T3RX$?r@yYi`2sj-vG*HPxSOen5u$)=zJk5~sO4 z*Kf^ze&)j>HXp|{v0-nsOh;;nKLQ^;4s1Fl8>op)erQzD}(pyFe|k*~oor6PBPHwcRimW*?YA2B3 z0~vx~F(3?%q+q!FZh=U|jJ0`cfw1y@8x%4xAITZWfQYs^A;lYST{leioH`K>87M9; zcBM=gE&8=^s`AyrV^mDii!2F*gRd%>AlJo_&j;PM=ZaiUq)Qh~EKpS1w?PdYbv|2; z>hGy1^)EY~G`NE!%`NTBda%N^pV@A;S$ZP(GM=c19!)4pizb|<5OE|__QgO-Yn&}1 z#yC>Qj^2&u=kP?3y%vf?*(~%EBoKj3lYOORd@h0`eZKFvPJMEb6hUB1ESz?#k`7Jy z+^-cu93p{)u#u9Ij`~3?Nf3wcJjXzky)Y0UAvQ521W5Zp;y(tVS0K&7`VJ62qbDpR9;^X82jHOlkeRbJkoqqgU%sh9o?d)3y}ffp-=+`DxhQ<9Sx!@%CoD)d6R zzAh44oHF@U>)+ekyTc5DoFYO0MA;t_F8s9gN3)) zS`1D=cwzZ#wL@htF6;A(2yPTkIkt)fVkT@dN4h?d-+TDd2ZaIXtR>&!(^->q{ye5F zKca76&v*V2#p8$e+MD1fY8WVfYGGlqnfB8w`gYl*_kbiLf~q9VRK2+eS}=k^&tw3D z>f(#B>i@hX;VBWk!{xClpRLsNk+{QxwLy`n1KR#!x*hRAU41EOt?ePgaE-X0_jjJE z!5Tg!=2SBLYVP!Hr(CjZ?ZT~{mDb{H-i;iOU3pQx_2}r_*w}z$oPJHl*p%;_{Q<8;7?u&&v)w3#f<; z95ux_n=Fo0@j5O2sv8*@;U9L*Pfa!1!cRL6yYZ9n;jzfM{-WW0Q%b8<=j+pqHB%ab zEx4Z<(7~x`Y}&MNsl!~~hUYsuMwjYLvY@4+S;D%^=_~wHvPhp+e2<0T_SitSPLbec z3WqCfY`Cd-kJKi7$#AM7U1XC~q!0?nxL*u)y#5jXB|C=SCe_+tz1X6g6JN^}?NSx~ z_N}tYN)kuYRNl(>Y1HKSc)CaTHH$RAf%9q_8W%2HU=VSS9k!+IfR4stb`)wpTlM!? zZ26MYq1R@=v%0P{^LIad+MJ=9HlT;78hrJe)cW_<>hDs=g_ilJ^+EJFe-nM%$4wC& zC<9rVmUt1Q{<*DRpPGE=eomGylqcQhw)-XNE@3p()B;1_Y;SL0A9&gdk9V!MvH0i>S!wVR&x$i)zhQd=b5sfo|*Y7e%uo;VA-i+ zRN)GbloVC;Jd@ii<;{z+_O#@fZ~aA zO6N;x^qf2?Zv6W73ysHB&0}8^wm~^^N1hm41dUHk#S6PdbE4)4qRI;f68N|(c5cl{ zwgn8T$IFJ5o7YrVi;Ih!g}2!+6(^al;d>l!&}%I87v+G+IZGMmDsFAx+1csu?~g~< zVhHOt+GSwvj3NuSlHv6lgY$!>)Bdh&y{1Vr!Kn)aIptfg;vJ*zBG#f?TGTu?M*ZBj z@P<)0bUuG@+g>Z^9xipX$uOq5p(#qa@u{9+#re8<+mwcQaEJqDzT`LOR{2YRe?xB* z=050?3zv!c-FG(VtiO1cLnbCBc*SMv3%Vur`>sg%%DT`}QBmO^DF(#!y<^So|EO0M zZ5I_^9=gw!<#|%^R#WUYW=4RCg z!_tfbfaiz{`z5iKZEc}TOs#W2ehdoY`yv*;w>`X{M+V|X>SwdB?Fv3<@n)~5#SaTK zZr!@Ye*OCX?t(|WkmLMpZ@!qASWekmpFb4N;5`0jw8pPnPxw?yV+!%^co=dB*d?zl zkI=K3f+wAsd3m=sqb(-xJWO#(-Af}@#3qZaI *8Dt+KZV6&ZAzwDt+S9%BIud+ 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 diff --git a/docs/userGuide/diagrams/component.png b/docs/userGuide/diagrams/component.png deleted file mode 100644 index baabac4164a94f5293bdefed545dc4a717faf7f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28775 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 diff --git a/docs/userGuide/diagrams/gantt.png b/docs/userGuide/diagrams/gantt.png deleted file mode 100644 index 3614bbab9b1a1fd8537dfdda3f236e3d9bde6546..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10745 zcmch7WmuG5*EWK5N~$0!AmxBcNQi)-($XCwAPglEgOt)CU{I1G0@CG>L&r!X=m0~5 zfb_tSGQzh}yx;r2pXWWkAK!6&{J1XWs=fBwYn^+=8Lp{*o09B286F-U<=s2CwD9mw zrGfw5N$|mOV~M5^ocP@o4cx4pUA!EuZQSr~TRU01TDn<3V88Fh{?N_M<*_6L;^JWG z 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 QB?L`LPF423v~j?H0WY?@X#fBK diff --git a/docs/userGuide/diagrams/state.png b/docs/userGuide/diagrams/state.png deleted file mode 100644 index 721659c56f805c5886c8950cdf5cb174ed8cba40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41198 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 diff --git a/docs/userGuide/diagrams/usecase.png b/docs/userGuide/diagrams/usecase.png deleted file mode 100644 index 73d8b6288184146deea9c09427b883ef4cb9dd65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12474 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
; 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 diff --git a/docs/userGuide/syntax/diagrams.md b/docs/userGuide/syntax/diagrams.md index fcaf41778f..08f0a9afec 100644 --- a/docs/userGuide/syntax/diagrams.md +++ b/docs/userGuide/syntax/diagrams.md @@ -36,10 +36,9 @@ See [Deploying via Github Actions](../deployingTheSite.html#deploying-via-github
- + -``` @startuml alice -> bob ++ : hello @@ -52,11 +51,6 @@ bob -> george !! : delete return success @enduml -``` - - - - @@ -88,7 +82,7 @@ in another file: - + @@ -103,50 +97,50 @@ The full PlantUML syntax reference can be found at plantuml.com/guide
**Sequence Diagram**:
- + **Use Case Diagram**:
- + **Class Diagram**:
- + **Activity Diagram**:
- + **Component Diagram**:
- + **State Diagram**:
- + **Object Diagram**:
- + **Gantt Diagram**:
- + **Entity Relation Diagram**:
- + **Ditaa Diagram**:
- + **Archimate Diagram**:
- +

****Options**** -Name | Type | Description ---- | --- | --- -alt | `string` | The alternative text of the diagram. +Name | Type | Description +-----|----------|------------------------------------- +alt | `string` | The alternative text of the diagram. height | `string` | The height of the diagram in pixels. -name | `string` | The name of the output file. -src | `string` | The URL of the diagram if your diagram is in another `.puml` file.
The URL can be specified as absolute or relative references. More info in: _[Intra-Site Links]({{baseUrl}}/userGuide/formattingContents.html#intraSiteLinks)_ -width | `string` | The width of the diagram in pixels.
If both width and height are specified, width takes priority over height. It is to maintain the diagram's aspect ratio. +name | `string` | The name of the output file.
Avoid using the same name for different diagrams to prevent overwriting. +src | `string` | The URL of the diagram if your diagram is in another `.puml` file.
The URL can be specified as absolute or relative references. More info in: _[Intra-Site Links]({{baseUrl}}/userGuide/formattingContents.html#intraSiteLinks)_ +width | `string` | The width of the diagram in pixels.
If both width and height are specified, width takes priority over height. It is to maintain the diagram's aspect ratio.

diff --git a/packages/core/src/Page/index.ts b/packages/core/src/Page/index.ts index 30e4a06940..f836a6cc81 100644 --- a/packages/core/src/Page/index.ts +++ b/packages/core/src/Page/index.ts @@ -23,6 +23,8 @@ require('../patches/htmlparser2'); const _ = { cloneDeep, isObject, isArray }; +const LockManager = require('../utils/LockManager'); + const PACKAGE_VERSION = require('../../package.json').version; const { @@ -534,6 +536,9 @@ export class Page { // Each source path will only contain 1 copy of build/re-build page (the latest one) pageVueServerRenderer.pageEntries[this.pageConfig.sourcePath] = builtPage; + // Wait for all pages resources to be generated before writing to disk + await LockManager.waitForLockRelease(); + /* * Server-side render Vue page app into actual html. * diff --git a/packages/core/src/plugins/default/markbind-plugin-plantuml.ts b/packages/core/src/plugins/default/markbind-plugin-plantuml.ts index 72739e6c82..5b709af4e0 100644 --- a/packages/core/src/plugins/default/markbind-plugin-plantuml.ts +++ b/packages/core/src/plugins/default/markbind-plugin-plantuml.ts @@ -15,10 +15,24 @@ import * as urlUtil from '../../utils/urlUtil'; import { PluginContext } from '../Plugin'; import { NodeProcessorConfig } from '../../html/NodeProcessor'; import { MbNode } from '../../utils/node'; +import LockManager from '../../utils/LockManager'; + +interface DiagramStatus { + hashKey: string; +} const JAR_PATH = path.resolve(__dirname, 'plantuml.jar'); -const processedDiagrams = new Set(); +const PUML_EXT = '.png'; + +/** +* This Map maintains a record of processed diagrams. When a diagram is generated or regenerated, +* it's added to this map. Subsequently, if a PUML or non-PUML file is edited, leading to a hot reload, +* the generateDiagram function can avoid redundant regeneration by checking this map. +* If the diagram's identifier is present in the map, +* the generation process is bypassed, thus preventing duplicates. + */ +const processedDiagrams = new Map(); let graphvizCheckCompleted = false; @@ -28,15 +42,22 @@ let graphvizCheckCompleted = false; * @param content puml dsl used to generate the puml diagram */ function generateDiagram(imageOutputPath: string, content: string) { + const hashKey = cryptoJS.MD5(imageOutputPath + content).toString(); + // Avoid generating twice - if (processedDiagrams.has(imageOutputPath)) { return; } - processedDiagrams.add(imageOutputPath); + if (processedDiagrams.has(imageOutputPath) && processedDiagrams.get(imageOutputPath)?.hashKey === hashKey) { + return; + } // Creates output dir if it doesn't exist const outputDir = path.dirname(imageOutputPath); if (!fs.existsSync(outputDir)) { fs.mkdirSync(outputDir, { recursive: true }); } + const lockId = LockManager.createLock(); + + // Add new diagram to the map + processedDiagrams.set(imageOutputPath, { hashKey }); // Java command to launch PlantUML jar const cmd = `java -jar "${JAR_PATH}" -nometadata -pipe > "${imageOutputPath}"`; @@ -59,6 +80,7 @@ function generateDiagram(imageOutputPath: string, content: string) { childProcess.on('error', (error) => { logger.debug(error as unknown as string); logger.error(`Error generating ${imageOutputPath}`); + LockManager.deleteLock(lockId); }); childProcess.stderr?.on('data', (errorMsg) => { @@ -68,6 +90,7 @@ function generateDiagram(imageOutputPath: string, content: string) { childProcess.on('exit', () => { // This goes to the log file, but not shown on the console logger.debug(errorLog); + LockManager.deleteLock(lockId); }); } @@ -90,7 +113,6 @@ export = { }, beforeSiteGenerate: () => { - processedDiagrams.clear(); graphvizCheckCompleted = false; }, @@ -111,6 +133,7 @@ export = { let pumlContent; let pathFromRootToImage; + if (node.attribs.src) { const srcWithoutBaseUrl = urlUtil.stripBaseUrl(node.attribs.src, config.baseUrl); const srcWithoutLeadingSlash = srcWithoutBaseUrl.startsWith('/') @@ -126,8 +149,8 @@ export = { return; } - pathFromRootToImage = fsUtil.setExtension(srcWithoutLeadingSlash, '.png'); - node.attribs.src = fsUtil.ensurePosix(fsUtil.setExtension(node.attribs.src, '.png')); + pathFromRootToImage = fsUtil.setExtension(srcWithoutLeadingSlash, PUML_EXT); + node.attribs.src = fsUtil.ensurePosix(fsUtil.setExtension(node.attribs.src, PUML_EXT)); } else { pumlContent = cheerio(node).text(); @@ -136,13 +159,13 @@ export = { const nameWithoutLeadingSlash = nameWithoutBaseUrl.startsWith('/') ? nameWithoutBaseUrl.substring(1) : nameWithoutBaseUrl; - pathFromRootToImage = fsUtil.ensurePosix(fsUtil.setExtension(nameWithoutLeadingSlash, '.png')); + pathFromRootToImage = fsUtil.ensurePosix(fsUtil.setExtension(nameWithoutLeadingSlash, PUML_EXT)); delete node.attribs.name; } else { const normalizedContent = pumlContent.replace(/\r\n/g, '\n'); const hashedContent = cryptoJS.MD5(normalizedContent).toString(); - pathFromRootToImage = `${hashedContent}.png`; + pathFromRootToImage = `${hashedContent}${PUML_EXT}`; } node.attribs.src = `${config.baseUrl}/${pathFromRootToImage}`; diff --git a/packages/core/src/utils/LockManager.ts b/packages/core/src/utils/LockManager.ts new file mode 100644 index 0000000000..7e3781d86f --- /dev/null +++ b/packages/core/src/utils/LockManager.ts @@ -0,0 +1,86 @@ +import { v4 as uuidv4 } from 'uuid'; + +/** + * The `LockManager` is a singleton class designed to help wait for required async + * promised operations to complete + * before the page is generated. It provides functionalities to create, delete, and wait + * for the release of locks. + * The locks are stored in a Map with a unique ID (either provided or auto-generated) as + * the key. + * The class provides an instance property to get the singleton instance of `LockManager`. + */ + +class LockManager { + // Holds the single instance of LockManager. + private static _instance: LockManager; + + // A Map to keep track of the active locks. + private locks: Map; + + /** + * Private constructor to prevent direct instantiation from outside. + * Initializes the locks Map. + */ + private constructor() { + this.locks = new Map(); + } + + /** + * Provides a way to access the single instance of the LockManager. + * If it doesn't exist, it creates one. + * @returns {LockManager} The single instance of LockManager. + */ + public static get instance() { + if (!LockManager._instance) { + LockManager._instance = new LockManager(); + } + + return LockManager._instance; + } + + /** + * Creates a new lock. + * @param {string} [id] - An optional ID to use for the lock. If not provided, a UUID will be generated. + * @returns {string} The ID of the created lock. + */ + createLock(id?: string): string { + const lockId = id ?? uuidv4(); + this.locks.set(lockId, true); + return lockId; + } + + /** + * Deletes a lock by its ID. + * @param {string} lockId - The ID of the lock to be deleted. + */ + deleteLock(lockId: string): void { + this.locks.delete(lockId); + } + + /** + * Deletes all locks, clearing the locks Map. + */ + deleteAllLocks(): void { + this.locks.clear(); + } + + /** + * Waits until all locks are released and then resolves. + * @returns {Promise} A promise that resolves when all locks are released. + */ + waitForLockRelease(): Promise { + return new Promise((resolve) => { + const checkLocks = () => { + if (this.locks.size === 0) { + resolve(); + } else { + setTimeout(checkLocks, 100); + } + }; + checkLocks(); + }); + } +} + +// Export the singleton instance of LockManager. +export = LockManager.instance; diff --git a/packages/core/test/unit/utils/LockManager.test.ts b/packages/core/test/unit/utils/LockManager.test.ts new file mode 100644 index 0000000000..cc4b8bac83 --- /dev/null +++ b/packages/core/test/unit/utils/LockManager.test.ts @@ -0,0 +1,42 @@ +import LockManager from '../../../src/utils/LockManager'; + +describe('LockManager', () => { + let lockManager: typeof LockManager; + + beforeEach(() => { + lockManager = LockManager; + }); + + afterEach(() => { + lockManager.deleteAllLocks(); + }); + + it('should create a new lock', () => { + const lockId = lockManager.createLock(); + expect(lockId).toBeDefined(); + }); + + it('should use the provided ID when creating a lock', () => { + const lockId = 'customId'; + const createdLockId = lockManager.createLock(lockId); + expect(createdLockId).toEqual(lockId); + }); + + it('should delete all locks', () => { + lockManager.createLock(); + lockManager.createLock(); + lockManager.deleteAllLocks(); + }); + + it('should wait until all locks are released and resolve', async () => { + const lockId1 = lockManager.createLock(); + const lockId2 = lockManager.createLock(); + + const waitForLockReleasePromise = lockManager.waitForLockRelease(); + + setTimeout(() => lockManager.deleteLock(lockId1), 100); + setTimeout(() => lockManager.deleteLock(lockId2), 200); + + await expect(waitForLockReleasePromise).resolves.toBeUndefined(); + }); +});