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

Add a CXF extension #5538

Closed
wants to merge 10 commits into from
Closed

Add a CXF extension #5538

wants to merge 10 commits into from

Conversation

dufoli
Copy link
Contributor

@dufoli dufoli commented Nov 17, 2019

rebase and fix cxf branch for quarkusio#4005

@machi1990
Copy link
Member

Hi @dufoli thanks for the PR. I did a quick look and noticed that you have files that are not supposed to be here. Can you please delete this folder - https://github.com/quarkusio/quarkus/tree/261673fd90672f1e4647d8caae1a811ee83fda7f/docs/src/main/asciidoc/generated

and also squash the commits? Thanks

@geoand
Copy link
Contributor

geoand commented Nov 18, 2019

Hi,

Can you please rebase onto master to pick up a fix for CI?

Thanks

@dufoli
Copy link
Contributor Author

dufoli commented Nov 18, 2019

@geoand I have rebase but I have still an issue of namespace on test. I have try to fix it with

@ ResponseWrapper(targetNamespace = "http://test.deployment.cxf.quarkus.io/"
but it do not worked

@geoand
Copy link
Contributor

geoand commented Nov 18, 2019

@dufoli that seems related to your PR.

The rebase was mostly about some failing security tests

@dufoli
Copy link
Contributor Author

dufoli commented Nov 22, 2019

@dufoli note to myself try to create one class by producer method with same name space than webservice

@dufoli dufoli force-pushed the 4005_cxf branch 3 times, most recently from 5209eea to 8e3eab4 Compare November 22, 2019 17:25
@dufoli
Copy link
Contributor Author

dufoli commented Nov 25, 2019

it seems that we need few files in test project to make it working:
WEB-INF/web.xml
WEB-INF/cxf-servlet.xml
ressource/FruitWebService.wsdl

@dufoli
Copy link
Contributor Author

dufoli commented Nov 25, 2019

locally I have mode impl and SEi (interface) in same folder it fix an issue.

@dufoli dufoli force-pushed the 4005_cxf branch 2 times, most recently from cc601df to 9f43353 Compare November 30, 2019 18:39
@Dufgui
Copy link
Contributor

Dufgui commented Nov 30, 2019

Many thanks lolo :)

@dufoli
Copy link
Contributor Author

dufoli commented Dec 1, 2019

I have error but that I do not understand:

[WARNING]
Dependency convergence error for javax.xml.soap:javax.xml.soap-api:1.4.0 paths to dependency are:
+-io.quarkus:quarkus-cxf:999-SNAPSHOT
+-org.apache.cxf:cxf-rt-frontend-jaxws:3.3.4
+-javax.xml.ws:jaxws-api:2.3.0
+-javax.xml.soap:javax.xml.soap-api:1.4.0
and
+-io.quarkus:quarkus-cxf:999-SNAPSHOT
+-org.apache.cxf:cxf-rt-frontend-jaxws:3.3.4
+-com.sun.xml.messaging.saaj:saaj-impl:1.4.0-b03
+-javax.xml.soap:javax.xml.soap-api:1.4.0-b01

[WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability. See above detailed error message.
[WARNING] Rule 2: org.apache.maven.plugins.enforcer.BannedDependencies failed with message:
Found Banned Dependency: javax.annotation:javax.annotation-api:jar:1.3.2
Found Banned Dependency: javax.activation:activation:jar:1.1
Use 'mvn dependency:tree' to locate the source of the banned dependencies.

@dufoli
Copy link
Contributor Author

dufoli commented Dec 1, 2019

it seems to be a pom issue to remove dependancy but it do not work when I add exclude dependency tag on pom file.

@Dufgui
Copy link
Contributor

Dufgui commented Dec 1, 2019

I don't see it in dependency:tree.

I think I fix it, there:
https://github.com/Dufgui/quarkus/commits/4005_cxf

Dufgui@2e4d00a

You can get it or activate pull request on your repo and i will push it to your repo ;o)

@dufoli
Copy link
Contributor Author

dufoli commented Dec 1, 2019

