Giter Site home page Giter Site logo

dashboard's People

Contributors

adamretter avatar christophe-g avatar craigberry avatar dependabot-preview[bot] avatar dependabot[bot] avatar dizzzz avatar duncdrum avatar joernt avatar joewiz avatar lcahlander avatar line-o avatar ljo avatar shabanovd avatar wolfgangmm avatar wshager avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dashboard's Issues

Broken dashboard with traffic-encrypting proxy

What is the problem

We are routing http-traffic to our eXist-db instances through nginx as a proxy that also handles traffic encryption, on exist's contributed jetty all ssl-related configuration is deactivated.

While the dashboard does work when requested via http, but yields this document when requested via https:

<exception>
  <path>/db/apps/dashboard/modules/view.xql</path>
  <message>exerr:ERROR XPTY0004: The actual cardinality for parameter 1 does not match the cardinality declared in the function's signature: templates:apply($content as node()+, $resolver as function, $model as map?) item()*. Expected cardinality: one or more, got 0. [at line 38, column 22, source: /db/apps/dashboard/modules/view.xql]
In function:
	templates:apply(node()+, function, map?) [38:5:/db/apps/dashboard/modules/templates.xql]
  </message>
</exception>

This applies with Chromium 58.0.3029.110 as well as Firefox 54.0 on Ubuntu 16.04. curl does fine, so it may be related to some functionality that is implemented with Javascript .

The error is not evoked by our own apps, they work as expected.

Context information

Please always add the following information

  • eXist-db 3.2 / 691bcd6
  • openjdk 8u131
  • Ubuntu 16.04
  • amd64
  • nginx 1.10

Roadmap for dashboard 2.0

It has been some time since anyone suggested a new version of the dashboard. I would like to make a serious attempt this time.

I've gotten a lot of positive feedback on my proposal to use Dojo 1.10 as the basis for the dashboard, which is miles ahead of the version currently used. For those who don't know, however, Dojo does have some downsides, as there is some very ancient code to support browser that we've all forgotten about, like IE8 and even older. As my plan now stands, only the bare essentials from Dojo will be used. As I know the code base very well [1], I know what is only used by those unknown, prehistoric browsers, and can be, as they say, ditched [2]. Of course I want to keep the footprint as small as possible, and would gladly opt for any other widget system that work as well as Dojo's does.

Instead of a plugin system, the idea is to add expath packages to the dashboard that can be told to become available as a dashboard popup (as proposed by @adamretter). The XAR will register as a very basic widget, provided as a single AMD module. The widget must be AMD-compatible and will have to render its own DOM after loading.

A tiny roadmap:

  • create empty dashboard with XAR dropzone or package manager (chicken/egg problem?)
  • sketch out minimal widget requirements and compatibility guidelines, based on new collection browser
  • have package register as open-in-dashboard
  • open said package in popup on click (use alt-click to open in new tab/window?), where popup pulls in required sources (AMD "widget" module, CSS)
  • provide guidelines for creating a self-rendering widget

Notes:
[1]: As a Dojo contributor I'm also closely following the developments of its upcoming version 2.0 release.
[2]: For example, the collection browser uses a form framework I created, dforma, where only the AMD loader, dstore, dgrid, and some very basic widgets are used. The rest of the code is mine.

Add favico to dashboard

It is eye candy but rather useful, to have a favico linked to the dashboard, It makes the dashboard more easy to find in the bookmarks

Can we delete `develop` branch?

The last commit in the develop branch is from 2013. If development isn't happening in the develop branch but in the master branch, let's delete develop.

NPEs while removing XARs

24 Apr 2014 21:23:20,618 [eXistThread-40] WARN  (ServletHandler.java [doHandle]:492) -  
javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/modules/install.xql: An unknown error occurred: null
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:394)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
    at de.betterform.agent.web.filter.XFormsFilter.doFilter(XFormsFilter.java:177)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:368)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:488)
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:943)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1004)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.servlet.ServletException: An unknown error occurred: null
    at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:229)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
    at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:46)
    at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:577)
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:353)
    ... 28 more
