com.codahale.metrics.MetricRegistry

Here are the examples of the java api com.codahale.metrics.MetricRegistry taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

814 Examples 7

19 Source : ZmsMetricsRegistry.java
with Apache License 2.0
from ZTO-Express

/**
 * Created by superheizai on 2017/9/5.
 */
clreplaced ZmsMetricsRegistry {

    static final MetricRegistry REGISTRY = new MetricRegistry();

    static final String buildName(String producerMetricGroup, String type, String clientName, String zmsName) {
        return producerMetricGroup + "--" + type + "--" + zmsName + "--" + ZmsConst.ZMS_IP.replace(".", "_") + "--" + clientName;
    }
}

19 Source : VectorAccessibleSerializable.java
with Apache License 2.0
from zpochen

/**
 * A wrapper around a VectorAccessible. Will serialize a VectorAccessible and
 * write to an OutputStream, or can read from an InputStream and construct a new
 * VectorContainer.
 */
public clreplaced VectorAccessibleSerializable extends AbstractStreamSerializable {

    static final MetricRegistry metrics = DrillMetrics.getRegistry();

    static final String WRITER_TIMER = MetricRegistry.name(VectorAccessibleSerializable.clreplaced, "writerTime");

    private VectorContainer va;

    private WritableBatch batch;

    private final BufferAllocator allocator;

    private int recordCount = -1;

    private BatchSchema.SelectionVectorMode svMode = BatchSchema.SelectionVectorMode.NONE;

    private SelectionVector2 sv2;

    private long timeNs;

    private boolean retain = false;

    public VectorAccessibleSerializable(BufferAllocator allocator) {
        this.allocator = allocator;
        va = new VectorContainer();
    }

    public VectorAccessibleSerializable(WritableBatch batch, BufferAllocator allocator) {
        this(batch, null, allocator);
    }

    /**
     * Creates a wrapper around batch and sv2 for writing to a stream. sv2 will
     * never be released by this clreplaced, and ownership is maintained by caller.
     *
     * @param batch
     * @param sv2
     * @param allocator
     */
    public VectorAccessibleSerializable(WritableBatch batch, SelectionVector2 sv2, BufferAllocator allocator) {
        this.allocator = allocator;
        this.batch = batch;
        if (sv2 != null) {
            this.sv2 = sv2;
            svMode = BatchSchema.SelectionVectorMode.TWO_BYTE;
        }
    }

    /**
     * Reads from an InputStream and parses a RecordBatchDef. From this, we
     * construct a SelectionVector2 if it exits and construct the vectors and add
     * them to a vector container
     *
     * @param input
     *          the InputStream to read from
     * @throws IOException
     */
    @Override
    public void readFromStream(InputStream input) throws IOException {
        final UserBitShared.RecordBatchDef batchDef = UserBitShared.RecordBatchDef.parseDelimitedFrom(input);
        recordCount = batchDef.getRecordCount();
        if (batchDef.hasCarriesTwoByteSelectionVector() && batchDef.getCarriesTwoByteSelectionVector()) {
            readSv2(input);
        }
        readVectors(input, batchDef);
    }

    private void readSv2(InputStream input) throws IOException {
        if (sv2 != null) {
            sv2.clear();
        }
        final int dataLength = recordCount * SelectionVector2.RECORD_SIZE;
        svMode = BatchSchema.SelectionVectorMode.TWO_BYTE;
        @SuppressWarnings("resource")
        DrillBuf buf = allocator.read(dataLength, input);
        sv2 = new SelectionVector2(allocator, buf, recordCount);
        // SV2 now owns the buffer
        buf.release();
    }

    @SuppressWarnings("resource")
    private void readVectors(InputStream input, RecordBatchDef batchDef) throws IOException {
        final VectorContainer container = new VectorContainer();
        final List<ValueVector> vectorList = Lists.newArrayList();
        final List<SerializedField> fieldList = batchDef.getFieldList();
        for (SerializedField metaData : fieldList) {
            final int dataLength = metaData.getBufferLength();
            final MaterializedField field = MaterializedField.create(metaData);
            final DrillBuf buf = allocator.read(dataLength, input);
            final ValueVector vector = TypeHelper.getNewVector(field, allocator);
            vector.load(metaData, buf);
            // Vector now owns the buffer
            buf.release();
            vectorList.add(vector);
        }
        container.addCollection(vectorList);
        container.buildSchema(svMode);
        container.setRecordCount(recordCount);
        va = container;
    }

    // Like above, only preserve the original container and list of value-vectors
    @SuppressWarnings("resource")
    public void readFromStreamWithContainer(VectorContainer myContainer, InputStream input) throws IOException {
        final VectorContainer container = new VectorContainer();
        final UserBitShared.RecordBatchDef batchDef = UserBitShared.RecordBatchDef.parseDelimitedFrom(input);
        recordCount = batchDef.getRecordCount();
        if (batchDef.hasCarriesTwoByteSelectionVector() && batchDef.getCarriesTwoByteSelectionVector()) {
            if (sv2 == null) {
                sv2 = new SelectionVector2(allocator);
            }
            sv2.allocateNew(recordCount * SelectionVector2.RECORD_SIZE);
            sv2.getBuffer().setBytes(0, input, recordCount * SelectionVector2.RECORD_SIZE);
            svMode = BatchSchema.SelectionVectorMode.TWO_BYTE;
        }
        final List<ValueVector> vectorList = Lists.newArrayList();
        final List<SerializedField> fieldList = batchDef.getFieldList();
        for (SerializedField metaData : fieldList) {
            final int dataLength = metaData.getBufferLength();
            final MaterializedField field = MaterializedField.create(metaData);
            final DrillBuf buf = allocator.buffer(dataLength);
            final ValueVector vector;
            try {
                buf.writeBytes(input, dataLength);
                vector = TypeHelper.getNewVector(field, allocator);
                vector.load(metaData, buf);
            } finally {
                buf.release();
            }
            vectorList.add(vector);
        }
        container.addCollection(vectorList);
        container.setRecordCount(recordCount);
        // transfer the vectors
        myContainer.transferIn(container);
        myContainer.buildSchema(svMode);
        myContainer.setRecordCount(recordCount);
        /*
    // for debugging -- show values from the first row
    Object tmp0 = (myContainer).getValueAccessorById(NullableVarCharVector.clreplaced, 0).getValueVector();
    Object tmp1 = (myContainer).getValueAccessorById(NullableVarCharVector.clreplaced, 1).getValueVector();
    Object tmp2 = (myContainer).getValueAccessorById(NullableBigIntVector.clreplaced, 2).getValueVector();
    if (tmp0 != null && tmp1 != null && tmp2 != null) {
      NullableVarCharVector vv0 = ((NullableVarCharVector) tmp0);
      NullableVarCharVector vv1 = ((NullableVarCharVector) tmp1);
      NullableBigIntVector vv2 = ((NullableBigIntVector) tmp2);

      try {
        logger.info("HASH AGG: Got a row = {} , {} , {}", vv0.getAccessor().get(0), vv1.getAccessor().get(0), vv2.getAccessor().get(0));
      } catch (Exception e) { logger.info("HASH AGG: Got an exception = {}",e); }
    }
    else { logger.info("HASH AGG: got nulls !!!"); }
    */
        va = myContainer;
    }

    public void writeToStreamAndRetain(OutputStream output) throws IOException {
        retain = true;
        writeToStream(output);
    }

    /**
     * Serializes the VectorAccessible va and writes it to an output stream
     * @param output the OutputStream to write to
     * @throws IOException
     */
    @SuppressWarnings("resource")
    @Override
    public void writeToStream(OutputStream output) throws IOException {
        Preconditions.checkNotNull(output);
        final Timer.Context timerContext = metrics.timer(WRITER_TIMER).time();
        final DrillBuf[] incomingBuffers = batch.getBuffers();
        final UserBitShared.RecordBatchDef batchDef = batch.getDef();
        try {
            /* Write the metadata to the file */
            batchDef.writeDelimitedTo(output);
            /* If we have a selection vector, dump it to file first */
            if (svMode == BatchSchema.SelectionVectorMode.TWO_BYTE) {
                recordCount = sv2.getCount();
                final int dataLength = recordCount * SelectionVector2.RECORD_SIZE;
                allocator.write(sv2.getBuffer(false), dataLength, output);
            }
            /* Dump the array of ByteBuf's replacedociated with the value vectors */
            for (DrillBuf buf : incomingBuffers) {
                /* dump the buffer into the OutputStream */
                allocator.write(buf, output);
            }
            timeNs += timerContext.stop();
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            clear();
        }
    }

    public void clear() {
        if (!retain) {
            batch.clear();
            if (sv2 != null) {
                sv2.clear();
            }
        }
    }

    public VectorContainer get() {
        return va;
    }

    public SelectionVector2 getSv2() {
        return sv2;
    }

    public long getTimeNs() {
        return timeNs;
    }
}

19 Source : WebConfigurerTest.java
with Apache License 2.0
from yodamad

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private MetricRegistry metricRegistry;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(mock(FilterRegistration.Dynamic.clreplaced)).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(mock(ServletRegistration.Dynamic.clreplaced)).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        webConfigurer = new WebConfigurer(env, props);
    }

    @Test
    public void testStartUpProdServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addFilter(eq("cachingHttpHeadersFilter"), any(CachingHttpHeadersFilter.clreplaced));
        verify(servletContext, never()).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext, never()).addFilter(eq("cachingHttpHeadersFilter"), any(CachingHttpHeadersFilter.clreplaced));
        verify(servletContext).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        if (container.getDoreplacedentRoot() != null) {
            replacedertThat(container.getDoreplacedentRoot().getPath()).isEqualTo(FilenameUtils.separatorsToSystem("target/www"));
        }
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        props.getHttp().setVersion(JHipsterProperties.Http.Version.V_2_0);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }
}

19 Source : PrometheusReporter.java
with Apache License 2.0
from yangfuhai

@Override
public void report(MetricRegistry metricRegistry) {
    // new DropwizardExports(metricRegistry).register();
    // 使用 PrometheusExports 主要是可以添加 application 和 instance 的参数
    // 例如 jvm_memory_total_used{application="jboot",instance="192.168.3.24:8818",} 1.521354E8
    new PrometheusExports(metricRegistry).register();
}

19 Source : GangliaReporter.java
with Apache License 2.0
from yangfuhai

@Override
public void report(MetricRegistry metricRegistry) {
}

19 Source : JbootConsoleReporter.java
with Apache License 2.0
from yangfuhai

@Override
public void report(MetricRegistry metricRegistry) {
    final ConsoleReporter reporter = ConsoleReporter.forRegistry(metricRegistry).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build();
    reporter.start(1, TimeUnit.MINUTES);
}

19 Source : JbootMetricManager.java
with Apache License 2.0
from yangfuhai

public clreplaced JbootMetricManager {

    private static final Log LOG = Log.getLog(JbootMetricManager.clreplaced);

    private static JbootMetricManager me;

    public static JbootMetricManager me() {
        if (me == null) {
            me = new JbootMetricManager();
        }
        return me;
    }

    private MetricRegistry metricRegistry;

    private HealthCheckRegistry healthCheckRegistry;

    private JbootMetricConfig metricsConfig = Jboot.config(JbootMetricConfig.clreplaced);

    private boolean enable = false;

    private JbootMetricManager() {
        if (!metricsConfig.isConfigOk() || !metricsConfig.isEnable()) {
            return;
        }
        metricRegistry = new MetricRegistry();
        healthCheckRegistry = new HealthCheckRegistry();
        if (metricsConfig.isJvmMetricEnable()) {
            metricRegistry.register("jvm.uptime", (Gauge<Long>) () -> ManagementFactory.getRuntimeMXBean().getUptime());
            metricRegistry.register("jvm.start_time", (Gauge<Long>) () -> ManagementFactory.getRuntimeMXBean().getStartTime());
            metricRegistry.register("jvm.current_time", (Gauge<Long>) () -> System.nanoTime());
            metricRegistry.register("jvm.clreplacedes", new ClreplacedLoadingGaugeSet());
            metricRegistry.register("jvm.attribute", new JvmAttributeGaugeSet());
            metricRegistry.register("jvm.fd", new FileDescriptorRatioGauge());
            metricRegistry.register("jvm.buffers", new BufferPoolMetricSet(ManagementFactory.getPlatformMBeanServer()));
            metricRegistry.register("jvm.gc", new GarbageCollectorMetricSet());
            metricRegistry.register("jvm.memory", new MemoryUsageGaugeSet());
            metricRegistry.register("jvm.threads", new CachedThreadStatesGaugeSet(10, TimeUnit.SECONDS));
            metricRegistry.registerAll(new JvmCpuGaugeSet());
            metricRegistry.registerAll(new JvmGcMetrics(metricRegistry));
            metricRegistry.registerAll(new ProcessFilesGaugeSet());
            healthCheckRegistry.register("jvm.thread_deadlocks", new ThreadDeadlockHealthCheck());
        }
        List<JbootMetricReporter> reporters = getReporters();
        if (ArrayUtil.isNullOrEmpty(reporters)) {
            return;
        }
        for (JbootMetricReporter reporter : reporters) {
            try {
                reporter.report(metricRegistry);
            } catch (Throwable ex) {
                LOG.error(ex.toString(), ex);
            }
        }
        this.enable = true;
    }

    public boolean isEnable() {
        return enable;
    }

    private List<JbootMetricReporter> getReporters() {
        String repoterString = metricsConfig.getReporter();
        if (StrUtil.isBlank(repoterString)) {
            return null;
        }
        List<JbootMetricReporter> reporters = new ArrayList<>();
        String[] repoterStrings = repoterString.split(",");
        for (String repoterName : repoterStrings) {
            JbootMetricReporter reporter = getReporterByName(repoterName);
            if (reporter != null) {
                reporters.add(reporter);
            }
        }
        return reporters;
    }

    private JbootMetricReporter getReporterByName(String repoterName) {
        JbootMetricReporter reporter = null;
        switch(repoterName) {
            case JbootMetricConfig.REPORTER_JMX:
                reporter = new JMXReporter();
                break;
            case JbootMetricConfig.REPORTER_INFLUXDB:
                reporter = new InfluxdbReporter();
                break;
            case JbootMetricConfig.REPORTER_GRAPHITE:
                reporter = new JbootGraphiteReporter();
                break;
            case JbootMetricConfig.REPORTER_ELASTICSEARCH:
                reporter = new ElasticsearchReporter();
                break;
            case JbootMetricConfig.REPORTER_GANGLIA:
                reporter = new GangliaReporter();
                break;
            case JbootMetricConfig.REPORTER_CONSOLE:
                reporter = new JbootConsoleReporter();
                break;
            case JbootMetricConfig.REPORTER_CSV:
                reporter = new CSVReporter();
                break;
            case JbootMetricConfig.REPORTER_SLF4J:
                reporter = new JbootSlf4jReporter();
                break;
            case JbootMetricConfig.REPORTER_PROMETHEUS:
                reporter = new PrometheusReporter();
                break;
            default:
                reporter = JbootSpiLoader.load(JbootMetricReporter.clreplaced, repoterName);
        }
        return reporter;
    }

    public MetricRegistry metric() {
        return metricRegistry;
    }

    public HealthCheckRegistry healthCheck() {
        return healthCheckRegistry;
    }
}

19 Source : LoggingJacksonModule.java
with Apache License 2.0
from YANG-DB

public clreplaced LoggingJacksonModule extends ModuleBase {

    // region Constructors
    public LoggingJacksonModule() {
    }

    public LoggingJacksonModule(MetricRegistry metricRegistry) {
        this.metricRegistry = metricRegistry;
        this.enabled = true;
    }

    // endregion
    // region Module Implementation
    @Override
    protected void configureInner(Env env, Config config, Binder binder) throws Throwable {
        if (this.enabled) {
            ObjectMapper mapper = new ObjectMapper();
            Locale locale = env.locale();
            mapper.setDateFormat(new SimpleDateFormat(config.getString("application.dateFormat"), locale));
            mapper.setLocale(locale);
            mapper.setTimeZone(TimeZone.getTimeZone(config.getString("application.tz")));
            mapper.registerModule(new Jdk8Module());
            mapper.registerModule(new JavaTimeModule());
            mapper.registerModule(new ParameterNamesModule());
            Renderer renderer = new LoggingJacksonRenderer(mapper, MediaType.json, LoggerFactory.getLogger(LoggingJacksonRenderer.clreplaced), this.metricRegistry);
            Multibinder.newSetBinder(binder, Renderer.clreplaced).addBinding().toInstance(renderer);
            binder.bind(Key.get(Renderer.clreplaced, Names.named(renderer.toString()))).toInstance(renderer);
        }
    }

    // endregion
    // region Fields
    private MetricRegistry metricRegistry;

    private boolean enabled = false;
    // endregion
}

19 Source : LoggingJacksonRendererRegistrar.java
with Apache License 2.0
from YANG-DB

public clreplaced LoggingJacksonRendererRegistrar implements AppRegistrar {

    // region Constructors
    public LoggingJacksonRendererRegistrar(MetricRegistry metricRegistry) {
        this.metricRegistry = metricRegistry;
    }

    // endregion
    // region AppRegistrar Implementation
    @Override
    public void register(Jooby app, AppUrlSupplier appUrlSupplier) {
        app.use(new LoggingJacksonModule(this.metricRegistry));
        app.use(new Jackson());
    }

    // endregion
    // region Fields
    protected MetricRegistry metricRegistry;
    // endregion
}

19 Source : ElementControllerCompositTest.java
with Apache License 2.0
from YANG-DB

/**
 * Created by lior.perry on 19/03/2017.
 */
public clreplaced ElementControllerCompositTest {

    Client client;

    ElasticGraphConfiguration configuration;

    MetricRegistry registry;

    @Before
    public void setUp() throws Exception {
        registry = new MetricRegistry();
        client = mock(Client.clreplaced);
        configuration = mock(ElasticGraphConfiguration.clreplaced);
        when(configuration.getElasticGraphScrollSize()).thenReturn(1000);
        when(configuration.getElasticGraphScrollTime()).thenReturn(1000);
        when(configuration.getElasticGraphMaxSearchSize()).thenReturn(1000L);
        SearchResponse searchResponse = mock(SearchResponse.clreplaced);
        ListenableActionFuture actionFuture = mock(ListenableActionFuture.clreplaced);
        SearchRequestBuilder requestBuilder = mock(SearchRequestBuilder.clreplaced);
        SearchScrollRequestBuilder scrollRequestBuilder = mock(SearchScrollRequestBuilder.clreplaced);
        // client
        when(client.prepareSearchScroll(anyString())).thenReturn(scrollRequestBuilder);
        when(client.prepareSearch()).thenReturn(requestBuilder);
        when(client.prepareSearch(Matchers.any(String[].clreplaced))).then(invocationOnMock -> requestBuilder);
        when(client.search(Matchers.any())).thenReturn(actionFuture);
        when(client.searchScroll(Matchers.any())).thenReturn(actionFuture);
        // SearchRequestBuilder
        when(requestBuilder.setScroll(Matchers.any(TimeValue.clreplaced))).thenReturn(requestBuilder);
        when(requestBuilder.setSize(anyInt())).thenReturn(requestBuilder);
        when(requestBuilder.setSearchType(Matchers.any(SearchType.clreplaced))).thenReturn(requestBuilder);
        when(requestBuilder.addSort(anyString(), any())).thenReturn(requestBuilder);
        when(requestBuilder.execute()).thenReturn(actionFuture);
        // scrollRequestBuilder
        when(scrollRequestBuilder.setScroll(Matchers.any(TimeValue.clreplaced))).thenReturn(scrollRequestBuilder);
        when(scrollRequestBuilder.execute()).thenReturn(actionFuture);
        // ListenableActionFuture
        when(actionFuture.actionGet()).thenReturn(searchResponse);
        // searchResponse
        when(searchResponse.getScrollId()).thenReturn("a");
        // search hits
        Map<String, DoreplacedentField> fields = new HashMap<>();
        fields.put("name", new DoreplacedentField("name", Collections.singletonList("myName")));
        fields.put("type", new DoreplacedentField("type", Collections.singletonList("myType")));
        SearchHit[] tests = new SearchHit[] { new SearchHit(1, "1", new Text("test"), fields) };
        SearchHits searchHits = new SearchHits(tests, 10, 1.0f);
        when(searchResponse.getHits()).thenReturn(searchHits);
    }

    @Test
    @Ignore
    public void testSingleIdPromiseVertexWithLimit() {
        UniGraph graph = mock(UniGraph.clreplaced);
        SearchOrderProviderFactory orderProvider = context -> {
            return SearchOrderProvider.of(SearchOrderProvider.EMPTY, SearchType.DEFAULT);
        };
        PredicatesHolder predicatesHolder = mock(PredicatesHolder.clreplaced);
        when(predicatesHolder.getPredicates()).thenReturn(Collections.emptyList());
        SearchQuery searchQuery = mock(SearchQuery.clreplaced);
        when(searchQuery.getLimit()).thenReturn(10);
        when(searchQuery.getReturnType()).thenReturn(Vertex.clreplaced);
        when(searchQuery.getPredicates()).thenReturn(predicatesHolder);
        SearchQuery.SearchController elementController = new ElementController(new LoggingSearchController(new PromiseElementVertexController(client, configuration, graph, new EmptyGraphElementSchemaProvider(), orderProvider), registry), new LoggingSearchController(new PromiseElementEdgeController(client, configuration, graph, new EmptyGraphElementSchemaProvider()), registry));
        List<Vertex> vertices = Stream.ofAll(() -> (Iterator<Vertex>) elementController.search(searchQuery)).toJavaList();
        replacedert.replacedertTrue(vertices.size() == 10);
        replacedert.replacedertTrue(vertices.get(0).id().equals("1"));
        replacedert.replacedertTrue(vertices.get(0).label().equals("promise"));
        replacedert.replacedertTrue(vertices.get(0).getClreplaced().equals(PromiseVertex.clreplaced));
        PromiseVertex promiseVertex = (PromiseVertex) vertices.get(0);
        replacedert.replacedertTrue(promiseVertex.getPromise().getId().equals("1"));
        replacedert.replacedertTrue(promiseVertex.getPromise().getClreplaced().equals(IdPromise.clreplaced));
    }
}

19 Source : PersistantNodeStatusResource.java
with Apache License 2.0
from YANG-DB

public clreplaced PersistantNodeStatusResource implements NodeStatusResource {

    public static final String SYSTEM = "fuse_node_info";

    public static final String ID = "id";

    public static final String DATA = "data";

    public static final String UPDATE_TIME = "updateTime";

    public static final String RESOURCE = "resource";

    public static final String nodeName = "PersistantNodeStatusResource.@nodeName";

    private String name;

    private Client client;

    private MetricRegistry registry;

    @Inject
    public PersistantNodeStatusResource(@Named(globalClient) Client client, MetricRegistry registry) throws UnknownHostException {
        this.name = InetAddress.getLocalHost().getHostAddress();
        this.client = client;
        this.registry = registry;
    }

    @Override
    public Map<String, Object> getMetrics() {
        return getMetrics(name);
    }

    @Override
    public Map<String, Object> getMetrics(String node) {
        try {
            final GetResponse response = client.prepareGet(SYSTEM, RESOURCE, node).get();
            if (response.isExists())
                return Collections.emptyMap();
        } catch (IndexNotFoundException e) {
            final CreateIndexResponse response = this.client.admin().indices().create(new CreateIndexRequest().waitForActiveShards(ActiveShardCount.ALL).index(SYSTEM)).actionGet();
        }
        return Collections.emptyMap();
    }

    @Override
    public boolean report() {
        try {
            IndexResponse response = client.prepareIndex(SYSTEM, RESOURCE, name).setSource(jsonBuilder().startObject().field(NODE, name).field(UPDATE_TIME, System.currentTimeMillis()).field(DATA, logStatus()).endObject()).execute().actionGet();
            return response.status() == RestStatus.CREATED || response.status() == RestStatus.OK;
        } catch (IndexNotFoundException e) {
            this.client.admin().indices().create(new CreateIndexRequest().waitForActiveShards(ActiveShardCount.ALL).index(SYSTEM)).actionGet();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return false;
    }

    private Map<String, Object> logStatus() {
        Map<String, Object> stats = new HashMap<>();
        registry.getMetrics().forEach((key, value) -> {
            switch(key) {
                case "memory.total.used":
                    stats.put(key, ((Gauge) value).getValue());
                    break;
                case "memory.heap.usage":
                    stats.put(key, ((Gauge) value).getValue());
                    break;
                case "threads.count":
                    stats.put(key, ((Gauge) value).getValue());
                    break;
                case "cursor.count":
                    stats.put(key, ((Counter) value).getCount());
                    break;
            }
        });
        return stats;
    }
}

19 Source : InMemNodeStatusResource.java
with Apache License 2.0
from YANG-DB

public clreplaced InMemNodeStatusResource implements NodeStatusResource {

    public static final String ID = "id";

    private String name;

    private MetricRegistry registry;

    @Inject
    public InMemNodeStatusResource(MetricRegistry registry) throws UnknownHostException {
        this.name = InetAddress.getLocalHost().getHostAddress();
        this.registry = registry;
    }

    @Override
    public Map<String, Object> getMetrics() {
        return getMetrics(name);
    }

    @Override
    public Map<String, Object> getMetrics(String node) {
        return Collections.unmodifiableMap(logStatus(registry));
    }

    @Override
    public boolean report() {
        return true;
    }

    private Map<String, Object> logStatus(MetricRegistry registry) {
        Map<String, Object> stats = new HashMap<>();
        registry.getMetrics().forEach((key, value) -> {
            switch(key) {
                case "memory.total.used":
                    stats.put(key, ((Gauge) value).getValue());
                    break;
                case "memory.heap.usage":
                    stats.put(key, ((Gauge) value).getValue());
                    break;
                case "threads.count":
                    stats.put(key, ((Gauge) value).getValue());
                    break;
                case "cursor.count":
                    stats.put(key, ((Counter) value).getCount());
                    break;
            }
        });
        return stats;
    }
}

19 Source : InMemNodeStatusResource.java
with Apache License 2.0
from YANG-DB

private Map<String, Object> logStatus(MetricRegistry registry) {
    Map<String, Object> stats = new HashMap<>();
    registry.getMetrics().forEach((key, value) -> {
        switch(key) {
            case "memory.total.used":
                stats.put(key, ((Gauge) value).getValue());
                break;
            case "memory.heap.usage":
                stats.put(key, ((Gauge) value).getValue());
                break;
            case "threads.count":
                stats.put(key, ((Gauge) value).getValue());
                break;
            case "cursor.count":
                stats.put(key, ((Counter) value).getCount());
                break;
        }
    });
    return stats;
}

19 Source : M1ElasticUniGraphProvider.java
with Apache License 2.0
from YANG-DB

/**
 * Created by Roman on 06/04/2017.
 */
public clreplaced M1ElasticUniGraphProvider implements UniGraphProvider {

    // region Constructors
    @Inject
    private MetricRegistry metricRegistry;

    @Inject
    public M1ElasticUniGraphProvider(Client client, ElasticGraphConfiguration elasticGraphConfiguration, UniGraphConfiguration uniGraphConfiguration, GraphElementSchemaProviderFactory schemaProviderFactory, SearchOrderProviderFactory orderProviderFactory) {
        this.client = client;
        this.elasticGraphConfiguration = elasticGraphConfiguration;
        this.uniGraphConfiguration = uniGraphConfiguration;
        this.schemaProviderFactory = schemaProviderFactory;
        this.orderProviderFactory = orderProviderFactory;
    }

    // endregion
    @Override
    public UniGraph getGraph(Ontology ontology) throws Exception {
        return new FuseUniGraph(this.uniGraphConfiguration, controllerManagerFactory(schemaProviderFactory.get(ontology)), new FuseStandardStrategyProvider());
    }

    // region Private Methods
    /**
     * default controller Manager
     * @return
     */
    private ControllerManagerFactory controllerManagerFactory(GraphElementSchemaProvider schemaProvider) {
        return uniGraph -> new ControllerManager() {

            @Override
            public Set<UniQueryController> getControllers() {
                return ImmutableSet.of(new ElementController(new LoggingSearchController(new PromiseElementVertexController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProviderFactory), metricRegistry), new LoggingSearchController(new PromiseElementEdgeController(client, elasticGraphConfiguration, uniGraph, schemaProvider), metricRegistry)), new LoggingSearchVertexController(new PromiseVertexController(client, elasticGraphConfiguration, uniGraph, schemaProvider), metricRegistry), new LoggingSearchVertexController(new PromiseVertexFilterController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProviderFactory), metricRegistry));
            }

            @Override
            public void close() {
            }
        };
    }

    // endregion
    // region Fields
    private final Client client;

    private final ElasticGraphConfiguration elasticGraphConfiguration;

    private final UniGraphConfiguration uniGraphConfiguration;

    private final GraphElementSchemaProviderFactory schemaProviderFactory;

    private final SearchOrderProviderFactory orderProviderFactory;
    // endregion
}

19 Source : M1ElasticUniGraphProvider.java
with Apache License 2.0
from YANG-DB

/**
 * Created by Roman on 06/04/2017.
 */
public clreplaced M1ElasticUniGraphProvider implements UniGraphProvider {

    // region Constructors
    @Inject
    public M1ElasticUniGraphProvider(Client client, ElasticGraphConfiguration elasticGraphConfiguration, UniGraphConfiguration uniGraphConfiguration, GraphElementSchemaProviderFactory schemaProviderFactory, SearchOrderProviderFactory orderProvider, MetricRegistry metricRegistry) {
        this.client = client;
        this.elasticGraphConfiguration = elasticGraphConfiguration;
        this.uniGraphConfiguration = uniGraphConfiguration;
        this.schemaProviderFactory = schemaProviderFactory;
        this.orderProvider = orderProvider;
        this.metricRegistry = metricRegistry;
    }

    // endregion
    @Override
    public UniGraph getGraph(Ontology ontology) throws Exception {
        return new FuseUniGraph(this.uniGraphConfiguration, controllerManagerFactory(this.schemaProviderFactory.get(ontology), this.metricRegistry), new FuseStandardStrategyProvider());
    }

    // region Private Methods
    /**
     * default controller Manager
     *
     * @return
     */
    private ControllerManagerFactory controllerManagerFactory(GraphElementSchemaProvider schemaProvider, MetricRegistry metricRegistry) {
        return uniGraph -> new ControllerManager() {

            @Override
            public Set<UniQueryController> getControllers() {
                return ImmutableSet.of(new ElementController(new LoggingSearchController(new DiscreteElementVertexController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProvider), metricRegistry), null), new LoggingSearchVertexController(new DiscreteVertexController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProvider), metricRegistry), new LoggingSearchVertexController(new DiscreteVertexFilterController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProvider), metricRegistry), new LoggingReduceController(new DiscreteElementReduceController(client, elasticGraphConfiguration, uniGraph, schemaProvider), metricRegistry));
            }

            @Override
            public void close() {
            }
        };
    }

    // endregion
    // region Fields
    private final Client client;

    private final ElasticGraphConfiguration elasticGraphConfiguration;

    private final UniGraphConfiguration uniGraphConfiguration;

    private final GraphElementSchemaProviderFactory schemaProviderFactory;

    private SearchOrderProviderFactory orderProvider;

    private MetricRegistry metricRegistry;
    // endregion
}

19 Source : M1ElasticUniGraphProvider.java
with Apache License 2.0
from YANG-DB

// region Private Methods
/**
 * default controller Manager
 *
 * @return
 */
private ControllerManagerFactory controllerManagerFactory(GraphElementSchemaProvider schemaProvider, MetricRegistry metricRegistry) {
    return uniGraph -> new ControllerManager() {

        @Override
        public Set<UniQueryController> getControllers() {
            return ImmutableSet.of(new ElementController(new LoggingSearchController(new DiscreteElementVertexController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProvider), metricRegistry), null), new LoggingSearchVertexController(new DiscreteVertexController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProvider), metricRegistry), new LoggingSearchVertexController(new DiscreteVertexFilterController(client, elasticGraphConfiguration, uniGraph, schemaProvider, orderProvider), metricRegistry), new LoggingReduceController(new DiscreteElementReduceController(client, elasticGraphConfiguration, uniGraph, schemaProvider), metricRegistry));
        }

        @Override
        public void close() {
        }
    };
}

19 Source : LoggingCursorFactory.java
with Apache License 2.0
from YANG-DB

/**
 * Created by roman.margolis on 07/01/2018.
 */
public clreplaced LoggingCursorFactory implements CursorFactory {

    public static final String cursorFactoryParameter = "LoggingCursorFactory.@cursorFactory";

    public static final String cursorLoggerParameter = "LoggingCursorFactory.@cursorLogger";

    public static final String traversalLoggerParameter = "LoggingCursorFactory.@traversalLogger";

    // region Constructors
    @Inject
    public LoggingCursorFactory(MetricRegistry metricRegistry, @Named(cursorFactoryParameter) CursorFactory cursorFactory, @Named(cursorLoggerParameter) Logger cursorLogger, @Named(traversalLoggerParameter) Logger traversalLogger) {
        this.metricRegistry = metricRegistry;
        this.cursorFactory = cursorFactory;
        this.cursorLogger = cursorLogger;
        this.traversalLogger = traversalLogger;
    }

    // endregion
    // region LoggingFactory Implementation
    @Override
    public Cursor createCursor(Context context) {
        TraversalCursorContext traversalCursorContext = (TraversalCursorContext) context;
        TraversalCursorContext loggingTraversalCursorContext = traversalCursorContext.clone();
        loggingTraversalCursorContext.setTraversal(new LoggingTraversal<>(traversalCursorContext.getTraversal(), this.traversalLogger));
        return new LoggingCursor(this.cursorFactory.createCursor(loggingTraversalCursorContext), this.cursorLogger, metricRegistry);
    }

    // endregion
    private MetricRegistry metricRegistry;

    // region Fields
    private CursorFactory cursorFactory;

    private Logger cursorLogger;

    private Logger traversalLogger;
    // endregion
}

19 Source : PromiseEdgeIT.java
with Apache License 2.0
from YANG-DB

/**
 * Created by Elad on 4/25/2017.
 */
public clreplaced PromiseEdgeIT implements BaseITMarker {

    static TransportClient client;

    static ElasticGraphConfiguration configuration;

    static UniGraph graph;

    static MetricRegistry registry;

    private static final String INDEX_NAME = "v1";

    @BeforeClreplaced
    public static void setup() throws Exception {
        String idField = "id";
        registry = new MetricRegistry();
        client = ElasticEmbeddedNode.getClient();
        new ElasticDataPopulator(client, INDEX_NAME, "pge", idField, () -> createDragons(10)).populate();
        new ElasticDataPopulator(client, INDEX_NAME, "pge", idField, () -> createFire(100)).populate();
        client.admin().indices().refresh(new RefreshRequest(INDEX_NAME)).actionGet();
        configuration = mock(ElasticGraphConfiguration.clreplaced);
        graph = mock(UniGraph.clreplaced);
    }

    @AfterClreplaced
    public static void cleanup() throws Exception {
        ElasticEmbeddedNode.getClient().admin().indices().delete(new DeleteIndexRequest(INDEX_NAME)).actionGet();
    }

    @Before
    public void before() {
        replacedume.replacedumeTrue(TestsConfiguration.instance.shouldRunTestClreplaced(this.getClreplaced()));
    }

    @Test
    public void testPromiseEdges() {
        // basic edge constraint
        Traversal constraint = __.and(__.has(T.label, "fire"), __.has(GlobalConstants.EdgeSchema.DIRECTION, "out"));
        PredicatesHolder predicatesHolder = mock(PredicatesHolder.clreplaced);
        when(predicatesHolder.getPredicates()).thenReturn(Arrays.asList(new HasContainer("constraint", P.eq(Constraint.by(constraint)))));
        // create vertices getTo start getFrom
        Vertex startVertex1 = mock(Vertex.clreplaced);
        when(startVertex1.id()).thenReturn("d1");
        when(startVertex1.label()).thenReturn("Dragon");
        Vertex startVertex2 = mock(Vertex.clreplaced);
        when(startVertex2.id()).thenReturn("d2");
        when(startVertex2.label()).thenReturn("Dragon");
        Vertex startVertex6 = mock(Vertex.clreplaced);
        when(startVertex6.id()).thenReturn("d6");
        when(startVertex6.label()).thenReturn("Dragon");
        Vertex startVertex8 = mock(Vertex.clreplaced);
        when(startVertex8.id()).thenReturn("d8");
        when(startVertex8.label()).thenReturn("Dragon");
        // prepare searchVertexQuery for the controller input
        SearchVertexQuery searchQuery = mock(SearchVertexQuery.clreplaced);
        when(searchQuery.getReturnType()).thenReturn(Edge.clreplaced);
        when(searchQuery.getPredicates()).thenReturn(predicatesHolder);
        when(searchQuery.getVertices()).thenReturn(Arrays.asList(startVertex1, startVertex2, startVertex6, startVertex8));
        // prepare schema provider
        IndexParreplacedions indexParreplacedions = new StaticIndexParreplacedions(Collections.singletonList("v1"));
        GraphEdgeSchema edgeSchema = mock(GraphEdgeSchema.clreplaced);
        when(edgeSchema.getIndexParreplacedions()).thenReturn(Optional.of(indexParreplacedions));
        GraphElementSchemaProvider schemaProvider = mock(GraphElementSchemaProvider.clreplaced);
        when(schemaProvider.getEdgeSchemas(any())).thenReturn(Collections.singletonList(edgeSchema));
        LoggingSearchVertexController controller = new LoggingSearchVertexController(new PromiseVertexController(client, configuration, graph, schemaProvider), registry);
        List<Edge> edges = Stream.ofAll(() -> controller.search(searchQuery)).toJavaList();
        edges.forEach(replacedert::replacedertNotNull);
    }

    @Test
    public void testPromiseFilterEdge() throws Exception {
        // add old purple dragon
        String purpleDragonId = "d11";
        new ElasticDataPopulator(client, INDEX_NAME, "pge", "id", () -> {
            Map<String, Object> dragon = new HashedMap();
            dragon.put("id", purpleDragonId);
            dragon.put("type", "Dragon");
            dragon.put("name", "dragon" + purpleDragonId);
            dragon.put("age", 100);
            dragon.put("color", "purple");
            return Arrays.asList(dragon);
        }).populate();
        client.admin().indices().refresh(new RefreshRequest(INDEX_NAME)).actionGet();
        // edge constraint - this is the constraint that filters the end vertices of the promise edges
        Traversal constraint = __.and(__.has("color", "purple"), __.has("age", P.gt(10)));
        PredicatesHolder predicatesHolder = mock(PredicatesHolder.clreplaced);
        when(predicatesHolder.getPredicates()).thenReturn(Arrays.asList(new HasContainer("constraint", P.eq(Constraint.by(constraint)))));
        // create vertices getTo start getFrom (all)
        List<Vertex> startVertices = new ArrayList<>();
        for (int i = 0; i < 13; i++) {
            Vertex v = mock(Vertex.clreplaced);
            when(v.id()).thenReturn("d" + i);
            when(v.label()).thenReturn("Dragon");
            startVertices.add(v);
        }
        // prepare searchVertexQuery for the controller input
        SearchVertexQuery searchQuery = mock(SearchVertexQuery.clreplaced);
        when(searchQuery.getReturnType()).thenReturn(Edge.clreplaced);
        when(searchQuery.getPredicates()).thenReturn(predicatesHolder);
        when(searchQuery.getVertices()).thenReturn(startVertices);
        when(searchQuery.getLimit()).thenReturn(-1);
        GraphElementSchemaProvider schemaProvider = mock(GraphElementSchemaProvider.clreplaced);
        when(configuration.getElasticGraphScrollSize()).thenReturn(100);
        when(configuration.getElasticGraphScrollTime()).thenReturn(100);
        when(configuration.getElasticGraphDefaultSearchSize()).thenReturn(100L);
        SearchVertexQuery.SearchVertexController controller = new LoggingSearchVertexController(new PromiseVertexFilterController(client, configuration, graph, schemaProvider, context -> SearchOrderProvider.of(SearchOrderProvider.EMPTY, SearchType.DEFAULT)), registry);
        List<Edge> edges = Stream.ofAll(() -> controller.search(searchQuery)).toJavaList();
        // TODO: Check why it fails when executed immediately after the previous test
        // replacedert.replacedertEquals(1, edges.size());
        edges.forEach(e -> {
            // Verify that the edge's endpoint is the correct vertex
            edges.forEach(replacedert::replacedertNotNull);
            replacedert.replacedertEquals("d11", e.inVertex().id());
        });
    }

    private static Iterable<Map<String, Object>> createDragons(int numDragons) {
        Random r = new Random();
        List<String> colors = Arrays.asList("red", "green", "yellow", "blue");
        List<Map<String, Object>> dragons = new ArrayList<>();
        for (int i = 0; i < numDragons; i++) {
            Map<String, Object> dragon = new HashedMap();
            dragon.put("id", "d" + Integer.toString(i));
            dragon.put("type", "Dragon");
            dragon.put("name", "dragon" + i);
            dragon.put("age", r.nextInt(100));
            dragon.put("color", colors.get(r.nextInt(colors.size())));
            dragons.add(dragon);
        }
        return dragons;
    }

    private static Iterable<Map<String, Object>> createFire(int numRels) {
        Random r = new Random();
        List<Map<String, Object>> ownDocs = new ArrayList<>();
        for (int i = 0; i < numRels; i++) {
            Map<String, Object> fire = new HashedMap();
            fire.put("id", "f" + i);
            fire.put("type", "fire");
            Map<String, Object> enreplacedyA = new HashMap<>();
            enreplacedyA.put("id", "d" + r.nextInt(9));
            fire.put(GlobalConstants.EdgeSchema.SOURCE, enreplacedyA);
            Map<String, Object> enreplacedyB = new HashMap<>();
            enreplacedyB.put("id", "d" + r.nextInt(9));
            fire.put(GlobalConstants.EdgeSchema.DEST, enreplacedyB);
            fire.put(GlobalConstants.EdgeSchema.DIRECTION, "out");
            fire.put("time", DateTime.now().toString());
            ownDocs.add(fire);
        }
        return ownDocs;
    }
}

19 Source : LoggingCursorFactory.java
with Apache License 2.0
from YANG-DB

/**
 * Created by roman.margolis on 07/01/2018.
 */
public clreplaced LoggingCursorFactory implements CursorFactory {

    public static final String cursorFactoryParameter = "LoggingCursorFactory.@cursorFactory";

    public static final String loggerParameter = "LoggingCursorFactory.@logger";

    // region Constructors
    @Inject
    public LoggingCursorFactory(MetricRegistry metricRegistry, @Named(cursorFactoryParameter) CursorFactory cursorFactory, @Named(loggerParameter) Logger logger) {
        this.metricRegistry = metricRegistry;
        this.cursorFactory = cursorFactory;
        this.logger = logger;
    }

    // endregion
    // region LoggingFactory Implementation
    @Override
    public Cursor createCursor(Context context) {
        return new LoggingCursor(this.cursorFactory.createCursor(context), this.logger, metricRegistry);
    }

    // endregion
    private MetricRegistry metricRegistry;

    // region Fields
    private CursorFactory cursorFactory;

    private Logger logger;
    // endregion
}

19 Source : WebConfigurerTest.java
with Apache License 2.0
from xm-online

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private ServerProperties serverProperties;

    private MetricRegistry metricRegistry;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(new MockFilterRegistration()).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(new MockServletRegistration()).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        serverProperties = new ServerProperties();
        webConfigurer = new WebConfigurer(env, props, serverProperties);
        metricRegistry = new MetricRegistry();
        webConfigurer.setMetricRegistry(metricRegistry);
    }

    @Test
    public void testStartUpProdServletContext() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(ArgumentMatchers.eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(ArgumentMatchers.eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext, never()).addServlet(ArgumentMatchers.eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(ArgumentMatchers.eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(ArgumentMatchers.eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext).addServlet(ArgumentMatchers.eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        serverProperties.getHttp2().setEnabled(true);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    static clreplaced MockFilterRegistration implements FilterRegistration, FilterRegistration.Dynamic {

        @Override
        public void addMappingForServletNames(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... servletNames) {
        }

        @Override
        public Collection<String> getServletNameMappings() {
            return null;
        }

        @Override
        public void addMappingForUrlPatterns(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... urlPatterns) {
        }

        @Override
        public Collection<String> getUrlPatternMappings() {
            return null;
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }

    static clreplaced MockServletRegistration implements ServletRegistration, ServletRegistration.Dynamic {

        @Override
        public void setLoadOnStartup(int loadOnStartup) {
        }

        @Override
        public Set<String> setServletSecurity(ServletSecurityElement constraint) {
            return null;
        }

        @Override
        public void setMultipartConfig(MultipartConfigElement multipartConfig) {
        }

        @Override
        public void setRunAsRole(String roleName) {
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public Set<String> addMapping(String... urlPatterns) {
            return null;
        }

        @Override
        public Collection<String> getMappings() {
            return null;
        }

        @Override
        public String getRunAsRole() {
            return null;
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }
}

19 Source : WebConfigurer.java
with Apache License 2.0
from xm-online

/**
 * Configuration of web application with Servlet 3.0 APIs.
 */
@Slf4j
@RequiredArgsConstructor
@Import({ TenantContextConfiguration.clreplaced, XmAuthenticationContextConfiguration.clreplaced })
@Configuration
public clreplaced WebConfigurer implements ServletContextInitializer, WebServerFactoryCustomizer<WebServerFactory> {

    private final Environment env;

    private final JHipsterProperties jHipsterProperties;

    private final ServerProperties serverProperties;

    private MetricRegistry metricRegistry;

    @Override
    public void onStartup(ServletContext servletContext) {
        if (env.getActiveProfiles().length != 0) {
            log.info("Web application configuration, using profiles: {}", (Object[]) env.getActiveProfiles());
        }
        initTfaOtpFilter(servletContext);
        EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC);
        initMetrics(servletContext, disps);
        if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT))) {
            initH2Console(servletContext);
        }
        log.info("Web application fully configured");
    }

    private void initTfaOtpFilter(ServletContext servletContext) {
        log.debug("Registering TFA OTP Filter");
        FilterRegistration.Dynamic tfaOtpFilter = servletContext.addFilter("tfaOtpResponseHeadersInitFilter", new TfaOtpRequestFilter());
        tfaOtpFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/oauth/token");
    }

    /**
     * Customize the Servlet engine: Mime types, the doreplacedent root, the cache.
     */
    @Override
    public void customize(WebServerFactory server) {
        setMimeMappings(server);
        /*
         * Enable HTTP/2 for Undertow - https://twitter.com/ankinson/status/829256167700492288
         * HTTP/2 requires HTTPS, so HTTP requests will fallback to HTTP/1.1.
         * See the ServerProperties clreplaced and your application-*.yml configuration files
         * for more information.
         */
        if (serverProperties.getHttp2().isEnabled() && server instanceof UndertowServletWebServerFactory) {
            ((UndertowServletWebServerFactory) server).addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true));
        }
    }

    private void setMimeMappings(WebServerFactory server) {
        if (server instanceof ConfigurableServletWebServerFactory) {
            MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
            // IE issue, see https://github.com/jhipster/generator-jhipster/pull/711
            mappings.add("html", MediaType.TEXT_HTML_VALUE + ";charset=" + StandardCharsets.UTF_8.name().toLowerCase());
            // CloudFoundry issue, see https://github.com/cloudfoundry/gorouter/issues/64
            mappings.add("json", MediaType.TEXT_HTML_VALUE + ";charset=" + StandardCharsets.UTF_8.name().toLowerCase());
            ConfigurableServletWebServerFactory servletWebServer = (ConfigurableServletWebServerFactory) server;
            servletWebServer.setMimeMappings(mappings);
        }
    }

    /**
     * Initializes Metrics.
     */
    private void initMetrics(ServletContext servletContext, EnumSet<DispatcherType> disps) {
        log.debug("Initializing Metrics registries");
        servletContext.setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, metricRegistry);
        servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);
        log.debug("Registering Metrics Filter");
        FilterRegistration.Dynamic metricsFilter = servletContext.addFilter("webappMetricsFilter", new InstrumentedFilter());
        metricsFilter.addMappingForUrlPatterns(disps, true, "/*");
        metricsFilter.setAsyncSupported(true);
        log.debug("Registering Metrics Servlet");
        ServletRegistration.Dynamic metricsAdminServlet = servletContext.addServlet("metricsServlet", new MetricsServlet());
        metricsAdminServlet.addMapping("/management/metrics/*");
        metricsAdminServlet.setAsyncSupported(true);
        metricsAdminServlet.setLoadOnStartup(2);
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = jHipsterProperties.getCors();
        if (config.getAllowedOrigins() != null && !config.getAllowedOrigins().isEmpty()) {
            log.debug("Registering CORS filter");
            source.registerCorsConfiguration("/api/**", config);
            source.registerCorsConfiguration("/management/**", config);
            source.registerCorsConfiguration("/v2/api-docs", config);
        }
        return new CorsFilter(source);
    }

    /**
     * Initializes H2 console.
     */
    private void initH2Console(ServletContext servletContext) {
        log.debug("Initialize H2 console");
        H2ConfigurationHelper.initH2Console(servletContext);
    }

    @Autowired(required = false)
    public void setMetricRegistry(MetricRegistry metricRegistry) {
        this.metricRegistry = metricRegistry;
    }
}

19 Source : WebConfigurer.java
with Apache License 2.0
from xm-online

@Autowired(required = false)
public void setMetricRegistry(MetricRegistry metricRegistry) {
    this.metricRegistry = metricRegistry;
}

19 Source : AppMetricsConfiguration.java
with Apache License 2.0
from xm-online

@Slf4j
@Configuration
@EnableMetrics(proxyTargetClreplaced = true)
public clreplaced AppMetricsConfiguration extends MetricsConfigurerAdapter {

    private static final String SCHEDULER = "scheduler";

    private final MetricRegistry metricRegistry;

    private final SchedulerMetricsSet schedulerMetricsSet;

    private HikariDataSource hikariDataSource;

    public AppMetricsConfiguration(MetricRegistry metricRegistry, SchedulerMetricsSet schedulerMetricsSet) {
        this.metricRegistry = metricRegistry;
        this.schedulerMetricsSet = schedulerMetricsSet;
    }

    @Autowired(required = false)
    public void setHikariDataSource(HikariDataSource hikariDataSource) {
        this.hikariDataSource = hikariDataSource;
    }

    @PostConstruct
    public void init() {
        if (hikariDataSource != null) {
            log.debug("Monitoring the datasource");
            // remove the factory created by HikariDataSourceMetricsPostProcessor until JHipster migrate to Micrometer
            hikariDataSource.setMetricsTrackerFactory(null);
            hikariDataSource.setMetricRegistry(metricRegistry);
        }
        metricRegistry.register(SCHEDULER, schedulerMetricsSet);
    }
}

19 Source : WebConfigurerIntTest.java
with Apache License 2.0
from xm-online

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerIntTest extends AbstractUnitTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private ServerProperties serverProperties;

    private MetricRegistry metricRegistry;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(new MockFilterRegistration()).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(new MockServletRegistration()).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        serverProperties = new ServerProperties();
        webConfigurer = new WebConfigurer(env, serverProperties, props);
        metricRegistry = new MetricRegistry();
        webConfigurer.setMetricRegistry(metricRegistry);
    }

    @Test
    public void testStartUpProdServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext, never()).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        serverProperties.getHttp2().setEnabled(true);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    static clreplaced MockFilterRegistration implements FilterRegistration, FilterRegistration.Dynamic {

        @Override
        public void addMappingForServletNames(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... servletNames) {
        }

        @Override
        public Collection<String> getServletNameMappings() {
            return null;
        }

        @Override
        public void addMappingForUrlPatterns(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... urlPatterns) {
        }

        @Override
        public Collection<String> getUrlPatternMappings() {
            return null;
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }

    static clreplaced MockServletRegistration implements ServletRegistration, ServletRegistration.Dynamic {

        @Override
        public void setLoadOnStartup(int loadOnStartup) {
        }

        @Override
        public Set<String> setServletSecurity(ServletSecurityElement constraint) {
            return null;
        }

        @Override
        public void setMultipartConfig(MultipartConfigElement multipartConfig) {
        }

        @Override
        public void setRunAsRole(String roleName) {
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public Set<String> addMapping(String... urlPatterns) {
            return null;
        }

        @Override
        public Collection<String> getMappings() {
            return null;
        }

        @Override
        public String getRunAsRole() {
            return null;
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }
}

19 Source : CustomMetricsConfiguration.java
with Apache License 2.0
from xm-online

@Slf4j
@Component
public clreplaced CustomMetricsConfiguration implements RefreshableConfiguration {

    private static final String METRICS_PREFIX = "custom.metrics.";

    private final ObjectMapper mapper = new ObjectMapper(new YAMLFactory());

    private final ConcurrentHashMap<String, List<CustomMetric>> configuration = new ConcurrentHashMap<>();

    private final AntPathMatcher matcher = new AntPathMatcher();

    private final MetricRegistry metricRegistry;

    private final CustomMetricsService customMetricsService;

    private final PeriodicMetricsService periodMetricsService;

    private final String mappingPath;

    public CustomMetricsConfiguration(MetricRegistry metricRegistry, CustomMetricsService customMetricsService, PeriodicMetricsService periodMetricsService, @Value("${spring.application.name}") String appName) {
        this.metricRegistry = metricRegistry;
        this.customMetricsService = customMetricsService;
        this.periodMetricsService = periodMetricsService;
        this.mappingPath = "/config/tenants/{tenantName}/" + appName + "/metrics.yml";
    }

    public void onRefresh(final String updatedKey, final String config) {
        try {
            String tenant = this.matcher.extractUriTemplateVariables(mappingPath, updatedKey).get("tenantName");
            if (isBlank(config)) {
                this.configuration.remove(tenant);
                periodMetricsService.scheduleCustomMetric(emptyList(), tenant);
                return;
            }
            List<CustomMetric> metrics = mapper.readValue(config, new TypeReference<List<CustomMetric>>() {
            });
            this.configuration.put(tenant, metrics);
            log.info("Metric configuration was updated for tenant [{}] by key [{}]", tenant, updatedKey);
            String metricsName = METRICS_PREFIX + tenant.toLowerCase();
            metricRegistry.removeMatching((name, metric) -> name.startsWith(metricsName));
            Map<String, Metric> metricsMap = metrics.stream().collect(toMap(CustomMetric::getName, toMetric(tenant)));
            metricRegistry.register(metricsName, (MetricSet) () -> metricsMap);
            periodMetricsService.scheduleCustomMetric(metrics, tenant);
        } catch (Exception e) {
            log.error("Error read metric configuration from path " + updatedKey, e);
        }
    }

    private Function<CustomMetric, Gauge<?>> toMetric(String tenantKey) {
        return (metric) -> () -> customMetricsService.getMetric(metric.getName(), metric, tenantKey);
    }

    public boolean isListeningConfiguration(final String updatedKey) {
        return this.matcher.match(mappingPath, updatedKey);
    }

    public void onInit(final String configKey, final String configValue) {
        if (this.isListeningConfiguration(configKey)) {
            this.onRefresh(configKey, configValue);
        }
    }

    @Data
    public static clreplaced CustomMetric {

        private String name;

        private Integer updatePeriodSeconds;
    }
}

19 Source : WebConfigurer.java
with Apache License 2.0
from xm-online

/**
 * Configuration of web application with Servlet 3.0 APIs.
 */
@Slf4j
@Configuration
public clreplaced WebConfigurer implements ServletContextInitializer, WebServerFactoryCustomizer<WebServerFactory> {

    private final Environment env;

    private final ServerProperties serverProperties;

    private final JHipsterProperties jHipsterProperties;

    private MetricRegistry metricRegistry;

    public WebConfigurer(Environment env, ServerProperties serverProperties, JHipsterProperties jHipsterProperties) {
        this.env = env;
        this.serverProperties = serverProperties;
        this.jHipsterProperties = jHipsterProperties;
    }

    @Override
    public void onStartup(ServletContext servletContext) {
        if (env.getActiveProfiles().length != 0) {
            log.info("Web application configuration, using profiles: {}", (Object[]) env.getActiveProfiles());
        }
        EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC);
        initMetrics(servletContext, disps);
        if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT))) {
            initH2Console(servletContext);
        }
        log.info("Web application fully configured");
    }

    /**
     * Customize the Servlet engine: Mime types, the doreplacedent root, the cache.
     */
    @Override
    public void customize(WebServerFactory server) {
        setMimeMappings(server);
        /*
         * Enable HTTP/2 for Undertow - https://twitter.com/ankinson/status/829256167700492288
         * HTTP/2 requires HTTPS, so HTTP requests will fallback to HTTP/1.1.
         * See the ServerProperties clreplaced and your application-*.yml configuration files
         * for more information.
         */
        if (serverProperties.getHttp2().isEnabled() && server instanceof UndertowServletWebServerFactory) {
            ((UndertowServletWebServerFactory) server).addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true));
        }
    }

    private void setMimeMappings(WebServerFactory server) {
        if (server instanceof ConfigurableServletWebServerFactory) {
            MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
            // IE issue, see https://github.com/jhipster/generator-jhipster/pull/711
            mappings.add("html", MediaType.TEXT_HTML_VALUE + ";charset=" + StandardCharsets.UTF_8.name().toLowerCase());
            // CloudFoundry issue, see https://github.com/cloudfoundry/gorouter/issues/64
            mappings.add("json", MediaType.TEXT_HTML_VALUE + ";charset=" + StandardCharsets.UTF_8.name().toLowerCase());
            ConfigurableServletWebServerFactory servletWebServer = (ConfigurableServletWebServerFactory) server;
            servletWebServer.setMimeMappings(mappings);
        }
    }

    /**
     * Initializes Metrics.
     */
    private void initMetrics(ServletContext servletContext, EnumSet<DispatcherType> disps) {
        log.debug("Initializing Metrics registries");
        servletContext.setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, metricRegistry);
        servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);
        log.debug("Registering Metrics Filter");
        FilterRegistration.Dynamic metricsFilter = servletContext.addFilter("webappMetricsFilter", new InstrumentedFilter());
        metricsFilter.addMappingForUrlPatterns(disps, true, "/*");
        metricsFilter.setAsyncSupported(true);
        log.debug("Registering Metrics Servlet");
        ServletRegistration.Dynamic metricsAdminServlet = servletContext.addServlet("metricsServlet", new MetricsServlet());
        metricsAdminServlet.addMapping("/management/metrics/*");
        metricsAdminServlet.setAsyncSupported(true);
        metricsAdminServlet.setLoadOnStartup(2);
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = jHipsterProperties.getCors();
        if (config.getAllowedOrigins() != null && !config.getAllowedOrigins().isEmpty()) {
            log.debug("Registering CORS filter");
            source.registerCorsConfiguration("/api/**", config);
            source.registerCorsConfiguration("/v2/api-docs", config);
        }
        return new CorsFilter(source);
    }

    @Bean(name = "multipartResolver")
    public CommonsMultipartResolver multipartResolver(ApplicationProperties applicationProperties) {
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
        multipartResolver.setMaxUploadSizePerFile(applicationProperties.getMaxUploadFileSize());
        multipartResolver.setMaxUploadSize(applicationProperties.getMaxUploadSize());
        return multipartResolver;
    }

    /**
     * Initializes H2 console.
     */
    private void initH2Console(ServletContext servletContext) {
        log.debug("Initialize H2 console");
        H2ConfigurationHelper.initH2Console(servletContext);
    }

    @Autowired(required = false)
    public void setMetricRegistry(MetricRegistry metricRegistry) {
        this.metricRegistry = metricRegistry;
    }
}

19 Source : EntityMetricsConfiguration.java
with Apache License 2.0
from xm-online

@Slf4j
@Configuration
@EnableMetrics(proxyTargetClreplaced = true)
@RequiredArgsConstructor
public clreplaced EnreplacedyMetricsConfiguration extends MetricsConfigurerAdapter {

    private static final String SCHEDULER = "scheduler";

    private final MetricRegistry metricRegistry;

    private final SchedulerMetricsSet schedulerMetricsSet;

    private HikariDataSource hikariDataSource;

    @Autowired(required = false)
    public void setHikariDataSource(HikariDataSource hikariDataSource) {
        this.hikariDataSource = hikariDataSource;
    }

    @PostConstruct
    public void init() {
        if (hikariDataSource != null) {
            log.debug("Monitoring the datasource");
            // remove the factory created by HikariDataSourceMetricsPostProcessor until JHipster migrate to Micrometer
            hikariDataSource.setMetricsTrackerFactory(null);
            hikariDataSource.setMetricRegistry(metricRegistry);
        }
        metricRegistry.register(SCHEDULER, schedulerMetricsSet);
    }
}

19 Source : WebConfigurerUnitTest.java
with Apache License 2.0
from xm-online

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerUnitTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private MetricRegistry metricRegistry;

    private ServerProperties serverProperties;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(new MockFilterRegistration()).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(new MockServletRegistration()).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        serverProperties = new ServerProperties();
        webConfigurer = new WebConfigurer(env, props, serverProperties);
        metricRegistry = new MetricRegistry();
        webConfigurer.setMetricRegistry(metricRegistry);
    }

    @Test
    public void testStartUpProdServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        serverProperties.getHttp2().setEnabled(true);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    static clreplaced MockFilterRegistration implements FilterRegistration, FilterRegistration.Dynamic {

        @Override
        public void addMappingForServletNames(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... servletNames) {
        }

        @Override
        public Collection<String> getServletNameMappings() {
            return null;
        }

        @Override
        public void addMappingForUrlPatterns(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... urlPatterns) {
        }

        @Override
        public Collection<String> getUrlPatternMappings() {
            return null;
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }

    static clreplaced MockServletRegistration implements ServletRegistration, ServletRegistration.Dynamic {

        @Override
        public void setLoadOnStartup(int loadOnStartup) {
        }

        @Override
        public Set<String> setServletSecurity(ServletSecurityElement constraint) {
            return null;
        }

        @Override
        public void setMultipartConfig(MultipartConfigElement multipartConfig) {
        }

        @Override
        public void setRunAsRole(String roleName) {
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public Set<String> addMapping(String... urlPatterns) {
            return null;
        }

        @Override
        public Collection<String> getMappings() {
            return null;
        }

        @Override
        public String getRunAsRole() {
            return null;
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }
}

19 Source : WebConfigurer.java
with Apache License 2.0
from xm-online

/**
 * Configuration of web application with Servlet 3.0 APIs.
 */
@Slf4j
@RequiredArgsConstructor
@Import({ TenantContextConfiguration.clreplaced, XmAuthenticationContextConfiguration.clreplaced })
@Configuration
public clreplaced WebConfigurer implements ServletContextInitializer, WebServerFactoryCustomizer<WebServerFactory> {

    private final Environment env;

    private final JHipsterProperties jHipsterProperties;

    private final ServerProperties serverProperties;

    @Setter(onMethod = @__({ @Autowired(required = false) }))
    private MetricRegistry metricRegistry;

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        if (env.getActiveProfiles().length != 0) {
            log.info("Web application configuration, using profiles: {}", (Object[]) env.getActiveProfiles());
        }
        EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC);
        initMetrics(servletContext, disps);
        log.info("Web application fully configured");
    }

    /**
     * Customize the Servlet engine: Mime types, the doreplacedent root, the cache.
     */
    @Override
    public void customize(WebServerFactory server) {
        setMimeMappings(server);
        /*
         * Enable HTTP/2 for Undertow - https://twitter.com/ankinson/status/829256167700492288
         * HTTP/2 requires HTTPS, so HTTP requests will fallback to HTTP/1.1.
         * See the SeverProperties clreplaced and your application-*.yml configuration files
         * for more information.
         */
        if (serverProperties.getHttp2().isEnabled() && server instanceof UndertowServletWebServerFactory) {
            ((UndertowServletWebServerFactory) server).addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true));
        }
    }

    private void setMimeMappings(WebServerFactory server) {
        if (server instanceof ConfigurableServletWebServerFactory) {
            MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
            // IE issue, see https://github.com/jhipster/generator-jhipster/pull/711
            mappings.add("html", MediaType.TEXT_HTML_VALUE + ";charset=" + StandardCharsets.UTF_8.name().toLowerCase());
            // CloudFoundry issue, see https://github.com/cloudfoundry/gorouter/issues/64
            mappings.add("json", MediaType.TEXT_HTML_VALUE + ";charset=" + StandardCharsets.UTF_8.name().toLowerCase());
            ConfigurableServletWebServerFactory servletWebServer = (ConfigurableServletWebServerFactory) server;
            servletWebServer.setMimeMappings(mappings);
        }
    }

    /**
     * Initializes Metrics.
     */
    private void initMetrics(ServletContext servletContext, EnumSet<DispatcherType> disps) {
        log.debug("Initializing Metrics registries");
        servletContext.setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, metricRegistry);
        servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);
        log.debug("Registering Metrics Filter");
        FilterRegistration.Dynamic metricsFilter = servletContext.addFilter("webappMetricsFilter", new InstrumentedFilter());
        metricsFilter.addMappingForUrlPatterns(disps, true, "/*");
        metricsFilter.setAsyncSupported(true);
        log.debug("Registering Metrics Servlet");
        ServletRegistration.Dynamic metricsAdminServlet = servletContext.addServlet("metricsServlet", new MetricsServlet());
        metricsAdminServlet.addMapping("/management/metrics/*");
        metricsAdminServlet.setAsyncSupported(true);
        metricsAdminServlet.setLoadOnStartup(2);
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = jHipsterProperties.getCors();
        if (config.getAllowedOrigins() != null && !config.getAllowedOrigins().isEmpty()) {
            log.debug("Registering CORS filter");
            source.registerCorsConfiguration("/api/**", config);
            source.registerCorsConfiguration("/management/**", config);
            source.registerCorsConfiguration("/v2/api-docs", config);
        }
        return new CorsFilter(source);
    }
}

19 Source : KafkaOffsetsMetricConfiguration.java
with Apache License 2.0
from xm-online

@RequiredArgsConstructor
@Configuration
@ConditionalOnProperty("application.scheduler-enabled")
@EnableMetrics(proxyTargetClreplaced = true)
public clreplaced KafkaOffsetsMetricConfiguration {

    private final MetricRegistry metricRegistry;

    private final KafkaOffsetsMetric kafkaOffsetsMetric;

    @PostConstruct
    public void init() {
        metricRegistry.register("scheduler", kafkaOffsetsMetric);
    }
}

19 Source : MetricsPoolTest.java
with Apache License 2.0
from XiaoMi

/**
 * Created by weijiesun on 18-3-9.
 */
public clreplaced MetricsPoolTest {

    @Before
    public void before() {
        r = new MetricRegistry();
    }

    @Test
    public void genJsonsFromMeter() throws Exception {
        String host = "simple-test-host.bj";
        String tags = "what=you,like=another";
        MetricsPool pool = new MetricsPool(host, tags, 20);
        Meter m = r.meter("TestName");
        m.mark(1);
        m.mark(1);
        StringBuilder builder = new StringBuilder();
        pool.genJsonsFromMeter("TestName", m, builder);
        JSONArray array = new JSONArray("[" + builder.toString() + "]");
        replacedert.replacedertEquals(1, array.length());
        String[] metrics = { "TestName.cps-1sec", "TestName.cps-1min", "TestName.cps-5min", "TestName.cps-15min" };
        for (int i = 0; i < array.length(); ++i) {
            JSONObject j = array.getJSONObject(i);
            replacedert.replacedertEquals(tags, j.getString("tags"));
            replacedert.replacedertEquals(metrics[i], j.getString("metric"));
            replacedert.replacedertEquals("GAUGE", j.getString("counterType"));
            replacedert.replacedertEquals(20, j.getInt("step"));
            replacedert.replacedertEquals(host, j.getString("endpoint"));
        }
    }

    @Test
    public void genJsonFromHistogram() throws Exception {
        String host = "simple-test-host.bj";
        String tags = "what=you,like=another";
        MetricsPool pool = new MetricsPool(host, tags, 20);
        Histogram h = r.histogram("TestHist");
        for (int i = 0; i < 1000000; ++i) h.update((long) i);
        StringBuilder builder = new StringBuilder();
        pool.genJsonsFromHistogram("TestHist", h, builder);
        JSONArray array = new JSONArray("[" + builder.toString() + "]");
        replacedert.replacedertEquals(2, array.length());
        String[] metrics = { "TestHist.p99", "TestHist.p999" };
        for (int i = 0; i < array.length(); ++i) {
            JSONObject j = array.getJSONObject(i);
            replacedert.replacedertEquals(tags, j.getString("tags"));
            replacedert.replacedertEquals(metrics[i], j.getString("metric"));
            replacedert.replacedertEquals("GAUGE", j.getString("counterType"));
            replacedert.replacedertEquals(20, j.getInt("step"));
            replacedert.replacedertEquals(host, j.getString("endpoint"));
        }
    }

    @Test
    public void oneMetricToJson() throws Exception {
        MetricsPool.FalconMetric metric = new MetricsPool.FalconMetric();
        metric.endpoint = "1.2.3.4";
        metric.metric = "simple_metric";
        metric.timestamp = 12343455L;
        metric.step = 30;
        metric.value = 50;
        metric.counterType = "GAUGE";
        metric.tags = "cluster=onebox,app=new";
        StringBuilder builder = new StringBuilder();
        MetricsPool.oneMetricToJson(metric, builder);
        JSONObject obj = new JSONObject(builder.toString());
        replacedert.replacedertEquals(metric.endpoint, obj.getString("endpoint"));
        replacedert.replacedertEquals(metric.metric, obj.getString("metric"));
        replacedert.replacedertEquals(metric.timestamp, obj.getLong("timestamp"));
        replacedert.replacedertEquals(metric.step, obj.getInt("step"));
        replacedert.replacedertEquals(metric.value, obj.getDouble("value"));
        replacedert.replacedertEquals(metric.counterType, obj.getString("counterType"));
        replacedert.replacedertEquals(metric.tags, obj.getString("tags"));
        builder.setLength(0);
        metric.tags = "";
        MetricsPool.oneMetricToJson(metric, builder);
        obj = new JSONObject(builder.toString());
        replacedert.replacedertEquals(metric.endpoint, obj.getString("endpoint"));
        replacedert.replacedertEquals(metric.metric, obj.getString("metric"));
        replacedert.replacedertEquals(metric.timestamp, obj.getLong("timestamp"));
        replacedert.replacedertEquals(metric.step, obj.getInt("step"));
        replacedert.replacedertEquals(metric.value, obj.getDouble("value"));
        replacedert.replacedertEquals(metric.counterType, obj.getString("counterType"));
        replacedert.replacedertEquals(metric.tags, obj.getString("tags"));
    }

    @Test
    public void metricsToJson() throws Exception {
        String host = "simple-test-host.bj";
        String tags = "what=you,like=another";
        MetricsPool pool = new MetricsPool(host, tags, 20);
        pool.setMeter("aaa@temp", 1);
        pool.setMeter("aaa", 2);
        for (int i = 0; i < 10000; ++i) {
            pool.setHistorgram("ccc", i);
            pool.setHistorgram("ccc@temp", i);
        }
        JSONArray array = new JSONArray(pool.metricsToJson());
        replacedert.replacedertEquals(6, array.length());
        for (int i = 0; i < array.length(); ++i) {
            JSONObject j = array.getJSONObject(i);
            if (j.getString("metric").contains("@")) {
                replacedert.replacedertEquals(tags + ",table=temp", j.getString("tags"));
            } else {
                replacedert.replacedertEquals(tags, j.getString("tags"));
            }
            replacedert.replacedertEquals("GAUGE", j.getString("counterType"));
            replacedert.replacedertEquals(20, j.getInt("step"));
            replacedert.replacedertEquals(host, j.getString("endpoint"));
        }
    }

    MetricRegistry r;
}

