Package org.jclouds.lifecycle

Examples of org.jclouds.lifecycle.Closer


               scheduledExecutor.shutdownNow();
         }
      };

      binder().requestInjection(executorCloser);
      Closer closer = new Closer();
      closer.addToClose(executorCloser);
      bind(Closer.class).toInstance(closer);

      ExecutionList list = new ExecutionList();
      bindPostInjectionInvoke(closer, list);
      bind(ExecutionList.class).toInstance(list);
View Full Code Here


   void testCloserClosesExecutor() throws IOException {
      Injector i = createInjector();
      ListeningExecutorService executor = i.getInstance(Key.get(ListeningExecutorService.class,
            named(PROPERTY_USER_THREADS)));
      assert !executor.isShutdown();
      Closer closer = i.getInstance(Closer.class);
      closer.close();
      assert executor.isShutdown();
   }
View Full Code Here

            named(PROPERTY_USER_THREADS)));
      assert !userExecutor.isShutdown();
      ListeningExecutorService ioExecutor = i.getInstance(Key.get(ListeningExecutorService.class,
            named(PROPERTY_IO_WORKER_THREADS)));
      assert !ioExecutor.isShutdown();
      Closer closer = i.getInstance(Closer.class);
      closer.close();
      assert userExecutor.isShutdown();
      assert ioExecutor.isShutdown();
   }
View Full Code Here

            typeEncounter.register(new InjectionListener<I>() {
               @Override
               public void afterInjection(Object object) {
                  final View view = (View) object;
                  final Iterable<ViewMBean> viewMamanagementBeans  = viewManagementOf(view);
                  final Closer closer = view.unwrap().utils().injector().getInstance(Closer.class);
                  //We get the name from the view and not from the view management object to avoid proxy issues.
                  final String name = view.unwrap().getName();
                  managementContext.register(view);

                  //Manage the created management view objects to the context.
                  for (ViewMBean viewMBean : viewMamanagementBeans) {
                     managementContext.manage(viewMBean, name);
                  }

                  //Add the the management view objects to the Closer, so that they are unregistered on close.
                  closer.addToClose(new Closeable() {
                     @Override
                     public void close() throws IOException {
                        for (ViewMBean viewMBean : viewMamanagementBeans) {
                           managementContext.unmanage(viewMBean, name);
                        }
View Full Code Here

   @Test
   public void testShutdownOnClose() throws IOException {
      Injector i = Guice.createInjector();

      Closer closer = i.getInstance(Closer.class);
      ListeningScheduledExecutorService executor = createMock(ListeningScheduledExecutorService.class);
      ExecutorServiceModule.shutdownOnClose(executor, closer);

      expect(executor.shutdownNow()).andReturn(ImmutableList.<Runnable> of()).atLeastOnce();

      replay(executor);
      closer.close();

      verify(executor);
   }
View Full Code Here

   @Test
   public void testShutdownOnClose() throws IOException {
      Injector i = Guice.createInjector();

      Closer closer = i.getInstance(Closer.class);
      ListeningExecutorService executor = createMock(ListeningExecutorService.class);
      ExecutorServiceModule.shutdownOnClose(executor, closer);

      expect(executor.shutdownNow()).andReturn(ImmutableList.<Runnable> of()).atLeastOnce();

      replay(executor);
      closer.close();

      verify(executor);
   }
View Full Code Here

               scheduledExecutor.shutdownNow();
         }
      };

      binder().requestInjection(executorCloser);
      Closer closer = new Closer();
      closer.addToClose(executorCloser);
      bind(Closer.class).toInstance(closer);

      ExecutionList list = new ExecutionList();
      bindPostInjectionInvoke(closer, list);
      bind(ExecutionList.class).toInstance(list);
View Full Code Here

   void testCloserClosesExecutor() throws IOException {
      Injector i = createInjector();
      ListeningExecutorService executor = i.getInstance(Key.get(ListeningExecutorService.class,
            named(PROPERTY_USER_THREADS)));
      assert !executor.isShutdown();
      Closer closer = i.getInstance(Closer.class);
      assert closer.getState() == Closer.State.AVAILABLE;
      closer.close();
      assert executor.isShutdown();
      assert closer.getState() == Closer.State.DONE;
   }
View Full Code Here

            named(PROPERTY_USER_THREADS)));
      assert !userExecutor.isShutdown();
      ListeningExecutorService ioExecutor = i.getInstance(Key.get(ListeningExecutorService.class,
            named(PROPERTY_IO_WORKER_THREADS)));
      assert !ioExecutor.isShutdown();
      Closer closer = i.getInstance(Closer.class);
      assert closer.getState() == Closer.State.AVAILABLE;
      closer.close();
      assert userExecutor.isShutdown();
      assert ioExecutor.isShutdown();
      assert closer.getState() == Closer.State.DONE;
   }
View Full Code Here

   }

   @Test
   void testCloserClosingState() throws InterruptedException {
      Injector i = createInjector();
      final Closer closer = i.getInstance(Closer.class);

      final CountDownLatch closeDone = new CountDownLatch(1);
      final CountDownLatch closeStart = new CountDownLatch(1);

      closer.addToClose(new Closeable() {
         @Override
         public void close() throws IOException {
             try {
                 closeStart.countDown();
                 assert closer.getState() == Closer.State.PROCESSING;
                 closeDone.await();
             } catch (InterruptedException e) {
                 assert false : e.getMessage();
             }
         }
      });

      Thread thread = new Thread(new Runnable() {
         @Override
         public void run() {
            try {
               closer.close();
            } catch (IOException e) {
               assert false : e.getMessage();
            }
         }
      });

      thread.start();

      closeStart.await();

      assert closer.getState() == Closer.State.PROCESSING;

      closeDone.countDown();

      thread.join();

      assert closer.getState() == Closer.State.DONE;
   }
View Full Code Here

TOP

Related Classes of org.jclouds.lifecycle.Closer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.