## Description This PR adds the spotless formatter and validator for the JSON files present in the project. If there is any invalid JSON file, the formatter fails and logs the file and the error LOC to be fixed. It uses the `prettier JSON` formatted in spotless for the same. Since Spotless is already added to the pre-commit hook it also makes it necessary to fix the JSON and then commit the changes. - The prettier JSON formattor preserves the order of the keys. - Indendation of 2 spaces has been added in the config Screenshot of the errors displayed for Invalid JSONs <img width="1427" alt="image" src="https://github.com/user-attachments/assets/00bbd61c-7414-4787-b9ac-2f0d392f6f33"> ### Last attempt to resolve this issue The formatted used was `simple JSON` which led to change in order of JSON keys. PR: https://github.com/appsmithorg/appsmith/pull/35395 Ref: https://theappsmith.slack.com/archives/CGBPVEJ5C/p1722929754593669?thread_ts=1722916121.682699&cid=CGBPVEJ5C Fixes #34969 ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/10264348935> > Commit: 4957b647f3d5e0f9853e7f391411b62ee189547b > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10264348935&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Tue, 06 Aug 2024 12:40:47 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No
202 lines
8.5 KiB
XML
202 lines
8.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-parent</artifactId>
|
|
<version>3.0.9</version>
|
|
<relativePath/>
|
|
<!-- lookup parent from repository -->
|
|
</parent>
|
|
<groupId>com.appsmith</groupId>
|
|
<artifactId>integrated</artifactId>
|
|
<version>1.0-SNAPSHOT</version>
|
|
<packaging>pom</packaging>
|
|
<name>Integrated Appsmith</name>
|
|
|
|
<modules>
|
|
<module>reactive-caching</module>
|
|
<module>appsmith-interfaces</module>
|
|
<module>appsmith-plugins</module>
|
|
<module>appsmith-server</module>
|
|
<module>appsmith-git</module>
|
|
</modules>
|
|
|
|
<properties>
|
|
<deploy.disabled>true</deploy.disabled>
|
|
<jackson-bom.version>2.17.0</jackson-bom.version>
|
|
<jackson.version>2.17.0</jackson.version>
|
|
<java.version>17</java.version>
|
|
<javadoc.disabled>true</javadoc.disabled>
|
|
<logback.version>1.4.14</logback.version>
|
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
|
<mockito.version>4.4.0</mockito.version>
|
|
<mockwebserver.version>5.0.0-alpha.2</mockwebserver.version>
|
|
<okhttp3.version>4.10.0</okhttp3.version>
|
|
<org.pf4j.version>3.10.0</org.pf4j.version>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.groupId>com.appsmith</project.groupId>
|
|
<project.version>1.0-SNAPSHOT</project.version>
|
|
<reactor-test.version>3.5.1</reactor-test.version>
|
|
<!-- By default skip the dockerization step. Only activate if necessary -->
|
|
<skipDockerBuild>true</skipDockerBuild>
|
|
<!-- We're forcing this version temporarily to fix CVE-2022-1471-->
|
|
<snakeyaml.version>2.0</snakeyaml.version>
|
|
<source.disabled>true</source.disabled>
|
|
<spotless.version>2.36.0</spotless.version>
|
|
<spring-boot.version>3.0.9</spring-boot.version>
|
|
<testcontainers.version>1.19.3</testcontainers.version>
|
|
</properties>
|
|
|
|
<build>
|
|
<resources>
|
|
<resource>
|
|
<filtering>false</filtering>
|
|
<directory>src/main/java</directory>
|
|
<excludes>
|
|
<exclude>**/*.java</exclude>
|
|
</excludes>
|
|
</resource>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
</resource>
|
|
</resources>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>license-maven-plugin</artifactId>
|
|
<version>2.0.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>3.4.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>3.0.0-M5</version>
|
|
<configuration>
|
|
<printSummary>true</printSummary>
|
|
<!-- Allow JUnit to access the test classes -->
|
|
<argLine>--add-opens java.base/java.lang=ALL-UNNAMED
|
|
--add-opens java.base/java.time=ALL-UNNAMED
|
|
--add-opens java.base/java.util=ALL-UNNAMED</argLine>
|
|
</configuration>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<version>5.6.2</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>org.junit.platform</groupId>
|
|
<artifactId>junit-platform-commons</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>default-cli</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<bannedDependencies>
|
|
<excludes>
|
|
<exclude>junit:junit</exclude>
|
|
</excludes>
|
|
</bannedDependencies>
|
|
</rules>
|
|
<fail>true</fail>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.diffplug.spotless</groupId>
|
|
<artifactId>spotless-maven-plugin</artifactId>
|
|
<version>${spotless.version}</version>
|
|
<configuration>
|
|
<formats>
|
|
<!-- you can define as many formats as you want, each is independent -->
|
|
<format>
|
|
<!-- define the files to apply to -->
|
|
<includes>
|
|
<include>*.md</include>
|
|
<include>.gitignore</include>
|
|
</includes>
|
|
<!-- define the steps to apply to those files -->
|
|
<trimTrailingWhitespace/>
|
|
<endWithNewline/>
|
|
<indent>
|
|
<tabs>true</tabs>
|
|
<spacesPerTab>2</spacesPerTab>
|
|
</indent>
|
|
</format>
|
|
</formats>
|
|
<!-- define a language-specific format -->
|
|
<java>
|
|
<!-- Cleanthat will refactor your code, but it may break your style: apply it before your formatter -->
|
|
<cleanthat/>
|
|
<!-- apply a specific flavor of google-java-format and reflow long strings -->
|
|
<palantirJavaFormat/>
|
|
<importOrder>
|
|
<order>,javax|java,\#</order>
|
|
</importOrder>
|
|
<removeUnusedImports/>
|
|
<formatAnnotations/>
|
|
</java>
|
|
<json>
|
|
<excludes>
|
|
<exclude>**/target/**/*.json</exclude>
|
|
</excludes>
|
|
<includes>
|
|
<include>**/*.json</include>
|
|
</includes>
|
|
<prettier>
|
|
<config>
|
|
<tabWidth>2</tabWidth>
|
|
</config>
|
|
</prettier>
|
|
</json>
|
|
<pom>
|
|
<includes>
|
|
<include>pom.xml</include>
|
|
</includes>
|
|
<sortPom>
|
|
<encoding>UTF-8</encoding>
|
|
<keepBlankLines>true</keepBlankLines>
|
|
<nrOfIndentSpace>4</nrOfIndentSpace>
|
|
<indentBlankLines>false</indentBlankLines>
|
|
<indentSchemaLocation>true</indentSchemaLocation>
|
|
<expandEmptyElements>false</expandEmptyElements>
|
|
<sortProperties>true</sortProperties>
|
|
</sortPom>
|
|
</pom>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>apply</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</project>
|