GithubHelp home page GithubHelp logo

diennea / docetproject Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 10.0 11.32 MB

Docet - an online documentation manager

Home Page: https://docetproject.org

License: Apache License 2.0

Java 75.99% CSS 6.31% JavaScript 9.74% HTML 7.97%
docs documentation-tool java markdown

docetproject's People

Contributors

dependabot[bot] avatar diegosalvi avatar dmercuriali avatar enricodiiulio avatar eolivelli avatar fabienbrouillaud avatar mcroot avatar mcsuperroot avatar mino181295 avatar niccomlt avatar nicoloboschi avatar pv3nturi avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

docetproject's Issues

[Docet-Maven-Plugin] [Validation] Spell check

Would be very supportive to introduce a tool to help find typos in documents' content: in the first instance, this should support at least italian and english.
At first thought, it may be integrated in the overall validation process and, as a result, generate a report of mispelled words and typos.
First things first, we need to look for libraries implementing spell check.

[Docet-Maven-Plugin] New mojo to create a ready-to-use WAR

The idea is to have a mojo which creates a ready-to-use WAR file which contains the built documentation package together with:

  • DOCET RUNTIME (same version of the plugin)
  • A simple servlet which runs Docet
  • A default HTML container page (which a default template or the ability to use an user-supplied HTML file)

we can also add an option to create an "executable-war", that is a JAR file which runs Tomcat or Jetty and deploys the WAR file.
this will be useful too, in order to "view" the documentation without the need to install a Java Web container

DocetDocumentResourceAccessor > add contextual info about package and document

It may be useful to have a Docet resouce accessor devising placeholders' values not only based on actual application currently serving a document, but also on the package, actual document and corresponding format.
To this end we plan to extend DocetDocumentResourcesAccessor interface providing a further method getPlaceholderForDocument taking in input an additional param containing the following info:

  • id of the requested document
  • id of the package the requested doc belongs to
  • format of the doc requested

These field would be better encapsulated in a model class whose name still has to be made up.

Documentation packages > add an ID

So far doc packages does not feature any id allowing them to be uniquely identified on any host web application. Would be good to introduce a new "id" property so as to uniquely identify a package within the context of Docet itself with no need to provide any additional feature on the hosting Web application.

Docet Maven plugin sometimes is really slow due to IndexWriter#forceMerge

On my jenkins the build is really slow, this is the stacktrace.

Maybe there could be an option to compact the index ?

"pool-1-thread-1 for channel id=48208" Id=12 Group=main RUNNABLE (in native)
	at sun.nio.fs.UnixNativeDispatcher.stat0(Native Method)
	at sun.nio.fs.UnixNativeDispatcher.stat(UnixNativeDispatcher.java:286)
	at sun.nio.fs.UnixFileAttributes.get(UnixFileAttributes.java:70)
	at sun.nio.fs.UnixFileStore.devFor(UnixFileStore.java:55)
	at sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:70)
	at sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:48)
	at sun.nio.fs.LinuxFileSystem.getFileStore(LinuxFileSystem.java:112)
	at sun.nio.fs.UnixFileSystem$FileStoreIterator.readNext(UnixFileSystem.java:213)
	at sun.nio.fs.UnixFileSystem$FileStoreIterator.hasNext(UnixFileSystem.java:224)
	-  locked sun.nio.fs.UnixFileSystem$FileStoreIterator@103d9f84
	at org.apache.lucene.util.IOUtils.getFileStore(IOUtils.java:515)
	at org.apache.lucene.util.IOUtils.spinsLinux(IOUtils.java:459)
	at org.apache.lucene.util.IOUtils.spins(IOUtils.java:448)
	at org.apache.lucene.util.IOUtils.spins(IOUtils.java:423)
	at org.apache.lucene.index.ConcurrentMergeScheduler.initDynamicDefaults(ConcurrentMergeScheduler.java:376)
	-  locked org.apache.lucene.index.ConcurrentMergeScheduler@2646ee62
	at org.apache.lucene.index.ConcurrentMergeScheduler.merge(ConcurrentMergeScheduler.java:464)
	-  locked org.apache.lucene.index.ConcurrentMergeScheduler@2646ee62
	at org.apache.lucene.index.IndexWriter.maybeMerge(IndexWriter.java:1931)
	at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3088)
	at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:1741)
	at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:1721)
	at docet.maven.DocetPluginUtils.indexDocsForLanguage(DocetPluginUtils.java:1285)
	at docet.maven.DocetPluginUtils.indexDocs(DocetPluginUtils.java:1225)
	at docet.maven.DocetMojo.execute(DocetMojo.java:183)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)

