@BeforeMethod(alwaysRun = true) public void setUp() throws Exception { events = new CopyOnWriteArrayList<SensorEvent<FailureDescriptor>>(); managementContext = Entities.newManagementContext(); app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext); app.getManagementContext() .getSubscriptionManager() .subscribe( app, HASensors.CONNECTION_FAILED, new SensorEventListener<FailureDescriptor>() { @Override public void onEvent(SensorEvent<FailureDescriptor> event) { events.add(event); } }); app.getManagementContext() .getSubscriptionManager() .subscribe( app, HASensors.CONNECTION_RECOVERED, new SensorEventListener<FailureDescriptor>() { @Override public void onEvent(SensorEvent<FailureDescriptor> event) { events.add(event); } }); serverSocketAddress = startServerSocket(); }
@BeforeMethod(alwaysRun = true) public void setUp() throws Exception { for (int i = 0; i < 5; i++) System.gc(); loc = new SimulatedLocation(); app = ApplicationBuilder.newManagedApp(TestApplication.class); mgmt = app.getManagementContext(); }
@Test public void testCreateInAppWithClassAndMap() { StartableApplication app2 = null; try { ApplicationBuilder appB = new ApplicationBuilder() { @Override protected void doBuild() { addChild(MutableMap.of("confName", "faz"), TestEntity.class); } }; app2 = appB.manage(); assertEquals( Iterables.getOnlyElement(app2.getChildren()).getConfig(TestEntity.CONF_NAME), "faz"); } finally { if (app2 != null) Entities.destroyAll(app2); } }
@BeforeMethod(alwaysRun = true) public void setUp() throws Exception { loc = new LocalhostMachineProvisioningLocation(); app = ApplicationBuilder.newManagedApp(TestApplication.class); entity = app.createAndManageChild(EntitySpec.create(TestEntity.class)); app.start(ImmutableList.of(loc)); server = BetterMockWebServer.newInstanceLocalhost(); for (int i = 0; i < 100; i++) { server.enqueue( new MockResponse() .setResponseCode(200) .addHeader("content-type: application/json") .setBody("{\"foo\":\"myfoo\"}")); } server.play(); baseUrl = server.getUrl("/"); }
@BeforeMethod(alwaysRun = true) public void setUp() throws Exception { localManagementContext = newPersistingManagementContext(); if (persister == null) { persister = localManagementContext.getRebindManager().getPersister(); } if (objectStore == null && persister instanceof BrooklynMementoPersisterToObjectStore) { objectStore = ((BrooklynMementoPersisterToObjectStore) persister).getObjectStore(); } app = ApplicationBuilder.newManagedApp( EntitySpec.create(TestApplication.class), localManagementContext); location = localManagementContext .getLocationManager() .createLocation( LocationSpec.create(SshMachineLocation.class).configure("address", "localhost")); entity = app.createAndManageChild(EntitySpec.create(TestEntity.class).location(location)); enricher = app.addEnricher(Enrichers.builder().propagatingAll().from(entity).build()); app.addPolicy(policy = new TestPolicy()); }
protected void configureRenderingMetadata(ApplicationSpec spec, ApplicationBuilder appBuilder) { appBuilder.configure(getRenderingConfigurationFor(spec.getType())); }
@SuppressWarnings("unchecked") public Application create(ApplicationSpec spec) { log.debug("REST creating application instance for {}", spec); if (!Entitlements.isEntitled( mgmt.getEntitlementManager(), Entitlements.DEPLOY_APPLICATION, spec)) { throw WebResourceUtils.unauthorized( "User '%s' is not authorized to deploy application %s", Entitlements.getEntitlementContext().user(), spec); } final String type = spec.getType(); final String name = spec.getName(); final Map<String, String> configO = spec.getConfig(); final Set<EntitySpec> entities = (spec.getEntities() == null) ? ImmutableSet.<EntitySpec>of() : spec.getEntities(); final Application instance; // Load the class; first try to use the appropriate catalog item; but then allow anything that // is on the classpath final Class<? extends Entity> clazz; if (Strings.isEmpty(type)) { clazz = BasicApplication.class; } else { Class<? extends Entity> tempclazz; try { tempclazz = getCatalog().loadClassByType(type, Entity.class); } catch (NoSuchElementException e) { try { tempclazz = (Class<? extends Entity>) getCatalog().getRootClassLoader().loadClass(type); log.info( "Catalog does not contain item for type {}; loaded class directly instead", type); } catch (ClassNotFoundException e2) { log.warn( "No catalog item for type {}, and could not load class directly; rethrowing", type); throw e; } } clazz = tempclazz; } if (Entitlements.isEntitled(mgmt.getEntitlementManager(), Entitlements.INVOKE_EFFECTOR, null)) { try { if (ApplicationBuilder.class.isAssignableFrom(clazz)) { Constructor<?> constructor = clazz.getConstructor(); ApplicationBuilder appBuilder = (ApplicationBuilder) constructor.newInstance(); if (!Strings.isEmpty(name)) appBuilder.appDisplayName(name); if (entities.size() > 0) log.warn( "Cannot supply additional entities when using an ApplicationBuilder; ignoring in spec {}", spec); log.info("REST placing '{}' under management", spec.getName()); appBuilder.configure(convertFlagsToKeys(appBuilder.getType(), configO)); configureRenderingMetadata(spec, appBuilder); instance = appBuilder.manage(mgmt); } else if (Application.class.isAssignableFrom(clazz)) { brooklyn.entity.proxying.EntitySpec<?> coreSpec = toCoreEntitySpec(clazz, name, configO); configureRenderingMetadata(spec, coreSpec); instance = (Application) mgmt.getEntityManager().createEntity(coreSpec); for (EntitySpec entitySpec : entities) { log.info("REST creating instance for entity {}", entitySpec.getType()); instance.addChild(mgmt.getEntityManager().createEntity(toCoreEntitySpec(entitySpec))); } log.info( "REST placing '{}' under management", spec.getName() != null ? spec.getName() : spec); Entities.startManagement(instance, mgmt); } else if (Entity.class.isAssignableFrom(clazz)) { if (entities.size() > 0) log.warn( "Cannot supply additional entities when using a non-application entity; ignoring in spec {}", spec); brooklyn.entity.proxying.EntitySpec<?> coreSpec = toCoreEntitySpec(BasicApplication.class, name, configO); configureRenderingMetadata(spec, coreSpec); instance = (Application) mgmt.getEntityManager().createEntity(coreSpec); final Class<? extends Entity> eclazz = getCatalog().loadClassByType(spec.getType(), Entity.class); Entity soleChild = mgmt.getEntityManager().createEntity(toCoreEntitySpec(eclazz, name, configO)); instance.addChild(soleChild); instance.addEnricher(Enrichers.builder().propagatingAll().from(soleChild).build()); log.info("REST placing '{}' under management", spec.getName()); Entities.startManagement(instance, mgmt); } else { throw new IllegalArgumentException( "Class " + clazz + " must extend one of ApplicationBuilder, Application or Entity"); } return instance; } catch (Exception e) { log.error("REST failed to create application: " + e, e); throw Exceptions.propagate(e); } } throw WebResourceUtils.unauthorized( "User '%s' is not authorized to create application from applicationSpec %s", Entitlements.getEntitlementContext().user(), spec); }
@BeforeMethod(alwaysRun = true) public void setup() { app = ApplicationBuilder.newManagedApp(TestApplication.class); loc = new LocalhostMachineProvisioningLocation(); }
@BeforeMethod(alwaysRun = true) public void setUp() throws Exception { app = ApplicationBuilder.newManagedApp(TestApplication.class); entity = app.createAndManageChild(TestEntity.Spec.newInstance()); managementContext = app.getManagementContext(); }
@BeforeMethod(groups = "Integration") public void setup() { app = ApplicationBuilder.newManagedApp(TestApplication.class); testLocation = new LocalhostMachineProvisioningLocation(); }
@BeforeMethod(alwaysRun = true) public void setup() { app = ApplicationBuilder.newManagedApp(TestApplication.class); }