Class AbstractApplication

  • All Implemented Interfaces:
    Application
    Direct Known Subclasses:
    AbstractClientApplication

    public abstract class AbstractApplication
    extends java.lang.Object
    implements Application

    This class is a convenient parent class for Application developers that require simple access to the most commonly used jDISC APIs.

    A simple hello world application could be implemented like this:

     class HelloApplication extends AbstractApplication {
    
         @Inject
         public HelloApplication(BundleInstaller bundleInstaller, ContainerActivator activator,
                                 CurrentContainer container) {
             super(bundleInstaller, activator, container);
         }
    
         @Override
         public void start() {
             ContainerBuilder builder = newContainerBuilder();
             ServerProvider myServer = new MyHttpServer();
             builder.serverProviders().install(myServer);
             builder.serverBindings().bind("http://*/*", new MyHelloWorldHandler());
    
             activateContainer(builder);
             myServer.start();
             myServer.release();
         }
     }
     
    Author:
    Simon Thoresen Hult
    • Method Detail

      • installAndStartBundle

        public final java.util.List<org.osgi.framework.Bundle> installAndStartBundle​(java.lang.String... locations)
                                                                              throws org.osgi.framework.BundleException
        Throws:
        org.osgi.framework.BundleException
      • installAndStartBundle

        public final java.util.List<org.osgi.framework.Bundle> installAndStartBundle​(java.lang.Iterable<java.lang.String> locations)
                                                                              throws org.osgi.framework.BundleException
        Throws:
        org.osgi.framework.BundleException
      • stopAndUninstallBundle

        public final void stopAndUninstallBundle​(org.osgi.framework.Bundle... bundles)
                                          throws org.osgi.framework.BundleException
        Throws:
        org.osgi.framework.BundleException
      • stopAndUninstallBundle

        public final void stopAndUninstallBundle​(java.lang.Iterable<org.osgi.framework.Bundle> bundles)
                                          throws org.osgi.framework.BundleException
        Throws:
        org.osgi.framework.BundleException
      • isTerminated

        public final boolean isTerminated()
      • awaitTermination

        public final boolean awaitTermination​(int timeout,
                                              java.util.concurrent.TimeUnit unit)
                                       throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • awaitTermination

        public final void awaitTermination()
                                    throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException