Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
Ubuntu 14.04, Java 8 - JavaFX 8, Apache Felix
Description
I am doing a Javafx application in Apache Felix along with some experiments using iPOJO. I also posted the same question in StackOverflow.
First is I called the Application.launch() method in a different class and then start an another class containing the iPOJO @Requires like this:
public class JavafxApp extends Application { @Override public void start(Stage primaryStage){ /* Do nothing here because I thought I can initialize JavaFX in a different class */ } public void start(){ Platform.runLater(() -> { launch(JavafxApplication.class); }); } } public class MyApplication { @Requires LibraryClass class; @Validate public void start(){ JavafxApp.start(); class.someMethod(); } }
This implementation throws this exception, java.lang.IllegalStateException: Toolkit not initialized but the iPOJO located the implementation class of the LibraryClass interface.
After some research I found out that the application should be inside the class that extends the javafx.application.Application so I did some restructuring.
public class JavafxApp extends Application { @Requires LibraryClass class; @Override public void start(Stage primaryStage){ class.someMethod(); } @Validate public void start(){ launch(JavafxApp.class); } }
Now the iPOJO throws a RuntimeException and the LibraryClass becomes null and the application throws a NullPointerException.
My questions are:
- Is it possible to use iPOJO in this situation?
- If it is what is the right way to use iPOJO in a JavaFX application?