## 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. Since Spotless is already added to the pre-commit hook it also makes it necessary to fix the JSON and then commit the changes. Screenshot of the errors displayed for Invalid JSONs  ### Why is this Important? All of our datasource forms appear on the UI from the JSON configuration files in the plugins. If an Invalid JSON is added, it can break the datasource usage experience for the users. One such instance happened in the past, where due to a JSON formatting error, the users could not use Smart Substitution feature on production. [Reference](https://theappsmith.slack.com/archives/C040LHZN03V/p1721124893238579) Fixes #34969 ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 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/10243164292> > Commit: 08bc87acd2e44c4a2677d3eed1bad002f991050a > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10243164292&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` > Spec: > <hr>Mon, 05 Aug 2024 05:50:07 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No
195 lines
8.2 KiB
XML
195 lines
8.2 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>
|
|
<includes>
|
|
<include>**/*.json</include>
|
|
</includes>
|
|
<simple/>
|
|
</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>
|