[ 
https://issues.apache.org/jira/browse/FELIX-4784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arjay Sitoy updated FELIX-4784:
-------------------------------
    Affects Version/s:     (was: ipojo-manipulator-1.12.1)
                           (was: ipojo-runtime-1.12.1)

> Using iPOJO in a JavaFX Application
> -----------------------------------
>
>                 Key: FELIX-4784
>                 URL: https://issues.apache.org/jira/browse/FELIX-4784
>             Project: Felix
>          Issue Type: Bug
>          Components: iPOJO
>         Environment: Ubuntu 14.04, Java 8 - JavaFX 8, Apache Felix
>            Reporter: Arjay Sitoy
>            Priority: Blocker
>
> I am doing a Javafx application in {{Apache Felix}} along with some 
> experiments using {{iPOJO}}. I also posted the same question in 
> [*StackOverflow*|http://stackoverflow.com/questions/28289948/using-ipojo-in-a-javafx-application].
> First is I called the {{Application.launch()}} method in a different class 
> and then start an another class containing the iPOJO {{@Requires}} like this:
> {code}
> 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();
>     }
> }
> {code}
> 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.
> {code}
> public class JavafxApp extends Application {
>     @Requires
>     LibraryClass class;
>     @Override
>     public void start(Stage primaryStage){
>         class.someMethod();
>     }
>     @Validate
>     public void start(){
>         launch(JavafxApp.class);
>     }
> }
> {code}
> 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?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to