Search in sources :

Example 1 with RuntimeAndCompileTimeVersions

use of com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions in project java-driver by datastax.

the class PlatformInfoFinderTest method should_keep_order_of_dependencies.

@Test
public void should_keep_order_of_dependencies() {
    // given
    InputStream inputStream = this.getClass().getResourceAsStream("/insights/ordered-dependencies.txt");
    Map<String, RuntimeAndCompileTimeVersions> expected = new LinkedHashMap<>();
    expected.put("b-org.com:art1", withUnverifiedRuntimeVersion("1.0"));
    expected.put("a-org.com:art1", withUnverifiedRuntimeVersion("2.0"));
    expected.put("c-org.com:art1", withUnverifiedRuntimeVersion("3.0"));
    // when
    Map<String, RuntimeAndCompileTimeVersions> stringStringMap = new PlatformInfoFinder(this::nullUrlProvider).fetchDependenciesFromFile(inputStream);
    // then
    assertThat(stringStringMap).isEqualTo(expected);
    Iterator<String> iterator = expected.keySet().iterator();
    assertThat(iterator.next()).isEqualTo("b-org.com:art1");
    assertThat(iterator.next()).isEqualTo("a-org.com:art1");
    assertThat(iterator.next()).isEqualTo("c-org.com:art1");
}
Also used : InputStream(java.io.InputStream) RuntimeAndCompileTimeVersions(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions) LinkedHashMap(java.util.LinkedHashMap) Test(org.junit.Test)

Example 2 with RuntimeAndCompileTimeVersions

use of com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions in project java-driver by datastax.

the class PlatformInfoFinderTest method should_find_dependencies_from_file_without_duplicate.

@Test
public void should_find_dependencies_from_file_without_duplicate() {
    // given
    InputStream inputStream = this.getClass().getResourceAsStream("/insights/duplicate-dependencies.txt");
    // when
    Map<String, RuntimeAndCompileTimeVersions> stringStringMap = new PlatformInfoFinder(this::nullUrlProvider).fetchDependenciesFromFile(inputStream);
    // then
    assertThat(stringStringMap).hasSize(1);
}
Also used : InputStream(java.io.InputStream) RuntimeAndCompileTimeVersions(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions) Test(org.junit.Test)

Example 3 with RuntimeAndCompileTimeVersions

use of com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions in project java-driver by datastax.

the class InsightsClientTest method should_construct_json_event_startup_message.

