/** * @param application */ public static void addRegistry(Application<ApplicationConfiguration> application, MetricRegistry registry) { String applicationName = application.getConfiguration().getName(); if (registries.containsKey(applicationName)) { return; } registries.put(applicationName, registry); }
/** * @param application */ public static void removeRegistry(Application<ApplicationConfiguration> application) { String applicationName = application.getConfiguration().getName(); if (! registries.containsKey(applicationName)) { return; } registries.remove(applicationName); }
protected void loadApplications() { logger.info("Loading the applications"); for (Application<ApplicationConfiguration> application : ServiceLoader.load(Application.class)) { String mountPath = configuration.getMounts().get(application.getClass().getName()); if (mountPath == null) { mountPath = application.getConfiguration().getBasePath(); } else { application.getConfiguration().setBasePath(mountPath); } mount(application); } }
protected static String[] getPackagesToScan(Application<ApplicationConfiguration> application) { return application.getConfiguration().getDatabaseConfiguration().getPackagesToScan().toArray(new String[0]); } }
protected void registerGuages() { metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "activeConnections"), new Gauge<Integer>() { @Override metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "awaitingCheckout"), new Gauge<Integer>() { @Override metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "idleConnections"), new Gauge<Integer>() { @Override metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "cachedStatements"), new Gauge<Integer>() { @Override metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "totalConnections"), new Gauge<Integer>() { @Override metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "failedCheckins"), new Gauge<Long>() { @Override metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "failedCheckouts"), new Gauge<Long>() { @Override metricRegistry.register(MetricRegistry.name(application.getConfiguration().getName(), "datasource", "failedIdleTests"),
/** * Maps application to its mount path. If the mount path already exists or if the application is already mapped to another mount path, * throws an exception * * @param application * @param mountPath */ public void addApplication(Application<ApplicationConfiguration> application) { String mountPath = structureUrl(application.getConfiguration().getBasePath()); String path = getAbsolutePath(mountPath); if (applications.containsKey(path)) { throw new IllegalArgumentException("Mount path - " + mountPath + " already exists. Either change the application base path or override it in container"); } if (applications.containsValue(application)) { throw new IllegalArgumentException("Application - " + application + " is already mounted on a different mount path"); } application.setPath(HttpUtil.createURI(path)); applications.put(path, application); }
protected void init() { DatabaseConfiguration configuration = application.getConfiguration().getDatabaseConfiguration(); if (configuration == null) { return; } statistics = configuration.getDataSourceProvider().getStatistics(); if (statistics == null) { return; } metricRegistry = MetricRegistries.getRegistry(application.getConfiguration().getName()); registerGuages(); }
/** * Mounts the application on the container * * @param application */ protected void mount(Application<ApplicationConfiguration> application) { logger.info("Mounting the application {} on the mount path {}", application, application.getConfiguration().getBasePath()); application.getConfiguration().setParent(configuration); for (ContainerLifecycleListener listener : listeners) { listener.preMount(application); } application.init(); applicationMapping.addApplication(application); for (ContainerLifecycleListener listener : listeners) { listener.postMount(application); } }
public void init(Application<? extends ApplicationConfiguration> application) { List<PersistenceProvider> providers = getProviders(); if (providers == null || providers.isEmpty()) { throw new MinnalException("No JPA persistence provider found"); } PersistenceProvider provider = providers.get(0); PersistenceUnitInfo info = createPersistenceUnitInfo(application.getConfiguration(), provider); factory = provider.createContainerEntityManagerFactory(info, null); JPA.instance.addPersistenceUnit(info.getPersistenceUnitName(), factory); application.addListener(new JerseyApplicationEventListener(application.getConfiguration().getDatabaseConfiguration())); }
@Override public void postMount(Application<ApplicationConfiguration> application) { application.addFilter(new ResponseTransformationFilter(application.getConfiguration().getResponsePropertiesToExclude(), namingStrategy)); application.getObjectMapper().registerModule(new MinnalModule()); if (application.getConfiguration().isInstrumentationEnabled()) { createApplicationEnhancer(application).enhance(); } }
@Override public void onComplete(MessageContext context) { String name = null; Boolean successful = (Boolean) context.getAttribute(SUCCESSFUL); if (successful == null) { name = MetricRegistry.name(context.getApplication().getConfiguration().getName(), EXCEPTIONS); MetricRegistries.getRegistry(context.getApplication().getConfiguration().getName()).meter(name).mark(); } else { if (! successful) { name = getMetricName(context, Integer.toString(context.getResponse().getStatus().code())); MetricRegistries.getRegistry(context.getApplication().getConfiguration().getName()).meter(name).mark(); } name = getMetricName(context, RESPONSE_TIME); Timer timer = MetricRegistries.getRegistry(context.getApplication().getConfiguration().getName()).timer(name); timer.update(clock.getTick() - (Long) context.getAttribute(START_TIME), TimeUnit.NANOSECONDS); } } }
@Override public void onApplicationResolved(MessageContext context) { ApplicationContext.instance().setApplicationConfiguration(context.getApplication().getConfiguration()); for (final MessageListener listener : messageListeners) { invoke(new ListenerInvoker(){ @Override public void invoke(MessageContext context) { listener.onApplicationResolved(context); } }, context); } }
protected String getMetricName(MessageContext context, String metricName) { String name = null; if (! Strings.isNullOrEmpty(context.getMatchedRoute())) { name = context.getMatchedRoute(); } else { name = context.getApplication().getConfiguration().getName(); } name = formatName(name); return MetricRegistry.name(name, context.getRequest().getMethod().toString(), metricName); }
public void init(Application<? extends ApplicationConfiguration> application) { DatabaseConfiguration dbConfig = application.getConfiguration().getDatabaseConfiguration(); URI uri = getUri(dbConfig.getUrl()); if (Strings.isNullOrEmpty(uri.getPath())) { flyway.setDataSource(dbConfig.getUrl(), dbConfig.getUsername(), dbConfig.getPassword()); } else { flyway.setDataSource(getUrl(uri, false), dbConfig.getUsername(), dbConfig.getPassword()); flyway.setSchemas(uri.getPath().substring(1)); } flyway.migrate(); }
@Override public void init(Application<? extends ApplicationConfiguration> application) { ApplicationConfiguration applicationConfiguration = application.getConfiguration(); if (! (applicationConfiguration instanceof SecurityAware)) { return; } SecurityConfiguration configuration = ((SecurityAware) applicationConfiguration).getSecurityConfiguration(); clients.init(); CallbackFilter callbackFilter = new CallbackFilter(clients, configuration); callbackFilter.registerListener(listener); application.addFilter(callbackFilter); application.addFilter(new AuthenticationFilter(clients, configuration)); application.addFilter(new SecurityContextFilter(configuration)); application.getResourceConfig().register(RolesAllowedDynamicFeature.class); }