Caused by: java.lang.NullPointerException
    at org.exist.repo.Deployment.uninstall(Deployment.java:445)
    at org.exist.repo.Deployment.undeploy(Deployment.java:271)
    at org.exist.xquery.modules.expathrepo.Deploy.eval(Deploy.java:146)
    at org.exist.xquery.BasicFunction.eval(BasicFunction.java:70)
    at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:56)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:142)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:74)
    at org.exist.xquery.Atomize.eval(Atomize.java:66)
    at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:142)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.PathExpr.eval(PathExpr.java:264)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.SwitchExpression.eval(SwitchExpression.java:104)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:102)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.value.FunctionReference.eval(FunctionReference.java:80)
    at org.exist.xquery.DynamicFunctionCall.eval(DynamicFunctionCall.java:75)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:189)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.PathExpr.eval(PathExpr.java:264)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.XQuery.execute(XQuery.java:297)
    at org.exist.xquery.XQuery.execute(XQuery.java:217)
    at org.exist.http.RESTServer.executeXQuery(RESTServer.java:1533)
    at org.exist.http.RESTServer.doPost(RESTServer.java:672)
    at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:445)
    ... 45 more
24 Apr 2014 21:23:20,619 [eXistThread-40] WARN  (ServletHandler.java [doHandle]:517) - /exist/apps/dashboard/modules/install.xql 
javax.servlet.ServletException: An unknown error occurred: null
    at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:229)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
    at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:46)
    at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:577)
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:353)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
    at de.betterform.agent.web.filter.XFormsFilter.doFilter(XFormsFilter.java:177)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:368)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:488)
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:943)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1004)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
    at org.exist.repo.Deployment.uninstall(Deployment.java:445)
    at org.exist.repo.Deployment.undeploy(Deployment.java:271)
    at org.exist.xquery.modules.expathrepo.Deploy.eval(Deploy.java:146)
    at org.exist.xquery.BasicFunction.eval(BasicFunction.java:70)
    at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:56)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:142)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:74)
    at org.exist.xquery.Atomize.eval(Atomize.java:66)
    at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:142)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.PathExpr.eval(PathExpr.java:264)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.SwitchExpression.eval(SwitchExpression.java:104)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:102)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.value.FunctionReference.eval(FunctionReference.java:80)
    at org.exist.xquery.DynamicFunctionCall.eval(DynamicFunctionCall.java:75)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:328)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:189)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.PathExpr.eval(PathExpr.java:264)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.XQuery.execute(XQuery.java:297)
    at org.exist.xquery.XQuery.execute(XQuery.java:217)
    at org.exist.http.RESTServer.executeXQuery(RESTServer.java:1533)
    at org.exist.http.RESTServer.doPost(RESTServer.java:672)
    at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:445)
    ... 45 more

shutdown not working

At 9eaab9, when shutting down through the dashboard, Jetty stops, but eXist is still running:

ps ax | grep 'exist' 61371 s000 S+ 0:00.00 /bin/bash /Applications/exist_dev/bin/startup.sh 61380 s000 S+ 0:21.96 /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java -Xms128m -Xmx1024m -Dfile.encoding=UTF-8 -Djava.endorsed.dirs=/Applications/exist_dev/lib/endorsed -Dexist.home=/Applications/exist_dev -jar /Applications/exist_dev/start.jar jetty 61429 s001 S+ 0:00.00 grep exist

Backup-central does not sort entries

Despite the sorting 'items' on top of the table, clicking on these 'items' the table is not sorted. the table is refreshed.

In one exist-db instance the list of backup files is kept more or less randomly, at an other instance the alpha-order is not changeable.

Browsers: FireFox , Safari and Chrome

UserManager keeps requesting

When I open the usermanager, it keeps requesting user items from exist. This also means I can never scroll down to the end of the list.

StringIndexOutOfBoundsException: String index out of range: -1

When removing my XAR, I see the soloing trace (exist.log);

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1911)
    at org.expath.pkg.repo.FileSystemStorage$FileSystemResolver.removePackageInTxt(FileSystemStorage.java:286)
    at org.expath.pkg.repo.FileSystemStorage$FileSystemResolver.removePackage(FileSystemStorage.java:235)
    at org.expath.pkg.repo.Package.removeContent(Package.java:52)
    at org.expath.pkg.repo.Repository.removePackage(Repository.java:261)
    at org.exist.xquery.modules.expathrepo.RemoveFunction.eval(RemoveFunction.java:54)

During loading of the modules into eXist I saw a similar warning in the UI (-1) but nothing was in the logs

28 Dec 2013 14:33:43,893 [eXistThread-42] WARN  (ServletHandler.java [doHandle]:492) -  
javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/modules/install.xql: An unknown error occurred: String index out of range: -1
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:380)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
    at de.betterform.agent.web.filter.XFormsFilter.doFilter(Unknown Source)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:368)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:488)
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:943)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1004)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:744)

Caused by: javax.servlet.ServletException: An unknown error occurred: String index out of range: -1
    at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:229)
    at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
    at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:46)
    at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:563)
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:339)
    ... 28 more

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1911)
    at org.expath.pkg.repo.FileSystemStorage$FileSystemResolver.removePackageInTxt(FileSystemStorage.java:286)
    at org.expath.pkg.repo.FileSystemStorage$FileSystemResolver.removePackage(FileSystemStorage.java:235)
    at org.expath.pkg.repo.Package.removeContent(Package.java:52)
    at org.expath.pkg.repo.Repository.removePackage(Repository.java:261)
    at org.exist.xquery.modules.expathrepo.RemoveFunction.eval(RemoveFunction.java:54)
    at org.exist.xquery.BasicFunction.eval(BasicFunction.java:70)
    at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:55)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:142)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:74)
    at org.exist.xquery.Atomize.eval(Atomize.java:66)
    at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:327)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:142)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.PathExpr.eval(PathExpr.java:264)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.SwitchExpression.eval(SwitchExpression.java:104)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:102)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:327)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.value.FunctionReference.eval(FunctionReference.java:80)
    at org.exist.xquery.DynamicFunctionCall.eval(DynamicFunctionCall.java:74)
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:153)
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:327)
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:232)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:189)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.LetExpr.eval(LetExpr.java:187)
    at org.exist.xquery.BindingExpression.eval(BindingExpression.java:164)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.PathExpr.eval(PathExpr.java:264)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
    at org.exist.xquery.XQuery.execute(XQuery.java:267)
    at org.exist.xquery.XQuery.execute(XQuery.java:214)
    at org.exist.http.RESTServer.executeXQuery(RESTServer.java:1533)
    at org.exist.http.RESTServer.doPost(RESTServer.java:672)
    at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:445)
    ... 45 more

User Manager authentication errors when using persistent login

As first reported by Alister Pillow at http://markmail.org/message/iow4bfpmeesnzfkd, the Dashboard > User Manager cannot display users or groups when logged in using the "remember me" option selected. The problem is absent when logging in without this checkbox selected.

Specifically, after logging in to Dashboard with the "remember me" checkbox selected, a request to http://localhost:8080/exist/apps/dashboard/plugins/userManager/api/user/ will return an ERROR 500, with the following error in exist.log (also reported in the browser):

2016-08-18 14:26:53,087 [qtp1974513281-37] WARN  (ServletHandler.java [doHandle]:623) -  
javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/plugins/userManager/api/user/: exerr:ERROR You must be an authenticated user [at line 69, column 38, source: /db/apps/dashboard/plugins/userManager/userManager.xqm]
In function:
    usermanager:get-user(item()*) [44:17:/db/apps/dashboard/plugins/userManager/userManager.xqm]
    usermanager:list-users() [70:5:/db/apps/dashboard/plugins/userManager/userManager.xqm]
    local:list-users(xs:string?) [195:70:/db/apps/dashboard/plugins/userManager/controller.xql]
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:378) ~[exist-optional.jar:?]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[servlet-api-3.1.jar:3.1.0]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845) ~[jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1689) ~[jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
    at de.betterform.agent.web.filter.XFormsFilter.doFilter(XFormsFilter.java:171) ~[betterform-exist-5.1-SNAPSHOT-20160615.jar:?]
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668) ~[jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581) [jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) [jetty-security-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1174) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) [jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1106) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:459) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.Server.handle(Server.java:524) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:319) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:253) [jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [jetty-io-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [jetty-io-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [jetty-io-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102]
Caused by: org.exist.xquery.XPathException: exerr:ERROR You must be an authenticated user [at line 69, column 38, source: /db/apps/dashboard/plugins/userManager/userManager.xqm]
In function:
    usermanager:get-user(item()*) [44:17:/db/apps/dashboard/plugins/userManager/userManager.xqm]
    usermanager:list-users() [70:5:/db/apps/dashboard/plugins/userManager/userManager.xqm]
    local:list-users(xs:string?) [195:70:/db/apps/dashboard/plugins/userManager/controller.xql]
    at org.exist.xquery.functions.securitymanager.UMaskFunction.eval(UMaskFunction.java:79) ~[exist.jar:?]
    at org.exist.xquery.BasicFunction.eval(BasicFunction.java:73) ~[exist.jar:?]
    at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:41) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:81) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:318) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:318) ~[exist.jar:?]
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:155) ~[exist.jar:?]
    at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:74) ~[exist.jar:?]
    at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61) ~[exist.jar:?]
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:302) ~[exist.jar:?]
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:223) ~[exist.jar:?]
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58) ~[exist.jar:?]
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65) ~[exist.jar:?]
    at org.exist.xquery.ForExpr.processItem(ForExpr.java:239) ~[exist.jar:?]
    at org.exist.xquery.ForExpr.eval(ForExpr.java:179) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:81) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:318) ~[exist.jar:?]
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:155) ~[exist.jar:?]
    at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:74) ~[exist.jar:?]
    at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61) ~[exist.jar:?]
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:302) ~[exist.jar:?]
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:223) ~[exist.jar:?]
    at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58) ~[exist.jar:?]
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:102) ~[exist.jar:?]
    at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:155) ~[exist.jar:?]
    at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:74) ~[exist.jar:?]
    at org.exist.xquery.DynamicTypeCheck.eval(DynamicTypeCheck.java:61) ~[exist.jar:?]
    at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:302) ~[exist.jar:?]
    at org.exist.xquery.FunctionCall.eval(FunctionCall.java:223) ~[exist.jar:?]
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:84) ~[exist.jar:?]
    at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:84) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.PathExpr.eval(PathExpr.java:267) ~[exist.jar:?]
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71) ~[exist.jar:?]
    at org.exist.xquery.XQuery.execute(XQuery.java:253) ~[exist.jar:?]
    at org.exist.xquery.XQuery.execute(XQuery.java:185) ~[exist.jar:?]
    at org.exist.http.urlrewrite.XQueryURLRewrite.runQuery(XQueryURLRewrite.java:697) ~[exist-optional.jar:?]
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:256) ~[exist-optional.jar:?]
    ... 30 more