@Test
public void should_construct_json_event_startup_message() throws IOException {
    // given
    DefaultDriverContext context = mockDefaultDriverContext();
    PlatformInfoFinder platformInfoFinder = mock(PlatformInfoFinder.class);
    OS os = new OS("linux", "1.2", "x64");
    CPUS cpus = new CPUS(8, "intel i7");
    Map<String, RuntimeAndCompileTimeVersions> javaDeps = ImmutableMap.of("version", new RuntimeAndCompileTimeVersions("1.8.0", "1.8.0", false));
    Map<String, Map<String, RuntimeAndCompileTimeVersions>> runtimeInfo = ImmutableMap.of("java", javaDeps);
    InsightsPlatformInfo insightsPlatformInfo = new InsightsPlatformInfo(os, cpus, runtimeInfo);
    when(platformInfoFinder.getInsightsPlatformInfo()).thenReturn(insightsPlatformInfo);
    ConfigAntiPatternsFinder configAntiPatternsFinder = mock(ConfigAntiPatternsFinder.class);
    when(configAntiPatternsFinder.findAntiPatterns(any(DefaultDriverContext.class))).thenReturn(ImmutableMap.of("contactPointsMultipleDCs", "Contact points contain hosts from multiple data centers"));
    DataCentersFinder dataCentersFinder = mock(DataCentersFinder.class);
    when(dataCentersFinder.getDataCenters(any(DefaultDriverContext.class))).thenReturn(Sets.newHashSet("dc1", "dc2"));
    ReconnectionPolicyInfoFinder reconnectionPolicyInfoFinder = mock(ReconnectionPolicyInfoFinder.class);
    when(reconnectionPolicyInfoFinder.getReconnectionPolicyInfo(any(), any())).thenReturn(new ReconnectionPolicyInfo("reconnection-policy-a", ImmutableMap.of("opt-a", 1), "com.datastax.dse"));
    InsightsClient insightsClient = new InsightsClient(context, MOCK_TIME_SUPPLIER, INSIGHTS_CONFIGURATION, platformInfoFinder, reconnectionPolicyInfoFinder, new ExecutionProfilesInfoFinder(), configAntiPatternsFinder, dataCentersFinder, EMPTY_STACK_TRACE);
    // when
    String startupMessage = insightsClient.createStartupMessage();
    Insight<InsightsStartupData> insight = new ObjectMapper().readValue(startupMessage, new TypeReference<Insight<InsightsStartupData>>() {
    });
    // then
    assertThat(insight.getMetadata()).isEqualTo(new InsightMetadata("driver.startup", 1L, ImmutableMap.of("language", "java"), InsightType.EVENT, "v1"));
    InsightsStartupData insightData = insight.getInsightData();
    assertThat(insightData.getClientId()).isEqualTo("client-id");
    assertThat(insightData.getSessionId()).isNotNull();
    assertThat(insightData.getDriverName()).isEqualTo("DataStax Enterprise Java Driver");
    assertThat(insightData.getDriverVersion()).isNotEmpty();
    assertThat(insightData.getApplicationName()).isEqualTo("app-name");
    assertThat(insightData.getApplicationVersion()).isEqualTo("1.0.0");
    assertThat(insightData.isApplicationNameWasGenerated()).isEqualTo(false);
    assertThat(insightData.getContactPoints()).isEqualTo(ImmutableMap.of("localhost", Collections.singletonList("127.0.0.1:9999")));
    assertThat(insightData.getInitialControlConnection()).isEqualTo("127.0.0.1:10");
    assertThat(insightData.getLocalAddress()).isEqualTo("127.0.0.1");
    assertThat(insightData.getHostName()).isNotEmpty();
    assertThat(insightData.getProtocolVersion()).isEqualTo(DSE_V2.getCode());
    assertThat(insightData.getExecutionProfiles()).isEqualTo(ImmutableMap.of("default", new SpecificExecutionProfile(100, new LoadBalancingInfo("LoadBalancingPolicyImpl", ImmutableMap.of("localDataCenter", "local-dc", "filterFunction", true), DEFAULT_LOAD_BALANCING_PACKAGE), new SpeculativeExecutionInfo("SpeculativeExecutionImpl", ImmutableMap.of("maxSpeculativeExecutions", 100, "delay", 20), DEFAULT_SPECULATIVE_EXECUTION_PACKAGE), "LOCAL_ONE", "SERIAL", ImmutableMap.of("source", "src-graph")), "non-default", new SpecificExecutionProfile(50, null, null, null, null, null)));
    assertThat(insightData.getPoolSizeByHostDistance()).isEqualTo(new PoolSizeByHostDistance(2, 1, 0));
    assertThat(insightData.getHeartbeatInterval()).isEqualTo(100);
    assertThat(insightData.getCompression()).isEqualTo("none");
    assertThat(insightData.getReconnectionPolicy()).isEqualTo(new ReconnectionPolicyInfo("reconnection-policy-a", ImmutableMap.of("opt-a", 1), "com.datastax.dse"));
    assertThat(insightData.getSsl()).isEqualTo(new SSL(true, false));
    assertThat(insightData.getAuthProvider()).isEqualTo(new AuthProviderType("AuthProviderImpl", DEFAULT_AUTH_PROVIDER_PACKAGE));
    assertThat(insightData.getOtherOptions()).isEqualTo(EMPTY_OBJECT_MAP);
    assertThat(insightData.getPlatformInfo()).isEqualTo(insightsPlatformInfo);
    assertThat(insightData.getConfigAntiPatterns()).isEqualTo(ImmutableMap.of("contactPointsMultipleDCs", "Contact points contain hosts from multiple data centers"));
    assertThat(insightData.getPeriodicStatusInterval()).isEqualTo(300);
    assertThat(insightData.getDataCenters()).isEqualTo(Sets.newHashSet("dc1", "dc2"));
}
Also used : LoadBalancingInfo(com.datastax.dse.driver.internal.core.insights.schema.LoadBalancingInfo) SpecificExecutionProfile(com.datastax.dse.driver.internal.core.insights.schema.SpecificExecutionProfile) PoolSizeByHostDistance(com.datastax.dse.driver.internal.core.insights.schema.PoolSizeByHostDistance) CPUS(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.CPUS) InsightsPlatformInfo(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo) InsightsStartupData(com.datastax.dse.driver.internal.core.insights.schema.InsightsStartupData) ReconnectionPolicyInfo(com.datastax.dse.driver.internal.core.insights.schema.ReconnectionPolicyInfo) Insight(com.datastax.dse.driver.internal.core.insights.schema.Insight) RuntimeAndCompileTimeVersions(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) OS(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.OS) AuthProviderType(com.datastax.dse.driver.internal.core.insights.schema.AuthProviderType) SSL(com.datastax.dse.driver.internal.core.insights.schema.SSL) SpeculativeExecutionInfo(com.datastax.dse.driver.internal.core.insights.schema.SpeculativeExecutionInfo) DefaultDriverContext(com.datastax.oss.driver.internal.core.context.DefaultDriverContext) Map(java.util.Map) HashMap(java.util.HashMap) ImmutableMap(com.datastax.oss.driver.shaded.guava.common.collect.ImmutableMap) InsightMetadata(com.datastax.dse.driver.internal.core.insights.schema.InsightMetadata) Test(org.junit.Test)

