Hi Marco, Got it! Looking forward to the code! :)
With kind regards, Rob > Op 3 mei 2021, om 09:23 heeft Marco Lettere <m.lett...@gmail.com> het > volgende geschreven: > > Hi Rob, > no the code in the repository the link refers to is more like administrative > tooling for batch importing configuration into Keycloak for administration > purposes. > I'll work on creating an excerpt of the code that realizes Oauth2 code grant > flow with RestXQ and Keycloak and I'll share by tonight hopefully. > Regards, > Marco. > > On 01/05/21 17:49, Rob wrote: >> Hi all! >> >> Sorry for the late response! >> I’m reading all the emails now, haha. >> >> I’m very happy to hear that it’s possible, I see you shared the following: >> https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery >> >> <https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery> >> >> Thanks for sharing! >> >> Based on the following quote from Marco’s mail: >> "We have also a RestXQ module that in combination with basex:perm >> annotations protects access to a GUI implementing the Oauth2 Code-grant >> flow. If Rob is interested we could share.” >> >> The link above, is that the RESTXQ module Marco’s been talking about? >> Or is there another RESTXQ module? >> >> With kind regards, >> Rob >> >>> Op 1 mei 2021, om 05:29 heeft Adam Law <adamjames...@gmail.com >>> <mailto:adamjames...@gmail.com>> het volgende geschreven: >>> >>> If Rob isn't interested, I certain am... Yes please share >>> >>> >>We have also a RestXQ module that in combination with basex:perm >>> annotations protects access to a GUI implementing the Oauth2 Code-grant >>> flow. If Rob is interested we could share. >>> >>> Many thanks for sharing >>> https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery >>> >>> <https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery> >>> >>> This is a bit forward of me, but would you consider changing the license >>> away from European Union Public Licence which appears to be 'copyleft' to >>> say BSD 3-Clause, MIT, ... >>> >>> Adam >>> >>> On Fri, Apr 30, 2021 at 6:00 PM <basex-talk-requ...@mailman.uni-konstanz.de >>> <mailto:basex-talk-requ...@mailman.uni-konstanz.de>> wrote: >>> Send BaseX-Talk mailing list submissions to >>> basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de> >>> >>> To subscribe or unsubscribe via the World Wide Web, visit >>> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk >>> <https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk> >>> or, via email, send a message with subject or body 'help' to >>> basex-talk-requ...@mailman.uni-konstanz.de >>> <mailto:basex-talk-requ...@mailman.uni-konstanz.de> >>> >>> You can reach the person managing the list at >>> basex-talk-ow...@mailman.uni-konstanz.de >>> <mailto:basex-talk-ow...@mailman.uni-konstanz.de> >>> >>> When replying, please edit your Subject line so it is more specific >>> than "Re: Contents of BaseX-Talk digest..." >>> >>> >>> Today's Topics: >>> >>> 1. Make use of external Identity Management for BaseX (Rob) >>> 2. Re: Reloading jars on a running http server. (Reece Dunn) >>> 3. Getting profile information in server responses. (Reece Dunn) >>> 4. Re: Make use of external Identity Management for BaseX >>> (Christian Gr?n) >>> 5. Re: Reloading jars on a running http server. (Christian Gr?n) >>> 6. Re: Getting profile information in server responses. >>> (Christian Gr?n) >>> 7. Re: Reloading jars on a running http server. (Reece Dunn) >>> 8. Re: Reloading jars on a running http server. (Christian Gr?n) >>> 9. Re: Make use of external Identity Management for BaseX >>> (Marco Lettere) >>> >>> >>> ---------------------------------------------------------------------- >>> >>> Message: 1 >>> Date: Thu, 29 Apr 2021 15:54:08 +0200 >>> From: Rob <priv...@tjalma.com <mailto:priv...@tjalma.com>> >>> To: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: [basex-talk] Make use of external Identity Management for >>> BaseX >>> Message-ID: <39036ef3-e67d-470d-b2f4-e6fbffdf4...@tjalma.com >>> <mailto:39036ef3-e67d-470d-b2f4-e6fbffdf4...@tjalma.com>> >>> Content-Type: text/plain; charset=utf-8 >>> >>> Hi, >>> >>> I have a question. >>> Can BaseX make use of an Identity Management application like Keycloak for >>> Users? >>> >>> I can?t find anything about it :) >>> >>> With kind regards, >>> Rob Tjalma >>> >>> ------------------------------ >>> >>> Message: 2 >>> Date: Thu, 29 Apr 2021 20:48:09 +0100 >>> From: Reece Dunn <mscl...@googlemail.com <mailto:mscl...@googlemail.com>> >>> To: Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> Cc: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: Re: [basex-talk] Reloading jars on a running http server. >>> Message-ID: >>> <CAGdtn24Qdgbe3=nebya1je4hcrzvagi_serccrxstxmzcwc...@mail.gmail.com >>> <mailto:nebya1je4hcrzvagi_serccrxstxmzcwc...@mail.gmail.com>> >>> Content-Type: text/plain; charset="utf-8" >>> >>> Hi Christian, >>> >>> Thanks for the response. Unfortunately, I've not been able to get the >>> reloading working. >>> >>> Kind regards, >>> Reece >>> >>> On Wed, 21 Apr 2021 at 18:49, Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> wrote: >>> >>> > Hi Reece, >>> > >>> > If you install your Java code as JAR file in the repository [1], the >>> > code will be loaded and unloaded every time when your query is >>> > executed. If you get an error message? >>> > >>> > java.lang.reflect.InaccessibleObjectException: Unable to make field >>> > private final jdk.internal.loader.URLClassPath >>> > java.net.URLClassLoader.ucp accessible: module java.base does not >>> > "opens java.net <http://java.net/>" to unnamed module @79e2c065 >>> > >>> > ?unloading fails [2], as you?re probably using a more recent version >>> > of the JDK, which restricts reflective access to internal variables. >>> > You can get around this by adding Java flags at startup time: >>> > >>> > --add-opens java.base/java.net <http://java.net/>=ALL-UNNAMED >>> > --add-opens java.base/jdk.internal.loader=ALL-UNNAMED >>> > >>> > Maybe there are better solutions to unload JAR files today. >>> > Suggestions are welcome! >>> > >>> > Hope this helps, >>> > Christian >>> > >>> > [1] https://docs.basex.org/wiki/Repository#Java >>> > <https://docs.basex.org/wiki/Repository#Java> >>> > [2] >>> > https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34 >>> > >>> > <https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34> >>> > >>> > >>> > >>> > On Tue, Apr 20, 2021 at 6:44 PM Reece Dunn <mscl...@googlemail.com >>> > <mailto:mscl...@googlemail.com>> wrote: >>> > > >>> > > Hi all, >>> > > >>> > > I'm working on a Java class that I'm importing into an XQuery, so I can >>> > do additional processing on the data that isn't easily expressible in >>> > XQuery (or XSLT). In order to get BaseX to pick up a modified version of >>> > the jar file I'm building, I'm restarting the BaseX http server. >>> > > >>> > > This makes it slower to turn around testing the changes. Is there a >>> > better way of doing this? >>> > > >>> > > Kind regards, >>> > > Reece >>> > >>> -------------- next part -------------- >>> An HTML attachment was scrubbed... >>> URL: >>> <http://mailman.uni-konstanz.de/pipermail/basex-talk/attachments/20210429/fba079e2/attachment-0001.htm >>> >>> <http://mailman.uni-konstanz.de/pipermail/basex-talk/attachments/20210429/fba079e2/attachment-0001.htm>> >>> >>> ------------------------------ >>> >>> Message: 3 >>> Date: Thu, 29 Apr 2021 20:50:40 +0100 >>> From: Reece Dunn <mscl...@googlemail.com <mailto:mscl...@googlemail.com>> >>> To: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: [basex-talk] Getting profile information in server responses. >>> Message-ID: >>> <cagdtn26mnn7bu3bqun8pks1da4eq2tqstfonx5nqqevzpnh...@mail.gmail.com >>> <mailto:cagdtn26mnn7bu3bqun8pks1da4eq2tqstfonx5nqqevzpnh...@mail.gmail.com>> >>> Content-Type: text/plain; charset="utf-8" >>> >>> Hi all, >>> >>> In BaseX, is there a way to get the profile timings (compile, run, print, >>> etc.) in the response of a HTTP request via the Server-Timing header ( >>> https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing >>> <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing>)? >>> >>> Kind regards, >>> Reece >>> -------------- next part -------------- >>> An HTML attachment was scrubbed... >>> URL: >>> <http://mailman.uni-konstanz.de/pipermail/basex-talk/attachments/20210429/12a4d4fa/attachment-0001.htm >>> >>> <http://mailman.uni-konstanz.de/pipermail/basex-talk/attachments/20210429/12a4d4fa/attachment-0001.htm>> >>> >>> ------------------------------ >>> >>> Message: 4 >>> Date: Fri, 30 Apr 2021 08:47:36 +0200 >>> From: Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> To: Rob <priv...@tjalma.com <mailto:priv...@tjalma.com>> >>> Cc: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: Re: [basex-talk] Make use of external Identity Management for >>> BaseX >>> Message-ID: >>> <CAP94bnP_-nFY6BQv38gqQdy9aoFn_gtRzgM1rW+GB7yjr=x...@mail.gmail.com >>> <mailto:x...@mail.gmail.com>> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> Hi Rob, >>> >>> There is no prepackaged module for Keycloak (at least I?m aware of >>> none), but you can write your own code with XQuery. See [1] for an >>> example how this might look like. >>> >>> Are you using RESTXQ? >>> >>> Best, >>> Christian >>> >>> [1] >>> https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery >>> >>> <https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery> >>> >>> >>> >>> On Thu, Apr 29, 2021 at 3:54 PM Rob <priv...@tjalma.com >>> <mailto:priv...@tjalma.com>> wrote: >>> > >>> > Hi, >>> > >>> > I have a question. >>> > Can BaseX make use of an Identity Management application like Keycloak >>> > for Users? >>> > >>> > I can?t find anything about it :) >>> > >>> > With kind regards, >>> > Rob Tjalma >>> >>> >>> ------------------------------ >>> >>> Message: 5 >>> Date: Fri, 30 Apr 2021 08:48:36 +0200 >>> From: Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> To: Reece Dunn <mscl...@googlemail.com <mailto:mscl...@googlemail.com>> >>> Cc: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: Re: [basex-talk] Reloading jars on a running http server. >>> Message-ID: >>> <cap94bnns_gmotgxea2mp-fcjzqxio3hdzlfcg0_kknotrz6...@mail.gmail.com >>> <mailto:cap94bnns_gmotgxea2mp-fcjzqxio3hdzlfcg0_kknotrz6...@mail.gmail.com>> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> Hi Reece, >>> >>> I?m sorry to hear that. Did you build a custom JAR file, or do you >>> encounter problems with the JDK? >>> >>> Cheers, >>> Christian >>> >>> >>> >>> On Thu, Apr 29, 2021 at 9:48 PM Reece Dunn <mscl...@googlemail.com >>> <mailto:mscl...@googlemail.com>> wrote: >>> > >>> > Hi Christian, >>> > >>> > Thanks for the response. Unfortunately, I've not been able to get the >>> > reloading working. >>> > >>> > Kind regards, >>> > Reece >>> > >>> > On Wed, 21 Apr 2021 at 18:49, Christian Gr?n <christian.gr...@gmail.com >>> > <mailto:christian.gr...@gmail.com>> wrote: >>> >> >>> >> Hi Reece, >>> >> >>> >> If you install your Java code as JAR file in the repository [1], the >>> >> code will be loaded and unloaded every time when your query is >>> >> executed. If you get an error message? >>> >> >>> >> java.lang.reflect.InaccessibleObjectException: Unable to make field >>> >> private final jdk.internal.loader.URLClassPath >>> >> java.net.URLClassLoader.ucp accessible: module java.base does not >>> >> "opens java.net <http://java.net/>" to unnamed module @79e2c065 >>> >> >>> >> ?unloading fails [2], as you?re probably using a more recent version >>> >> of the JDK, which restricts reflective access to internal variables. >>> >> You can get around this by adding Java flags at startup time: >>> >> >>> >> --add-opens java.base/java.net <http://java.net/>=ALL-UNNAMED >>> >> --add-opens java.base/jdk.internal.loader=ALL-UNNAMED >>> >> >>> >> Maybe there are better solutions to unload JAR files today. >>> >> Suggestions are welcome! >>> >> >>> >> Hope this helps, >>> >> Christian >>> >> >>> >> [1] https://docs.basex.org/wiki/Repository#Java >>> >> <https://docs.basex.org/wiki/Repository#Java> >>> >> [2] >>> >> https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34 >>> >> >>> >> <https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34> >>> >> >>> >> >>> >> >>> >> On Tue, Apr 20, 2021 at 6:44 PM Reece Dunn <mscl...@googlemail.com >>> >> <mailto:mscl...@googlemail.com>> wrote: >>> >> > >>> >> > Hi all, >>> >> > >>> >> > I'm working on a Java class that I'm importing into an XQuery, so I >>> >> > can do additional processing on the data that isn't easily expressible >>> >> > in XQuery (or XSLT). In order to get BaseX to pick up a modified >>> >> > version of the jar file I'm building, I'm restarting the BaseX http >>> >> > server. >>> >> > >>> >> > This makes it slower to turn around testing the changes. Is there a >>> >> > better way of doing this? >>> >> > >>> >> > Kind regards, >>> >> > Reece >>> >>> >>> ------------------------------ >>> >>> Message: 6 >>> Date: Fri, 30 Apr 2021 08:55:49 +0200 >>> From: Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> To: Reece Dunn <mscl...@googlemail.com <mailto:mscl...@googlemail.com>> >>> Cc: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: Re: [basex-talk] Getting profile information in server >>> responses. >>> Message-ID: >>> <cap94bnmcyzqryvmejg7ekon+fjns0fsgwwx-_2eqrzzypv-...@mail.gmail.com >>> <mailto:cap94bnmcyzqryvmejg7ekon%2bfjns0fsgwwx-_2eqrzzypv-...@mail.gmail.com>> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> A good idea; I?ll think of ways to get this included. One challenge >>> might be that the response is streamed to the client. This means that >>> when creating the HTTP request headers, it will not be known yet how >>> long the evaluation will take (and the time for evaluation may also >>> depend on the connection speed). The time for parsing and compiling >>> the query should be known at that time, though. ? Maybe we could >>> suppress result streaming when timings are requested. >>> >>> >>> On Thu, Apr 29, 2021 at 9:50 PM Reece Dunn <mscl...@googlemail.com >>> <mailto:mscl...@googlemail.com>> wrote: >>> > >>> > Hi all, >>> > >>> > In BaseX, is there a way to get the profile timings (compile, run, print, >>> > etc.) in the response of a HTTP request via the Server-Timing header >>> > (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing >>> > <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing>)? >>> > >>> > Kind regards, >>> > Reece >>> >>> >>> ------------------------------ >>> >>> Message: 7 >>> Date: Fri, 30 Apr 2021 08:14:21 +0100 >>> From: Reece Dunn <mscl...@googlemail.com <mailto:mscl...@googlemail.com>> >>> To: Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> Cc: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: Re: [basex-talk] Reloading jars on a running http server. >>> Message-ID: >>> <CAGdtn25JU3aGsHZepExgDigQX7asNDOF=2c6pwjcz1kgqqz...@mail.gmail.com >>> <mailto:2c6pwjcz1kgqqz...@mail.gmail.com>> >>> Content-Type: text/plain; charset="utf-8" >>> >>> Hi Christian, >>> >>> I'm not seeing any exceptions in the console window, even when enabling the >>> debug setting. I'm using the AdoptOpenJDK 1.8. I also have AdoptOpenJDK 11, >>> but I assume that will have the issue you described. >>> >>> It's a custom-built jar using Kotlin, built via gradle. >>> >>> One thing that it could be is that I'm using Kotlin objects (not classes), >>> e.g.: >>> >>> package test >>> object Test { fun f(): String = "test" } >>> >>> and using it like: >>> >>> declare namespace Test = "java:test.Test"; >>> >>> declare function test:f() as xs:string { >>> Test::f(Test::INSTANCE()) >>> }; >>> >>> The build.gradle file is simple. It looks something like this (removing >>> things like the junit configuration): >>> >>> ----- >>> buildscript { >>> ext.kotlin_version = "1.4.32" >>> ext.kotlin_stdlib = "kotlin-stdlib" >>> ext.java_version = "1.8" >>> >>> repositories { mavenCentral() } >>> dependencies { classpath >>> "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } >>> } >>> >>> apply plugin: 'kotlin' >>> >>> repositories { >>> mavenCentral() >>> mavenLocal() >>> } >>> >>> compileKotlin { kotlinOptions { jvmTarget = java_version } } >>> compileTestKotlin { kotlinOptions { jvmTarget = java_version } } >>> >>> dependencies { >>> implementation "org.jetbrains.kotlin:$kotlin_stdlib:$kotlin_version" >>> } >>> ----- >>> >>> You'll need to copy the kotlin-stdlib-1.4.32.jar file in addition to the >>> test.jar file to BaseX's lib directory. >>> >>> Kind regards, >>> Reece >>> >>> On Fri, 30 Apr 2021 at 07:48, Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> wrote: >>> >>> > Hi Reece, >>> > >>> > I?m sorry to hear that. Did you build a custom JAR file, or do you >>> > encounter problems with the JDK? >>> > >>> > Cheers, >>> > Christian >>> > >>> > >>> > >>> > On Thu, Apr 29, 2021 at 9:48 PM Reece Dunn <mscl...@googlemail.com >>> > <mailto:mscl...@googlemail.com>> wrote: >>> > > >>> > > Hi Christian, >>> > > >>> > > Thanks for the response. Unfortunately, I've not been able to get the >>> > reloading working. >>> > > >>> > > Kind regards, >>> > > Reece >>> > > >>> > > On Wed, 21 Apr 2021 at 18:49, Christian Gr?n <christian.gr...@gmail.com >>> > > <mailto:christian.gr...@gmail.com>> >>> > wrote: >>> > >> >>> > >> Hi Reece, >>> > >> >>> > >> If you install your Java code as JAR file in the repository [1], the >>> > >> code will be loaded and unloaded every time when your query is >>> > >> executed. If you get an error message? >>> > >> >>> > >> java.lang.reflect.InaccessibleObjectException: Unable to make field >>> > >> private final jdk.internal.loader.URLClassPath >>> > >> java.net.URLClassLoader.ucp accessible: module java.base does not >>> > >> "opens java.net <http://java.net/>" to unnamed module @79e2c065 >>> > >> >>> > >> ?unloading fails [2], as you?re probably using a more recent version >>> > >> of the JDK, which restricts reflective access to internal variables. >>> > >> You can get around this by adding Java flags at startup time: >>> > >> >>> > >> --add-opens java.base/java.net <http://java.net/>=ALL-UNNAMED >>> > >> --add-opens java.base/jdk.internal.loader=ALL-UNNAMED >>> > >> >>> > >> Maybe there are better solutions to unload JAR files today. >>> > >> Suggestions are welcome! >>> > >> >>> > >> Hope this helps, >>> > >> Christian >>> > >> >>> > >> [1] https://docs.basex.org/wiki/Repository#Java >>> > >> <https://docs.basex.org/wiki/Repository#Java> >>> > >> [2] >>> > https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34 >>> > >>> > <https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34> >>> > >> >>> > >> >>> > >> >>> > >> On Tue, Apr 20, 2021 at 6:44 PM Reece Dunn <mscl...@googlemail.com >>> > >> <mailto:mscl...@googlemail.com>> >>> > wrote: >>> > >> > >>> > >> > Hi all, >>> > >> > >>> > >> > I'm working on a Java class that I'm importing into an XQuery, so I >>> > can do additional processing on the data that isn't easily expressible in >>> > XQuery (or XSLT). In order to get BaseX to pick up a modified version of >>> > the jar file I'm building, I'm restarting the BaseX http server. >>> > >> > >>> > >> > This makes it slower to turn around testing the changes. Is there a >>> > better way of doing this? >>> > >> > >>> > >> > Kind regards, >>> > >> > Reece >>> > >>> -------------- next part -------------- >>> An HTML attachment was scrubbed... >>> URL: >>> <http://mailman.uni-konstanz.de/pipermail/basex-talk/attachments/20210430/1b9943e9/attachment-0001.htm >>> >>> <http://mailman.uni-konstanz.de/pipermail/basex-talk/attachments/20210430/1b9943e9/attachment-0001.htm>> >>> >>> ------------------------------ >>> >>> Message: 8 >>> Date: Fri, 30 Apr 2021 09:30:17 +0200 >>> From: Christian Gr?n <christian.gr...@gmail.com >>> <mailto:christian.gr...@gmail.com>> >>> To: Reece Dunn <mscl...@googlemail.com <mailto:mscl...@googlemail.com>> >>> Cc: BaseX <basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de>> >>> Subject: Re: [basex-talk] Reloading jars on a running http server. >>> Message-ID: >>> <CAP94bnN5QnMVBoaNzAL8WOuUo7N8MDYbM4+z=3ftqdn_euv...@mail.gmail.com >>> <mailto:3ftqdn_euv...@mail.gmail.com>> >>> Content-Type: text/plain; charset="UTF-8" >>> >>> Hi Reece, >>> >>> > You'll need to copy the kotlin-stdlib-1.4.32.jar file in addition to the >>> > test.jar file to BaseX's lib directory. >>> >>> Please note that JAR libraries will only be unregistered after query >>> evalution if they are moved into the repo directory. If a library is >>> copied into the lib directory, it will be added to the static >>> classpath. >>> >>> In the given case, you could probably keep kotlin-stdlib-1.4.32.jar in >>> the lib directory, but you?ll need to keep your development code in >>> the repository (as described in the Wiki). It?s no problem, though, to >>> directly modify the repo code (you don?t have to use REPO INSTALL or >>> repo:install for that). >>> >>> If the problem persists, feel free to send me a little test.jar, I can >>> then do further testing. >>> >>> Hope this helps, >>> Christian >>> >>> >>> On Fri, Apr 30, 2021 at 9:14 AM Reece Dunn <mscl...@googlemail.com >>> <mailto:mscl...@googlemail.com>> wrote: >>> > >>> > Hi Christian, >>> > >>> > I'm not seeing any exceptions in the console window, even when enabling >>> > the debug setting. I'm using the AdoptOpenJDK 1.8. I also have >>> > AdoptOpenJDK 11, but I assume that will have the issue you described. >>> > >>> > It's a custom-built jar using Kotlin, built via gradle. >>> > >>> > One thing that it could be is that I'm using Kotlin objects (not >>> > classes), e.g.: >>> > >>> > package test >>> > object Test { fun f(): String = "test" } >>> > >>> > and using it like: >>> > >>> > declare namespace Test = "java:test.Test"; >>> > >>> > declare function test:f() as xs:string { >>> > Test::f(Test::INSTANCE()) >>> > }; >>> > >>> > The build.gradle file is simple. It looks something like this (removing >>> > things like the junit configuration): >>> > >>> > ----- >>> > buildscript { >>> > ext.kotlin_version = "1.4.32" >>> > ext.kotlin_stdlib = "kotlin-stdlib" >>> > ext.java_version = "1.8" >>> > >>> > repositories { mavenCentral() } >>> > dependencies { classpath >>> > "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } >>> > } >>> > >>> > apply plugin: 'kotlin' >>> > >>> > repositories { >>> > mavenCentral() >>> > mavenLocal() >>> > } >>> > >>> > compileKotlin { kotlinOptions { jvmTarget = java_version } } >>> > compileTestKotlin { kotlinOptions { jvmTarget = java_version } } >>> > >>> > dependencies { >>> > implementation "org.jetbrains.kotlin:$kotlin_stdlib:$kotlin_version" >>> > } >>> > ----- >>> > >>> > You'll need to copy the kotlin-stdlib-1.4.32.jar file in addition to the >>> > test.jar file to BaseX's lib directory. >>> > >>> > Kind regards, >>> > Reece >>> > >>> > On Fri, 30 Apr 2021 at 07:48, Christian Gr?n <christian.gr...@gmail.com >>> > <mailto:christian.gr...@gmail.com>> wrote: >>> >> >>> >> Hi Reece, >>> >> >>> >> I?m sorry to hear that. Did you build a custom JAR file, or do you >>> >> encounter problems with the JDK? >>> >> >>> >> Cheers, >>> >> Christian >>> >> >>> >> >>> >> >>> >> On Thu, Apr 29, 2021 at 9:48 PM Reece Dunn <mscl...@googlemail.com >>> >> <mailto:mscl...@googlemail.com>> wrote: >>> >> > >>> >> > Hi Christian, >>> >> > >>> >> > Thanks for the response. Unfortunately, I've not been able to get the >>> >> > reloading working. >>> >> > >>> >> > Kind regards, >>> >> > Reece >>> >> > >>> >> > On Wed, 21 Apr 2021 at 18:49, Christian Gr?n >>> >> > <christian.gr...@gmail.com <mailto:christian.gr...@gmail.com>> wrote: >>> >> >> >>> >> >> Hi Reece, >>> >> >> >>> >> >> If you install your Java code as JAR file in the repository [1], the >>> >> >> code will be loaded and unloaded every time when your query is >>> >> >> executed. If you get an error message? >>> >> >> >>> >> >> java.lang.reflect.InaccessibleObjectException: Unable to make field >>> >> >> private final jdk.internal.loader.URLClassPath >>> >> >> java.net.URLClassLoader.ucp accessible: module java.base does not >>> >> >> "opens java.net <http://java.net/>" to unnamed module @79e2c065 >>> >> >> >>> >> >> ?unloading fails [2], as you?re probably using a more recent version >>> >> >> of the JDK, which restricts reflective access to internal variables. >>> >> >> You can get around this by adding Java flags at startup time: >>> >> >> >>> >> >> --add-opens java.base/java.net <http://java.net/>=ALL-UNNAMED >>> >> >> --add-opens java.base/jdk.internal.loader=ALL-UNNAMED >>> >> >> >>> >> >> Maybe there are better solutions to unload JAR files today. >>> >> >> Suggestions are welcome! >>> >> >> >>> >> >> Hope this helps, >>> >> >> Christian >>> >> >> >>> >> >> [1] https://docs.basex.org/wiki/Repository#Java >>> >> >> <https://docs.basex.org/wiki/Repository#Java> >>> >> >> [2] >>> >> >> https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34 >>> >> >> >>> >> >> <https://github.com/BaseXdb/basex/blob/master/basex-core/src/main/java/org/basex/util/JarLoader.java#L34> >>> >> >> >>> >> >> >>> >> >> >>> >> >> On Tue, Apr 20, 2021 at 6:44 PM Reece Dunn <mscl...@googlemail.com >>> >> >> <mailto:mscl...@googlemail.com>> wrote: >>> >> >> > >>> >> >> > Hi all, >>> >> >> > >>> >> >> > I'm working on a Java class that I'm importing into an XQuery, so I >>> >> >> > can do additional processing on the data that isn't easily >>> >> >> > expressible in XQuery (or XSLT). In order to get BaseX to pick up a >>> >> >> > modified version of the jar file I'm building, I'm restarting the >>> >> >> > BaseX http server. >>> >> >> > >>> >> >> > This makes it slower to turn around testing the changes. Is there a >>> >> >> > better way of doing this? >>> >> >> > >>> >> >> > Kind regards, >>> >> >> > Reece >>> >>> >>> ------------------------------ >>> >>> Message: 9 >>> Date: Fri, 30 Apr 2021 09:37:14 +0200 >>> From: Marco Lettere <m.lett...@gmail.com <mailto:m.lett...@gmail.com>> >>> To: basex-talk@mailman.uni-konstanz.de >>> <mailto:basex-talk@mailman.uni-konstanz.de> >>> Subject: Re: [basex-talk] Make use of external Identity Management for >>> BaseX >>> Message-ID: <1a8d807b-9cb3-3cd4-f1b7-22aff5446...@gmail.com >>> <mailto:1a8d807b-9cb3-3cd4-f1b7-22aff5446...@gmail.com>> >>> Content-Type: text/plain; charset=utf-8; format=flowed >>> >>> Hi Christian and Rob, >>> as the authors of the code you point to we confirm that interacting with >>> Keycloak in XQuery and in particular RestXQ is rather comfortable. >>> That example is mostly a demonstration code for a tool that scrapes a >>> site index and registers sites named gateways as public clients (in >>> Oauth2 sense) into a Keycloak instance. >>> It is a proof of concept (as you can see from the credentials? :-D) that >>> has been used as a batch one-time migration in a particular setting. >>> >>> We have also a RestXQ module that in combination with basex:perm >>> annotations protects access to a GUI implementing the Oauth2 Code-grant >>> flow. If Rob is interested we could share. >>> >>> If there should be any plan of integrating Oauth2/OIDC flows more >>> tightly into BaseX we could also be available for helping out. >>> >>> Regards, >>> Marco. >>> >>> On 30/04/21 08:47, Christian Gr?n wrote: >>> > Hi Rob, >>> > >>> > There is no prepackaged module for Keycloak (at least I?m aware of >>> > none), but you can write your own code with XQuery. See [1] for an >>> > example how this might look like. >>> > >>> > Are you using RESTXQ? >>> > >>> > Best, >>> > Christian >>> > >>> > [1] >>> > https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery >>> > >>> > <https://code-repo.d4science.org/gCubeSystem/d4science-keycloak-themes/src/branch/master/src/utils/xquery> >>> > >>> > >>> > >>> > On Thu, Apr 29, 2021 at 3:54 PM Rob <priv...@tjalma.com >>> > <mailto:priv...@tjalma.com>> wrote: >>> >> Hi, >>> >> >>> >> I have a question. >>> >> Can BaseX make use of an Identity Management application like Keycloak >>> >> for Users? >>> >> >>> >> I can?t find anything about it :) >>> >> >>> >> With kind regards, >>> >> Rob Tjalma >>> >>> >>> >>> >>> End of BaseX-Talk Digest, Vol 136, Issue 17 >>> ******************************************* >> >