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

Remove UI dependencies from org.eclipse.birt.osgi.runtime #1834

Conversation

merks
Copy link
Contributor

@merks merks commented Aug 4, 2024

  • Remove org.eclipse.birt.report.viewer and org.eclipse.birt.data.oda.mongodb.ui from org.eclipse.birt.osgi.runtime
    feature.
  • Simplify test dependency configuration.
  • The org.junit dependencies aren't optional and non-test bundles should not have such a dependency, even an optional one.

- Remove org.eclipse.birt.report.viewer and
org.eclipse.birt.data.oda.mongodb.ui from org.eclipse.birt.osgi.runtime
 feature.
- Simplify test dependency configuration.
- The org.junit dependencies aren't optional and non-test bundles should
not have such a dependency, even an optional one.
@merks merks self-assigned this Aug 4, 2024
@merks merks merged commit b1c417f into eclipse-birt:master Aug 4, 2024
3 checks passed
@merks merks deleted the pr-org.eclipse.birt.osgi.runtime-no-ui-dependency branch August 4, 2024 20:54
@speckyspooky
Copy link
Contributor

I have tested the latest build of OSGi with with Tomcat 9.0.88 MS Windows JDK 17.
It seems that we have a small issue because the BIRT-viewer is not runable.
We had this topic already in our short history. But I don't know if it is the same issue or whether this has to to with your dependency changes.

05-Aug-2024 07:32:09.532 SCHWERWIEGEND [http-nio-8080-exec-5] org.apache.catalina.core.StandardContext.listenerStart Fehler beim Senden der 'Context Initialized' Benachrichtigung an den Listener aus der Klasse [org.eclipse.birt.report.listener.ViewerServletContextListener]
java.lang.NoClassDefFoundError: org/apache/axis/AxisFault

localhost.2024-08-05.zip

@merks
Copy link
Contributor Author

merks commented Aug 5, 2024

The org.eclipse.birt.osgi.runtime feature has nothing to do with the the two runtime zips that are produced, despite the name suggesting otherwise. The runtime contents are defined by this product's features:

image

That being said, I assume the UI dependencies mean this only functions in the UI.

image

The stack trace suggests it trying to load this load this class by name, though goodness knows why it don't just use the class directly:

image

In any case it appears axis is missing. but it's explicitly required:

image

The axis bundle is not present in the runtime, but I believe this from previous cleanups. Is this the first you've tested since the reduced the runtime content?

@merks
Copy link
Contributor Author

merks commented Aug 5, 2024

These are the only references I find to org.apache.axis, so it's not in the runtime because nothing else in the runtime requires it

image

I think this is the state after the change I did 3 weeks ago.

So two issue:

  • Maybe the viewer should remain in the runtime feature (not to be confused with the two other runtimes), but then I think the ui dependencies should all be optional if it's possible to use this without necessarily dragging in the entire Eclipse UI. Though I suppose you're using it with a flat classpath here so the OSGi dependencies are just ignore and hopefully/actually none of the UI classes need to actually be loaded...
  • The org.apache.axis bundle is needed in the 2 runtimes.

That makes me wonder about the purpose of this thing:

image

It's not in the 2 runtimes either.

@speckyspooky
Copy link
Contributor

You have written "...org.apache.axis,..because nothing else in the runtime requires it...".
But the BIRT-viewer requires the axis from technical side to be runnable.
I do not know why this isn't referenced directly.

@merks
Copy link
Contributor Author

merks commented Aug 5, 2024

What's not clear to me is where in the runtime zips the viewer itself is located.

In any case, as I mentioned, the runtime content is defined purely by the org.eclipse.birt.engine.runtime product's included features. The viewer is not part of that.

It's important to observe again that anything that isn't tested isn't guaranteed to keep working so some type of test would be of significant value here. I have no idea how to test what you are testing...

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

Successfully merging this pull request may close these issues.

2 participants