Hello,
I would like to know if there is any plan to manage dynamic reloading of the controller-config.xml file without having to restart the database each time you edit it (either manually or automatically) ?
This was already requested by Joe Wicentowski 2 years ago : "Unfortunately, a restart of eXist is required after each edit of the controller-config.xml file. To me, this somewhat lessens the convenience of storing the file in the database... unless there were a way to trigger a database restart from within eXist. (I don't think this is possible.) Given this, I think I'll return to storing the controller-config.xml in the filesystem." [1]
In my case that would be useful because I am running several eXist applications under a single Tomcat instance, and I would like to minimize the number of Tomcat restart when I update the applications. I have managed to fit each application within its database, which already allows to update the code without restarting Tomcat, but I would like to go one step further and to be able to dynamically edit their controller-config.xml. This would allow to better modularize the applications and to support a kind of plug-and-play mechanism for modules, where each module would be added/removed by adding/removing the following line in controller-config.xml :
<root pattern="/moduleName" path="xmldb:exist:///db/www/moduleName"/&gt;
(where /db/www/moduleName/controller.xql is the controller for the module "moduleName")
Stéphane S.
---
[1] http://exist-open.markmail.org/thread/kh3uqe47sljaf52e

Hi,
> 2.
> Make a general index like <create qname="@id" type="xs:string"/>
> Run the query:
> //*[@id ="some_id"]
Lucene index and range index should be equally fast in this case.
> 3.
> Additionally, because I believe that XPath first returns all the elements
> and apply the filter afterwards it might be a good idea to do something like
> this:
> a)
> //@id[ft:query(., “some_id”)]/..
> or
> b)
> //@id[.="some_id"]/..
eXist optimizes the wildcard step in //*[@id = "some_id"] and
basically does the same as you do above. eXist will first evaluate @id
= "some_id", then compute which parent elements of @id would match the
wildcard.
Wolfgang

We have a DB with about 40 different element types which have an ‘id’
attribute. The database is quite large and I think there are between
100.000 and 200.000 of those elements altogether.
I was wandering if one of the following queries is more efficient than
other when retrieving those elements by id:
1.
Make a Lucene index like <text qname="@id" analyzer="ws"/> (ws is the
WhitespaceAnalyzer)
Then run this query:
//*[ft:query(@id, “some_id”)]
2.
Make a general index like <create qname="@id" type="xs:string"/>
Run the query:
//*[@id ="some_id"]
3.
Additionally, because I believe that XPath first returns all the elements
and apply the filter afterwards it might be a good idea to do something
like this:
a)
//@id[ft:query(., “some_id”)]/..
or
b)
//@id[.="some_id"]/..
If there is an even better way please let me know.
Normally I would simply test the different options and see if any of them
is faster, but currently I don’t have access to the real database, and the
dataset I have at my disposal is so small that the differences are
immeasurable.

Robert,
I'd be interested to know the steps you follow to get this working. The
whole process of registering entities in eXist is mysterious to me.
Joe
On Thursday, January 5, 2012, Dannes Wessels <dannes@...> wrote:
> HI,
> On 5 Jan 2012, at 18:11 , Robert Han wrote:
>
> Thanks a lot for any help or suggestions since I am really clueless here!!
>
> I had the impression things were solved.
> Please could you send me a *small* set of files offlist? The DTD, the
.ent file and the XML file?
> It really should be matter of registering the .ent and .dtd to the
catalog.xml file and restart exist....
> regards
> Dannes
> --
> Dannes Wessels
> eXist-db Open Source Native XML Database
> e: dannes@... w: http://www.exist-db.org t: #existdb
>
>
>
>
>
>
>
--
Sent from my iPhone

Hi everyone,
I use apache-xindice and I would like to switch to eXist.
Are there any tools to transfer a xindice database to eXist or should I
write some java code to do that?
The database is not so large (hundreds of small xml files)
Regards

