@Override public void init(FilterConfig filterConfig) throws ServletException { try { log.log(Level.FINE, "initializing {0}", WarpFilter.class.getSimpleName()); ManagerBuilder builder = ManagerBuilder.from().extension(Class.forName(DEFAULT_EXTENSION_CLASS)); manager = builder.create(); manager.start(); manager.bind(ApplicationScoped.class, Manager.class, manager); delegator = new RequestDelegator(); } catch (Exception e) { throw new ServletException("Could not init " + WarpFilter.class.getSimpleName(), e); } }
public static void main(String[] args) { Company google = new Google(); Manager manager = google.newManager(); } static abstract class Company { public Manager newManager() { return new ManagerBuilder("Eve", "Page").age(40).build(); } } static class Google extends Company { }
@Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionOnBindWithNonActiveScopedContext() throws Exception { ManagerImpl manager = (ManagerImpl) ManagerBuilder.from() .context(ManagerTestContextImpl.class).create(); manager.bind(ManagerTestScoped.class, Object.class, new Object()); }
public static TestRunnerAdaptor build() { if (testAdaptor != null) { return testAdaptor; } ManagerBuilder builder = ManagerBuilder.from() .extension(SecurityActions.loadClass(DEFAULT_EXTENSION_CLASS)); return SecurityActions.newInstance( TEST_RUNNER_IMPL_CLASS, new Class<?>[] {ManagerBuilder.class}, new Object[] {builder}, TestRunnerAdaptor.class); } }
@Test(expected = IOException.class) public void shouldBeAbleToDetectExceptionEventLoopAndThrowOriginalException() throws Exception { ManagerImpl manager = (ManagerImpl) ManagerBuilder.from() .extensions(ExtensionObservingExceptionLoop.class).create(); manager.fire(new IOException("should cause exception")); }
@Before public final void create() throws Exception { contexts = new ArrayList<Class<? extends Context>>(); ManagerBuilder builder = ManagerBuilder.from(); addContexts(contexts); for (Class<? extends Context> context : contexts) { builder.context(context); } // Add ApplicationContext, it's internal to Manager, but needs to be registered as a context so EventRecorder will pick up on it contexts.add(0, ApplicationContextImpl.class); builder.extension(EventRegisterObserver.class); List<Class<?>> extensions = new ArrayList<Class<?>>(); addExtensions(extensions); for (Class<?> extension : extensions) { builder.extension(extension); } manager = (ManagerImpl) builder.create(); beforeStartManager(manager); manager.start(); executeInApplicationScope(new Callable<Void>() { @Override public Void call() throws Exception { manager.resolve(Injector.class).inject(AbstractManagerTestBase.this); return null; } }); startContexts(manager); }
@Test public void shouldBeAbleToInjectAndFireEvents() throws Exception { ManagerImpl manager = (ManagerImpl) ManagerBuilder.from() .context(ManagerTestContextImpl.class) .context(ManagerTest2ContextImpl.class) .extensions( TestObserverOne.class, TestObserverTwo.class, TestObserverTree.class).create();
public ManagerBuilder extensions(Class<?>... extensions) { Validate.notNull(extensions, "Extensions must be specified"); for (Class<?> extension : extensions) { extension(extension); } return this; }
public EventTestRunnerAdaptor(ManagerBuilder builder) { Validate.notNull(builder, "ManagerBuilder must be specified"); this.manager = builder.create(); this.manager.start(); }
@Before public final void create() throws Exception { contexts = new ArrayList<Class<? extends Context>>(); ManagerBuilder builder = ManagerBuilder.from(); addContexts(contexts); for (Class<? extends Context> context : contexts) { builder.context(context); } // Add ApplicationContext, it's internal to Manager, but needs to be registered as a context so EventRecorder will pick up on it contexts.add(0, ApplicationContextImpl.class); builder.extension(EventRegisterObserver.class); List<Class<?>> extensions = new ArrayList<Class<?>>(); addExtensions(extensions); for (Class<?> extension : extensions) { builder.extension(extension); } manager = (ManagerImpl) builder.create(); beforeStartManager(manager); manager.start(); executeInApplicationScope(new Callable<Void>() { @Override public Void call() throws Exception { manager.resolve(Injector.class).inject(AbstractManagerTestBase.this); return null; } }); startContexts(manager); }
@Test(expected = IOException.class) public void shouldBeAbleToDetectExceptionEventLoopAndThrowOriginalException() throws Exception { ManagerImpl manager = (ManagerImpl) ManagerBuilder.from() .extensions(ExtensionObservingExceptionLoop.class).create(); manager.fire(new IOException("should cause exception")); }
@Test public void shouldBeAbleToInjectAndFireEvents() throws Exception { ManagerImpl manager = (ManagerImpl) ManagerBuilder.from() .context(ManagerTestContextImpl.class) .context(ManagerTest2ContextImpl.class) .extensions( TestObserverOne.class, TestObserverTwo.class, TestObserverTree.class).create();
public static TestRunnerAdaptor build() { if (testAdaptor != null) { return testAdaptor; } ManagerBuilder builder = ManagerBuilder.from() .extension(SecurityActions.loadClass(DEFAULT_EXTENSION_CLASS)); return SecurityActions.newInstance( TEST_RUNNER_IMPL_CLASS, new Class<?>[] {ManagerBuilder.class}, new Object[] {builder}, TestRunnerAdaptor.class); } }
public ManagerBuilder extensions(Class<?>... extensions) { Validate.notNull(extensions, "Extensions must be specified"); for (Class<?> extension : extensions) { extension(extension); } return this; }
public void setup() throws IOException { deployableContainer = loadDeployableContainer(); manager = (ManagerBuilder.from()).extension(LoadableExtensionLoader.class).create(); manager.getContext(ContainerContext.class).activate("AS7 Managed"); configuration = new ManagedContainerConfiguration(); configuration.setJavaVmArguments(System.getProperty("jboss.options")); manager.inject(deployableContainer); deployableContainer.setup(configuration); try { deployableContainer.start(); } catch (LifecycleException e) { throw new RuntimeException(e); } }
@Test public void shouldFireEventOnSet() throws Exception { ManagerImpl manager = (ManagerImpl) ManagerBuilder.from() .context(ManagerTestContextImpl.class) .extension(TestObserver.class).create(); ManagerTestContext context = manager.getContext(ManagerTestContext.class); try { context.activate(); InstanceProducer<Object> instance = InstanceImpl.of(Object.class, ManagerTestScoped.class, manager); instance.set(new Object()); Assert.assertTrue(manager.getExtension(TestObserver.class).wasCalled); } finally { context.deactivate(); context.destroy(); } }
@Test public void shouldBeAbleToFireExceptionEventOnFailingObserver() throws Exception { ManagerImpl manager = (ManagerImpl) ManagerBuilder.from() .extensions(ExtensionWithExceptionObserver.class, ExtensionObservingException.class).create(); manager.fire("should cause exception"); Assert.assertTrue(manager.getExtension(ExtensionObservingException.class).methodOneWasCalled); }