Changing $login to login:set-user on

$login("org.exist.login", (), true()),
solves the problem.

But this bypasses the login-helper, which checks for the presence of the persistent login module. I have no idea why the original code doesn't work.

dashboard 2.0 wrongly available to exist 4.x

To create stable releases docker uses the master branch of the main repo. As of a few days ago the list of autodeploy apps on 4.6.1 is:
Screenshot 2019-04-26 at 12 00 32

which means :release comes with a broken dashboard, 4.x builds should continue to ship with dashboard 1.x.

no clue why, but this is urgent, also for 4.7.0. Most of our own tests are broken because of this, and production systems using docker will be as well.

App installation woes

Tested on exist-db 4.2.0 and 5.0.0-SNAPSHOT-e867da955 with Dashboard 1.1.0 and both in FF and Safari
Launching apps from dashboard no longer works as expected.

To reproduce on a clean installation, install e.g. the documentation or new package manger (any app will do) apps. then try to go to the app by clicking on it's icon either on dashboard or from inside package-manager.

Apps installed:

  • from manually uploading .xars (via package manger old or new) work as expected
  • via auto-deploy folder also work as expected
  • from public-repo result in the following:
<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist">
<exist:collection name="/db/apps/packagemanager" created="2018-06-08T10:42:47.41Z" owner="admin" group="dba" permissions="rwxrwxr-x">
<exist:resource name="login.html" created="2018-06-08T10:42:47.415Z" last-modified="2018-06-08T10:42:47.415Z" owner="admin" group="dba" permissions="rwxrwxr-x"/>
<exist:resource name="configuration.xml" created="2018-06-08T10:42:47.463Z" last-modified="2018-06-08T10:42:47.463Z" owner="admin" group="dba" permissions="rwxrwxr-x"/>
</exist:collection>
</exist:result>

If I check the contents of the apps collection in /db/apps/xxx it appears empty.

Force reloading seems to resolve the issue.

It shouldn't matter how an application was installed, and users should not have to force-reload when navigating from the dashboard to individual apps, thats what it is there for after all.

User Manager problem, users and groups are missing (eXist-db 3.1.1)

In the version 3.1.1 the User Manager package does not work properly. If I check Remember Me checkbox during logging in, there are neither users nor groups listed. There is only “We are sorry, an error has happened”. It is interesting the sentence is in Czech, hence it could somehow be associated with browsers or Java plugin (tested in Firefox 52.0.2 and IE 11). As soon as I uncheck the box during logging in, User Manager works as expected.

dashboard relies on deprecated xmldb function in login module

results no dashboard:
Screenshot 2019-04-03 at 17 42 56

the relevant passage from the log:

javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/: err:XPST0017 error found while loading module login: Error while loading module resource:org/exist/xquery/modules/persistentlogin/login.xql: Function xmldb:is-admin-user()  is not defined in module namespace: http://exist-db.org/xquery/xmldb [at line 78, column 24]

Browsing errorhandling not correct