Example 4 with RuntimeAndCompileTimeVersions

use of com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions in project java-driver by datastax.

the class PlatformInfoFinder method getRuntimeAndCompileVersion.

private RuntimeAndCompileTimeVersions getRuntimeAndCompileVersion(DependencyFromFile d) {
    URL url = propertiesUrlProvider.apply(d);
    if (url == null) {
        return new RuntimeAndCompileTimeVersions(UNVERIFIED_RUNTIME_VERSION, d.getVersion(), d.isOptional());
    }
    Properties properties = new Properties();
    try {
        properties.load(url.openStream());
    } catch (IOException e) {
        return new RuntimeAndCompileTimeVersions(UNVERIFIED_RUNTIME_VERSION, d.getVersion(), d.isOptional());
    }
    Object version = properties.get("version");
    if (version == null) {
        return new RuntimeAndCompileTimeVersions(UNVERIFIED_RUNTIME_VERSION, d.getVersion(), d.isOptional());
    } else {
        return new RuntimeAndCompileTimeVersions(version.toString(), d.getVersion(), d.isOptional());
    }
}
Also used : IOException(java.io.IOException) Properties(java.util.Properties) URL(java.net.URL) RuntimeAndCompileTimeVersions(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions)

Example 5 with RuntimeAndCompileTimeVersions

use of com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions in project java-driver by datastax.

the class PlatformInfoFinderTest method should_not_load_runtime_dependency_from_malformed_pom_properties.

@Test
public void should_not_load_runtime_dependency_from_malformed_pom_properties() {
    // given
    InputStream inputStream = this.getClass().getResourceAsStream("/insights/netty-dependency.txt");
    Map<String, RuntimeAndCompileTimeVersions> expected = new LinkedHashMap<>();
    expected.put("io.netty:netty-handler", withUnverifiedRuntimeVersion("4.0.0.Final"));
    // when
    Map<String, RuntimeAndCompileTimeVersions> stringStringMap = new PlatformInfoFinder(this::malformedUrlProvider).fetchDependenciesFromFile(inputStream);
    // then
    assertThat(stringStringMap).isEqualTo(expected);
}
Also used : InputStream(java.io.InputStream) RuntimeAndCompileTimeVersions(com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions) LinkedHashMap(java.util.LinkedHashMap) Test(org.junit.Test)

Aggregations

RuntimeAndCompileTimeVersions (com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.RuntimeAndCompileTimeVersions)9 Test (org.junit.Test)8 InputStream (java.io.InputStream)7 LinkedHashMap (java.util.LinkedHashMap)6 HashMap (java.util.HashMap)2 AuthProviderType (com.datastax.dse.driver.internal.core.insights.schema.AuthProviderType)1 Insight (com.datastax.dse.driver.internal.core.insights.schema.Insight)1 InsightMetadata (com.datastax.dse.driver.internal.core.insights.schema.InsightMetadata)1 InsightsPlatformInfo (com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo)1 CPUS (com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.CPUS)1 OS (com.datastax.dse.driver.internal.core.insights.schema.InsightsPlatformInfo.OS)1 InsightsStartupData (com.datastax.dse.driver.internal.core.insights.schema.InsightsStartupData)1 LoadBalancingInfo (com.datastax.dse.driver.internal.core.insights.schema.LoadBalancingInfo)1 PoolSizeByHostDistance (com.datastax.dse.driver.internal.core.insights.schema.PoolSizeByHostDistance)1 ReconnectionPolicyInfo (com.datastax.dse.driver.internal.core.insights.schema.ReconnectionPolicyInfo)1 SSL (com.datastax.dse.driver.internal.core.insights.schema.SSL)1 SpecificExecutionProfile (com.datastax.dse.driver.internal.core.insights.schema.SpecificExecutionProfile)1 SpeculativeExecutionInfo (com.datastax.dse.driver.internal.core.insights.schema.SpeculativeExecutionInfo)1 DefaultDriverContext (com.datastax.oss.driver.internal.core.context.DefaultDriverContext)1 ImmutableMap (com.datastax.oss.driver.shaded.guava.common.collect.ImmutableMap)1