HI,
On 5 Jan 2012, at 18:11 , Robert Han wrote:
> Thanks a lot for any help or suggestions since I am really clueless here!!
I had the impression things were solved.
Please could you send me a *small* set of files offlist? The DTD, the .ent file and the XML file?
It really should be matter of registering the .ent and .dtd to the catalog.xml file and restart exist....
regards
Dannes
--
Dannes Wessels
eXist-db Open Source Native XML Database
e: dannes@... w: http://www.exist-db.org t: #existdb

Hi All,
Sorry for bringing up this question again! But being hounded for this issue
for a month, I still could not find a solution. So I am asking for experts'
help again.
It is just about adding some special characters to xml file stored in
eXist, I will always get an error says "The entity lambda was referenced,
but not declared". However, if I added in like &#923; , the eXist will
accept it and recognize it as lambda.
I am just kind of clueless here, is this something I need to configure in
eXist, or is this an issue with my dtd? Say now I want to add a &lambda;
special character to xml in eXist, how could I make eXist accept it and
recognize it?
Thanks a lot for any help or suggestions since I am really clueless here!!
Robert

fix commited http://exist.svn.sourceforge.net/exist/?rev=15643&view=revplease
try it
On Thu, Jan 5, 2012 at 9:13 PM, Kaustubh Nagraj <kaustubh@...>wrote:
>
> Thanks for your response. I get the following lines in the exist.log:
>
> 2012-01-05 15:53:19,299 [eXistThread-29] DEBUG (LdapContextFactory.java
> [getLdapContext]:129) - Initializing LDAP context using URL [ldap://
> 127.0.0.1:389/ou=Users,dc=exist-db,dc=org?uid?sub?(objectclass=posixAccount)<http://127.0.0.1:389/ou=Users,dc=exist-db,dc=org?uid?sub?%28objectclass=posixAccount%29&gt;]
> and username [uid=abc,ou=Users,dc=exist-db,dc=org] with pooling [enabled]
> 2012-01-05 15:53:19,322 [eXistThread-29] DEBUG (LdapContextFactory.java
> [getLdapContext]:129) - Initializing LDAP context using URL [ldap://
> 127.0.0.1:389/ou=Users,dc=exist-db,dc=org?uid?sub?(objectclass=posixAccount)<http://127.0.0.1:389/ou=Users,dc=exist-db,dc=org?uid?sub?%28objectclass=posixAccount%29&gt;]
> and username [user] with pooling [enabled]
> 2012-01-05 15:53:19,325 [eXistThread-29] ERROR (LDAPRealm.java
> [getAccount]:471) - org.exist.security.AuthenticationException: [LDAP:
> error code 34 - invalid DN]
> 2012-01-05 15:53:19,327 [eXistThread-29] DEBUG (RpcConnection.java
> [handleException]:120) -
> java.lang.NullPointerException
>
> I assume by "invalid DN", the error is referring to the DN corresponding
> to user "abc" and that the LDAP URL is correct. I hope I am not wrong there.
>
> Another thing I would like to point out is that when I run the exist
> server I get the folllowing lines on the command line:
>
> unused property group-search-filter @search
> unused property account-search-filter @search
>
> I do not know if they indicate anything amiss.
>
> Finally, under system/security/LDAP/accounts I only see a collection named
> "removed" and this collection is empty. Does this mean that the client
> could not detect any user accounts in the LDAP server? However when I
> connect to the LDAP server using the LDAP account manager I can see the
> user I created and its DN is displayed on top as:
> DN: uid=abc,ou=Users,dc=exist-db,dc=org.I am using this DN while
> connecting from the client to exist as the username i.e
>
> username: uid=abc,ou=Users,dc=exist-db,dc=org
> password: xxxx
>
--
Dmitriy Shabanov

On 5 Jan 2012, at 15:48 , Joern Turner wrote:
> Or has Xerces been upgraded recently in eXist? betterFORM relies on
> Xerces for Schema processing. Yes, it seems so - i just looked and on
> 1. Dec. the Xerces version was upgraded.
You upgrade you refer to is done in 2010, 13 months ago....
http://exist.svn.sourceforge.net/exist/?rev=13348&view=rev

Hi,
Thanks for your response. I get the following lines in the exist.log:
2012-01-05 15:53:19,299 [eXistThread-29] DEBUG (LdapContextFactory.java
[getLdapContext]:129) - Initializing LDAP context using URL [ldap://
127.0.0.1:389/ou=Users,dc=exist-db,dc=org?uid?sub?(objectclass=posixAccount)]
and username [uid=abc,ou=Users,dc=exist-db,dc=org] with pooling [enabled]
2012-01-05 15:53:19,322 [eXistThread-29] DEBUG (LdapContextFactory.java
[getLdapContext]:129) - Initializing LDAP context using URL [ldap://
127.0.0.1:389/ou=Users,dc=exist-db,dc=org?uid?sub?(objectclass=posixAccount)]
and username [user] with pooling [enabled]
2012-01-05 15:53:19,325 [eXistThread-29] ERROR (LDAPRealm.java
[getAccount]:471) - org.exist.security.AuthenticationException: [LDAP:
error code 34 - invalid DN]
2012-01-05 15:53:19,327 [eXistThread-29] DEBUG (RpcConnection.java
[handleException]:120) -
java.lang.NullPointerException
I assume by "invalid DN", the error is referring to the DN corresponding to
user "abc" and that the LDAP URL is correct. I hope I am not wrong there.
Another thing I would like to point out is that when I run the exist server
I get the folllowing lines on the command line:
unused property group-search-filter @search
unused property account-search-filter @search
I do not know if they indicate anything amiss.
Finally, under system/security/LDAP/accounts I only see a collection named
"removed" and this collection is empty. Does this mean that the client
could not detect any user accounts in the LDAP server? However when I
connect to the LDAP server using the LDAP account manager I can see the
user I created and its DN is displayed on top as:
DN: uid=abc,ou=Users,dc=exist-db,dc=org.I am using this DN while connecting
from the client to exist as the username i.e
username: uid=abc,ou=Users,dc=exist-db,dc=org
password: xxxx
Thanks,
Kaustubh
On Thu, Jan 5, 2012 at 4:16 AM, Dannes Wessels <dannes@...> wrote:
> Hi
>
> On 4 Jan 2012, at 21:05 , Kaustubh Nagraj wrote:
>
> org.xmldb.api.base.XMLDBException: Failed to invoke method
> describeCollection in class org.exist.xmlrpc.RpcConnection:
> java.lang.NullPointerException
> at
> org.exist.xmldb.RemoteCollection.readCollection(RemoteCollection.java:424)
> at
>
org.exist.xmldb.RemoteCollection.listChildCollections(RemoteCollection.java:292)
>
>
> NPE's are bad...... are there any related messages in exist.log?
>
> cheers
>
> Dannes

Please ignore my former warning - i was found that the Xerces upgrade
was not the reason for a user problem reported on this iist. I'm just
doing the upgrade in betterFORM too.
Sorry for the trouble.
Joern

Hi Stefan,
I'm also leaning towards a partial solution in a Java servlet - but I'm not sure how to do this without digging an enormous hole. Casey is right to suggest that writing a complete servlet in XQuery is a backwards step - so I want to find a middle path. The controller.xql would seem the best place to expose some low-level http - but the REST servlet (quite correctly) reports an error if it receives a command that is not in the HTTP 1.1 standard.
Looking further at Milton, I think it should be possible to create another data source that uses a registered XQuery - but I haven't had time to pursue that approach.
CalDAV turns out to be a bad example, not just because the plain-text protocol is unattractive. (Such as shame that the xml version of iCalender never really took off.) My clients use MS Outlook - which can't use CalDAV without third-party plugins (so I've lost interest in that effort). I've spent the day writing (another) calendar-event display system in HTML - and not yet finished.
Thanks also to Casey and Claudius for your responses.
Regards,
Alister.
On 05/01/2012, at 10:57 PM, Stefan Majewski wrote:
> Hi Alister,
>
>
> On 04/01/12 04:04, Alister Pillow wrote:
>> I want to provide an interface to date-based information in eXist and the CalDAV protocol looks useful.
>
> yes, that looks pretty useful. I toyed with that quite a while ago, so what I have to report is completely from memory and from the pre 1.5 release days.
>
> Generally, apart from being useful for CalDAV, it would be a great benefit for all of us if it were possible to have complete REST applications in XQuery (and exist). Complete REST includes the method PUT, which has been problematic, so far, as it replaced (in the standard Rest Servlet) the target XQuery when the urlrewriting directed the PUT request to this query. I don't know if this changed and if it is now possible to service PUT via XQuery. From what I can see from the sources, it should not be too difficult to achieve this, as everything is in place. The only thing that is missing is the distinction between requests I want to get serviced by my XQuery and request where I want to use exists default behaviour (ie. replace the query file). I figure that one way to go about this would be to use XQuery 3.0 Annotations for this, such that it is possible to expose XQuery module functions to specific methods and/or specific custom HTTP headers.
>
> For CALDAV, nevertheless, you would probably need a much more generic approach as it provides a multitude of HTTP methods. But, in theory it could be possible to let the Java-Servlet service other methods. I would be very interested in any approaches in this area, as this would improve the integration of exist in other REST based infrastructures. Especially in cases where a clean REST interface exists and eXist is a replacement for a previously used component.
>
> So if you intend to contribute something, I'd be interested in your plans as I might join in.
>
> cheers,
> Stefan
>

Hi Alister,
On 04/01/12 04:04, Alister Pillow wrote:
> I want to provide an interface to date-based information in eXist and the CalDAV protocol looks useful.
yes, that looks pretty useful. I toyed with that quite a while ago, so
what I have to report is completely from memory and from the pre 1.5
release days.
Generally, apart from being useful for CalDAV, it would be a great
benefit for all of us if it were possible to have complete REST
applications in XQuery (and exist). Complete REST includes the method
PUT, which has been problematic, so far, as it replaced (in the standard
Rest Servlet) the target XQuery when the urlrewriting directed the PUT
request to this query. I don't know if this changed and if it is now
possible to service PUT via XQuery. From what I can see from the
sources, it should not be too difficult to achieve this, as everything
is in place. The only thing that is missing is the distinction between
requests I want to get serviced by my XQuery and request where I want to
use exists default behaviour (ie. replace the query file). I figure that
one way to go about this would be to use XQuery 3.0 Annotations for
this, such that it is possible to expose XQuery module functions to
specific methods and/or specific custom HTTP headers.
For CALDAV, nevertheless, you would probably need a much more generic
approach as it provides a multitude of HTTP methods. But, in theory it
could be possible to let the Java-Servlet service other methods. I would
be very interested in any approaches in this area, as this would improve
the integration of exist in other REST based infrastructures. Especially
in cases where a clean REST interface exists and eXist is a replacement
for a previously used component.
So if you intend to contribute something, I'd be interested in your
plans as I might join in.
cheers,
Stefan

Hi Jens,
> I am curious to know what is the difference in functionality between the eXide installed with trunk, the eXide installed as an app from the public repo, and the eXide available from GitHub.
Right now there are only minor differences in functionality, but this
will change soon because I have some pending changes.
> I am somewhat puzzled by the message on GitHub that "The latest version of eXide is included with eXist-db, though this might not be the newest version."
Yes, the message is not very clear. It should probably say: "the
latest stable version of eXide ...".
Wolfgang

> Where is eXist's application repository? I can't seem to find it anywhere…
If you installed eXist 1.5/trunk and go to the admin web application,
you'll see a menu item "Package Repository". Use this to install
packages either from your local machine or the package repository
running on the demo server. Also see:
http://atomic.exist-db.org/blogs/eXist/AppRepository
Wolfgang