31 Mar 2014 19:55:12,096 [eXistThread-43] WARN  (ServletHandler.java [doHandle]:492) -  
javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/plugins/browsing/contents/: err:XPDY0002 variable '$err:message' is not set. [at line 31, column 24, source: /db/apps/dashboard/plugins/browsing/service.xql]
In function:
    service:delete-resources(xs:string*) [46:43:/db/apps/dashboard/plugins/browsing/service.xql]
    restxq:call-with-args(function, function*) [88:17:/db/apps/dashboard/modules/restxq.xql]
    (function, element(), map) [83:68:/db/apps/dashboard/modules/restxq.xql]
    restxq:function-by-annotation(function+, map, function) [83:9:/db/apps/dashboard/modules/restxq.xql]
    restxq:process(xs:string?, function+) [49:9:/db/apps/dashboard/modules/restxq.xql]
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:386)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

Caused by: org.exist.xquery.XPathException: err:XPDY0002 variable '$err:message' is not set. [at line 31, column 24, source: /db/apps/dashboard/plugins/browsing/service.xql]
In function:
    service:delete-resources(xs:string*) [46:43:/db/apps/dashboard/plugins/browsing/service.xql]
    restxq:call-with-args(function, function*) [88:17:/db/apps/dashboard/modules/restxq.xql]
    (function, element(), map) [83:68:/db/apps/dashboard/modules/restxq.xql]
    restxq:function-by-annotation(function+, map, function) [83:9:/db/apps/dashboard/modules/restxq.xql]
    restxq:process(xs:string?, function+) [49:9:/db/apps/dashboard/modules/restxq.xql]
    at org.exist.xquery.VariableReference.eval(VariableReference.java:87)
    at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)

RC2 problem with usermanager persists after upgrade to 0.45

after the upgrade the login problem (first login fails seemingly) was gone.
the other apps which require authentication (Collection Browser and UserManager2)
refuse to work despite correct login.
exist.log
2016-01-18 12:32:56,940 [eXistThread-31] WARN (ServletHandler.java [doHandle]:538) -
javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/plugins/userManager/api/group/: exerr:ERROR You must be an authenticated user [at line 89, column 41, source: /db/apps/dashboard/plugins/userManager/userManager.xqm]
In function:
usermanager:list-groups() [77:5:/db/apps/dashboard/plugins/userManager/userManager.xqm]

Peter

Collections Browser does not save changes to owner, group

Javascript code for handling changes to Owner, Group, Mime has been commented out due to changes in handling permissions. User input will not be saved.

Dates (created, modified) are text input fields - but should not be modifiable.
Owner and Group fields are text input fields - allowing incorrect entry (non-existent owner or group).

Access Control List shows "Loading..." but doesn't.
(These issues are all fixed in pull-request #25)

"Add Access Control Entry..." doesn't function.
(not fixed)

Deinstalling XARs via the PackageManager is broken in IE8

Deinstalling XARs in the PackageManager fails in IE8 on Windows XP. The issue has somehow to do with hiding of the dialogs.

To reproduce the error:

  1. Open the Package Manager
  2. select the XAR package you want to uninstall and click the uninstall button
  3. in the upcoming dialog either click "Yes" or "No", the dashboard fails in both cases since the problem is not the uninstalling but hiding the dialog

The IE8 error message is:

  • exception in animation handler for: onEnd
  • Error: Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus. {...}

For testing reasons I removed the two calls

  • dialog.hide();
  • dialog.destroyRecursive();

from util.js. Afterwars uninstalling XARs works fine (but for sure the dialog does not close anymore).

eXist-db dashboard showing error: Invalid qname text:groups

Hi,

I'm trying to access the dashboard but was presented with errors like such:
How can I see the Dashboard again?
Please advise.

javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/index.html: err:XPST0081 error found while loading module restxq: Error while loading module modules/restxq.xql: Invalid qname text:groups
at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:381)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
at de.betterform.agent.web.filter.XFormsFilter.doFilter(XFormsFilter.java:171)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1629)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:521)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:564)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.exist.xquery.XPathException: err:XPST0081 error found while loading module restxq: Error while loading module modules/restxq.xql: Invalid qname text:groups
at org.exist.xquery.FunctionFactory.createFunction(FunctionFactory.java:49)
at org.exist.xquery.parser.XQueryTreeParser.functionCall(XQueryTreeParser.java:10429)
at org.exist.xquery.parser.XQueryTreeParser.primaryExpr(XQueryTreeParser.java:7348)
at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3561)
at org.exist.xquery.parser.XQueryTreeParser.functionCall(XQueryTreeParser.java:10408)
at org.exist.xquery.parser.XQueryTreeParser.primaryExpr(XQueryTreeParser.java:7348)
at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3561)
at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:1879)
at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:423)
at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:2620)
at org.exist.xquery.parser.XQueryTreeParser.functionDecl(XQueryTreeParser.java:5773)
at org.exist.xquery.parser.XQueryTreeParser.prolog(XQueryTreeParser.java:4905)
at org.exist.xquery.parser.XQueryTreeParser.libraryModule(XQueryTreeParser.java:4028)
at org.exist.xquery.parser.XQueryTreeParser.module(XQueryTreeParser.java:3860)
at org.exist.xquery.parser.XQueryTreeParser.xpath(XQueryTreeParser.java:3642)
at org.exist.xquery.XQueryContext.compileModule(XQueryContext.java:2900)
at org.exist.xquery.XQueryContext.compileOrBorrowModule(XQueryContext.java:2832)
at org.exist.xquery.XQueryContext.importModule(XQueryContext.java:2743)
at org.exist.xquery.parser.XQueryTreeParser.importDecl(XQueryTreeParser.java:5884)
at org.exist.xquery.parser.XQueryTreeParser.prolog(XQueryTreeParser.java:4912)
at org.exist.xquery.parser.XQueryTreeParser.mainModule(XQueryTreeParser.java:4040)
at org.exist.xquery.parser.XQueryTreeParser.module(XQueryTreeParser.java:3985)
at org.exist.xquery.parser.XQueryTreeParser.xpath(XQueryTreeParser.java:3642)
at org.exist.xquery.XQuery.compile(XQuery.java:128)
at org.exist.xquery.XQuery.compile(XQuery.java:79)
at org.exist.xquery.XQuery.compile(XQuery.java:71)
at org.exist.http.urlrewrite.XQueryURLRewrite.runQuery(XQueryURLRewrite.java:687)
at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:256)
... 36 more

Backup directory not configurable

If the entry in conf.xml for consistency check changes the output parameter from export to another directory, then the backups plugin does not see those backups and list them.

    <job type="system" name="check1" 
        class="org.exist.storage.ConsistencyCheckTask"
        cron-trigger="0 0 * * * ?">
        <parameter name="output" value="export"/>
        <parameter name="backup" value="yes"/>
        <parameter name="incremental" value="no"/>
        <parameter name="incremental-check" value="no"/>
        <parameter name="max" value="2"/>
    </job>

In backup.xql, then definition of the backup directory is here:

declare variable $backup:BACKUP_DIR := "export";

I have changed the output parameter to another value to place the backup on a network drive:

    <job type="system" name="check1" class="org.exist.storage.ConsistencyCheckTask"
        cron-trigger="0 5 23 * * ?">
        <parameter name="output" value="J:\foo\bar\exist-db\backup"/>
        <parameter name="backup" value="yes"/>
        <parameter name="incremental" value="no"/>
        <parameter name="incremental-check" value="no"/>
        <parameter name="max" value="2"/>
    </job>

Since the backups that are triggered by the scheduler place the files in an alternate directory, then backup plugin does not see them

missing semver produces error in expath-repo.log

2017-07-05 12:08:34,909 [Thread-3] WARN (ClasspathHelper.java [scanPackages]:90) - Package http://exist-db.org/apps/dashboard is not compatible with this version of eXist. To avoid conflicts, Java libraries shipping with this package are not loaded.

anything preventing us from adding sem-ver?

unable to download backup files

downloading yields into

<exception>
<path>/db/apps/dashboard/plugins/backup/backup.xql</path>
<message>
exerr:ERROR You must be a DBA to retrieve a backup [at line 68, column 36, source: /db/apps/dashboard/plugins/backup/backup.xql] In function: backup:retrieve() [68:36:/db/apps/dashboard/plugins/backup/backup.xql]
</message>
</exception>

but for use I am

Collections browser should support export

The collections browser supports import of resources from filestore but not export to filestore.

This asymmetry isn't desirable and forces the user to use the Java client to accomplish this

Scheduler UI does not work on 'develop'

Clicking the UI [todays development] yields into the following trace:

2016-04-01 14:48:03,757 [eXistThread-36] WARN  (ServletHandler.java [doHandle]:563) - /exist/apps/dashboard/plugins/scheduler/scheduler.html
org.exist.xquery.XPathException: err:XPST0081 error found while loading module service: Error while loading module service.xql: No namespace defined for prefix xqueries
        at org.exist.dom.QName.parse(QName.java:298) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.primaryExpr(XQueryTreeParser.java:6983) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3489) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.numericExpr(XQueryTreeParser.java:8205) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3542) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.functionCall(XQueryTreeParser.java:9808) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.primaryExpr(XQueryTreeParser.java:6994) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3489) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.functionCall(XQueryTreeParser.java:9808) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.primaryExpr(XQueryTreeParser.java:6994) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3489) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:416) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:1839) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.constructor(XQueryTreeParser.java:9338) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.constructor(XQueryTreeParser.java:9197) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.primaryExpr(XQueryTreeParser.java:6792) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3489) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:320) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.primaryExpr(XQueryTreeParser.java:6930) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:3489) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:413) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.expr(XQueryTreeParser.java:2567) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.functionDecl(XQueryTreeParser.java:5543) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.prolog(XQueryTreeParser.java:4686) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.libraryModule(XQueryTreeParser.java:3951) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.module(XQueryTreeParser.java:3785) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.xpath(XQueryTreeParser.java:3569) ~[exist.jar:?]
        at org.exist.xquery.XQueryContext.compileModule(XQueryContext.java:2919) ~[exist.jar:?]
        at org.exist.xquery.XQueryContext.compileOrBorrowModule(XQueryContext.java:2857) ~[exist.jar:?]
        at org.exist.xquery.XQueryContext.importModule(XQueryContext.java:2772) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.importDecl(XQueryTreeParser.java:5654) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.prolog(XQueryTreeParser.java:4693) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.mainModule(XQueryTreeParser.java:3963) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.module(XQueryTreeParser.java:3908) ~[exist.jar:?]
        at org.exist.xquery.parser.XQueryTreeParser.xpath(XQueryTreeParser.java:3569) ~[exist.jar:?]
        at org.exist.xquery.XQuery.compile(XQuery.java:133) ~[exist.jar:?]
        at org.exist.xquery.XQuery.compile(XQuery.java:84) ~[exist.jar:?]
        at org.exist.xquery.XQuery.compile(XQuery.java:75) ~[exist.jar:?]
        at org.exist.http.urlrewrite.XQueryURLRewrite.runQuery(XQueryURLRewrite.java:686) ~[exist-optional.jar:?]
        at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:260) ~[exist-optional.jar:?]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) ~[servlet-api-3.0.jar:?]
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) ~[jetty-servlet-8.1.17.v20150415.jar:8.1.17.v20150415]
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496) ~[jetty-servlet-8.1.17.v20150415.jar:8.1.17.v20150415]
        at de.betterform.agent.web.filter.XFormsFilter.doFilter(XFormsFilter.java:171) ~[betterform-exist-5.1-SNAPSHOT-20151014.jar:?]

Dashboard doesn't proxy correctly

If you have eXist-db behind a reverse nginx proxy, where you wish to remove the /exist prefix, the links on the Dashboard to eXide etc are incorrect. They always try to access /exist.

For example with a standard eXist-db installation and the following nginx config:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name _;

        charset utf-8;

        location / {
                proxy_pass http://localhost:8080/exist/;
        }

}

Accessing http://myserver/ will bring up the Dashboard, however clicking "eXide" or similar will 404 as it will try and take you to http://myserver/exist/apps/eXide/index.html

error retrieving package list

a space in the "abbrev" field (expath-pkg.xml) of packages loaded via the package manager blows up dashboard (eXide too).
"abbrev" is simply defined as "string" in the EXPath-pkg spec.
regards
Peter Herkenrath

develop branch of exist

Add button 'repair packages'

As described in the documentation, a button executing

xquery version "3.0";
import module namespace repair="http://exist-db.org/xquery/repo/repair" 
at "resource:org/exist/xquery/modules/expathrepo/repair.xql";
repair:clean-all(),
repair:repair()

would be very handy

variable '$err:message' is not set

after struggling with xar import via package manager
(import.xql hangs, I believe similar problem as abbrev issue in expath-pkg: space in title; not further explored), I tried to delete app dir via collections browser.
I think this should not happen (or collateral damage?):

28 Okt 2014 09:43:37,630 [eXistThread-41] WARN  (ServletHandler.java [doHandle]:492) -  
javax.servlet.ServletException: An error occurred while processing request to /exist/apps/dashboard/plugins/browsing/contents/: 
err:XPDY0002 variable '$err:message' is not set. [at line 31, column 24, source: /db/apps/dashboard/plugins/browsing/service.xql]
In function:
    service:delete-resources(xs:string*) [46:43:/db/apps/dashboard/plugins/browsing/service.xql]
    restxq:call-with-args(function, function*) [88:17:/db/apps/dashboard/modules/restxq.xql]
    (function, element(), map) [83:68:/db/apps/dashboard/modules/restxq.xql]
    restxq:function-by-annotation(function+, map, function) [83:9:/db/apps/dashboard/modules/restxq.xql]
    restxq:process(xs:string?, function+) [49:9:/db/apps/dashboard/modules/restxq.xql]
    at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:383)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

