|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
problem loading Apple LAF classesI'm running into an interesting classloading problem with Felix
(2.0.0) on my mac. I have a simple test activator like the following: public class LAFClassLoadingTest implements BundleActivator { public void start(BundleContext c) throws Exception { // loads internal apple laf class via Class.forName() UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } public void stop(BundleContext c) {} } When I install and start this bundle, I get a NoClassDefFoundError with apple/laf/CoreUIControl: org.osgi.framework.BundleException: Activator start error in bundle lafclassloading_test [4]. at org.apache.felix.framework.Felix.activateBundle(Felix.java:1750) at org.apache.felix.framework.Felix.startBundle(Felix.java:1621) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:890) at org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114) at org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:281) at org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184) at java.lang.Thread.run(Thread.java:637) Caused by: java.lang.NoClassDefFoundError: apple/laf/CoreUIControl at com.apple.laf.AquaLookAndFeel$1.run(AquaLookAndFeel.java:123) at java.security.AccessController.doPrivileged(Native Method) at com.apple.laf.AquaLookAndFeel.initialize(AquaLookAndFeel.java:120) at javax.swing.UIManager.setLookAndFeel(UIManager.java:545) at javax.swing.UIManager.setLookAndFeel(UIManager.java:590) at org.osgi.test.LAFClassLoadingTest.start(LAFClassLoadingTest.java:13) at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:667) at org.apache.felix.framework.Felix.activateBundle(Felix.java:1699) ... 6 more java.lang.NoClassDefFoundError: apple/laf/CoreUIControl I googled for this issue, and tried a couple of suggested solutions. First, I tried adding the apple.laf package to the org.osgi.framework.system.packages.extra property, and also added it to the Import-Package property of my bundle. It still failed with the same error, although I could see that the dependency was successfully resolved. Second, I tried the org.osgi.framework.bootdelegation property, and added apple packages. Still no success, and I failed with the same NoClassDefFoundError. Can anyone shed light on why this classloading is not working even with these solutions, and what is the "right" way to make this work? FYI, the bundle starts just fine with Equinox. Thanks, Sangjin --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@... For additional commands, e-mail: users-help@... |
|
|
Re: problem loading Apple LAF classesTry to set the Thread context classloader to be the classloader of
your bundle before the call to UIManager. regards, Karl On Wed, Oct 14, 2009 at 10:27 PM, Sangjin Lee <sjlee0@...> wrote: > I'm running into an interesting classloading problem with Felix > (2.0.0) on my mac. I have a simple test activator like the following: > > public class LAFClassLoadingTest implements BundleActivator { > public void start(BundleContext c) throws Exception { > // loads internal apple laf class via Class.forName() > UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); > } > > public void stop(BundleContext c) {} > } > > When I install and start this bundle, I get a NoClassDefFoundError > with apple/laf/CoreUIControl: > > org.osgi.framework.BundleException: Activator start error in bundle > lafclassloading_test [4]. > at org.apache.felix.framework.Felix.activateBundle(Felix.java:1750) > at org.apache.felix.framework.Felix.startBundle(Felix.java:1621) > at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:890) > at org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114) > at org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:281) > at org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184) > at java.lang.Thread.run(Thread.java:637) > Caused by: java.lang.NoClassDefFoundError: apple/laf/CoreUIControl > at com.apple.laf.AquaLookAndFeel$1.run(AquaLookAndFeel.java:123) > at java.security.AccessController.doPrivileged(Native Method) > at com.apple.laf.AquaLookAndFeel.initialize(AquaLookAndFeel.java:120) > at javax.swing.UIManager.setLookAndFeel(UIManager.java:545) > at javax.swing.UIManager.setLookAndFeel(UIManager.java:590) > at org.osgi.test.LAFClassLoadingTest.start(LAFClassLoadingTest.java:13) > at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:667) > at org.apache.felix.framework.Felix.activateBundle(Felix.java:1699) > ... 6 more > java.lang.NoClassDefFoundError: apple/laf/CoreUIControl > > I googled for this issue, and tried a couple of suggested solutions. > > First, I tried adding the apple.laf package to the > org.osgi.framework.system.packages.extra property, and also added it > to the Import-Package property of my bundle. It still failed with the > same error, although I could see that the dependency was successfully > resolved. > > Second, I tried the org.osgi.framework.bootdelegation property, and > added apple packages. Still no success, and I failed with the same > NoClassDefFoundError. > > Can anyone shed light on why this classloading is not working even > with these solutions, and what is the "right" way to make this work? > > FYI, the bundle starts just fine with Equinox. > > Thanks, > Sangjin > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@... > For additional commands, e-mail: users-help@... > > -- Karl Pauls karlpauls@... --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@... For additional commands, e-mail: users-help@... |
| Free embeddable forum powered by Nabble | Forum Help |