Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

quarkus-cxf quickstart #399

Open
shumonsharif opened this issue Mar 29, 2022 · 29 comments
Open

quarkus-cxf quickstart #399

shumonsharif opened this issue Mar 29, 2022 · 29 comments

Comments

@shumonsharif
Copy link
Contributor

Add codestart for the Quarkus-CXF extension as documented here:
https://quarkus.io/guides/extension-codestart#writing-an-extension-codestart-in-the-quarkiverse-or-standalone

@shumonsharif
Copy link
Contributor Author

Hi @gastaldi - are you aware of any Quarkiverse extension leveraging this at the moment?

I tried searching but not sure if I'm using the right keywords, so just wanted to check with you.

@gastaldi
Copy link
Member

@shumonsharif I don't know of any quarkiverse extension bundling codestarts, maybe @ia3andy may chime in and answer this?

@shumonsharif
Copy link
Contributor Author

Thanks George, will try out the codestart to see how it works - I came to the conclusion that no other Quarkiverse projects are using it yet. Will keep you both posted in case of any issues.

@ia3andy
Copy link

ia3andy commented Mar 30, 2022

There is not Quarkiverse extension with Codestart yet but it's possible. To add a codestart the first thing is to start from an empty code.quarkus.io project and add the code you would like to see as codestart. It should be really simple and made to help developer start coding (It shouldn't contain much example just stubbing).

@shumonsharif
Copy link
Contributor Author

Gotcha, thanks @ia3andy. Unfortunately, even the most minimal starter code for this extension will need a fair number of supporting example classes. We'll likely also need a plugin (like this) defined in the starter pom.xml ... I didn't see any way to integrate that into a codestart. Given these factors, I am going to skip creating a codestart for the extension and give some thought to alternative options.

Also just wanted to check with you both, we recently introduced a modular structure in the project, so we will have multiple maven modules getting published for the next release - I would like to ensure that only one (the core module) gets published to code.quarkus.io, and remaining supporting modules get skipped ... please advise on how I can ensure that; is it possible?

@ia3andy
Copy link

ia3andy commented Mar 30, 2022

You need to make sure they are unlisted: true in the metadata. example:
https://github.com/quarkusio/quarkus/blob/main/extensions/arc/runtime/src/main/resources/META-INF/quarkus-extension.yaml#L15

@ia3andy
Copy link

ia3andy commented Mar 30, 2022

Regarding the example code,

@gastaldi @gsmet do we have a quickstart equivalent for the Quarkiverse?

else, I would suggest creating a quickstart example app in the repository and reference it from the doc. We could even consider creating a github action to generate it automatically using the codestarts system on new versions (which in this case would allow editing the pom.xml and use example code).

cc @maxandersen

@maxandersen
Copy link
Member

I would say having QuickStart near/inside the extension makes sense.

Any downside to have a quickstart folder like we have docs ?

@maxandersen
Copy link
Member

Ah - one downside is to not be able to have the QuickStart refer main.

@gastaldi maybe we should opt for making a quickstart repo per extension that wants it ?

@ia3andy
Copy link

ia3andy commented Mar 30, 2022

@maxandersen we could also add it as a release item from GH actions which gets generated on release using codestarts.

@maxandersen
Copy link
Member

Generated ? To where ?

@ia3andy
Copy link

ia3andy commented Mar 30, 2022

shumonsharif added a commit that referenced this issue Mar 30, 2022
@maxandersen
Copy link
Member

As a versioned zip? I guess that could work.

@shumonsharif
Copy link
Contributor Author

Thanks so much all, greatly appreciate your inputs and feedback. I will explore the quickstart route for now.

@gastaldi Please let us know in case you have anything in mind for a Quarkiverse level quickstart, otherwise if it makes more sense, I will try to include it in the extension repository itself.

@gastaldi
Copy link
Member

gastaldi commented Apr 1, 2022

@gastaldi Please let us know in case you have anything in mind for a Quarkiverse level quickstart, otherwise if it makes more sense, I will try to include it in the extension repository itself.

I don't know what a Quarkiverse level quickstart means, but I'd recommend you to include in the extension repository itself 😉

@shumonsharif
Copy link
Contributor Author

Apologies, I meant to say Quarkiverse level quickstart repo, I meant something like this:
https://github.com/quarkusio/quarkus-quickstarts

