Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-4784

Using iPOJO in a JavaFX Application

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: iPOJO
    • Labels:
      None
    • Environment:
      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?

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              kugtong33 Arjay Sitoy
            • Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: