Hi, team,
Once again, there is a compilation error in the master
branch of this kind:
The type org.eclipse.emf.edit.domain.EditingDomain cannot
be resolved. It is indirectly referenced from required .class
files
This is occurring because a class in the oep.infra.onefile
plug-in calls an API (the DependencyManagementHelper) in the
oep.infra.emf that has now added an indirect dependency on API
from org.eclipse.emf.edit, which the oep.infra.onefile bundle
does not import. The dependent bundle has no changes but now
fails to compile because of unrelated changes in its
dependency.
This would not have been a problem if the oep.infra.emf
bundle had re-exported the org.eclipse.emf.edit which
contributes to the API signatures that it exports, itself.
That is the purpose of re-export.
So, I have some questions:
- why do we have a policy against dependency
re-exports? (we even have a JUnit test, currently
disabled, that would enforce it)
- can we revisit that policy?
- why does this compilation error not break
the nightly build?
Personally, I find it wrong that an error
like this has to be fixed by updating the oep.infra.onefile
bundle to add a new dependency because now the oep.infra.emf
bundle has added types to its exported API that the former
doesn’t even use.
Thanks,
Christian