import org.osgi.service.component.annotations.*; import javax.servlet.*; import com.vaadin.flow.server.StreamResource; import com.vaadin.osgi.resources.OsgiVaadinStaticResourceService; import com.vaadin.osgi.resources.OsgiVaadinResources; @Component(service = { Servlet.class, OsgiVaadinResources.class, VaadinServletRequestListener.class }) public class MarkdownServlet extends VaadinServlet implements OsgiVaadinResources, VaadinServletRequestListener { private PageDownRenderer pageDownRenderer; @Override protected void servletInitialized() throws ServletException { super.servletInitialized(); pageDownRenderer = new PageDownRenderer(); } @Override public boolean serveUrl(String url, boolean isPreinstalled) { if (url.endsWith(".md")) { url = url.replace(".md", ".html"); StreamResource resource = new StreamResource("generated-html", () -> new ByteArrayInputStream( pageDownRenderer.convertToHtml(url).getBytes())); OsgiVaadinStaticResourceService.getInstance().addResourceIfAbsent( getClass().getClassLoader(), url, resource, OsgiVaadinStaticResourceService.CacheTime.INFINITE); return true; } return false; } }


上一篇:
下一篇:
切换中文