You don't have to manage the instance. The framework, per spec, must cache the instance the return it for future BundleContext.getService calls.
I am quite sure Equinox is fine here. Never heard of a problem in this area. You don't mention what version you use. -- BJ Hargrave Senior Technical Staff Member, IBM OSGi Fellow and CTO of the OSGi Alliance hargr...@us.ibm.com office: +1 386 848 1781 mobile: +1 386 848 3788 From: Raymond Auge <raymond.a...@liferay.com> To: Equinox development mailing list <equinox-dev@eclipse.org> Date: 2014/04/28 16:24 Subject: [equinox-dev] bug or not Sent by: equinox-dev-boun...@eclipse.org Hey all, I have to write code as follows in a ServiceFactory impl in order for my factory to always return the same instance per bundle running on equinox 3.8.0.v20120529-1548 =============================================== public HttpService getService( Bundle bundle, ServiceRegistration<HttpService> registration) { HttpServiceImpl httpServiceImpl = serviceMap.get(bundle); if (httpServiceImpl != null) { return httpServiceImpl; } httpServiceImpl = new HttpServiceImpl( bundle, contextController, legacyServiceIdGenerator); serviceMap.putIfAbsent(bundle, httpServiceImpl); return httpServiceImpl; } =============================================== This seems clearly wrong as per the spec. It's certainly calling the getService method of the ServiceFactory which I'm guessing means it's not incorrectly registered. What could I be doing wrong? Was this ever a bug in equinox that was later resolved? -- Raymond Augé (@rotty3000) Senior Software Architect Liferay, Inc. (@Liferay) _______________________________________________ equinox-dev mailing list equinox-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________ equinox-dev mailing list equinox-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/equinox-dev