Error on Java 9

DocetUtils.fastReadFile does not work on Java 9

java.lang.NullPointerException
  at docet.DocetUtils.forceReleaseBuffer(DocetUtils.java:156)
  at docet.DocetUtils.fastReadFile(DocetUtils.java:136)
  at docet.engine.DocetManager.loadTocForPackage(DocetManager.java:439)
  at docet.engine.DocetManager.existsPageForLanguage(DocetManager.java:1056)

PDF Converter - Strict validation on source format

Pdf conversion works by starting straightly with html-like source doc: pdf parser is pretty picky with dangling (unclosed) tags.
When such a tag (e.g. li p and the like) is found with no closing tag, pdf is not correctly generated: in order to avoid this, it would be a lot useful to introduce a strict syntactic validation on source page structure.

Strange scroll behaviour

This happens only when the content div is shorter than toc div and toc is long enough to activate its scrollbar

Page Opened as a "Fallback-Language" Page > Images not Shown

Happens when a page, say a page in english is opened as a default from an original request for a page in a different language XX (one for which no doc is available but for which the descriptor says doc in english must be used): image srcs of the page displayed refers to a path corresponding to resources for language XX that, unfortunately, does not exist, so that images appear broken on the page.

Solution is to parse the page before sending it to the browser so as to change any src of any image in the f page, adopting the corresponding path the code of the actual fallback language (english in the example described above).

Avoid charset literals

Avoid when possible to use strings like "UTF-8" and use StandardCharset.UTF-8 instead when a Charset is required. It avoid typos AND skip Charset lookup every time is needed.

Manage browser history

Support correct use of browser buttons such as back button: as Docet is a single-page application, in future release is going to be key to adopt techniques and patterns to improve overall ux.

Links not working in Microsoft Explorer

In Explorer links just work if called from the TOC.
Any kind of internal link to a different page or to an internal anchor returns doensn't work and returns:

SCRIPT438: L'oggetto non supporta la proprietà o il metodo 'startsWith'
docet.js (505,9)

New docet:rundocs mojo

It would be very useful to have a "mojo" (Maven Goal) to start a Web Server and deploy the documentation package of the "current project"

Disable PDF generation

Docet depends from a AGPL v3 library itext.pdf. To avoid such dependency pdf generation could be totally disabled (and importing docet through maven itext can be excluded)

            <dependency>
                <groupId>org.docetproject</groupId>
                <artifactId>docet-core</artifactId>
                <version>${docet.version}</version>
                <!-- Avoid itext AGPL v3 dependency -->
                <exclusions>
                    <exclusion>
                        <groupId>com.itextpdf</groupId>
                        <artifactId>itextpdf</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.itextpdf.tool</groupId>
                        <artifactId>xmlworker</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

Findbugs: fix errored detected on 1.8

Findbugs detected a few potential bugs on release 1.8 that should be coped with:

[INFO] BugInstance size is 3
[INFO] Error size is 0
[INFO] Total bugs: 3
[INFO] Return value of org.jsoup.nodes.Element.appendElement(String) ignored, is this OK in docet.engine.PDFDocumentHandler.normaliseHTML(Document) [docet.engine.PDFDocumentHandler] At PDFDocumentHandler.java:[line 553] RV_RETURN_VALUE_IGNORED_INFERRED
[INFO] Unread field: docet.engine.PDFDocumentHandler$DocumentPart.layout [docet.engine.PDFDocumentHandler$DocumentPart] At PDFDocumentHandler.java:[line 1087] URF_UNREAD_FIELD
[INFO] Unused field: docet.engine.PDFDocumentHandler$DocumentPart.id [docet.engine.PDFDocumentHandler$DocumentPart] In PDFDocumentHandler.java UUF_UNUSED_FIELD

Enable exploitation of animated GIF

Introduce support for animated GIF on documents: indeed, so far only images in png format are supported and, accordingly, correctly rendered at runtime by Docet engine.

Docet table of contents > Submenu all open in Java 9

The code that adds hidden class css is not executed in Java 9 due to an optimization in Java Stream API.

subItems.stream().peek(ul -> {
     ul.addClass(CSS_CLASS_DOCET_SUBMENU);
     ul.addClass(CSS_CLASS_DOCET_MENU_HIDDEN);
});

The code should be executed with a forEach loop to ensure the hidden class is added.

Permit anchor target attribute

Docet strip away anchor target attributes through Jsoup.clean(dirtyPageText, whiteList);

Permitting target attribute we can link external resources in another page

Tags, advanced search, favorites and meta keywords

Below a few points to be further discussed.

  1. From preliminary feedbacks and impressions, looks like it would be very useful to implement a system of page tagging/labeling so as to improve overall documentation browsing.
    Tags could be then exploited so as to provide a sort of cross-tag navigation of contents: furthermore, by accordingly updating search engine, it would be possible to allow users to do tag-based advanced searches, e.g. searches based on specific topics.
  2. Add a sort of last modification date on each page and a feature for managing favorite pages so as to ease page access
  3. meta keywords: these would allow to improve users' search experience when searching for keywords which are different that those concerned with the topic treated in a documentation package.

Check for com/itextpdf/tool/xml/pipeline/html/ImageProvider in order to enable PDF

We are checking only for classes in core itextpdf package.
We need to check for com/itextpdf/tool/xml/pipeline/html/ImageProvider too.

see

 java.lang.NoClassDefFoundError: com/itextpdf/tool/xml/pipeline/html/ImageProvider
	at docet.engine.DocetManager$DocetDocumentParserFactory.getParserForFormat(DocetManager.java:1221)
	at docet.engine.DocetManager$DocetDocumentParserFactory.access$100(DocetManager.java:1204)
	at docet.engine.DocetManager.<init>(DocetManager.java:146)

PDFDocumentGenerator.java > Error on Serving PDF Document

See stacktrace below:

Exception com.lowagie.text.exceptions.IllegalPdfSyntaxException: Unbalanced save/restore state operators.

com.lowagie.text.exceptions.IllegalPdfSyntaxException: Unbalanced save/restore state operators.
	at com.lowagie.text.pdf.PdfContentByte.sanityCheck(PdfContentByte.java:3126)
	at com.lowagie.text.pdf.PdfContentByte.reset(PdfContentByte.java:1283)
	at com.lowagie.text.pdf.PdfContentByte.reset(PdfContentByte.java:1272)
	at com.lowagie.text.pdf.PdfWriter.resetContent(PdfWriter.java:741)
	at com.lowagie.text.pdf.PdfDocument.initPage(PdfDocument.java:1147)
	at com.lowagie.text.pdf.PdfDocument.newPage(PdfDocument.java:965)
	at com.lowagie.text.pdf.PdfDocument.close(PdfDocument.java:813)
	at com.lowagie.text.Document.close(Document.java:450)
	at docet.engine.PDFDocumentHandler.createPDF(PDFDocumentHandler.java:919)
	at docet.engine.PDFDocumentHandler.createPDF(PDFDocumentHandler.java:375)
	at docet.engine.PDFDocumentGenerator.generateDocetDocument(PDFDocumentGenerator.java:81)
	at docet.engine.DocetManager.serveRequest(DocetManager.java:1002)

Accessibility: attach enter key pressing to the handler intercepting clicks on Docet links

Docet links are manager via a handler intercepting just clicks: in order to provide a greater deal of accessibility for people with blind disabilitiy to intercept also enter keypressing on these links as these is the mechanism adopted by them to surf canonical links. Also, would be good to render these links by adding the aria attribute role with value link (role=link).

Docet >illegalArgumentException while search a script: script example (<script type="text/vbscript">alert(kappa)</script>)

