[ https://issues.apache.org/jira/browse/FELIX-4785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14313420#comment-14313420 ]
David Jencks commented on FELIX-4785: ------------------------------------- >>Now, in addition, it seems 1.8.2 has some bugs that are fixed in 2.0.0 - (it >>seems there are cases where a change to a factory config is not causing a >>reactivation of the component); so again updating to get just that fix is not >>possible. The spec behavior is clearly wrong and caused by failure to notice that a section needed to be updated for 1.1, but apparently we could only have the correct behavior in 1.3 specced components. No one has objected in practice to the correct but non-spec behavior that the last couple of releases have had. If someone does we could release a 1.8.4 with just that fix. Actually from your note it almost sounds like you would be ok with releasing 1.8.4 based on our last release with this wrong spec-required behavior present and the old api deprecated, and of course without any 1.3 features, and then as soon as the spec is finalized releasing current trunk as 2.0.0. Since spec approval is still some months off, we could do this easily and it would give users several months of warning. If you or someone wants to provide an additional bundle or fragment implementing the old api in terms of DTOs I won't object as long as the current behavior of the main bundle classes doesn't change. The two Items I am totally against breaking to provide alleged compatible old behavior are: 1. The operations in the old api operate on the ComponentConfigurationDTO layer whereas the operations in the spec api operate on the ComponentDescriptionDTO layer. Providing operations that operate on the ComponentConfigurationDTO layer is not acceptable, it cannot be made consistent with the spec API. 2. The component objects in the old api basically correspond to ComponentConfigurationDTOs. However, since there is no ComponentConfigurationDTO, a bogus ComponentConfigurationDTO-like-object is provided whenever there is no actual ComponentConfigurationDTO, to represent the ComponentDescriptionDTO. This is why a reimplementation of the old api needs to use objects independent of the runtime classes (e.g. SingleComponentManager which more or less corresponds to a ComponentDescriptionDTO). We can't add a bogus ComponentManager in to represent the missing object modeling the ComponentDescriptionDTO. However, I'd be ok with an entirely new set of objects backing the old api, where the "always present" component is constructed based on either the ComponentDescriptionDTO (if there are no ComponentConfigurationDTOs) or the "first" ComponentConfigurationDTO. > Incompatible SCR API > -------------------- > > Key: FELIX-4785 > URL: https://issues.apache.org/jira/browse/FELIX-4785 > Project: Felix > Issue Type: Bug > Affects Versions: scr-2.0.0 > Reporter: Carsten Ziegeler > Assignee: Carsten Ziegeler > Fix For: scr-2.0.0 > > > Current trunk contains version 2.0.0 of the org.apache.felix.scr API package. > While this is a logical step, this makes the new implementation unusable as a > drop-in replacement into existing installations which might use the 1.x > version of that API. > I think we should go a more moderate way, leave the 1.x version in but > deprecate it and also provide the replacement API (if any). Then in one of > the further versions along the road, we can remove the API. This gives our > users a chance to migrate slowly -- This message was sent by Atlassian JIRA (v6.3.4#6332)