Merge branch 'develop' into challenge
This commit is contained in:
commit
2f72ac4add
@ -54,11 +54,9 @@ public class AsciiDoctorTemplateResolver extends TemplateResolver {
|
|||||||
|
|
||||||
private static final Asciidoctor asciidoctor = create();
|
private static final Asciidoctor asciidoctor = create();
|
||||||
private static final String PREFIX = "doc:";
|
private static final String PREFIX = "doc:";
|
||||||
private final File pluginTargetDirectory;
|
|
||||||
private final Language language;
|
private final Language language;
|
||||||
|
|
||||||
public AsciiDoctorTemplateResolver(File pluginTargetDirectory, Language language) {
|
public AsciiDoctorTemplateResolver(Language language) {
|
||||||
this.pluginTargetDirectory = pluginTargetDirectory;
|
|
||||||
this.language = language;
|
this.language = language;
|
||||||
|
|
||||||
setResourceResolver(new AdocResourceResolver());
|
setResourceResolver(new AdocResourceResolver());
|
||||||
@ -75,7 +73,7 @@ public class AsciiDoctorTemplateResolver extends TemplateResolver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InputStream getResourceAsStream(TemplateProcessingParameters params, String resourceName) {
|
public InputStream getResourceAsStream(TemplateProcessingParameters params, String resourceName) {
|
||||||
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(computeResourceName(resourceName));
|
InputStream is = readInputStreamOrFallbackToEnglish(resourceName, language);
|
||||||
try {
|
try {
|
||||||
StringWriter writer = new StringWriter();
|
StringWriter writer = new StringWriter();
|
||||||
asciidoctor.convert(new InputStreamReader(is), writer, createAttributes());
|
asciidoctor.convert(new InputStreamReader(is), writer, createAttributes());
|
||||||
@ -90,10 +88,17 @@ public class AsciiDoctorTemplateResolver extends TemplateResolver {
|
|||||||
* The resource name is for example HttpBasics_content1.adoc. This is always located in the following directory:
|
* The resource name is for example HttpBasics_content1.adoc. This is always located in the following directory:
|
||||||
* <code>plugin/HttpBasics/lessonPlans/en/HttpBasics_content1.adoc</code>
|
* <code>plugin/HttpBasics/lessonPlans/en/HttpBasics_content1.adoc</code>
|
||||||
*/
|
*/
|
||||||
private String computeResourceName(String resourceName) {
|
private String computeResourceName(String resourceName, String language) {
|
||||||
return String.format("lessonPlans/%s/%s", language.getLocale().getLanguage(), resourceName);
|
return String.format("lessonPlans/%s/%s", language, resourceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private InputStream readInputStreamOrFallbackToEnglish(String resourceName, Language language) {
|
||||||
|
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(computeResourceName(resourceName, language.getLocale().getLanguage()));
|
||||||
|
if (is == null) {
|
||||||
|
is = Thread.currentThread().getContextClassLoader().getResourceAsStream(computeResourceName(resourceName, "en"));
|
||||||
|
}
|
||||||
|
return is;
|
||||||
|
}
|
||||||
|
|
||||||
private Map<String, Object> createAttributes() {
|
private Map<String, Object> createAttributes() {
|
||||||
Map<String, Object> attributes = Maps.newHashMap();
|
Map<String, Object> attributes = Maps.newHashMap();
|
||||||
|
@ -95,7 +95,7 @@ public class MvcConfiguration extends WebMvcConfigurerAdapter {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public AsciiDoctorTemplateResolver asciiDoctorTemplateResolver(Language language) {
|
public AsciiDoctorTemplateResolver asciiDoctorTemplateResolver(Language language) {
|
||||||
AsciiDoctorTemplateResolver resolver = new AsciiDoctorTemplateResolver(pluginTargetDirectory, language);
|
AsciiDoctorTemplateResolver resolver = new AsciiDoctorTemplateResolver(language);
|
||||||
resolver.setCacheable(false);
|
resolver.setCacheable(false);
|
||||||
resolver.setOrder(3);
|
resolver.setOrder(3);
|
||||||
return resolver;
|
return resolver;
|
||||||
@ -120,7 +120,6 @@ public class MvcConfiguration extends WebMvcConfigurerAdapter {
|
|||||||
@Override
|
@Override
|
||||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||||
registry.addResourceHandler("/plugin_lessons/**").addResourceLocations("file:///" + pluginTargetDirectory.toString() + "/");
|
registry.addResourceHandler("/plugin_lessons/**").addResourceLocations("file:///" + pluginTargetDirectory.toString() + "/");
|
||||||
//registry.addResourceHandler("/images/**").addResourceLocations("classpath:/plugin/VulnerableComponents/images/");
|
|
||||||
registry.addResourceHandler("/images/**").addResourceLocations("classpath:/images/");
|
registry.addResourceHandler("/images/**").addResourceLocations("classpath:/images/");
|
||||||
registry.addResourceHandler("/lesson_js/**").addResourceLocations("classpath:/js/");
|
registry.addResourceHandler("/lesson_js/**").addResourceLocations("classpath:/js/");
|
||||||
registry.addResourceHandler("/lesson_css/**").addResourceLocations("classpath:/css/");
|
registry.addResourceHandler("/lesson_css/**").addResourceLocations("classpath:/css/");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user