From a67a27299e492949f3db3fde288555c428c8a5e7 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Tue, 10 Jan 2023 03:11:51 +0400 Subject: [PATCH] Add functionality to create content directory for a roadmap --- bin/roadmap-content.cjs | 163 ++++++++++++++++++ .../100-introduction/100-terminology.md | 1 + .../100-introduction/101-architecture.md | 1 + .../100-introduction/102-why-spring.md | 1 + .../100-spring-core/100-introduction/index.md | 1 + .../100-spring-core/101-configuration.md | 1 + .../102-dependency-injection.md | 1 + .../content/100-spring-core/103-spring-ioc.md | 1 + .../content/100-spring-core/104-spring-aop.md | 1 + .../content/100-spring-core/105-spring-mvc.md | 1 + .../100-spring-core/106-annotations.md | 1 + .../100-spring-core/107-spring-bean-scope.md | 1 + .../content/100-spring-core/index.md | 1 + .../101-spring-security/100-authentication.md | 1 + .../101-spring-security/101-authorization.md | 1 + .../content/101-spring-security/102-oauth2.md | 1 + .../103-jwt-authentication.md | 1 + .../content/101-spring-security/index.md | 1 + .../content/102-spring-boot-starters.md | 1 + .../content/103-autconfiguration.md | 1 + .../content/104-spring-boot-actuators.md | 1 + .../content/105-embedded-server.md | 1 + .../content/106-hibernate/100-transactions.md | 1 + .../106-hibernate/101-relationships.md | 1 + .../106-hibernate/102-entity-lifecycle.md | 1 + .../content/106-hibernate/index.md | 1 + .../107-spring-data/100-spring-data-jpa.md | 1 + .../101-spring-data-mongodb.md | 1 + .../107-spring-data/102-spring-data-jdbc.md | 1 + .../content/107-spring-data/index.md | 1 + .../100-spring-cloud-gateway.md | 1 + .../100-spring-cloud/101-cloud-config.md | 1 + .../102-spring-cloud-circuit-breaker.md | 1 + .../103-spring-cloud-openfeign.md | 1 + .../100-spring-cloud/104-hystrix.md | 1 + .../100-spring-cloud/105-sleuth.md | 1 + .../100-spring-cloud/106-eureka.md | 1 + .../100-spring-cloud/index.md | 1 + .../content/108-microservices/index.md | 1 + .../content/109-spring-mvc/100-servlet.md | 1 + .../content/109-spring-mvc/101-jsp-files.md | 1 + .../109-spring-mvc/102-architecture.md | 1 + .../content/109-spring-mvc/103-components.md | 1 + .../content/109-spring-mvc/index.md | 1 + .../content/110-testing/100-jpa-test.md | 1 + .../content/110-testing/101-mock-mvc.md | 1 + .../102-spring-boot-test-annotation.md | 1 + .../110-testing/103-mockbean-annotation.md | 1 + .../spring-boot/content/110-testing/index.md | 1 + 49 files changed, 211 insertions(+) create mode 100644 bin/roadmap-content.cjs create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/100-introduction/100-terminology.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/100-introduction/101-architecture.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/100-introduction/102-why-spring.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/100-introduction/index.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/101-configuration.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/102-dependency-injection.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/103-spring-ioc.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/104-spring-aop.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/105-spring-mvc.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/106-annotations.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/107-spring-bean-scope.md create mode 100644 src/roadmaps/spring-boot/content/100-spring-core/index.md create mode 100644 src/roadmaps/spring-boot/content/101-spring-security/100-authentication.md create mode 100644 src/roadmaps/spring-boot/content/101-spring-security/101-authorization.md create mode 100644 src/roadmaps/spring-boot/content/101-spring-security/102-oauth2.md create mode 100644 src/roadmaps/spring-boot/content/101-spring-security/103-jwt-authentication.md create mode 100644 src/roadmaps/spring-boot/content/101-spring-security/index.md create mode 100644 src/roadmaps/spring-boot/content/102-spring-boot-starters.md create mode 100644 src/roadmaps/spring-boot/content/103-autconfiguration.md create mode 100644 src/roadmaps/spring-boot/content/104-spring-boot-actuators.md create mode 100644 src/roadmaps/spring-boot/content/105-embedded-server.md create mode 100644 src/roadmaps/spring-boot/content/106-hibernate/100-transactions.md create mode 100644 src/roadmaps/spring-boot/content/106-hibernate/101-relationships.md create mode 100644 src/roadmaps/spring-boot/content/106-hibernate/102-entity-lifecycle.md create mode 100644 src/roadmaps/spring-boot/content/106-hibernate/index.md create mode 100644 src/roadmaps/spring-boot/content/107-spring-data/100-spring-data-jpa.md create mode 100644 src/roadmaps/spring-boot/content/107-spring-data/101-spring-data-mongodb.md create mode 100644 src/roadmaps/spring-boot/content/107-spring-data/102-spring-data-jdbc.md create mode 100644 src/roadmaps/spring-boot/content/107-spring-data/index.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/100-spring-cloud-gateway.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/101-cloud-config.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/102-spring-cloud-circuit-breaker.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/103-spring-cloud-openfeign.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/104-hystrix.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/105-sleuth.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/106-eureka.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/index.md create mode 100644 src/roadmaps/spring-boot/content/108-microservices/index.md create mode 100644 src/roadmaps/spring-boot/content/109-spring-mvc/100-servlet.md create mode 100644 src/roadmaps/spring-boot/content/109-spring-mvc/101-jsp-files.md create mode 100644 src/roadmaps/spring-boot/content/109-spring-mvc/102-architecture.md create mode 100644 src/roadmaps/spring-boot/content/109-spring-mvc/103-components.md create mode 100644 src/roadmaps/spring-boot/content/109-spring-mvc/index.md create mode 100644 src/roadmaps/spring-boot/content/110-testing/100-jpa-test.md create mode 100644 src/roadmaps/spring-boot/content/110-testing/101-mock-mvc.md create mode 100644 src/roadmaps/spring-boot/content/110-testing/102-spring-boot-test-annotation.md create mode 100644 src/roadmaps/spring-boot/content/110-testing/103-mockbean-annotation.md create mode 100644 src/roadmaps/spring-boot/content/110-testing/index.md diff --git a/bin/roadmap-content.cjs b/bin/roadmap-content.cjs new file mode 100644 index 000000000..7b10a1296 --- /dev/null +++ b/bin/roadmap-content.cjs @@ -0,0 +1,163 @@ +const fs = require('fs'); +const path = require('path'); + +const CONTENT_DIR = path.join(__dirname, '../content'); +// Directory containing the roadmaps +const ROADMAP_CONTENT_DIR = path.join(__dirname, '../src/roadmaps'); +const roadmapId = process.argv[2]; + +const allowedRoadmapIds = fs.readdirSync(ROADMAP_CONTENT_DIR); +if (!roadmapId) { + console.error('roadmapId is required'); + process.exit(1); +} + +if (!allowedRoadmapIds.includes(roadmapId)) { + console.error(`Invalid roadmap key ${roadmapId}`); + console.error(`Allowed keys are ${allowedRoadmapIds.join(', ')}`); + process.exit(1); +} + +// Directory holding the roadmap content files +const roadmapDirName = fs + .readdirSync(ROADMAP_CONTENT_DIR) + .find((dirName) => dirName.replace(/\d+-/, '') === roadmapId); + +if (!roadmapDirName) { + console.error('Roadmap directory not found'); + process.exit(1); +} + +const roadmapDirPath = path.join(ROADMAP_CONTENT_DIR, roadmapDirName); +const roadmapContentDirPath = path.join( + ROADMAP_CONTENT_DIR, + roadmapDirName, + 'content' +); + +// If roadmap content already exists do not proceed as it would override the files +if (fs.existsSync(roadmapContentDirPath)) { + console.error(`Roadmap content already exists @ ${roadmapContentDirPath}`); + process.exit(1); +} + +function prepareDirTree(control, dirTree, dirSortOrders) { + // Directories are only created for groups + if (control.typeID !== '__group__') { + return; + } + + // e.g. 104-testing-your-apps:other-options + const controlName = control?.properties?.controlName || ''; + // e.g. 104 + const sortOrder = controlName.match(/^\d+/)?.[0]; + + // No directory for a group without control name + if (!controlName || !sortOrder) { + return; + } + + // e.g. testing-your-apps:other-options + const controlNameWithoutSortOrder = controlName.replace(/^\d+-/, ''); + // e.g. ['testing-your-apps', 'other-options'] + const dirParts = controlNameWithoutSortOrder.split(':'); + + // Nest the dir path in the dirTree + let currDirTree = dirTree; + dirParts.forEach((dirPart) => { + currDirTree[dirPart] = currDirTree[dirPart] || {}; + currDirTree = currDirTree[dirPart]; + }); + + dirSortOrders[controlNameWithoutSortOrder] = Number(sortOrder); + + const childrenControls = control.children.controls.control; + // No more children + if (childrenControls.length) { + childrenControls.forEach((childControl) => { + prepareDirTree(childControl, dirTree, dirSortOrders); + }); + } + + return { dirTree, dirSortOrders }; +} + +const roadmap = require(path.join(__dirname, `../public/jsons/${roadmapId}`)); +const controls = roadmap.mockup.controls.control; + +// Prepare the dir tree that we will be creating and also calculate the sort orders +const dirTree = {}; +const dirSortOrders = {}; + +controls.forEach((control) => { + prepareDirTree(control, dirTree, dirSortOrders); +}); + +/** + * @param parentDir Parent directory in which directory is to be created + * @param dirTree Nested dir tree to be created + * @param sortOrders Mapping from groupName to sort order + * @param filePaths The mapping from groupName to file path + */ +function createDirTree(parentDir, dirTree, sortOrders, filePaths = {}) { + const childrenDirNames = Object.keys(dirTree); + const hasChildren = childrenDirNames.length !== 0; + + // @todo write test for this, yolo for now + const groupName = parentDir + .replace(roadmapContentDirPath, '') // Remove base dir path + .replace(/(^\/)|(\/$)/g, '') // Remove trailing slashes + .replace(/(^\d+?-)/g, '') // Remove sorting information + .replaceAll('/', ':') // Replace slashes with `:` + .replace(/:\d+-/, ':'); + + const humanizedGroupName = groupName + .split(':') + .pop() + ?.replaceAll('-', ' ') + .replace(/^\w/, ($0) => $0.toUpperCase()); + + const sortOrder = sortOrders[groupName] || ''; + + // Attach sorting information to dirname + // e.g. /roadmaps/100-frontend/content/internet + // ———> /roadmaps/100-frontend/content/103-internet + if (sortOrder) { + parentDir = parentDir.replace(/(.+?)([^\/]+)?$/, `$1${sortOrder}-$2`); + } + + // If no children, create a file for this under the parent directory + if (!hasChildren) { + let fileName = `${parentDir}.md`; + fs.writeFileSync(fileName, `# ${humanizedGroupName}`); + + filePaths[groupName || 'home'] = fileName.replace(CONTENT_DIR, ''); + return filePaths; + } + + // There *are* children, so create the parent as a directory + // and create `index.md` as the content file for this + fs.mkdirSync(parentDir); + + let readmeFilePath = path.join(parentDir, 'index.md'); + fs.writeFileSync(readmeFilePath, `# ${humanizedGroupName}`); + + filePaths[groupName || 'home'] = readmeFilePath.replace(CONTENT_DIR, ''); + + // For each of the directory names, create a + // directory inside the given directory + childrenDirNames.forEach((dirName) => { + createDirTree( + path.join(parentDir, dirName), + dirTree[dirName], + dirSortOrders, + filePaths + ); + }); + + return filePaths; +} + +// Create directories and get back the paths for created directories +createDirTree(roadmapContentDirPath, dirTree, dirSortOrders); +console.log('Created roadmap content directory structure'); diff --git a/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/100-terminology.md b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/100-terminology.md new file mode 100644 index 000000000..f3fb5bd48 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/100-terminology.md @@ -0,0 +1 @@ +# Terminology \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/101-architecture.md b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/101-architecture.md new file mode 100644 index 000000000..f2569bf9f --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/101-architecture.md @@ -0,0 +1 @@ +# Architecture \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/102-why-spring.md b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/102-why-spring.md new file mode 100644 index 000000000..42f2b450b --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/102-why-spring.md @@ -0,0 +1 @@ +# Why spring \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/index.md b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/index.md new file mode 100644 index 000000000..f6ecaa676 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/100-introduction/index.md @@ -0,0 +1 @@ +# Introduction \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/101-configuration.md b/src/roadmaps/spring-boot/content/100-spring-core/101-configuration.md new file mode 100644 index 000000000..af4abbfe2 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/101-configuration.md @@ -0,0 +1 @@ +# Configuration \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/102-dependency-injection.md b/src/roadmaps/spring-boot/content/100-spring-core/102-dependency-injection.md new file mode 100644 index 000000000..450bde1c7 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/102-dependency-injection.md @@ -0,0 +1 @@ +# Dependency injection \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/103-spring-ioc.md b/src/roadmaps/spring-boot/content/100-spring-core/103-spring-ioc.md new file mode 100644 index 000000000..79c7b4714 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/103-spring-ioc.md @@ -0,0 +1 @@ +# Spring ioc \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/104-spring-aop.md b/src/roadmaps/spring-boot/content/100-spring-core/104-spring-aop.md new file mode 100644 index 000000000..e754791a7 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/104-spring-aop.md @@ -0,0 +1 @@ +# Spring aop \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/105-spring-mvc.md b/src/roadmaps/spring-boot/content/100-spring-core/105-spring-mvc.md new file mode 100644 index 000000000..090bd06f7 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/105-spring-mvc.md @@ -0,0 +1 @@ +# Spring mvc \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/106-annotations.md b/src/roadmaps/spring-boot/content/100-spring-core/106-annotations.md new file mode 100644 index 000000000..fc5777e45 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/106-annotations.md @@ -0,0 +1 @@ +# Annotations \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/107-spring-bean-scope.md b/src/roadmaps/spring-boot/content/100-spring-core/107-spring-bean-scope.md new file mode 100644 index 000000000..223020144 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/107-spring-bean-scope.md @@ -0,0 +1 @@ +# Spring bean scope \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/100-spring-core/index.md b/src/roadmaps/spring-boot/content/100-spring-core/index.md new file mode 100644 index 000000000..15dd10e96 --- /dev/null +++ b/src/roadmaps/spring-boot/content/100-spring-core/index.md @@ -0,0 +1 @@ +# Spring core \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/101-spring-security/100-authentication.md b/src/roadmaps/spring-boot/content/101-spring-security/100-authentication.md new file mode 100644 index 000000000..66a783b30 --- /dev/null +++ b/src/roadmaps/spring-boot/content/101-spring-security/100-authentication.md @@ -0,0 +1 @@ +# Authentication \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/101-spring-security/101-authorization.md b/src/roadmaps/spring-boot/content/101-spring-security/101-authorization.md new file mode 100644 index 000000000..02b25f227 --- /dev/null +++ b/src/roadmaps/spring-boot/content/101-spring-security/101-authorization.md @@ -0,0 +1 @@ +# Authorization \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/101-spring-security/102-oauth2.md b/src/roadmaps/spring-boot/content/101-spring-security/102-oauth2.md new file mode 100644 index 000000000..a35c90034 --- /dev/null +++ b/src/roadmaps/spring-boot/content/101-spring-security/102-oauth2.md @@ -0,0 +1 @@ +# Oauth2 \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/101-spring-security/103-jwt-authentication.md b/src/roadmaps/spring-boot/content/101-spring-security/103-jwt-authentication.md new file mode 100644 index 000000000..c4491d8fe --- /dev/null +++ b/src/roadmaps/spring-boot/content/101-spring-security/103-jwt-authentication.md @@ -0,0 +1 @@ +# Jwt authentication \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/101-spring-security/index.md b/src/roadmaps/spring-boot/content/101-spring-security/index.md new file mode 100644 index 000000000..bffcb8402 --- /dev/null +++ b/src/roadmaps/spring-boot/content/101-spring-security/index.md @@ -0,0 +1 @@ +# Spring security \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/102-spring-boot-starters.md b/src/roadmaps/spring-boot/content/102-spring-boot-starters.md new file mode 100644 index 000000000..74a234ae7 --- /dev/null +++ b/src/roadmaps/spring-boot/content/102-spring-boot-starters.md @@ -0,0 +1 @@ +# Spring boot starters \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/103-autconfiguration.md b/src/roadmaps/spring-boot/content/103-autconfiguration.md new file mode 100644 index 000000000..427312012 --- /dev/null +++ b/src/roadmaps/spring-boot/content/103-autconfiguration.md @@ -0,0 +1 @@ +# Autconfiguration \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/104-spring-boot-actuators.md b/src/roadmaps/spring-boot/content/104-spring-boot-actuators.md new file mode 100644 index 000000000..e3fa6e3d0 --- /dev/null +++ b/src/roadmaps/spring-boot/content/104-spring-boot-actuators.md @@ -0,0 +1 @@ +# Spring boot actuators \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/105-embedded-server.md b/src/roadmaps/spring-boot/content/105-embedded-server.md new file mode 100644 index 000000000..5c2255ba7 --- /dev/null +++ b/src/roadmaps/spring-boot/content/105-embedded-server.md @@ -0,0 +1 @@ +# Embedded server \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/106-hibernate/100-transactions.md b/src/roadmaps/spring-boot/content/106-hibernate/100-transactions.md new file mode 100644 index 000000000..0125c964d --- /dev/null +++ b/src/roadmaps/spring-boot/content/106-hibernate/100-transactions.md @@ -0,0 +1 @@ +# Transactions \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/106-hibernate/101-relationships.md b/src/roadmaps/spring-boot/content/106-hibernate/101-relationships.md new file mode 100644 index 000000000..74c2a9bd9 --- /dev/null +++ b/src/roadmaps/spring-boot/content/106-hibernate/101-relationships.md @@ -0,0 +1 @@ +# Relationships \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/106-hibernate/102-entity-lifecycle.md b/src/roadmaps/spring-boot/content/106-hibernate/102-entity-lifecycle.md new file mode 100644 index 000000000..9ab681ad2 --- /dev/null +++ b/src/roadmaps/spring-boot/content/106-hibernate/102-entity-lifecycle.md @@ -0,0 +1 @@ +# Entity lifecycle \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/106-hibernate/index.md b/src/roadmaps/spring-boot/content/106-hibernate/index.md new file mode 100644 index 000000000..c13433714 --- /dev/null +++ b/src/roadmaps/spring-boot/content/106-hibernate/index.md @@ -0,0 +1 @@ +# Hibernate \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/107-spring-data/100-spring-data-jpa.md b/src/roadmaps/spring-boot/content/107-spring-data/100-spring-data-jpa.md new file mode 100644 index 000000000..f32f6c2bb --- /dev/null +++ b/src/roadmaps/spring-boot/content/107-spring-data/100-spring-data-jpa.md @@ -0,0 +1 @@ +# Spring data jpa \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/107-spring-data/101-spring-data-mongodb.md b/src/roadmaps/spring-boot/content/107-spring-data/101-spring-data-mongodb.md new file mode 100644 index 000000000..1918529e1 --- /dev/null +++ b/src/roadmaps/spring-boot/content/107-spring-data/101-spring-data-mongodb.md @@ -0,0 +1 @@ +# Spring data mongodb \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/107-spring-data/102-spring-data-jdbc.md b/src/roadmaps/spring-boot/content/107-spring-data/102-spring-data-jdbc.md new file mode 100644 index 000000000..016fbac35 --- /dev/null +++ b/src/roadmaps/spring-boot/content/107-spring-data/102-spring-data-jdbc.md @@ -0,0 +1 @@ +# Spring data jdbc \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/107-spring-data/index.md b/src/roadmaps/spring-boot/content/107-spring-data/index.md new file mode 100644 index 000000000..fd512d4e0 --- /dev/null +++ b/src/roadmaps/spring-boot/content/107-spring-data/index.md @@ -0,0 +1 @@ +# Spring data \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/100-spring-cloud-gateway.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/100-spring-cloud-gateway.md new file mode 100644 index 000000000..a6d65cf74 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/100-spring-cloud-gateway.md @@ -0,0 +1 @@ +# Spring cloud gateway \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/101-cloud-config.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/101-cloud-config.md new file mode 100644 index 000000000..3141de598 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/101-cloud-config.md @@ -0,0 +1 @@ +# Cloud config \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/102-spring-cloud-circuit-breaker.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/102-spring-cloud-circuit-breaker.md new file mode 100644 index 000000000..6779258f9 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/102-spring-cloud-circuit-breaker.md @@ -0,0 +1 @@ +# Spring cloud circuit breaker \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/103-spring-cloud-openfeign.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/103-spring-cloud-openfeign.md new file mode 100644 index 000000000..30b484192 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/103-spring-cloud-openfeign.md @@ -0,0 +1 @@ +# Spring cloud openfeign \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/104-hystrix.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/104-hystrix.md new file mode 100644 index 000000000..2324b0aa8 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/104-hystrix.md @@ -0,0 +1 @@ +# Hystrix \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/105-sleuth.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/105-sleuth.md new file mode 100644 index 000000000..7ca8c13c4 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/105-sleuth.md @@ -0,0 +1 @@ +# Sleuth \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/106-eureka.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/106-eureka.md new file mode 100644 index 000000000..d5af26186 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/106-eureka.md @@ -0,0 +1 @@ +# Eureka \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/index.md b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/index.md new file mode 100644 index 000000000..8bb55d369 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/100-spring-cloud/index.md @@ -0,0 +1 @@ +# Spring cloud \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/108-microservices/index.md b/src/roadmaps/spring-boot/content/108-microservices/index.md new file mode 100644 index 000000000..3ace82ef2 --- /dev/null +++ b/src/roadmaps/spring-boot/content/108-microservices/index.md @@ -0,0 +1 @@ +# Microservices \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/109-spring-mvc/100-servlet.md b/src/roadmaps/spring-boot/content/109-spring-mvc/100-servlet.md new file mode 100644 index 000000000..e92342d9e --- /dev/null +++ b/src/roadmaps/spring-boot/content/109-spring-mvc/100-servlet.md @@ -0,0 +1 @@ +# Servlet \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/109-spring-mvc/101-jsp-files.md b/src/roadmaps/spring-boot/content/109-spring-mvc/101-jsp-files.md new file mode 100644 index 000000000..e5530fd70 --- /dev/null +++ b/src/roadmaps/spring-boot/content/109-spring-mvc/101-jsp-files.md @@ -0,0 +1 @@ +# Jsp files \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/109-spring-mvc/102-architecture.md b/src/roadmaps/spring-boot/content/109-spring-mvc/102-architecture.md new file mode 100644 index 000000000..f2569bf9f --- /dev/null +++ b/src/roadmaps/spring-boot/content/109-spring-mvc/102-architecture.md @@ -0,0 +1 @@ +# Architecture \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/109-spring-mvc/103-components.md b/src/roadmaps/spring-boot/content/109-spring-mvc/103-components.md new file mode 100644 index 000000000..f6ce326cb --- /dev/null +++ b/src/roadmaps/spring-boot/content/109-spring-mvc/103-components.md @@ -0,0 +1 @@ +# Components \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/109-spring-mvc/index.md b/src/roadmaps/spring-boot/content/109-spring-mvc/index.md new file mode 100644 index 000000000..090bd06f7 --- /dev/null +++ b/src/roadmaps/spring-boot/content/109-spring-mvc/index.md @@ -0,0 +1 @@ +# Spring mvc \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/110-testing/100-jpa-test.md b/src/roadmaps/spring-boot/content/110-testing/100-jpa-test.md new file mode 100644 index 000000000..9729b9b1a --- /dev/null +++ b/src/roadmaps/spring-boot/content/110-testing/100-jpa-test.md @@ -0,0 +1 @@ +# Jpa test \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/110-testing/101-mock-mvc.md b/src/roadmaps/spring-boot/content/110-testing/101-mock-mvc.md new file mode 100644 index 000000000..136765612 --- /dev/null +++ b/src/roadmaps/spring-boot/content/110-testing/101-mock-mvc.md @@ -0,0 +1 @@ +# Mock mvc \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/110-testing/102-spring-boot-test-annotation.md b/src/roadmaps/spring-boot/content/110-testing/102-spring-boot-test-annotation.md new file mode 100644 index 000000000..74764f040 --- /dev/null +++ b/src/roadmaps/spring-boot/content/110-testing/102-spring-boot-test-annotation.md @@ -0,0 +1 @@ +# Spring boot test annotation \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/110-testing/103-mockbean-annotation.md b/src/roadmaps/spring-boot/content/110-testing/103-mockbean-annotation.md new file mode 100644 index 000000000..95a19ee56 --- /dev/null +++ b/src/roadmaps/spring-boot/content/110-testing/103-mockbean-annotation.md @@ -0,0 +1 @@ +# Mockbean annotation \ No newline at end of file diff --git a/src/roadmaps/spring-boot/content/110-testing/index.md b/src/roadmaps/spring-boot/content/110-testing/index.md new file mode 100644 index 000000000..94cfd7d77 --- /dev/null +++ b/src/roadmaps/spring-boot/content/110-testing/index.md @@ -0,0 +1 @@ +# Testing \ No newline at end of file