*Greg, *hello;
1) I am hitting in the following issue while trying to run pivot in
osgi environment:
this example
http://pivot.apache.org/tutorials/labels-and-image-views.html
|<||Window| |title||=||"Labels"| |maximized||=||"true"|
| ||xmlns:bxml||=||"http://pivot.apache.org/bxml"|
| ||xmlns||=||"org.apache.pivot.wtk"||>|
| ||<||BoxPane| |styles||=||"{padding:4,
verticalAlignment:'center'}"||>|
| ||<||ImageView| |image||=||"/clock.png"||/>|
| ||<||Label| |text||=||"What time is it?"||/>|
| ||</||BoxPane||>|
|</||Window||>|
2) in terms of |ImageView| properties, it is getting translated by
BXMLSerializer into a call |*setImage(String imageName)*| ,
which fails to locate resource:
|||ImageView ::
/**
* Sets the image view's image by {@linkplain
ClassLoader#getResource(String)
* resource name}.
*
* @param imageName
* The resource name of the image to set.
*
* @see #setImage(URL)
*/
* public final void setImage(String imageName) {
* if (imageName == null) {
throw new IllegalArgumentException("imageName is null.");
}
* ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
setImage(classLoader.getResource(imageName.substring(1)));
* }
|2) note that in my case the pivot package classes and
[AWT-EventQueue-0] event queues are instantiated in osgi host class
loader
http://felix.apache.org/site/apache-felix-framework-launching-and-embedding.html
but the actual call to |setImage(String imageName)| is executed in
osgi plugin class loader;
just to give you an example, when this snipped gets executed inside
osgi plugin bundle:
// class loader used by pivot
ClassLoader loader =
Thread.currentThread().getContextClassLoader();
URL urlPivot = loader.getResource("");
* log.info("urlPivot : {} ", urlPivot);
*
// class loader used by plugin bundle
URL urlOSGI = getClass().getResource("");
* log.info("urlOSGI : {}", urlOSGI);
*
it produces this log:
22:08:46.876 [AWT-EventQueue-0] INFO
com.carrotgarden.core.LoginComponent - urlPivot :
file:/home/user1/Workspaces/github/carrot-tester/carrot-test-osgi-ws/carrot-test-osgi-pivot-host/target/test-classes/
22:08:46.876 [AWT-EventQueue-0] INFO
com.carrotgarden.core.LoginComponent - urlOSGI :
bundle://7.0:1/com/carrotgarden/core/
as you can see,
* urlPivot :
file:/home/user1/Workspaces/github/carrot-tester/carrot-test-osgi-ws/carrot-test-osgi-pivot-host/target/test-classes/
*resolves back to osgi host class loader which is not visible by the
the client plugin
and
* urlOSGI : bundle://7.0:1/com/carrotgarden/core/
*resolves inside calling osgi bundle name space as expected;
3) am I missing something obvious?
why do you use current class loading approach in pivot?
are you open to change this?
what would your recommend instead?
Thank you,
Andrei.