diff --git a/pom.xml b/pom.xml index 1b371bd..8b8e2ed 100644 --- a/pom.xml +++ b/pom.xml @@ -1,179 +1,218 @@ - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.7.5 - - - com.github.russp - bpe - 0.0.1-SNAPSHOT - bpe - Bad-practice editor - - 17 - - 0.12.1 - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-mustache - - - org.springframework.boot - spring-boot-starter-webflux - - - org.springframework.boot - spring-boot-starter-security - - - org.springframework.experimental - spring-native - ${spring-native.version} - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.7.5 + + + com.github.russp + bpe + 0.0.1-SNAPSHOT + bpe + Bad-practice editor + + 17 + 3.0.3 + + 0.12.1 + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-webflux + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.experimental + spring-native + ${spring-native.version} + - - commons-io - commons-io - 2.11.0 - + + commons-io + commons-io + 2.11.0 + - - org.springframework.boot - spring-boot-devtools - runtime - true - - - org.projectlombok - lombok - true - - - org.springframework.boot - spring-boot-starter-test - test - - - io.projectreactor - reactor-test - test - - + + gg.jte + jte + ${jte.version} + + + gg.jte + jte-spring-boot-starter-2 + ${jte.version} + - - - - org.springframework.boot - spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - ${repackage.classifier} - - paketobuildpacks/builder:tiny - - true - - - - - - org.springframework.experimental - spring-aot-maven-plugin - ${spring-native.version} - - - test-generate - - test-generate - - - - generate - - generate - - - - - - - - - spring-releases - Spring Releases - https://repo.spring.io/release - - false - - - - - - spring-releases - Spring Releases - https://repo.spring.io/release - - false - - - + + org.springframework.boot + spring-boot-devtools + runtime + true + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + io.projectreactor + reactor-test + test + + - - - native - - exec - 0.9.13 - - - - org.junit.platform - junit-platform-launcher - test - - - - - - org.graalvm.buildtools - native-maven-plugin - ${native-buildtools.version} - true - - - test-native - test - - test - - - - build-native - package - - build - - - - - - - - + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + ${repackage.classifier} + + paketobuildpacks/builder:tiny + + true + + + + + + org.springframework.experimental + spring-aot-maven-plugin + ${spring-native.version} + + + test-generate + + test-generate + + + + generate + + generate + + + + + + gg.jte + jte-maven-plugin + ${jte.version} + + ${basedir}/src/main/jte + Html + ${project.build.directory}/classes + + + gg.jte.nativeimage.NativeResourcesExtension + + + + + + jte-gen + generate-sources + + generate + + + + + + gg.jte + jte-native-resources + ${jte.version} + + + + + + + + spring-releases + Spring Releases + https://repo.spring.io/release + + false + + + + + + spring-releases + Spring Releases + https://repo.spring.io/release + + false + + + + + + + native + + exec + 0.9.13 + + + + org.junit.platform + junit-platform-launcher + test + + + + + + org.graalvm.buildtools + native-maven-plugin + ${native-buildtools.version} + true + + + test-native + test + + test + + + + build-native + package + + build + + + + + + + + diff --git a/src/main/java/com/github/russp/bpe/config/JteConfiguration.java b/src/main/java/com/github/russp/bpe/config/JteConfiguration.java new file mode 100644 index 0000000..f32fff3 --- /dev/null +++ b/src/main/java/com/github/russp/bpe/config/JteConfiguration.java @@ -0,0 +1,29 @@ +package com.github.russp.bpe.config; + +import gg.jte.springframework.boot.autoconfigure.ReactiveJteAutoConfiguration; +import gg.jte.springframework.boot.autoconfigure.ReactiveJteViewResolver; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.PostConstruct; +import java.util.Locale; + +@Slf4j +@Configuration +@ImportAutoConfiguration(ReactiveJteAutoConfiguration.class) +@RequiredArgsConstructor +public class JteConfiguration { + + private final ReactiveJteViewResolver jteViewResolver; + + @PostConstruct + public void vr() { + log.info("ReactiveJteViewResolver created: {}", jteViewResolver); + jteViewResolver.resolveViewName("login", Locale.ENGLISH) + .log() + .block(); + } + +} diff --git a/src/main/java/com/github/russp/bpe/http/BrowserController.java b/src/main/java/com/github/russp/bpe/http/BrowserController.java index ee9d547..5906528 100644 --- a/src/main/java/com/github/russp/bpe/http/BrowserController.java +++ b/src/main/java/com/github/russp/bpe/http/BrowserController.java @@ -72,7 +72,7 @@ public class BrowserController { model.addAttribute("breadcrumbs", breadcrumbs); model.addAttribute("selectedFile", path); - model.addAttribute("selectedFileName", Paths.get(path).getFileName()); + model.addAttribute("selectedFileName", Paths.get(path).getFileName().toString()); return "edit"; } diff --git a/src/main/resources/templates/browse/list.mustache b/src/main/jte/.jteroot similarity index 100% rename from src/main/resources/templates/browse/list.mustache rename to src/main/jte/.jteroot diff --git a/src/main/resources/templates/browse.mustache b/src/main/jte/browse.jte similarity index 65% rename from src/main/resources/templates/browse.mustache rename to src/main/jte/browse.jte index 1a7620c..f660a0f 100644 --- a/src/main/resources/templates/browse.mustache +++ b/src/main/jte/browse.jte @@ -1,3 +1,9 @@ +@import java.util.List +@import com.github.russp.bpe.http.FileDto + +@param List files +@param List breadcrumbs + @@ -26,9 +32,9 @@ @@ -47,26 +53,25 @@ - {{#files}} - - - {{#dir}} - - - {{name}} - - {{/dir}} - {{^dir}} - + @for(FileDto file : files) + + + @if(file.isDir()) + + + ${file.getName()} + + @else + - {{name}} - - {{/dir}} - - {{modifiedAt}} - {{size}} - - {{/files}} + ${file.getName()} + + @endif + + ${file.getModifiedAt()} + ${file.getSize()} + + @endfor @@ -87,7 +92,7 @@ Built with PicoSource code + href="https://github.com/picocss/examples/blob/master/basic-template/">Source code diff --git a/src/main/resources/templates/edit.mustache b/src/main/jte/edit.jte similarity index 63% rename from src/main/resources/templates/edit.mustache rename to src/main/jte/edit.jte index fcd20ce..37796bc 100644 --- a/src/main/resources/templates/edit.mustache +++ b/src/main/jte/edit.jte @@ -1,3 +1,14 @@ +@import java.util.List +@import org.springframework.security.web.server.csrf.CsrfToken +@import com.github.russp.bpe.http.FileDto + +@param String selectedFile +@param String selectedFileName +@param List breadcrumbs + +@param CsrfToken _csrf + + @@ -5,10 +16,10 @@ - - + + - Edit {{selectedFileName}} + Edit ${selectedFileName}
-
Edit {{selectedFileName}}
+
Edit ${selectedFileName}