-
Notifications
You must be signed in to change notification settings - Fork 207
Alternative surrogate bundle implementation for com.sun.jna #2903
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
base: master
Are you sure you want to change the base?
Conversation
5ec40d6
to
ab387ee
Compare
This pull request changes some projects for the first time in this development cycle.
An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch. Git patch
Further information are available in Common Build Issues - Missing version increments. |
Test Results0 tests 0 ✅ 0s ⏱️ Results for commit a62bb7d. ♻️ This comment has been updated with latest results. |
I'm literally baffled what problem is being solved and how this actually solves that problem. Searching the workspace for The one bundle that's been changed to use package imports still appears to bind to the existing real bundles in the workspace: What is the basis for the package versions in the surrogate? Why does it have requirements on jface and swt? Indeed I thing it's really bad to use com.sun in the namespace of the bundle and to make the vendor someone else... But, as I said, I don't see what problem this is solving. If something is going to function when the things in the required packages are missing, i.e., the actual imported classes we see in the *.java files, that could (and should) be handled by making the package import optional. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think "we" should push a new bundle into the code base to solve a problem that we don't have on the Platform's officially supported architectures. It's fine to switch dependencies to package imports versus bundle imports, but an alternative bundle for whatever purpose it's needed outside of our supported architectures should not be the common code base.
I fully agree with both statements. It would be better if you keep such a workaround in your own code, where you build the Eclipse based products from. |
The bundle in question i.e., urischeme is binding to the real com.sun.jna bundle in windows because its full implementation is available on windows. This will bind to the surrogate where the implementation is unavailable.
In platforms such as windows, where both the packages will be available, we need the package with higher version to be resolved. Where as in platforms where only surrogate is available, we need a version that matches with import package versions of consuming bundles. This is our package versioning strategy. Please suggest if you have better solution.
We created a template bundle using pde. I'll make an empty bundle with no dependencies.
Agree, we'll follow the eclipse package naming convention.
Thanks for the suggestion we are trying that and hence kept it in as draft.
I searched but could not find the officially supported platforms link, would you be able to share the link please.
We were trying to implement suggestion given by laeubi as recommended in -> #2894 (reply in thread) |
1de8363
to
0403d8d
Compare
0403d8d
to
a62bb7d
Compare
I think I just need to be really blunt up front. I am 100% opposed to introducing a new fake bundle. This introduces yet another split package which causes so many problems we should avoid it all costs. I really, really think we should not go down this dark path. You still fail to explain (and probably haven't tested) how all these places will function when they bind to the empty placeholder that does not provide the classes being imported and used: Moreover, you fail to explain how p2 will decide/choose which thing to install? Probably both because they're split packages and then OSGi will need to decide how to link these, which you recognize is a problem, in fact a problem on all platforms. As such, you are creating new problems to solve problems that don't exist on our supported platforms. This is just not a good path... Again, sorry for being so blunt... |
As suggested from #2894 (reply in thread)
This pr is result of attempt for the suggested -> option 2
Also I think the surrogate name may be org.eclipse.ui.jnasurrogate , as opposed to com.sun.jna.surrogate - so that the naming convention in the project is maintained.