@Dufgui still failing ;-(

@dufoli dufoli force-pushed the 4005_cxf branch 3 times, most recently from d19765c to eeb638f Compare December 4, 2019 02:01
@dufoli
Copy link
Contributor Author

dufoli commented Dec 4, 2019

I have try to add to extensions/cxf/deployment/pom.xml

  •    <dependency>
    
  •        <groupId>jakarta.jws</groupId>
    
  •        <artifactId>jakarta.jws-api</artifactId>
    
  •        <scope>test</scope>
    
  •    </dependency>
    

but I still get:
The POM for jakarta.jws:jakarta.jws-api:jar:2.1.0 is missing, no dependency information available
@Dufgui any idea? btw other dependencies errors are fixed

@dufoli
Copy link
Contributor Author

dufoli commented Dec 4, 2019

ok I get the issue.
maven central do not have jakarta jsw 2.1.0. it contain only version 1.1.1
jakartaee/jws-api#48
issue is ever open on jakarta jws but it seems not ready for 2.1.0

@dufoli
Copy link
Contributor Author

dufoli commented Dec 4, 2019

@geoand @Dufgui what can we do switch back to javax.jws-api instead of jakarta ?
or we switch to 1.1.1?
I just need it for cxf annotation.

@geoand
Copy link
Contributor

geoand commented Dec 4, 2019

I haven't followed the jakarta stuff much, I just know we aren't going back :). @gsmet any suggestions for the above?

@dufoli dufoli force-pushed the 4005_cxf branch 2 times, most recently from 73daf99 to 3447679 Compare December 12, 2019 07:29
@dufoli
Copy link
Contributor Author

dufoli commented Dec 12, 2019

hello, code need a review now that all tests pass. I have just squash and rebase.

@famod
Copy link
Member

famod commented Mar 15, 2020

@dufoli

For the client, I'd go for JaxWsProxyFactoryBean (see example on the bottom of this page).
It might just work out of the box in Quarkus but I have yet to try it.

@dufoli
Copy link
Contributor Author

dufoli commented Mar 15, 2020

@famod I have added client support quickly. Thanks for the tips, I discover this helper too. When I see your comment It help me to choose the way to do it. Just need to debug it because unit test do not worked.

@dufoli
Copy link
Contributor Author

dufoli commented Mar 16, 2020

@famod if you can test client. It is ready to work. I have not test native for client. But it must be ok.

@Dufgui
Copy link
Contributor

Dufgui commented Mar 16, 2020

The error in the build is from kubernetes. So it's not related to CXF.

KubernetesWithConfigMapCustomModeTest � Runtime java.lang.RuntimeException: io...

@dufoli
Copy link
Contributor Author

dufoli commented Mar 16, 2020

We need a test on integration side.
BTW, if extension stick outside of core repo. I do not know how you can have doc from guide. And extension must be alone in the repo and remove all core part.

*
*/
private void generateCxfClientProducer(BuildProducer<GeneratedBeanBuildItem> generatedBean,
String cxfClientProducerClassName, String endpointAddress, String sei, String wsdlUrl) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does that mean the endpointAddress has to be known at "build time"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@famod crap, ou are absolutly right, I need to change endpointAddress and wsdlUrl to runtime config and pass it to producer thanks to generatedBeanListener... like done on agroal.

@pivovarit
Copy link
Contributor

pivovarit commented Mar 26, 2020

BTW, if extension stick outside of core repo. I do not know how you can have doc from guide.

That's what I'm trying to figure out as well

@geoand
Copy link
Contributor

geoand commented Mar 26, 2020

I think that initially we'll probably have the docs here, right @gsmet @aloubyansky ?

@aloubyansky
Copy link
Member

This is something we should discuss. We could pick up the guides in adoc, for example, as a Maven artifact, github repo or other URL and generate a global guides collection. Just an idea at this point.

@loicmathieu
Copy link
Contributor

@aloubyansky Kogito and Camel documentation are still inside the Quarkus main repository documentation folder. Maybe we can host the documentation of CXF here also. This will be easier to maintain the website.

@dufoli maybe it's a silly proposal but CXF maintain it's Spring integration maybe they will be interesting by hosting the Quarkus extension ?

@aloubyansky
Copy link
Member

@aloubyansky Kogito and Camel documentation are still inside the Quarkus main repository documentation folder. Maybe we can host the documentation of CXF here also. This will be easier to maintain the website.

For now maybe. But, you know, having docs in one repo and the code in another one is not a good recipe.

@loicmathieu
Copy link
Contributor

having docs in one repo and the code in another one is not a good recipe.

I agree, but the site is the way people discover what technologies Quarkus support, and as SOAP support is one of the most wanted extension it must be listed in the website.

@aloubyansky
Copy link
Member

@loicmathieu So we agree it should be listed but the way it's integrated isn't a proper one. The root isssue is that the web site is taking guides from the Quarkus repo, while the extension list and other info from the platform repo. It should be pulling all the data from the platform in some uniform way instead.

@arielcarrera
Copy link

any news about quarkus-cxf-client?

@shireenmagdy
Copy link

shireenmagdy commented Jun 11, 2020

any updates about quarkus-cxf-client?
We are using Quarkus and apache cxf, when we moved from JDK8 to JKD 11, it leads to huge degradation in performance (CPU usage) and getPort() is taking so long time. can anyone help?

@Dufgui
Copy link
Contributor

Dufgui commented Jun 12, 2020

client is supported : #4005 (comment)

But this merge request will not be merged.

Quarkus team change the rule during development (around 3 months, more 100 hours) and don't want it in core repository. They ask us, to publish and maintain it in a separate repo. My brother and me do it to contribute on Quarkus, not to use it, so we don't want to maintain it. So we don't do it, even if code (client and server) works. So if you want it you can take the code and put it in a repository and maintain it. So, sorry, we will not do it.

We propose this code to community without any warranty. So I let you choose the license, but my advice is it to take the same as Quarkus : Apache 2.

Have a nice day

@dufoli
Copy link
Contributor Author

dufoli commented Jun 13, 2020

I totally agree for license. I do not care about it. So feel free to take it and change license to apache 2 or other

@gastaldi gastaldi added the triage/needs-rebase This PR needs to be rebased first because it has merge conflicts label Jul 7, 2020
@xumk
Copy link
Contributor

xumk commented Sep 21, 2020

@geoand
@aloubyansky
@gsmet
@gastaldi
Many people wait SOAP-clent in quarkus extension, because it more important for interpraise. Alas this repo: not listed on the oficail site (https://quarkus.io/). Unfortunately, i can find it only by reading issues. What you came up with for this?

@gastaldi
Copy link
Contributor

@xumk subsequent development will happen on the https://github.com/shumonsharif/quarkus-cxf repository. I'll close this issue to avoid conflicts since the same content is already there.

Thank you!

@gastaldi gastaldi closed this Sep 21, 2020
@gastaldi gastaldi removed the triage/needs-rebase This PR needs to be rebased first because it has merge conflicts label Sep 21, 2020
@loicmathieu
Copy link
Contributor

@gastaldi @gsmet maybe this can be moved to the Quarquiverse ?

@aloubyansky
Copy link
Member

@gastaldi @gsmet maybe this can be moved to the Quarquiverse ?

@xumk you might not be aware but we are setting up an org to host community contributed extensions https://github.com/quarkiverse
We haven't officially announced it yet, simply because we are still figuring a few things out. But we've already created a repo for @loicmathieu's Google Cloud Services extensions. We are offering io.quarkiverse. prefix for the groupIds among other things.
If you like, I can create a repo for you in that org as well, just let me know.
OTOH, if you prefer hosting your project in your own org there is not problem with that. We are working on tools to integrate extensions developed outside of the Quarkus repo (and platform) into the catalog that you see on code.quarkus.io (and our command line tools).
Let us know what you prefer and/or in case you have further questions. Thanks!

@xumk
Copy link
Contributor

xumk commented Sep 24, 2020

@aloubyansky I think will be better add guide like a camel guide
Because where wil hosting its extension is not important. Important to have a possibility find its by keywords: "quarkus soap / quarkus soap client" in google or yours site

@gastaldi @loicmathieu what are you think about this?

@aloubyansky
Copy link
Member

@xumk that's ok. We want to support external repos too. If that's OK for you, we'll want to setup a few github actions in your repo to test compatibility with new Quarkus versions automatically to keep the catalog of extensions up-to-date. This is something we are figuring out atm. I'll ping you when I have news for you.

@gsmet gsmet added the triage/invalid This doesn't seem right label Oct 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/core area/dependencies Pull requests that update a dependency file area/documentation area/infra-automation anything related to CI, bots, etc. that are used to automated our infrastructure area/jaxb release/noteworthy-feature triage/invalid This doesn't seem right
Projects
None yet
Development

Successfully merging this pull request may close these issues.