Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Differences in classloading between standard activators and Declarative Services

SCR does not alter the class loading setup of a bundle. That is, 
DynamicImport-Package will work either way. You can even use a normal 
BundleActivator with SCR assuming you use lazy activation. When SCR goes 
to load the first class from a bundle, the lazy activation will trigger 
the execution of the BundleActivator.

The only thing that may be different is timing in bundle startup. You may 
need to do some class loader diagnostics to see what is actually 
happening.
-- 

BJ Hargrave
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance
hargrave@xxxxxxxxxx

office: +1 386 848 1781
mobile: +1 386 848 3788




From:
"Michael Furtak" <mfurtak@xxxxxxx>
To:
<equinox-dev@xxxxxxxxxxx>
Date:
2007-11-05 11:22
Subject:
[equinox-dev] Differences in classloading between standard      activators 
and Declarative Services



Hi all,
 
I have a quick question about a possible difference I am noticing between 
the way classes are loaded in standard Equinox activators and the DS SCR 
in equinox 3.4.I20071023-0800.
 
Specifically, when transitioning to DS, I have started running into 
exceptions that I see commonly when Swing cannot acquire the L&F classes 
it needs.  I have solved these problems in the standard activator scenario 
by:
1)       Making sure that bundles that introduce new L&F classes export 
those classes
2)       Having the bundles that wind up triggering these Swing look-ups 
include DynamicImport-Package: * in their manifest.
 
What seems to be the case is that the SCR is not honoring that 
DynamicImport-Package statement, because when I switch to those services 
being started via DS, I run into the errors again. Those errors look like 
this:
 
UIDefaults.getUI() failed: no ComponentUI class for: 
javax.swing.JMenuItem…
java.lang.Error
            at javax.swing.UIDefaults.getUIError(UIDefaults.java:691)
            at 
javax.swing.MultiUIDefaults.getUIError(MultiUIDefaults.java:117)
            at javax.swing.UIDefaults.getUI(UIDefaults.java:721)
            at javax.swing.UIManager.getUI(UIManager.java:860)
            at javax.swing.JMenuItem.updateUI(JMenuItem.java:208)
            at javax.swing.JMenuItem.init(JMenuItem.java:170)
            at javax.swing.JMenuItem.<init>(JMenuItem.java:119)
            …
 
To restate the difference clearly, the same services started via OSGi 
activator do not produce the errors, where the DS start-up does.
 
Any insight or suggestions for a better solution to the Swing L&F issues 
would be appreciated.
 
Thanks,
-Mike Furtak
 
 
 
 
THIS MESSAGE IS INTENDED FOR THE USE OF THE PERSON TO WHOM IT IS 
ADDRESSED. IT MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND 
EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. If you are not the intended 
recipient, your use of this message for any purpose is strictly 
prohibited. If you have received this communication in error, please 
delete the message and notify the sender so that we may correct our 
records. 
 
 
 _______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev



Back to the top