jOOQ will require at least the JAXB API version that it declares.

Of course, lower versions *might* work by accident (and probably will,
because the JAXB dependency isn't used much anymore, apart from the
annotations), but if you want to be sure to use only what's being
integration tested, then please use the declared (as in the pom.xml)
version. If you have strict versioning policies, then that might just mean
(though again, I can impossibly be the judge here), you can't upgrade jOOQ
before you upgrade also JAXB.

In jOOQ 3.18.0, the dependency has been marked optional, so you could
possibly even remove it on your end, if you can accept this warning here:
https://github.com/jOOQ/jOOQ/issues/14865

I hope this helps
Lukas

On Wed, Mar 29, 2023 at 7:11 AM deepankar gupta <
deepankargupta1...@gmail.com> wrote:

> Hi Lucas,
> Since jooq 3.17.5 uses * jakarta.xml.bind-api 3.0.0 version and in this
> version *java.xml.bind (JAXB)  has been REMOVED. So my question is, will
> jooq 3.17.5 work with a lower version of *jakarta.xml.bind-api 2.3.3?*
>
> StackOverflow Link for reference*: *
> https://stackoverflow.com/questions/52502189/java-11-package-javax-xml-bind-does-not-exist
>
> Regards
> Deepankar Gupta
>
> On Monday, March 27, 2023 at 12:04:50 PM UTC+5:30 lukas...@gmail.com
> wrote:
>
>> Hi Deepankar,
>>
>> There are two points to this discussion:
>>
>> - What dependencies jOOQ exposes (and indeed, there has been a change
>> from javax to Jakarta EE namespaces)
>> - What this means for you, specifically
>>
>> I don't want to give you any guidelines with respect to what you "have
>> to" do, because I don't know your setup. All of our examples and
>> integration tests don't do anything special. They just add the jOOQ
>> dependency, and stuff works, because Maven loads all necessary transitive
>> dependencies automatically, and the optional ones are... well, optional.
>>
>> Do you have any *specific* problems I can help you with?
>> Best Regards,
>> Lukas
>>
>> On Sat, Mar 25, 2023 at 9:36 AM deepankar gupta <deepankar...@gmail.com>
>> wrote:
>>
>>> Hi Lucas,
>>>
>>> I was comparing both 3.14.6 and 3.17.5 versions, there you mentioned
>>> that we have to explicitly specify jaxb api in jooq 3.14.6 version. And in
>>> 3.17.5 you have replaced *jaxb-api with jakarta.xml.bind-api. *The
>>> same will have to do for jakarta.xml.bind-api as well. Do we have to
>>> explicitly specify jakarta.xml.bind-api for 3.17.5 version?? And we have to
>>> use jakarta.xml.bind-api 3.0.0 version.
>>>
>>> Regards
>>> Deepankar Gupta
>>>
>>>
>>> On Monday, March 20, 2023 at 2:26:37 PM UTC+5:30 lukas...@gmail.com
>>> wrote:
>>>
>>>> All the dependencies are documented in the pom.xml file of the relevant
>>>> artifact. Use mvn dependency:tree on your project to visualise them
>>>>
>>>> On Mon, Mar 20, 2023 at 9:52 AM deepankar gupta <deepankar...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Lucas,
>>>>> Is there any documentation I can refer to, to get all list of
>>>>> dependencies compatible with jooq 3.17.5??
>>>>>
>>>>> Regards
>>>>> Deepankar Gupta
>>>>>
>>>>> On Monday, March 20, 2023 at 2:10:13 PM UTC+5:30 lukas...@gmail.com
>>>>> wrote:
>>>>>
>>>>>> Hi Deepankar,
>>>>>>
>>>>>> ChatGPT produces inaccurate results. See:
>>>>>>
>>>>>> https://www.google.com/search?q=chatgpt+results+inaccurate&oq=chatgpt+results+inaccurate
>>>>>>
>>>>>> The mere fact that this output suggest you add soap to your list of
>>>>>> dependencies should be a red flag.
>>>>>>
>>>>>> I hope this helps,
>>>>>> Lukas
>>>>>>
>>>>>> On Mon, Mar 20, 2023 at 9:16 AM deepankar gupta <
>>>>>> deepankar...@gmail.com> wrote:
>>>>>>
>>>>>>> Hi Lucas,
>>>>>>>
>>>>>>> Can you please help me with external dependencies that is compatible
>>>>>>> with jooq 3.17.5. From chatgpt, I come up with below dependencies:
>>>>>>>
>>>>>>> Here are the external dependencies used by jOOQ 3.17.5:
>>>>>>>
>>>>>>>    - asm: 7.2 (Apache License 2.0)
>>>>>>>    - cglib: 3.3.0 (Apache License 2.0)
>>>>>>>    - jakarta.activation: 1.2.2 (Apache License 2.0)
>>>>>>>    - jakarta.annotation-api: 1.3.5 (Eclipse Public License 2.0)
>>>>>>>    - jakarta.xml.bind-api: 2.3.3 (Eclipse Public License 2.0)
>>>>>>>    - jakarta.xml.soap-api: 1.4.2 (Eclipse Public License 2.0)
>>>>>>>    - jakarta.xml.ws-api: 2.3.3 (Eclipse Public License 2.0)
>>>>>>>    - javax.activation: 1.2.0 (Common Development and Distribution
>>>>>>>    License 1.0)
>>>>>>>    - javax.xml.bind: 2.3.3 (Common Development and Distribution
>>>>>>>    License 1.0)
>>>>>>>    - javax.xml.soap: 1.4.0 (Common Development and Distribution
>>>>>>>    License 1.0)
>>>>>>>    - javax.xml.ws: 2.3.3 (Common Development and Distribution
>>>>>>>    License 1.0)
>>>>>>>    - jdom2: 2.0.6 (Apache License 2.0)
>>>>>>>    - log4j-api: 2.14.1 (Apache License 2.0)
>>>>>>>    - log4j-core: 2.14.1 (Apache License 2.0)
>>>>>>>    - org.eclipse.jdt.core.compiler: 3.25.0 (Eclipse Public License
>>>>>>>    1.0)
>>>>>>>    - org.jooq: jooq-meta: 3.17.5 (Apache License 2.0)
>>>>>>>    - org.jooq: jooq-codegen: 3.17.5 (Apache License 2.0)
>>>>>>>    - org.postgresql: postgresql: 42.2.18 (BSD-style license)
>>>>>>>    - org.slf4j: slf4j-api: 1.7.30 (MIT License)
>>>>>>>
>>>>>>> Do let me know if any dependency is missing or version is not
>>>>>>> correct.
>>>>>>>
>>>>>>> Regards
>>>>>>> Deepankar Gupta
>>>>>>> On Friday, March 17, 2023 at 2:59:58 PM UTC+5:30 deepankar gupta
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Lucas,
>>>>>>>> Thanks for such in-depth insights. Yeah it solves my problem
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Deepankar Gupta
>>>>>>>>
>>>>>>>> On Thursday, March 16, 2023 at 1:50:45 PM UTC+5:30
>>>>>>>> lukas...@gmail.com wrote:
>>>>>>>>
>>>>>>>>> Hi Deepankar,
>>>>>>>>>
>>>>>>>>> Thanks a lot for your message. That's an interesting approach, I
>>>>>>>>> can see how that works for you. The fact that you're implementing
>>>>>>>>> interfaces like these (especially the one that is called 
>>>>>>>>> QueryPartInternal)
>>>>>>>>> hints at there being a feature request hidden in there somewhere. 
>>>>>>>>> Things
>>>>>>>>> can break when implementing internal interfaces. Besides, we'll 
>>>>>>>>> "soon" seal
>>>>>>>>> the entire DSL type hierarchy, because most attempts at implementing 
>>>>>>>>> the
>>>>>>>>> DSL API (e.g. Constraint) should also be considered tweaking 
>>>>>>>>> internals and
>>>>>>>>> are usually not the best way to achieve something.
>>>>>>>>>
>>>>>>>>> I'd love to get a bit more context on your use-case here. It seems
>>>>>>>>> that you would like to add some DDL clause support to your 
>>>>>>>>> constraints when
>>>>>>>>> using jOOQ's CREATE TABLE or ALTER TABLE support? Is it this feature 
>>>>>>>>> you're
>>>>>>>>> looking for?
>>>>>>>>> https://github.com/jOOQ/jOOQ/issues/10363
>>>>>>>>>
>>>>>>>>> Maybe, it's worth investigating also the option of supporting
>>>>>>>>> plain SQL TableElement and CustomTableElement implementations, which 
>>>>>>>>> allow
>>>>>>>>> for adding arbitrary clauses to DDL statements, which jOOQ doesn't 
>>>>>>>>> support
>>>>>>>>> (yet). I've created a feature request for this:
>>>>>>>>> https://github.com/jOOQ/jOOQ/issues/14807
>>>>>>>>>
>>>>>>>>> Back to what broke here, the internal rendering API got changed a
>>>>>>>>> long time ago with:
>>>>>>>>> https://github.com/jOOQ/jOOQ/issues/3323
>>>>>>>>>
>>>>>>>>> And the old internal API was removed with:
>>>>>>>>> https://github.com/jOOQ/jOOQ/issues/11495
>>>>>>>>>
>>>>>>>>> This change allows for traversing an expression tree only once to
>>>>>>>>> do both actions in one go:
>>>>>>>>> - SQL generation
>>>>>>>>> - Bind value collection
>>>>>>>>>
>>>>>>>>> In any case, I think you already correctly implemented the
>>>>>>>>> interfaces, with your accept() method. You can now just remove the 
>>>>>>>>> toSQL()
>>>>>>>>> and bind() methods, which are no longer necessary.
>>>>>>>>> Does that solve your problem?
>>>>>>>>>
>>>>>>>>> Best Regards,
>>>>>>>>> Lukas
>>>>>>>>>
>>>>>>>>> On Thu, Mar 16, 2023 at 9:06 AM deepankar gupta <
>>>>>>>>> deepankar...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Lucas,
>>>>>>>>>>
>>>>>>>>>> I am trying to upgrade jooq version from 3.14.6 to 3.17.5. We
>>>>>>>>>> have implemented 2 interfaces Constraint and QueryPartInternal. And 
>>>>>>>>>> also
>>>>>>>>>> overridden toSQL(RenderContext ctx) and bind(BindContext ctx) 
>>>>>>>>>> methods but
>>>>>>>>>> in jooq version 3.17.5 these methods are not there anymore. Need 
>>>>>>>>>> help on
>>>>>>>>>> how these 2 methods implementation should look like in jooq version 
>>>>>>>>>> 3.17.5
>>>>>>>>>>
>>>>>>>>>> Code Snippet:
>>>>>>>>>> private interface ConstraintInternal extends Constraint,
>>>>>>>>>> QueryPartInternal {
>>>>>>>>>>
>>>>>>>>>>     }
>>>>>>>>>>
>>>>>>>>>> private Constraint useDeferrableConstraint(Constraint delegate){
>>>>>>>>>>         return new ConstraintInternal() {
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public void accept(Context<?> ctx) {
>>>>>>>>>>                 ((QueryPartInternal) (delegate)).accept(ctx);
>>>>>>>>>>                 if (join.from().isPartitioned()) {
>>>>>>>>>>                     ctx.sql(" deferrable initially deferred not
>>>>>>>>>> valid");
>>>>>>>>>>                 } else {
>>>>>>>>>>                     ctx.sql(" deferrable initially deferred");
>>>>>>>>>>                 }
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public boolean rendersContent(Context<?> ctx) {
>>>>>>>>>>                 return  ((QueryPartInternal)
>>>>>>>>>> (delegate)).rendersContent(ctx);
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             //Need help on this method(Not there anymore in jooq
>>>>>>>>>> 3.17.5)
>>>>>>>>>>             @Override
>>>>>>>>>>             public void toSQL(RenderContext ctx) {
>>>>>>>>>>                 ((QueryPartInternal) (delegate)).toSQL(ctx);
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             //Need help on this method(Not there anymore in jooq
>>>>>>>>>> 3.17.5)
>>>>>>>>>>             @Override
>>>>>>>>>>             public void bind(BindContext ctx) throws
>>>>>>>>>> DataAccessException {
>>>>>>>>>>                 ((QueryPartInternal) (delegate)).bind(ctx);
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public Clause[] clauses(Context<?> ctx) {
>>>>>>>>>>                 return ((QueryPartInternal)
>>>>>>>>>> (delegate)).clauses(ctx);
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public boolean declaresFields() {
>>>>>>>>>>                 return ((QueryPartInternal)
>>>>>>>>>> (delegate)).declaresFields();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public boolean declaresTables() {
>>>>>>>>>>                 return ((QueryPartInternal)
>>>>>>>>>> (delegate)).declaresTables();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public boolean declaresWindows() {
>>>>>>>>>>                 return  ((QueryPartInternal)
>>>>>>>>>> (delegate)).declaresWindows();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public boolean declaresCTE() {
>>>>>>>>>>                 return ((QueryPartInternal)
>>>>>>>>>> (delegate)).declaresCTE();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             //Need to override this method in jooq 3.17.5
>>>>>>>>>>             @Override
>>>>>>>>>>             public boolean declaresParameters() {
>>>>>>>>>>                 return false;
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public boolean generatesCast() {
>>>>>>>>>>                 return ((QueryPartInternal)
>>>>>>>>>> (delegate)).generatesCast();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public String getName() {
>>>>>>>>>>                 return delegate.getName();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public Name getQualifiedName() {
>>>>>>>>>>                 return delegate.getQualifiedName();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public Name getUnqualifiedName() {
>>>>>>>>>>                 return delegate.getUnqualifiedName();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public String getComment() {
>>>>>>>>>>                 return delegate.getComment();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public Comment getCommentPart() {
>>>>>>>>>>                 return delegate.getCommentPart();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             //Need to override this method in jooq 3.17.5
>>>>>>>>>>             @Override
>>>>>>>>>>             public @org.jetbrains.annotations.NotNull Name
>>>>>>>>>> $name() {
>>>>>>>>>>                 return delegate.$name();
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             @Override
>>>>>>>>>>             public String toString() {
>>>>>>>>>>                 if (join.from().isPartitioned()) {
>>>>>>>>>>                     return delegate.toString() + " deferrable
>>>>>>>>>> initially deferred not valid";
>>>>>>>>>>                 } else {
>>>>>>>>>>                     return delegate.toString() + " deferrable
>>>>>>>>>> initially deferred";
>>>>>>>>>>                 }
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             //Need to override this method in jooq 3.17.5
>>>>>>>>>>             @Override
>>>>>>>>>>             public <R> R $traverse(Traverser<?, R> traverser) {
>>>>>>>>>>                 return delegate.$traverse(traverser);
>>>>>>>>>>             }
>>>>>>>>>>
>>>>>>>>>>             //Need to override this method in jooq 3.17.5
>>>>>>>>>>             @Override
>>>>>>>>>>             public @org.jetbrains.annotations.NotNull QueryPart
>>>>>>>>>> $replace(Replacer replacer) {
>>>>>>>>>>                 return delegate.$replace(replacer);
>>>>>>>>>>             }
>>>>>>>>>>         };
>>>>>>>>>>     }
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "jOOQ User Group" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to jooq-user+...@googlegroups.com.
>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>> https://groups.google.com/d/msgid/jooq-user/71aaa0ae-71f0-450b-b3ec-db081635ddfen%40googlegroups.com
>>>>>>>>>> <https://groups.google.com/d/msgid/jooq-user/71aaa0ae-71f0-450b-b3ec-db081635ddfen%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>> .
>>>>>>>>>>
>>>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "jOOQ User Group" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to jooq-user+...@googlegroups.com.
>>>>>>>
>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/jooq-user/54ce08d5-a418-4672-be35-fa4f222533c1n%40googlegroups.com
>>>>>>> <https://groups.google.com/d/msgid/jooq-user/54ce08d5-a418-4672-be35-fa4f222533c1n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "jOOQ User Group" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to jooq-user+...@googlegroups.com.
>>>>>
>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/jooq-user/721760f4-b94a-451b-971c-242176ddee85n%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/jooq-user/721760f4-b94a-451b-971c-242176ddee85n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "jOOQ User Group" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to jooq-user+...@googlegroups.com.
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/jooq-user/06ef2024-17ec-45d0-81d9-ebe7d42571d5n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/jooq-user/06ef2024-17ec-45d0-81d9-ebe7d42571d5n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "jOOQ User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jooq-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jooq-user/b4de04e8-9103-433a-8909-5fc123c74ba9n%40googlegroups.com
> <https://groups.google.com/d/msgid/jooq-user/b4de04e8-9103-433a-8909-5fc123c74ba9n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jooq-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jooq-user/CAB4ELO7gCCVssF2fRO%2B23cXuV7rGL4HBmJUMhvUmEvyfXd%3DL5w%40mail.gmail.com.

Reply via email to