Will include in the extension for now! Thanks @gastaldi.

@shumonsharif
Copy link
Contributor Author

On further thought, I don't see a clean way to have a quickstart as part of the extension repo, as @maxandersen already pointed out previously. I may just end up creating a quickstart repo under my personal account, just to keep things clean. Closing this issue for now, thanks once again all.

@gastaldi
Copy link
Member

gastaldi commented Apr 1, 2022

I may be missing something, but isn't a quickstart/codestart another Maven module?

@shumonsharif
Copy link
Contributor Author

The issue as I see it, is that the extension leverages this BOM dependency:
https://github.com/quarkiverse/quarkus-cxf/blob/master/pom.xml#L76-L82

A regular Quarkus app / quickstart will have slightly different coordinates for its BOM import, so it'll have to live as an independent project, and not a Maven submodule like docs, core, or any of the others in the extension.

@gastaldi
Copy link
Member

gastaldi commented Apr 1, 2022

Sorry, but I am still not following. AFAIR a codestart only declares a set of instructions of what needs to be changed in a project in order to end up with a working application. I'd appreciate if we could discuss that further to understand why a maven submodule wouldn't work.

Last but not least Quickstart (a fully working application) != Codestart so I am assuming you mean the latter

@shumonsharif
Copy link
Contributor Author

So, the original intent for this issue was to do a codestart. After gathering some feedback, I explained here, that a codestart won't work for this extension. A quickstart was suggested here, so that's what I've been exploring and trying to discuss in my comments today.

@gastaldi
Copy link
Member

gastaldi commented Apr 1, 2022

In this case I'd suggest making it available in https://github.com/quarkusio/quarkus-quickstarts, as it seems to be the central place for all quickstarts.

I personally don't like to come up with a quarkiverse-quickstarts as it would be another repository to version and maintain, but we can always discuss that.

Any thoughts @quarkiverse/quarkiverse-owners?

@maxandersen
Copy link
Member

-1.

It is not a good idea to put all quarkiverse QuickStarts into the central QuickStarts. Since that repo is used for quarkus core platform release and if it can't upgrade we are stuck.

Better options is imo independent QuickStart module in quarkiverse repos or qucikstart per quarkiverse repo in the org.

A main point of quarkiverse is they should be possible to release independently thus just like docs the QuickStarts should not end up in a central repo imo.

@shumonsharif shumonsharif reopened this Apr 2, 2022
@gastaldi
Copy link
Member

gastaldi commented Apr 2, 2022

Better options is imo independent QuickStart module in quarkiverse repos or qucikstart per quarkiverse repo in the org.

Not sure what you mean with Quickstart per quarkiverse repo x independent Quickstart module in the quarkiverse repository, they look the same to me, but I'm still on vacation so my brain may be somewhere else 😉

A main point of quarkiverse is they should be possible to release independently thus just like docs the QuickStarts should not end up in a central repo imo.

Right, in this case an independent quickstart module in the extension repository is a better idea IMHO

@shumonsharif
Copy link
Contributor Author

@gastaldi Hope you are enjoying your vacation, and sorry for the interruptions!

I believe we're in agreement that an independent quickstart module in the extension repository itself is the best way forward, ie. the quickstart module won't be a submodule like docs or core as already explained previously.

If we do take this approach, would it be possible to update the release process to create a zip artifact containing the quickstart and publish it as a release asset? Maybe we can use a generic quickstarts folder name, just like docs, so that any Quarkiverse extension developer can leverage it? Just a thought, that I believe @ia3andy expressed as well.

@shumonsharif shumonsharif changed the title quarkus-cxf codestart quarkus-cxf quickstart Apr 3, 2022
@ia3andy
Copy link

ia3andy commented Apr 11, 2022

I created an issue for this: quarkusio/quarkus#24870

@lasteris
Copy link

lasteris commented Aug 5, 2024

Good day everyone! Why this issue has still opened ? I think Quarkus-CXF has comprehension documentation now.
There is no problem to start from scratch of it.

@maxandersen
Copy link
Member

this isn't about documentation per-say its about having a quarkus-cxf include a quickstart to get started even easier. like resteasy extension setup a hello endpoint when you use code quarkus or the cli; similar quarkus-cxf could provide the initial setup for a hello endpoint based on cxf.

@maxandersen
Copy link
Member

updated title to reflect the actual ask.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants