-
Notifications
You must be signed in to change notification settings - Fork 397
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
Migration to Jakarta EE #1795
base: master
Are you sure you want to change the base?
Migration to Jakarta EE #1795
Conversation
Note that the *.target is generated. Making it correct by hand is kind of challenging because you might well remove things that are needed not directly by BIRT but by BIRT's dependencies. Using the tool bar button to run this specific task will update the target platform: The dependencies you are changing are particular complex and error prone because of the Platform's and WTP's dependencies on related things. There's also a launch configuration for running the build locally: That might help you iterate more quickly... I'll try to find some time ASAP to check out your changes and see if I can help get the build workings (mostly getting the target platform correct) but I have to go out until mid afternoon. |
When I do resolve the modular target platform there are a fair number of errors in my workspace: BTW, I assume you've set up the environment using the setup: https://github.com/eclipse-birt/birt#create-a-birt-development-environment It's hard to help if we don't have the same development configuration... |
If there's something I can do to help, please let me know. |
Thanks a lot for all, Ed. |
FYI, I looked at axis2 here: https://repo1.maven.org/maven2/org/apache/axis2/ There's a lot of stuff there! I looked particularly at this too: https://repo1.maven.org/maven2/org/apache/axis2/org.apache.axis2.osgi/ But there are a lot of dependencies (package imports) to track down to make that bundle happy. Do you already have a sense of which artifacts will be needed in the end? |
All published Axis2 artifacts are focused to old-style Java EE (<= 8 )and not compatible with Jakarta EE (>= 9.1). Support of Jakarta EE will be added only with this ticket. Only one component of BiRT (Web Viewer) uses Axis 2 and needs its migration to Jakarta EE. Necessary steps for closing this ticket:
But for BiRT users, who do not use Web Viewer, migration BiRT to Jakarta EE is already possible. In my projects BiRT can be used with changes already done in this ticket. |
Abstract: This is lengthy. The main point here is: If Axis2 and Jakarta EE is such a burden, should we think about throwing it away and replace it with a more modern approach? From a bird (or BIRT user's) perspective, I'm wondering why a program like BIRT needs an XML WebService Framework like Axis2 at all? I took a look at the code and searched for org.apache.axis in *.java files. What exactly is the Web Viewer (I really don't know)? Is it what I can call from the BIRT designer here: Is it also related to the example servlet that ends up in The technology stack used by the Web Viewer ATM is about 25 years old (XML, JSP, TLD, Servlets etc) and I fear that in a few years only senior citizens (senior developers ;-) will be able to halfway understand and hardly maintain the code. Looking at the Java code in Web Viewer where Axis is used, about 99% of it is auto-generated from some WSDLs. From a security POV it seems dangerous at first glance that there is such a lot of deserialization, for example files like Worst of all: Where is that WSDL? I don't find any *.wdsl find when I look at the BIRT repo. The non-existence of the WSDL means that that the XML serde is an undocumented implementation detail, there is no public API for the web viewer except the URL parameters. In summary, it may make more sense to analyze what the web viewer is actually needed for, Personally, I'm not using things like a parameter entry dialog (or a browser-interface at all) at runtime. What is needed is the ability to run the report directly from the BIRT designer with different parameters. But for that purpose, from my POV, it would also suffice to have something similar to the "run configurations" that we have in Eclipse eg for Java command-line programs: Maybe some BIRT users already have already developed something like that? Features like "page navigation" and "export to (different format)" are certainly important for some users. Creating a JSON API and implementation would probably take 1-2 weeks of work for someone who is familiar with this kind of development and can ask some BIRT developer for help regarding the RE API. To summarize, I guess this would take ~ 15 days of work without interactive mode and 25-30 days of work including interactive mode. On the positive side, this would
|
+10 Eliminating axis entirely would be a great way to nip future cve problems in the bud. |
BTW I looked at what would be the possible frameworks to implement a REST API with Java which could be used in conjunction with HTML/CSS/JS as a replacement for the Web Viewer. I really don't have any experience with REST programming in Java (and only very limited experience with REST programming in other languages), but to me it seems that there are basically two fashions: JAX-RS or Spring Boot. This doesn't change anything about the fact that it would mean quite a lot of work and would be a breaking change. |
@bvfalcon I see javax used in core also. |
I can't really help, but to me it seems that the class |
Is this ship still sailing? |
Sure. Still waiting for relevant Axis2 changes (see link in first comment) |
Hello, we need to migrate to Jakarta to have BIRT work with wildfly 27. This branch would be excellent if it weren't for the viewer issues with Axis2. Any instructions/suggestions on how to remove/delete the viewer components that call these up quickly and effectively? |
@JL-Wick |
For those interested, I made a "proof-of-concept" migration from AXIS/SOAP (and javax.) to JSON-RPC. The viewer works but there are known problems, and there is a lot of clean-up to be done. I really tried to limit the changes to the existing code and the Javascript code still uses old stuff. Like prototype.js The code is available here: soap-be-gone |
@claesrosell Sounds very cool. Let me know if you need support of it or may be I can assist you partially. |
Solves #1172
TODO: BiRT Viewer can be migrated after Axis2 migration will be completed