K, so it can't handled Object (or the anything case)? ok! not a problem.
- Ray On Mon, Mar 30, 2015 at 2:11 PM, BJ Hargrave <hargr...@us.ibm.com> wrote: > > From: Raymond Auge <raymond.a...@liferay.com> > > > > Does anyone see why this would not be working? > > > > > > @Reference( > > I'll assume this is the OSGi annotation. > > > cardinality = ReferenceCardinality.MULTIPLE, > > name = "MBean", > > policy = ReferencePolicy.DYNAMIC, > > policyOption = ReferencePolicyOption.GREEDY, > > target = "(&(jmx.objectname=*)(objectClass=*MBean)(! > > (objectClass=javax.management.DynamicMBean)))" > > ) > > protected void addMBean(ServiceReference<?> serviceReference) { .. } > > > The XML generated is: > > > > <reference > > name="MBean" > > cardinality="0..n" > > policy="dynamic" > > interface="org.osgi.framework.ServiceReference" > > The generated XML shows that the assumed serivce type is ServiceReference. > You probably need to set the service element in the annotation to set the > actual type of the service. This will set the interface XML attribute > properly. The interface attribute is the objectClass of the referenced > service. > > interface: "Fully qualified name of the class that is used by the > component to access the service. The service provided to the component must > be type compatible with this class. That is, the component must be able to > cast the service object to this class. A service must be registered under > this name to be considered for the set of target services. > > The Reference annotation will use the type of the first argument of the > anno- > tated method or the type of the annotated field to determine the service > value." > > > target="(&(jmx.objectname=*)(objectClass=*MBean)(! > > (objectClass=javax.management.DynamicMBean)))" > > Putting objectClass in the target does not override the objectClass stated > by the interface attribute and can be in conflict. > > > bind="addMBean" > > unbind="removeMBean" > > policy-option="greedy" > > /> > > > > > Shouldn't this work? > > DS is not set up for this. It expects you to name a specific service type. > Not any type whose registered service name ends with something. > > > > > -- > > Raymond Augé (@rotty3000) > > Senior Software Architect Liferay, Inc. (@Liferay) > > Board Member & EEG Co-Chair, OSGi Alliance (@OSGiAlliance) > > _______________________________________________ > > OSGi Developer Mail List > > osgi-dev@mail.osgi.org > > https://mail.osgi.org/mailman/listinfo/osgi-dev > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev > -- *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000) Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> (@Liferay) Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> (@OSGiAlliance)
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev