Thanks KasunG & Kishanthan for the inputs. On Mon, Oct 19, 2015 at 10:49 AM, Kishanthan Thangarajah < [email protected]> wrote:
> > > On Fri, Oct 16, 2015 at 4:31 PM, Shani Ranasinghe <[email protected]> wrote: > >> >> Hi, >> >> In APIM current code (1.10), we have removed the <DynamicImport-Package >> >*</DynamicImport-Package> from all packages at the moment. >> >> We faced an issue now, where an extension point would not work with this >> change. i.e. if we put a external jar into the >> <APIM_HOME>/repository/components/lib folder, that class will not be picked >> up by the component OSGI bundle because of the aforementioned reason. >> >> Discussing with KasunG, I learned that we cannot remove the >> DynamicImport-Package >> statement, if the components use Class.forName() or >> <ClassName>.class.getClassLoader().loadClass(); >> because the OSGI bundle would not be able to identify the external class. >> >> As a possible solution, what we thought of is, to move the Class.forName() >> to a central location, possibily to the org.wso2.carbon.apimgt.impl >> package, and have the >> <DynamicImport-Package>*</DynamicImport-Package> to that package. Then >> all other packages that used to have the Class.forName() can be referred to >> the method introduced in the org.wso2.carbon.apimgt.impl package. >> >> @KasunG, Kishanthan, is this the correct approach? >> > > This will not work. DynamicImport-Package : <some-package> (or > org.wso2.carbon.apimgt.impl) means, you do not know that this package will > be available at runtime in advance so that bundle resolution process will > not take this package into account when resolving the bundle import > statements. It will only try to resolve this package when it is requested > to be loaded. > > For packages (mostly if its extensions) we will not know the package name > in advance too, and for situations like this we will have to use the "*" > with dynamic import. We do not have any other ways to solve this when > loading classes using Class.forName and we do not know the package names in > advance. > > >> Are there any other approaches that we could look into? >> -- >> Thanks and Regards >> *,Shani Ranasinghe* >> Senior Software Engineer >> WSO2 Inc.; http://wso2.com >> lean.enterprise.middleware >> >> mobile: +94 77 2273555 >> Blog: http://waysandmeans.blogspot.com/ >> linked in: lk.linkedin.com/pub/shani-ranasinghe/34/111/ab >> > > > > -- > *Kishanthan Thangarajah* > Associate Technical Lead, > Platform Technologies Team, > WSO2, Inc. > lean.enterprise.middleware > > Mobile - +94773426635 > Blog - *http://kishanthan.wordpress.com <http://kishanthan.wordpress.com>* > Twitter - *http://twitter.com/kishanthan <http://twitter.com/kishanthan>* > -- Thanks and Regards *,Shani Ranasinghe* Senior Software Engineer WSO2 Inc.; http://wso2.com lean.enterprise.middleware mobile: +94 77 2273555 Blog: http://waysandmeans.blogspot.com/ linked in: lk.linkedin.com/pub/shani-ranasinghe/34/111/ab
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