Conflicts with shared-resources

Both the Dashboard and Shared Resources apps ship with the Templating module. Unfortunately they both ship with different versions, and try and use the same namespace.

$EXIST_HOME/webapp/WEB-INF/data/expathrepo/shared-0.4.2/content/templates.xql:

xquery version "3.0";

(:~
 : HTML templating module
 : 
 : @version 2.1
 : @author Wolfgang Meier
 : @contributor Adam retter
:)
module namespace templates="http://exist-db.org/xquery/templates";

...

$EXIST_HOME/webapp/WEB-INF/data/expathrepo/dashboard-0.4.7/modules/templates.xql:

xquery version "3.0";

module namespace templates="http://exist-db.org/xquery/templates";

(:~
 : HTML templating module
 : 
 : @version 2.0
 : @author Wolfgang Meier
:)

...

Either the Dashboard should rely on the Shared Resources, or Templating should be moved into its own library module which Dashboard then relies on.

Customizable/alternative colour schemes

I use two eXist-db instances: one for writing code and one for testing deployment.

So that I don't confuse the two, I've resorted to changing the dashboard CSS for one of them so that its dashboard has a different background colour.

It seems to me that it could be useful if the dashboard supported predefined alternative colour schemes, as a minimum, so that it's simple to differentiate the dashboards of different eXist instances.

Java Admin Client Error

I like the Java Admin app but for an unknown reason, I am not able to start it (since, let’s say, February). I thought it could be because of some new Java version but it is the same on Linux and Win 10 or Win 7 machine.

After the verification, it throws an error (window). In the Details section there is:

com.sun.deploy.net.JARSigningException: Found unsigned entry in resource: http://46.28.111.241:8081/exist/webstart/exist.jar
    at com.sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(Unknown Source)
    at com.sun.javaws.security.SigningInfo.check(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.launch(Unknown Source)
    at com.sun.javaws.Main.launchApp(Unknown Source)
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
    at com.sun.javaws.Main.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

and

<?xml version="1.0" ?><jnlp spec="7.0" codebase="http://46.28.111.241:8081/exist/webstart/" href="exist.jnlp"><information><title>eXist XML-DB client</title><vendor>exist-db.org</vendor><homepage href="http://exist-db.org"></homepage><description>Integrated command-line and gui client, entirely based on the XML:DB API and provides commands for most database related tasks, like creating and removing collections, user management, batch-loading XML data or querying.</description><description kind="short">eXist XML-DB client</description><description kind="tooltip">eXist XML-DB client</description><icon href="jnlp_logo.jpg"></icon><icon href="jnlp_icon_128x128.gif" width="128" height="128"></icon><icon href="jnlp_icon_64x64.gif" width="64" height="64"></icon><icon href="jnlp_icon_32x32.gif" width="32" height="32"></icon></information><security><all-permissions/></security><resources><property name="jnlp.packEnabled" value="true"></property><java version="1.8+"></java><jar href="xmlrpc-common-3.1.3.jar" size="122351"></jar><jar href="sunxacml-1.2.jar" size="210074"></jar><jar href="jline-0.9.94.jar" size="93057"></jar><jar href="rsyntaxtextarea-2.5.6.jar" size="1081139"></jar><jar href="xmlrpc-client-3.1.3.jar" size="65437"></jar><jar href="ws-commons-util-1.0.2.jar" size="38457"></jar><jar href="log4j-jul-2.3.jar" size="24060"></jar><jar href="slf4j-api-1.7.10.jar" size="36571"></jar><jar href="exist.jar" size="4482013"></jar><jar href="xmldb.jar" size="12722"></jar><jar href="commons-io-2.4.jar" size="198441"></jar><jar href="log4j-slf4j-impl-2.3.jar" size="25551"></jar><jar href="log4j-core-2.3.jar" size="889605"></jar><jar href="excalibur-cli-1.0.jar" size="25946"></jar><jar href="log4j-api-2.3.jar" size="146688"></jar><jar href="commons-pool-1.6.jar" size="118633"></jar></resources><application-desc main-class="org.exist.client.InteractiveClient"><argument>-ouri=xmldb:exist://46.28.111.241:8081/exist/xmlrpc</argument><argument>--no-embedded-mode</argument></application-desc></jnlp>

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.