Richard, I am currently downloading the osgi book as I write this. But going back over what I did. I added the id's again to @Bind, and @Unbind, when I did this. it now adds a TidgetSaasmDevice, but only 1, then only until i close the GUI driving these binding functions do the rest get added before it[GUI] is completely closed.
I am confused as to why the GUI added them correctly (except for the copy) when I had the @Requires, but not now? I apologize for all the questions, I am relatively new to the felix framework. Mark-Anthony Richard S. Hall wrote: > > I'm not sure what you're doing wrong, but even the reference card you > cited describes the two approaches as field vs method injection. I'm not > sure if the iPOJO docs include a method injection example. > > If you download the example code for our book (it's big): > > http://code.google.com/p/osgi-in-action/ > > The example in chapter12/paint-example-ip/ has a component org.foo.paint > which uses @Bind/@Unbind without @Requires. > > -> richard > >> Mark-Anthony >> >> >> Richard S. Hall wrote: >>> On 8/11/10 14:16, mhutton86 wrote: >>> I am not sure. >>> >>> I do know that @Requires and @Bind/@Unbind are independent of each >>> other, although they can be used together. There are basically two ways >>> to have your dependencies injected: >>> >>> 1. Field injection (i.e., @Requires) >>> 2. Method injection (i.e., @Bind/@Unbind) >>> >>> iPOJO does allow you to use both at the same time, but typically in such >>> situations the bind/unbind methods are more for notification purposes or >>> for obtaining service properties. >>> >>> -> richard >>> >>>> >>>> Richard S. Hall wrote: >>>>> If you have @Bind/@Unbind and use them to maintain your own list, >>>>> then >>>>> why do you need @Requires at all? >>>>> >>>>> -> richard >>>>> >>>>> On 8/11/10 13:17, mhutton86 wrote: >>>>>> I have a service that I require >>>>>> >>>>>> @Requires(optional=true, id="tidget_devices", >>>>>> filter="(!(serviceName=file >>>>>> reader))") >>>>>> private TidgetSaasmDevice[] initialTidgets; >>>>>> >>>>>> but these TidgetSaasmDevices are not ready off the bat, and have to >>>>>> be >>>>>> added >>>>>> via late-binding >>>>>> @Bind(id="tidget_devices") >>>>>> private synchronized void addTidgetSaasmDevice(TidgetSaasmDevice >>>>>> newTidget) >>>>>> {...} >>>>>> >>>>>> @Unbind(id="tidget_devices") >>>>>> private synchronized void removeTidgetSaasmDevice(TidgetSaasmDevice >>>>>> newTidget){...} >>>>>> >>>>>> since TidgetSaasmDevice[] is an array. adding to it is a pain. so I >>>>>> have >>>>>> a >>>>>> List to take care of this. >>>>>> >>>>>> // dynamic list for adding tidgets >>>>>> private List<TidgetSaasmDevice> tidgets = new >>>>>> ArrayList<TidgetSaasmDevice>(); >>>>>> >>>>>> but the problem when I start felix, is that a tidget is always loaded >>>>>> twice >>>>>> (random). due to the initial @Requires dependency trying to be >>>>>> fulfilled. >>>>>> @optional = true, won't solve this (not surprising). I can solve this >>>>>> by >>>>>> checking if this node is already added before trying to add it again. >>>>>> but >>>>>> this does not work ans is more of a hack then a fix. >>>>>> >>>>>> Any ideas? >>>>>> >>>>>> Example Output: >>>>>> adding: tidget-saasm COM22-0 >>>>>> adding: tidget-saasm COM9-0 >>>>>> adding: tidget-saasm COM22-1 >>>>>> adding: tidget-saasm COM29-0 >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > -- View this message in context: http://old.nabble.com/%40requires-with-late-binding-headaches-tp29410576p29411700.html Sent from the Apache Felix - Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

