[jira] Commented: (FELIX-2450) ServiceFactory.getService() resulted in a cycle.

2010-07-30 Thread Carsten Ziegeler (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893995#action_12893995
 ] 

Carsten Ziegeler commented on FELIX-2450:
-

I think this works in Spring DM as Spring first instantiates the services and 
then binds them.

If you want to have the same effect, you can declare both references as 
optional, so changing the first one to



should do the trick. 

> ServiceFactory.getService() resulted in a cycle.
> 
>
> Key: FELIX-2450
> URL: https://issues.apache.org/jira/browse/FELIX-2450
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR)
>Affects Versions:  scr-1.4.0
> Environment: Linux bono 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 
> 22:02:19 UTC 2010 i686 GNU/Linux
> java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
>Reporter: Martin Zdila
>
> I am using 1.4.1.SNAPSHOT-r951313.
> Component "Item":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>policy="dynamic"/>
>   
>   
>   
> 
> Component "ItemRegister":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>unbind="removeItem" cardinality="0..n" policy="dynamic"/>
>   
>   
>   
> 
> Both components reside in the same bundle. On bundle startup I am getting:
> java.lang.IllegalStateException: ServiceFactory.getService() resulted in a 
> cycle.
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:249)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:436)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:550)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$NotResolved.invoke(BaseMethod.java:508)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:442)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1028)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.bind(DependencyManager.java:944)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.open(DependencyManager.java:868)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:200)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:118)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.createRealComponent(DelayedComponentManager.java:95)
>   at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Registered.getService(AbstractComponentManager.java:1120)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.getService(DelayedComponentManager.java:88)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:307)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:221)
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:295)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:436)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>   at 
> org.apache.felix.scr.impl.helper.Base

[jira] Commented: (FELIX-2450) ServiceFactory.getService() resulted in a cycle.

2010-07-30 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893989#action_12893989
 ] 

Felix Meschberger commented on FELIX-2450:
--

Glad to hear, you got it working - and I agree that it is not "nice" as a 
workaround.

On the other hand: if you have a registry and you know that with 99% security 
this registry will be instantiated during system startup anyway, it is not much 
of a problem to have it immediate (thus even saving a few bytes and overall a 
bit of performance)

For now, I thus just keep this issue open until someone passes by with a clever 
patch fixing it (or me having such an idea).

> ServiceFactory.getService() resulted in a cycle.
> 
>
> Key: FELIX-2450
> URL: https://issues.apache.org/jira/browse/FELIX-2450
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR)
>Affects Versions:  scr-1.4.0
> Environment: Linux bono 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 
> 22:02:19 UTC 2010 i686 GNU/Linux
> java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
>Reporter: Martin Zdila
>
> I am using 1.4.1.SNAPSHOT-r951313.
> Component "Item":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>policy="dynamic"/>
>   
>   
>   
> 
> Component "ItemRegister":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>unbind="removeItem" cardinality="0..n" policy="dynamic"/>
>   
>   
>   
> 
> Both components reside in the same bundle. On bundle startup I am getting:
> java.lang.IllegalStateException: ServiceFactory.getService() resulted in a 
> cycle.
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:249)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:436)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:550)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$NotResolved.invoke(BaseMethod.java:508)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:442)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1028)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.bind(DependencyManager.java:944)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.open(DependencyManager.java:868)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:200)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:118)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.createRealComponent(DelayedComponentManager.java:95)
>   at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Registered.getService(AbstractComponentManager.java:1120)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.getService(DelayedComponentManager.java:88)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:307)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:221)
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:295)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.

[jira] Commented: (FELIX-2450) ServiceFactory.getService() resulted in a cycle.

2010-07-03 Thread Martin Zdila (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12884897#action_12884897
 ] 

Martin Zdila commented on FELIX-2450:
-

This workaround works: "ItemRegister" component must have immediate="true" and 
must be processed before "Item" component.

This is still only a workaround because it should also work without this two 
constraints.


> ServiceFactory.getService() resulted in a cycle.
> 
>
> Key: FELIX-2450
> URL: https://issues.apache.org/jira/browse/FELIX-2450
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR)
>Affects Versions:  scr-1.4.0
> Environment: Linux bono 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 
> 22:02:19 UTC 2010 i686 GNU/Linux
> java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
>Reporter: Martin Zdila
>
> I am using 1.4.1.SNAPSHOT-r951313.
> Component "Item":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>policy="dynamic"/>
>   
>   
>   
> 
> Component "ItemRegister":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>unbind="removeItem" cardinality="0..n" policy="dynamic"/>
>   
>   
>   
> 
> Both components reside in the same bundle. On bundle startup I am getting:
> java.lang.IllegalStateException: ServiceFactory.getService() resulted in a 
> cycle.
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:249)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:436)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:550)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$NotResolved.invoke(BaseMethod.java:508)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:442)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1028)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.bind(DependencyManager.java:944)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.open(DependencyManager.java:868)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:200)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:118)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.createRealComponent(DelayedComponentManager.java:95)
>   at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Registered.getService(AbstractComponentManager.java:1120)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.getService(DelayedComponentManager.java:88)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:307)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:221)
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:295)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:436)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(Bas

[jira] Commented: (FELIX-2450) ServiceFactory.getService() resulted in a cycle.

2010-06-25 Thread Martin Zdila (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882687#action_12882687
 ] 

Martin Zdila commented on FELIX-2450:
-

> Cycles are problematic in itself: I tend to think of cycles as design issues 
> (not to say bugs).

In some cases they are required. The solution to our problem I see is not any 
special. SCR should create the ItemRegister and activate it. Then it should 
create the Item, inject ItemRegister to it, activate it and simultaneously add 
this new Item to ItemRegister. And, if the dependencies are currently solveable 
manually by scr disabling/enabling the componet, then it must be possible to do 
it automatically too ;-).

> Nevertheless, there is an easy solution for you to be able to work around the 
> problem in this case, in that you declare one of the components (guessing 
> from the name, this would be the "MyItemRegisterImpl" component) to be 
> "immediate".

I had tried this solution too but without any success. On Monday I will try it 
again plus with some other combinations.

> I wonder why you have the cycle here anyway: Why don't you inject the 
> ItemRegister into the Item at the time time Item is bound to the ItemRegister 
> ?

Because not every implementation of the Item needs to have ItemRegister. In our 
case only one. I provided just a simple model. Our real scenario looks like 
this:

- interface Enumerable with method String[] getItems()
- there are many services implementing this Enumerable interface, like 
UsersEnumerable, RolesEnumerable, ReportsEnumerable, DevicesEnumerable, ...
- there is also EnumerablesEnumerable that provides list of all enumerable 
types, including itself (getItems will return {"users", "roles", "reports", 
"devices", ..., "enumerables").
- EnumerablesRegister collects all the services implementing Enumerable 
interface, (UsersEnumerable, ...,  EnumerablesEnumerable)
- implementation of EnumerablesEnumerable must have reference to 
EnumerablesRegister to enumerate all the types (as mentioned in third point)

Before we were using Spring DM (blueprint like solution) and there it was 
working. But we decided to migrate to SCR for better control, hate of waiting 
on timeouts, hate of proxies...

> ServiceFactory.getService() resulted in a cycle.
> 
>
> Key: FELIX-2450
> URL: https://issues.apache.org/jira/browse/FELIX-2450
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR)
>Affects Versions:  scr-1.4.0
> Environment: Linux bono 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 
> 22:02:19 UTC 2010 i686 GNU/Linux
> java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
>Reporter: Martin Zdila
>
> I am using 1.4.1.SNAPSHOT-r951313.
> Component "Item":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>policy="dynamic"/>
>   
>   
>   
> 
> Component "ItemRegister":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>unbind="removeItem" cardinality="0..n" policy="dynamic"/>
>   
>   
>   
> 
> Both components reside in the same bundle. On bundle startup I am getting:
> java.lang.IllegalStateException: ServiceFactory.getService() resulted in a 
> cycle.
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:249)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:436)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:550)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$NotResolved.invoke(BaseMethod.java:508)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:442)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1028)
>   at 
> org.apache.felix.scr.im

[jira] Commented: (FELIX-2450) ServiceFactory.getService() resulted in a cycle.

2010-06-25 Thread Felix Meschberger (JIRA)

[ 
https://issues.apache.org/jira/browse/FELIX-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882597#action_12882597
 ] 

Felix Meschberger commented on FELIX-2450:
--

Thanks for reporting the problem.

Cycles are problematic in itself: I tend to think of cycles as design issues 
(not to say bugs).

Nevertheless, there is an easy solution for you to be able to work around the 
problem in this case, in that you declare one of the components (guessing from 
the name, this would be the "MyItemRegisterImpl" component) to be "immediate".

I wonder why you have the cycle here anyway: Why don't you inject the 
ItemRegister into the Item at the time time Item is bound to the ItemRegister ?

> ServiceFactory.getService() resulted in a cycle.
> 
>
> Key: FELIX-2450
> URL: https://issues.apache.org/jira/browse/FELIX-2450
> Project: Felix
>  Issue Type: Bug
>  Components: Declarative Services (SCR)
>Affects Versions:  scr-1.4.0
> Environment: Linux bono 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 
> 22:02:19 UTC 2010 i686 GNU/Linux
> java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
>Reporter: Martin Zdila
>
> I am using 1.4.1.SNAPSHOT-r951313.
> Component "Item":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>policy="dynamic"/>
>   
>   
>   
> 
> Component "ItemRegister":
> 
> http://www.osgi.org/xmlns/scr/v1.1.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://www.osgi.org/xmlns/scr/v1.1.0 
> http://www.osgi.org/xmlns/scr/v1.1.0";>
>   
>unbind="removeItem" cardinality="0..n" policy="dynamic"/>
>   
>   
>   
> 
> Both components reside in the same bundle. On bundle startup I am getting:
> java.lang.IllegalStateException: ServiceFactory.getService() resulted in a 
> cycle.
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:249)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:436)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:550)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod$NotResolved.invoke(BaseMethod.java:508)
>   at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:442)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1028)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.bind(DependencyManager.java:944)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.open(DependencyManager.java:868)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:200)
>   at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:118)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.createRealComponent(DelayedComponentManager.java:95)
>   at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Registered.getService(AbstractComponentManager.java:1120)
>   at 
> org.apache.felix.scr.impl.manager.DelayedComponentManager.getService(DelayedComponentManager.java:88)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:307)
>   at 
> org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:221)
>   at 
> org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:295)
>   at org.apache.felix.framework.Felix.getService(Felix.java:3022)
>   at 
> org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:329)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785)
>   at 
> org.apache.felix.scr.impl.manager.DependencyManager$1.getInstance(DependencyManager.java:1040)
>   at 
> org.apache.felix.scr