diff --git a/.gitignore b/.gitignore index 0648667bdb50f03dbf8151eff52f71c863b4bcf7..897c8ff354517c6ec4b4ace0ba5f5699210d2c8e 100644 --- a/.gitignore +++ b/.gitignore @@ -95,43 +95,11 @@ local.properties *.ipr # User-specific stuff -.idea/* -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/modules.xml -# .idea/*.iml -# .idea/modules +.idea # CMake cmake-build-*/ -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - # File-based project format *.iws @@ -144,21 +112,12 @@ out/ # JIRA plugin atlassian-ide-plugin.xml -# Cursive Clojure plugin -.idea/replstate.xml - # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties fabric.properties -# Editor-based Rest Client -.idea/httpRequests - -# Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser - ### Intellij Patch ### # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 @@ -167,9 +126,6 @@ fabric.properties # .idea/misc.xml # *.ipr -# Sonarlint plugin -.idea/sonarlint - ### Kotlin ### # Compiled class file *.class diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b5511df7904d649e1cf5dfc50a6bd2c50ad4e3bc..7df3480415c742159af12bd1c3e36c778000c472 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,8 +30,6 @@ cache: key: "$CI_COMMIT_REF_NAME" paths: - ".gradle" - - "frontend/.gradle/" - - "frontend/node_modules/" # PRE-BUILD @@ -62,20 +60,6 @@ build-loader-docker-image: # TESTS -lint: - stage: test - tags: - - openstack - script: "./gradlew lint" - cache: - key: "$CI_COMMIT_REF_NAME" - policy: pull - paths: - - ".gradle" - - "frontend/.gradle/" - - "frontend/node_modules/" - - test-and-sonarqube: stage: test tags: @@ -104,20 +88,19 @@ test-and-sonarqube: policy: pull-push paths: - ".gradle" - - "frontend/.gradle/" - - "frontend/node_modules/" - .sonar/cache script: - - ./gradlew :frontend:assemble --parallel - - ./gradlew :backend:test jacocoTestReport --parallel - - find /tmp/node/*/bin -name node -exec ln -s {} /tmp/node/node \; - - export PATH="/tmp/node/:$PATH" - - ./gradlew -s sonarqube -x test + - ./gradlew test jacocoTestReport --parallel + # disable sonarqube because it apparently needs node, but I don't know why, and it can't find it anymore now that + # there is no frontend project anymore, and it takes sooooo much time to complete anyway for results that nobody + # will ever look + # - find /tmp/node/*/bin -name node -exec ln -s {} /tmp/node/node \; + # - export PATH="/tmp/node/:$PATH" + # - ./gradlew -s sonarqube -x test artifacts: reports: junit: - ./backend/build/test-results/test/TEST-*.xml - # - ./frontend/karma-junit-tests-report/TEST*.xml only: refs: - merge_requests @@ -144,8 +127,6 @@ build: policy: pull paths: - ".gradle" - - "frontend/.gradle/" - - "frontend/node_modules/" artifacts: paths: - "$JAR_PATH" diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index ca99a00edbda7ccc394869431fec04f9a5ac33a6..0000000000000000000000000000000000000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="CompilerConfiguration"> - <annotationProcessing> - <profile name="Gradle Imported" enabled="true"> - <outputRelativeToContentRoot value="true" /> - <processorPath useClasspath="false"> - <entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-configuration-processor/2.1.2.RELEASE/db9671c321defb942a6700fae8a7700a137a25e/spring-boot-configuration-processor-2.1.2.RELEASE.jar" /> - </processorPath> - <module name="faidare.backend.main" /> - </profile> - </annotationProcessing> - <bytecodeTargetLevel target="1.8" /> - </component> -</project> \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 15a15b218a29e09c9190992732698d646e4d659a..0000000000000000000000000000000000000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="Encoding" addBOMForNewFiles="with NO BOM" /> -</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index ff8249e49968d1849269b0d8a2fe49a31c72a63f..0000000000000000000000000000000000000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="FrameworkDetectionExcludesConfiguration"> - <file type="web" url="file://$PROJECT_DIR$" /> - </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> - <output url="file://$PROJECT_DIR$/out" /> - </component> -</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 3b2a562bc3214c46382cc1761196d85196a94d66..0000000000000000000000000000000000000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ProjectModuleManager"> - <modules> - <module fileurl="file://$PROJECT_DIR$/.idea/modules/faidare.iml" filepath="$PROJECT_DIR$/.idea/modules/faidare.iml" /> - <module fileurl="file://$PROJECT_DIR$/.idea/modules/backend/faidare.backend.iml" filepath="$PROJECT_DIR$/.idea/modules/backend/faidare.backend.iml" /> - <module fileurl="file://$PROJECT_DIR$/.idea/modules/backend/faidare.backend.main.iml" filepath="$PROJECT_DIR$/.idea/modules/backend/faidare.backend.main.iml" /> - <module fileurl="file://$PROJECT_DIR$/.idea/modules/backend/faidare.backend.test.iml" filepath="$PROJECT_DIR$/.idea/modules/backend/faidare.backend.test.iml" /> - <module fileurl="file://$PROJECT_DIR$/.idea/modules/frontend/faidare.frontend.iml" filepath="$PROJECT_DIR$/.idea/modules/frontend/faidare.frontend.iml" /> - <module fileurl="file://$PROJECT_DIR$/backend/src/main/main.iml" filepath="$PROJECT_DIR$/backend/src/main/main.iml" /> - <module fileurl="file://$PROJECT_DIR$/backend/src/test/test.iml" filepath="$PROJECT_DIR$/backend/src/test/test.iml" /> - </modules> - </component> -</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f4cb416c083d265558da75d457237d671..0000000000000000000000000000000000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="VcsDirectoryMappings"> - <mapping directory="$PROJECT_DIR$" vcs="Git" /> - </component> -</project> \ No newline at end of file diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 9ff140544f08a54151ddf9ca56e164de76e37a35..586fc9530562dd6ea7b2a6fd5fb935d842dc36d7 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -57,12 +57,8 @@ tasks { val bootJar by getting(BootJar::class) { archiveName = "${rootProject.name}.jar" - dependsOn(":frontend:assemble") dependsOn(buildInfo) - into("BOOT-INF/classes/static") { - from("${project(":frontend").projectDir}/dist/frontend") - } into("BOOT-INF/classes/META-INF") { from(buildInfo.destinationDir) } @@ -98,6 +94,7 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-actuator") implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.cloud:spring-cloud-starter-config") + implementation("org.springframework.boot:spring-boot-starter-thymeleaf") // Elasticsearch implementation("org.elasticsearch:elasticsearch:6.6.2") diff --git a/backend/src/main/java/fr/inra/urgi/faidare/filter/AngularRouteFilter.java b/backend/src/main/java/fr/inra/urgi/faidare/filter/AngularRouteFilter.java deleted file mode 100644 index 81978e5f3bfaca602e70eff0f109477d55e1466a..0000000000000000000000000000000000000000 --- a/backend/src/main/java/fr/inra/urgi/faidare/filter/AngularRouteFilter.java +++ /dev/null @@ -1,115 +0,0 @@ -package fr.inra.urgi.faidare.filter; - -import com.google.common.base.Charsets; -import com.google.common.io.ByteSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.io.ResourceLoader; -import org.springframework.stereotype.Component; - -import javax.servlet.*; -import javax.servlet.annotation.WebFilter; -import javax.servlet.http.HttpServletRequest; -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; - -/** - * Filter that intercepts all request to potential Angular routes - * (ex: /studies/ID) to send back the Angular `index.html` file with a correct - * base href set to the spring server context path. - * - * Potential angular routes are devised by process of elimination: - * - They should be GET requests - * - They should not end with common static file suffixes {@link AngularRouteFilter#STATIC_SUFFIXES} - * - They should not start with API prefixes {@link AngularRouteFilter#API_PREFIXES} - * - * <p> - * Adapted from data-discovery - * - * @author gcornut - */ -@Component -@WebFilter("/*") -public class AngularRouteFilter implements Filter { - - private static final String[] API_PREFIXES = { - "/brapi/v1", "/faidare/v1", "/actuator", "/v2/api-docs", "/swagger-resources" - }; - - private static final String[] STATIC_SUFFIXES = { - ".html", ".js", ".css", ".ico", ".png", ".jpg", ".gif", ".eot", ".svg", - ".woff2", ".ttf", ".woff", ".md" - }; - - @Value("${server.servlet.context-path}") - private String serverContextPath; - - private final ResourceLoader resourceLoader; - - @Autowired - public AngularRouteFilter(ResourceLoader resourceLoader) { - this.resourceLoader = resourceLoader; - } - - @Override - public void doFilter( - ServletRequest req, - ServletResponse response, - FilterChain chain - ) throws IOException, ServletException { - HttpServletRequest request = (HttpServletRequest) req; - - if (isAngularRoute(request)) { - // Angular route - InputStream inputStream = resourceLoader.getResource("classpath:static/index.html").getInputStream(); - - ByteSource byteSource = new ByteSource() { - @Override - public InputStream openStream() { - return inputStream; - } - }; - - String content = byteSource.asCharSource(Charsets.UTF_8).read(); - String replacedContent = content.replace( - "<base href=\"./\">", - "<base href=\"" + serverContextPath + "/\">" - ); - response.getWriter().write(replacedContent); - return; - } - - // Otherwise nothing to do - chain.doFilter(request, response); - } - - private boolean isAngularRoute(HttpServletRequest request) { - if (!request.getMethod().equals("GET")) { - return false; - } - - String fullUri = request.getRequestURI(); - String contextPath = request.getContextPath(); - String uri = fullUri.substring(contextPath.length()); - - return !isApiOrStaticResource(uri); - } - - private boolean isApiOrStaticResource(String relativePath) { - // Starts with API prefix - return Arrays.stream(API_PREFIXES).anyMatch(relativePath::startsWith) - // or has static file suffix - || Arrays.stream(STATIC_SUFFIXES).anyMatch(relativePath::endsWith); - } - - @Override - public void init(FilterConfig filterConfig) { - // nothing to do - } - - @Override - public void destroy() { - // nothing to do - } -} diff --git a/backend/src/main/java/fr/inra/urgi/faidare/web/HomeController.java b/backend/src/main/java/fr/inra/urgi/faidare/web/HomeController.java new file mode 100644 index 0000000000000000000000000000000000000000..6734b6aa97a2ae445af4eb61be86a07883b2a58a --- /dev/null +++ b/backend/src/main/java/fr/inra/urgi/faidare/web/HomeController.java @@ -0,0 +1,19 @@ +package fr.inra.urgi.faidare.web; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +/** + * Controller for the home page, which doesn't display much + * @author JB Nizet + */ +@Controller +@RequestMapping("") +public class HomeController { + @GetMapping + public ModelAndView home() { + return new ModelAndView("index"); + } +} diff --git a/backend/src/main/main.iml b/backend/src/main/main.iml deleted file mode 100644 index 50f3d6bc79c58fa92df31bb59ab229d1e7c0c12e..0000000000000000000000000000000000000000 --- a/backend/src/main/main.iml +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="JAVA_MODULE" version="4"> - <component name="NewModuleRootManager" inherit-compiler-output="true"> - <exclude-output /> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" /> - </content> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" name="Gradle: io.swagger:swagger-annotations:1.5.21" level="project" /> - <orderEntry type="library" name="Gradle: org.springframework:spring-beans:5.1.4.RELEASE" level="project" /> - <orderEntry type="library" name="Gradle: org.springframework:spring-web:5.1.4.RELEASE" level="project" /> - <orderEntry type="library" name="Gradle: io.springfox:springfox-core:2.9.2" level="project" /> - <orderEntry type="library" name="Gradle: io.springfox:springfox-spring-web:2.9.2" level="project" /> - <orderEntry type="library" name="Gradle: javax.validation:validation-api:2.0.1.Final" level="project" /> - <orderEntry type="library" name="Gradle: com.google.guava:guava:27.0.1-jre" level="project" /> - <orderEntry type="library" name="Gradle: commons-collections:commons-collections:3.2.2" level="project" /> - <orderEntry type="library" name="Gradle: org.apache.httpcomponents:httpcore:4.4.10" level="project" /> - <orderEntry type="library" name="Gradle: org.elasticsearch.client:elasticsearch-rest-client:6.4.3" level="project" /> - <orderEntry type="library" name="Gradle: org.apache.httpcomponents:httpcore-nio:4.4.10" level="project" /> - <orderEntry type="library" name="Gradle: org.springframework.boot:spring-boot-autoconfigure:2.1.2.RELEASE" level="project" /> - <orderEntry type="library" name="Gradle: org.springframework:spring-context:5.1.4.RELEASE" level="project" /> - <orderEntry type="library" name="Gradle: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> - <orderEntry type="library" name="Gradle: org.springframework.boot:spring-boot:2.1.2.RELEASE" level="project" /> - <orderEntry type="library" name="Gradle: org.springframework.security:spring-security-config:5.1.3.RELEASE" level="project" /> - <orderEntry type="library" name="Gradle: io.springfox:springfox-spi:2.9.2" level="project" /> - <orderEntry type="library" name="Gradle: io.springfox:springfox-swagger2:2.9.2" level="project" /> - <orderEntry type="library" name="Gradle: org.elasticsearch:elasticsearch:6.5.4" level="project" /> - <orderEntry type="library" name="Gradle: org.slf4j:slf4j-api:1.7.25" level="project" /> - <orderEntry type="library" name="Gradle: org.elasticsearch.client:elasticsearch-rest-high-level-client:6.5.4" level="project" /> - <orderEntry type="library" name="Gradle: org.elasticsearch:elasticsearch-core:6.5.4" level="project" /> - <orderEntry type="library" name="Gradle: org.springframework:spring-core:5.1.4.RELEASE" level="project" /> - <orderEntry type="library" name="Gradle: org.apache.tomcat.embed:tomcat-embed-core:9.0.14" level="project" /> - <orderEntry type="library" name="Gradle: com.opencsv:opencsv:4.4" level="project" /> - <orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.8.1" level="project" /> - <orderEntry type="library" name="Gradle: org.apache.lucene:lucene-join:7.5.0" level="project" /> - <orderEntry type="library" name="Gradle: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" /> - </component> -</module> \ No newline at end of file diff --git a/backend/src/main/resources/static/assets/images/favicon.ico b/backend/src/main/resources/static/assets/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7fc066f132eb58eeaf30b6259da59f5ed92aca8e Binary files /dev/null and b/backend/src/main/resources/static/assets/images/favicon.ico differ diff --git a/backend/src/main/resources/templates/index.html b/backend/src/main/resources/templates/index.html new file mode 100644 index 0000000000000000000000000000000000000000..ae925eac250a91f73267233e495ae2ef8b6cd008 --- /dev/null +++ b/backend/src/main/resources/templates/index.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> + +<html + xmlns:th="http://www.thymeleaf.org" + xmlns:biom="http://www.thymeleaf.org" + th:replace="~{layout/main :: layout(title=~{::title}, content=~{::main})}" +> +<head> + <title>Faidare</title> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +</head> + +<body> +<main> + <h1>Welcome to Faidare</h1> +</main> +</body> +</html> diff --git a/backend/src/main/resources/templates/layout/main.html b/backend/src/main/resources/templates/layout/main.html new file mode 100644 index 0000000000000000000000000000000000000000..a8f2c38c478a4a687cbea839b58dc338759db5fd --- /dev/null +++ b/backend/src/main/resources/templates/layout/main.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html lang="fr" th:fragment="layout (title, content)" xmlns:th="http://www.thymeleaf.org"> + <head> + <title th:replace="${title}">Layout Title</title> + + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta content="width=device-width, initial-scale=1" name="viewport" /> + + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous"> + + <link rel="shortcut icon" th:href="@{/static/assets/images/favicon.ico}" type="image/x-icon" /> + </head> + + <body> + <div class="container"> + <header> + Common header + </header> + + <div th:replace="${content}"> + <p>Layout content</p> + </div> + + <footer> + common footer + </footer> + </div> + </body> +</html> diff --git a/backend/src/test/java/fr/inra/urgi/faidare/filter/AngularRouteFilterTest.java b/backend/src/test/java/fr/inra/urgi/faidare/filter/AngularRouteFilterTest.java deleted file mode 100644 index b71e9e39509201d931b6e469ff747524f7a4ddd4..0000000000000000000000000000000000000000 --- a/backend/src/test/java/fr/inra/urgi/faidare/filter/AngularRouteFilterTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package fr.inra.urgi.faidare.filter; - -import fr.inra.urgi.faidare.Application; -import fr.inra.urgi.faidare.config.SecurityConfig; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.extension.ExtendWith; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.ValueSource; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.context.annotation.Import; -import org.springframework.core.io.Resource; -import org.springframework.core.io.ResourceLoader; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import org.springframework.test.util.ReflectionTestUtils; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.context.WebApplicationContext; - -import java.io.ByteArrayInputStream; - -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.forwardedUrl; - -/** - * Unit tests for {@link AngularRouteFilter} - * - * @author gcornut - */ -@ExtendWith(SpringExtension.class) -@Import(SecurityConfig.class) -@SpringBootTest(classes = Application.class) -class AngularRouteFilterTest { - - @Autowired - private WebApplicationContext context; - - @MockBean - private ResourceLoader resourceLoader; - - private MockMvc mockMvc; - - private AngularRouteFilter filter; - - @BeforeEach - void setUp() { - filter = new AngularRouteFilter(resourceLoader); - mockMvc = MockMvcBuilders.webAppContextSetup(context) - .addFilter(filter, "/*") - .build(); - } - - @ParameterizedTest - @ValueSource(strings = { - // Static files - "/index.html", - "/script.js", - "/style.css", - "/image.gif", - "/icon.ico", - "/image.png", - "/image.jpg", - "/font.woff", - "/font.ttf", - // APIs - "/brapi/v1/studies", - "/faidare/v1/datadiscovery/suggest", - "/actuator/info", - }) - void shouldNotForward(String url) throws Exception { - mockMvc.perform(get(url)).andExpect(forwardedUrl(null)); - } - - @ParameterizedTest - @ValueSource(strings = { - "/home", - "/studies/foo", - "/germplasm/bar", - }) - void shouldForward(String url) throws Exception { - String indexBefore = "<html>\n" + - " <base href=\"./\">\n" + - "</html>"; - String indexAfter = "<html>\n" + - " <base href=\"/gnpis-test/faidare/\">\n" + - "</html>"; - - ReflectionTestUtils.setField(filter, "serverContextPath", "/gnpis-test/faidare"); - - Resource mockResource = mock(Resource.class); - when(mockResource.getInputStream()) - .thenReturn(new ByteArrayInputStream(indexBefore.getBytes())); - when(resourceLoader.getResource(anyString())) - .thenReturn(mockResource); - - mockMvc.perform(get(url)) - .andExpect(content().string(indexAfter)); - } - -} diff --git a/backend/src/test/test.iml b/backend/src/test/test.iml deleted file mode 100644 index 6e30bb1c6134aa08b8bcfb9660df0484e83585c6..0000000000000000000000000000000000000000 --- a/backend/src/test/test.iml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<module type="JAVA_MODULE" version="4"> - <component name="NewModuleRootManager" inherit-compiler-output="true"> - <exclude-output /> - <content url="file://$MODULE_DIR$"> - <sourceFolder url="file://$MODULE_DIR$/java" isTestSource="true" /> - </content> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="main" /> - </component> -</module> diff --git a/settings.gradle.kts b/settings.gradle.kts index 4bd5a482217fc2c6b3921cafc0bdb602ebd96641..59e6a72bd92bbec780fb4ebc0fe825204fd505bf 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,2 @@ rootProject.name = "faidare" -include("backend", "frontend") +include("backend")