Skip to content

Conversation

@cchunduri
Copy link

@cchunduri cchunduri commented Jul 29, 2024

What is this PR bringing?

As discussed in #182, this PR will bring the option to generate resource config files in YAML format.

  • Dev testing
  • Unit tests

Summary by CodeRabbit

  • New Features
    • Added setup option to choose configuration file format (YAML or .properties).
    • Generates application.yml with sensible defaults (server, actuator endpoints, JPA/Hibernate, HikariCP) and conditional Flyway and ELK settings.
    • Introduces application-local.yml with database-specific datasource examples and optional AWS LocalStack configuration.
    • Enhances application-test.yml with optional AWS LocalStack configuration.
    • Resource files for main and test environments now align with the chosen configuration format.

@cchunduri cchunduri marked this pull request as draft July 29, 2024 17:48
@cchunduri cchunduri marked this pull request as ready for review July 31, 2024 19:41
@cchunduri cchunduri changed the title WIP: Feature: #182, YAML Config File Generation Feature: #182, YAML Config File Generation Jul 31, 2024
@rajadilipkolli
Copy link
Collaborator

Hi @cchunduri , very good work on providing PR. only few minor comments needs to be addressed.

Can you also update the ReadMe file with this change.

@cchunduri
Copy link
Author

@rajadilipkolli Thank you for your review.

In README.md, do I need to update features section? Could please elaborate?

@sivaprasadreddy
Copy link
Owner

Hi @cchunduri
Can you please add a couple of tests (one for Maven and one for Gradle) to make sure that the application configuration is proper and can be successfully bootstrapped?

@rajadilipkolli
Copy link
Collaborator

@coderabbitai full review

@coderabbitai
Copy link

coderabbitai bot commented Sep 20, 2025

✅ Actions performed

Full review triggered.

@coderabbitai
Copy link

coderabbitai bot commented Sep 20, 2025

Walkthrough

Adds a new prompt to choose configuration file format, updates server generator to dynamically select resource and test templates based on that choice, and introduces YAML templates for application, local, and test configurations with conditional content (DB vendor, Flyway, ELK, LocalStack).

Changes

Cohort / File(s) Summary
Generator logic: dynamic resource templates
generators/server/index.js
Replaces hard-coded resource/test template arrays with private helpers that select files based on configOptions.propFileFormat and append appropriate logging configs.
User prompt for config format
generators/server/prompts.js
Adds propFileFormat list prompt (choices: props, yaml) after buildTool; value merges into configOptions.
YAML app resources
generators/server/templates/app/src/main/resources/application.yml, .../application-local.yml
Introduces YAML templates: base application.yml with Spring/Actuator/JPA/Hikari settings; application-local.yml with DB vendor-specific datasource blocks and optional LocalStack config.
YAML test resources
generators/server/templates/app/src/test/resources/application-test.yml
Adds test YAML template with conditional LocalStack AWS settings.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor U as User
  participant P as Prompts
  participant G as Server Generator
  participant R as Template Resolver
  participant FS as File Writer

  U->>P: Answer prompts (incl. propFileFormat)
  P-->>G: configOptions { propFileFormat, ... }

  G->>R: get resource templates(configOptions)
  R-->>G: application[.yml|.properties], application-local[.yml|.properties], logback-*.xml

  G->>R: get test templates(configOptions)
  R-->>G: application-test[.yml|.properties], logback-test.xml

  G->>FS: Generate files from selected templates
  FS-->>G: Write complete
  G-->>U: Generation finished
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

I nibbled configs by moonlit light,
Swapped props for YAML—just felt right.
With LocalStack burrows and Flyway flights,
I stitched new templates through the night.
Tap-tap logs, ears up—tests in sight,
A hoppy build, configuration tight. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Feature: #182, YAML Config File Generation" clearly and concisely summarizes the primary change—adding YAML config file generation—aligns with the PR objectives and modified templates, and includes the related issue number for context.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (7)
generators/server/prompts.js (1)

127-141: Polish the prompt: capitalization + sensible default; keep terminology consistent.

  • Capitalize the message for consistency with other prompts.
  • Add a default to avoid undefined behavior in non‑interactive runs. Choose based on desired backward compatibility (props) vs. new feature (yaml).

Proposed diff (defaulting to properties for backward compatibility):

         {
             type: 'list',
             name: 'propFileFormat',
-            message: 'which format do you want to use for configuration files?',
+            message: 'Which format do you want to use for configuration files?',
             choices: [
                 {
                     value: 'props',
-                    name: 'Property File'
+                    name: 'Properties'
                 },
                 {
                     value: 'yaml',
                     name: 'YAML'
                 }
-            ]
+            ],
+            default: 'props'
         }
generators/server/templates/app/src/test/resources/application-test.yml (1)

1-11: Verify Spring Cloud AWS endpoint properties; consider service‑specific endpoints.

Depending on the Spring Cloud AWS version, a single cloud.aws.endpoint may be ignored. Service‑specific endpoints (sqs.endpoint, sns.endpoint, s3.endpoint) are more robust for LocalStack.

Would you confirm the Spring Cloud AWS version used by the generated project and adjust if needed? If on 3.x+, prefer:

spring:
  cloud:
    aws:
      region:
        static: us-east-1
      credentials:
        access-key: noop
        secret-key: noop
      sqs:
        endpoint: http://localhost:4566
      sns:
        endpoint: http://localhost:4566
      s3:
        endpoint: http://localhost:4566
generators/server/index.js (3)

219-229: Guard against unexpected values; simplify naming.

  • Treat any non‑yaml input as props to avoid surprises.
  • Rename testResYamlTemplatestestResTemplates for clarity.
 _getResourceFileTestTemplates(configOptions) {
-    let testResYamlTemplates = []
-
-    if (configOptions.propFileFormat === 'yaml') {
-        testResYamlTemplates = ['application-test.yml']
-    }
-    else {
-        testResYamlTemplates = ['application-test.properties']
-    }
-    return [...testResYamlTemplates, 'logback-test.xml']
+    const format = configOptions.propFileFormat === 'yaml' ? 'yaml' : 'props';
+    const testResTemplates = format === 'yaml'
+        ? ['application-test.yml']
+        : ['application-test.properties'];
+    return [...testResTemplates, 'logback-test.xml'];
 }

231-241: Mirror the same defensive logic for main resources.

 _getResourceFileTemplates(configOptions) {
-    let mainResTemplates = []
-
-    if (configOptions.propFileFormat === 'yaml') {
-        mainResTemplates = ['application.yml', 'application-local.yml']
-    } else {
-        mainResTemplates = ['application.properties', 'application-local.properties']
-    }
-
-    return [...mainResTemplates, 'logback-spring.xml']
+    const format = configOptions.propFileFormat === 'yaml' ? 'yaml' : 'props';
+    const mainResTemplates = format === 'yaml'
+        ? ['application.yml', 'application-local.yml']
+        : ['application.properties', 'application-local.properties'];
+    return [...mainResTemplates, 'logback-spring.xml'];
 }

202-213: Add the two config bootstrap tests requested in PR comments.

One Maven and one Gradle IT to assert app context starts with both formats would de‑risk this change.

I can scaffold two minimal integration tests (yaml and properties) and wire them into both Maven Surefire/Failsafe and Gradle test tasks. Want me to push a patch?

generators/server/templates/app/src/main/resources/application.yml (2)

11-14: Use native YAML list for actuator exposure.

Comma‑separated string works but YAML list is clearer.

 server:
-  port: '8080'
+  port: 8080
   shutdown: graceful
@@
   endpoints:
     web:
       exposure:
-        include: configprops,env,health,info,logfile,loggers,metrics,prometheus
+        include:
+          - configprops
+          - env
+          - health
+          - info
+          - logfile
+          - loggers
+          - metrics
+          - prometheus

63-66: Optional: keep custom application.* block or prefix with your app namespace.

Top‑level application: may be confused with spring.application. Consider namespacing (e.g., app:).

-application:
-  logstash-host: localhost
+app:
+  logstash-host: localhost

If existing code reads application.logstash-host, keep it as‑is.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1b1d5f9 and baac17c.

📒 Files selected for processing (5)
  • generators/server/index.js (2 hunks)
  • generators/server/prompts.js (1 hunks)
  • generators/server/templates/app/src/main/resources/application-local.yml (1 hunks)
  • generators/server/templates/app/src/main/resources/application.yml (1 hunks)
  • generators/server/templates/app/src/test/resources/application-test.yml (1 hunks)
🧰 Additional context used
🪛 YAMLlint (1.37.1)
generators/server/templates/app/src/main/resources/application.yml

[error] 26-26: duplication of key "spring" in mapping

(key-duplicates)


[error] 59-59: syntax error: could not find expected ':'

(syntax)

generators/server/templates/app/src/test/resources/application-test.yml

[error] 2-2: syntax error: mapping values are not allowed here

(syntax)

generators/server/templates/app/src/main/resources/application-local.yml

[error] 2-2: syntax error: mapping values are not allowed here

(syntax)

🔇 Additional comments (2)
generators/server/index.js (2)

198-201: Good extraction of main resource selection.

Helper improves readability and centralizes format branching.


214-216: Good extraction of test resource selection.

Consistent with main resource helper.

Comment on lines +1 to +20
<%_ if (databaseType === 'postgresql') { _%>
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/appdb
<%_ } _%>
<%_ if (databaseType === 'mysql') { _%>
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/appdb
<%_ } _%>
<%_ if (databaseType === 'mariadb') { _%>
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:3306/appdb
<%_ } _%>
datasource:
username: appuser
password: secret

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Broken YAML for non‑PostgreSQL paths; spring: missing for MySQL/MariaDB; misplaced username/password.

  • When databaseType is mysql or mariadb, spring: is not emitted, producing invalid YAML.
  • datasource.username/password are outside spring: for those branches.

Apply this consolidated structure (works for all DBs):

-<%_ if (databaseType === 'postgresql') { _%>
-spring:
-  datasource:
-    driver-class-name: org.postgresql.Driver
-    url: jdbc:postgresql://localhost:5432/appdb
-<%_ } _%>
-<%_ if (databaseType === 'mysql') { _%>
-  datasource:
-    driver-class-name: com.mysql.jdbc.Driver
-    url: jdbc:mysql://localhost:3306/appdb
-<%_ } _%>
-<%_ if (databaseType === 'mariadb') { _%>
-  datasource:
-    driver-class-name: org.mariadb.jdbc.Driver
-    url: jdbc:mariadb://localhost:3306/appdb
-<%_ } _%>
-  datasource:
-    username: appuser
-    password: secret
+spring:
+  datasource:
+    <%_ if (databaseType === 'postgresql') { _%>
+    driver-class-name: org.postgresql.Driver
+    url: jdbc:postgresql://localhost:5432/appdb
+    <%_ } _%>
+    <%_ if (databaseType === 'mysql') { _%>
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://localhost:3306/appdb
+    <%_ } _%>
+    <%_ if (databaseType === 'mariadb') { _%>
+    driver-class-name: org.mariadb.jdbc.Driver
+    url: jdbc:mariadb://localhost:3306/appdb
+    <%_ } _%>
+    username: appuser
+    password: secret
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<%_ if (databaseType === 'postgresql') { _%>
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/appdb
<%_ } _%>
<%_ if (databaseType === 'mysql') { _%>
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/appdb
<%_ } _%>
<%_ if (databaseType === 'mariadb') { _%>
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:3306/appdb
<%_ } _%>
datasource:
username: appuser
password: secret
spring:
datasource:
<%_ if (databaseType === 'postgresql') { _%>
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/appdb
<%_ } _%>
<%_ if (databaseType === 'mysql') { _%>
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/appdb
<%_ } _%>
<%_ if (databaseType === 'mariadb') { _%>
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:3306/appdb
<%_ } _%>
username: appuser
password: secret
🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 2-2: syntax error: mapping values are not allowed here

(syntax)

🤖 Prompt for AI Agents
In generators/server/templates/app/src/main/resources/application-local.yml
around lines 1 to 20, the template emits a top-level spring: only for the
PostgreSQL branch causing invalid YAML for mysql/mariadb and leaves
username/password outside spring.datasource; restructure the template so there
is a single spring: block with one datasource: key (always emitted) and move
datasource.username and datasource.password under it, then inside the datasource
block conditionally set only driver-class-name and url per databaseType
(postgresql/mysql/mariadb) to avoid duplicated datasource keys and incorrect
indentation.

Comment on lines +21 to +31
<%_ if (features.includes('localstack')) { _%>
###AWS
cloud:
aws:
region:
static: us-east-1
credentials:
secret-key: noop
access-key: noop
endpoint: http://localhost:4566
<%_ } _%>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

❓ Verification inconclusive

Nest LocalStack config under spring.cloud.aws; verify endpoint keys per version.

  • Current block is not under spring: causing invalid YAML if the DB branch didn’t emit spring: above.
  • Endpoint scoping may need service‑specific keys.

Minimal safe nesting:

-<%_ if (features.includes('localstack')) { _%>
-###AWS
-  cloud:
-    aws:
+<%_ if (features.includes('localstack')) { _%>
+  cloud:
+    aws:
       region:
         static: us-east-1
       credentials:
         secret-key: noop
         access-key: noop
-      endpoint: http://localhost:4566
+      endpoint: http://localhost:4566
+      # If using Spring Cloud AWS 3.x+, prefer service-specific endpoints:
+      # sqs:
+      #   endpoint: http://localhost:4566
+      # sns:
+      #   endpoint: http://localhost:4566
+      # s3:
+      #   endpoint: http://localhost:4566
 <%_ } _%>

Nest LocalStack config under spring.cloud.aws; prefer service-specific endpoints for SC-AWS 3.x.

Move the LocalStack block in generators/server/templates/app/src/main/resources/application-local.yml so its properties are under spring: cloud: aws: — Spring Cloud AWS 3.x migrated cloud.aws.*spring.cloud.aws.*. (docs.awspring.io)

Prefer service-specific endpoints (e.g. spring.cloud.aws.sqs.endpoint, spring.cloud.aws.sns.endpoint, spring.cloud.aws.s3.endpoint) or the global spring.cloud.aws.endpoint for auto-configured clients; docs show both patterns. (github.com)

If the project intentionally targets SC-AWS 2.x, keep cloud.aws.* or ensure the template emits a top-level spring: block to avoid invalid YAML. (docs.awspring.io)

🤖 Prompt for AI Agents
In generators/server/templates/app/src/main/resources/application-local.yml
around lines 21 to 31, the LocalStack properties are currently under top-level
`cloud.aws` which is invalid for Spring Cloud AWS 3.x; move these properties
under `spring.cloud.aws:` (or emit a top-level `spring:` block if the template
architecture requires it) and prefer service-specific endpoint keys such as
`spring.cloud.aws.sqs.endpoint`, `spring.cloud.aws.sns.endpoint`, and
`spring.cloud.aws.s3.endpoint` (or use `spring.cloud.aws.endpoint` for a global
override) while keeping credentials/region under
`spring.cloud.aws.credentials`/`spring.cloud.aws.region`; if the project
intentionally targets SC-AWS 2.x, preserve `cloud.aws.*` or ensure the YAML
still emits a top-level `spring:` to avoid invalid configuration.

Comment on lines +1 to +8
spring:
application:
name: <%= appName %>
main:
allow-bean-definition-overriding: 'true'
jmx:
enabled: 'false'
mvc:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Duplicate top‑level spring: key; must be a single mapping.

YAML disallows duplicate keys. Merge all spring.* blocks under one spring:.

Apply this consolidation (also fixes quoted booleans/ints):

 spring:
   application:
     name: <%= appName %>
   main:
-    allow-bean-definition-overriding: 'true'
+    allow-bean-definition-overriding: true
   jmx:
-    enabled: 'false'
+    enabled: false
   mvc:
     problemdetails:
-      enabled: 'true'
+      enabled: true
-# (second spring: removed; merge sections below into this one)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
spring:
application:
name: <%= appName %>
main:
allow-bean-definition-overriding: 'true'
jmx:
enabled: 'false'
mvc:
spring:
application:
name: <%= appName %>
main:
allow-bean-definition-overriding: true
jmx:
enabled: false
mvc:
problemdetails:
enabled: true
🤖 Prompt for AI Agents
In generators/server/templates/app/src/main/resources/application.yml around
lines 1 to 8, there are duplicate top-level "spring:" mappings; consolidate all
spring.* entries into a single "spring:" mapping (merge application.name,
main.allow-bean-definition-overriding, jmx.enabled, mvc) under one "spring:" key
with correct indentation, and convert quoted booleans/ints to native YAML
booleans/numbers (e.g., true/false without quotes).

Comment on lines +25 to +57
################### Database ###################
spring:
jpa:
open-in-view: 'false'
show-sql: 'false'
hibernate:
ddl-auto: none
properties:
hibernate:
jdbc:
time_zone: UTC
batch_size: '25'
lob:
non_contextual_creation: 'true'
query:
fail_on_pagination_over_collection_fetch: 'true'
plan_cache_max_size: '4096'
in_clause_parameter_padding: 'true'
generate_statistics: 'false'
order_inserts: 'true'
connection:
provider_disables_autocommit: 'true'
order_updates: 'true'
datasource:
hikari:
data-source-properties:
ApplicationName: ${spring.application.name}
auto-commit: 'false'
data:
jpa:
repositories:
bootstrap-mode: deferred

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Move JPA/datasource under the single spring:; unquote numeric/boolean values.

-################### Database ###################
-spring:
+################### Database ###################
   jpa:
-    open-in-view: 'false'
-    show-sql: 'false'
+    open-in-view: false
+    show-sql: false
     hibernate:
       ddl-auto: none
     properties:
       hibernate:
         jdbc:
           time_zone: UTC
-          batch_size: '25'
+          batch_size: 25
           lob:
-            non_contextual_creation: 'true'
+            non_contextual_creation: true
         query:
-          fail_on_pagination_over_collection_fetch: 'true'
-          plan_cache_max_size: '4096'
-          in_clause_parameter_padding: 'true'
-        generate_statistics: 'false'
-        order_inserts: 'true'
+          fail_on_pagination_over_collection_fetch: true
+          plan_cache_max_size: 4096
+          in_clause_parameter_padding: true
+        generate_statistics: false
+        order_inserts: true
         connection:
-          provider_disables_autocommit: 'true'
-        order_updates: 'true'
+          provider_disables_autocommit: true
+        order_updates: true
   datasource:
     hikari:
       data-source-properties:
         ApplicationName: ${spring.application.name}
-      auto-commit: 'false'
+      auto-commit: false
   data:
     jpa:
       repositories:
         bootstrap-mode: deferred
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
################### Database ###################
spring:
jpa:
open-in-view: 'false'
show-sql: 'false'
hibernate:
ddl-auto: none
properties:
hibernate:
jdbc:
time_zone: UTC
batch_size: '25'
lob:
non_contextual_creation: 'true'
query:
fail_on_pagination_over_collection_fetch: 'true'
plan_cache_max_size: '4096'
in_clause_parameter_padding: 'true'
generate_statistics: 'false'
order_inserts: 'true'
connection:
provider_disables_autocommit: 'true'
order_updates: 'true'
datasource:
hikari:
data-source-properties:
ApplicationName: ${spring.application.name}
auto-commit: 'false'
data:
jpa:
repositories:
bootstrap-mode: deferred
################### Database ###################
jpa:
open-in-view: false
show-sql: false
hibernate:
ddl-auto: none
properties:
hibernate:
jdbc:
time_zone: UTC
batch_size: 25
lob:
non_contextual_creation: true
query:
fail_on_pagination_over_collection_fetch: true
plan_cache_max_size: 4096
in_clause_parameter_padding: true
generate_statistics: false
order_inserts: true
connection:
provider_disables_autocommit: true
order_updates: true
datasource:
hikari:
data-source-properties:
ApplicationName: ${spring.application.name}
auto-commit: false
data:
jpa:
repositories:
bootstrap-mode: deferred
🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 26-26: duplication of key "spring" in mapping

(key-duplicates)

🤖 Prompt for AI Agents
generators/server/templates/app/src/main/resources/application.yml around lines
25 to 57: JPA and datasource sections should be nested under the single
top-level spring: key (remove any duplicate spring: blocks) and all
numeric/boolean scalar values must be unquoted; update indentation so spring:
contains jpa:, datasource:, and data: as children, and replace quoted values
like 'false', 'true', '25', '4096' with unquoted booleans/numbers (false, true,
25, 4096) while preserving property names (e.g., ApplicationName:
${spring.application.name}) and existing nested structure.

Comment on lines +58 to +62
<%_ if (dbMigrationTool === 'flywaydb') { _%>
flyway:
locations: classpath:/db/migration/{vendor}
<%_ } _%>

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Scope Flyway under spring.flyway; fix indentation.

Top‑level flyway won’t bind. Use spring.flyway.

-<%_ if (dbMigrationTool === 'flywaydb') { _%>
-  flyway:
-    locations: classpath:/db/migration/{vendor}     
-<%_ } _%>
+<%_ if (dbMigrationTool === 'flywaydb') { _%>
+  flyway:
+    locations: classpath:/db/migration/{vendor}
+<%_ } _%>

(Note: This block is now under the single spring: above.)

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 YAMLlint (1.37.1)

[error] 59-59: syntax error: could not find expected ':'

(syntax)

🤖 Prompt for AI Agents
In generators/server/templates/app/src/main/resources/application.yml around
lines 58 to 62, the Flyway config is declared at top level as "flyway:" which
will not bind; move it under the existing "spring:" key as "spring.flyway:"
(i.e. nest the flyway block under spring) and fix indentation so the "locations:
classpath:/db/migration/{vendor}" line is indented accordingly, preserving the
conditional templating logic.

@rajadilipkolli
Copy link
Collaborator

@cchunduri , Can you please address the review comments and write gradle and maven tests with the same.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants