Hi, On 19.10.2011, at 05:21, Göktürk Gezer wrote:
> Hi Everyone, > > We're in the middle of moving our codebase to OSGI using IPojo. Problem is, > I can not instantiate the manipulated classes without IPojo. > > AFAIK, IPojo manipulates the constructors with no argument and BundleContext > argument. So we can use other constructors for instance creation without > getting through IPojo, and all field and method delegations will be disabled > in that case. Am i wrong? You're mostly right. iPOJO 'replaces' all constructors (since the 1.8.0 because of the constructor injection support). However, original constructors are still existing, and accessible. So, if you have a class with: public class Foo { public String m_foo; public ConstructorCheck(String foo) { m_foo = foo; } } You will get: public ConstructorCheck(String s) { this(null, s); } private ConstructorCheck(InstanceManager _manager, String foo) { _setInstanceManager(_manager); __setm_foo(foo); } It means that you need to have iPOJO in your class path, but the semantic is not changed. (For information, __setm_foo(foo); will just do m_foo = foo; ) > > IPojoized classes are subclasses of some generic type, and i just use > @Component and @Provides on them. That's all, just for easy service > publication. But after that i can not instantiate them using _ctor(String) > constructor. Inheritance (using annotations on parent classes) is not yet supported. This is on the roadmap of iPOJO 2.0. > > If you ask why you're using normal instantiation, these usages without IPojo > are just on unit tests. Eventually we'll move these tests to OSGI, but it > would be cool to be able to still use them until we do. > I'm doing the same. So, avoid the inheritance, and it should work. Regards, Clement > > Regards, > Gokturk --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@felix.apache.org For additional commands, e-mail: users-h...@felix.apache.org