[jbosstools-issues] [JBoss JIRA] (JBIDE-15368) jbosstools-server has API Compatibility problem

Rob Stryker (JIRA) jira-events at lists.jboss.org
Wed Sep 4 03:31:03 EDT 2013


    [ https://issues.jboss.org/browse/JBIDE-15368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12801405#comment-12801405 ] 

Rob Stryker commented on JBIDE-15368:
-------------------------------------

IJBossToolingConstants is not truly intended to be implemented by clients, however, it contains a very very large number of constants, and some clients do implement it for convenience. To fix this specific issue, we will need to add @noimplement to IJBossToolingConstants and allow the warnings to propagate. Problem is this will make dev environment fail to compile. 
                
> jbosstools-server has API Compatibility problem
> -----------------------------------------------
>
>                 Key: JBIDE-15368
>                 URL: https://issues.jboss.org/browse/JBIDE-15368
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 4.1.1.Alpha1
>            Reporter: Denis Golovin
>            Priority: Blocker
>              Labels: api-compatibility
>             Fix For: 4.1.1.Alpha1
>
>
> Latest version from jbosstools-server/jbosstools-4.1.x branch has API Compatibility problem:
> "The field org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants.WILDFLY8_MANAGEMENT_PORT_DEFAULT_PORT in an interface that is intended to be implemented or extended has been added".
> According to http://wiki.eclipse.org/Evolving_Java-based_APIs_2
> || Interface change || Conditions || Compatibility ||
> |Add API field|If interface not implementable by Clients	| Binary compatible|
> |Add API field|If interface implementable by Clients| Breaks compatibility (2)|
> (2) Adding an API field to an API interface that is implemented by Clients (e.g., a callback, listener, or visitor interface) breaks binary compatibility in a different way. A field added to a superinterface of C may hide an instance field inherited from a superclass of C, causing linking errors to be detected. Because of this fact, it is important to distinguish between API interfaces that Clients should implement from those that Clients should merely use. API interfaces that Clients should implement should not include fields.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbosstools-issues mailing list