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

Reply via email to