Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
<maven.compiler.target>11</maven.compiler.target>
<spring.version>5.2.16.RELEASE</spring.version>
<postgresql.version>42.2.14</postgresql.version>
<dependency-check-maven.version>6.3.1</dependency-check-maven.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -198,7 +199,7 @@
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>6.2.2</version>
<version>${dependency-check-maven.version}</version>
<executions>
<execution>
<goals>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,7 @@ public class GlobalValueTransformerLoader {
myNameSpaceToScan = namespaceToScan;
}

final Set<String> namespaces =
Arrays.stream(myNameSpaceToScan.split(NAMESPACE_SEPARATOR))
.map(String::trim)
.filter(Strings::isNullOrEmpty)
.collect(Collectors.toSet());
final Set<String> namespaces = parseNamespaces(myNameSpaceToScan);

namespaces.add(namespaceToScan);
LOG.debug("Scan the following packages for {}: {}", GlobalValueTransformer.class.getSimpleName(),
Expand Down Expand Up @@ -102,10 +98,18 @@ private static Set<Class<?>> loadAnnotatedTypes(Set<String> namespacesToScan) {
/**
* Use this static function to set the namespace to scan.
*
* @param newNamespace the new namespace to be searched for {@link org.zalando.sprocwrapper.globalvaluetransformer.annotation.GlobalValueTransformer}
* @param newNamespace the new namespace to be searched for
* {@link org.zalando.sprocwrapper.globalvaluetransformer.annotation.GlobalValueTransformer}
*/
public static void changeNamespaceToScan(final String newNamespace) {
namespaceToScan = newNamespace;
scannedClasspath = false;
}

static Set<String> parseNamespaces(String inputString) {
return Arrays.stream(inputString.split(NAMESPACE_SEPARATOR))
.map(String::trim)
.filter(ns -> !Strings.isNullOrEmpty(ns))
.collect(Collectors.toSet());
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,46 @@
package org.zalando.sprocwrapper.globalvaluetransformer;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.sameInstance;

import static org.hamcrest.MatcherAssert.assertThat;

import org.junit.Test;
import org.zalando.typemapper.core.ValueTransformer;

import java.util.Set;

import org.zalando.typemapper.core.ValueTransformer;
import static org.hamcrest.CoreMatchers.*;
import static org.hamcrest.MatcherAssert.*;

public class ValueTransformerUtilsTest {

@Test
public void resolvesParametrizedUnmarshalReturnType() {
assertThat(ValueTransformerUtils.getUnmarshalFromDbClass(ConcreteTransformer.class),
is(sameInstance((Object) CustomBound.class)));
}

@Test
public void resolvesParametrizedMarshalReturnType() {
assertThat(ValueTransformerUtils.getMarshalToDbClass(new ConcreteTransformer()),
is(sameInstance((Object) CustomValue.class)));
}

@Test
public void parseNamespaces() {
Set<String> namespaces = GlobalValueTransformerLoader.parseNamespaces("a.b.c;d;e ; f");
assertThat(namespaces.size(), is(4));
assertThat(namespaces, hasItems("a.b.c", "d", "e", "f"));
}

@Test
public void parseEmptyNamespace() {
Set<String> namespaces = GlobalValueTransformerLoader.parseNamespaces("");
assertThat(namespaces.isEmpty(), is(true));
}

@Test
public void parseBlankNamespace() {
Set<String> namespaces = GlobalValueTransformerLoader.parseNamespaces(" ");
assertThat(namespaces.isEmpty(), is(true));
}

/**
* A custom value that shall be transformed using a {@link ValueTransformer}.
*/
Expand Down Expand Up @@ -63,16 +92,4 @@ protected CustomValue delegatedMarshalling(final CustomBound preprocessed) {
return null; // doesn't do anything meaningful, just an example
}
}

@Test
public void resolvesParamterizedUnmarshalReturnType() {
assertThat(ValueTransformerUtils.getUnmarshalFromDbClass(ConcreteTransformer.class),
is(sameInstance((Object) CustomBound.class)));
}

@Test
public void resolvesParamterizedMarshalReturnType() {
assertThat(ValueTransformerUtils.getMarshalToDbClass(new ConcreteTransformer()),
is(sameInstance((Object) CustomValue.class)));
}
}