Arjay Sitoy created FELIX-4784:
----------------------------------

             Summary: 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
    Affects Versions: ipojo-manipulator-1.12.1, ipojo-runtime-1.12.1
         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