Bug 267827 - Usage of internal API
Summary: Usage of internal API
Status: CLOSED MOVED
Alias: None
Product: Subversive
Classification: Technology
Component: UI (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Igor Burilo CLA
QA Contact:
URL:
Whiteboard:
Keywords: api
Depends on: 116084
Blocks:
  Show dependency tree
 
Reported: 2009-03-10 07:17 EDT by Igor Burilo CLA
Modified: 2023-02-13 10:53 EST (History)
2 users (show)

See Also:


Attachments
API Tooling Report for Helios (135.38 KB, application/octet-stream)
2010-06-07 06:37 EDT, Igor Burilo CLA
no flags Details
API Tooling Report for Indigo (132.68 KB, application/octet-stream)
2011-01-31 04:16 EST, Alexander Gurov CLA
no flags Details
API Tooling Report for Juno (134.17 KB, application/octet-stream)
2012-05-30 04:39 EDT, Alexander Gurov CLA
no flags Details
API Tooling Report for Kepler (135.77 KB, application/octet-stream)
2013-02-03 03:37 EST, Alexander Gurov CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Igor Burilo CLA 2009-03-10 07:17:37 EDT
According to Development/API requirement of Galileo Simultaneous Release (https://bugs.eclipse.org/bugs/show_bug.cgi?id=252794) I verified Subversive code and found following usage of Team internal API.
I grouped API usage problems into two categories: change sets(most change sets API is internal) and other. (As a reference usage of team API we used CVS, which also uses team internal API.)

- change sets:
    implements non-API interface IChangeSetProvider
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/synchronize/AbstractSVNParticipant.java
    Support change sets in synchronize participant
                    
    has non-API return type ChangeSetCapability
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/synchronize/AbstractSVNParticipant.java
    Support change sets capability in synchronize participant

    implements non-API interface ITraversalFactory
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/mapping/ChangeSetCompareAdapter.java
    Comparing for change sets     
           
    Constructor with non-API parameter type ActiveChangeSet
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/panel/local/CommitSetPanel.java        
    Support of local resource changes
    
    Constructor with non-API parameter type ActiveChangeSetManager
    Used in: org.eclipse.team.svn.core/src/org/eclipse/team/svn/core/mapping/SVNActiveChangeSet.java
    Support of local resource changes
        
    Constructor with non-API parameter type ChangeSet
    Used in: org.eclipse.team.svn.core/src/org/eclipse/team/svn/core/mapping/SVNChangeSetResourceMapping.java
    
    extends non-API type SubscriberChangeSetManager	
    Used in: org.eclipse.team.svn.core/src/org/eclipse/team/svn/core/mapping/SVNActiveChangeSetCollector.java
    Manage the active change sets associated with a subscriber

    extends non-API type ResourceModelActionProvider
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/mapping/SVNChangeSetActionProvider.java

    has non-API return type SyncInfoSetChangeSetCollector
    Used in	org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/synchronize/SVNChangeSetCapability.java
          
    extends non-API type ResourceModelContentProvider
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/mapping/SVNChangeSetContentProvider.java
            
    has non-API return type DiffChangeSet
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/mappinng/SVNChangeSetContentProvider.java       

    extends non-API type ResourceModelLabelProvider
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/mapping/SVNChangeSetLabelProvider.java            
            
    extends non-API type ResourceModelSorter
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/mapping/SVNChangeSetSorter.java
    sorting change sets
                
    extends non-API type CheckedInChangeSet
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/synchronize/SVNChangeSetCollector.java        
    
- other:
    
    extends non-API type TeamAction
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/action/AbstractSVNTeamAction.java
    Team actions support
    
    extends non-API type ResourceModelParticipantAction
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/synchronize/action/AbstractSynchronizeLogicalModelAction.java
    Model provider actions support

    extends non-API type LocalFileRevision
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/history/data/SVNLocalFileRevision.java
    Wrap local files in order to display them in the History View
    
    declared as non-API type GlobalRefreshElementSelectionPage
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/wizard/SynchronizeWizard.java
    Used by synchronize wizard        

    illegally extends DiffTreeViewer
    Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/compare/ResourceCompareInput.java
    Used during comparing        
            
    illegally extends PersistantResourceVariantByteStore
    Used in: org.eclipse.team.svn.core/src/org/eclipse/team/svn/core/synchronize/PersistentRemoteStatusCache.java
    Using of persistent remote status cache
    (Need to investigate if I can avoid extending it)
Comment 1 Tomasz Zarna CLA 2009-03-10 07:33:00 EDT
(In reply to comment #0)
> illegally extends DiffTreeViewer
> Used in:
> org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/compare/ResourceCompareInput.java
> Used during comparing

See bug 258907.

Anyway, the bug looks more like a Subversive issue to me.
Comment 2 Tomasz Zarna CLA 2009-03-10 07:46:38 EDT
(In reply to comment #0)
> - change sets:
> implements non-API interface IChangeSetProvider
> Used in:
> org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/synchronize/AbstractSVNParticipant.java
> Support change sets in synchronize participant
> 
> has non-API return type ChangeSetCapability
> Used in:
> org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/synchronize/AbstractSVNParticipant.java
> Support change sets capability in synchronize participant

See bug 116084.

Igor, I would suggest to mark the bugs above as blockers to this one, what do you think?
Comment 3 Igor Burilo CLA 2009-03-12 07:48:37 EDT
Tomasz, thanks for provided comments, I just added dependency to bugs.
Comment 4 Jörg Thönnes CLA 2009-03-12 09:16:29 EDT
Igor, I would like to recommend you to vote on all relevant Eclipse core bugs. I will do so to support you efforts.
Put me on Cc: in this case.

Thanks, Jörg
Comment 5 Igor Burilo CLA 2010-03-15 07:39:13 EDT
Review API usage problems for Helios Simultaneous release. Group problems in categories:

- provisional API: (Starting from Helios M6 used provisional API became public. But for compatibility reasons in order to allow our functionality to work on pre Helios M6 we also leave usage of internal provisional API):

Discouraged access: The constructor Collector() is not accessible due to restriction on required library 
org.eclipse.equinox.p2.core_1.0.100.v20090520-1905.jar
Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/discovery/PrepareInstallProfileJob_3_5.java

Discouraged access: The constructor PlannerResolutionOperation(String, String, ProfileChangeRequest, ProvisioningContext, MultiStatus, boolean) is not accessible due to restriction on required library
org.eclipse.equinox.p2.ui_1.0.100.v20090527-1812.jar
Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/discovery/PrepareInstallProfileJob_3_5.java

Discouraged access: The constructor PreselectedIUInstallWizard(Policy, String, IInstallableUnit[], PlannerResolutionOperation, QueryableMetadataRepositoryManager) is not accessible due to restriction on required library
org.eclipse.equinox.p2.ui_1.0.100.v20090527-1812.jar 
Used in : org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/discovery/PrepareInstallProfileJob_3_5.java

Discouraged access: The constructor ProvisioningWizardDialog(Shell, ProvisioningOperationWizard) is not accessible due to restriction on required library
org.eclipse.equinox.p2.ui_1.0.100.v20090527-1812.jar
Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/discovery/PrepareInstallProfileJob_3_5.java

Discouraged access: The constructor QueryableMetadataRepositoryManager(IUViewQueryContext, boolean) is not accessible due to restriction on required library 
org.eclipse.equinox.p2.ui_1.0.100.v20090527-1812.jar	
Used in: org.eclipse.team.svn.ui/src/org/eclipse/team/svn/ui/discovery/PrepareInstallProfileJob_3_5.java

Discouraged access: The constructor ExtensionRegistry(RegistryStrategy, Object, Object) is not accessible due to restriction on required library 
org.eclipse.equinox.registry_3.4.100.v20090520-1800.jar
Used in: org.eclipse.team.svn.core/src/org/eclipse/team/svn/core/discovery/model/RemoteBundleDiscoveryStrategy.java



- other:

Discouraged access: The constructor UniversalUniqueIdentifier() is not accessible due to restriction on required library 
org.eclipse.core.resources_3.5.0.v20090512.jar
Used in: org.eclipse.team.svn.core/src/org/eclipse/team/svn/core/svnstorage/AbstractSVNStorage.java

Discouraged access: The method decode(byte[]) from the type Base64 is not accessible due to restriction on required library 
org.eclipse.equinox.preferences_3.2.300.v20090520-1800.jar
Used in: org.eclipse.team.svn.core/src/org/eclipse/team/svn/core/svnstorage/AbstractSVNStorage.java
Comment 6 Igor Burilo CLA 2010-06-07 06:37:53 EDT
Created attachment 171246 [details]
API Tooling Report for Helios

Attach generated html API Tooling Report for Helios
Comment 7 Alexander Gurov CLA 2011-01-31 04:16:59 EST
Created attachment 187932 [details]
API Tooling Report for Indigo
Comment 8 Alexander Gurov CLA 2012-05-30 04:39:18 EDT
Created attachment 216455 [details]
API Tooling Report for Juno
Comment 9 Alexander Gurov CLA 2013-02-03 03:37:36 EST
Created attachment 226476 [details]
API Tooling Report for Kepler
Comment 10 Eclipse Webmaster CLA 2023-02-13 10:53:27 EST
This issue has been migrated to https://gitlab.eclipse.org/eclipse/subversive/subversive/-/issues/31.