Are you really saying that the “# Local options” comment is a necessary part of 
the configuration file? Really? Because I don’t think a comment should ever a 
required part of any syntax…

If the configuration file needs have labeled components use YAML or XML or 
something.

Cheers,

e.
--
Eliot Kimber
http://contrext.com
 


On 4/2/17, 2:25 PM, "Christian Grün" <christian.gr...@gmail.com> wrote:

    Hi Eliot,
    
    If you start with a new version of BaseX, in which the .basex
    configuration file is still empty or non-existent, there may be no
    "Local Options" comment. I hope the revised Wiki makes this more
    obvious [1].
    
    Best,
    Christian
    
    [1] http://docs.basex.org/wiki/Options
    
    
    
    On Sun, Apr 2, 2017 at 12:45 PM, Eliot Kimber <ekim...@contrext.com> wrote:
    > Yes, the options were at the end. But looking at the code I don’t see how
    > that could have mattered. Perhaps I missed a detail?
    >
    >
    >
    > Cheers,
    >
    >
    >
    > E.
    >
    >
    >
    > --
    >
    > Eliot Kimber
    >
    > http://contrext.com
    >
    >
    >
    >
    >
    >
    >
    > From: Christian Grün <christian.gr...@gmail.com>
    > Date: Sunday, April 2, 2017 at 11:38 AM
    > To: Eliot Kimber <ekim...@contrext.com>
    > Cc: "basex-talk@mailman.uni-konstanz.de"
    > <basex-talk@mailman.uni-konstanz.de>
    > Subject: Re: [basex-talk] Basex Docker Container: How to Control Options
    >
    >
    >
    > Hi Eliot,
    >
    >
    >
    > Did you try to specify the option in the local section of the .basex file
    > (at the bottom, after all other options)?
    >
    >
    >
    > Best,
    >
    > Christian
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    > Am 02.04.2017 10:52 schrieb "Eliot Kimber" <ekim...@contrext.com>:
    >
    > I’ve worked around the configuration file problem by setting the options 
on
    > the Java command line by setting BASEX_JVM in my Dockerfile:
    >
    > ENV BASEX_JVM="-Dorg.basex.CHOP=false
    > -Dorg.basex.CATFILE=/opt/dita-ot/DITA-OT/catalog-dita.xml
    > -Dorg.basex.DTD=true -Dorg.basex.SKIPCORRUPT=true"
    >
    > That seems to work. I guess I could also set this environment variable in 
my
    > docker-compose.yml file, although except for CATFILE, these are invariant
    > for this application.
    >
    >
    > Cheers,
    >
    > E.
    >
    > --
    > Eliot Kimber
    > http://contrext.com
    >
    >
    > On 4/1/17, 10:44 PM, "Eliot Kimber"
    > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of
    > ekim...@contrext.com> wrote:
    >
    >     Perhaps a more useful question is: is there a workaround for this?
    >
    >     That is, I need to have the DTD, CATFILE, CHOP, and SKIPCORRUPT 
options
    > set when I load files into a database, which I’m doing through the remote
    > API. Is there either a separate options file that I should be using or a 
way
    > to specify these options at document load time?
    >
    >     Cheers,
    >
    >     E.
    >
    >     --
    >     Eliot Kimber
    >     http://contrext.com
    >
    >
    >
    >     On 4/1/17, 10:23 PM, "Eliot Kimber"
    > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of
    > ekim...@contrext.com> wrote:
    >
    >         I dug into the code and I think this is a code bug but I don’t
    > understand the overall flow well enough to know where the bug is, but I
    > suspect it’s a simple change.
    >
    >         If I debug the BasexGUI class and have a ~/.basex file that 
includes
    > CATFILE=foo it will fail with an unknown option error because the option
    > class being used is StaticOptions and StaticOptions does not define 
CATFILE
    > as an option.
    >
    >         The CATFILE option, along with a few others, is defined on
    > MainOptions:
    >
    >         private static final Option<?>[] INHERIT = { CHOP, INTPARSE,
    > STRIPNS, DTD, XINCLUDE, CATFILE };
    >
    >         Looking at BaseXHTTP it uses HTTPContext which only uses
    > StaticOptions, not MainOptions, which means it can never allow the INHERIT
    > options.
    >
    >         So something must have changed from 8.1 ish to now to change how
    > options are handled since these options worked before I moved to the 
latest
    > BaseX container and versions.
    >
    >         But there definitely seems to be an oversight in the initial
    > handling of the options file in the BaseXHTTP server (and in the BaseXGUI 
as
    > well since I get the same behavior there as well).
    >
    >         I would make a pull request but I don’t presume to know what
    > policies or general practices underlie the current options mechanism 
deisgn.
    >
    >         Cheers,
    >
    >         Eliot
    >         --
    >         Eliot Kimber
    >         http://contrext.com
    >
    >
    >
    >         On 3/26/17, 10:20 PM, "Eliot Kimber"
    > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of
    > ekim...@contrext.com> wrote:
    >
    >             I found my original mail thread from January 2016:
    >
    >
    > 
https://mailman.uni-konstanz.de/pipermail/basex-talk/2016-January/010171.html
    >
    >             Basically I had to append my options to the existing .basex 
file
    > rather than simply provide a file.
    >
    >             However, that isn’t an option here because there is no 
existing
    > /srv/.basex file (the place where the file needs to be).
    >
    >             As an experiment I tried doing this:
    >
    >             RUN touch /srv/.basex && \
    >                 echo "DTD=true" >> .basex && \
    >                 echo "CATFILE=/opt/dita-ot/DITA-OT/catalog-dita.xml" >>
    > .basex && \
    >                 echo "SKIPCORRUPT=true" >> .basex && \
    >                 echo "CHOP=false" >> .basex && \
    >                 echo "DBPATH=/srv/BaseXData" >> .basex && \
    >                 echo "REPOPATH=/srv/BaseXRepo" >> .basex && \
    >                 echo "WEBPATH=/srv/BaseXWeb" >> .basex && \
    >                 chown basex /srv/.basex
    >             RUN echo "/srv/.basex:\n===========" && cat /srv/.basex && 
echo
    > "======="
    >
    >             And I get this from the build command:
    >
    >             /srv/.basex:
    >             ===========
    >             DTD=true
    >             CATFILE=/opt/dita-ot/DITA-OT/catalog-dita.xml
    >             SKIPCORRUPT=true
    >             CHOP=false
    >             DBPATH=/srv/BaseXData
    >             REPOPATH=/srv/BaseXRepo
    >             WEBPATH=/srv/BaseXWeb
    >             =======
    >
    >             When I start up this container I get this:
    >
    >             /srv/.basex: Unknown option 'DTD'.
    >             /srv/.basex: Unknown option 'CATFILE'.
    >             /srv/.basex: Unknown option 'SKIPCORRUPT'.
    >             /srv/.basex: Unknown option 'CHOP'.
    >             /srv/.basex: writing new configuration file.
    >
    >             Note that it’s only complaining about DTD, CATFILE, 
SKIPCORRUPT,
    > and CHOP, but not DBPATH, REPOPATH, and WEBPATH. I tried reordering 
things,
    > no difference in result (but the messages reflect the order change).
    >
    >             So it must be something about how these particular options are
    > processed rather than an issue with the .basex file, at least as far as I
    > can see.
    >
    >             Cheers,
    >
    >             Eliot
    >
    >             --
    >             Eliot Kimber
    >             http://contrext.com
    >
    >
    >
    >             On 3/26/17, 3:29 PM, "Eliot Kimber"
    > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of
    > ekim...@contrext.com> wrote:
    >
    >                 Discovered that if I use USER root in the Dockerfile I 
have
    > to then do USER basex before the end so that the container will be running
    > as basex, otherwise it does not start up correctly. I also have to chown 
the
    > /srv/.basex file to basex otherwise it can’t overwrite it on startup.
    >
    >                 Made some progress but something is still not working.
    >
    >                 I now have a Dockerfile based on basex/dba that results 
in a
    > running system with the both the dba and my custom app runnable.
    >
    >                 However, if I then add this:
    >
    >                 COPY basex/dot_basex /srv/.basex
    >
    >                 As before, on startup I get this:
    >
    >                 docker run --name linkmgr-test -p 8984:8984
    > link-manager-test
    >                 /srv/.basex: Unknown option 'CATFILE'.
    >                 /srv/.basex: Unknown option 'DTD'.
    >                 /srv/.basex: Unknown option 'SKIPCORRUPT'.
    >                 /srv/.basex: Unknown option 'CHOP'.
    >                 /srv/.basex: writing new configuration file.
    >                 Creating /srv/BaseXWeb/WEB-INF/web.xml
    >                 Creating /srv/BaseXWeb/WEB-INF/jetty.xml
    >
    >
    >                 I think this Unknown option this is actually an issue with
    > the file itself but I don’t recall what the exact cause and/or solution 
was.
    >
    >                 Cheers,
    >
    >                 E.
    >
    >                 --
    >                 Eliot Kimber
    >                 http://contrext.com
    >
    >
    >
    >                 On 3/26/17, 1:40 PM, "Eliot Kimber"
    > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of
    > ekim...@contrext.com> wrote:
    >
    >                     I’m trying to set up a Docker container with my own 
Web
    > app using the latest official containers as a base and following the
    > instructions in the latest BaseX docs.
    >
    >                     As part of this setup I need to add several additional
    > options.
    >
    >                     I also want to include the dba app.
    >
    >                     Following the instructions in the docs I’m putting my
    > additional options in /srv/.basex and these take effect. However, if I use
    > the basex/dba image as a base, the other options, such as the custom
    > REPOPATH and WEBPATH settings do not get used.
    >
    >                     It’s not clear to me from looking at the various
    > Dockerfiles how the dba container sets the options and how I can then add 
to
    > them without overwriting them.
    >
    >                     Of course I can duplicate the options in my Dockerfile
    > but it seems like I should be able to add my options additively but I’m 
not
    > seeing how to do it, so I feel I’m missing something.
    >
    >                     In my Dockerfile I have:
    >
    >                     COPY basex/dot_basex /srv/.basex
    >
    >                     If I don’t include this line then the container
    > otherwise works in that my Web app is there but it requires these 
additional
    > options in order to function properly. If I include it then the effective
    > options reflect only my changes and not those required for the custom Web
    > apps to work.
    >
    >                     Thanks,
    >
    >                     Eliot
    >
    >                     --
    >                     Eliot Kimber
    >                     http://contrext.com
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    
    


Reply via email to