Skip to content

Commit e561d49

Browse files
committed
rename resolver to converter
1 parent 41230ed commit e561d49

File tree

10 files changed

+109
-109
lines changed

10 files changed

+109
-109
lines changed

endtoendtests/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2323
<java.version>1.8</java.version>
2424
<azure.functions.maven.plugin.version>1.18.0</azure.functions.maven.plugin.version>
25-
<azure.functions.java.library.version>3.0.0-SNAPSHOT</azure.functions.java.library.version>
25+
<azure.functions.java.library.version>3.0.0</azure.functions.java.library.version>
2626
<durabletask.azure.functions>1.0.0-beta.1</durabletask.azure.functions>
2727
<functionAppName>azure-functions-java-endtoendtests</functionAppName>
2828
<functionAppRegion>westus</functionAppRegion>

src/main/java/com/microsoft/azure/functions/worker/binding/BindingDataStore.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import com.microsoft.azure.functions.ExecutionContext;
1111
import com.microsoft.azure.functions.rpc.messages.ParameterBinding;
1212
import com.microsoft.azure.functions.rpc.messages.TypedData;
13-
import com.microsoft.azure.functions.worker.resolver.CoreTypeResolver;
13+
import com.microsoft.azure.functions.worker.converter.CoreTypeConverter;
1414

1515
import org.apache.commons.lang3.exception.ExceptionUtils;
1616

@@ -138,14 +138,14 @@ public void setDataTargetValue(String name, Object value) {
138138

139139
private boolean isDataTargetValid(String name, Type target) {
140140
if (!name.equals(RETURN_NAME)) {
141-
if (!CoreTypeResolver.isValidOutputType(target)) { return false; }
142-
target = CoreTypeResolver.getParameterizedActualTypeArgumentsType(target);
141+
if (!CoreTypeConverter.isValidOutputType(target)) { return false; }
142+
target = CoreTypeConverter.getParameterizedActualTypeArgumentsType(target);
143143
}
144144
return true;
145145
}
146146

147147
private static DataTarget rpcDataTargetFromType(Type target) {
148-
if (CoreTypeResolver.isHttpResponse(target)) {
148+
if (CoreTypeConverter.isHttpResponse(target)) {
149149
return new RpcHttpDataTarget();
150150
}
151151
return new RpcUnspecifiedDataTarget();

src/main/java/com/microsoft/azure/functions/worker/binding/DataOperations.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import com.google.gson.JsonParser;
1717
import com.google.gson.JsonSyntaxException;
1818
import com.microsoft.azure.functions.worker.WorkerLogManager;
19-
import com.microsoft.azure.functions.worker.resolver.CoreTypeResolver;
19+
import com.microsoft.azure.functions.worker.converter.CoreTypeConverter;
2020

2121
@FunctionalInterface
2222
interface CheckedFunction<T, R> {
@@ -96,7 +96,7 @@ Optional<R> apply(T sourceValue, Type targetType) {
9696

9797
// Try POJO
9898
if (Collection.class.isAssignableFrom(TypeUtils.getRawType(targetType, null))) {
99-
Class<?> collectionItemType = (Class<?>) CoreTypeResolver
99+
Class<?> collectionItemType = (Class<?>) CoreTypeConverter
100100
.getParameterizedActualTypeArgumentsType(targetType);
101101

102102
try {
@@ -180,7 +180,7 @@ static Object generalAssignment(Object value, Type target) {
180180
if (value == null) {
181181
return ObjectUtils.NULL;
182182
}
183-
if (CoreTypeResolver.getRuntimeClass(target).isAssignableFrom(value.getClass())) {
183+
if (CoreTypeConverter.getRuntimeClass(target).isAssignableFrom(value.getClass())) {
184184
return value;
185185
}
186186
throw new ClassCastException("Cannot convert " + value + "to type " + target.getTypeName());

src/main/java/com/microsoft/azure/functions/worker/broker/EnhancedJavaMethodExecutorImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.microsoft.azure.functions.worker.broker;
22

33
import com.microsoft.azure.functions.worker.binding.*;
4-
import com.microsoft.azure.functions.worker.resolver.ParameterResolver;
4+
import com.microsoft.azure.functions.worker.converter.ParameterConverter;
55

66
/**
77
* Used to executor of arbitrary Java method in any JAR using reflection.
@@ -18,7 +18,7 @@ public EnhancedJavaMethodExecutorImpl(ClassLoader classLoader) {
1818
public void execute(ExecutionContextDataSource executionContextDataSource) throws Exception {
1919
try {
2020
Thread.currentThread().setContextClassLoader(this.classLoader);
21-
Object retValue = ParameterResolver.resolveArguments(executionContextDataSource)
21+
Object retValue = ParameterConverter.resolveArguments(executionContextDataSource)
2222
.orElseThrow(() -> new NoSuchMethodException("Cannot locate the method signature with the given input"))
2323
.invoke(executionContextDataSource.getFunctionInstance());
2424
executionContextDataSource.updateReturnValue(retValue);

src/main/java/com/microsoft/azure/functions/worker/broker/JavaMethodExecutorImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.microsoft.azure.functions.worker.broker;
22

33
import com.microsoft.azure.functions.worker.binding.*;
4-
import com.microsoft.azure.functions.worker.resolver.ParameterResolver;
4+
import com.microsoft.azure.functions.worker.converter.ParameterConverter;
55

66
/**
77
* Used to executor of arbitrary Java method in any JAR using reflection.
@@ -18,7 +18,7 @@ public static JavaMethodExecutorImpl getInstance(){
1818
private JavaMethodExecutorImpl () {}
1919

2020
public void execute(ExecutionContextDataSource executionContextDataSource) throws Exception {
21-
Object retValue = ParameterResolver.resolveArguments(executionContextDataSource)
21+
Object retValue = ParameterConverter.resolveArguments(executionContextDataSource)
2222
.orElseThrow(() -> new NoSuchMethodException("Cannot locate the method signature with the given input"))
2323
.invoke(executionContextDataSource.getFunctionInstance());
2424
executionContextDataSource.updateReturnValue(retValue);

src/main/java/com/microsoft/azure/functions/worker/broker/ParamBindInfo.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.microsoft.azure.functions.worker.broker;
22

3-
import com.microsoft.azure.functions.worker.resolver.CoreTypeResolver;
3+
import com.microsoft.azure.functions.worker.converter.CoreTypeConverter;
44

55
import java.lang.reflect.Parameter;
66
import java.lang.reflect.Type;
@@ -13,10 +13,10 @@ public final class ParamBindInfo {
1313
private final boolean isImplicitOutput;
1414
private final Parameter parameter;
1515
ParamBindInfo(Parameter param) {
16-
this.name = CoreTypeResolver.getAnnotationName(param);
16+
this.name = CoreTypeConverter.getAnnotationName(param);
1717
this.type = param.getParameterizedType();
18-
this.bindingNameAnnotation = CoreTypeResolver.getBindingNameAnnotation(param);
19-
this.isImplicitOutput = CoreTypeResolver.checkImplicitOutput(param);
18+
this.bindingNameAnnotation = CoreTypeConverter.getBindingNameAnnotation(param);
19+
this.isImplicitOutput = CoreTypeConverter.checkImplicitOutput(param);
2020
this.parameter = param;
2121
}
2222

src/main/java/com/microsoft/azure/functions/worker/resolver/CoreTypeResolver.java renamed to src/main/java/com/microsoft/azure/functions/worker/converter/CoreTypeConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package com.microsoft.azure.functions.worker.resolver;
1+
package com.microsoft.azure.functions.worker.converter;
22

33
import java.lang.annotation.*;
44
import java.lang.reflect.*;
55

66
import com.microsoft.azure.functions.*;
77
import com.microsoft.azure.functions.worker.Constants;
88

9-
public class CoreTypeResolver {
9+
public class CoreTypeConverter {
1010
private static boolean isOutputParameter(Type target) {
1111
if (target instanceof ParameterizedType) {
1212
target = ((ParameterizedType) target).getRawType();

src/main/java/com/microsoft/azure/functions/worker/resolver/ParameterResolver.java renamed to src/main/java/com/microsoft/azure/functions/worker/converter/ParameterConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.microsoft.azure.functions.worker.resolver;
1+
package com.microsoft.azure.functions.worker.converter;
22

33
import java.lang.invoke.WrongMethodTypeException;
44
import java.lang.reflect.Type;
@@ -19,7 +19,7 @@
1919
* Resolve a Java method overload using reflection.
2020
* Thread-Safety: Multiple thread.
2121
*/
22-
public class ParameterResolver {
22+
public class ParameterConverter {
2323
public static Optional<MethodInvoker> resolveArguments(ExecutionContextDataSource executionContextDataSource) {
2424
MethodInvoker invoker = resolve(executionContextDataSource);
2525
return invoker != null ? Optional.of(invoker) : Optional.empty();
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,79 @@
1-
package com.microsoft.azure.functions.worker.broker;
2-
3-
import com.microsoft.azure.functions.rpc.messages.RpcException;
4-
import com.microsoft.azure.functions.spi.inject.FunctionInstanceInjector;
5-
import com.microsoft.azure.functions.worker.WorkerLogManager;
6-
import com.microsoft.azure.functions.worker.binding.BindingDataStore;
7-
import com.microsoft.azure.functions.worker.binding.ExecutionContextDataSource;
8-
import com.microsoft.azure.functions.worker.binding.ExecutionRetryContext;
9-
import com.microsoft.azure.functions.worker.binding.ExecutionTraceContext;
10-
import com.microsoft.azure.functions.worker.resolver.ParameterResolver;
11-
import org.junit.jupiter.api.BeforeEach;
12-
import org.junit.jupiter.api.Test;
13-
import org.junit.jupiter.api.extension.ExtendWith;
14-
import org.mockito.Mock;
15-
import org.mockito.MockedStatic;
16-
import org.mockito.Mockito;
17-
import org.mockito.junit.jupiter.MockitoExtension;
18-
19-
import java.lang.reflect.Method;
20-
import java.util.ArrayList;
21-
import java.util.HashMap;
22-
import java.util.logging.Logger;
23-
24-
import static org.junit.jupiter.api.Assertions.*;
25-
import static org.mockito.Mockito.when;
26-
27-
28-
@ExtendWith(MockitoExtension.class)
29-
public class ParameterResolverTest {
30-
31-
private ExecutionContextDataSource executionContextDataSource;
32-
@Mock
33-
private MethodBindInfo methodBindInfo;
34-
35-
@BeforeEach
36-
public void setup() {
37-
String invocationId = "testInvocationId";
38-
ExecutionTraceContext traceContext = new ExecutionTraceContext("traceParent", "traceState", new HashMap<>());
39-
ExecutionRetryContext retryContext = new ExecutionRetryContext(1, 2, RpcException.newBuilder().build());
40-
String functionName = "ParameterResolverTest";
41-
BindingDataStore dataStore = new BindingDataStore();
42-
dataStore.setBindingDefinitions(new HashMap<>());
43-
try (MockedStatic<WorkerLogManager> workerLogManagerMockedStatic = Mockito.mockStatic(WorkerLogManager.class)) {
44-
workerLogManagerMockedStatic.when(() -> WorkerLogManager.getInvocationLogger(invocationId))
45-
.thenReturn(Logger.getAnonymousLogger());
46-
executionContextDataSource = new ExecutionContextDataSource(invocationId,
47-
traceContext, retryContext, functionName, dataStore, methodBindInfo,
48-
this.getClass(), new ArrayList<>(), new FunctionInstanceInjector() {
49-
@Override
50-
public <T> T getInstance(Class<T> functionClass) throws Exception {
51-
return null;
52-
}
53-
});
54-
}
55-
56-
}
57-
58-
@Test
59-
public void testResolveArgumentsHasImplicitOutputTrue() throws Exception {
60-
Method testMethod = this.getClass().getDeclaredMethod("testMethod");
61-
when(methodBindInfo.hasImplicitOutput()).thenReturn(true);
62-
when(methodBindInfo.getMethod()).thenReturn(testMethod);
63-
when(methodBindInfo.getParams()).thenReturn(new ArrayList<>());
64-
ParameterResolver.resolveArguments(executionContextDataSource);
65-
assertTrue(executionContextDataSource.getDataStore().getDataTargetTypedValue(BindingDataStore.RETURN_NAME).isPresent());
66-
}
67-
68-
@Test
69-
public void testResolveArgumentsHasImplicitOutputFalse() throws Exception {
70-
Method testMethod = this.getClass().getDeclaredMethod("testMethod");
71-
when(methodBindInfo.hasImplicitOutput()).thenReturn(false);
72-
when(methodBindInfo.getMethod()).thenReturn(testMethod);
73-
when(methodBindInfo.getParams()).thenReturn(new ArrayList<>());
74-
ParameterResolver.resolveArguments(executionContextDataSource);
75-
assertFalse(executionContextDataSource.getDataStore().getDataTargetTypedValue(BindingDataStore.RETURN_NAME).isPresent());
76-
}
77-
78-
public void testMethod() {}
79-
}
1+
package com.microsoft.azure.functions.worker.broker;
2+
3+
import com.microsoft.azure.functions.rpc.messages.RpcException;
4+
import com.microsoft.azure.functions.spi.inject.FunctionInstanceInjector;
5+
import com.microsoft.azure.functions.worker.WorkerLogManager;
6+
import com.microsoft.azure.functions.worker.binding.BindingDataStore;
7+
import com.microsoft.azure.functions.worker.binding.ExecutionContextDataSource;
8+
import com.microsoft.azure.functions.worker.binding.ExecutionRetryContext;
9+
import com.microsoft.azure.functions.worker.binding.ExecutionTraceContext;
10+
import com.microsoft.azure.functions.worker.converter.ParameterConverter;
11+
import org.junit.jupiter.api.BeforeEach;
12+
import org.junit.jupiter.api.Test;
13+
import org.junit.jupiter.api.extension.ExtendWith;
14+
import org.mockito.Mock;
15+
import org.mockito.MockedStatic;
16+
import org.mockito.Mockito;
17+
import org.mockito.junit.jupiter.MockitoExtension;
18+
19+
import java.lang.reflect.Method;
20+
import java.util.ArrayList;
21+
import java.util.HashMap;
22+
import java.util.logging.Logger;
23+
24+
import static org.junit.jupiter.api.Assertions.*;
25+
import static org.mockito.Mockito.when;
26+
27+
28+
@ExtendWith(MockitoExtension.class)
29+
public class ParameterConverterTest {
30+
31+
private ExecutionContextDataSource executionContextDataSource;
32+
@Mock
33+
private MethodBindInfo methodBindInfo;
34+
35+
@BeforeEach
36+
public void setup() {
37+
String invocationId = "testInvocationId";
38+
ExecutionTraceContext traceContext = new ExecutionTraceContext("traceParent", "traceState", new HashMap<>());
39+
ExecutionRetryContext retryContext = new ExecutionRetryContext(1, 2, RpcException.newBuilder().build());
40+
String functionName = "ParameterResolverTest";
41+
BindingDataStore dataStore = new BindingDataStore();
42+
dataStore.setBindingDefinitions(new HashMap<>());
43+
try (MockedStatic<WorkerLogManager> workerLogManagerMockedStatic = Mockito.mockStatic(WorkerLogManager.class)) {
44+
workerLogManagerMockedStatic.when(() -> WorkerLogManager.getInvocationLogger(invocationId))
45+
.thenReturn(Logger.getAnonymousLogger());
46+
executionContextDataSource = new ExecutionContextDataSource(invocationId,
47+
traceContext, retryContext, functionName, dataStore, methodBindInfo,
48+
this.getClass(), new ArrayList<>(), new FunctionInstanceInjector() {
49+
@Override
50+
public <T> T getInstance(Class<T> functionClass) throws Exception {
51+
return null;
52+
}
53+
});
54+
}
55+
56+
}
57+
58+
@Test
59+
public void testResolveArgumentsHasImplicitOutputTrue() throws Exception {
60+
Method testMethod = this.getClass().getDeclaredMethod("testMethod");
61+
when(methodBindInfo.hasImplicitOutput()).thenReturn(true);
62+
when(methodBindInfo.getMethod()).thenReturn(testMethod);
63+
when(methodBindInfo.getParams()).thenReturn(new ArrayList<>());
64+
ParameterConverter.resolveArguments(executionContextDataSource);
65+
assertTrue(executionContextDataSource.getDataStore().getDataTargetTypedValue(BindingDataStore.RETURN_NAME).isPresent());
66+
}
67+
68+
@Test
69+
public void testResolveArgumentsHasImplicitOutputFalse() throws Exception {
70+
Method testMethod = this.getClass().getDeclaredMethod("testMethod");
71+
when(methodBindInfo.hasImplicitOutput()).thenReturn(false);
72+
when(methodBindInfo.getMethod()).thenReturn(testMethod);
73+
when(methodBindInfo.getParams()).thenReturn(new ArrayList<>());
74+
ParameterConverter.resolveArguments(executionContextDataSource);
75+
assertFalse(executionContextDataSource.getDataStore().getDataTargetTypedValue(BindingDataStore.RETURN_NAME).isPresent());
76+
}
77+
78+
public void testMethod() {}
79+
}

src/test/java/com/microsoft/azure/functions/worker/broker/tests/CoreTypeResolverTest.java renamed to src/test/java/com/microsoft/azure/functions/worker/broker/tests/CoreTypeConverterTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55

66
import com.microsoft.azure.functions.*;
77
import com.microsoft.azure.functions.annotation.*;
8-
import com.microsoft.azure.functions.worker.resolver.CoreTypeResolver;
8+
import com.microsoft.azure.functions.worker.converter.CoreTypeConverter;
99

1010
import org.apache.commons.lang3.StringUtils;
1111
import org.junit.jupiter.api.Test;
1212

13-
import static com.microsoft.azure.functions.worker.resolver.CoreTypeResolver.getRuntimeClass;
14-
import static com.microsoft.azure.functions.worker.resolver.CoreTypeResolver.isValidOutputType;
13+
import static com.microsoft.azure.functions.worker.converter.CoreTypeConverter.getRuntimeClass;
14+
import static com.microsoft.azure.functions.worker.converter.CoreTypeConverter.isValidOutputType;
1515
import static org.junit.jupiter.api.Assertions.*;
1616

17-
public class CoreTypeResolverTest {
17+
public class CoreTypeConverterTest {
1818

1919
public void CustomBinding_Valid(
2020
@HttpTrigger(name = "req", methods = { HttpMethod.GET,
@@ -64,7 +64,7 @@ public void getNameFromCustomBinding() {
6464
Method customBindingValid = getFunctionMethod("CustomBinding_Valid");
6565
Parameter[] parameters = customBindingValid.getParameters();
6666
for (Parameter parameter : parameters) {
67-
String annotationName = CoreTypeResolver.getAnnotationName(parameter);
67+
String annotationName = CoreTypeConverter.getAnnotationName(parameter);
6868
assertNotNull(annotationName);
6969
}
7070
}
@@ -74,7 +74,7 @@ public void getNameFromTestCustomBinding() {
7474
Method customBindingValid = getFunctionMethod("TestCustomBindingName_OverridesCustomBindingName");
7575
Parameter[] parameters = customBindingValid.getParameters();
7676
for (Parameter parameter : parameters) {
77-
String annotationName = CoreTypeResolver.getAnnotationName(parameter);
77+
String annotationName = CoreTypeConverter.getAnnotationName(parameter);
7878
assertNotNull(annotationName);
7979
assertTrue(StringUtils.isNotEmpty(annotationName));
8080
}
@@ -85,7 +85,7 @@ public void getNameFromCustomBinding_ReturnsNull() {
8585
Method customBindingInvalid = getFunctionMethod("CustomBinding_Invalid");
8686
Parameter[] parameters = customBindingInvalid.getParameters();
8787
for (Parameter parameter : parameters) {
88-
String annotationName = CoreTypeResolver.getAnnotationName(parameter);
88+
String annotationName = CoreTypeConverter.getAnnotationName(parameter);
8989
assertNull(annotationName);
9090
}
9191
}
@@ -123,7 +123,7 @@ private OutputBinding<GenericExtendedOutputBinding<Integer>> outputExoutputInteg
123123
}
124124

125125
private Type returnTypeOf(String type) throws NoSuchMethodException {
126-
Method m = CoreTypeResolverTest.class.getDeclaredMethod(type);
126+
Method m = CoreTypeConverterTest.class.getDeclaredMethod(type);
127127
m.setAccessible(true);
128128
return m.getGenericReturnType();
129129
}
@@ -151,8 +151,8 @@ public void setValue(T value) {
151151
}
152152

153153
private Method getFunctionMethod(String methodName) {
154-
CoreTypeResolverTest coreTypeResolverTest = new CoreTypeResolverTest();
155-
Class<? extends CoreTypeResolverTest> testsClass = coreTypeResolverTest.getClass();
154+
CoreTypeConverterTest coreTypeResolverTest = new CoreTypeConverterTest();
155+
Class<? extends CoreTypeConverterTest> testsClass = coreTypeResolverTest.getClass();
156156
Method[] methods = testsClass.getMethods();
157157
Method functionMethod = null;
158158
for (Method method : methods) {

0 commit comments

Comments
 (0)