19 Source : MetricsPool.java
with Apache License 2.0
from XiaoMi

/**
 * Created by weijiesun on 18-3-9.
 */
public final clreplaced MetricsPool {

    private final String defaultTags;

    public MetricsPool(String host, String tags, int reportStepSec) {
        theMetric = new FalconMetric();
        theMetric.endpoint = host;
        theMetric.step = reportStepSec;
        theMetric.tags = tags;
        defaultTags = tags;
    }

    public void setMeter(String counterName, long count) {
        registry.meter(counterName).mark(count);
    }

    public void setHistorgram(String counterName, long value) {
        registry.histogram(counterName).update(value);
    }

    public void genJsonsFromMeter(String name, Meter meter, StringBuilder output) throws JSONException {
        theMetric.counterType = "GAUGE";
        theMetric.metric = name + ".cps-1sec";
        theMetric.tags = getTableTag(name);
        theMetric.value = meter.getMeanRate();
        oneMetricToJson(theMetric, output);
    }

    public void genJsonsFromHistogram(String name, Histogram hist, StringBuilder output) throws JSONException {
        theMetric.counterType = "GAUGE";
        Snapshot s = hist.getSnapshot();
        theMetric.metric = name + ".p99";
        theMetric.tags = getTableTag(name);
        theMetric.value = s.get99thPercentile();
        oneMetricToJson(theMetric, output);
        output.append(',');
        theMetric.metric = name + ".p999";
        theMetric.tags = getTableTag(name);
        theMetric.value = s.get999thPercentile();
        oneMetricToJson(theMetric, output);
    }

    public static void oneMetricToJson(FalconMetric metric, StringBuilder output) throws JSONException {
        JSONObject obj = new JSONObject();
        obj.put("endpoint", metric.endpoint);
        obj.put("metric", metric.metric);
        obj.put("timestamp", metric.timestamp);
        obj.put("step", metric.step);
        obj.put("value", metric.value);
        obj.put("counterType", metric.counterType);
        obj.put("tags", metric.tags);
        output.append(obj.toString());
    }

    public String metricsToJson() throws JSONException {
        theMetric.timestamp = Tools.unixEpochMills() / 1000;
        StringBuilder builder = new StringBuilder();
        builder.append('[');
        SortedMap<String, Meter> meters = registry.getMeters();
        for (Map.Entry<String, Meter> entry : meters.entrySet()) {
            genJsonsFromMeter(entry.getKey(), entry.getValue(), builder);
            builder.append(',');
        }
        for (Map.Entry<String, Histogram> entry : registry.getHistograms().entrySet()) {
            genJsonsFromHistogram(entry.getKey(), entry.getValue(), builder);
            builder.append(',');
        }
        if (builder.charAt(builder.length() - 1) == ',') {
            builder.deleteCharAt(builder.length() - 1);
        }
        builder.append("]");
        return builder.toString();
    }

    private String getTableTag(String counterName) {
        if (defaultTags.contains("table=")) {
            return defaultTags;
        }
        String[] result = counterName.split("@");
        if (result.length >= 2) {
            return defaultTags.equals("") ? ("table=" + result[1]) : (defaultTags + ",table=" + result[1]);
        }
        return defaultTags;
    }

    static final clreplaced FalconMetric {

        // metric host
        public String endpoint;

        // metric name
        public String metric;

        // report time in unix seconds
        public long timestamp;

        // report interval in seconds;
        public int step;

        // metric value
        public double value;

        // GAUGE or COUNTER
        public String counterType;

        // metrics description
        public String tags;
    }

    private FalconMetric theMetric;

    private final MetricRegistry registry = new MetricRegistry();
}

19 Source : WebConfigurerTest.java
with Apache License 2.0
from xebialabs

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private MetricRegistry metricRegistry;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(mock(FilterRegistration.Dynamic.clreplaced)).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(mock(ServletRegistration.Dynamic.clreplaced)).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        webConfigurer = new WebConfigurer(env, props);
        metricRegistry = new MetricRegistry();
        webConfigurer.setMetricRegistry(metricRegistry);
    }

    @Test
    public void testStartUpProdServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext).addFilter(eq("cachingHttpHeadersFilter"), any(CachingHttpHeadersFilter.clreplaced));
        verify(servletContext, never()).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext, never()).addFilter(eq("cachingHttpHeadersFilter"), any(CachingHttpHeadersFilter.clreplaced));
        verify(servletContext).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        if (container.getDoreplacedentRoot() != null) {
            replacedertThat(container.getDoreplacedentRoot().getPath()).isEqualTo(FilenameUtils.separatorsToSystem("build/www"));
        }
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        props.getHttp().setVersion(JHipsterProperties.Http.Version.V_2_0);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }
}

19 Source : WebConfigurerTest.java
with Apache License 2.0
from xebialabs

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private MetricRegistry metricRegistry;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(mock(FilterRegistration.Dynamic.clreplaced)).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(mock(ServletRegistration.Dynamic.clreplaced)).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        webConfigurer = new WebConfigurer(env, props);
        metricRegistry = new MetricRegistry();
        webConfigurer.setMetricRegistry(metricRegistry);
    }

    @Test
    public void testStartUpProdServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        props.getHttp().setVersion(JHipsterProperties.Http.Version.V_2_0);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }
}

19 Source : WebConfigurerTest.java
with Apache License 2.0
from xebialabs

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private MetricRegistry metricRegistry;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(mock(FilterRegistration.Dynamic.clreplaced)).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(mock(ServletRegistration.Dynamic.clreplaced)).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        webConfigurer = new WebConfigurer(env, props);
        metricRegistry = new MetricRegistry();
        webConfigurer.setMetricRegistry(metricRegistry);
    }

    @Test
    public void testStartUpProdServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext, never()).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext).addServlet(eq("H2Console"), any(WebServlet.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        props.getHttp().setVersion(JHipsterProperties.Http.Version.V_2_0);
        UndertowServletWebServerFactory container = new UndertowServletWebServerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }
}

19 Source : MetricsTestUtility.java
with Apache License 2.0
from WeBankFinTech

/**
 * This clreplaced is designed for a utility clreplaced to test drop wizard metrics
 */
public clreplaced MetricsTestUtility {

    private final MetricRegistry registry;

    public MetricsTestUtility(final MetricRegistry registry) {
        this.registry = registry;
    }

    public long getGaugeValue(final String name) {
        // replacedume that the gauge value can be converted to type long.
        return (long) this.registry.getGauges().get(name).getValue();
    }
}

19 Source : TestDataDogReportingTask.java
with Apache License 2.0
from wangrenlei

public clreplaced TestDataDogReportingTask {

    private ProcessGroupStatus status;

    private ProcessorStatus procStatus;

    private ConcurrentHashMap<String, AtomicDouble> metricsMap;

    private MetricRegistry metricRegistry;

    private MetricsService metricsService;

    private String env = "dev";

    private String prefix = "nifi";

    private ReportingContext context;

    private ReportingInitializationContext initContext;

    private ConfigurationContext configurationContext;

    private volatile VirtualMachineMetrics virtualMachineMetrics;

    private Logger logger;

    @Before
    public void setup() {
        initProcessGroupStatus();
        initProcessorStatuses();
        initContexts();
    }

    // init all contexts
    private void initContexts() {
        configurationContext = Mockito.mock(ConfigurationContext.clreplaced);
        context = Mockito.mock(ReportingContext.clreplaced);
        Mockito.when(context.getProperty(DataDogReportingTask.ENVIRONMENT)).thenReturn(new MockPropertyValue(env, null));
        Mockito.when(context.getProperty(DataDogReportingTask.METRICS_PREFIX)).thenReturn(new MockPropertyValue(prefix, null));
        Mockito.when(context.getProperty(DataDogReportingTask.API_KEY)).thenReturn(new MockPropertyValue("agent", null));
        Mockito.when(context.getProperty(DataDogReportingTask.DATADOG_TRANSPORT)).thenReturn(new MockPropertyValue("DataDog Agent", null));
        EventAccess eventAccess = Mockito.mock(EventAccess.clreplaced);
        Mockito.when(eventAccess.getControllerStatus()).thenReturn(status);
        Mockito.when(context.getEventAccess()).thenReturn(eventAccess);
        logger = Mockito.mock(Logger.clreplaced);
        initContext = Mockito.mock(ReportingInitializationContext.clreplaced);
        Mockito.when(initContext.getIdentifier()).thenReturn(UUID.randomUUID().toString());
        // Mockito.when(initContext.getLogger()).thenReturn(logger);
        metricsMap = new ConcurrentHashMap<>();
        metricRegistry = Mockito.mock(MetricRegistry.clreplaced);
        virtualMachineMetrics = VirtualMachineMetrics.getInstance();
        metricsService = Mockito.mock(MetricsService.clreplaced);
    }

    // test onTrigger method
    @Test
    public void testOnTrigger() throws InitializationException, IOException {
        DataDogReportingTask dataDogReportingTask = new TestableDataDogReportingTask();
        dataDogReportingTask.initialize(initContext);
        dataDogReportingTask.setup(configurationContext);
        dataDogReportingTask.onTrigger(context);
        verify(metricsService, atLeast(1)).getProcessorMetrics(Mockito.<ProcessorStatus>any());
        verify(metricsService, atLeast(1)).getJVMMetrics(Mockito.<VirtualMachineMetrics>any());
    }

    // test updating metrics of processors
    @Test
    public void testUpdateMetricsProcessor() throws InitializationException, IOException {
        MetricsService ms = new MetricsService();
        Map<String, Double> processorMetrics = ms.getProcessorMetrics(procStatus);
        Map<String, String> tagsMap = ImmutableMap.of("env", "test");
        DataDogReportingTask dataDogReportingTask = new TestableDataDogReportingTask();
        dataDogReportingTask.initialize(initContext);
        dataDogReportingTask.setup(configurationContext);
        dataDogReportingTask.updateMetrics(processorMetrics, Optional.of("sampleProcessor"), tagsMap);
        verify(metricRegistry).register(eq("nifi.sampleProcessor.FlowFilesReceivedLast5Minutes"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.sampleProcessor.ActiveThreads"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.sampleProcessor.BytesWrittenLast5Minutes"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.sampleProcessor.BytesReadLast5Minutes"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.sampleProcessor.FlowFilesSentLast5Minutes"), Mockito.<Gauge>any());
    }

    // test updating JMV metrics
    @Test
    public void testUpdateMetricsJVM() throws InitializationException, IOException {
        MetricsService ms = new MetricsService();
        Map<String, Double> processorMetrics = ms.getJVMMetrics(virtualMachineMetrics);
        Map<String, String> tagsMap = ImmutableMap.of("env", "test");
        DataDogReportingTask dataDogReportingTask = new TestableDataDogReportingTask();
        dataDogReportingTask.initialize(initContext);
        dataDogReportingTask.setup(configurationContext);
        dataDogReportingTask.updateMetrics(processorMetrics, Optional.<String>absent(), tagsMap);
        verify(metricRegistry).register(eq("nifi.flow.jvm.heap_usage"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.thread_count"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.thread_states.terminated"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.heap_used"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.thread_states.runnable"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.thread_states.timed_waiting"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.uptime"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.daemon_thread_count"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.file_descriptor_usage"), Mockito.<Gauge>any());
        verify(metricRegistry).register(eq("nifi.flow.jvm.thread_states.blocked"), Mockito.<Gauge>any());
    }

    private void initProcessGroupStatus() {
        status = new ProcessGroupStatus();
        status.setId("1234");
        status.setFlowFilesReceived(5);
        status.setBytesReceived(10000);
        status.setFlowFilesSent(10);
        status.setBytesSent(20000);
        status.setQueuedCount(100);
        status.setQueuedContentSize(1024L);
        status.setBytesRead(60000L);
        status.setBytesWritten(80000L);
        status.setActiveThreadCount(5);
        status.setInputCount(2);
        status.setOutputCount(4);
    }

    private void initProcessorStatuses() {
        procStatus = new ProcessorStatus();
        procStatus.setProcessingNanos(123456789);
        procStatus.setInputCount(2);
        procStatus.setOutputCount(4);
        procStatus.setActiveThreadCount(6);
        procStatus.setBytesSent(1256);
        procStatus.setName("sampleProcessor");
        Collection<ProcessorStatus> processorStatuses = new ArrayList<>();
        processorStatuses.add(procStatus);
        status.setProcessorStatus(processorStatuses);
        ProcessGroupStatus groupStatus = new ProcessGroupStatus();
        groupStatus.setProcessorStatus(processorStatuses);
        Collection<ProcessGroupStatus> groupStatuses = new ArrayList<>();
        groupStatuses.add(groupStatus);
        status.setProcessGroupStatus(groupStatuses);
    }

    private clreplaced TestableDataDogReportingTask extends DataDogReportingTask {

        @Override
        protected MetricsService getMetricsService() {
            return metricsService;
        }

        @Override
        protected DDMetricRegistryBuilder getMetricRegistryBuilder() {
            return new DDMetricRegistryBuilder();
        }

        @Override
        protected MetricRegistry getMetricRegistry() {
            return metricRegistry;
        }

        @Override
        protected ConcurrentHashMap<String, AtomicDouble> getMetricsMap() {
            return metricsMap;
        }
    }
}

19 Source : DDMetricRegistryBuilder.java
with Apache License 2.0
from wangrenlei

public DDMetricRegistryBuilder setMetricRegistry(MetricRegistry metricRegistry) {
    this.metricRegistry = metricRegistry;
    return this;
}

19 Source : DDMetricRegistryBuilder.java
with Apache License 2.0
from wangrenlei

/*
     * create DataDog reporter
     */
private DatadogReporter createDatadogReporter(MetricRegistry metricRegistry) throws IOException {
    DatadogReporter reporter = DatadogReporter.forRegistry(metricRegistry).withHost(InetAddress.getLocalHost().getHostName()).withTransport(transport).withTags(tags).build();
    return reporter;
}

19 Source : DataDogReportingTask.java
with Apache License 2.0
from wangrenlei

@Tags({ "reporting", "datadog", "metrics" })
@CapabilityDescription("Publishes metrics from NiFi to datadog. For accurate and informative reporting, components should have unique names.")
public clreplaced DataDogReportingTask extends AbstractReportingTask {

    static final AllowableValue DATADOG_AGENT = new AllowableValue("Datadog Agent", "Datadog Agent", "Metrics will be sent via locally installed Datadog agent. " + "Datadog agent needs to be installed manually before using this option");

    static final AllowableValue DATADOG_HTTP = new AllowableValue("Datadog HTTP", "Datadog HTTP", "Metrics will be sent via HTTP transport with no need of Agent installed. " + "Datadog API key needs to be set");

    static final PropertyDescriptor DATADOG_TRANSPORT = new PropertyDescriptor.Builder().name("Datadog transport").description("Transport through which metrics will be sent to Datadog").required(true).allowableValues(DATADOG_AGENT, DATADOG_HTTP).defaultValue(DATADOG_HTTP.getValue()).build();

    static final PropertyDescriptor API_KEY = new PropertyDescriptor.Builder().name("API key").description("Datadog API key. If specified value is 'agent', local Datadog agent will be used.").expressionLanguageSupported(false).required(false).addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build();

    static final PropertyDescriptor METRICS_PREFIX = new PropertyDescriptor.Builder().name("Metrics prefix").description("Prefix to be added before every metric").required(true).expressionLanguageSupported(true).defaultValue("nifi").addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build();

    static final PropertyDescriptor ENVIRONMENT = new PropertyDescriptor.Builder().name("Environment").description("Environment, dataflow is running in. " + "This property will be included as metrics tag.").required(true).expressionLanguageSupported(true).defaultValue("dev").addValidator(StandardValidators.NON_EMPTY_VALIDATOR).build();

    private MetricsService metricsService;

    private DDMetricRegistryBuilder ddMetricRegistryBuilder;

    private MetricRegistry metricRegistry;

    private String metricsPrefix;

    private String environment;

    private String statusId;

    private ConcurrentHashMap<String, AtomicDouble> metricsMap;

    private Map<String, String> defaultTags;

    private volatile VirtualMachineMetrics virtualMachineMetrics;

    private Logger logger = LoggerFactory.getLogger(getClreplaced().getName());

    @OnScheduled
    public void setup(final ConfigurationContext context) {
        metricsService = getMetricsService();
        ddMetricRegistryBuilder = getMetricRegistryBuilder();
        metricRegistry = getMetricRegistry();
        metricsMap = getMetricsMap();
        metricsPrefix = METRICS_PREFIX.getDefaultValue();
        environment = ENVIRONMENT.getDefaultValue();
        virtualMachineMetrics = VirtualMachineMetrics.getInstance();
        ddMetricRegistryBuilder.setMetricRegistry(metricRegistry).setTags(metricsService.getAllTagsList());
    }

    @Override
    protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
        final List<PropertyDescriptor> properties = new ArrayList<>();
        properties.add(METRICS_PREFIX);
        properties.add(ENVIRONMENT);
        properties.add(API_KEY);
        properties.add(DATADOG_TRANSPORT);
        return properties;
    }

    @Override
    public void onTrigger(ReportingContext context) {
        final ProcessGroupStatus status = context.getEventAccess().getControllerStatus();
        metricsPrefix = context.getProperty(METRICS_PREFIX).evaluateAttributeExpressions().getValue();
        environment = context.getProperty(ENVIRONMENT).evaluateAttributeExpressions().getValue();
        statusId = status.getId();
        defaultTags = ImmutableMap.of("env", environment, "dataflow_id", statusId);
        try {
            updateDataDogTransport(context);
        } catch (IOException e) {
            e.printStackTrace();
        }
        updateAllMetricGroups(status);
        ddMetricRegistryBuilder.getDatadogReporter().report();
    }

    protected void updateMetrics(Map<String, Double> metrics, Optional<String> processorName, Map<String, String> tags) {
        for (Map.Entry<String, Double> entry : metrics.entrySet()) {
            final String metricName = buildMetricName(processorName, entry.getKey());
            logger.debug(metricName + ": " + entry.getValue());
            // if metric is not registered yet - register it
            if (!metricsMap.containsKey(metricName)) {
                metricsMap.put(metricName, new AtomicDouble(entry.getValue()));
                metricRegistry.register(metricName, new MetricGauge(metricName, tags));
            }
            // set real time value to metrics map
            metricsMap.get(metricName).set(entry.getValue());
        }
    }

    private void updateAllMetricGroups(ProcessGroupStatus processGroupStatus) {
        final List<ProcessorStatus> processorStatuses = new ArrayList<>();
        populateProcessorStatuses(processGroupStatus, processorStatuses);
        for (final ProcessorStatus processorStatus : processorStatuses) {
            updateMetrics(metricsService.getProcessorMetrics(processorStatus), Optional.of(processorStatus.getName()), defaultTags);
        }
        final List<ConnectionStatus> connectionStatuses = new ArrayList<>();
        populateConnectionStatuses(processGroupStatus, connectionStatuses);
        for (ConnectionStatus connectionStatus : connectionStatuses) {
            Map<String, String> connectionStatusTags = new HashMap<>(defaultTags);
            connectionStatusTags.putAll(metricsService.getConnectionStatusTags(connectionStatus));
            updateMetrics(metricsService.getConnectionStatusMetrics(connectionStatus), Optional.<String>absent(), connectionStatusTags);
        }
        final List<PortStatus> inputPortStatuses = new ArrayList<>();
        populateInputPortStatuses(processGroupStatus, inputPortStatuses);
        for (PortStatus portStatus : inputPortStatuses) {
            Map<String, String> portTags = new HashMap<>(defaultTags);
            portTags.putAll(metricsService.getPortStatusTags(portStatus));
            updateMetrics(metricsService.getPortStatusMetrics(portStatus), Optional.<String>absent(), portTags);
        }
        final List<PortStatus> outputPortStatuses = new ArrayList<>();
        populateOutputPortStatuses(processGroupStatus, outputPortStatuses);
        for (PortStatus portStatus : outputPortStatuses) {
            Map<String, String> portTags = new HashMap<>(defaultTags);
            portTags.putAll(metricsService.getPortStatusTags(portStatus));
            updateMetrics(metricsService.getPortStatusMetrics(portStatus), Optional.<String>absent(), portTags);
        }
        updateMetrics(metricsService.getJVMMetrics(virtualMachineMetrics), Optional.<String>absent(), defaultTags);
        updateMetrics(metricsService.getDataFlowMetrics(processGroupStatus), Optional.<String>absent(), defaultTags);
    }

    private clreplaced MetricGauge implements Gauge, DynamicTagsCallback {

        private Map<String, String> tags;

        private String metricName;

        public MetricGauge(String metricName, Map<String, String> tagsMap) {
            this.tags = tagsMap;
            this.metricName = metricName;
        }

        @Override
        public Object getValue() {
            return metricsMap.get(metricName).get();
        }

        @Override
        public List<String> getTags() {
            List<String> tagsList = Lists.newArrayList();
            for (Map.Entry<String, String> entry : tags.entrySet()) {
                tagsList.add(entry.getKey() + ":" + entry.getValue());
            }
            return tagsList;
        }
    }

    private void updateDataDogTransport(ReportingContext context) throws IOException {
        String dataDogTransport = context.getProperty(DATADOG_TRANSPORT).getValue();
        if (dataDogTransport.equalsIgnoreCase(DATADOG_AGENT.getValue())) {
            ddMetricRegistryBuilder.build("agent");
        } else if (dataDogTransport.equalsIgnoreCase(DATADOG_HTTP.getValue()) && context.getProperty(API_KEY).isSet()) {
            ddMetricRegistryBuilder.build(context.getProperty(API_KEY).getValue());
        }
    }

    private void populateProcessorStatuses(final ProcessGroupStatus groupStatus, final List<ProcessorStatus> statuses) {
        statuses.addAll(groupStatus.getProcessorStatus());
        for (final ProcessGroupStatus childGroupStatus : groupStatus.getProcessGroupStatus()) {
            populateProcessorStatuses(childGroupStatus, statuses);
        }
    }

    private void populateConnectionStatuses(final ProcessGroupStatus groupStatus, final List<ConnectionStatus> statuses) {
        statuses.addAll(groupStatus.getConnectionStatus());
        for (final ProcessGroupStatus childGroupStatus : groupStatus.getProcessGroupStatus()) {
            populateConnectionStatuses(childGroupStatus, statuses);
        }
    }

    private void populateInputPortStatuses(final ProcessGroupStatus groupStatus, final List<PortStatus> statuses) {
        statuses.addAll(groupStatus.getInputPortStatus());
        for (final ProcessGroupStatus childGroupStatus : groupStatus.getProcessGroupStatus()) {
            populateInputPortStatuses(childGroupStatus, statuses);
        }
    }

    private void populateOutputPortStatuses(final ProcessGroupStatus groupStatus, final List<PortStatus> statuses) {
        statuses.addAll(groupStatus.getOutputPortStatus());
        for (final ProcessGroupStatus childGroupStatus : groupStatus.getProcessGroupStatus()) {
            populateOutputPortStatuses(childGroupStatus, statuses);
        }
    }

    private String buildMetricName(Optional<String> processorName, String metricName) {
        return metricsPrefix + "." + processorName.or("flow") + "." + metricName;
    }

    protected MetricsService getMetricsService() {
        return new MetricsService();
    }

    protected DDMetricRegistryBuilder getMetricRegistryBuilder() {
        return new DDMetricRegistryBuilder();
    }

    protected MetricRegistry getMetricRegistry() {
        return new MetricRegistry();
    }

    protected ConcurrentHashMap<String, AtomicDouble> getMetricsMap() {
        return new ConcurrentHashMap<>();
    }
}

19 Source : ReplayerModule.java
with Apache License 2.0
from vy

@Provides
@Singleton
public MetricReporter provideMetricReporter(Config config, MetricRegistry metricRegistry) {
    return config.getMetricsOutputFile() == null ? MetricNullReporter.getInstance() : new MetricFileReporter(config, metricRegistry);
}

19 Source : MetricsCollector.java
with MIT License
from vostok

/**
 * @author Gregory Koshelev
 */
public clreplaced MetricsCollector {

    private MetricRegistry registry = new MetricRegistry();

    private final long period;

    private final Graphite graphite;

    private final GraphiteReporter graphiteReporter;

    /**
     */
    public MetricsCollector(Properties properties) {
        String graphiteServerAddr = PropertiesUtil.get(Props.GRAPHITE_SERVER, properties).get();
        int graphiteServerPort = PropertiesUtil.get(Props.GRAPHITE_PORT, properties).get();
        ApplicationContext context = Application.context();
        String prefix = String.join(".", PropertiesUtil.get(Props.GRAPHITE_PREFIX, properties).get(), context.getApplicationId(), context.getEnvironment(), context.getZone(), context.getInstanceId());
        this.period = PropertiesUtil.get(Props.REPORT_PERIOD_SECONDS, properties).get();
        graphite = new Graphite(new InetSocketAddress(graphiteServerAddr, graphiteServerPort));
        graphiteReporter = GraphiteReporter.forRegistry(registry).prefixedWith(prefix).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).filter(MetricFilter.ALL).build(graphite);
    }

    /**
     * Start to report metrics to the Graphite
     */
    public void start() {
        graphiteReporter.start(period, TimeUnit.SECONDS);
    }

    /**
     * Stop to report metrics to the Graphite
     */
    public void stop() {
        graphiteReporter.stop();
    }

    /**
     * Get throughput meter by the name
     *
     * @param name the name of the metric
     * @return requested meter
     */
    public Meter meter(String name) {
        return new MeterImpl(registry.meter(name));
    }

    /**
     * Get timer by the name
     *
     * @param name the name of the timer
     * @return requested timer
     */
    public Timer timer(String name) {
        return new TimerImpl(registry.timer(name));
    }

    /**
     * Get counter by the name
     *
     * @param name the name of the counter
     * @return requested counter
     */
    public Counter counter(String name) {
        return new CounterImpl(registry.counter(name));
    }

    /**
     * Get histogram by the name
     *
     * @param name the name of the histogram
     * @return requested histogram
     */
    public Histogram histogram(String name) {
        return new HistogramImpl(registry.histogram(name));
    }

    /**
     * Register metric by the name with custom function
     *
     * @param name     the name of the metric
     * @param supplier the custom function to provide metric's values
     * @param <T>      the metric's value type (ordinarily Integer or Long)
     */
    public <T> void gauge(String name, Supplier<T> supplier) {
        registry.register(name, (Gauge<T>) supplier::get);
    }

    /**
     * Removes the metric with the given name
     *
     * @param name the name of the metric
     * @return whether or not the metric was removed
     */
    public boolean remove(String name) {
        return registry.remove(name);
    }

    /**
     * Creates HTTP Metric for the handler.
     *
     * @param name the handler name
     * @return HTTP Metric for the handler
     */
    public HttpMetric http(String name) {
        return new HttpMetric(name, this);
    }

    private static clreplaced Props {

        static final Parameter<String> GRAPHITE_SERVER = Parameter.stringParameter("graphite.server.addr").withDefault("localhost").build();

        static final Parameter<Integer> GRAPHITE_PORT = Parameter.integerParameter("graphite.server.port").withDefault(2003).withValidator(IntegerValidators.portValidator()).build();

        static final Parameter<String> GRAPHITE_PREFIX = Parameter.stringParameter("graphite.prefix").required().build();

        static final Parameter<Integer> REPORT_PERIOD_SECONDS = Parameter.integerParameter("period").withDefault(60).withValidator(IntegerValidators.positive()).build();
    }

    /**
     * @author Gregory Koshelev
     */
    public static clreplaced MeterImpl implements Meter {

        private final com.codahale.metrics.Meter meter;

        MeterImpl(com.codahale.metrics.Meter meter) {
            this.meter = meter;
        }

        @Override
        public void mark(long n) {
            meter.mark(n);
        }

        @Override
        public void mark() {
            meter.mark();
        }
    }

    /**
     * @author Gregory Koshelev
     */
    public static clreplaced TimerImpl implements Timer {

        private final com.codahale.metrics.Timer timer;

        TimerImpl(com.codahale.metrics.Timer timer) {
            this.timer = timer;
        }

        @Override
        public void update(long duration, TimeUnit unit) {
            timer.update(duration, unit);
        }
    }

    /**
     * @author Gregory Koshelev
     */
    public static clreplaced CounterImpl implements Counter {

        private final com.codahale.metrics.Counter counter;

        CounterImpl(com.codahale.metrics.Counter counter) {
            this.counter = counter;
        }

        @Override
        public void increment(long value) {
            counter.inc(value);
        }

        @Override
        public void decrement(long value) {
            counter.dec(value);
        }
    }

    /**
     * @author Gregory Koshelev
     */
    public static clreplaced HistogramImpl implements Histogram {

        private final com.codahale.metrics.Histogram histogram;

        HistogramImpl(com.codahale.metrics.Histogram histogram) {
            this.histogram = histogram;
        }

        @Override
        public void update(int value) {
            histogram.update(value);
        }

        @Override
        public void update(long value) {
            histogram.update(value);
        }
    }
}

19 Source : DropwizardAdapterTest.java
with Apache License 2.0
from vladimir-bukhtoyarov

public clreplaced DropwizardAdapterTest {

    private MockClock clock = new MockClock(0);

    private GarbageCollectorMXBeanMock young = new GarbageCollectorMXBeanMock("young");

    private GarbageCollectorMXBeanMock old = new GarbageCollectorMXBeanMock("old");

    GcMonitor monitor = GcMonitor.builder(Arrays.asList(young, old)).withTicker(clock).withHistogramSignificantDigits(3).addRollingWindow("30sec", Duration.ofSeconds(30)).addRollingWindow("5min", Duration.ofMinutes(5)).build();

    MetricSet metricSet = DropwizardAdapter.toMetricSet("gc", monitor);

    MetricRegistry registry = new MetricRegistry();

    {
        registry.registerAll(metricSet);
    }

    @Before
    public void init() {
        monitor.start();
    }

    @Test
    public void testAdapter() {
        clock.setCurrentTimeMillis(10_000);
        young.addFakeCollection(100);
        young.addFakeCollection(200);
        old.addFakeCollection(300);
        old.addFakeCollection(400);
        checkMillisSpentInGc(1000, "AggregatedCollector", "30sec");
        checkMillisSpentInGc(1000, "AggregatedCollector", "5min");
        checkMillisSpentInGc(1000, "AggregatedCollector", "uniform");
        checkMillisSpentInGc(300, "young", "30sec");
        checkMillisSpentInGc(300, "young", "5min");
        checkMillisSpentInGc(300, "young", "uniform");
        checkMillisSpentInGc(700, "old", "30sec");
        checkMillisSpentInGc(700, "old", "5min");
        checkMillisSpentInGc(700, "old", "uniform");
        checkPausePercentage(10.0, "AggregatedCollector", "30sec");
        checkPausePercentage(10.0, "AggregatedCollector", "5min");
        checkPausePercentage(10.0, "AggregatedCollector", "uniform");
        checkPausePercentage(3.0, "young", "30sec");
        checkPausePercentage(3.0, "young", "5min");
        checkPausePercentage(3.0, "young", "uniform");
        checkPausePercentage(7.0, "old", "30sec");
        checkPausePercentage(7.0, "old", "5min");
        checkPausePercentage(7.0, "old", "uniform");
        checkHistogram(4, 100, 400, "AggregatedCollector", "30sec");
        checkHistogram(4, 100, 400, "AggregatedCollector", "5min");
        checkHistogram(4, 100, 400, "AggregatedCollector", "uniform");
        checkHistogram(2, 100, 200, "young", "30sec");
        checkHistogram(2, 100, 200, "young", "5min");
        checkHistogram(2, 100, 200, "young", "uniform");
        checkHistogram(2, 300, 400, "old", "30sec");
        checkHistogram(2, 300, 400, "old", "5min");
        checkHistogram(2, 300, 400, "old", "uniform");
    }

    private void checkHistogram(long count, long min, long max, String collector, String window) {
        String name = "gc." + collector + "." + window + ".pauseLatencyMillis";
        Snapshot snapshot = registry.histogram(name).getSnapshot();
        replacedertEquals(min, snapshot.getMin());
        replacedertEquals(max, snapshot.getMax());
        replacedertEquals(count, registry.histogram(name).getCount());
    }

    private void checkPausePercentage(double pausePercentage, String collector, String window) {
        String name = "gc." + collector + "." + window + ".pausePercentage";
        Gauge<BigDecimal> gauge = registry.getGauges().get(name);
        BigDecimal expectedPercentage = Formatter.roundToDigits(pausePercentage, 2);
        replacedertEquals(expectedPercentage, gauge.getValue());
    }

    private void checkMillisSpentInGc(long millis, String collector, String window) {
        String name = "gc." + collector + "." + window + ".millisSpentInPause";
        Gauge<Long> gauge = registry.getGauges().get(name);
        replacedertEquals(millis, gauge.getValue().longValue());
    }
}

19 Source : WebConfigurerTest.java
with Apache License 2.0
from viz-centric

/**
 * Unit tests for the WebConfigurer clreplaced.
 *
 * @see WebConfigurer
 */
public clreplaced WebConfigurerTest {

    private WebConfigurer webConfigurer;

    private MockServletContext servletContext;

    private MockEnvironment env;

    private JHipsterProperties props;

    private MetricRegistry metricRegistry;

    @Before
    public void setup() {
        servletContext = spy(new MockServletContext());
        doReturn(new MockFilterRegistration()).when(servletContext).addFilter(anyString(), any(Filter.clreplaced));
        doReturn(new MockServletRegistration()).when(servletContext).addServlet(anyString(), any(Servlet.clreplaced));
        env = new MockEnvironment();
        props = new JHipsterProperties();
        webConfigurer = new WebConfigurer(env, props);
        metricRegistry = new MetricRegistry();
        webConfigurer.setMetricRegistry(metricRegistry);
    }

    @Test
    public void testStartUpProdServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext).addFilter(eq("cachingHttpHeadersFilter"), any(CachingHttpHeadersFilter.clreplaced));
    }

    @Test
    public void testStartUpDevServletContext() throws ServletException {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT);
        webConfigurer.onStartup(servletContext);
        replacedertThat(servletContext.getAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE)).isEqualTo(metricRegistry);
        replacedertThat(servletContext.getAttribute(MetricsServlet.METRICS_REGISTRY)).isEqualTo(metricRegistry);
        verify(servletContext).addFilter(eq("webappMetricsFilter"), any(InstrumentedFilter.clreplaced));
        verify(servletContext).addServlet(eq("metricsServlet"), any(MetricsServlet.clreplaced));
        verify(servletContext, never()).addFilter(eq("cachingHttpHeadersFilter"), any(CachingHttpHeadersFilter.clreplaced));
    }

    @Test
    public void testCustomizeServletContainer() {
        env.setActiveProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION);
        UndertowEmbeddedServletContainerFactory container = new UndertowEmbeddedServletContainerFactory();
        webConfigurer.customize(container);
        replacedertThat(container.getMimeMappings().get("abs")).isEqualTo("audio/x-mpeg");
        replacedertThat(container.getMimeMappings().get("html")).isEqualTo("text/html;charset=utf-8");
        replacedertThat(container.getMimeMappings().get("json")).isEqualTo("text/html;charset=utf-8");
        if (container.getDoreplacedentRoot() != null) {
            replacedertThat(container.getDoreplacedentRoot().getPath()).isEqualTo(FilenameUtils.separatorsToSystem("target/www"));
        }
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isNull();
    }

    @Test
    public void testUndertowHttp2Enabled() {
        props.getHttp().setVersion(JHipsterProperties.Http.Version.V_2_0);
        UndertowEmbeddedServletContainerFactory container = new UndertowEmbeddedServletContainerFactory();
        webConfigurer.customize(container);
        Builder builder = Undertow.builder();
        container.getBuilderCustomizers().forEach(c -> c.customize(builder));
        OptionMap.Builder serverOptions = (OptionMap.Builder) ReflectionTestUtils.getField(builder, "serverOptions");
        replacedertThat(serverOptions.getMap().get(UndertowOptions.ENABLE_HTTP2)).isTrue();
    }

    @Test
    public void testCorsFilterOnApiPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(options("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com")).andExpect(header().string(HttpHeaders.VARY, "Origin")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "GET,POST,PUT,DELETE")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_MAX_AGE, "1800"));
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().string(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "other.domain.com"));
    }

    @Test
    public void testCorsFilterOnOtherPath() throws Exception {
        props.getCors().setAllowedOrigins(Collections.singletonList("*"));
        props.getCors().setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));
        props.getCors().setAllowedHeaders(Collections.singletonList("*"));
        props.getCors().setMaxAge(1800L);
        props.getCors().setAllowCredentials(true);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/test/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated() throws Exception {
        props.getCors().setAllowedOrigins(null);
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    @Test
    public void testCorsFilterDeactivated2() throws Exception {
        props.getCors().setAllowedOrigins(new ArrayList<>());
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new WebConfigurerTestController()).addFilters(webConfigurer.corsFilter()).build();
        mockMvc.perform(get("/api/test-cors").header(HttpHeaders.ORIGIN, "other.domain.com")).andExpect(status().isOk()).andExpect(header().doesNotExist(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN));
    }

    static clreplaced MockFilterRegistration implements FilterRegistration, FilterRegistration.Dynamic {

        @Override
        public void addMappingForServletNames(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... servletNames) {
        }

        @Override
        public Collection<String> getServletNameMappings() {
            return null;
        }

        @Override
        public void addMappingForUrlPatterns(EnumSet<DispatcherType> dispatcherTypes, boolean isMatchAfter, String... urlPatterns) {
        }

        @Override
        public Collection<String> getUrlPatternMappings() {
            return null;
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }

    static clreplaced MockServletRegistration implements ServletRegistration, ServletRegistration.Dynamic {

        @Override
        public void setLoadOnStartup(int loadOnStartup) {
        }

        @Override
        public Set<String> setServletSecurity(ServletSecurityElement constraint) {
            return null;
        }

        @Override
        public void setMultipartConfig(MultipartConfigElement multipartConfig) {
        }

        @Override
        public void setRunAsRole(String roleName) {
        }

        @Override
        public void setAsyncSupported(boolean isAsyncSupported) {
        }

        @Override
        public Set<String> addMapping(String... urlPatterns) {
            return null;
        }

        @Override
        public Collection<String> getMappings() {
            return null;
        }

        @Override
        public String getRunAsRole() {
            return null;
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public String getClreplacedName() {
            return null;
        }

        @Override
        public boolean setInitParameter(String name, String value) {
            return false;
        }

        @Override
        public String getInitParameter(String name) {
            return null;
        }

        @Override
        public Set<String> setInitParameters(Map<String, String> initParameters) {
            return null;
        }

        @Override
        public Map<String, String> getInitParameters() {
            return null;
        }
    }

    public static clreplaced MockHazelcastInstance implements HazelcastInstance {

        @Override
        public String getName() {
            return "HazelcastInstance";
        }

        @Override
        public <E> IQueue<E> getQueue(String s) {
            return null;
        }

        @Override
        public <E> ITopic<E> getTopic(String s) {
            return null;
        }

        @Override
        public <E> ISet<E> getSet(String s) {
            return null;
        }

        @Override
        public <E> IList<E> getList(String s) {
            return null;
        }

        @Override
        public <K, V> IMap<K, V> getMap(String s) {
            return null;
        }

        @Override
        public <K, V> ReplicatedMap<K, V> getReplicatedMap(String s) {
            return null;
        }

        @Override
        public JobTracker getJobTracker(String s) {
            return null;
        }

        @Override
        public <K, V> MultiMap<K, V> getMultiMap(String s) {
            return null;
        }

        @Override
        public ILock getLock(String s) {
            return null;
        }

        @Override
        public <E> Ringbuffer<E> getRingbuffer(String s) {
            return null;
        }

        @Override
        public <E> ITopic<E> getReliableTopic(String s) {
            return null;
        }

        @Override
        public Cluster getCluster() {
            return null;
        }

        @Override
        public Endpoint getLocalEndpoint() {
            return null;
        }

        @Override
        public IExecutorService getExecutorService(String s) {
            return null;
        }

        @Override
        public DurableExecutorService getDurableExecutorService(String s) {
            return null;
        }

        @Override
        public <T> T executeTransaction(TransactionalTask<T> transactionalTask) throws TransactionException {
            return null;
        }

        @Override
        public <T> T executeTransaction(TransactionOptions transactionOptions, TransactionalTask<T> transactionalTask) throws TransactionException {
            return null;
        }

        @Override
        public TransactionContext newTransactionContext() {
            return null;
        }

        @Override
        public TransactionContext newTransactionContext(TransactionOptions transactionOptions) {
            return null;
        }

        @Override
        public IdGenerator getIdGenerator(String s) {
            return null;
        }

        @Override
        public IAtomicLong getAtomicLong(String s) {
            return null;
        }

        @Override
        public <E> IAtomicReference<E> getAtomicReference(String s) {
            return null;
        }

        @Override
        public ICountDownLatch getCountDownLatch(String s) {
            return null;
        }

        @Override
        public ISemapreplaced getSemapreplaced(String s) {
            return null;
        }

        @Override
        public Collection<DistributedObject> getDistributedObjects() {
            return null;
        }

        @Override
        public String addDistributedObjectListener(DistributedObjectListener distributedObjectListener) {
            return null;
        }

        @Override
        public boolean removeDistributedObjectListener(String s) {
            return false;
        }

        @Override
        public Config getConfig() {
            return null;
        }

        @Override
        public ParreplacedionService getParreplacedionService() {
            return null;
        }

        @Override
        public QuorumService getQuorumService() {
            return null;
        }

        @Override
        public ClientService getClientService() {
            return null;
        }

        @Override
        public LoggingService getLoggingService() {
            return null;
        }

        @Override
        public LifecycleService getLifecycleService() {
            return null;
        }

        @Override
        public <T extends DistributedObject> T getDistributedObject(String s, String s1) {
            return null;
        }

        @Override
        public ConcurrentMap<String, Object> getUserContext() {
            return null;
        }

        @Override
        public HazelcastXAResource getXAResource() {
            return null;
        }

        @Override
        public ICacheManager getCacheManager() {
            return null;
        }

        @Override
        public void shutdown() {
        }
    }
}

19 Source : WebConfigurer.java
with Apache License 2.0
from viz-centric

@Configuration
@Slf4j
@RequiredArgsConstructor
public clreplaced WebConfigurer implements ServletContextInitializer, EmbeddedServletContainerCustomizer {

    private final Environment env;

    private final JHipsterProperties jHipsterProperties;

    private MetricRegistry metricRegistry;

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        if (env.getActiveProfiles().length != 0) {
            log.info("Web application configuration, using profiles: {}", (Object[]) env.getActiveProfiles());
        }
        EnumSet<DispatcherType> disps = EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.ASYNC);
        initMetrics(servletContext, disps);
        if (env.acceptsProfiles(JHipsterConstants.SPRING_PROFILE_PRODUCTION)) {
            initCachingHttpHeadersFilter(servletContext, disps);
        }
        log.info("Web application fully configured");
    }

    /**
     * Customize the Servlet engine: Mime types, the doreplacedent root, the cache.
     */
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
        MimeMappings mappings = new MimeMappings(MimeMappings.DEFAULT);
        // IE issue, see https://github.com/jhipster/generator-jhipster/pull/711
        mappings.add("html", "text/html;charset=utf-8");
        // CloudFoundry issue, see https://github.com/cloudfoundry/gorouter/issues/64
        mappings.add("json", "text/html;charset=utf-8");
        container.setMimeMappings(mappings);
        // When running in an IDE or with ./mvnw spring-boot:run, set location of the static web replacedets.
        setLocationForStaticreplacedets(container);
        /*
         * Enable HTTP/2 for Undertow - https://twitter.com/ankinson/status/829256167700492288
         * HTTP/2 requires HTTPS, so HTTP requests will fallback to HTTP/1.1.
         * See the JHipsterProperties clreplaced and your application-*.yml configuration files
         * for more information.
         */
        if (jHipsterProperties.getHttp().getVersion().equals(JHipsterProperties.Http.Version.V_2_0) && container instanceof UndertowEmbeddedServletContainerFactory) {
            ((UndertowEmbeddedServletContainerFactory) container).addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true));
        }
    }

    private void setLocationForStaticreplacedets(ConfigurableEmbeddedServletContainer container) {
        File root;
        String prefixPath = resolvePathPrefix();
        root = new File(prefixPath + "target/www/");
        if (root.exists() && root.isDirectory()) {
            container.setDoreplacedentRoot(root);
        }
    }

    /**
     *  Resolve path prefix to static resources.
     */
    private String resolvePathPrefix() {
        String fullExecutablePath = this.getClreplaced().getResource("").getPath();
        String rootPath = Paths.get(".").toUri().normalize().getPath();
        String extractedPath = fullExecutablePath.replace(rootPath, "");
        int extractionEndIndex = extractedPath.indexOf("target/");
        if (extractionEndIndex <= 0) {
            return "";
        }
        return extractedPath.substring(0, extractionEndIndex);
    }

    /**
     * Initializes the caching HTTP Headers Filter.
     */
    private void initCachingHttpHeadersFilter(ServletContext servletContext, EnumSet<DispatcherType> disps) {
        log.debug("Registering Caching HTTP Headers Filter");
        FilterRegistration.Dynamic cachingHttpHeadersFilter = servletContext.addFilter("cachingHttpHeadersFilter", new CachingHttpHeadersFilter(jHipsterProperties));
        cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/content/*");
        cachingHttpHeadersFilter.addMappingForUrlPatterns(disps, true, "/app/*");
        cachingHttpHeadersFilter.setAsyncSupported(true);
    }

    /**
     * Initializes Metrics.
     */
    private void initMetrics(ServletContext servletContext, EnumSet<DispatcherType> disps) {
        log.debug("Initializing Metrics registries");
        servletContext.setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, metricRegistry);
        servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY, metricRegistry);
        log.debug("Registering Metrics Filter");
        FilterRegistration.Dynamic metricsFilter = servletContext.addFilter("webappMetricsFilter", new InstrumentedFilter());
        metricsFilter.addMappingForUrlPatterns(disps, true, "/*");
        metricsFilter.setAsyncSupported(true);
        log.debug("Registering Metrics Servlet");
        ServletRegistration.Dynamic metricsAdminServlet = servletContext.addServlet("metricsServlet", new MetricsServlet());
        metricsAdminServlet.addMapping("/management/metrics/*");
        metricsAdminServlet.setAsyncSupported(true);
        metricsAdminServlet.setLoadOnStartup(2);
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = jHipsterProperties.getCors();
        if (config.getAllowedOrigins() != null && !config.getAllowedOrigins().isEmpty()) {
            log.debug("Registering CORS filter");
            source.registerCorsConfiguration("/api/**", config);
            source.registerCorsConfiguration("/v2/api-docs", config);
        }
        return new CorsFilter(source);
    }

    @Autowired(required = false)
    public void setMetricRegistry(MetricRegistry metricRegistry) {
        this.metricRegistry = metricRegistry;
    }
}

19 Source : MetricsConfiguration.java
with Apache License 2.0
from viz-centric

@RefreshScope
@Configuration
@EnableMetrics(proxyTargetClreplaced = true)
@Slf4j
@RequiredArgsConstructor
public clreplaced MetricsConfiguration extends MetricsConfigurerAdapter {

    private static final String PROP_METRIC_REG_JVM_MEMORY = "jvm.memory";

    private static final String PROP_METRIC_REG_JVM_GARBAGE = "jvm.garbage";

    private static final String PROP_METRIC_REG_JVM_THREADS = "jvm.threads";

    private static final String PROP_METRIC_REG_JVM_FILES = "jvm.files";

    private static final String PROP_METRIC_REG_JVM_BUFFERS = "jvm.buffers";

    private MetricRegistry metricRegistry = new MetricRegistry();

    private HealthCheckRegistry healthCheckRegistry = new HealthCheckRegistry();

    private final JHipsterProperties jHipsterProperties;

    private HikariDataSource hikariDataSource;

    @Autowired(required = false)
    public void setHikariDataSource(HikariDataSource hikariDataSource) {
        this.hikariDataSource = hikariDataSource;
    }

    @Override
    @Bean
    public MetricRegistry getMetricRegistry() {
        return metricRegistry;
    }

    @Override
    @Bean
    public HealthCheckRegistry getHealthCheckRegistry() {
        return healthCheckRegistry;
    }

    @PostConstruct
    public void init() {
        log.debug("Registering JVM gauges");
        metricRegistry.register(PROP_METRIC_REG_JVM_MEMORY, new MemoryUsageGaugeSet());
        metricRegistry.register(PROP_METRIC_REG_JVM_GARBAGE, new GarbageCollectorMetricSet());
        metricRegistry.register(PROP_METRIC_REG_JVM_THREADS, new ThreadStatesGaugeSet());
        metricRegistry.register(PROP_METRIC_REG_JVM_FILES, new FileDescriptorRatioGauge());
        metricRegistry.register(PROP_METRIC_REG_JVM_BUFFERS, new BufferPoolMetricSet(ManagementFactory.getPlatformMBeanServer()));
        if (hikariDataSource != null) {
            log.debug("Monitoring the datasource");
            hikariDataSource.setMetricRegistry(metricRegistry);
        }
        if (jHipsterProperties.getMetrics().getJmx().isEnabled()) {
            log.debug("Initializing Metrics JMX reporting");
            JmxReporter jmxReporter = JmxReporter.forRegistry(metricRegistry).build();
            jmxReporter.start();
        }
        if (jHipsterProperties.getMetrics().getLogs().isEnabled()) {
            log.info("Initializing Metrics Log reporting");
            final Slf4jReporter reporter = Slf4jReporter.forRegistry(metricRegistry).outputTo(LoggerFactory.getLogger("metrics")).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).build();
            reporter.start(jHipsterProperties.getMetrics().getLogs().getReportFrequency(), TimeUnit.SECONDS);
        }
    }
}

19 Source : MetricsUtil.java
with GNU Lesser General Public License v3.0
from vision-consensus

@Slf4j(topic = "metrics")
public clreplaced MetricsUtil {

    private static MetricRegistry metricRegistry = new MetricRegistry();

    public static void init() {
        if (CommonParameter.getInstance().isNodeMetricsEnable() && CommonParameter.getInstance().isMetricsStorageEnable()) {
            String ip = CommonParameter.getInstance().getInfluxDbIp();
            int port = CommonParameter.getInstance().getInfluxDbPort();
            String dataBase = CommonParameter.getInstance().getInfluxDbDatabase();
            ScheduledReporter influxReport = InfluxdbReporter.forRegistry(metricRegistry).protocol(InfluxdbProtocols.http(ip, port, dataBase)).convertRatesTo(TimeUnit.SECONDS).convertDurationsTo(TimeUnit.MILLISECONDS).filter(MetricFilter.ALL).skipIdleMetrics(false).build();
            int interval = CommonParameter.getInstance().getMetricsReportInterval() * Constant.ONE_THOUSAND;
            influxReport.start(interval, TimeUnit.MILLISECONDS);
        }
    }

    public static Histogram getHistogram(String key) {
        return metricRegistry.histogram(key);
    }

    public static SortedMap<String, Histogram> getHistograms(String key) {
        return metricRegistry.getHistograms((s, metric) -> s.startsWith(key));
    }

    /**
     * Histogram update.
     *
     * @param key String
     * @param value long
     */
    public static void histogramUpdate(String key, long value) {
        try {
            if (CommonParameter.getInstance().isNodeMetricsEnable()) {
                metricRegistry.histogram(key).update(value);
            }
        } catch (Exception e) {
            logger.warn("update histogram failed, key:{}, value:{}", key, value);
        }
    }

    public static Meter getMeter(String name) {
        return metricRegistry.meter(name);
    }

    /**
     * get all Meters with same prefix
     *
     * @param key prefix String
     */
    public static SortedMap<String, Meter> getMeters(String key) {
        return metricRegistry.getMeters((s, metric) -> s.startsWith(key));
    }

    /**
     * Meter mark.
     *
     * @param key String
     */
    public static void meterMark(String key) {
        try {
            if (CommonParameter.getInstance().isNodeMetricsEnable()) {
                metricRegistry.meter(key).mark(1L);
            }
        } catch (Exception e) {
            logger.warn("mark meter failed, key:{}", key);
        }
    }

    /**
     * Meter mark.
     *
     * @param key String
     * @param value long
     */
    public static void meterMark(String key, long value) {
        try {
            if (CommonParameter.getInstance().isNodeMetricsEnable()) {
                metricRegistry.meter(key).mark(value);
            }
        } catch (Exception e) {
            logger.warn("mark meter failed, key:{}, value:{}", key, value);
        }
    }

    public static Counter getCounter(String name) {
        return metricRegistry.counter(name);
    }

    public static SortedMap<String, Counter> getCounters(String name) {
        return metricRegistry.getCounters((s, metric) -> s.startsWith(name));
    }

    /**
     * Counter inc.
     *
     * @param key String
     */
    public static void counterInc(String key) {
        try {
            if (CommonParameter.getInstance().isNodeMetricsEnable()) {
                metricRegistry.counter(key).inc(1L);
            }
        } catch (Exception e) {
            logger.warn("inc counter failed, key:{}", key);
        }
    }

    /**
     * get rate info.
     *
     * @param key String
     * @return RateInfo
     */
    public static RateInfo getRateInfo(String key) {
        RateInfo rateInfo = new RateInfo();
        Meter meter = MetricsUtil.getMeter(key);
        rateInfo.setCount(meter.getCount());
        rateInfo.setMeanRate(meter.getMeanRate());
        rateInfo.setOneMinuteRate(meter.getOneMinuteRate());
        rateInfo.setFiveMinuteRate(meter.getFiveMinuteRate());
        rateInfo.setFifteenMinuteRate(meter.getFifteenMinuteRate());
        return rateInfo;
    }
}

19 Source : RubixInitializer.java
with Apache License 2.0
from trinodb

private void startRubix() {
    Configuration configuration = getRubixServerConfiguration();
    MetricRegistry metricRegistry = new MetricRegistry();
    bookKeeperServer = new BookKeeperServer();
    BookKeeper bookKeeper = bookKeeperServer.startServer(configuration, metricRegistry);
    LocalDataTransferServer.startServer(configuration, metricRegistry, bookKeeper);
    CachingFileSystem.setLocalBookKeeper(configuration, bookKeeper, "catalog=" + catalogName);
    TrinoClusterManager.setNodeManager(nodeManager);
    log.info("Rubix initialized successfully");
    cacheReady = true;
}

19 Source : AbstractConnectionTest.java
with Apache License 2.0
from timveil

public abstract clreplaced AbstractConnectionTest extends BaseTest {

    private static final int WARMUP = 10;

    private static final String SIMPLE_QUERY_LOAD = MetricRegistry.name(AbstractConnectionTest.clreplaced, "testSimpleQueryLoad");

    private static final String PREPARED_STATEMENT_LOAD = MetricRegistry.name(AbstractConnectionTest.clreplaced, "testPreparedStatementLoad");

    private static MetricRegistry METRIC_REGISTRY = new MetricRegistry();

    private Connection connection;

    public abstract Connection createConnection(String host) throws SQLException;

    @BeforeEach
    public void setUp() throws Exception {
        connection = createConnection(getHost());
    }

    @AfterEach
    public void tearDown() throws Exception {
        if (connection != null) {
            try {
                connection.close();
            } finally {
                connection = null;
            }
        }
        if (METRIC_REGISTRY != null) {
            try {
                METRIC_REGISTRY.remove(SIMPLE_QUERY_LOAD);
                METRIC_REGISTRY.remove(PREPARED_STATEMENT_LOAD);
            } finally {
                METRIC_REGISTRY = null;
            }
        }
    }

    @Test
    public void getSchema() throws SQLException {
        String schema = connection.getSchema();
        log.debug("schema [{}]", schema);
    }

    @Test
    public void setSchema() throws SQLException {
        connection.setSchema("default");
    }

    @Test
    public void abort() throws SQLException {
        connection.abort(Executors.newSingleThreadExecutor());
    }

    @Test
    public void testCancel() throws SQLException {
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM data_type_test limit 10")) {
            ExecutorService executorService = Executors.newFixedThreadPool(2);
            executorService.submit(() -> {
                try {
                    Thread.sleep(10000);
                } catch (InterruptedException e) {
                    log.error(e.getMessage(), e);
                }
                Printer.printResultSet(rs, true, true);
            });
            executorService.submit(() -> {
                try {
                    statement.cancel();
                } catch (SQLException e) {
                    log.error(e.getMessage(), e);
                }
            });
            try {
                executorService.awaitTermination(20, TimeUnit.SECONDS);
            } catch (InterruptedException e) {
                log.error(e.getMessage(), e);
            }
        }
    }

    @Test
    public void isValid() throws SQLException {
        log.debug("is valid {}", connection.isValid(1));
        connection.close();
        log.debug("is valid {}", connection.isValid(1));
    }

    @Test
    public void testSimpleQuery() throws SQLException {
        executeSimpleQuery(true, true);
    }

    @Test
    public void testStructQuery() throws SQLException {
        executeStructQuery(true, true);
    }

    @Test
    public void testMapQuery() throws SQLException {
        executeMapQuery(true, true);
    }

    @Test
    public void testArrayQuery() throws SQLException {
        executeArrayQuery(true, true);
    }

    @Test
    public void testASQuery() throws SQLException {
        executeAsQuery(true, true);
    }

    @Test
    public void testCreateAndDropDatabase() throws SQLException {
        try (Statement statement = connection.createStatement()) {
            int updated = statement.executeUpdate("create database mytest");
            log.debug("updated after create database {}", updated);
        }
        try (Statement statement = connection.createStatement()) {
            int updated = statement.executeUpdate("drop database mytest");
            log.debug("updated after drop database {}", updated);
        }
    }

    @Test
    public void testCreateTable() throws SQLException {
        try (Statement statement = connection.createStatement()) {
            int updated = statement.executeUpdate("create table mytesttable");
            log.debug("updated after create table{}", updated);
        }
    }

    @Test
    public void testDates() throws SQLException {
        // get Calendar instance
        Calendar now = Calendar.getInstance();
        // get current TimeZone using getTimeZone method of Calendar clreplaced
        TimeZone timeZone = now.getTimeZone();
        // display current TimeZone using getDisplayName() method of TimeZone clreplaced
        log.debug("Current TimeZone is: {}", timeZone.getDisplayName());
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("select col_date, col_timestamp from date_time_test")) {
            Printer.printResultSet(rs, true, false);
        }
    }

    private void executeAsQuery(boolean printResults, boolean printMetaData) throws SQLException {
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT col_string as `String Column` FROM data_type_test limit 10")) {
            Printer.printResultSet(rs, printResults, printMetaData);
        }
    }

    private void executeSimpleQuery(boolean printResults, boolean printMetaData) throws SQLException {
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM data_type_test")) {
            Printer.printResultSet(rs, printResults, printMetaData);
        }
    }

    private void executeStructQuery(boolean printResults, boolean printMetaData) throws SQLException {
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM struct_test")) {
            Printer.printResultSet(rs, printResults, printMetaData);
        }
    }

    private void executeMapQuery(boolean printResults, boolean printMetaData) throws SQLException {
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM map_test")) {
            Printer.printResultSet(rs, printResults, printMetaData);
        }
    }

    private void executeArrayQuery(boolean printResults, boolean printMetaData) throws SQLException {
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM array_test")) {
            Printer.printResultSet(rs, printResults, printMetaData);
        }
    }

    @Test
    public void testPreparedStatement() throws SQLException {
        executePreparedStatement(true, false);
    }

    private void executePreparedStatement(boolean printResults, boolean printMetaData) throws SQLException {
        try (PreparedStatement statement = connection.prepareStatement("SELECT * FROM data_type_test where col_boolean = ? limit 10")) {
            statement.setBoolean(1, true);
            try (ResultSet rs = statement.executeQuery()) {
                Printer.printResultSet(rs, printResults, printMetaData);
            }
        }
    }

    @Test
    public void testSimpleQueryLoad() throws SQLException {
        // warm-up
        for (int i = 0; i < WARMUP; i++) {
            executeSimpleQuery(false, false);
        }
        try (ConsoleReporter reporter = ConsoleReporter.forRegistry(METRIC_REGISTRY).convertDurationsTo(TimeUnit.MILLISECONDS).build()) {
            Timer timer = METRIC_REGISTRY.timer(SIMPLE_QUERY_LOAD);
            for (int i = 0; i < getTestRuns(); i++) {
                log.debug("------------------------------------- start run # {}", i);
                Stopwatch sw = Stopwatch.createStarted();
                try (Timer.Context queryContext = timer.time()) {
                    executeSimpleQuery(true, false);
                }
                sw.stop();
                log.debug("------------------------------------- end run # {}, took {}ms", i, sw.elapsed(TimeUnit.MILLISECONDS));
            }
            reporter.report();
        }
    }

    public void testSimpleQueryInfiniteLoop() throws SQLException {
        while (true) {
            executeSimpleQuery(false, false);
        }
    }

    @Test
    public void testPreparedStatementLoad() throws SQLException {
        // warm-up
        for (int i = 0; i < WARMUP; i++) {
            executePreparedStatement(false, false);
        }
        try (ConsoleReporter reporter = ConsoleReporter.forRegistry(METRIC_REGISTRY).convertDurationsTo(TimeUnit.MILLISECONDS).build()) {
            Timer timer = METRIC_REGISTRY.timer(PREPARED_STATEMENT_LOAD);
            for (int i = 0; i < getTestRuns(); i++) {
                log.debug("run # {}", i);
                try (Timer.Context queryContext = timer.time()) {
                    executePreparedStatement(true, false);
                }
            }
            reporter.report();
        }
    }

    @Test
    public void testLoadWithConcurrency() throws Exception {
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        Runnable test = () -> {
            try {
                executeSimpleQuery(true, false);
            } catch (SQLException e) {
                log.error(e.getMessage(), e);
            }
        };
        for (int i = 0; i < getTestRuns(); i++) {
            executorService.submit(test);
        }
        executorService.awaitTermination(1, TimeUnit.MINUTES);
    }

    @Test
    public void testColumnTypes() throws SQLException {
        try (Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM data_type_test")) {
            while (rs.next()) {
                byte colTinyInt = rs.getByte("col_tinyint");
                log.debug("colTinyInt [{}]", colTinyInt);
                short colSmallInt = rs.getShort("col_smallint");
                log.debug("colSmallInt [{}]", colSmallInt);
                int colInt = rs.getInt("col_int");
                log.debug("colInt [{}]", colInt);
                long colBigint = rs.getLong("col_bigint");
                log.debug("colBigint [{}]", colBigint);
                boolean colBoolean = rs.getBoolean("col_boolean");
                log.debug("colBoolean [{}]", colBoolean);
                float colFloat = rs.getFloat("col_float");
                log.debug("colFloat [{}]", colFloat);
                double colDouble = rs.getDouble("col_double");
                log.debug("colDouble [{}]", colDouble);
                String colString = rs.getString("col_string");
                log.debug("colString [{}]", colString);
                Timestamp colTimestamp = rs.getTimestamp("col_timestamp");
                log.debug("colTimestamp [{}]", colTimestamp);
                BigDecimal colDecimal = rs.getBigDecimal("col_decimal");
                log.debug("colDecimal [{}]", colDecimal);
                String colVarchar = rs.getString("col_varchar");
                log.debug("colVarchar [{}]", colVarchar);
                Date colDate = rs.getDate("col_date");
                log.debug("colDate [{}]", colDate);
                String colChar = rs.getString("col_char");
                log.debug("colChar [{}]", colChar);
                byte[] stringAsBytes = rs.getBytes("col_string");
                log.debug("col_string as bytes [{}]", stringAsBytes);
                InputStream stringreplacedtream = rs.getBinaryStream("col_string");
                log.debug("col_string as InputStream [{}]", stringreplacedtream);
            }
        }
    }

    @Test
    public void testMetadataConcurrency() throws Exception {
        DatabaseMetaData metaData = connection.getMetaData();
        replacedertNotNull(metaData);
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        Runnable test = () -> {
            try {
                try (ResultSet columns = metaData.getColumns(null, "tests", "data_type_test", "%")) {
                    Printer.printResultSet(columns, true, false);
                }
            } catch (SQLException e) {
                log.error(e.getMessage(), e);
            }
        };
        for (int i = 0; i < 10; i++) {
            executorService.submit(test);
        }
        executorService.awaitTermination(10, TimeUnit.SECONDS);
    }

    @Test
    public void testGetMetaData() throws Exception {
        DatabaseMetaData metaData = connection.getMetaData();
        replacedertNotNull(metaData);
        log.debug("driver version: [{}]", metaData.getDriverVersion());
        log.debug("database product version: [{}]", metaData.getDatabaseProductVersion());
        log.debug("supports transactions: [{}]", metaData.supportsTransactions());
        log.debug("******************************** calling getCatalogs");
        try (ResultSet catalogs = metaData.getCatalogs()) {
            Printer.printResultSet(catalogs, true, false);
        }
        log.debug("******************************** calling getSchemas");
        try (ResultSet schemas = metaData.getSchemas()) {
            Printer.printResultSet(schemas, true, false);
        }
        log.debug("******************************** calling getTypeInfo");
        try (ResultSet typeInfo = metaData.getTypeInfo()) {
            Printer.printResultSet(typeInfo, true, false);
        }
        log.debug("******************************** calling getTables");
        try (ResultSet tables = metaData.getTables(null, null, null, null)) {
            Printer.printResultSet(tables, true, false);
        }
        log.debug("******************************** calling getTableTypes");
        try (ResultSet tableTypes = metaData.getTableTypes()) {
            Printer.printResultSet(tableTypes, true, false);
        }
        log.debug("******************************** calling getFunctions");
        try (ResultSet functions = metaData.getFunctions(null, null, "%")) {
            Printer.printResultSet(functions, true, false);
        }
        log.debug("******************************** calling getColumns");
        try (ResultSet columns = metaData.getColumns(null, "tests", "data_type_test", "%")) {
            Printer.printResultSet(columns, true, false);
        }
    }
}

19 Source : LambdaMetricSet.java
with Apache License 2.0
from symphoniacloud

@SuppressWarnings("WeakerAccess")
public abstract clreplaced LambdaMetricSet implements MetricSet {

    private JvmAttributeGaugeSet jvmAttributeGaugeSet = new JvmAttributeGaugeSet();

    public Gauge JVM_UPTIME = (Gauge) jvmAttributeGaugeSet.getMetrics().get("uptime");

    public String JVM_VENDOR = (String) ((Gauge) jvmAttributeGaugeSet.getMetrics().get("vendor")).getValue();

    public String JVM_NAME = (String) ((Gauge) jvmAttributeGaugeSet.getMetrics().get("name")).getValue();

    private Map<String, Metric> metrics = new HashMap<>();

    private MetricRegistry registry = new MetricRegistry();

    private Slf4jReporter reporter;

    @Override
    public Map<String, Metric> getMetrics() {
        metrics.putAll(MetricsUtils.findAnnotatedMetrics(this));
        return Collections.unmodifiableMap(metrics);
    }

    public void report() {
        report(LoggerFactory.getLogger(this.getClreplaced().getName()));
    }

    public void report(Logger logger) {
        getReporter(logger).report();
    }

    private MetricRegistry getRegistry() {
        if (registry.getMetrics().isEmpty()) {
            registry = new MetricRegistry();
        }
        registry.registerAll(this);
        return registry;
    }

    private Slf4jReporter getReporter(Logger logger) {
        if (reporter == null) {
            reporter = Slf4jReporter.forRegistry(getRegistry()).markWith(METRIC_MARKER).outputTo(logger).build();
        }
        return reporter;
    }
}

See More Examples