18-10-04-12-25-00 java.lang.IllegalArgumentException: expected '>' at position 26
java.lang.IllegalArgumentException: expected '>' at position 26
at org.apache.lucene.util.automaton.RegExp.parseSimpleExp(RegExp.java:1127)
at org.apache.lucene.util.automaton.RegExp.parseCharClassExp(RegExp.java:1090)
at org.apache.lucene.util.automaton.RegExp.parseComplExp(RegExp.java:1078)
at org.apache.lucene.util.automaton.RegExp.parseRepeatExp(RegExp.java:1047)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1040)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseConcatExp(RegExp.java:1041)
at org.apache.lucene.util.automaton.RegExp.parseInterExp(RegExp.java:1033)
at org.apache.lucene.util.automaton.RegExp.parseUnionExp(RegExp.java:1027)
at org.apache.lucene.util.automaton.RegExp.(RegExp.java:405)
at org.apache.lucene.search.RegexpQuery.(RegexpQuery.java:108)
at org.apache.lucene.search.RegexpQuery.(RegexpQuery.java:93)
at org.apache.lucene.queryparser.classic.QueryParserBase.newRegexpQuery(QueryParserBase.java:580)
at org.apache.lucene.queryparser.classic.QueryParserBase.getRegexpQuery(QueryParserBase.java:781)
at org.apache.lucene.queryparser.classic.QueryParserBase.handleBareTokenQuery(QueryParserBase.java:851)
at org.apache.lucene.queryparser.classic.QueryParser.Term(QueryParser.java:348)
at org.apache.lucene.queryparser.classic.QueryParser.Clause(QueryParser.java:247)
at org.apache.lucene.queryparser.classic.QueryParser.Query(QueryParser.java:202)
at org.apache.lucene.queryparser.classic.QueryParser.TopLevelQuery(QueryParser.java:160)
at org.apache.lucene.queryparser.classic.QueryParserBase.parse(QueryParserBase.java:117)
at docet.engine.SimpleDocetDocSearcher.searchForMatchingDocuments(SimpleDocetDocSearcher.java:104)
at docet.engine.DocetManager.searchPagesByKeywordAndLangWithRerencePackage(DocetManager.java:796)
at docet.engine.DocetManager.serveSearchRequest(DocetManager.java:1129)
at docet.engine.DocetManager.serveRequest(DocetManager.java:1023)
at docet.engine.DocetManager.serveRequest(DocetManager.java:907)
at magnews.gateway.docet.DocetSimpleServlet.processRequest(DocetSimpleServlet.java:69)
at magnews.gateway.docet.DocetSimpleServlet.doGet(DocetSimpleServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
:

Introduce support for bookmarkable URLs

The idea is that the URI on the browser could be "bookmarkable" and sharable by users.
This feature requires an integration on the "container" web application, so that we need to support this kind of integration.
Maybe we can add on the 'hash' (#fragment) some information to recreate the page

"Back button" feature

Introduce a back button to ease navigation between pages, especially to simplify access so previously visited pages: a possibility could be that of devising a sort of nav bar of last-viewed pages.

PDF Conversion - Nested ULs

Currently, pdf parser seems not to support nested ULs such as:

<ul>
      <li></li>
      <li>
            <ul><li></li></ul>
      </li>
</ul>

Fix compatibility JDK8

When running docet with jdk8

Caused by: java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
	at docet.DocetUtils.fastReadFile(DocetUtils.java:101)
	at docet.DocetUtils.generatePackageDescriptor(DocetUtils.java:62)
	at docet.engine.DocetPackageRuntimeManager.constructPackageInfo(DocetPackageRuntimeManager.java:149)
	at docet.engine.DocetPackageRuntimeManager.retrievePackageInfo(DocetPackageRuntimeManager.java:125)
	at docet.engine.DocetPackageRuntimeManager.getDocumentDirectoryForPackage(DocetPackageRuntimeManager.java:88)
	at docet.engine.DocetManager.getPathToPackageDoc(DocetManager.java:158)
	at docet.engine.DocetManager.servePackageDescriptionForLanguage(DocetManager.java:723)
	at docet.engine.DocetManager.servePackageListRequest(DocetManager.java:1160)
	at docet.engine.DocetManager.serveRequest(DocetManager.java:1039)
	at docet.engine.DocetManager.serveRequest(DocetManager.java:910)
	at magnews.gateway.docet.DocetSimpleServlet.processRequest(DocetSimpleServlet.java:69)
	at magnews.gateway.docet.DocetSimpleServlet.doGet(DocetSimpleServlet.java:53)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	... 19 more

existsPageForLanguage > loads TOC (table of contents) of nonexistent languages

If we are requesting a page belonging to a language not defined in a given package, it is useless to (try to) load the TOC for that language.
See sample error below:

java.nio.file.NoSuchFileException: /data/mn1/tomcat/./.docetdata/userguide_1495189343330/docs/fr/toc.html
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
        at java.nio.file.Files.newByteChannel(Files.java:361)
        at java.nio.file.Files.newByteChannel(Files.java:407)
        at docet.DocetUtils.fastReadFile(DocetUtils.java:123)
        at docet.engine.DocetManager.loadTocForPackage(DocetManager.java:431)
        at docet.engine.DocetManager.existsPageForLanguage(DocetManager.java:1061)
        at magnews.backend.docet.DocetFileManager.existspageIdForPackageAndLanguage(DocetFileManager.java:197)
        at magnews.backend.framework.PageContext.existsCurrentDocumentationPageForLanguage(PageContext.java:2932)
        at sun.reflect.GeneratedMethodAccessor733.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at it.camuffo.CamuffoMethod.invoke(CamuffoMethod.java:125)
        at it.camuffo.scripting.MethodCallExpression.evaluate(MethodCallExpression.java:54)
        at it.camuffo.scripting.FieldAccessExpression.evaluate(FieldAccessExpression.java:45)
        at it.camuffo.scripting.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:35)
        at it.camuffo.scripting.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:31)
        at it.camuffo.CamuffoContext.evaluateExpression(CamuffoContext.java:232)
        at it.camuffo.tags.CFIfTag.evaluateCondition(CFIfTag.java:118)
        at it.camuffo.tags.CFIfTag.execute(CFIfTag.java:74)
        at it.camuffo.tags.CFIfTag.execute(CFIfTag.java:68)
        at it.camuffo.CamuffoEngine.executeTagNode(CamuffoEngine.java:182)
        at it.camuffo.CamuffoEngine.execute(CamuffoEngine.java:392)
        at it.camuffo.tags.CFIfTag.execute(CFIfTag.java:77)
        at it.camuffo.tags.CFIfTag.execute(CFIfTag.java:68)
        at it.camuffo.CamuffoEngine.executeTagNode(CamuffoEngine.java:182)
        at it.camuffo.CamuffoEngine.execute(CamuffoEngine.java:392)
        at it.camuffo.tags.CFOutputTag.execute(CFOutputTag.java:43)
        at it.camuffo.CamuffoEngine.executeTagNode(CamuffoEngine.java:182)
        at it.camuffo.CamuffoEngine.execute(CamuffoEngine.java:392)
        at it.camuffo.CamuffoEngine.execute(CamuffoEngine.java:386)
        at it.camuffo.CamuffoEngine.executeAsIntepreted(CamuffoEngine.java:162)
        at it.camuffo.CamuffoEngine.executeModule(CamuffoEngine.java:281)
        at it.camuffo.tags.DynamicModuleTag.execute(DynamicModuleTag.java:60)
        at it.camuffo.CamuffoEngine.executeTagNode(CamuffoEngine.java:182)
        at it.camuffo.CamuffoEngine.execute(CamuffoEngine.java:392)
        at it.camuffo.CamuffoEngine.execute(CamuffoEngine.java:386)
        at it.camuffo.CamuffoEngine.executeAsIntepreted(CamuffoEngine.java:162)
        at it.camuffo.CamuffoEngine.includeTemplate(CamuffoEngine.java:235)
        at it.camuffo.runtime.CamuffoInterpreterServlet.processRequest(CamuffoInterpreterServlet.java:115)
        at it.camuffo.runtime.CamuffoInterpreterServlet.doGet(CamuffoInterpreterServlet.java:272)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:170)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:224)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:46)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:148)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:144)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:726)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:592)
        at org.apache.catalina.core.ApplicationDispatcher.access$100(ApplicationDispatcher.java:63)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude.run(ApplicationDispatcher.java:112)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedInclude.run(ApplicationDispatcher.java:100)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:517)
        at org.apache.jsp.tag.web.layoutInsert_tag.doTag(layoutInsert_tag.java:110)```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.