Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 352729

Summary: Export internal packages and mark them as x-internal:=true
Product: [Modeling] EMFCompare Reporter: Victor Roldan Betancort <vroldanbet>
Component: CoreAssignee: EMF Compare <emf.compare-inbox>
Status: CLOSED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: laurent.goubet, vroldanbet
Version: 1.2   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
patch v1 laurent.goubet: iplog+, laurent.goubet: review-

Description Victor Roldan Betancort CLA 2011-07-21 07:52:17 EDT
When trying to extend EMF Compare framework, one finds that many internal packages are not exported. This is kind of a show stopper of us extenders, and slows down API evolution toward user needs.

A nice approach to let users play with internal stuff, but make them aware that it should be done "at their own risk" is to export packages and mark them as internal using the OSGi directive x-internal:=true

I propose to export all the framework's internal packages and mark them as internal.

x-friends directive should be used instead when some bundle is using an internal package of another bundle withing the framework (to avoid PDE warnings / compilation errors)
Comment 1 Victor Roldan Betancort CLA 2011-07-21 07:53:37 EDT
Patch against HEAD will be provided ASAP
Comment 2 Victor Roldan Betancort CLA 2011-07-21 08:29:13 EDT
Created attachment 200082 [details]
patch v1

exported internal packages and marked as internal:
- org.eclipse.emf.compare.match
- org.eclipse.emf.compare.diff

I've checked other bundles, and it doesn't seem to be necessary to export.
What I haven't checked are the bundles from epatch and mpatch. If you guys want, I can check those too and provide another patch.

Cheers,
VĂ­ctor.
Comment 3 Laurent Goubet CLA 2011-07-21 11:33:22 EDT
Comment on attachment 200082 [details]
patch v1

The patche was missing the x-internal directive on one of the internal packages, making it public.
Comment 4 Laurent Goubet CLA 2011-07-21 11:33:34 EDT
I have commited a modified version with all "internal" packages marked as such, as exporting two "public" packages I forgot from the UI.
Comment 5 Victor Roldan Betancort CLA 2011-07-21 11:35:50 EDT
(In reply to comment #4)
> I have commited a modified version with all "internal" packages marked as such,
> as exporting two "public" packages I forgot from the UI.

Yeah, I left those intentionally public because I couldn't see the *internal* word in the namespace, so I assumed those where maybe forgotten or something. Thanks!
Comment 6 Victor Roldan Betancort CLA 2011-07-21 11:40:39 EDT
Oh, I see, that's right, I missed one! :P