/** * Parses the comma-separated datasources string into a list of Datasource objects. * <p> * The format is <node>:<port>/<resource>,<node>:<port>/<resource>, ... * </p> * * @param ds comma-separated list of datasources * @return list of Datasources */ public static List<Datasource> datasources(final String ds) { if (ds.contains(",")) { return stream(ds.split(",")).map(Datasource::datasource).collect(toList()); } else { return singletonList(datasource(ds)); } }
/** * Creates a Datasource from node, port and resource descriptors. * * @param node the node of the datasource * @param port the port used to access the datasource * @param resource the resource accessed at the datasource * * @return Datasource */ public static Datasource datasource(final String node, final int port, final String resource) { return new Datasource(node, port, resource); }
@Test public void shouldSerializeDatasource() { final Datasource testee = datasource("foo", 42, "bar"); assertThat(testee.toString()).isEqualTo("foo:42/bar"); }
@Test public void shouldParseListOfDatasources() { final List<Datasource> testee = datasources("foo:42/bar,foobar"); assertThat(testee.get(0).node).isEqualTo("foo"); assertThat(testee.get(0).port).isEqualTo(42); assertThat(testee.get(0).resource).isEqualTo("bar"); assertThat(testee.get(1).node).isEqualTo("foobar"); assertThat(testee.get(1).port).isEqualTo(-1); assertThat(testee.get(1).resource).isEqualTo(""); } }
public List<Datasource> toDatasources() { return Stream.of(getHost()) .map(host -> datasource(host + "/" + getDb())) .collect(toList()); }
public List<Datasource> toDatasources() { return Stream.of(getHost()) .map(host -> datasource(host + "/" + getDb())) .collect(toList()); }
/** * Parses the datasource string into node, port and resource and returns a Datasource instance for these parts. * <p> * The format is <node>:<port>/<resource> * </p> * * @param ds datasource string * @return Datasource */ @JsonCreator public static Datasource datasource(final String ds) { int colonPos = ds.indexOf(":"); int slashPos = ds.indexOf("/"); String nodeAndPort = ds; String node; int port = -1; String resource = ""; if (slashPos != -1) { nodeAndPort = ds.substring(0, slashPos); resource = ds.substring(slashPos+1); } if (colonPos != -1) { node = nodeAndPort.substring(0, colonPos); port = valueOf(nodeAndPort.substring(colonPos+1)); return datasource(node, port, resource); } else { return datasource(nodeAndPort, -1, resource); } }
@Test public void shouldBuildDatasourceFromString() { final Datasource testee = datasource("foo:42/bar"); assertThat(testee.node).isEqualTo("foo"); assertThat(testee.port).isEqualTo(42); assertThat(testee.resource).isEqualTo("bar"); }
@Test public void shouldBuildDatasourceFromString2() { final Datasource testee = datasource("foo:42/bar:foobar/0815"); assertThat(testee.node).isEqualTo("foo"); assertThat(testee.port).isEqualTo(42); assertThat(testee.resource).isEqualTo("bar:foobar/0815"); }
@Test public void shouldBuildDatasourceFromStringWithoutPortAndResource() { final Datasource testee = datasource("foo"); assertThat(testee.node).isEqualTo("foo"); assertThat(testee.port).isEqualTo(-1); assertThat(testee.resource).isEqualTo(""); }
@Test public void shouldBuildDatasource() { final Datasource testee = datasource("foo", 42, "bar"); assertThat(testee.node).isEqualTo("foo"); assertThat(testee.port).isEqualTo(42); assertThat(testee.resource).isEqualTo("bar"); }
@Test public void shouldBuildDatasourceFromStringWithoutPort() { final Datasource testee = datasource("foo/bar"); assertThat(testee.node).isEqualTo("foo"); assertThat(testee.port).isEqualTo(-1); assertThat(testee.resource).isEqualTo("bar"); }
private DatasourceDependency someMongoDb() { return mongoDependency(asList( datasource("10.42.42.41:27001/shoppingcarts"), datasource("10.42.42.42:27001/shoppingcarts"))) .withName("shoppingcart-db") .withDescription("Shoppingcart Database") .build(); } }
@Test public void shouldBuildMongoDatasource() { DatasourceDependency dependency = mongoDependency(singletonList(datasource("foo"))).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("MongoDB"); }
@Test public void shouldBuildCassandraDatasource() { DatasourceDependency dependency = cassandraDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("Cassandra"); }
@Test public void shouldBuildRedisDatasource() { DatasourceDependency dependency = redisDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("Redis"); }
@Test public void shouldBuildElasticSearchDatasource() { DatasourceDependency dependency = elasticSearchDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("db"); assertThat(dependency.getSubtype()).isEqualTo("ElasticSearch"); }
@Test public void shouldBuildKafkaDatasource() { DatasourceDependency dependency = kafkaDependency(datasource("foo")).build(); assertThat(dependency.getDatasources()).contains(datasource("foo", -1, "")); assertThat(dependency.getType()).isEqualTo("queue"); assertThat(dependency.getSubtype()).isEqualTo("Kafka"); }
@Test public void shouldBuildDatasourceDependency() { final DatasourceDependency dependency = datasourceDependency(datasource("foo:42/bar")) .withType("test") .withSubtype("unittest") .withName("name") .withDescription("description") .build(); assertThat(dependency.getName()).isEqualTo("name"); assertThat(dependency.getDescription()).isEqualTo("description"); assertThat(dependency.getType()).isEqualTo("test"); assertThat(dependency.getSubtype()).isEqualTo("unittest"); assertThat(dependency.getDatasources()).contains(datasource("foo", 42, "bar")); }
@Test public void shouldCopyDatasource() { DatasourceDependency dependency = mongoDependency(singletonList(datasource("foo"))).build(); assertThat(dependency).isEqualTo(copyOf(dependency).build()); assertThat(dependency.hashCode()).isEqualTo(copyOf(dependency).build().hashCode()); }